现代工业控制中的PLC编程方法论文

时间:2021-04-27 14:00:22 论文 我要投稿

现代工业控制中的PLC编程方法论文

  摘要:目前随着工业控制系统复杂性不断提高以及自动化不断加强,以往面向过程的PLC编程方法变得愈加困难。面向过程的编程(POP)方法编程效率低、可维护性差。通过分析现代主流计算机编程方法,提出了一种PLC编程方法:将程序分为三个层次,以面向对象的思想对外部设备或复用性功能进行封装,以面向过程的思想实现动作流程。并以汽车微电机压装控制系统为例进行说明。

现代工业控制中的PLC编程方法论文

  关键词:面向过程,面向对象,PLC,编程方法

  现代工业自动化领域大多采用PLC作为运动控制器,传统的PLC编程严格按照时序要求从头至尾编写程序。对于简单的控制过程,其程序步骤较少,传统的PLC编程方法能够满足要求。而复杂的控制系统,程序步骤较多,容易混乱,大大降低了编程效率,并且程序扩展性能非常差。为了提高编程效率,降低后期维护成本,寻找出一种新的PLC编程方法是非常必要的。

  1理论基础

  目前存在两种主流的编程思维:面向过程与面向对象,这两种编程思想都有其各自的特点与性质。1.1面向过程面向过程(ProcedureOriented,PO)是一种以过程为中心,以什么正在发生为主要目标进行编程的编程思想。面向过程的程序设计(POP)注重的是算法设计,突出数据结构。NicklausWirth对此提出了著名的公式来表示程序的实质:程序=数据结构+算法面向过程的程序设计关注的是解决问题的步骤,先把软件系统分解成多个模块,然后逐步细化,完成整个软件系统。各模块之间存在相互调用和信息传递。随着软件系统规模扩大和性能要求提高,面向过程编程的缺陷逐渐明显。软件系统规模的扩大,使得模块的分解难度加大,模块之间的联系也更加复杂,软件的可靠性难以提高,可维护性差。1.2面向对象面向对象(ObjectOriented,OO)是在处理问题时,从该问题所存在的事物本身出发,以类及对象作为基本构造单元,逐步认识事物的属性和行为特征。面向对象的程序设计(OOP)需要尽力描述问题的结构,从而较好地解决客观世界描述的复杂性问题。可将程序表示为:程序=消息+对象类对象类=数据结构+算法面向对象的编程方法有利于大型软件的开发;对象属性和方法封装避免了数据随意访问,保证数据安全;类与类之间的继承关系,最大程度实现了代码的重用;继承关系下的多态性增强了程序的灵活性和扩展性[1]。然而,由于类的大量加载会牺牲系统性能,从而降低系统运行效率。

  2PLC编程思想

  现代工业生产的控制系统经常要涉及到多个外部设备,设备的动作往往有严格的时序要求。长久以来,编程前先按要求制作动作流程图,再按动作流程图编写程序的框架,然后以流程框架为中心添加约束与报警信息,其编程思想是面向过程的.[2]。数据和数据处理过程代码是统一的,可重用代码少,且当代码量大时,维护数据和代码非常困难。面向过程的PLC编程方法的缺点有:割裂被控对象在PLC程序与现实中的联系,内部逻辑与被控对象不明确,程序的后期维护困难;程序的内部逻辑关系非常复杂,控制流程不确,容易出错;输入与输出都缺乏整体性,程序员往往孤立考虑各输入点或输出点的逻辑和控制[3]。针对传统PLC编程的缺点,结合现代计算机主流编程思维,提出一种新的PLC编程方法:以分层思想划分程序结构,以面向对象的思想对外部设备或复用性功能进行封装,以面向过程的思想实现动作流程。其原理是:将程序过程按实际划为三个层次,对每个层次中可抽象描述的对象进行类封装;并采用上层调用下层,高级调用低级的原则,进行自下而上的PLC程序设计。三个层次分别为:时序层、外设层、输出层,其中输出层是底层;外设层是中间处理与转换层;时序层是最靠近设备操作的用户层。输出层是对PLC的输出点进行内部扩展。不管PLC程序如何编写,最终都要通过控制PLC输出来达到设备运行目的。为了增强程序的灵活性和扩展性,可将PLC的每个输出点当作对象,在程序运行过程中,输出对象在不同的工作阶段有不同的触发条件。将数字输出点的触发条件转化为内部继电器,模拟输出的触发条件转换为内部继电器与数据。外设层是对设备的封装、处理,是外部设备和外部设备功能封装模块的集合。复杂的PLC控制系统包含了多个外部设备,并且有些外部设备不止一个。以PLC为对象,外部设备可分为输入设备、输出设备与交互设备。输入设备是系统的眼睛,实时监控设备状态。输出设备是系统的动作执行设备,单个输出设备可以有一个或多个动作状态。交互设备是与PLC有数据互传的设备,可以是上位机设备或其他的通信设备。用面向对象的思想,以设备整体或设备动作状态为对象进行封装。可以大大减少了程序的重复性,并且有助于外围设备的扩展与功能的增加。时序层是PLC程序的主体,是各种功能动作流程的集合。设备运行时,动作过程必须严格地按时间顺序执行,而程序中时序过程实现必须面向过程。设备每一种现实功能都对应一个动作过程,与设备功能对应的动作过程属于高级动作流程。高级动作流程可以重复调用低级的动作流程,低级的动作流程是复用性比较高的动作流程。复用性动作流程相对高级动作流程步骤较少,可以将其以整体作为考虑对象,封装成功能模块,供高级动作流程调用。高级动作流程所对应现实设备功能主要有:启动、复位与保护等功能[4]。启动功能可以通过人机交互界面的设置不同而拥有不同的设备功能;复位功能是按一定的时间顺序恢复预定的初始状态;保护功能是通过监控输入设备的信号判断设备是否故障,并做出相应的处理。对于由输入信号判断不出故障可以由外部人工触发,并处理。时序层编写功能时要求先设计保护功能,再编写其它的动作功能,以保护人身与设备安全。

  3实例

  以汽车微电机压装控制系统为例,阐述本文提出的PLC编程方法。图2为压装控制系统原理图。该系统主要由TPC7062TX触摸屏、主控单元FPG-C32T2H、模拟量单元FP0-A21-F、位置控制单元FPG-PP21、伺服电机、位移传感器等组成。该系统中控制最主要的输出是控制伺服电机的脉冲输出,脉冲输出可直接以电机运行状态为对象进行封装,其余输出在程序中不需要大量重复使用,可以直接单独调用。图3为单次压装的流程,前三个过程为同向运动,为了提高工作效率,三个过程之间不能有停顿,“P点控制”可以达到此要求;慢速压装和快速退回运动方向相反,需要停顿,第三个过程完成后,直接退回到原点,快速退回功能用“E点控制”可以实现。除此外电机常用的控制还有“JOG运行(点动控制)”。通过压装流程可知该系统“P点控制”为三段控制,以“P点控制”为对象时,其“消息”由一个触发条件、三个位置、三个速度组成;以“E点控制”为对象时,其“消息”由一个触发条件、一个位置、一个速度组成;以“JOG运行”为对象时,其“消息”由一个触发条件、一个旋转方向、一个速度组成。为了适应于PLC动作过程的时序性特点,为每个对象添加一个单脉冲输出信号。当对象动作执行完成时,发出一个单脉冲信号,可以当做下一步动作的触发条件。图4为以FPWINGR为PLC编程软件时的“E点控制”梯形图。FPWINGR编程软件不支持模块封装,但是不影响面向对象思维的使用。图中R20为“E点控制”的触发条件;双字寄存器DT412的数据为“E点控制”的目标脉冲频率(速度);双字寄存器DT414的数据为“E点控制”的目标位置。对象封装的目的是避免数据随意访问,可以继承。“E点控制”中的电机属性启动速度(500Hz)、加减速时间(100ms)、正反方向的定义是以参数的形式固定在其中。当调用该对象时,默认的就继承了其属性。只需扩展多个内部继电器触发R20,就可用被多次调用继承,即多态性。同理,可设计出“P点控制”与“JOG运行”的梯形图。输出层与外设层是时序层的基础,时序层按一定的时间顺序组合输出层与外设层,并辅以必要的数据处理就形成了所需的功能。压装主流程主要有“P点控制”与“E点控制”模块,加上时间延时、计数处理与力值峰值功能就形成了一个压装的大致功能,经过后期的调试与小范围的修改就完成了一个功能的编写。依此方法编写各种所需功能,完成整个程序后,整体调试功能。后期维护需要修改某部分功能时,可以快速定位到要修改的层,再找到相应的模块;增加功能时,可以迅速查到已有硬件的封装模块,直接在时序层增加要求的功能时序。

  4结束语

  通过分析与实际验证,用本文所提编程方法编写PLC程序,程序逻辑更清晰,层次更分明,运行更稳定。同时为程序调试、后期程序维护、程序功能扩展提供更有效而广阔的空间。该方法适用于复杂控制系统,也适用于简单控制系统,使复杂的控制系统集体设计时分工更加明确,性能更稳定。

  参考文献

  [1]徐卓峰,王学军.面向过程程序设计语言与面向对象程序设计语言及其特征比较[J].中州大学学报,1997(1):64-67

  [2]高云.计算机编程思想的发展研究[J].软件导刊,2012,11(11):5-6

  [3]张海藩.软件工程导论[M].5版.北京:清华大学出版社,2008(2):203-211

  [4]常海.基于OOP的PLC编程方法探讨[J].无线互联科技,2014(2):75-75

【现代工业控制中的PLC编程方法论文】相关文章:

板坯连铸系统中PLC控制功能与技术实现论文05-21

电气控制与plc技术实践教学探究论文01-26

机床设计中的现代工业设计论文11-17

电器及PLC控制教学总结10-22

CDIO理念下PLC教学方法研究论文11-08

应用PLC控制组合机床动力实验台论文06-27

PLC控制技术优秀教学课件03-19

试析项目法在高职PLC教学中的应用论文01-25

现代工业泵结构与设计教学方法论文01-10