时序在PLC编程设计中的重要性

更新时间:2024-03-16 作者:用户投稿原创标记本站原创 点赞:3312 浏览:8377

【摘 要】文中以三菱FX2NPLC机型以及相应编程软件为对象,通过对PLC工作原理的分析,结合实际学习PLC编程设计时具有共性、代表性的问题,针对性的讨论了程序的结构与时序的关系,以及时序对程序运行的影响,突出了PLC编程中时序的必要性和重要性.

【关 键 词】PLC;编程设计;时序

引言:

可编程序控制器(ProgrammableLogicalComtroller,简称PLC)是电子技术、计算机技术与继电逻辑自动控制系统相结合的产物.它不仅充分发挥计算机的优点,同时又照顾到一般电气操作人员的技术水平和习惯.可编程序控制器(PLC)已经成为“先进国家三大支柱”之首的工业自动化理想控制装置,广泛应用于自动化的各个领域,其应用技术已经成为中等职业技术院校电气专业学生必须掌握的新技术之一.

在PLC编程设计中,时序问题应该引起我们足够的重视,因为不合理的程序结构就会有不合理的时序,就可能导致程序不能正常运行.这个最容易被我们忽视的问题却恰恰是初学者最感到困惑的.

一、关于PLC时序问题涉及的基础理论

我们知道PLC采用循环扫描的工作方式,它的工作过程是从第一条指令开始,按顺序逐条的执行用户程序直到用户程序结束,然后返回第一条指令开始新的一轮扫描.其扫描过程一般包括三个阶段五个部分,三个阶段是:输入采样阶段、程序执行阶段和输出刷新阶段;五个部分为:内部处理、通信操作、输入处理、执行程序、输出处理.

当PLC方式开关置于运行(RUN)时,执行所有阶段;当PLC方式开关置于停止(STOP)时,不执行后三个阶段,此时可以进行通信操作,对PLC进行编程等.进行一次全过程扫描所需要的时间称为扫描周期.在此我们主要讨论的是后三个阶段.

输入处理阶段:又称为输入采样.这个阶段,顺序读入所有输入点的通断状态,并将读入的信息存入输入映像寄存器,输入映像寄存器被刷新.注意:在下一个阶段即执行程序时,输入映像寄存器与外界隔离,即使外界信号变化,其内容也保持不变.

执行程序阶段:用户程序在PLC中是顺序存放的.在这一阶段,CPU根据PLC用户程序从第一条指令开始顺序取指令并执行,直到执行最后一条指令后结束.执行指令时,从输入映像寄存器读取各输入点的状态,执行指令对各数据进行算术运算或逻辑运算,然后将运算结果送输出映像寄存器,因此输出映像寄存器的内容会随着程序的运行而改变.

输出处理阶段:程序执行完毕后,将输出映像寄存器的状态转存到输出锁存器,集中对输出点进行刷新,通过隔离电路,驱动功率放大器,使输出点向外界输出控制信号,驱动外部负载.

二、PLC时序问题的图解分析

下面通过将两条指令行在程序中分别交换次序的方法来分析时序的变化(请注意Y1的输出时序):

第一种排列方式在第一个扫描周期的执行阶段通过逻辑运算就可获得Y1的结果;相比之下第二种方式则与之有明显不同,此时Y1只能在第二个扫描周期的执行阶段通过逻辑运算获得结果,输出阶段刷新.第二种方式扫描过程流程图解如下图:

三、编程实例中的时序对比分析

建立了上述理论基础,现在来分析下面的梯形图(图一),该图设计的是一个三层电梯上升控制的部分简略图(脱胎于某教材编程设计例题),其相关功能控制要求分别为:


当电梯停于一层(行程开关X11动作)时,如果按X1、X3,则电梯上升到二层,由行程开关X12暂停6s,然后上升到三层,由行程开关X13停止.

下面对时序进行分析:

检测设某一个扫描周期到来时,X11、X1和X3刚好都处于闭合状态(图中“第一扫描周期”),在这个扫描周期的输入映像阶段将他们的状态写入输入映像寄存器.

在本周期的程序执行阶段,第一指令行对X11、X1、X3进行逻辑“与”运算,得到结果为“1”,然后将结果先后和T0(常开触点)、M45(自锁触点)进行逻辑“或”,得到的结果为“1”,再和X12、X13进行逻辑“与”运算得到本指令行最终结果辅助继电器M45状态为“1”保存在元件映像寄存器中;在第二逻辑行中,X12状态为“0”、在元件映像寄存器中读M45状态为“1”,二者相“与”结果为“0”,然后和在元件寄存器中读出的M47(0)状态进行“或”运算,则本逻辑行运算结果M45和T0为“0”保存在元件映像寄存器中;在第三逻辑行中在元件映像寄存器中读出M45状态为“1”,和Y2(非)算的结果为“1”保存在输出映像寄存器(Y1)中,至此本扫描周期的程序执行阶段逻辑运算完毕.

在本扫描周期的第三个阶段即输出刷新阶段,将输出映像寄存器的内容输出进行刷新.

在随后的某一个扫描周期中,电梯上升到第二层,外部X12触点被接通(图中“某个扫描周期”).其时序分析如下:

在输入映像阶段,由于外部X12接通,所以输入映像寄存器写入X12状态“1”;程序执行阶段第一指令行由于M45触点的状态为“1”,读出输入映像寄存器中X12、X13的状态并进行逻辑取反(非),三者之间进行逻辑“与”,运算结果为“0”则辅助继电器M45的状态为“0”,并且写入元件映像寄存器.

第二指令行读取输入映像寄存器X12的状态是“1”,继续读取元件映像寄存器M45的状态为“0”,二者逻辑“与”的结果为“0”,导致辅助继电器M47无法接通并保持.

在第三指令行中由于M45的状态为“0”,因此导致输出继电器Y1为“0”,在输出刷新阶段Y1没有输出.

很显然,从时序分析得到的结果来看,由于第二指令行中X11状态为“1”的时序滞后于辅助继电器M45状态为“0”,因此辅助继电器M47无法接通导致时间继电器T0不工作,所以电梯到达第二层后即停止,不能实现延时后再次启动上升到三层的控制要求.如果把上述梯形图根据时序的关系进行合理的修改,那么会有什么结果呢?看下面梯形图(图二):

很容易看出来,图二仅仅是将图一的两个指令行交换了次序,虽然很简单,但是却使得程序的运行时序发生了变化.

在第二层到达之后X12接通的扫描周期中(图三中“第二层到达周期”),在输入映像阶段,将X12为“1”写入输入映像寄存器.

程序执行阶段,第一指令行中由于元件映像寄存器中M45为前态“1”,因此X12和M45逻辑与的结果为“1”,再和T0(非)相“与”使得M45、T0状态为“1”并写入元件映像寄存器;第二指令行则由于读出输入映像寄存器X12为“1”,取“非”运算后和其他条件是相“与”的关系,因此使得第二逻辑行输出为“0”,辅助继电器M45为“0”并写入元件映像寄存器;那么第三逻辑行读出M45的状态为“0”使得输出映像寄存器Y1为“0”.

在输出刷新阶段T0进入延时(图三中黑虚线)而Y1停止.

当定时到了之后的第一个扫描周期(图三中“第一个扫描周期”)的输入映像阶段由于没有新的外部输入信号,所以输入映像寄存器原状态均不变.进入程序执行阶段,第一逻辑行中的T0状态变成“1”写入元件映像寄存器,第二逻辑行执行时读出元件映像寄存器T0的状态“1”,并联的逻辑运算结果也为“1”,继续分别和X12(非)、X13(非)进行逻辑“与”运算.导致M45状态为“1”并写入元件映像寄存器.因此第三逻辑行也将使Y1状态改变为“1”写入输出映像寄存器中;输出刷新阶段使得Y1接通.

在下一个扫描周期中(图三中“第二扫描周期”),输入映像阶段同样没有变化;但是在程序执行阶段,由于读出元件映像寄存器中T0的状态是“1”,逻辑“非”运算后导致T0、M47状态为“0”,因此TO和M45被停止,而此时这两个元件的状态对后面的电路已经没有影响了.接下来的扫描分析与前面的方法相同,这里就不再讨论了.

至此,程序完成了延时重新启动.可见,在PLC编程中,时序是程序设计是否成功的至关重要的因素,应该也必须引起高度的重视.

四、结束语

近年来,可编程序控制器(PLC)发展集成度越来越高,工作速度越来越快,功能越来越强大,远程通信功能的实现使得PLC如虎添翼.掌握PLC应用技术对于当今的技术人才来说已经成为必备的技能之一.由于PLC的实践性和技术理论性很强,因此在学习过程中要认真分析善于总结,勤于思考,透过现象寻其本质,尤其应注重理论联系实际,让自己的编程技能在实践中得到锻炼和提高.