名称: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