AWTK 开源串口屏开发(16) - 提供 MODBUS 服务

在 AWTK 串口屏中,内置了 Modbus Server(从站)的模型,不用编写一行代码即可让串口屏提供 Modbus 服务。

1. 功能

让串口屏提供 Modbus 服务:

  • 界面可以修改 input_register 中的数据,Modbus 客户端可以读取 input_register 的数据。
  • 界面可以显示 registers 中的数据,Modbus 客户端可以修改 registers 的数据。

2. 创建项目

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

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

3. 制作界面

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

4. 添加绑定规则

4.1 URL

绑定属性 绑定规则 说明
v-data:value {url} url 表示远程设备的 URL

4.3 unit id

绑定属性 绑定规则 说明
v-data:value {unit_id} 设备 ID

4.3 当前湿度

绑定属性 绑定规则 说明
v-data:value {当前湿度} 当前湿度 在配置文件中定义,参考后面的配置

4.4 当前温度

绑定属性 绑定规则 说明
v-data:value {当前温度} 当前温度 在配置文件中定义,参考后面的配置

4.5 预设湿度

绑定属性 绑定规则 说明
v-data:value {预设湿度} 预设湿度 在配置文件中定义,参考后面的配置

4.6 预设温度

绑定属性 绑定规则 说明
v-data:value {预设温度} 预设温度 在配置文件中定义,参考后面的配置

4.7 窗口模型

  • 指定窗口的模型为
绑定属性 绑定规则 说明
v-model modbus_server 配置文件名为 modbus.json

5. 配置文件

配置文件路径 design/default/data/modbus.json

json 复制代码
{
  "url": "tcp://localhost:502",
  "channels": [
    {
      "name": "bits",
      "writable": true,
      "start": 0,
      "length": 100
    },
    {
      "name": "input_bits",
      "start": 0,
      "length": 200
    },
    {
      "name": "registers",
      "writable": true,
      "start": 0,
      "length": 300
    },
    {
      "name": "input_registers",
      "start": 0,
      "length": 400
    }
  ],
  "variables": {
    "当前温度": "input_registers.word[0]",
    "当前湿度": "input_registers.word[1]",
    "预设温度": "registers.word[0]",
    "预设湿度": "registers.word[1]"
  }
}

配置文件格式请参考:modbus_server_model

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

7. 编译运行

运行 bin 目录下的 demo 程序:

8. 注意

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

  • 完整示例请参考:demo_modbus_server_registers

相关推荐
李先静3 天前
移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (6) - 触屏事件
android·华为·harmonyos·awtk
李先静3 天前
移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (4) - 平台适配
华为·harmonyos·鸿蒙系统·awtk
李先静4 天前
移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (1) - 让 OpenGLES 应用跑起来
华为·harmonyos·awtk
李先静6 天前
移植 AWTK 到 纯血鸿蒙(HarmonyOS NEXT)系统 (0) - 序
华为·harmonyos·鸿蒙系统·awtk
李先静19 天前
AWTK fscript 中的 widget 扩展函数
awtk·fscriipt
帝晶光电智慧屏25 天前
DJN人机交互解决方案
人工智能·人机交互·串口屏·串口触摸屏·显示模组
李先静2 个月前
AWTK fscript 中的 value 扩展函数
awtk·fscriipt
李先静2 个月前
AWTK HTML View 控件更新
html·awtk
启明智显3 个月前
【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选
触摸屏·串口屏·hmi人机交互·hmi芯片·hmi方案·hmi显示屏·4.3寸触摸串口屏
启明智显3 个月前
【启明智显分享】基于国产Model3芯片的7寸触摸屏助力智慧医疗,电子床头屏提升护理交互
人机交互·串口屏·model3·7寸彩屏·7寸触摸屏·hmi方案·医疗床头屏