慧程HiperMATRIX支持对西门子S7系列的PLC,HiperMATRIX 使用 S7 协议通过 TCP/IP 连接到西门子 PLC。与 Modbus 和某些 Allen Bradley 连接类似,Siemens S7 设备不支持标签浏览。您可以在HiperMATRIX 手动创建设备属性,或使用点位导入/导出在 Excel 创建所有点位。目前,HiperMATRIX具有以下西门子 PLC 的驱动程序:
- Siemens S7-300
- Siemens S7-S200Smart
- Siemens S7-SNon200
- Siemens S7-S300
- Siemens S7-S400
- Siemens S7-S1200
- Siemens S7-S1500
连接到西门子PLC
-
进入配置管理-连接配置,点击新建连接
-
选择西门子PLC,选择对应的西门子设备型号
-
选择对应的西门子PLC
-
输入连接名称,如 S71200,输入主机名(IP地址),如192.168.12.13
-
可以选择显示高级属性,查看其他设置
通用信息 内容 名称 设备连接的名称 描述 设备连接的描述 启用 连接是否处于活动状态。禁用此设置会终止与设备的通信。 连接性 主机名 设备的主机名或 IP 地址。如192.168.13.12 端口 连接到设备时使用的端口。默认值为 102。 超时 请求超时时间,以毫秒为单位。默认值为 2,000。 高级 CPU插槽号 槽号是用来分配CPU模块、电源模块、接口模块、I/O信号模块、通信模块、功能模块等在机架上的具体位置的,主要是用来标记设备的唯一性的,有点各就各位的意思,无规矩不成方圆,只有槽号确定了,位置也就定了,地址才能明确。默认0
注意: 若使用S7 200 Smart 进行连接, 请将此参数设置为 1, 否则读取出错机架号 设备所在机架的编号。对于扩展的多个机架,安装有CPU的机架称为主机架,即机架号为0,扩展的机架编号依次为1号机架、2号机架、3号机架,这个在通信时会告知与之通信的设备CPU在什么位置。默认为 0。 连接超时后重新连接 在连续几次超时后,设备连接将尝试重新连接到设备。此设置确定在重新连接之前必须发生多少次连续超时。 -
可以点击测试连接测试连接是否可以成功,如失败可以在连接日志中查看失败原因。
-
点击提交。提交完成后将显示连接列表,连接状态应该为已连接,启用状态为启用
西门子设备不支持浏览功能,因此西门子设备对的数据地址需要手动配置或通过excel文件导入的方式进行配置。
配置设备属性数据地址
- 进入设备配置,进入已创建好的设备(关联创建好的西门子PLC的连接),选择一个属性点击编辑
- 设置数据类型,如 32位浮点数
- 设置数据地址,如 DB1.DBD6.0
- 点击确定,那么在属性列表中将能看到对应的参数
西门子设备地址语法
西门子协议定义格式如下:
%{Memory-Area}{Transfer-Size-Code}{Byte-Offset}.[Bit-Offset}]
- Memory Area: S7驱动允许访问的内存区域。
- Transfer-Size-Code:数据类型代码,根据数据类型参照下面的表格进行设置 [XBWD]
- Byte-Offset:在内存区域中的的字节起始位
- Bit-Offset:bit偏移位
内存区域访问补充说明
Code | Name | Description |
---|---|---|
I | INPUTS | 外部输入,各种按钮,开关,传感器等把信号给至PLC的都称之为输入。 |
Q | OUTPUTS | 是输出端,PLC 输出信号控制别的元件都是接在Q上,如指示灯,继电器等等 |
M | FLAGS_MARKERS | 是PLC 内部的辅助继电器,只存在与PLC 内部,主要作用把各个程序段在内部连接起来 |
DB | DATA_BLOCKS | 数据存储区,可以用来存储各种非开关量的数字量,像温度等等。包含用户定义数据结构的内存区域通常由整数数据块号访问。请注意,数据块地址的地址格式稍微复杂一些。 |
V | Holding register | V存储区,变量存储器,具有保持功能 |
比如一个int16类型的Field,DB1.DBW1.0就是一个合法的origin定义。S7各种数据类型的说明:
数字功能代码补充说明
Code | Short-Code | Name | Description | Size in bits | Supported PLC Types |
---|---|---|---|---|---|
Bit-Strings (Will all interpreted as sequence of boolean values in PLC4X) | |||||
BOOL | X | Bit | Single boolean value | 1 | All |
BYTE | B | Byte | Array of 8 boolean values | 1 | All |
WORD | W | Word | Array of 16 boolean values | 2 | All |
DWORD | D | Double-Word | Array of 32 boolean values | 4 | All |
LWORD | X | Long-Word | Array of 64 boolean values | 8 | S7_1500 |
Integer values | |||||
SINT | B | Small int | 8 bit integer (signed) | 1 | S7_1200, S7_1500 |
USINT | B | Small unsigned int | 8 bit integer (unsigned) | 1 | S7_1200, S7_1500 |
INT | W | Integer | 16 bit integer (signed) | 2 | All |
UINT | W | Unsigned integer | 16 bit integer (unsigned) | 2 | S7_1200, S7_1500 |
DINT | D | Double integer | 32 bit integer (signed) | 4 | All |
UDINT | D | Unsigned Double Integer | 32 bit integer (unsigned) | 4 | S7_1200, S7_1500 |
LINT | X | Long integer | 64 bit integer (signed) | 8 | S7_1500 |
ULINT | X | Unsigned long integer | 64 bit integer (unsigned) | 8 | S7_1500 |
Floaring pooint values | |||||
REAL | D | Real | 32 bit IEEE 754 full precision floating point value (signed) | 4 | All |
LREAL | X | Long Real | 64 bit IEEE 754 double precision floating point value (signed) | 8 | S7_1200, S7_1500 |
Character values | |||||
CHAR | B | Character | 8 bit character | 1 | All |
WCHAR | X | Double byte character | 16 bit character value | 2 | S7_1200, S7_1500 |
STRING | X | String | String 2 + n bytes | 1 | All |
WSTRING | X | Double byte String | String of 16 bit characters 2 + n bytes | 1 | S7_1200, S7_1500 |
Temporal values | |||||
S5TIME | X | S5 Time | S5 Time (like in duration) | 2 | S7_300, S7_400, S7_1500 |
TIME | X | Time | Time (like in duration) (Minutes, Seconds, Milliseconds) | 4 | All |
LTIME | X | Long Time | Long Time (like in duration) (Minutes, Seconds, Milliseconds, Microseconds, Nanoseconds) | 8 | S7_1500 |
DATE | X | Date | Date | 2 | All |
TIME_OF_DAY | X | Time of day | Time (like in 4:40PM) | 4 | All |
DATE_AND_TIME | X | Date and Time | Date and time (like in 03.05.2020 4:40 PM) | 8 | S7_300, S7_400, S7_1500 |
数据类型转换规则
S7 Type | IOT前端选择 |
---|---|
BOOL | 布尔值 |
BYTE | 8位整数 |
WORD | 16位整数 |
DWORD | 32位整数 |
REAL | 32位浮点数 |
TIME | 时间 |
DATE_AND_TIME | 日期和时间 |
DATE | 日期 |
STRING | 字符串 |
举例合法地址对应的配置
s7源地址 | 地址值 | 属性配置 |
---|---|---|
I70.1 | I70.1 | |
IW4 | IW4 | |
MD18 | MD18 | |
DB1.DBW0 | DB1.DBW0 |