1 驱动简介
网关支持标准的Modbus-TCP协议,支持Modbus-TCP协议的设备(例如智能仪表、电表等),都可以通过此协议直接通讯,实现远程采集、监控、控制设备的功能。
从站号:默认为1,需要查看设备说明书关于通讯这部分的说明。
硬件接线:采用标准的RJ45接口的网线,连接网关的LAN口和下位机设备的LAN口。也可通过交换机进行连接。
端口号:默认为502
通讯方式:一主一从,一主多从
注意:现场设备必须支持做Modbus-TCP从站。
例如:某触摸屏的通讯参数如图:
IP地址为192.168.1.5 子网掩码为255.255.255.0
2 网关通讯口配置
LAN口配置路径:【②:网关驱动管理】→【通讯口配置】→【LAN配置】。在弹出窗口中填写网关LAN口IP。
IP地址:需要与PLC同一网段(一般情况下即是要求点分四段IP表示法的前三段地址要相同)。如外接交换机,不能与交换机中其他设备IP相同。本文中,PLC的IP地址为192.168.1.5,此处LAN口IP填写192.168.1.200。
子网掩码:一般填写为255.255.255.0(与当前连接的网络结构相关。若网络结构较复杂,请咨询该网络的网络管理员)。
3 网关驱动配置
网关配置驱动路径:【②:网关驱动管理】→【+新增】。在弹出界面中填写驱动信息:
【通讯口】:选择LAN。此处可选LAN/RS232/RS485。
【驱动名称】:用于区分不同型号的驱动,例如“modbus仪表”。
【品牌】【型号】:分别选择通用Modbus设备,Modbus TCP。
【IP地址】:填写下位机设备的IP地址,本例中填写192.168.1.5。
【设备地址】:填写下位机的设备地址,默认为1。
【端口号】:以太网单元的数据帧接收/发送端口,默认为502。
【最小采集时间】:网关采集设备数据的时间间隔,单位为ms,默认是1000ms(1秒),根据采集数据量的大小,设置值可适当调整。
【通讯等待时间】:网关接收通讯数据等待时间,默认1000ms。设置太小可能导致通讯不上(建议大于1秒)。
【16位整形】【32/64位整形】【32/64位浮点型】:是指对应数据类型的解码顺序。如果厂家给的表格没有标明,建议不要进行修改,直接选择默认即可。具体解释见下表:
数据类型 | 解码方式 | 说明 | 举例 (0x0001,0x0000 0001) |
16位整形 | 0-12 | 表示字元件高低字节不颠倒(默认值) | 表示0x0001 |
1-21 | 表示字元件高低字节颠倒 | 表示0x0100 | |
32/64位整形 | 0-1234 | 表示双字元件不做处理直接解码(默认值) | 表示0x0000 0001 |
1-2143 | 表示双字元件高低字不颠倒,但字内高低字节颠倒 | 表示0x0000 0010 | |
2-3412 | 表示双字元件高低字颠倒,但字内高低字节不颠倒 | 表示0x0001 0000 | |
3-4321 | 表示双字元件内4个字节全部颠倒 | 表示0x0100 0000 | |
32/64浮点型 | 0-1234 | 表示双字元件不做处理直接解码(默认值) | |
1-2143 | 表示双字元件高低字不颠倒,但字内高低字节颠倒 | ||
2-3412 | 表示双字元件高低字颠倒,但字内高低字节不颠倒 | ||
3-4321 | 表示双字元件内4个字节全部颠倒 |
【分块采集方式】:一般不用修改,默认即可。
0-按最大长度分块:采集分块按最大块长处理,对地址不连续但地址相近的多个连续地址合并一次性读取,而不是多次读取,提升采集的效率。
1-按连续地址分块:采集分块按地址连续性处理,对地址不连续的地址分多次读取。该项多用于仪表类通讯。
例如:有寄存器地址分别为1~5、7、9~12的数据需采集,如果选择“0-按最大长度分块”,则两块可优化为地址1~12的数据打包1次完成采集;如果选择“1-按连续地址分块”,则需要采集3次。
【4区16位写功能码】:一般不用修改,默认即可。0x06为写单个寄存器,0x10为写多个寄存器。在双字(32位)数据写操作或批量写入多个数据时,使用0x10功能码。
4 网关变量配置
变量设置路径:【③:变量管理】→【+添加变量】,填写变量信息:
变量介绍:
【变量图片】:在列表展示时显示的变量图片(一般不用)。
【仪表、PLC】:选择已创建的驱动名称(如上述创建的“modbus仪表”驱动)。
【标识(key)】:可用于脚本编程、中间变量计算等功能,详细说明点击【?】帮助(不常用)。
【变量名称】:自定义即可(如“温度1”),注意变量名称不允许重复。
【单位】:此单位会出现在历史数据、曲线的图例中,自定义填写。
【寄存器类型】:填写对应下位机设备的寄存器类型(线圈0x、离散输入1x、输入寄存器3x、输出寄存器4x)。
【寄存器地址】:地址填写时不带寄存区标志符,与实际寄存器地址一致。具体下图“平台地址填写举例”。
【数据类型】:根据实际需要选择即可。
【小数位数】:对于数值型的变量确定显示的小数位数,根据需求填写。
【死区设置】:默认即可。根据需要填写即可。详细说明点击【?】帮助。
【状态列表】:一般不用。可将数值直接与文本映射。如值为“10”,映射字段为“设备故障”,则当采集到变量的值为“10”时,会直接在设备监控和历史报表中显示“设备故障”。
【公式】:一般用于数据的工程换算和数据处理。详细说明点击【?】帮助。
【读写方式】:可选择 “只读”和“读写”两种方式。
注:“寄存器类型”、“寄存器地址”、“数据类型”、“读写方式”的设置规则见附录1(寄存器地址范围表)。
平台地址填写举例:
下位机地址表 | EMCP平台变量填写指导 | |||
寄存器地址 | 数据类型 | 寄存器类型 | 寄存器地址 | 数据类型 |
0x0001 | 开关量 | 线圈(0x) | 1 | Bit位 |
4x0010 | 16位整形 | 保持寄存器(4x) | 10 | 16位整形 |
4x0019 | 浮点型 | 保持寄存器(4x) | 19 | 浮点型 |
对于部分寄存器起始地址为0的设备,填写的寄存器地址需要加1 |
5 数据调试
添加完成后,【变量管理】如下图所示,此时可以点击【数据测试】按钮,检查变量能否采集到数据,或者数据是否正确。
6 常见错误代码
点击【数据调试】按钮,如有异常,会上报数据异常代码,点击该异常码可直接查看解释说明。
下表为常见错误码说明及处理建议。
错误码 | 说明 | 处理建议 |
99901 | 下位设备通讯故障 | 1、检查网关和PLC的接线 2、检查通讯口参数配置 3、检查硬件本身存在的问题 |
1711 | ||
99902 | 响应超时 | |
1715 | ||
99903 | 变量不存在 |
|
1714 | ||
99904 | 变量地址为空或格式错误,数据校验错误 | 1、检查通讯参数 2、检查变量地址 3、排查干扰 |
1713 | ||
99905 | 变量只读,不可以写入 | |
2004 | ||
99907 | 读取的数据不完整 |
|
查看更多错误码信息请查看如下链接:
通用异常码列表:通用异常码列表 · 异常码查询
Modbus异常码列表:Modbus协议异常码列表 · 异常码查询
附录1 寄存器地址范围表
寄存器 | 操作方式 | 读功能码 | 写功能码 | 寄存器类型 | 地址范围 | 数据范围 |
【1区】输入继电器 | 只读 | 02 | 无 | Bit位 | 1x0001 - 1x9999 | 0、1 |
【0区】输出继电器 | 读写 | 01 | 05 | Bit位 | 0x0001 - 0x9999 | 0、1 |
【3区】输入寄存器 | 只读 | 04 | 无 | 16位、32位 | 4x0001 - 4x9999 | 0-65535 |
【4区】输出寄存器 | 读写 | 03 | 06、10 | 16位、32位 | 3x0001 - 3x9999 | 0-65535 |
此表用于解释说明每个寄存器类型对应的参数。 06功能码为写单个寄存器,16功能码为写多个寄存器。 不同的设备的寄存器对应的modbus地址不同,需要查看设备说明书。 |