输入部分:它收集并保存被控对象实际运行的数据和信息。例如,它收集来自被控制对象上的各种开关信息或操作台上的操作命令等。
逻辑部分:处理输入部分所取得的信息,并按照被控对象实际的动作要求作出反映。
输出部分:提供正在被控制的许多装置中,哪几个设备需要实时操作处理。
1.PLC工作过程
PLC采用循环扫描工作方式,这种工作方式与其他微机工作方式有很大区别。微机控制采用等待命令的工作方式,如常见的键盘扫描方式或I/O扫描方式,有键按下或I/O动作则转入相应的子程序,无输入则继续扫描。
1.1PLC的扫描周期
可编程控制器的工作过程包括两部分:自诊断及通信响应的固定过程和用户程序执行过程,如图5-1所示。PLC在每次执行用户程序之前,都先执行故障自诊断程序、复位、监视、定时等内部固定程序,若自诊断正常,继续向下扫描,然后PLC检查是否有与编程器、计算机等的通信请求。如果有与计算机等的通信请求,则进行相应处理。当PLC处于停止(STOP)状态时,只循环进行前两个过程。而在PLC处于运行(RUN)状态时,PLC从内部处理、通信操作、输入扫描、执行用户程序、输出刷新五个工作阶段循环工作。每完成一次以上五个阶段所需要的时间称为一个扫描周期。
扫描周期是PLC的一个重要指标,小型PLC的扫描周期一般为十几毫秒到几十毫秒。PLC的扫描周期长短取决于扫描速度和用户程序的长短。毫秒级的扫描时间对于一般工业设备通常是允许的,PLC对输入的短暂滞后也是允许的。但对某些I/O快速响应的设备,则应采取相应的处理措施。如选择高速CPU,提高扫描速度;选择快速响应模块、高速计数模块以及不同的中断处理等措施减少滞后时间。对于用户来说,要提高编程能力,尽可能优化程序;而在编写大型设备的控制程序时,尽量减少程序长度,选择分支或跳步程序等,都可以减少用户程序执行时间。
1.2PLC的用户程序执行过程
对于用户来说,在编写用户程序或选择设备时,必须清楚下面介绍的三个阶段,即用户程序执行过程的原理。
PLC采用集中处理的方法,即对输入扫描信号、执行用户程序和输出刷新都采用集中分批处理的工作方式。
(1)输入扫描 在这一阶段中,PLC以扫描方式读入所有输入端子上的输入信号,并将输入信号存入输入映像区,输入映像存储器被刷新。在程序执行阶段和输出刷新阶段中,输入映像存储器与外界隔离,其内容保持不变,直至下一个扫描周期的输入扫描阶段,才被重新读入的输入信号刷新。可见,PLC在执行程序和处理数据时,不直接使用现场当时的输入信号,而使用本次采样时输入到映像区中的数据。如果输入设备能使PLC输入端形成闭合回路,对应输入端编号的内部输入继电器内保存为”1”,即相当于继电器线圈导通。在程序执行过程中,该编号对应的触点动作;如果输入设备能使输入开路,则对应输入端编号的内部输入继电器内保存为”0”,即相当于继电器线圈没导通,在程序执行过程中,该编号对应的触点不动作。如果在PLC处于非输入扫描的阶段,PLC外的输入设备状态发生了变化,内部输入继电器也不会发生变化,要等到下一个输入扫描阶段才能根据此时的输入状态来刷新。所以,对于少于十几毫秒的输入信号,经常采集不到。
(2)执行程序 在执行用户程序过程中,PLC按梯形图程序顺序自上而下、从左至右逐个扫描执行,即按助记符指令表的先后顺序执行。但遇到程序跳转指令,则根据跳转条件是否满足来决定程序跳转地址。程序执行过程中,PLC从输入映像区中取出输入变量的当前状态,然后进行由程序确定的逻辑运算或其他运算,根据程序指令将运算结果存入相应的内部继电器中,包括输出继电器、内部辅助继电器、定时器、计数器等。输出继电器的信号存放在输出映像区,即输出继电器与PLC外部的同编号的输出点对应。
在程序执行过程中,同一周期内,前面的逻辑结果影响后面的触点,即后执行的程序可能用到前面的最新中间运算结果;但同一周期内,后面的运算结果不影响前面的逻辑关系。该扫描周期内除输入继电器以外的所有内部继电器的最终状态(导通与否),将影响下一个扫描周期各触点的开与闭。
(3)输出刷新 程序执行阶段的运算结果被存入输出映像区,而不送到输出端口上。在输出刷新阶段,PLC将输出映像区中的输出变量送入输出锁存器,然后由锁存器通过输出模块产生本周期的控制输出。如果内部输出继电器的状态为”1”,则输出继电器触点闭合。全部输出设备的状态要保持一个扫描周期。
2.PLC工作过程举例
下面以具体实例分析PLC控制过程。
【例1】指示灯控制
图5-2为PLC接线图,图5-3为控制梯形图。图5-4描述了每个扫描周期程序的执行过程。按钮SB2虽然在程序中没有使用,但其状态仍影响其对应编号的内部输入继电器的状态。图(a)中,①输入扫描过程,将两个按钮的状态扫描后,存入其映像区,由于SB2是停止按钮,所以,即使没有按下,其输入回路也是闭合的,因此,X1存“1”(ON状态),而其它位存“0”(OFF状态)。②执行程序过程,程序根据所用到触点的编号对应的内部继电器状态来运算。由于X0处于OFF状态,因此,对应的动合触点处于断开状态,运算结果是Y0、Y1处于OFF状态,其结果存入输出映像区,即Y0、Y1存“0”。③输出刷新过程,根据映像区各位的状态驱动输出设备,由于输出映像区均为OFF状态,所以,输出指示灯不能形成闭合回路,灯不亮。如果输入不发生变化,内部继电器的状态均不发生变化。图(b)中,按下SB1按钮后,X0输入回路闭合。①输入扫描将输入状态存入其映像区,X0、X1均存“1”。②执行程序过程,按照从左到右,从上到下的原则,逐条执行。(http://www.diangon.com/版权所有)第一行,X0触点闭合,但此时,Y1的状态为“0”,因此,Y1触点为断开状态,Y0没能导通,其状态为“0”。第二行,X0触点闭合,所以,Y1的状态为“1”。③输出刷新过程,由于Y1呈导通状态,灯2亮。
图(c)为按下SB1按钮后的第二个扫描周期。①输入扫描,由于输入状态不变,输入映像区不变。②执行程序过程,第一行,X0触点闭合,由于上一个周期中,Y1为ON状态,因此,Y1触点也闭合,Y0也呈导通状态;第二行,Y1还呈导通状态。Y0、Y1的状态均为”1”。③输出刷新过程,两个灯都亮。注意:由于PLC的扫描周期很短,我们用肉眼见到的现象可能是两灯同时亮。如果按钮没有变化,内部继电器、输出设备状态均无变化。[page]
图(d)为松开SB1按钮后的第一个扫描周期。①输入扫描使输入映像区的X0存”0”、 X1存”1”。②执行程序过程,X0触点断开, Y1由于上个周期被置”1”,因此,Y1触点为闭合状态。③输出刷新过程,由于X0触点的断开,Y0 、Y1都呈断开状态。
【例2】定时计数
本例无实际意义,但非常有利于分析程序执行过程。系统输入端只需接一个按钮,无输出,参考图5-2,只接X0。分析图5-5中,(a)、(b)、(c)三种情况下,观察计数器的当前值,分析程序执行过程。
程序中M8011为特殊辅助继电器,只要PLC处于运行状态,将不停发出10ms的脉冲信号(5ms通、5ms断)。程序中T0为1s定时,X0闭合后1s,T0导通。C0为增计数器,在X0闭合、T0没有闭合的前提下,记录M8011发出的脉冲个数。理论上,在T0导通,C0计数器停止计数时,计数器的当前值应为100个(1s/10ms=100个脉冲)。三段程序中,只是改变了执行的前后位置,但结果却不同。结合对应的时序图分析其原因。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』