AWTK MODBUS Client channel 模型

名称:modbus_client_channel

在这里插入图片描述

功能:通过 modbus 协议访问远程 slave 设备上的数据,需要配合 modbus_client模型一起使用。用于将 modbus client 中的 channel 包装成view_model或者view_model_array

一般来说不需要,直接使用modbus_client模型即可。只有在需要将通道中的数据当成多条记录,方便绑定到 ListView 时,才需要使用。

1. 参数

  • name 用于加载配置文件。路径为:design/default/data/<name>.json

modbus_client_channel必须在modbus_client模型之下创建。

示例:

<window v-model="modbus_client(name=modbus_demo,share=true)" name="home_page"><view x="0" y="0" w="100%" h="100%" v-model="modbus_client_channel(name=modbus_demo_input_register)">...</view>
</window>  

这里配置文件路径为:design/default/data/modbus_demo_input_register.json

2. 配置文件格式

使用 JSON 文件描述配置。

2.1 基本配置

  • channel 通道的名字。在modbus_client模型的配置中必须存在。

  • items 通道中记录的个数。

items > 1 为数组模型,否则为非数组模型。为数组模型时,可以绑定到 ListView,每一项数据绑定到一个列表项中。
当 items > 1,整个通道的数据被分成 items 等份。每一份的长度为:通道总数据长度/items,数据访问的范围必须在一份数据的长度范围内。

示例:

{"channel":"read_input_registers","items": 100,"variables": {"level": "byte[0].uint32","time": "byte[4].uint32","message": "byte[8].str[54]"}
}  

2.3 变量定义

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

  • 定义变量
  "variables": {"level": "byte[0].uint32","time": "byte[4].uint32","message": "byte[8].str[54]"}
  • 使用变量
  <progress_circle name="progress_circle" x="c" y="100" w="100" h="100" max="10000" v-data:value="{温度}" /><progress_circle name="progress_circle" x="c" y="220" w="100" h="100" max="10000" v-data:value="{湿度}" />

3. 访问通道中的数据。

格式:<通道数据类型>[offset].(bit_offset|<变量数据类型>)

详情 modbus client 中的 访问通道中的数据。不同之处是不需要指定通道名称前缀。

示例:

  • byte[0].uint32 从偏移为 0 的地址读取 32 位无符号整数。
  • byte[4].uint32 从偏移为 4 的地址读取 32 位无符号整数。
  • byte[8].str[54] 从偏移为 8 的地址读取最大长度为 54 字节的字符串。字符串本身必须于以空字符’\0’结束。

内置属性

属性类型说明
url字符串URL
connected布尔当前是否连接。
name字符串名称。

示例

  <label x="c" y="10" w="50%" h="40" v-data:tr_text="{url}" /><label x="c" y="60" w="50%" h="40" v-data:tr_text="{connected ? 'connected' : 'no connection'}" />

内置命令

命令参数说明
update更新通道数据 (read/write)

示例

<button x="c:-100" y="b:10" w="168" h="36" text="Update" v-on:click="{update}" />

完整示例

请参考:demo_modbus_client_channel_input_registers

注意

如果数据需要进行字节序转换,可以调用 fscript 函数,具体请参考:https://gitee.com/zlgopen/awtk/blob/master/docs/fscript_endian.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/651414.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

施耐德 Unity Pro 编程软件导入导出变量

适用范围 施耐德中高端PLC&#xff0c;使用的编程软件为 UnityPro &#xff08;最新版更名为 Ecostructure Control Expert&#xff09; 中端 PLC&#xff1a;Premium&#xff0c;M340高端 PLC&#xff1a;Quantum&#xff0c;M580 导出/导入变量 导出变量可导出【变量和 FB…

[Android14] SystemUI的启动

1. 什么是System UI SystemUI是Android系统级应用&#xff0c;负责反馈系统及应用状态并与用户保持大量的交互。业务主要涉及的组成部分包括状态栏(Status Bar)&#xff0c;通知栏(Notification Panel)&#xff0c;锁屏(Keyguard)&#xff0c;控制中心(Quick Setting)&#xff…

工业测径仪的应用场景和可靠性判断

关键字:线缆测径仪,圆棒测径仪,圆管测径仪,金属棒管测径仪,工业测径仪,智能测径仪 智能测径仪主要应用于以下领域&#xff1a; 金属加工&#xff1a;测量金属线材、棒材、管材等的直径。线缆制造&#xff1a;检测电线、电缆的直径。塑料管材生产&#xff1a;监控塑料管材的外…

ubuntu子系统密码忘记了,怎么办?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

App Inventor 2 网络微数据库你用对了吗?

本文假设你已经会使用网络微数据组件&#xff0c;网络数据库用于多用户系统数据的存储和读取。这里仅分享一下更多拓展知识&#xff0c;以及如何选择适合自己的服务器。 网络微数据组件默认&#xff08;不修改的情况下&#xff09;使用MIT的服务器&#xff0c;它的缺点是由于服…

Docker基本操作 容器相关命令

docker run:运行镜像; docker pause:暂停容器&#xff0c;会让该容器暂时挂起&#xff1b; docker unpauser:从暂停到运行; docker stop:停止容器&#xff0c;杀死进程; docker start:重新创建进程。 docker ps&#xff1a;查看所有运行的容器及其状态&#xff0c;默认只展…

笔记本硬盘坏了怎么把数据弄出来 笔记本硬盘数据恢复一般需要多少钱

现在办公基本都离不开笔记本电脑&#xff0c;就连学生写作业也大多是都在电脑上完成。硬盘作为电脑存储的重要组成部分&#xff0c;承载着存储文件和各类软件的重任。如果硬盘出现故障&#xff0c;基本上这台电脑就无法正常工作&#xff0c;同时我们可能面临丢失很多重要的数据…

面试经典150题——求根节点到叶节点数字之和

​ 1. 题目描述 2. 题目分析与解析 2.1 思路一——DFS 理解问题&#xff1a; 首先要理解题目的要求&#xff0c;即对于给定的二叉树&#xff0c;我们需要找出从根节点到所有叶子节点的所有路径&#xff0c;然后将每一条路径上的数字组成一个整数&#xff0c;最后求出这些整数…

数据治理和数据管理 傻傻分不清楚?

互联网时代&#xff0c;数据&#xff0c;这一无形资产&#xff0c;已成为现代企业的核心竞争力。如何高效地管理和利用数据&#xff0c;成为企业关注的焦点。在这个过程中&#xff0c;数据治理&#xff08;Data Governance&#xff09;和数据管理&#xff08;Data Management&a…

Web-SpringBootWen

创建项目 后面因为报错&#xff0c;所以我把jdk修改成22&#xff0c;仅供参考。 定义类&#xff0c;创建方法 package com.start.springbootstart.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotati…

如果把软路由的网段更换成169.254.0.0/16会咋样?

前言 这几天有小伙伴在折腾软路由系统&#xff0c;然后问题就来了。 他咨询的是&#xff1a;为啥电脑连接软路由之后&#xff0c;无法访问软路由的管理页&#xff1f; 嗯。。。确实不是什么大事。但不注意看&#xff0c;还以为软路由没有正常获取到ip。 熟悉网络的小伙伴们都…

SpringBoot+MyBatis-Plus+jsqlparser实现多租户功能

前言 多租户技术&#xff08;multi-tenancy technology&#xff09;是一种软件架构技术&#xff0c;它允许在单个系统实例上为多个用户或组织提供服务&#xff0c;同时确保这些用户之间数据的隔离性。在多租户架构中&#xff0c;每个租户&#xff08;可以是个人用户、企业、组…