欣仰邦S-SC采集主机ModBus从站接口通信详解(标准ModBus规约)
发表时间:2021-12-17作者:xmsiyb
1 适用范围
S-SCQXZ以及S-SCXZ系列(系统版本7.03以后)监控主机ModBus从站接口。
(1)主机按键设置:改主机的ModBus从规约为“标准ModBus规约”
操作步骤:按确认键,在主机界面找到“2基础参数设置”,按确认键进入,密码默认0000长按确认键进入子菜单,找到“ModBus从规约”或者“485口通信规约”,按确认键修改为“标准ModBus规约”,长按确认键保存。
操作步骤:按确认键,在主机界面找到“2基础参数设置”,按确认键进入,密码默认0000长按确认键进入子菜单,找到“3ModBus从地址”,修改地址,默认地址为1
初始结构 ≥4 字节的时间
地址码 = 1 字节
功能码 = 1 字节
数据区 = N 字节
错误校验 = 16 位CRC 码
结束结构 ≥4 字节的时间
地址码:为主机的ModBus从地址,在通讯网络中是唯一的(出厂默认0x01)。
功能码:主机所发指令功能指示。
数据区:数据区是具体通讯数据,注意16bits数据高字节在前!
CRC码:二字节的校验码。
和16(10进制);
但对于浮点型数据或32位整形数据建议使用16功能码。
S-SCQXZ以及S-SCXZ系列(系统版本7.03以后)监控主机ModBus从站接口。
(1)主机按键设置:改主机的ModBus从规约为“标准ModBus规约”
操作步骤:按确认键,在主机界面找到“2基础参数设置”,按确认键进入,密码默认0000长按确认键进入子菜单,找到“ModBus从规约”或者“485口通信规约”,按确认键修改为“标准ModBus规约”,长按确认键保存。
- 主机按键设置ModBus从地址;
操作步骤:按确认键,在主机界面找到“2基础参数设置”,按确认键进入,密码默认0000长按确认键进入子菜单,找到“3ModBus从地址”,修改地址,默认地址为1
2 通讯基本参数
| 编 码 | 8位二进制 |
| 数据位 | 8位 |
| 奇偶校验位 | 无 |
| 停止位 | 1位 |
| 错误校验 | CRC(冗余循环码) |
| 波特率 | 4800bit/s |
3数据帧格式定义
采用Modbus RTU 通讯规约,格式如下:初始结构 ≥4 字节的时间
地址码 = 1 字节
功能码 = 1 字节
数据区 = N 字节
错误校验 = 16 位CRC 码
结束结构 ≥4 字节的时间
地址码:为主机的ModBus从地址,在通讯网络中是唯一的(出厂默认0x01)。
功能码:主机所发指令功能指示。
数据区:数据区是具体通讯数据,注意16bits数据高字节在前!
CRC码:二字节的校验码。
4通信寄存器单元
对于只读寄存器 使用功能码03(10进制)或04(10进制);对于读写寄存器 使用功能码06(10进制)和16(10进制);
但对于浮点型数据或32位整形数据建议使用16功能码。
| 寄存器单元(10进制) | 内容 | 数据格式 | 属性 | ||
| 0 | 1号通道模拟量1原始值 | 16位有符号整形 | 只读 | ||
| 1 | 1号通道模拟量2原始值 | 16位无符号整形 | |||
| 。。。 。。。 。。。 | |||||
| 62 | 32号通道模拟量1原始值 | 16位有符号整形 | |||
| 63 | 32号通道模拟量2原始值 | 16位无符号整形 | |||
| 64 | 1号通道模拟量1处理值高16位 | 32位有符号浮点型 | 只读 | ||
| 65 | 1号通道模拟量1处理值低16位 | ||||
| 66 | 1号通道模拟量2处理值高16位 | 32位有符号浮点型 | |||
| 67 | 1号通道模拟量2处理值低16位 | ||||
| 。。。 。。。 。。。 | |||||
| 188 | 32号通道模拟量1处理值高16位 | 32位有符号浮点型 | |||
| 189 | 32号通道模拟量1处理值低16位 | ||||
| 190 | 32号通道模拟量2处理值高16位 | 32位有符号浮点型 | |||
| 191 | 32号通道模拟量2处理值低16位 | ||||
| 300 | 1号通道模拟量1上限值高16位 | 32位有符号浮点型 |
读/写 |
||
| 301 | 1号通道模拟量1上限值低16位 | ||||
| 302 | 1号通道模拟量1下限值高16位 | 32位有符号浮点型 | |||
| 303 | 1号通道模拟量1下限值低16位 | ||||
| 304 | 1号通道模拟量2上限值高16位 | 32位有符号浮点型 | |||
| 305 | 1号通道模拟量2上限值低16位 | ||||
| 306 | 1号通道模拟量2下限值高16位 | 32位有符号浮点型 | |||
| 307 | 1号通道模拟量2下限值低16位 | ||||
| 。。。 。。。 。。。 | |||||
| 548 | 32号通道模拟量1上限值高16位 | 32位有符号浮点型 | |||
| 549 | 32号通道模拟量1上限值低16位 | ||||
| 550 | 32号通道模拟量1下限值高16位 | 32位有符号浮点型 | |||
| 551 | 32号通道模拟量1下限值低16位 | ||||
| 552 | 32号通道模拟量2上限值高16位 | 32位有符号浮点型 | |||
| 553 | 32号通道模拟量2上限值低16位 | ||||
| 554 | 32号通道模拟量2下限值高16位 | 32位有符号浮点型 | |||
| 555 | 32号通道模拟量2下限值低16位 | ||||
| 556 | 1号通道模拟量1偏差值高16位 | 32位有符号浮点型 |
读/写 |
||
| 557 | 1号通道模拟量1偏差值低16位 | ||||
| 558 | 1号通道模拟量2偏差值高16位 | 32位有符号浮点型 | |||
| 559 | 1号通道模拟量2偏差值低16位 | ||||
| 。。。 。。。 。。。 | |||||
| 680 | 32号通道模拟量1偏差值高16位 | 32位有符号浮点型 | |||
| 681 | 32号通道模拟量1偏差值低16位 | ||||
| 682 | 32号通道模拟量2偏差值高16位 | 32位有符号浮点型 | |||
| 683 | 32号通道模拟量2偏差值低16位 | ||||
| 684 | 时间年 | 16位无符号数据 | 读/写范围2000-3000 | ||
| 685 | 时间月 | 16位无符号数据 | 读/写范围1-12 | ||
| 686 | 时间日 | 16位无符号数据 | 读/写范围1-31 | ||
| 687 | 时间时 | 16位无符号数据 | 读/写范围0-23 | ||
| 688 | 时间分 | 16位无符号数据 | 读/写范围0-59 | ||
| 689 | 时间秒 | 16位无符号数据 | 读/写范围0-59 | ||
| 690 | 数据存储模式 | 16位无符号数据 |
读/写 0:关闭 1:开启 2:自动 |
||
| 691 | 正常数据记录间隔(分钟) | 16位无符号数据 | 读/写范围1-65535 | ||
| 692 | 报警数据记录间隔(分钟) | 16位无符号数据 | 读/写范围1-65535 | ||
| 693 | 清除已存储数据 | 16位无符号数据 | 只写 写入01 代表清除已存储数据 | ||
| 694 | 设备中已存储数据高16位 | 32位无符号数据 | 读/写范围0-530000 | ||
| 695 | 设备中已存储数据低16位 | ||||
| 696 | 1号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
| 697 | 2号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
| 698 | 3号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
| 699 | 4号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
| 700 | 5号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
| 701 | 6号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
| 702 | 7号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
| 703 | 8号继电器控制及状态 | 16位无符号数据 |
读/写 0:继电器断开 1:继电器吸合 |
||
5通信实例
主机ModBus从站接口地址为5(可设置,参考第一部分)1)读取2号、3号通道模拟量1、模拟量2原始值
| 问询 | |
| 问询命令 | 05 03 00 02 00 04 E4 4D |
| 详解 | |
| 05 | 通信的从站地址为05 |
| 03 | 采用功能码03 |
| 00 02 | 从0002号寄存器开始读取 |
| 00 04 | 连续读取4个寄存器的值 |
| E4 4D | CRC校验码 |
| 应答 | |
| 应答内容 | 05 03 08 00 ED 02 7B 00 E0 00 F9 99 B5 |
| 详解 | |
| 05 | 通信的从站地址为05 |
| 03 | 采用功能码03 |
| 08 | 返回有效字节数 |
| 00 ED | 2号寄存器数据(2号寄存器模拟量1原始值)数值为237 |
| 02 7B | 3号寄存器数据(2号寄存器模拟量2原始值)数值为635 |
| 00 E0 | 4号寄存器数据(3号寄存器模拟量1原始值)数值为224 |
| 00 F9 | 5号寄存器数据(3号寄存器模拟量2原始值)数值为249 |
| 99 B5 | CRC校验码 |
2)读取32通道模拟量1处理值和模拟量2处理值
| 问询 | |
| 问询命令 | 05 03 00 BC 00 04 84 69 |
| 详解 | |
| 05 | 通信的从站地址为05 |
| 03 | 采用功能码03 |
| 00 BC | 从188号寄存器开始读取 |
| 00 04 | 连续读取4个寄存器的值 |
| 84 69 | CRC校验码 |
| 应答 | |
| 应答内容 | 05 03 08 41 E3 A5 E3 42 82 B1 AA 0A 89 |
| 详解 | |
| 05 | 通信的从站地址为05 |
| 03 | 采用功能码03 |
| 08 | 返回有效字节数 |
| 41 E3 A5 E3 | 188号、189号寄存器数据(32号寄存器模拟量1处理值)数值为28.456 |
| 42 82 B1 AA | 190号、191号寄存器数据(2号寄存器模拟量2原始值)数值为65.347 |
| 0A 89 | CRC校验码 |
3)将监控主机时间设置为2017年3月28日9时59分32秒
| 设置 | |
| 设置命令 | 05 10 02 6C 00 06 0C 07 E1 00 03 00 1C 00 09 00 3B 00 20 B4 7B |
| 详解 | |
| 05 | 通信的从站地址为05 |
| 10 | 采用功能码16 |
| 02 6C | 从620号寄存器开始写入 |
| 00 06 | 连续写入6个寄存器的数值 |
| 0C | 后续有效字节数为12个字节 |
| 07 E1 | 要写入620号寄存器的数值07E1(代表2017年) |
| 00 03 | 要写入621号寄存器的数值0003(代表3月) |
| 00 1C | 要写入622号寄存器的数值001C(代表28日) |
| 00 09 | 要写入623号寄存器的数值0009(代表9时) |
| 00 3B | 要写入624号寄存器的数值003B(代表59分) |
| 00 20 | 要写入625号寄存器的数值0020(代表32秒) |
| B4 7B | CRC校验码 |
| 应答 | |
| 应答内容 | 05 10 02 6C 00 06 80 2A |
| 详解 | |
| 05 | 通信的从站地址为05 |
| 10 | 采用功能码16 |
| 02 6C | 从620号寄存器开始写入 |
| 00 06 | 连续写入6个寄存器的数值 |
| 80 2A | CRC校验码 |
4)操作继电器
| 设置 | |
| 设置命令 | 05 06 02 BA 00 01 69 D3 |
| 详解 | |
| 05 | 通信的从站地址为05 |
| 06 | 采用功能码06 |
| 02 BA | 写入698号寄存器(第三路继电器)数值 |
| 00 01 | 写入内容为 1(闭合本路继电器) |
| 69 EF | CRC校验码 |
| 应答 | |
| 应答内容 | 05 06 02 BA 00 01 69 D3 |
| 应答内容与发送内容一致 | |
相关资讯
17850532774





