用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (6)-在线调试
AWPLC 目前还处于开发阶段的早期,写这个系列文章的目的,除了用来验证目前所做的工作外,还希望得到大家的指点和反馈。如果您有任何疑问和建议,请在评论区留言。
1. 背景
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 中 低代码开发方法 引入到嵌入式软件,从而提高嵌入式软件的开发效率和可靠性。
2. 简介
在线调试功能对程序员来说非常重要的,没有调试功能就像被人蒙上了眼睛。AWPLC 除了提供打印日志的调试方式外,还提供了在线调试的功能,在线调试不仅支持源码级的断点,还支持功能块级的断点。本文用我们之前讲过的定时器例子,来演示如何使用在线调试功能。
3. 在线调试
3.1 运行被调试的程序
到目前为止,我们都是在 PC 上模拟运行的,runPLC 是 AWPLC 的模拟程序。按下面的方式,可以运行 ztimer 例子。
./bin/runPLC ztimer
3.2 准备调试
在 designer 中打开 ztimer 项目,点击"调试"按钮,可以打开调试界面。
3.2 设置断点
双击功能块可以在对应的功能块上设置断点,设置断点后,功能块上会显示一个小红点表示已经设置了断点。再次双击可以取消该断点。
3.3 开始调试
点击调试界面上的“开始“按钮,开始调试:
当程序运行到指定断点时,对应的代码会高亮,对应的功能块也会有箭头指示。
3.4 查看变量
在线调试最方便的的地方,就是可以查看系统实时的状态,在 AWPLC 中可查看局部变量 (temp 变量),成员变量 (local) 和全局变量 (global)。
这里还需完善,以后将功能块的输入/输出变量直接显示到图上。
4. 总结
AWPLC 调试功能和界面还需要完善,不过总的来说,还是挺方便的。目前 AWPLC 还是一个独立 AWTK 的控件,上面是该控件的演示程序,等成熟后会集成到 AWStudio 里去。