{PLC,IOT}>ESP32 产品化

         {PLC,IOT}>ESP32 项目的基础研究,解决了一些方向的问题:

1、运行平台(RUNTIME)固件 和  PLC应用程序 之间的协同机制。所有硬件驱动、实时操作系统(FreeRTOS)、通信协议栈(LWIP)、应用支持库(MQTT、MODBUS等)、PLC标准库、物联网扩展库,以及调试维护支持库,整合为一个运行平台固件,烧录到ESP32的flash。提取ESP32-IDF的工具链,整合到 OpenPLC-Editor 开发平台,独立编译PLC应用程序,生成轻量级的ELF文件,通过运行平台把生成的ELF文件存储到板载文件系统,运行平台加载PLC应用程序到ESP32的指令空间,用最高的任务优先级执行PLC应用任务。运行平台固件和PLC应用程序分离,将PLC应用程序的代码缩减到近可能小,对于实现远程升级维护,至关重要。

2、工具链整合。ESP32-IDF的工具链中,仅GCC编译、链接器和标准库,是生成PLC应用程序ELF必需的;编译辅助工具 cmake、ninja,是执行编译任务的必要支撑。在OpenPLC-Editor中将工具栏的按钮改成启动编译任务的命令,将工具链嵌入到OpenPLC-Editor开发平台中。

3、硬件的IO映射。开发代码自动生成程序,解析OpenPLC生成的结构化文本程序:generated_plc.st , 获取输入输出端口的指定指令   AT %xxx,生成可以给运行平台固件执行的 IO 映射表。例如,generated_plc.st的代码:

PROGRAM PLC_EasyStart
  VAR
    K1 AT %IX0 : BOOL;
    P0 AT %QX0 : BOOL;
    P1 AT %QX1 : BOOL;
  END_VAR
  VAR
    CLOCK0 : CLOCK;
  END_VAR

  P0 := NOT(K1);
  CLOCK0(PT := T#500ms);
  P1 := CLOCK0.Q;
END_PROGRAM

解析生成:

VARP inputVarList[1]={
{"BOOL","","X0",&RES0__INS0.K1},};
VARP dacVarList[0]={
};
VARP anologVarList[0]={
};
VARP outputVarList[2]={
{"BOOL","","Y1",&RES0__INS0.P1},
{"BOOL","","Y0",&RES0__INS0.P0},};

把PLC的变量和运行平台固件能够识别的端口名对应起来。

4、设置、调试和维护工具的整合。OpenPLC有基于树莓派或者Windows的软PLC的运行平台,通过这些平台中的 web 服务器,可以完成设计、调试、维护等工作,但是这个web是python写的,在ESP32上面,同时运行PLC应用程序和 web 服务器,web服务器增加的开销(尤其是内存的开销),会降低产品的性价比。务实一点的做法是:把设置、调试和维护的web服务器集成到 OpenPLC-Editor,运行平台固件作为此服务器的客户端,设计者用浏览器访问设置、调试和维护服务器,完成对PLC的操作。例如,用在线调试的功能进行时序验证:

5、参考设计导入。 参考设计导入是开发平台一个很务实的功能,帮助开发者减少一些工作量。OpenPLC-Editor只提供 “复制POU”和“黏贴POU”的功能,按照一般的做法,需要打开一个示例项目,从中“复制POU”,然后转到开发项目,“黏贴POU”,不够利索。借助web server 扩展功能,由web server 的程序完成参考设计导入的流程,从示例项目中复制POU的XML代码到系统的粘贴板,开发者通过“黏贴POU”的操作,就将参考设计导入到开发项目中。

以上五项,在运行平台(RINTIME)和开发环境两个方面奠定了{PLC,IOT}>ESP32产品化的基础,使产品具备传统PLC的易用特性,在物联网通信、远程维护等方面展现开放式PLC的优势。{PLC,IOT}>ESP32的定型产品,以IOT-PLC命名,后缀由IO和板载资源特性决定,首款定型产品 IOT-PLC-5672RE   具备  5个继电器输出、6个晶体管输出、7个数字输入、2个模拟输入,板载RTC + Ethernet

         从构想到推出定型产品,工作量虽很多,但是对于项目的目标:“提供一套技术解决方案,使之成为工业互联网和数字化工程的基础工具”,却仅仅只是从实际行动上迈出一步而已,以后会从实践中积累案例,从案例中提取参考设计,逐步普及应用。

  

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值