Modbus_TCP协议如何使用?

1 驱动简介

网关支持标准的Modbus-TCP协议,支持Modbus-TCP协议的设备(例如智能仪表、电表等),都可以通过此协议直接通讯,实现远程采集、监控、控制设备的功能。

从站号:默认为1,需要查看设备说明书关于通讯这部分的说明。

硬件接线:采用标准的RJ45接口的网线,连接网关的LAN口和下位机设备的LAN口。也可通过交换机进行连接。 

端口号:默认为502

通讯方式:一主一从,一主多从

注意:现场设备必须支持做Modbus-TCP从站。

例如:某触摸屏的通讯参数如图:

       IP地址为192.168.1.5   子网掩码为255.255.255.0

Modbus_TCP协议如何使用?_第1张图片

 

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(与当前连接的网络结构相关。若网络结构较复杂,请咨询该网络的网络管理员)。

Modbus_TCP协议如何使用?_第2张图片

 Modbus_TCP协议如何使用?_第3张图片

 

3 网关驱动配置

网关配置驱动路径:【②:网关驱动管理】→【+新增】。在弹出界面中填写驱动信息:

Modbus_TCP协议如何使用?_第4张图片 

【通讯口】:选择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 网关变量配置

变量设置路径::变量管理】→【+添加变量】,填写变量信息:

 Modbus_TCP协议如何使用?_第5张图片

 

变量介绍:

【变量图片】:在列表展示时显示的变量图片(一般不用)。

【仪表、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 数据调试

添加完成后,【变量管理】如下图所示,此时可以点击【数据测试】按钮检查变量能否采集到数据,或者数据是否正确。

Modbus_TCP协议如何使用?_第6张图片

 

6 常见错误代码

点击【数据调试】按钮,如有异常,会上报数据异常代码,点击该异常码可直接查看解释说明。

下表为常见错误码说明及处理建议。

错误码

说明

处理建议

99901

下位设备通讯故障

1、检查网关和PLC的接线

2、检查通讯口参数配置

3、检查硬件本身存在的问题

1711

99902

响应超时

1715

99903

变量不存在

  1. 检查变量地址
  2. 检查PLC地址表

1714

99904

变量地址为空或格式错误,数据校验错误

1、检查通讯参数

2、检查变量地址

3、排查干扰

1713

99905

变量只读,不可以写入

2004

99907

读取的数据不完整

  1. 排查干扰
  2. 适当调整采集周期和通讯等待时间

查看更多错误码信息请查看如下链接:

通用异常码列表:通用异常码列表 · 异常码查询

Modbus异常码列表:Modbus协议异常码列表 · 异常码查询

附录1  寄存器地址范围表

MODBUS寄存器地址表

寄存器

操作方式

读功能码

写功能码

寄存器类型

地址范围

数据范围

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

你可能感兴趣的:(网络,服务器,运维)