AWTK 开源串口屏开发(15) - 通过 MODBUS 访问远程数据

描述

AWTK 串口屏内置MODBUS Client 模型,支持用 MODBUS 协议从远程设备获取数据。不用编写代码即可实现对远程设备数据的显示和修改。

 

在 AWTK 串口屏中,内置了 MODBUS Client 的模型,支持用 MODBUS 协议从远程设备获取数据。不用编写一行代码即可实现对远程设备数据的显示和修改。


 

1. 功能

不用编写代码,实现对远程 MODBUS 设备数据的访问。


 

2. 创建项目

从模板创建项目,将 hmi/template_app 拷贝 hmi/modbus_client_input_registers 即可。

第一个项目最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。


 

3. 制作界面

用 AWStudio 打开上面 modbus_client_input_registers 目录下的 project.json 文件。里面有一个空的窗口,做出类似下面的界面。开源

4. 添加绑定规则

4.1 URL

绑定属性

绑定规则

说明

v-data:value

{url}

url 表示远程设备的 URL
 

4.2 连接状态

绑定属性绑定规则说明
v-data:value{connected ? ‘connected’ : ‘no connection’}

connected 表示当前是否连接

4.3 湿度

绑定属性绑定规则说明
v-data:value{湿度}

湿度 在配置文件中定义,参考后面的配置

4.4 温度

绑定属性绑定规则说明
v-data:value{温度}

温度 在配置文件中定义,参考后面的配置

4.5 窗口模型

  • 指定窗口的模型为

绑定属性

绑定规则

说明

v-model

modbus_client(name=modbus_demo)

配置文件名对应于 modbus_demo.json
 

modbus_client 是内置的模型,name 是配置文件的名称,不需要加后缀。

5. 配置文件

配置文件路径 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]


 

6. 描述需要持久化的数据


 

7. 编译运行

运行 bin 目录下的 demo 程序:

开源

点击 Update 按钮,可以手工刷新数据


 

8. 注意

  • 本项目并没有编写界面相关的代码,AWStudio 在 src/pages 目录下生成了一些代码框架,这些代码并没有用到,可以删除也可以不用管它,但是不能加入编译。
  • 完整示例请参考:demo_modbus_client_input_registers。

使用TCP协议时,如果使用modbus slave工具配套测试,需要将unit id设置为255。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分