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-modelmodbus_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

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node-RED是一款基于JavaScript的开源软件,用于创建基于流程的物联网应用程序。Modbus是一种通用的通信协议,常用于连接工业自动化设备。Node-RED通过Modbus插件,可以实现数据采集。 数据采集是指从各种传感器、设备或系统中收集数据的过程。使用Node-RED进行Modbus数据采集可以帮助我们获取工业设备的实时数据,并进行实时监测和分析。 在Node-RED中,我们需要安装Modbus插件来支持Modbus通信。安装插件后,我们可以在流程编辑器中添加Modbus节点,配置节点的通信参数,例如Modbus设备的IP地址和端口号。然后,我们可以选择读取或写入Modbus设备的寄存器数据。 在数据采集过程中,我们可以通过设置定时器节点来定期读取Modbus设备数据。读取到的数据可以保存在本地的数据库中,或者通过其他节点进行处理和分析。我们还可以通过在网页上创建可视化界面,实时展示采集的Modbus数据。 Node-RED的流程编辑器提供了丰富的功能和节点库,可以灵活地处理和展示数据。我们可以根据具体的需求,选择适合的节点进行数据处理。例如,我们可以使用计算节点对数据进行转换、计算或筛选;使用图表节点可视化数据;使用报警节点根据设定的阈值触发警报等等。 通过Node-RED进行Modbus数据采集,我们可以快速建立起一个灵活、可扩展的数据采集系统。同时,Node-RED的直观界面和丰富的节点库,简化了数据采集过程,使我们能够更轻松地获取和利用Modbus设备数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值