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

相关推荐
三易串口屏1 天前
实验20 自动灭火场景实验
嵌入式硬件·串口屏·三易串口屏·uart 通信
三易串口屏4 天前
实验16 修改波特率,校验位,停止位实验
嵌入式硬件·串口屏·工业控制·c脚本
三易串口屏4 天前
实验15 视频控件实验
音视频·串口屏·三易串口屏·uart 通信
三易串口屏8 天前
实验10 物理按键实验
单片机·51单片机·串口屏·串口协议·uart 通信·嵌入式 ui
三易串口屏8 天前
实验1 实时显示单片机的参数(整数、小数、中文 系统指令方式)
c语言·单片机·嵌入式硬件·mongodb·串口屏·三易串口屏
三易串口屏9 天前
实验2 实时显示单片机的参数(整数、小数、中文 自定义协议方式)
单片机·物联网·mongodb·自动化·串口屏·医疗器械·工控设备
The_superstar63 个月前
陶晶驰串口屏使用
ui·串口屏·串口通讯·ui设计·lcd显示
非鱼䲆鱻䲜4 个月前
淘晶驰串口屏使用波形图控件,接收单片机或者串口助手数据生成图像的区别
单片机·嵌入式·串口屏
pawpaw774 个月前
国产 7 寸 HMI 屏比选(128M 内存 + 128M 存储 + 网口 + USB+WIFI)
串口屏·组态屏·hmi人机界面·国产7寸触摸屏·比选
李先静4 个月前
经典 PLC 程序(4) - 消音按钮
awtk·awplc