李可成
(广西工业职业技术学院 智能制造学院,南宁 530001)
嵌入式系统是一种专用型计算机处理系统,以计算机技术作为构建基础,在软硬件方面具有独立可裁剪的能力,对程序可靠性、程序功能等因素具有严格要求。SOC片上系统是嵌入式系统的重要组成形式,可以将包括CPU元件在内的多种外设控制器设备集成在几个独立芯片结构之上,故而SOC嵌入式系统的体积相对较小、功耗成本相对较低,能够适应多种不同的互联网应用环境[1]。PLC作为设备和装置的核心控制器设备,能够借助I/O组件安装在机架结构之上,并可以按照智能化编程原则,改写系统主机内的原有程序编码原则,从而使得下级设备部件的无缝连通能力大幅提升。由于PLC控制体系的运行需要多个应用部件的共同配合,所以在更换另一种硬件设备时,也需要重新编写相关软件执行程序[2]。
软PLC在保留传统PLC应用功能的基础上,采用面向现场总线网络的体系设计结构,全面开放了高速串口、通信接口等以太网连接通路,通过多语言编程的处理方式,修改原有执行程序的编译形式,从而将多个数据开放通路同时转接至TCP/IP网络之中[3]。然而对于PC端主机而言,若所生成指令程序不能满足PLC控制原则,则会使PLC编程器的逻辑编译能力大幅下降,从而造成网络体系出现混乱运行状态。文献[4]设计了基于工控业务仿真的高交互可编程逻辑控制器蜜罐系统,设置了过程仿真循环与服务仿真循环闭环体系,又在Matlab/Simulink应用软件的作用下,完善了主机端元件与执行端元件之间的协同工作模式。然而在指令程序较为复杂的情况下,该系统并不能确保程序样本的编码形式完全符合PLC控制原则,因此,其对于编程器元件逻辑编译能力的保障作用也就无法达到实际需求标准。为此,设计了基于嵌入式软PLC分布式控制系统。
嵌入式软PLC应用技术可以在更改系统结构布局形式的同时,完善基础工作执行机制,本章节将针对上述内容展开研究。
嵌入式软PLC系统的实现需要嵌入式系统组件、软PLC系统组件的共同配合,简单来说,就是利用软PLC技术控制嵌入式系统平台,再利用软件编程为PLC逻辑结构提供基础运算环境,最后将处理后的软件程序完整封装进嵌入式系统执行平台,以用于对下级应用元件进行控制[5]。由于嵌入式软PLC系统包含嵌入式系统、软PLC系统的全部运行特点,所以定义其模式特征时应注意如下几方面内容:
1)开放式控制平台与相关软件控制程序必须遵循相同的编码原则,在软PLC控制端口闭合的情况下,嵌入式端口也应随之进入闭合状态,且两个端口之间的数据信息样本不可以出现误传、反传行为,即控制程序运行指令只能由一个端口指向另一个端口,且这种指向性指令传输行为运行模式不具备可逆性。
2)当软PLC控制程序植入嵌入式系统后,PLC逻辑结构的运行模式会发生变化,当前情况下,分布式主机对于控制执行指令的编码速率较快,软PLC控制端口内的数据信息样本被快速消耗,故而整个PLC控制系统的运行速度也相对较快[6]。
3)在多类型软件程序同时存在的情况下,嵌入式系统主机运行速率始终比软PLC系统主机运行速率更快,当控制指令累积量达到数据库主机最大编码条件时,两类系统运行速率同时下降,直至已累计指令样本被PLC编码软件完全消耗。
嵌入式软PLC分布式控制系统由硬件、软件两部分共同组成。硬件部分是系统的应用基础,主要包括I/O组件、CPU设备、PLC内核、软移植内核等多种应用设备;软件部分是控制功能实现的关键,可以按照相关硬件设备的运行状态,制定必要的控制任务执行指令[7]。分布式控制系统基本布局如图1所示。
图1 嵌入式软PLC分布式控制系统结构组成图
I/O组件是嵌入式软PLC分布式控制系统硬件的核心,负责分析PLC软件程序,并可以根据控制指令约束条件,完成数据样本的处理。嵌入式存储器设备直接控制下级ROM结构,其内核组件上集合了多个外设接口,能够满足软PLC系统多种不同的控制需求,由于访问中间件、I/O驱动器设备、ROM结构之间保持稳定的并列连接关系,所以PLC内核、软移植内核、嵌入式存储器单元的任何指令行为都不会对下级设备结构的应用能力造成影响[8]。随着嵌入式软PLC系统所承担控制指令任务量的增大,应用软件层内控制任务的定义量也会不断增大,直至指令运行量达到系统数据库主机的最大存储条件。
简单来说,分布式控制系统工作执行机制就是将嵌入式系统输出的指令程序改写成符合软PLC系统运行需求的编码形式,但由于软PLC定义标准会随着控制指令累积量的增大而改变,所以初始化控制系统时,要求代码执行文件样本、控制程序编辑序列必须使用相同的定义模板。控制系统开发环境与运行环境是两个完全独立的执行体系,前者通过配置嵌入式硬件设备的方式,确定PLC控制网络内编译文本的设置规则,再联合待编辑的控制程序,生成完整的代码执行文件,以供系统控制主机的直接调取与利用;后者可以在初始化控制系统的同时,实施对PLC程序的编码,并可以根据程序代码扫描文件中样本序列的定义规则,判断输出代码文件与系统控制需求之间的匹配性关系[9-10]。系统开发环境与运行环境之间工作执行机制的对应标准如图2所示。
图2 分布式控制系统执行机制详解图
由于一个嵌入式硬件设备所输出的控制指令需要供给多个运行程序选择,所以开发环境与运行环境之间的对应关系并不满足单一性原则。
基于嵌入式软PLC分布式控制系统的设计,需借助I/O组件完成对PLC程序的编写及CODESYS工程的设置,但由于分布式运行体系不仅模式相对较为复杂,所以为实现对组件设备间连接关系的判断,还要考虑I/O驱动程序的开发与编译原则。
分布式运行体系是指主机对象与服务器对象分别对应的系统运行模式,一般来说,嵌入式硬件应用平台中的主机对象与服务器对象只能保持一一对应关系,即随着PLC控制程序输出量的增大,对应映射关系的存在组别数量也会不断增大[11]。在软PLC控制系统中,分布式运行体系布局形式如图3所示。
图3 软PLC系统分布式运行体系的基础架构
可以将已编码、未编码的指令程序区分开来,其中已编码的程序指令直接反馈至服务器单元,以供其对嵌入式系统运行模式进行准确辨别;未编码程序指令则会在主机单元中进行二次加工,当前实时编码格式满足PLC控制标准后,这些程序指令则可以经由反馈信道,传输至服务器单元。假设Client主机输出的指令文件为“1”,在分布式运行体系作用下,服务器主机所接收到的指令文件也为“1”。若将此模式应用到基于嵌入式软PLC分布式控制系统中,就可以认为PC端主机所生成指令程序的编码形式,与PLC编程器所接收到的指令程序编码形式保持一致,且无论I/O组件运行模式是否发生改变,这种分布式编码对应关系都不会发生变化[12]。
I/O驱动开发就是调动软PLC分布式控制系统在嵌入式运行体系内的作用能力,在控制程序定义标准不同的情况下,I/O组件的驱动性越强,就表示待执行控制程序的累积量越大,当前情况下,驱动条件对于控制程序的适应能力较弱[13-14]。设α、δ表示两个随机选取的PLC控制向量,且α≠δ的不等式取值条件恒成立,qα表示基于向量α的I/O组件驱动指标,qδ表示基于向量δ的I/O组件驱动指标,其求解表达式为:
(1)
(2)
基于I/O组件驱动指标值,推导软PLC分布式控制系统的I/O驱动程序开发表达式为:
(3)
式中,β表示PLC控制程序规划系数,且系数β取值恒大于自然数1。
在基于嵌入式软PLC分布式控制系统中,驱动系数与驱动向量的变化趋势保持一致,但当其取值超过额定限度标准后,这种取值规则不成立。
通过以上步骤完成I/O驱动开发过程,提高软PLC分布式控制系统的调动能力。
PLC程序编写是解决PC端主机所生成指令程序编码格式不统一的必要方法,可以按照I/O驱动开发原则,确定软PLC控制系统指令程序的初始传输位置与目标传输位置[15-16]。对于嵌入式系统组件而言,软PLC分布式控制系统执行指令会随着运行时间的延长而不断累积,故而PLC程序编写文本定义标准并不唯一,而是会随着执行指令累积量的增大而不断改变。设φ表示PLC控制指令初始传输位置定义条件,φ′表示控制指令目标传输位置定义条件,I/O驱动开发原则要求,φ′>φ的不等式条件恒成立,ε表示控制指令编译系数,在上述物理量的支持下,联立式(3),可将PLC程序编写表达式定义为:
(4)
设置软PLC分布式控制系统CODESYS工程之前,需要确认编译好的PLC控制程序描述文件安装是否正确,在嵌入式系统运行模式中,只有正确的PLC程序描述文件能够得到CODESYS工程的认证,而错误的PLC程序描述文件则会被系统数据库主机直接存储[17]。CODESYS工程可以在系统控制指令中添加一个独立赋值任务,当任务优先级审核标准为“1”时,控制指令直接被PLC编程器执行,当任务优先级审核标准为“0”时,控制指令经过I/O组件的再次开发,直至其审核标准等于“1”(基于嵌入式软PLC分布式控制系统作为计算机应用系统的一种,所以其在处理控制指令时遵循二进制原则)[18]。
基于PLC程序编写原则的CODESYS工程设置条件满足式(5):
(5)
在I/O组件结构的作用下,控制实时内核的进入与退出作用,再通过规划分时映像区的方式,推导控制指令逻辑栈表达式,从而实现基于嵌入式软PLC分布式控制系统的设计。
实时内核进入与退出是两个完全相反的执行流程,前者意在将嵌入式软PLC控制程序植入分布式执行主机,而后者则可以将已植入控制程序再次移出分布式执行主机,从而释放系统缓存压力,使得PLC编程器运行速率加快,PC端主机输出的指令文件能够得到加密与编辑处理[19]。实时内核是一个实体编程结构,可以更改PLC程序指令信息的编码形式,但为了保证嵌入式软PLC分布式控制系统的执行一致性,内核进入与退出过程所遵循的编码原则完全一致。
实时内核进入编码原则为:
(6)
式中,smin表示软PLC控制程序植入特征最小值,smax表示软PLC控制程序植入特征最大值,κmin表示分布式植入系数最小值,κmax表示分布式植入系数最大值。
实时内核退出编码原则为:
(7)
(8)
式(8)取值为零,表示分时映像区覆盖空间极小,并不代表嵌入式软PLC分布式控制系统中不存在分时映像区空间。
控制指令逻辑栈也叫软PLC分布式控制程序的执行协议栈。在嵌入式系统执行环境中,栈文本是具有逻辑约束作用的程序指令,但单一的栈文本并不能决定分布式主机对软PLC执行程序的作用能力,故而控制指令逻辑栈的运行还需要I/O组件及相关硬件主机的共同配合[23-24]。
嵌入式软PLC分布式控制系统控制指令逻辑栈作用表达式推导结果满足式(9):
(9)
为了验证设计的基于嵌入式软PLC分布式控制系统的有效性,首先,通过式(1)和式(2)计算得到的I/O组件驱动指标值,在Windows主机中输入所设计的基于嵌入式软PLC分布式控制系统的PLC程序编写表达式,记录PC端主机所生成指令程序的编码形式,使其满足式(5)的CODESYS工程设置条件,将其与给定的编码原则进行对比,总结出实验组控制指令的编码原则;然后,将各项显示参数归零,断开PLC编程器的所有连线,将PC端主机还原至初始连接状态;其次,根据I/O驱动开发原则,在Windows主机中输入文献[4]系统的PLC程序编写表达式,记录PC端主机所生成指令程序的编码形式,判断其是否满足CODESYS工程设置条件,总结出对照组控制指令的编码原则;最后,对比实验组、对照组编码原则,总结实验规律。
在PLC编程器连接回路中,所有应用开关的连接状态均保持一致,所以PC端主机所生成指令是影响控制程序编码原则的唯一条件。
利用SoftPLC-C650PLC软件监测PLC编程器的运行情况,当相关配置栏显示情况如图4所示时,闭合控制开关,进行实验。
图4 SoftPLC-C650PLC软件配置
为避免错误识别行为的出现,SoftPLC-C650PLC软件每次只查看一条指令程序的编码情况。
本次实验选取10条PC端主机指令程序,及其在PLC控制原则下的编码结果,指令程序编码原则如表1所示。
表1 指令程序编码原则
在实验组、对照组控制系统作用下,所选定10条指令的编码结果分别如图5和图6所示。
图5 实验组控制系统指令编码
图6 对照组控制系统指令编码
分析图5可知,在实验组控制系统作用下,PC端主机所生成指令程序的编码结果与表1给定标准完全一致,即实验组控制系统的编码能力与PLC控制原则相符合。
分析图6可知,当PC端主机所生成指令程序为X0011、X0013、X0014、Y3301、Y3303时,对照组控制系统所输出程序的编码结果与表1给定标准完全一致;当PC端主机所生成指令程序为X0012、Y3304、Y3305时,对照组控制系统所输出程序虽然能够显示出编码结果,但其编码形式却与给定PLC控制原则不符合;当PC端主机所生成指令程序为X0015、Y3302时,对照组控制系统所输出程序不能显示出编码结果,即对于所选定10条指令,因为设计系统通过式(4)对控制系统进行PLC程序编写,使PC端主机所生成指令程序编码格式相统一。而对照组控制系统只能保证5条指令的编码结果与PLC控制原则相符合。
在此基础上,对实验组、对照组控制系统指令编码准确性进行统计,具体实验结果如图7所示。
图7 实验组、对照组控制系统指令编码准确性
根据图7可知,整个实验过程中,实验组、对照组控制系统指令编码准确性均保持相对稳定的数值状态。当测试时间为100 min时,实验组、对照组控制系统平均指令编码准确性分别为91.6%和80.5%。由此可知,实验组控制系统平均指令编码准确性明显大于对照组控制系统平均指令编码准确性,因为实验组设计了I/O驱动开发过程,提高了软PLC分布式控制系统的调度能力,有效提高指令编码准确性。
综上可知,在基于嵌入式软PLC分布式控制系统的作用下,PC端主机所生成的10条指令程序均满足PLC控制原则,对于保障PLC编程器的逻辑编译能力可以起到一定的促进性影响作用,且能够有效提高指令编码准确性。
本文设计了基于嵌入式软PLC分布式控制系统,能够根据软PLC定义标准,确定PC端主机的工作执行机制,再按照分布式运行框架,分析I/O驱动组件的开发能力,又联合PLC应用程序,判断CODESYS工程的运行现状是否符合设计需求。由于实时内核的进入与退出是两个完全不同的指令执行流程,所以分时映像区结构的取值条件将直接影响控制指令逻辑栈的表达形式。在实际应用方面,该系统可以使PC端主机所生成指令程序满足PLC控制原则,符合保障PLC编程器逻辑编译能力的实际应用需求,并能够有效提高指令编码准确性。