AWTK 开源串口屏 MODBUS Server 模型

发布于:2024-04-19 ⋅ 阅读:(22) ⋅ 点赞:(0)

名称:modbus_server

功能:通过 modbus 协议提供服务,供远程客户端(主站)访问。

1. 创建

通过 modbus_server 创建模型。

示例:

<window v-model="modbus_server" name="home_page">

配置文件路径固定为:design/default/data/modbus.json

2. 配置文件格式

使用 JSON 文件描述配置。

2.1 基本配置

  • URL slave 设备的 URL。
  • unit_id slave 设备 ID(TCP 协议无需设置)

示例:

  "url":"tcp://localhost:502",

2.2 通道描述

通道可以有多个,放在 channels 数组中。

  • name 用于访问通道中的数据,取值为:

    • bits 可以用功能码 1 读取,用功能码 15 写入。
    • input_bits 可以用功能码 2 读取。
    • registers 可以用功能码 3 读取,用功能码 16 写入。
    • input_registers 可以用功能码 4 读取。
  • start 起始地址

  • length 数据个数

示例:

  "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 
    }   
  ], 

2.3 变量定义

UI 可以直接绑定通道中的数据。为了提高可读性和灵活性,可以定义一些变量,将变量映射到通道地址。

  • 定义变量
  "variables": {
    "当前温度": "input_registers.word[0]",
    "当前湿度": "input_registers.word[1]",
    "预设温度": "registers.word[0]",
    "预设湿度": "registers.word[1]"
  }  
  • 使用变量
  <label text="URL" />
  <label v-data:value="{url}" />
  <label text="UNIT ID" />
  <label v-data:value="{unit_id}" />
  <label text="当前温度" />
  <edit input_type="int" v-data:text="{当前温度}" />
  <label text="当前湿度" />
  <edit input_type="int" v-data:text="{当前湿度}" />

  <label text="预设温度(客户端发送请求修改)" />
  <label v-data:text="{预设温度}" />
  <label text="预设湿度(客户端发送请求修改)" />
  <label v-data:text="{预设湿度}" />

3. 访问通道中的数据。

请参考:modbus_client

内置属性

属性 类型 说明
url 字符串 URL
unit_id int 设备 ID

示例

  <label text="URL" />
  <label v-data:value="{url}" />
  <label text="UNIT ID" />
  <label v-data:value="{unit_id}" />

内置命令

完整示例

请参考:demo_modbus_server_registers