Modbus使用说明
注意,此Modbus协议实为Modbus RTU协议,本质是在TCP协议的基础上传输Modbus RTU通讯指令。普遍用法是使Modbus RTU串口设备连接无线DTU设备和平台实现通讯,当然也不排除别的方式,只要连接方式(TCP)和协议格式(Modbus RTU)符合要求皆可使用该协议连接平台。
Modbus网络是一个工业通信系统,可应用于各种数据采集和过程监控。平台集成了其中六种最常用的功能码:
功能码 | 名称 | 作用 |
0x01 | 读取线圈状态(读) | 取得一组逻辑线圈的当前状态(ON/OFF) |
0x02 | 读取输入状态(只读) | 取得一组开关输入的当前状态(ON/OFF) |
0x03 | 读取保持寄存器(读) | 在一个或多个保持寄存器中取得当前的二进制值 |
0x04 | 读取输入寄存器(只读) | 在一个或多个输入寄存器中取得当前的二进制值 |
0x05 | 强置单线圈(写) | 强置一个逻辑线圈的通断状态 |
0x06 | 预置单寄存器(写) | 把具体二进值装入一个保持寄存器 |
“链接协议”设置成“MB RTU”,“链接协议”即平台发送下行数据协议。平台可以通过设备选中的链接协议发送下行数据至设备。(你选择哪个协议,点击按钮就会使用相应的协议下发指令,此选项对其他功能没有任何影响)
点击“设备”——“设置连接”——“MB RTU”——“读写指令”
读写指令设置项为Modbus RTU协议定义的几个参数,如下:
读指令:[设备地址] [命令号01] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]
例:[03][01][00][13][00][01][CRC低][CRC高]
写指令:[设备地址] [命令号05] [需下置的寄存器地址高8位] [低8位] [下置的数据(0x00或0xFF)] [0x00] [CRC校验的低8位] [CRC校验的高8位]
例:[03][05][00][AC][FF][00][CRC低][CRC高]
注:“01读写”功能码包含的写功能码就是“05”。写指令可以通过开关按钮触发下发,也可以直接在设置框输入0或1,再点击“写入”按钮下发。
3、读一个或多个寄存器(保持寄存器): 读指令:[设备地址] [命令号03] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]
例:[11][03][00][6B][00][01][CRC低][CRC高]
注:如果需要读连续的“32位”数据(整形或浮点型),则偏置需要间隔一个数设置,如:108、110、112、、、、
4、写单个寄存器(保持寄存器): 写指令:[设备地址] [命令号06] [需下置的寄存器地址高8位] [低8位] [下置的数据高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]
例:[11][06][00][01][00][03][CRC低][CRC高]
注:“03读写”功能码包含的写功能码就是“06”。写指令只有在“数字”输入框输入数据,然后再点击“写入”按钮才会下发。