一种基于嵌入式小型PLC的智能控制模块设计
2022-10-23林滔
林滔
(上海电子信息职业技术学院,上海 201411)
0 引言
PLC是一种可编程控制器,它是一种数字操作的电子学系统,特别适用于工业环境中的自动控制[1]。PLC从单机到整条生产线,甚至对整条生产线的自动化都起到了很好的作用。为了降低PLC在控制系统中的占用空间,同时保证PLC控制指令的执行与传输效率,大多采用嵌入式的方式将其安装在被控制对象内部。嵌入式系统是基于计算机技术,通过对软硬件的剪裁来满足用户对功能、体积和功耗等方面的需求。相对于传统PLC,嵌入式PLC的硬件架构更开放,指令集也更多,便于用户编程,因此应用范围更广、应用频率更高。
从当前关于嵌入式PLC智能控制的研究成果方面来看,各研究单位加强了对嵌入式小型 PLC 技术的研究,也形成了一些技术积累。但是,由于技术还不是很完善,因此存在控制效果不佳的问题,主要体现在开关量和模拟量两个方面。为了解决当前小型PLC智能控制模块存在的问题,本文深入研究嵌入式技术,对小型PLC控制模块加以改进。
1 方案设计
在嵌入式技术的支持下,应用小型PLC为智能控制模块核心处理部件[2]。此次小型PLC智能控制模块的设计分为硬件设备设计和智能控制模块的逻辑设计两个部分。在硬件设备和模块设计的交互作用下,完成嵌入式PLC智能控制模块的逻辑构建。具体的嵌入式PLC智能控制模块逻辑图如图1所示。
图1 嵌入式PLC智能控制模块逻辑图
1.1 核心控制电路设计
此次以嵌入式技术为基础的小型PLC智能控制模块,选择MCS8051型号的PLC作为模块的核心处理部件,能够进行硬件除法、分支预测等处理任务,其内部结构如图2所示。
图2 模块内部结构图
图2所示的PLC是一个8位二进制的中心处理器,即以字节为单位进行数据的处理[3]。PLC主要包括三大模块:运算逻辑模块、定时控制模块以及专用寄存器模块。算术逻辑单位可以进行加、减、乘、除、与、或、非、异或等的逻辑操作指令[4]。
1.2 小型PLC控制模块的改装
小型PLC由电源、微控制器、存储器和输入输出接口集成电路等部分构成,图3表示的是PLC的基本结构。
图3 PLC硬件组成框图
根据MCS8051的工作模式以及PLC的编程与控制原理,调整其接口电路。以输入电路为例,由于设备输入界面包含了数字和模拟量,因此,在进行数据输入与采样时应分别考虑模拟和数字两种情况[5]。具体的接口电路调整结果如图4所示。
图4 PLC设备输入接口电路图
图4中的Va是通过信号调节器与线性光耦合器HCNR200进行光电绝缘并由AD1输出的传感器信号[6]。对嵌入式 PLC输出、LCD等改装调整。
1.3 智能分配PLC控制模块内存空间
按照存储的控制命令格式,将存储单元划分为X区、Y区、M区、T区、VD区等区域。X区存储从接收外部单元发送的信号,Y区存储要进行端口输出的信号,M区存储辅助继电器信号,VD区用来存储数据和执行结果,T区存储计时器信息[7]。
1.4 用户控制任务调度算法设计
小型PLC智能控制模块的任务工作流程可以分为输入采样、用户程序执行、输出刷新3个阶段[8]。其中,用户控制任务调度算法的具体流程设计如图5所示。
图5 小型PLC智能控制模块的工作流程图
完成梯形图的扫描后,PLC更新全部锁存回路,通过输出回路驱动外部器件[9]。每次扫描时,PLC还会执行自我诊断程序,检查各个输入、输出点、内存等。再与编程程序通信,以完成相应的处理[10]。输入现场资料,依次进行用户编程、输出控制信号、完成一次扫描,进入PLC自诊断程序,输出最终的刷新结果。实际的用户控制任务调度处理过程如下。
计算当前嵌入式PLC的处理能力:
(1)
式中Tn和Ti分别为用户输入控制任务在标准处理器和嵌入式PLC设备上的执行时间。若λi的计算结果高于0.8,则确定当前嵌入式PLC设备具有处理当前控制任务的能力。输出控制指令转换过程表示为
(2)
式中VIN和VREF分别为输入的模拟量电压和参考电压。按上述方式转换模块中所有的控制任务,并计算各个控制任务的动态价值密度与执行紧迫性,计算公式如式(3)所示。
(3)
1.5 小型PLC智能控制模块控制算法设计
完成控制任务调度后,对小型PLC智能控制模块的控制算法进行设计,其具体流程如图6所示。
图6 小型PLC智能控制模块的控制算法流程图
从开关量和数字量两个方面,实现小型PLC模块的智能控制功能。开关量控制过程也就是被控制对象启动或停止的控制过程,开关量取值为“0”或“1”。通过开关量数值的切换,实现被控对象工作状态的控制,而数字量的控制则是被控对象运行参数的控制,具体包括速度、位置以及工作频率等[12]。在开关量的控制过程中,切换开关量取值并利用控制器驱动相应按钮,实现对开关量的控制。控制数字量需在PLC中将输入的控制信号的标度进行变换处理,标度变换过程为
(4)
式中:X、XF和XV分别为控制信号的采样值及其上、下限;M为被控对象的量程;y0和y对应的是控制参数的初始值和标称值。以速度参数控制任务为例,假设被控对象的实际速度值为νt,速度的控制目标为νa,则加减速控制过程为
(5)
式中:Δ为速度控制量;a为加速值;t为速度参数的控制时间。按照上述方式,可实现参数控制,若无其他控制指令,输出PLC智能控制结果。
2 实验验证分析
以测试嵌入式小型PLC智能控制模块的应用效果为目的,设计验证实验,并通过与传统控制模块的对比,体现出优化设计模块在智能控制方面的性能优势。
2.1 实验准备
1)控制对象
此次实验选择机械生产场景作为研究环境,选择机械工厂中VMC855和STC50型号的数控机床及其内部的自动加工机械设备作为控制对象。开始实验前,需确定准备的控制对象上安装的驱动设备正常运行。
2)控制任务样本
根据本文小型PLC智能控制模块的构建结果,分别从开关量控制和数字量控制两个方面设置实验控制任务,其中部分控制任务的设置情况如表1所示。
表1 控制任务样本设置表
为保证实验结果可信度,设置控制任务样本数量共800个,平均分为5组,且每组控制任务内容均不相同。
3)模块开发与运行环境
除PLC设备外,在实验环境中还需安装上位机设备,以显示小型PLC智能控制模块的智能控制效果。在上位机中配置BorlandC++Builder编程环境,支持C++和JAVA两种编程语言,为编程任务提供软件支持。
2.2 调试嵌入式小型PLC设备
实验元件包含TLP521光电耦合器件、ATMEGA169型嵌入式微处理器、线性光耦合器HCNR200、MCS8051型号单片机、编码器等。编写特定硬件环境的初始化代码及系统主要功能模块,使用预定义关键字编写主要实现代码,最后编写应用程序主代码。
完成初始化代码的编写、任务代码的创建后,执行任务调度程序。调度800个任务,运行结束后,成为一个新建的任务,并立即进入就绪状态,用该方法模拟繁重的系统应用任务。根据硬件优化结果,实现嵌入式小型PLC智能控制模块的设定,实现过程如图7所示。
图7 PLC智能控制模块编码实现过程
编译梯形图,把已编译的用户控制任务程序下载到PLC的内存中,由单片机以周期扫描方式读取、执行用户程序,实现预定的监控控制功能。若经过调试上位机界面能够输出预期结果,证明嵌入式小型PLC智能控制模块调试成功,可执行实验中的控制任务,否则需重新安装硬件和软件程序,直至输出预期界面。
2.3 实验验证过程
在构建并调试完成的基础上,以自动输入的方式逐条导入准备的控制任务指令,利用PLC模块的编译功能将控制任务转换成控制进程。在硬件设备与软件程序的协同作用下,得出控制任务的执行结果。图8显示了01号开关量控制任务和04号数字量控制任务的输出结果。
图8 嵌入式小型PLC智能控制模块输出结果
实验中设置传统的基于Fuzzy-PID双模的控制模块作为实验的对比模块,保证对比模块的运行环境与执行控制任务相同。为体现设计模块在控制效果方面的优势,分别设置开关量控制任务执行成功率、模拟量控制任务控制误差和吞吐量3个指标为测试指标,其中控制任务的执行成功率的数值结果表示为
(6)
式中Nsuccess和Nswitch分别表示模块成功执行的开关控制任务量和任务设置总量。模拟量控制任务的控制误差的数值结果表示为
εnumber=∑|xtarget-xcontrol|
(7)
式中xtarget和xcontrol对应的是目标参数值和实际控制值。最终计算得出ηswitch的值越高、εnumber越小,证明对应模块的控制效果越好。吞吐量结果表示为
(8)
式中:T为时间;numtask为模块并发处理的控制任务量。TPS取值越大,相应模块的控制性能越高。
2.4 实验验证结果分析
通过对实时控制数据的读取,得出嵌入式小型PLC智能控制模块性能的测试结果,其中模块控制精度的量化测试结果如表2所示。
表2 开关量控制任务测试数据表 单位:个
将表2中的数据代入式(6),可以得出两个控制模块开关量控制任务运行成功率的平均值分别为93.25%和99.63%。模块数字量控制结果如表3所示。
表3 数字量控制任务测试数据表 单位:个
由于模块控制的参数单位不同,故控制误差的测试结果以数值方式表示。将表3数据代入到式(7)中得出两个模块平均控制误差分别为3.2和0.4。综合开关量和数字量两种类型的控制任务,可确定优化设计的智能控制模块的控制效果更优。通过式(8)的计算得出模块吞吐量的测试结果,如图9所示。
图9 嵌入式小型PLC智能控制模块吞吐量对比曲线
从图9中可以直观地看出,优化嵌入式小型PLC智能控制模块的吞吐量始终高于传统模块,即本文设计的模块在控制性能方面更加具有优势。
3 结语
在计算机网络快速发展的大背景下,PLC的控制技术也在不断地革新,并逐步完善。通过嵌入式技术的应用,有效地改善PLC的智能控制模块的性能和功能,为今后自动控制方面的推广应用打下良好的基础。