电气测控系统的改进——软PLC
图2 运行系统的结构组成
运行系统可在多种支持平台上运行,它通过将数据区和代码区分离,实现程序的动态更新和代码的高效率动态下载。
(1)在μClinux平台上实现软PLC虚拟机实现步骤
将梯形图的指令翻译成宏汇编并建立一个宏库;
把用户编写的梯形图程序编译成中间代码形式的PLM文件;
将PLM文件转变为汇编程序;
用汇编器汇编变成功的汇编程序,将解释执行内部指令(PLM文件)转换为程序,汇编成机器码执行,实现PLC指令机器码执行方案,大大地提高了执行速度控制工程网版权所有,同时大大节约了内存空间;
将PLC指令对应的机器码移植到嵌入式操作系统中执行。
(2)运行系统的两大模块
运行系统主要由两大模块组成:1)梯形图到机器码程序的转换;2)执行机器码文件。每个模块的功能如下:
1)梯形图到机器码程序的转换。首先把用户编写的梯形图程序编译成中间代码形式的PLM文件,然后将PLM文件转变为汇编程序,最后用汇编器汇编转变成功的汇编程序CONTROL ENGINEERING China版权所有,产生机器码从而生成可执行的PLE文件。
2)执行机器码文件。将PLE文件嵌入配置好的执行环境中并执行,通过工控机的面版指示灯监测程序的正确性。
(3)虚拟机总体设计
根据虚拟机的原理和执行机制,对虚拟机的机器码执行方案进行了总体设计,如图3所示。PLC文件是梯形图程序的保存文件,通过对PLC文件进行词法分析、语法分析和语义分析编译产生PLM文件,然后调用宏汇编库,并进行一系列的转换生成机器码,产生PLE文件;最后创建机器运行环境来执行机器码,宏汇编库中是每个梯形图指令对应的宏汇编段。
图3 虚拟运行总体设计框图
(4)交叉开发调试算法研究
非嵌入式通常采用本机开发、本机调试、本机运行的开发方式;而嵌入式开发需要交叉开发,绝大多数采用宿主机开发、宿主机和目标机之间交叉调试、目标机运行的方式开发。
交叉开发调试算法:
在宿主机平台上编写程序代码;
固化监控器至目标机上;
连接宿主机和目标机;
编译链接应用程序,生成可执行代码;
将可执行代码下载到目标机;
使用交叉调试器进行调试;
如果程序调试没有发现异常CONTROL ENGINEERING China版权所有,转至11);
调试程序时发生错误,利用交叉调试器定位错误;
修改错误代码;
重复4)-10);
将目标机程序固化在目标机上。
4 嵌入式软PLC改造后的控制系统
以测试继电器TV5实验为例。其要求如下:每次测试5个继电器,每个继电器的动作频率是5s开,5s关。根据要求,试验最好的结果是每个继电器用6个TV负载,即每个TV负载是5s开,55s管。输入点有:开关,检出,复位M个,停止次数设定量N次,动作频率设定L个,常开/触点转换。其中,M=测试产品个数,N、L个数由实际需要确定。其算法如下:
设定一个循环周期,使累积误差最小;
在循环周期内设计动作时间和动作频率,以及动作次数;
设计相关联动、互锁、紧急停车和复位等功能;
执行动作与反馈根据产品相关标准进行比较,判定结果和设定中断程序。
采用模块化程序设计编程,各模块均由主程序调用,且为了程序不出误动作,还要考虑电流谐波和冲击对高电源的要求。用了算法优化设计,5个继电器每隔2s一个动作,5个刚好10s。其中一个动作频率程序如下:
与之对应的动作如下:
评论