毛思佳
摘要:随着工业控制技术的发展,工业PLC已被广泛应用在自动化领域中。本文简单描述了可编程控制器的编程方法,及程序结构,为电气维护技术人员提供了宝贵的学习资料。
关键词:可编程控制器;程序语言;程序结构
引言:
当前,随着工业控制系统的复杂性不断增加以及自动化程度的不断提高,PLC编程方法变得越来越复杂。本文通过分析现代主流计算机编程方法,提出了一种PLC编程方法:将程序分为三个层次,将外部设备或可重用功能封装在一个对象的块中,并以简化的方法实现动作流程。
一、可编程控制器的组成和各部分的功能
可编程控制器的基本组成:从语义上讲,PLC也是计算机控制系统,但与工业过程相比,它与工业过程具有更强的连接接口,并且比普通计算机编程语言更直接适用于控制要求。因此,PLC和计算机的组成非常相似,具有中央处理器(CPU),内存,输入/输出(I/O)接口,电源,编程语言,详见图 1。
(一)PLC编程思路
现代工业生产控制系统通常涉及多个外部设备,并且设备的动作通常具有严格的时序要求。长期以来,在编程之前,先根据要求制作动作流程图,然后根据动作流程图编写了程序的框架,然后将该流程图添加到约束条件和报警信息中。过程数据和数据处理代码可重复使用的很少,并且当代码量很大时,很难维护数据和代码。PLC编程方法的缺点是:PLC程序中的受控对象与实际情况之间的连接不清晰,内部逻辑和受控对象不清晰,程序后期维护困难;程序内部逻辑关系非常复杂,控制过程不正确,容易出错。输入和输出缺乏完整性,程序员经常考虑隔离每个输入或输出点的逻辑和控制。
针对传统PLC编程的不足,结合现代计算机主流编程思想,提出了一种新的PLC编程方法:将程序结构分为分层的思想,将外部设备或可复用功能与对象包装在一起。以过程为中心来实现行动流程的思想。原理是:根据实际情况,将编程过程分为三个层次,分别是:时序层,外围层和输出层,其中输出层是底层;外围层是中间处理转换层,时序层是最接近设备操作的用户层。
输出层在内部扩展PLC输出点。无论编写什么PLC程序,都必须控制PLC的输出以达到设备操作的目的。为了增强程序的灵活性和可扩展性,可以将PLC的每个输出点视为一个对象。在程序运行期间,输出对象在不同的??工作阶段具有不同的触发条件。数字量输出点的触发条件转换为内部继电器,模拟量输出的触发条件转换为内部继电器和数据。
外层是设备的包装和处理,是外部设备和外部设备功能包装模块的集合。复杂的PLC控制系统包含多个外部设备,其中一些不止一个。以PLC为对象,外部设备可以分为输入设备,输出设备和交互设备。输入设备是系统的眼睛,并实时监视设备状态。输出设备是系统的动作执行设备,并且单个输出设备可以具有一个或多个动作状态。交互式设备是与PLC交换数据的设备,并且可以是主机设备或其他通信设备。使用面向对象的思想将整个设备或设备的运行状态封装为一个对象。可以大大减少程序的重复性,并有助于外围设备的扩展和功能的增加。
二、可编程控制器的编程方法
(一)程序语言
当前的PLC编程语言主要包括梯形图,语句列表,逻辑图和高级语言。
梯形图-此方法更适合刚刚接触PLC程序编程的初学者,因为它更直观,更易于理解,只要他们具有基本的电路知识,就可以简单的进行编程。
语句列表-以助记符表示的PLC功能。当PLC执行程序时,它实际上根据语句列表的写入顺序逐一执行助记符指示的功能。该方法更直观地反映了编写程序的大小;当执行某些指令时,语句列表中写入的扫描时间少于梯形图中的扫描时间。但是对于初学者和功能复杂的人来说,这很困难。
逻辑关系形式的逻辑图编程。它具有相对清晰的逻辑关系,但不容易理解。通常不使用此方法。
高级语言,例如C语言,基本语言或专门的高级语言。用高级语言编程的PLC通常是中级或高级PLC。
(二)程序框图
在编程之前,它首先必须具有一些信息,这些信息是根据受控对象的要求和条件确定的,通常是:I/O点分布和含义表,参数定义和地址分配表,过程并对安全条件和规格对受控对象作出反应。框图是编程的主要基础。根据数据使用它来尽可能详细地确定应用程序的基本结构。框图包括两种类型:程序结构框图和功能控制框图。程序结构的框图是在内存中前后排列的PLC所有功能部分的缩影。在使用过程中,您可以根据结构图了解整个程序中控制的所有功能的位置。
(三)程序结构
软件设计任务的复杂性决定了用户程序的结构。
1、线性编程:程序以线性或顺序方式执行每个指令。基本上,该程序在主程序中完成。
2、部分编程:根据动作逻辑功能的不同,将程序设计分为独立的子程序块,每个子程序完成一个或多个简单独立的任务。然后,主程序根据该过程有条件地或无条件地调用该子程序。这些子程序在每个扫描周期中只能调用一次。
3、结构化程序设计:通用程序块或子程序的独立形成。通过为这些通用子程序块分配不同的信息或条件,可以在每个扫描周期中重复调用这些通用程序块。
(四)安全电路设计
工业化的控制程序,安全性和信息描述是必不可少的环节。工业设备动作流程具有一定的危险性,因此安全电路的设计应引起注意,安全电路应考虑并控制以下因素:
1、操作错误引起的危险或风险。
2、外部附件损坏引起的危险,包括外部PLC故障和硬件电路信号。
3、由操作流程中指定的流程造成的危险。
4、特殊性引起的危险,例如,传动设备高温容易造成设备损坏,发生电源故障或电源模块故障时,大多数安全电路都设计有紧急停止电路,自锁电路和互锁电路,外部信号保护电路,顺序控制电路等。同时,外部硬件电路也应构成保护电路:例如热继电器和紧急停止按钮。
有多种方法可以将上述软件集成到PLC中。除了保持自己的设计风格和必须遵守公司的指导要求之外,设计经验也至关重要,因此只有不断努力才能找到适合您的方法。一种有效的方法。但是一些基本步骤是公开的。
(1)分解受控对象的过程和要求,绘制程序的结构框图,了解并掌握受控对象的控制要求和流程。
(2)确定每个单元的功能特性,绘制功能控制框图。
(3)选择适当的程序结构,并链接每个功能控制。
(4)认真考虑安全电路的设计,制定故障形式和控制方案。
(5)编写每个独立部分的程序,并确定每个模块程序的接口数据。
(6)调试每个独立的块程序,并调试每个模块的接口程序,调试安全回路程序。
(7)在线调试设备或过程。
三、结论
通过分析和实际验证,发现本研究采用的编程方法逻辑清晰,層次清晰,操作稳定。这种编程方法可以为程序调试,和程序功能扩展提供重要的基础。将这种编程方法应用于复杂的控制系统可以有效地提高编程效率。同时,编程技术也可以应用于简单的系统,从而确保复杂控制系统的总体设计具有更清晰的分工并确保更稳定的性能。
参考文献:
[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