通过西门子S7协议连接设备

慧程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

  1. 进入配置管理-连接配置,点击新建连接

  2. 选择西门子PLC,选择对应的西门子设备型号

    image-20220228105028961

  3. 选择对应的西门子PLC

  4. 输入连接名称,如 S71200,输入主机名(IP地址),如192.168.12.13

  5. 可以选择显示高级属性,查看其他设置

    通用信息 内容
    名称 设备连接的名称
    描述 设备连接的描述
    启用 连接是否处于活动状态。禁用此设置会终止与设备的通信。
    连接性
    主机名 设备的主机名或 IP 地址。如192.168.13.12
    端口 连接到设备时使用的端口。默认值为 102。
    超时 请求超时时间,以毫秒为单位。默认值为 2,000。
    高级
    CPU插槽号 槽号是用来分配CPU模块、电源模块、接口模块、I/O信号模块、通信模块、功能模块等在机架上的具体位置的,主要是用来标记设备的唯一性的,有点各就各位的意思,无规矩不成方圆,只有槽号确定了,位置也就定了,地址才能明确。默认0

    注意: 若使用S7 200 Smart 进行连接, 请将此参数设置为 1, 否则读取出错
    机架号 设备所在机架的编号。对于扩展的多个机架,安装有CPU的机架称为主机架,即机架号为0,扩展的机架编号依次为1号机架、2号机架、3号机架,这个在通信时会告知与之通信的设备CPU在什么位置。默认为 0。
    连接超时后重新连接 在连续几次超时后,设备连接将尝试重新连接到设备。此设置确定在重新连接之前必须发生多少次连续超时。
  6. 可以点击测试连接测试连接是否可以成功,如失败可以在连接日志中查看失败原因。

  7. 点击提交。提交完成后将显示连接列表,连接状态应该为已连接,启用状态为启用

西门子设备不支持浏览功能,因此西门子设备对的数据地址需要手动配置或通过excel文件导入的方式进行配置。

配置设备属性数据地址

  1. 进入设备配置,进入已创建好的设备(关联创建好的西门子PLC的连接),选择一个属性点击编辑
  2. 设置数据类型,如 32位浮点数
  3. 设置数据地址,如 DB1.DBD6.0
  4. 点击确定,那么在属性列表中将能看到对应的参数

西门子设备地址语法

西门子协议定义格式如下:

%{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 image-20220228112056177
IW4 IW4 image-20220228112129324
MD18 MD18 image-20220228112256040
DB1.DBW0 DB1.DBW0 image-20220228112445831
2024-10-16
0