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地址不同,需要查看设备说明书。  | ||||||









![[NOIP2008 提高组] 传纸条——DP+优化](https://img-blog.csdnimg.cn/b478b31f2bbc4c64a089c6bfd88fb4fd.png)









