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

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

1. 功能

不用编写代码,实现对远程设备数据的显示和修改。

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

相关推荐

  1. AWTK 开源串口 MODBUS Server 模型

    2024-04-01 18:40:02       33 阅读
  2. AWTK 开源串口的配置文件

    2024-04-01 18:40:02       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 18:40:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 18:40:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 18:40:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 18:40:02       18 阅读

热门阅读

  1. 使用C++ opencv创建小视口

    2024-04-01 18:40:02       13 阅读
  2. redis 常用命令

    2024-04-01 18:40:02       15 阅读
  3. docker run 使用 -p 命令一直显示端口被占用

    2024-04-01 18:40:02       15 阅读
  4. git 更改仓库地址

    2024-04-01 18:40:02       17 阅读
  5. 2024.2.6力扣每日一题——魔塔游戏

    2024-04-01 18:40:02       15 阅读
  6. Python 树结构库treelib使用教程

    2024-04-01 18:40:02       15 阅读
  7. npm常用命令详解

    2024-04-01 18:40:02       15 阅读
  8. 蓝桥杯备考随手记: practise03

    2024-04-01 18:40:02       13 阅读
  9. git - - - 克隆仓库时输入指定账号和密码

    2024-04-01 18:40:02       13 阅读
  10. Profile Recovery

    2024-04-01 18:40:02       14 阅读
  11. 安装pygimli

    2024-04-01 18:40:02       14 阅读