10

用AWTK和AWPLC快速开发嵌入式应用程序 (1)-温度控制器

 1 year ago
source link: https://www.eefocus.com/embedded/526700
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

AWPLC 是 ZLG 自主研发的 PLC 系统(兼容 IEC61131-3),本文用一个简单的温度控制系统,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序。

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F1icDErpg0aYs6VQS9NibsVZJpKibSJAibwxGuUwoVibKtmcibG3HVMrfgibokzRm8YNvzsIBsibIwuX7ibFANQRMib2whWJg%2F640%3Fwx_fmt%3Djpeg&s=d43659  背景

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 中 低代码开发方法 引入到嵌入式软件,从而提高嵌入式软件的开发效率和可靠性。

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F1icDErpg0aYs6VQS9NibsVZJpKibSJAibwxGuUwoVibKtmcibG3HVMrfgibokzRm8YNvzsIBsibIwuX7ibFANQRMib2whWJg%2F640%3Fwx_fmt%3Djpeg&s=d43659  简介

本文用一个简单的温度控制系统,来演示如何用 AWTK 和 AWPLC 快速开发嵌入式应用程序。

1. 系统组成

该系统包括:

一个温度传感器。用来感知环境温度;

一个风扇。在环境温度偏高时,用来散热,降低环境温度;

一个加热器。在环境温度偏低时,用来加热,提高环境温度。

2. 软件模拟

温度传感器用一个 slider 控件来模拟,可以手动调节环境温度,来测试系统的工作情况。

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F1icDErpg0aYsg9iaic8Aia8O1Lib3ROYMs2rT8sWPB8fwic1LZHawHD1IJMfa97PqXIhOUugpAN0l5gjy9V0AtcnHrVA%2F640%3Fwx_fmt%3Dpng&s=1b6eda

风扇用一个 GIF 动画控件来模拟,开启风扇后,GIF 开始播放,关闭风扇后,GIF 停止播放。

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_gif%2F1icDErpg0aYsg9iaic8Aia8O1Lib3ROYMs2rT08GCicT9De2YIBicXXa9CDIjvpaGObIicatTQiaMiaoX8RnySfIJeZ65o9A%2F640%3Fwx_fmt%3Dgif&s=592269

加热器用一个 GIF 动画控件来模拟,开启加热器后,GIF 开始播放,关闭加热器后,GIF 停止播放。

3. PLC 程序

3.1 变量定义

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

Temperature 表示当前的温度。映射到模拟输入 (%IW4)。

Fan 风扇开关。映射到第一个数字输出 (%QX0.0)。

Heater 加热器开关。映射到第二个数字输出 (%QX0.1)。

具体配置如下图所示:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F1icDErpg0aYsg9iaic8Aia8O1Lib3ROYMs2rTtrUAkUuWLGXWU2dVIdTFmT8aO5YwWAyvIK9vIv8uftkgvkkMqUibx5g%2F640%3Fwx_fmt%3Dpng&s=6b6a2d

3.2 功能块图

基本工作原理:当温度高于指定值时开启风扇,在温度低于指定的值时开启加热器。

为了防止温度在临界点时,风扇和加热器频繁开启和关闭,需要做点改进:

当温度高于 35 摄氏度时,开启风扇,低于 30 摄氏度才关闭风扇。

当温度低于 20 摄氏度时,开启加热器,高于 25 摄氏度才关闭加热器。

具体实现如下图所示:

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F1icDErpg0aYsg9iaic8Aia8O1Lib3ROYMs2rTvIdu7BUK6Z55wAG3EkRhoMHhzwrDV9nFkp0MdNoBaIJMOk5frJh20g%2F640%3Fwx_fmt%3Dpng&s=e478dc

4. 用户界面

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

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

<window v-model="io+plc" tr_text="AWPLC demo">

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

<gif image="fan" v-data:running="{_QX0.0}" sensitive="false"/>

<gif image="fire" v-data:running="{_QX0.1}" sensitive="false"/>

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

forward?url=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F1icDErpg0aYsg9iaic8Aia8O1Lib3ROYMs2rTPGRH1YvSGuySSUkThykEBWB5xkBfHQSMQEzIjcgPymiaicYEe8w0JnEw%2F640%3Fwx_fmt%3Dpng&s=38c960

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

AWPLC 等您来玩!

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


版权声明:与非网经原作者授权转载,版权属于原作者。文章观点仅代表作者本人,不代表与非网立场。文章及其配图仅供工程师学习之用,如有侵权或者其他问题,请联系本站作侵删。 侵权投诉


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK