Qinghub设计器实例之modbus协议
Qinghub设计器在设计物联网数据采集时不可避免的需要针对Modbus协议的设备做相关数据采集,这里就我们的实际项目经验分享Modbus协议
你可以通过QingHub作业直接体验试用,也可以根据手册开发相应的代码块。 qinghub项目已经全面开源。
源码文件地址: https://gitee.com/qingplus/qingcloud-platform
基础信息
组件名称 : modbus-connector
组件版本: 1.0.0
组件类型: 系统默认
状 态: 正式发布
组件描述:通过MODBUS 连接网关,采集或下发相关指令到设备端。
配置文件:
配置文件作为MODBUS配置界面元素的基础,MODBUS所有高级配置均可以通过重构该配置文件体现在前端界面上。配置参数分为三组: 基础配置,连接配置,高级配置,一般情况可以随意扩展高级配置。
注: 配置文件仅供修改升级组件式利用,一般情况下对用户透明。无需做任何更改,除非用户需要手动维护组件心跳或通信端口时,一般情况下禁止修改。
df:
component:
name: modbus-connector
type: 2 #1:采集器;2:接收器;3:转换器;4:存储器;5:解析器;6:状态解析器:7:同步器;8:消息通知
transportPort: 49096 #内部akka通信端口
heartbeatCron: 0/30 * * ? * * * #网关心跳数据上报时间
#########本地环境用##########
instance-id: 998
topic: DEMO-TOPIC-998
response-topic: DEMO-TOPIC-RESPONSE-198
executor:
akka-address: 192.168.3.195:49095
rest-address: 192.168.3.195:49090
#############结束##############
parameter:
connection[0]: #组件连接参数数组
name: Host #参数名称,自定义
key: hostName #参数key,自定义
required: true #是否必传 true或false
value-type: string #参数值类型,支持 string, int, float
default-value: 127.0.0.1 #参数默认值,自定义
input-type: input #参数输入类型,支持 input-输入框,select-下拉框
description: 数据采集端TCP 连接地址 #参数值描述,自定义
connection[1]:
name: Port
key: port
required: true
value-type: int
input-type: input
default-value: 502
description: Modbus数据采集端TCP连接端口号
connection[2]:
name: 设备编号
key: equipmentId
required: true
value-type: string
input-type: input
default-value: 80100012
description: 设备编号(平台分配得设备编号)
base[0]:
name: 从站编号
key: slaveId
required: true
value-type: int
input-type: input
description: 采集设备序号(slaveId即设备地址)
base[1]:
name: 功能码
key: functionCode
required: false
value-type: int
input-type: select
select-option: 01|1,02|2,03|3,04|4,05|5,15|15,6|6,16|16
description: 命名空间功能码 [1:读线圈状态、2:读离散输入状态、3:读保持寄存器、4:读输入寄存器,5:写单个线圈,15:写多个线圈,6:写单个保持寄存器,16:写多个保持寄存器]
base[2]:
name: 偏移量
key: offset
required: false
value-type: int
input-type: input
description: 偏移量
base[3]:
name: 数量
key: numberOfRegisters
required: true
value-type: int
input-type: input
default-value: 1
description: 继承器数量(从偏移量开始读取多少个继承器)
base[4]:
name: Encapsulated
key: encapsulated
required: false
value-type: int
input-type: select
select-option: true|1,false|2
default-value: 1
description: Master发送指令到slave时得消息格式为EncapMessage或者XaMessage
advance[0]:
name: CRON
key: cron
required: true
value-type: string
input-type: input
default-value: 1/10 * * ? * * *
description: 网关采集器定时任务
组件测试
- 配置网关
从组件列表中选择modbus-connector并拖动到作业设计器。
- 参数说明
修改右侧配置参数并保存,参数使用说明可以通过每个参数旁边的?查看。
参数含义可以对照Modbus Slave 软件中的相关信息。 Modbus Slave 下载
- 启动网关
注意观察执行日志,确保网关正常运行,状态status 字段为1时表示正常运行中
- 测试验证
1)前提准备:
下载并启动 Modbus Slave 调试工具
连接成功后记录相关信息:
IP: 192.168.3.45
Port : 502
Slave ID: 1
function code : 3
偏移量: 0 (我们以0位作为测试数据)
2)进入到轻云UC通用设计中心,进入到设计器,并拖动modbus-connector组件到画板。
按规上面modbus slave 中的配置信息,设定好modbus-connector配置信息:
注意配置中的功能码,偏移量,从站编号,IP ,端口,需要与测试工具中的配置信息一致。
3)切换到UC设计器,重启modbus-connector网关,可以从执行日志板块看到数据。
这里的数据时定时获取的,通过配置参照中的表达式。如: 1/10 * * ? * * * 每10秒获取一次数据。
你可以通过Qinghub作业直接体验试用,也可以根据手册开发相应的代码块。 qinghub项目已经全面开源。
源码文件地址: https://gitee.com/qingplus/qingcloud-platform
qinghub作业配置