从模板创建项目,将 hmi/template_app 拷贝 hmi/modbus_client_channel_input_registers 即可。
第一个项目最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。
属性 | 值 | 说明 |
v-for-items | true | 它保证其下的列表项,会根据数据自动生成| |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {index} | index 特指序数。 |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {one_of(‘调试;信息;警告;错误’, item.level)} | 这里的 one_of 的功能是从指定的字符串数组中取出对应的子串。 |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {date_time_format(item.time, 'Y-M-D h:m:s')} | 需要用 date_time_format 将 epoch 时间转换成人类可读的时间。 |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {item.message} |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {url} | url 表示远程设备的 URL |
绑定属性 | 绑定规则 | 说明 |
v-data:value | {connected ? ‘connected’ : ‘no connection’} | connected 表示当前是否连接 |
4.8 窗口模型
指定窗口的模型为:
绑定属性 | 绑定规则 | 说明 |
v-model | modbus_client(name=modbus_demo) | 配置文件名对应于 modbus_demo.json |
modbus_client 是内置的模型,name 是配置文件的名称,不需要加后缀。
4.9 视图模型
为了使用 channel 的模型,还需要在窗口的下一级控件指定 modbus_client_channel 模型。
绑定属性 | 绑定规则 | 说明 |
v-model | modbus_client_channel(name=modbus_demo_input_register) | 配置文件名对应于 modbus_demo_input_register.json |
modbus_client_channel 是内置的模型,name 是配置文件的名称,不需要加后缀。
配置文件路径 design/default/data/modbus_demo.json
{
"url":"tcp://localhost:502",
"channels" : [
{
"update_interval" : 5000,
"name" : "read_input_registers",
"access_type" : 4,
"read" : {
"offset" : 0,
"length" : 3200
}
}
]
}
配置文件路径 design/default/data/modbus_demo_input_register.json
{
"channel":"read_input_registers",
"items": 100,
"variables": {
"level": "byte[0].uint32",
"time": "byte[4].uint32",
"message": "byte[8].str[56]"
}
}
在上面的配置中,将通道 read_input_registers 中的数据,分成 100 等份,也就是看作 100 元素的数组,每个元素 64 字节。这 64 字节的数据为三个成员:
level: 4 字节,无符号整数;
time: 4 字节,无符号整数;
message: 56 字节,字符串。
点击 Update 按钮,可以手工刷新数据
使用 TCP 协议时,如果使用 modbus slave 工具 配套测试,需要将 unit id 设置为 255。
更多往期文章,请点击“ 阅读原文 ”。