在 AWTK 串口屏中,内置了 MODBUS Client 的模型,支持用 MODBUS 协议从远程设备获取数据。不用编写一行代码即可实现对远程设备数据的显示和修改。
从模板创建项目,将 hmi/template_app 拷贝 hmi/modbus_client_input_registers 即可。
第一个项目最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。
绑定属性 | 绑定规则 | 说明 |
v-data:value | {url} | url 表示远程设备的 URL |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {connected ? ‘connected’ : ‘no connection’} | connected 表示当前是否连接 |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {湿度} | 湿度 在配置文件中定义,参考后面的配置 |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {温度} | 温度 在配置文件中定义,参考后面的配置 |
绑定属性 | 绑定规则 | 说明 |
v-model | modbus_client(name=modbus_demo) | 配置文件名对应于 modbus_demo.json |
modbus_client 是内置的模型,name 是配置文件的名称,不需要加后缀。
配置文件路径 design/default/data/modbus_demo.json
{
"url":"tcp://localhost:502",
"channels" : [
{
"update_interval" : 3000,
"name" : "read_input_registers",
"access_type" : 4,
"read" : {
"offset" : 0,
"length" : 4
}
}
],
"variables": {
"温度": "read_input_registers.word[0]",
"湿度": "read_input_registers.word[1]"
}
}
• url: 远程设备的 URL
• update_interval: 更新间隔,单位毫秒
• channels: 通道列表
• name: 通道名称
• access_type: 访问类型
• read: 读取配置
• offset: 偏移
• length: 长度
• variables: 变量列表
• 温度: 映射到 modbus 通道的 word[0]
• 湿度: 映射到 modbus 通道的 word[1]
点击 Update 按钮,可以手工刷新数据
使用TCP协议时,如果使用modbus slave工具配套测试,需要将unit id设置为255。
更多往期文章,请点击“ 阅读原文 ”。