本文主要是介绍西门子PLC-TIA-Portal17以上C# S7PLUS通讯驱动分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
西门子S7PLUS通讯示例: 西门子PLC PLUS通讯,基于符号地址进行通讯读写
有兴趣的小伙伴可以去下载测试,传统S7是基于DB地址非优化块偏移地址进行读取,PLUS驱动基于数据符号进行读取,不再依赖偏移。
S7commPlus驱动程序
用于与 S7-1200/1500 控制器进行数据交换的通信驱动程序。
发展阶段
目前,这处于一种发展状态,不用于生产用途。
其目的是开发一种通信驱动因素,使人们能够访问可变预算 S7 1200/1500 允许通过对所谓的“优化”区域的符号访问进行控制。
此实现完全是用 C# 编写的。OpenSSL 库用于 TLS 加密。
系统要求
中央处理器
通信驱动程序仅支持具有启用安全通信的固件的 CPU。 通过TLS协议。根据目前的知识水平,这将是
- S7 1200 固件 >= V4.3(TLS 1.3 从 V4.5)
- S7 1500 固件 >= V2.9
重要的是,不仅要有具有适当固件的 CPU,还要在开发环境中使用 使用相应的版本。这仅适用于 TIA-Portal 版本 >= V17。
OpenSSL的
OpenSSL 用于 TLS 通信。如果 OpenSSL 安装在相应的版本中,则相应的 安装目录的系统路径。但是,必要的 dll 也存储在项目中,并在生成过程中使用 在必要的版本(x86 或 x64)中进入输出目录。 根据您使用的操作系统,其文件名的必要 dll:
对于 32 位 (x86):
- libcrypto-3.dll
- libssl-3.dll
对于 64 位 (x64):
- libcrypto-3-x64.dll
- libssl-3-x64.dll
经过测试的通信
到目前为止,以下设备已成功通过测试:
- S7 1211 固件 V4.5
- TIA Plcsim V17(带 Nettoplcsim)
- TIA Plcsim V18(带 Nettoplcsim)
-
PlcTag 类:将 PLC 数据类型转换为 PlcTag
对于某些数据类型,需要提前知道类型,以便处理PLC的响应,以便将其转换为 有用的数据类型到 .Net。为此目的提供了 PlcTag 类。
下表列出了 PLC (TIA V18) 中当前可能的所有数据类型,以及它们所在的数据类型 在 S7comm Plus 协议中的网络上,以及可以从中派生 PlcTag 类中的 .Net 数据类型。 导致。
支持 PLC 数据类型 PLC类别 PLC 信息 网络数据类型 .Net 数据类型 PlcTag 其他 ✓ AOM_IDENT 硬件数据类型 值DWord PlcTagDWord -> uint ✓ 任何 指针 参数 值USIntArray[10] 字节[10] ✓ 数组[n..m] 可直接访问单个元素 ✓ Block_FB 类型 参数 值UInt PlcTagUInt -> ushort ✓ Block_FC 类型 参数 值UInt PlcTagUInt -> ushort ✓ 布尔 二进制数 价值布尔 布尔 ✓ 字节 位序列 ValueByte 字节 ✓ CONN_ANY 硬件数据类型 ValueWord PlcTagWord -> ushort ✓ CONN_OUC 硬件数据类型 ValueWord PlcTagWord -> ushort ✓ CONN_PRG 硬件数据类型 ValueWord PlcTagWord -> ushort ✓ CONN_R_ID 硬件数据类型 值DWord PlcTagDWord -> uint ✓ CREF公司 系统数据类型 ValueStruct / 打包 可直接访问单个元素 ✓ 煳 字符串 值USInt 煳 编码预设 ISO-8859-1 用于非 ASCII ✓ 计数器 类型 参数 值UInt PlcTagUInt -> ushort ✓ 日期 日期和时间 值UInt 日期时间 待办事项:仅日期有效! ✓ Date_And_Time 日期和时间 值USIntArray[8] 日期时间 ✓ DB_ANY 硬件数据类型 值UInt PlcTagUInt -> ushort ✓ DB_DYN 硬件数据类型 值UInt PlcTagUInt -> ushort ✓ DB_WWW 硬件数据类型 值UInt PlcTagUInt -> ushort ✓ 力 整数 值DInt 国际 ✓ DTL公司 日期和时间 ValueStruct / 打包 DateTime + uint(用于 ns) 外部为纳秒,因为没有带有 ns 的 .Net 类型。实验的! ✓ DWord 位序列 值DWord uint ✓ EVENT_ANY 硬件数据类型 值DWord PlcTagDWord -> uint ✓ EVENT_ATT 硬件数据类型 值DWord PlcTagDWord -> uint ✓ EVENT_HWINT 硬件数据类型 值DWord PlcTagDWord -> uint ✓ 错误结构 ValueStruct / 打包 可直接访问单个元素 ✓ HW_ANY 硬件数据类型 ValueWord ✓ HW_DEVICE 硬件数据类型 ValueWord PlcTagWord -> ushort ✓ HW_DPMASTER 硬件数据类型 ValueWord PlcTagWord -> ushort ✓ HW_DPSLAVE 硬件数据类型 ValueWord PlcTagWord -> ushort ✓ HW_HSC 硬件数据类型 ValueWord PlcTagWord -> ushort ✓ HW_IEPORT Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ HW_INTERFACE Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ HW_IO Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ HW_IOSYSTEM Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ HW_MODULE Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ HW_PTO Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ HW_PWM Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ HW_SUBMODULE Hardwaredatentypen ValueWord PlcTagWord -> ushort ✓ IEC_COUNTER Systemdatentypen ValueStruct / packed 33554462, Zugriff auf Einzelelemente direkt möglich ✓ IEC_DCOUNTER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ IEC_LCOUNTER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ IEC_LTIMER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ IEC_SCOUNTER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ IEC_TIMER Systemdatentypen ValueStruct / packed 33554463, Zugriff auf Einzelelemente direkt möglich ✓ IEC_UCOUNTER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ IEC_UDCOUNTER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ IEC_ULCOUNTER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ IEC_USCOUNTER Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ Int Ganzzahlen ValueInt short ✓ LDT Datum und Uhrzeit ValueTimestamp ulong ✓ LInt Ganzzahlen ValueLInt long ✓ LReal Gleitpunktzahlen ValueLReal double ✓ LTime Zeiten ValueTimespan long Anzahl ns ✓ LTime_Of_Day (LTOD) Datum und Uhrzeit ValueULInt ulong Anzahl ns seit 00:00:00 Uhr ✓ LWord Bitfolgen ValueLWord ulong ✓ NREF Systemdatentypen ValueStruct / packed Zugriff auf Einzelelemente direkt möglich ✓ OB_ANY Hardwaredatentypen ValueInt PlcTagInt -> short ✓ OB_ATT Hardwaredatentypen ValueInt PlcTagInt -> short ✓ OB_CYCLIC Hardwaredatentypen ValueInt PlcTagInt -> short ✓ OB_DELAY 硬件数据类型 ValueInt PlcTagInt ->短 ✓ OB_DIAG 硬件数据类型 ValueInt PlcTagInt ->短 ✓ OB_HWINT 硬件数据类型 ValueInt PlcTagInt ->短 ✓ OB_PCYCLE 硬件数据类型 ValueInt PlcTagInt ->短 ✓ OB_STARTUP 硬件数据类型 ValueInt PlcTagInt ->短 ✓ OB_TIMEERROR 硬件数据类型 ValueInt PlcTagInt ->短 ✓ OB_TOD 硬件数据类型 ValueInt PlcTagInt ->短 ✓ 果仁 硬件数据类型 值UInt PlcTagUInt -> ushort ✓ 指针 指针 参数 值USIntArray[6] 字节[6] ✓ 港口 硬件数据类型 值UInt PlcTagUInt -> ushort ✓ 实时转播 硬件数据类型 值UInt PlcTagUInt -> ushort ✓ 真正 浮 价值真实 浮 ✓ 远程 指针 参数 值USIntArray[10] PlcTagAny -> 字节[10] 与任意指针相同 ✓ S5时间 次 ValueWord 乌肖特,乌肖特 TODO:TimeBase、TimeValue。统一? ✓ 不 整数 价值SInt 字节 ✓ 字符串 字符串 值USIntArray[stringlen + 2] 字符串 编码预设 ISO-8859-1 用于非 ASCII ✓ 结构 可直接访问单个元素 ✓ 时间 次 值DInt 国际 签名号码 ms ✓ Time_Of_Day(死亡) 日期和时间 值UDInt uint 自 00:00:00 以来的毫秒数 ✓ 定时器 类型 参数 值UInt PlcTagUInt -> ushort ✓ UDInt 整数 值UDInt uint ✓ 用户界面 整数 值UInt ushort ✓ ULInt 整数 值ULInt 乌龙 ✓ US不见 整数 值USInt 字节 ✗ 变体 指针 参数 未获取地址 ✓ WChar 字符串 值UInt 煳 ✓ WString 字符串 值UIntArray[stringlen + 2] 字符串 ✓ 词 位序列 ValueWord ushort
这篇关于西门子PLC-TIA-Portal17以上C# S7PLUS通讯驱动分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!