发布时间:2026-06-18阅读(1)
针对PikePLC的编译器,此处只作简单的介绍,毕竟要想详细介绍编译器需要很长的篇幅。
在PikePLC中内置了四款编译器,分别是:
针对Ladder和FBD转换为ST语言的编辑器,实现起来比较简单,基本上就是根据Ladder和FBD的模型,分析出逻辑关系,然后将其转换为对应的ST语句即可。
而真正有技术难度的是ST编译器。PikePLC所使用的StructuredText(ST)编译器基于Eclipse开源基金会的xtext(https://www.eclipse.org/Xtext/)项目开发。至于xtext项目的介绍以及使用,读者可以前往其官网进行查看,这里就不再准备介绍它。
基于xtext最重要的就是实现描述ST语言词法和语法规则的.xtext文件。然后是基于规则文件进行一些语法分析以及语法检查的功能扩展。其实xtext已经为开发者做了很多工作,所以实现起来也会事半功倍。
PikePLC基于xtext实现的词法和语法模型,包含了IEC61131-3 v2.0中描述的PLC软件模型,按照范围从大到小以及组织层级关系,分为:
然后就是基于xtext构建的模型,对ST代码进行语法分析,如:类型匹配分析、调用关系分析、循环依赖分析、变量使用分析等等

检测在POU中被定义但未被使用的变量

数据类型匹配分析
然后是基于xtext构建的语法模型,生成对应的C头文件和源文件

POU与C文件的对应关系
最后调用GCC交叉编译工具链,将生成的一堆C文件编译为在Linux上可运行的二进制文件。
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图