MODBUS功能码简介 服务器
代码tcp |
中文名称spa |
位操做/字操做.net |
操做数量server |
01hblog |
读线圈状态ip |
位操做ci |
单个或多个get |
02hio |
读离散输入状态(只能读到0或1) |
位操做 |
单个或多个 |
03h |
读保持寄存器(保持寄存器能够经过06h功能写入) |
字操做 |
单个或多个 |
04h |
读输入寄存器(输入寄存器只能读取,不能经过06h功能写入) |
字操做 |
单个或多个 |
05h |
写单个线圈(线圈表示用来控制输出IO控制) |
位操做 |
单个 |
06h |
写单个保持寄存器 |
字操做 |
单个 |
0Fh |
写多个线圈 |
位操做 |
多个 |
10h |
写多个保持寄存器 |
字操做 |
多个 |
Modbus TCP介绍
示例-经过03功能码读寄存器(从寄存器00开始,读取两个值,读到01寄存器结束)
客户端发送 01 02 00 00 00 06 01 03 00 00 00 02
01 02 00 00 00 06 (固定报文头)
01 03 00 00 00 02(用户数据)
返回值以下图所示:
服务器返回值 01 02 00 00 00 07 01 03 04 04 7B 00 FF
示例-06功能码写单个寄存器(向寄存器03地址里写值)
客户端发送 01 02 00 00 00 06 01 06 00 03 00 FF
01 02 00 00 00 06 (固定报文头)
01 06 00 03 00 FF (用户数据)
返回值以下图所示:
服务器返回 01 02 00 00 00 06 01 06 00 03 00 FF
后面的06 00 03 00 FF:表示客户端使用06功能码成功向寄存器03h分别写入了0xFF值
示例-10功能码写多个寄存器(向寄存器03~06地址里写不一样值)
客户端发送 01 02 00 00 00 0F 01 10 00 03 00 04 08 FF FF 00 0A 00 0F 00 06
01 02 00 00 00 0F (固定报文头)
01 10 00 03 00 04 08 FF FF 00 0A 00 0F 00 06 (用户数据)
返回值以下图所示:
服务器返回 01 02 00 00 00 06 01 10 00 03 00 04
后面的10 00 03 00 04:表示客户端使用10功能码成功向寄存器03h~06h分别写入了值
部分参考内容:https://blog.csdn.net/mikasoi/article/details/81782159