0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AWTK 开源串口屏开发(17) - 通过 MODBUS 访问数组数据

ZLG致远电子 2024-04-29 08:25 次阅读

在 AWTK 串口屏中,内置 MODBUS 客户端通道模型,不用编写代码即可实现在 ListView 中显示远程设备上的数组数据。

1. 功能

不用编写代码,实现对远程设备上数组数据的显示。

2. 创建项目

从模板创建项目,将 hmi/template_app 拷贝 hmi/modbus_client_channel_input_registers 即可。

第一个项目最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。


3. 制作界面

用 AWStudio 打开上面 modbus_client_channel_input_registers 目录下的 project.json 文件。里面有一个空的窗口,做出类似下面的界面。f10087fe-05be-11ef-9118-92fbcf53809c.png

4. 添加绑定规则

第一次用到列表视图,有几点需要特别说明一下:列表视图中的滚动视图需要指定v-for-items属性。

属性

说明

v-for-items

true

它保证其下的列表项,会根据数据自动生成|

4.1 几个特殊的变量

  • index 特指序数。
  • item 特指当前的数据。比如在这里‘item.level’表示告警级别,‘item.time’表示时间,‘item.device’表示设备,‘item.message’表示告警信息
  • selected_index 表示当前选中的序数(可在列表视图之外绑定)。
  • items 表示当前列表视图中的数据个数(可在列表视图之外绑定)。

4.2序数

绑定属性

绑定规则

说明

v-data:value

{index}

index 特指序数。

4.3告警级别前面提到告警级别是正数,可以通过 item.level 来获取它。它的意义对应为:调试(0);信息(1);警告(2);错误(3),我们需要用 one_of 函数将它转换为对应的字符串。

绑定属性

绑定规则

说明

v-data:value

{one_of(‘调试;信息;警告;错误’, item.level)}

这里的 one_of 的功能是从指定的字符串数组中取出对应的子串。

4.4时间时间是整数(秒数),可以通过 item.time 来获取。

绑定属性

绑定规则

说明

v-data:value

{date_time_format(item.time, 'Y-M-D hs')}

需要用 date_time_format 将 epoch 时间转换成人类可读的时间。

4.5告警信息告警信息是一个字符串,可以通过 item.message 来获取。

绑定属性

绑定规则

说明

v-data:value

{item.message}

4.6URL

绑定属性

绑定规则

说明

v-data:value

{url}

url 表示远程设备的 URL

4.7连接状态

绑定属性

绑定规则

说明

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 是配置文件的名称,不需要加后缀。


5. 配置文件

配置文件路径 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 } } ]}

在上面的配置中,定义了通道 read_input_registers,长度为 3200个 registers,共 6400字节。

配置文件路径 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 字节,字符串。


6. 描述需要持久化的数据

7. 编译运行

运行 bin 目录下的 demo 程序:

f108197e-05be-11ef-9118-92fbcf53809c.gif

点击Update按钮,可以手工刷新数据

8. 注意

  • 本项目并没有编写界面相关的代码,AWStudio 在 src/pages 目录下生成了一些代码框架,这些代码并没有用到,可以删除也可以不用管它,但是不能加入编译。
  • 完整示例请参考:demo_modbus_client_channel_input_registers。

使用 TCP 协议时,如果使用 modbus slave 工具配套测试,需要将 unit id 设置为 255。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3309

    浏览量

    42471
  • 串口屏
    +关注

    关注

    8

    文章

    532

    浏览量

    37421
  • awtk
    +关注

    关注

    0

    文章

    44

    浏览量

    226
收藏 人收藏

    评论

    相关推荐

    AWTK 开源智能串口方案

    AWTK开源智能串口方案发布,旨在解决传统串口诸多痛点,为用户提供更开放、更易用、更强大的
    的头像 发表于 12-02 08:24 944次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案

    ​【AWTK开源智能串口方案】方案介绍和工作原理

    本篇文章介绍一下AWTK开源智能串口方案的基本原理和实际使用效果,包括主要特点、应用场景、工作原理以及简单的Demo演示。引言:AWTK-
    的头像 发表于 12-21 08:24 984次阅读
    ​【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】方案介绍和工作原理

    AWTK 串口开发(3) - 告警信息

    告警信息是一个常用的功能。在AWTK开源串口中,内置告警信息模型,只需设计用户界面即可实现告警信息的显示和管理。1.功能告警信息是一个常用的功能,MCU在设备异常时,会发送告警信息到
    的头像 发表于 12-23 08:24 446次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(3) - 告警信息

    AWTK 串口开发(4) - 数据采集

    数据采用是一个常用的功能。在AWTK开源串口中,内置数据采样模型,只需设计用户界面即可实现采样
    的头像 发表于 12-30 08:24 398次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(4) - <b class='flag-5'>数据</b>采集

    AWTK 串口开发(5) - MCU端 SDK 用法

    AWTK开源智能串口,不但开放了串口端全部源码,还提供了MCU端SDK,大大加快MCU软件的
    的头像 发表于 01-06 08:24 423次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(5) - MCU端 SDK 用法

    AWTK 开源串口开发(6) - 定时器的用法

    定时器是个常用的功能,AWTK串口提供了丰富的定时器函数,用于定时器的启动、停止、暂停、恢复、修改和重置等功能,本文以计时器的例子来介绍定时器的基本用法。定时器也是一个常用的功能,在AWTK
    的头像 发表于 01-13 08:24 568次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(6) - 定时器的用法

    AWTK开源智能串口方案】HMI端程序移植编译及运行

    本篇文章介绍一下AWTK开源智能串口方案的串口端(即HMI端)的编译运行步骤,并介绍如何将H
    的头像 发表于 01-18 08:24 912次阅读
    【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】HMI端程序移植编译及运行

    AWTK 开源串口开发(7) - 屏幕保护

    现在的屏幕其实并不需要屏幕保护程序来“保护”,不过屏幕保护程序会衍生一些其它用途。比如,保护隐私、数据安全和显示广告等等。本文介绍一下在AWTK串口中,实现屏幕保护程序的方法。现代屏
    的头像 发表于 01-20 08:24 333次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(7) - 屏幕保护

    AWTK 开源串口开发(9) - 用户和权限管理

    AWTK串口中,内置用户管理和权限控制的模型,无需编码即可实现登录、登出、修改密码、权限控制、创建用户、删除用户等功能,本文介绍一下用户管理和权限控制的基本用法。用户管理和权限控制是一个常用
    的头像 发表于 02-19 12:10 503次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(9) - 用户和权限管理

    AWTK开源智能串口方案】MCU SDK使用与编译运行

    代码智能串口方案,本系列文章介绍如何从零开发HMI程序,包括搭建开发环境、创建HMI运行时工程、修改应用界面以及开发MCU程序。MCU端简
    的头像 发表于 02-19 12:11 1195次阅读
    【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】MCU SDK使用与编译运行

    AWTK开源智能串口方案】设计UI界面并上传到串口

    本篇文章将介绍如何使用AWStudio设计串口端的UI界面和添加绑定规则,以及怎么将资源文件上传到串口端。引言:AWTK-HMI是基于
    的头像 发表于 02-22 08:24 714次阅读
    【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】设计UI界面并上传到<b class='flag-5'>串口</b><b class='flag-5'>屏</b>

    AWTK 开源串口开发(11) - 天气预报

    AWTK串口内置了XML/JSON/INI等各种数据文件的模型,并支持用HTTP/HTTPS从网络获取数据。不用编写一行代码,即可实现天气
    的头像 发表于 03-05 08:24 395次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(11) - 天气预报

    AWTK 开源串口开发(12) - 记事本应用

    传统的的串口中,开发一个记事本应用,即使可能,也是非常麻烦的事情。在AWTK串口中,内置文件
    的头像 发表于 03-09 08:23 345次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(12) - 记事本应用

    AWTK 开源串口开发(15) - 通过 MODBUS 访问远程数据

    AWTK串口内置MODBUSClient模型,支持用MODBUS协议从远程设备获取数据。不用编写代码即可实现对远程设备
    的头像 发表于 03-30 08:23 398次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(15) - <b class='flag-5'>通过</b> <b class='flag-5'>MODBUS</b> <b class='flag-5'>访问</b>远程<b class='flag-5'>数据</b>

    AWTK 开源串口开发(16) - 提供 MODBUS 服务

    AWTK串口内置MODBUS从站模型,不用编写一行代码即可让串口提供
    的头像 发表于 04-13 08:24 449次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>开发</b>(16) - 提供 <b class='flag-5'>MODBUS</b> 服务