STC单片机PLC梯形图的编译算法
1,梯形图程序编译虽然不同于面向字符串的程序语言词法分析编译,但是对算法的结构分析与通用编程语言是完全一致的。将梯形图程序直接编译成机器指令序列是非常不明智的,特别是针对STC单片机,所以必须建立一套梯形图指令系统。2,梯形图指令系统不等于梯形图用户图形化源程序指令。梯形图指令系统是用来表达用户源程序编译目标程序的。梯形图指令系统不同于CPU机器指令,梯形图指令是通过PLC虚拟机实现指令动作的,梯形图指令是被反复扫描执行的。
3,梯形图指令的变量统一采用变量代理,变量代理既包含变量实体的内存地址,也包含实体变量的变量属性,变量在PLC虚拟机存取就不是简单的读写,而是根据变量属性采用不同存取方法。
4,梯形图指令的变量与图形化的用户源程序实现“透明”,这样便于实现变量在线监控和远程组态。
5,梯形图指令虚拟执行机实际上就是PLC的驻机嵌入式软件。也有人将他称为PLC的指令解释器。它不仅包含梯形图指令的执行功能,而且包含输入输出变量的扫描,时间变量的扫描,还包括用户程序的下载读出,在线监控,还包含与plc上位机的现场总线通信协议。还有掉电记忆保护,实时时钟等等功能。我们的STC单片机PLC驻机嵌入式软件不借助于任何嵌入式操作系统,完全独立运行,完全自主源代码。
6,有了这样的梯形图底层指令系统,用户的图形化源程序进行编译就比较简单了。我们的编程编译工具完全采用MFC和visual C++编写,不依赖任何第三方库。易学易用,兼容于我们日常使用的行编辑操作。基本不用特殊训练。
从事软件研发最迷人的地方就是你可以把任何可行的理论变成真实的软件代码。
能否讲一下梯形图怎么转换为c语言或者是怎么在单片机上对梯形图指令进行解释的,谢谢 说了,好像又没说 楼主在抛砖引玉{:4_165:} 理都懂,然而实现起来好难……
页:
[1]