在PLC中,用户程序按先后顺序存放,在没有中断或跳转指令时,PLC从第一条指令开始顺序执行,直到程序结束符后又返回到第一条指令,如此周而复始地不断循环执行程序。PLC在工作时采用循环扫描的工作方式。顺序扫描工作方式简单直观,不仅简化了程序设计,并为PLC的可靠运行提供保证。有些情况下也插入中断方式,允许中断正在扫描运行的程序,以便处理一些紧急任务。
PLC扫描工作的第一步是采样阶段,通过输入接口把所有输入端的信号状态读入缓冲区,即刷新输入信号的原有状态。第二步扫描用户程序,根据本周期输入信号的状态和上周期输出信号的状态,对用户程序逐条进行运算处理,并将结果送到输出缓冲区。第三阶段进行输出刷新,将输出缓冲区各输出点的状态通过输出接口电路全部送到PLC的输出端。PLC周期性地循环执行上述三个步骤,这种工作方式称为循环扫描的工作方式。每一个循环称为一个扫描周期。一个扫描周期中除了执行指令外,还有I/O刷新、故障诊断和通信等操作,如图1-3所示。扫描周期是PLC的重要参数之一,它反映PLC对输入信号的灵敏度或滞后程度。通常工业控制要求PLC的扫描周期在6~30ms。
图1-3 PLC的工作流程图
在进入扫描之前,PLC首先执行自检操作,以检查自身是否存在问题。自检过程的主要任务是消除各继电器和寄存器状态的随机性,进行复位和初始化处理,检查I/O模块的端子连接是否正常,再对内存单元进行测试。如正常则可认为PLC自身完好,否则出错指示灯(ERROR)亮报警,并停止所有任务的执行。最后复位系统的监视定时器,允许PLC进入循环扫描周期。在每次扫描期间,PLC也作系统诊断,以及时发现故障。
在正常的扫描周期中,PLC内部要进行一系列操作,一般包括故障诊断及处理操作、连接工业现场的数据输入和输出操作、执行用户程序和响应外部设备的任务请求(如打印、显示和通信等)。
1.故障诊断及处理操作
这是在每一次扫描程序前对PLC及其系统作一次自检。若发现异常,除了出错指示灯(ERROR)亮之外,PLC还会判断故障的性质。如属于一般性故障,则只报警不停机,等待处理;对于严重故障,PLC就切断一切外界联系,停止用户程序的执行。
2.数据输入和输出操作
数据输入和输出操作即为I/O状态刷新。输入扫描就是对PLC的输入进行一次读取,将输入端各变量的状态重新读入PLC中,存入内部寄存器。输出刷新就是将新的运算结果从输出映像寄存器送到PLC的输出端。
PLC的存储器中有一个专门存放I/O数据的区域。对应于输入端的数据区为输入映像寄存器,对应于输出端的数据区为输出映像寄存器。PLC在采样时,输入信号进入映像寄存器,即数据输入的状态刷新。PLC在输出时,将输出映像寄存器的内容输出到输出寄存器,即数据输出的状态刷新。I/O状态寄存器中的内容构成了当前的I/O状态表。
通常把PLC内部的各种存储器称为“软继电器”。所谓“软继电器”实际上是存储器中的一位触发器,0、1对应继电器的断与通。在传统的继电器控制系统中,输出是由物理器件和导线连接而成的电路来实现,而在PLC中,却是用微处理器和存储器来代替继电器控制电路,是通过用户程序来控制这种“继电器”的断与通,所以将这种继电器称为“软继电器”。
输入操作实际是采样输入信号,刷新输入状态表的内容,输出操作则是送出处理结果,按输出状态表的内容刷新输出电路。PLC在每次扫描中都将保存输入和输出状态的寄存器的内容进行一次更新。
由输入和输出操作的过程中可以看出,在刷新期间如输入变量状态发生变化,则在本次扫描期间,PLC的输出端会相应地发生变化,也就是说输出对输入立刻产生了响应。如在一次I/O刷新之后输入变量才发生变化,则在本次扫描期间PLC的输出保持不变,而要到下一次扫描期间输出才对输入产生响应。即只有在采样(刷新)时刻,输入映像寄存器中的内容才与输入信号(不考虑电路固有惯性和滞后影响)一致,其他时间范围内输入信号的变化不会影响输入映像寄存器的内容。PLC根据用户程序要求及当前输入状态进行处理,结果存放在输出映像寄存器中。在程序执行结束(或下次扫描用户程序前)后,PLC才将输出映像寄存器的内容通过锁存器输出到端子上,刷新后的输出状态要保持到下次刷新为止。这种循环扫描的工作方式存在一种信号滞后的现象,但PLC的扫描速度很高,一般不会影响系统的响应速度。
3.执行用户程序
用户程序的执行一般包括程序的具体执行与监视两部分。
(1)执行用户程序
用户程序是存放在用户程序存储器中的。PLC在循环扫描时,每一扫描周期都按顺序从用户程序的第一条指令开始,逐条(遇跳转指令除外)解释和执行,直到执行到END指令才结束对用户程序的本次扫描。
用户程序处理的依据是I/O状态表。其中输入状态由采样时刷新,输出状态则根据用户程序而逐个更新。每一次计算都以当前的I/O状态表中的内容为依据,结果送到相应的输出状态表中,上面的结果作为下面计算的依据,中间结果不能作为输出的依据。对于整个控制系统来说,只有执行完用户程序后的I/O状态才是该系统的确定状态,才能作为输出锁存的依据。
(2)监视
PLC中一般设置有监视定时器(Watchdog Timer,WDT),即“看门狗”,用来监视程序执行是否正常。每次执行程序前复位WDT并开始计时,正常时,扫描执行一次用户程序所需时间不会超过某一定值。当程序执行过程中因某种干扰使扫描失控或进入死循环,则WDT会发出超时复位信号,使程序重新开始执行。此时,如果是偶然因素造成超时,系统便转入正常运行;如果是由于不可恢复的确定性故障,则系统会在故障诊断及处理操作中发现这种故障,并发出故障报警信号,切断一切外界联系,停止用户程序的执行,等待技术人员处理。(www.xing528.com)
4.响应外设的服务请求
外设命令是可选操作,它既给操作人员提供了交互机会,也可实现与其他系统进行通信,并且不会影响系统的正常工作,而且会更有利于系统的控制和管理。
PLC每次执行完用户程序后,如有外设命令,就进入外设命令服务的操作,操作完成后就结束本次扫描周期,开始下一个扫描周期。每一个扫描周期一般主要由输入采样、用户程序执行和输出刷新三个阶段组成。
(1)输入采样
在输入采样阶段,PLC以扫描工作方式按顺序对所有输入端的输入状态进行采样,并存入输入映像寄存器中,此时输入映像寄存器被刷新。接着进入程序处理阶段,在程序执行阶段或其他阶段,即使输入状态发生变化,输入映像寄存器的内容也不会改变。输入状态的变化只有在下一个扫描周期的输入处理阶段才能被采样到。
(2)用户程序执行
在用户程序执行阶段,PLC对用户程序按顺序进行扫描执行。若程序用梯形图来表示,则总是按照从上到下、从左到右的顺序进行。在遇到跳转指令时,则根据跳转条件是否满足来决定程序是否跳转。在指令中涉及输入/输出状态时,PLC从输入映像寄存器和元件映像寄存器(PLC内部除输入/输出映像寄存器外的内部各种软元件的映像寄存器)中读出相应的状态值,根据用户程序进行运算,运算的结果再存入相应的映像寄存器中。对于元件映像寄存器来说,其内容会随程序执行的过程而发生变化。
(3)输出刷新
当所有程序执行完毕后,系统就进入输出处理阶段,此时PLC将输出映像寄存器中与输出有关的状态(输出继电器的状态)传送到输出锁存器中,并通过一定的方式输出,驱动外部负载。
因此,PLC在一个扫描周期内,对输入状态的采样只在输入采样阶段进行。当PLC进入程序执行阶段后输入端将被封锁,直到下一个扫描周期的输入采样阶段才对输入状态进行重新采样。这种方式称为集中采样,即在一个扫描周期内,集中一段时间对输入状态进行采样。
在用户程序中如果对某一输出多次赋值,则最后一次有效。在一个扫描周期内,只在输出刷新阶段才将输出状态从输出映像寄存器中输出,对输出端口进行刷新。在其他阶段里输出状态一直保存在输出映像寄存器中,输出端口保持不变。这种方式称为集中输出。
对于小型PLC,其I/O点数较少,用户程序较短,一般采用集中采样、集中输出的工作方式,虽然在一定程度上降低了系统的响应速度,但使PLC在大多数工作时间里与外部输入和输出设备隔离,从根本上提高了系统的抗干扰能力,增强了系统的可靠性。
而对于大中型PLC,其I/O点数较多,控制功能强,用户程序较长,为提高系统响应速度,可以采用定期采样、定期输出方式或中断输入和输出的方式。
5.几点说明
1)PLC以循环扫描的方式工作,输入和输出在逻辑关系上存在滞后现象。扫描周期越长,滞后现象就越严重。但PLC的扫描周期一般只有几十毫秒或更少,两次采样之间的时间很短,对于一般输入量来说可以忽略,可以认为输入信号一旦变化,就能立即进入输入映像寄存器。同样,对于变化较慢的控制过程来说,也可以认为输出信号是及时的。
在实际应用中,这种滞后现象可起到滤波作用。对慢速控制系统来说,滞后现象反而增强了系统的抗干扰能力。但对控制时间要求较严格、响应速度要求较快的系统,就必须考虑滞后对系统性能的影响,在设计中尽量缩短扫描周期。
2)除了执行用户程序所占用的时间外,扫描周期还包括系统管理操作所占用的时间。前者与程序的长短及所用的指令有关,而后者基本不变。如考虑到I/O硬件电路的延时,PLC的响应滞后就更大一些。
输入和输出响应滞后不仅与扫描方式和硬件电路的延时有关,还与程序设计的指令安排有关。为了缩短扫描周期,提高响应速度,可采用分时、分批的程序设计方法。
PLC最基本的工作方式是循环扫描的方式,就是在具有快速处理的高性能PLC中,程序也是以循环扫描的工作方式执行,理解和掌握这一点对于学习PLC十分重要。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。