跳到主要内容

Modbus Slave 2

Modbus Slave 2

组件名称Modbus Slave 2
工具集算盘组件
组件作者雪浪云 - 子陵, 行舟, 杭波
文档版本20220606v00
功能该组件作为 Modbus Slave 用于在算盘上连接支持 Modbus 协议的 Master 设备,支持 Modbus TCP 模式。
镜像名称modbus_slave:2_0.0.3
开发语言C

功能描述
支持 Modbus TCP。
支持导入 Modbus 的点位表。
支持作为 Modbus Slave 接收 Master 设备的命令,输出更新的点位值。
输入桩

输出桩
输出端子1
组件有1个输出
端口名称:输出数据
输入类型:JSON格式文本
功能描述:输出更新的点位信息的JSON格式文本
示例:如下所示:
{
"name":"ESTOP",
"value":100
}
数据接收方式
组件无输入桩,故不起作用,异步模式同步模式任选。
参数配置
上传文件,上传特定格式的csv点位表,各个字段要按下面范例中给出的顺序和格式填写,其中name字段不能有重复,value字段默认都是0。
比如客户手里有一张原始的点位表

将其转换为下表

addressoffsetnamealiastypebitmaskvalue
00Standby备用u160xFFFF0
10Automation自动控制u160xFFFF0
14Full_auto全自动截割bit0x10000
15Cutting_start开始bit0x20000
16Cutting_pause暂停bit0x40000
17Cutting_stop停止bit0x80000
20ESTOP急停u80xFF000
30Start开机u80xFF000
38Reset复位u80x00FF0
40Bell_set警铃设置u80xFF000
48Bell报警u80x00FF0
50Boring支护掘进u80xFF000
60Reserved_1预留1u80xFF000
68Reserved_2预留2u80x00FF0
70Pump_start油泵启u80xFF000
80Cutting_high_start截高启u80xFF000
88Reserved_3预留3u80x00FF0
90Cutting_low_start截低启u80xFF000
98Reserved_4预留4u80x00FF0
.....................

执行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
前面板操作
添加“文本”组件

后面板操作
添加“modbus_slave2”组件,输出端和“文本”组件的输入端连接。
在右面板“参数设置”页面,上传文件处选择要上传的点位表csv文件,

上传后可以查看

部署状态下的操作
使用Modbus Poll作为对接的测试软件,选择Modbus TCP/IP协议,IP地址为算盘主机的ip地址,端口设置为1502,连接。

发送写单个寄存器命令,Slave ID:1,Address:5,Value(HEX): 6400,点击send发送。

此时,Modbus Slave2 组件接收到 Modbus Poll 发来的报文
01 31 00 00 00 06 01 06 00 05 64 00,数据长度6个字节,slave ID 为1,功能码0x06,address为0x05,写入寄存器的值value为0x6400。对应到点位表address=5,offset=0,type为u8,bitmask=0xFF00,通过
(value & bitmask) >> (8-offset)运算得到最终的value=0x64。此时可以看到前面板的显示文本也显示了json格式的输出
{"name":"Boring","value":100}