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。
比如客户手里有一张原始的点位表
将其转换为下表
address | offset | name | alias | type | bitmask | value |
---|---|---|---|---|---|---|
0 | 0 | Standby | 备用 | u16 | 0xFFFF | 0 |
1 | 0 | Automation | 自动控制 | u16 | 0xFFFF | 0 |
1 | 4 | Full_auto | 全自动截割 | bit | 0x1000 | 0 |
1 | 5 | Cutting_start | 开始 | bit | 0x2000 | 0 |
1 | 6 | Cutting_pause | 暂停 | bit | 0x4000 | 0 |
1 | 7 | Cutting_stop | 停止 | bit | 0x8000 | 0 |
2 | 0 | ESTOP | 急停 | u8 | 0xFF00 | 0 |
3 | 0 | Start | 开机 | u8 | 0xFF00 | 0 |
3 | 8 | Reset | 复位 | u8 | 0x00FF | 0 |
4 | 0 | Bell_set | 警铃设置 | u8 | 0xFF00 | 0 |
4 | 8 | Bell | 报警 | u8 | 0x00FF | 0 |
5 | 0 | Boring | 支护掘进 | u8 | 0xFF00 | 0 |
6 | 0 | Reserved_1 | 预留1 | u8 | 0xFF00 | 0 |
6 | 8 | Reserved_2 | 预留2 | u8 | 0x00FF | 0 |
7 | 0 | Pump_start | 油泵启 | u8 | 0xFF00 | 0 |
8 | 0 | Cutting_high_start | 截高启 | u8 | 0xFF00 | 0 |
8 | 8 | Reserved_3 | 预留3 | u8 | 0x00FF | 0 |
9 | 0 | Cutting_low_start | 截低启 | u8 | 0xFF00 | 0 |
9 | 8 | Reserved_4 | 预留4 | u8 | 0x00FF | 0 |
... | ... | ... | ... | ... | ... | ... |
执行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
前面板操作
添加“文本”组件
后面板操作
添加“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}