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

相关推荐
李先静21 天前
AWTK fscript 中的 value 扩展函数
awtk·fscriipt
李先静1 个月前
AWTK HTML View 控件更新
html·awtk
启明智显2 个月前
【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选
触摸屏·串口屏·hmi人机交互·hmi芯片·hmi方案·hmi显示屏·4.3寸触摸串口屏
启明智显2 个月前
【启明智显分享】基于国产Model3芯片的7寸触摸屏助力智慧医疗,电子床头屏提升护理交互
人机交互·串口屏·model3·7寸彩屏·7寸触摸屏·hmi方案·医疗床头屏
启明智显3 个月前
【启明智显分享】2.8寸触摸串口屏SC05 Plus应用于智能血压计
启明智显·串口屏·hmi人机交互·hmi方案·乐鑫方案·智能血压计·2.8寸串口屏
启明智显3 个月前
【启明智显分享】乐鑫ESP32-S3R8方案2.8寸串口屏:高性能低功耗,WIFI/蓝牙无线通信
嵌入式硬件·串口屏·hmi·hmi人机交互·hmi方案·hmi显示屏·乐鑫方案
李先静5 个月前
AWTK 开源串口屏开发(18) - 用 C 语言自定义命令
c语言·串口屏·awtk
李先静5 个月前
AWTK 和 QT 资源占用不完全对比
awtk
启明智显6 个月前
LINUX系统触摸工业显示器芯片应用方案--Model4(简称M4芯片)
linux·启明智显·串口屏·model 4·m4核心板·工业控制hmi·工业显示芯片