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

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

3天内不再提示

【产品应用】用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (3)- 定时器

ZLG致远电子 2022-11-02 10:02 次阅读

AWPLC 是 ZLG 自主研发的 PLC 系统(兼容 IEC61131-3),本文用一个用定时器实现的走马灯程序,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序。

9b7a695e-5790-11ed-b116-dac502259ad0.jpg  背景

AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。

AWPLC 是 ZLG 自主研发的 PLC 系统(兼容 IEC61131-3),其中 AWPLC 的运行时库(Runtime)基于 ZLG TKC 开发,可以移植到到任何主流 RTOS 和嵌入式系统。AWPLC 的集成开发环境(IDE)基于 AWTK 开发,可以运行在 Windows、MacOS 和 Linux 系统之上。AWPLC 的主要目标之一是把 PLC 中低代码开发方法引入到嵌入式软件,从而提高嵌入式软件的开发效率和可靠性。

9b7a695e-5790-11ed-b116-dac502259ad0.jpg  简介

之前我们用 AWPLC 实现了一个手动的走马灯(用AWTK和AWPLC快速开发嵌入式应用程序(2)-走马灯),按下一次按钮就点亮下一个灯,能不能做到让程序自动切换呢?当然是可以的。下面我们就用定时器来自动切换的走马灯。

PLC 里有 3 种标准的定时器:

9b8cb050-5790-11ed-b116-dac502259ad0.png

TON 通电延时定时器。输入为高电平时启动定时器;

TOFF 断电延时定时器。输入为低电平时启动定时器;

TP 脉冲延时定时器。输入为脉冲时启动定时器。

AWPLC 实现了这三种定时器,但是这几种定时器本身没有循环定时的功能。要实现循环定时,需要额外的重置逻辑和计数器。幸好 AWPLC 扩展了一个循环计数的定时器 ZTIMER,它在定时时间到达时,重新开始计时,并增加计数器的值,这让实现自动切换变得非常简单。

* ZTIMER 中开头的字母 Z 表示是 ZLG 扩展的功能块,AWPLC 的重要特色之一就是高度可扩展,而且会内置 ZLG 多年在嵌入式系统开发中积累的功能块,包括各种算法、协议和实用功能,这将大大简化嵌入式软件的开发。

1. 系统组成

该系统包括:

  • 两个按钮。一个用于启动系统,一个用于停止系统。
  • 8 个 LED。轮流点亮,实现走马灯效果。

2. 软件模拟

  • 按钮和 LED 都用软件模拟。


9b7a695e-5790-11ed-b116-dac502259ad0.jpg  PLC程序

1.变量定义

在本系统中,需要定义几个变量:

START 按钮。映射到第一个数字输入(%IX0.0);

STOP 按钮。映射到第二个数字输入(%IX0.1);

RUNNING 系统运行状态指示;

LEDS 8 个 LED 灯。映射到前 8 个数字(即一个字节)输出(%QB0.0)。

具体配置如下图所示:9bbbb8a0-5790-11ed-b116-dac502259ad0.png

2.功能块图

基本工作原理

  • 按下 START 按钮,将 RUNNING 标志设置为 TRUE;
  • 按下 STOP 按钮,将 RUNNING 标志设置为 FALSE;
  • RUNNING 为 TRUE 时,定时器开始计时,时间到,计数增加 1,移位器移位,点亮下一个灯,如此循环实现走马灯的效果;
  • RUNNING 为 FALSE 时,定时器停止计时。

* 注意常量 1 的数据类型一定要指定为 USINT(即 8 位无符号数),才能保证按 8 位进行循环。

具体实现如下图所示:

9be06754-5790-11ed-b116-dac502259ad0.png


9b7a695e-5790-11ed-b116-dac502259ad0.jpg  用户界面

应用程序不需要编程,用 AWTK Designer 设计好界面,将控件与模型进行绑定即可。下面介绍一下控件与模型的绑定方法。这里用的是 AWTK-MVVM,数据绑定规则与 AWTK-MVVM 是完全一样的。

模型可以用 io、plc 或者 io+plc。io 可以用来绑定 IO 变量,plc 可以用来绑定程序 PLC 内部变量。

示例:

由于符号%在程序里具有特殊功能,所以在绑定 IO 变量时,把%换成_。比如:将%QX0.0写作_QX0.0。

示例:

v-data:pressed="{_IX0.0,mode=TwoWay}"style="push_button"/>

children_layout="default(r=1,c=8)">

程序界面如下所示(为了方便理解,我们把功能块图和变量定义,都放到了界面上):

9bff874c-5790-11ed-b116-dac502259ad0.png

运行效果:点击 START 按钮,8 个 LED 灯会循环点亮。点击 STOP 按钮系统停止运行。

由此可见,在 AWPLC 功能块图的帮助下,我们不要写 C 代码或脚本,即可完成应用程序的开发。AWPLC 用低代码降低了开发的门槛,提高了开发的效率。AWPLC 等您来玩!

AWPLC 目前还处于开发阶段的早期,写这个系列文章的目的,除了用来验证目前所做的工作外,还希望得到大家的指点和反馈。如果您有任何疑问和建议,请在评论区留言。

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

    关注

    5082

    文章

    19105

    浏览量

    304829
收藏 人收藏

    评论

    相关推荐

    AWTK-WEB 快速入门(2) - JS 应用程序

    导读AWTK可以使用相同的技术栈开发各种平台的应用程序。有时我们需要使用Web界面与设备进行交互,本文介绍一下如何使用JS语言开发AWTK-
    的头像 发表于 12-05 01:04 93次阅读
    <b class='flag-5'>AWTK</b>-WEB <b class='flag-5'>快速</b>入门(2) - JS <b class='flag-5'>应用程序</b>

    AWTK-WEB 快速入门(1) - C 语言应用程序

    导读AWTK可以使用相同的技术栈开发各种平台的应用程序。有时我们需要使用Web界面与设备进行交互,本文介绍一下如何使用C语言开发AWTK-W
    的头像 发表于 11-27 11:46 188次阅读
    <b class='flag-5'>AWTK</b>-WEB <b class='flag-5'>快速</b>入门(1) - C 语言<b class='flag-5'>应用程序</b>

    AWTK 最新动态:支持浏览控件

    导读AWTK浏览控件,基于webview项目实现,将浏览嵌入AWTK应用程序中,让
    的头像 发表于 11-20 01:05 189次阅读
    <b class='flag-5'>AWTK</b> 最新动态:支持浏览<b class='flag-5'>器</b>控件

    AWTK使用经验】如何使用系统输入法与开启最大化窗口功能

    导读AWTK是基于C语言开发的跨平台GUI框架。AWTK使用经验系列文章将介绍开发AWTK过程中一些常见问题与解决方案。
    的头像 发表于 11-14 01:05 219次阅读
    【<b class='flag-5'>AWTK</b>使用经验】如何使用系统输入法与开启最大化窗口功能

    EsDA,一站嵌入式软件

    EsDA是一套面向工业智能物联领域的嵌入式系统设计自动化工具集,包含实时操作系统AWorksLP、低代码开发平台AWStudio、资源管理平台AXPI、跨平台GUI引擎AWTK和云服务平台ZWS
    的头像 发表于 09-15 08:10 280次阅读
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b>软件

    七大嵌入式GUI盘点

    采用纯C语言开发。它的作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGLC语言编写,以实现最大的兼容性(与C++兼容),模拟可在没有嵌入式硬件的PC
    发表于 09-02 10:58

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发应用程序开发等多个方面。以下是
    的头像 发表于 09-02 09:11 480次阅读

    AWTK最新动态】AWTK 1.8版本发布

    是什么AWTK全称ToolkitAnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统、WEB、各种小程序、手机和PC打造的通用GUI引擎,为用户提供一
    的头像 发表于 08-30 12:48 431次阅读
    【<b class='flag-5'>AWTK</b>最新动态】<b class='flag-5'>AWTK</b> 1.8版本发布

    MSP430嵌入式应用程序二进制接口

    电子发烧友网站提供《MSP430嵌入式应用程序二进制接口.pdf》资料免费下载
    发表于 08-30 11:43 0次下载
    MSP430<b class='flag-5'>嵌入式</b><b class='flag-5'>应用程序</b>二进制接口

    嵌入式QT常见开发方式有哪些?

    嵌入式QT常见开发方式有哪些? 嵌入式工程师在学习和使用Qt进行开发时,常见的几种开发方式包括: 1.Qt Widgets编程: 通过C
    发表于 08-12 10:05

    深度详解嵌入式系统专用轻量级框架设计

    MR 框架是专为嵌入式系统设计的轻量级框架。充分考虑了嵌入式系统在资源和性能方面的需求。通过提供标准化的设备管理接口,极大简化了嵌入式应用开发的难度,帮助
    发表于 04-27 02:32 984次阅读
    深度详解<b class='flag-5'>嵌入式</b>系统专用轻量级框架设计

    再谈嵌入式实时操作系统

    由于嵌入式处理早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式操作系统可以支持新时代
    的头像 发表于 04-09 17:27 788次阅读
    再谈<b class='flag-5'>嵌入式</b>实时操作系统

    【从0开始创建AWTK应用程序】编译应用到RTOS平台

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用
    的头像 发表于 03-21 08:23 606次阅读
    【从0开始创建<b class='flag-5'>AWTK</b><b class='flag-5'>应用程序</b>】编译应用到RTOS平台

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

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

    51单片机定时器定时1秒程序流水灯结果分析

    51单片机是一种广泛应用的嵌入式微控制器,具有高性能、低功耗、易扩展等优势。在实际应用中,定时器常用于定时操作,如控制程序运行时间、生成精确的时间延时等。本文将详细介绍51单片机
    的头像 发表于 12-26 14:57 7170次阅读