1.2.2 PLC的基本工作原理
PLC运行程序的方式与微型计算机相比有较大的不同,微型计算机运行程序时,一旦执行到END指令,程序运行结束。而PLC从0000号存储地址所存放的第一条用户程序开始,在无中断或跳转的情况下,按存储地址号递增的方向顺序逐条执行用户程序,直到END指令结束。然后再从头开始执行,并周而复始地重复,直到停机或从运行(RUN)切换到停止(STOP)工作状态。我们把PLC这种执行程序的方式称为扫描工作方式。每扫描完一次程序就构成一个扫描周期。另外,PLC对输入、输出信号的处理与微型计算机不同。微型计算机对输入、输出信号进行实时处理,而PLC对输入、输出信号是集中批处理。下面具体介绍PLC的扫描工作过程。
PLC扫描工作方式主要分3个阶段:输入采样、用户程序执行、输出刷新,如图1-1所示。
图1-1 PLC工作原理示意图
1.输入采样阶段
在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映像区中的相应单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映像区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
2.用户程序执行阶段
在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映像区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。即在用户程序执行过程中,只有输入点在I/O映像区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映像区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
3.输出刷新阶段
当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映像区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
从微观上来考察,由于PLC特定的扫描工作方式,程序在执行过程中所用的输入信号是本周期内采样阶段的输入信号。若在程序执行过程中,输入信号发生变化,其输出不能即时作出反映,只能等到下一个扫描周期开始时采样该变化了的输入信号。另外,程序执行过程中产生的输出不是立即去驱动负载,而是将处理的结果存放在输出映像寄存器中,等程序全部执行结束,才能将输出映像寄存器的内容通过锁存器输出到端子上。
因此,PLC最显著的不足之处是输入/输出有响应滞后现象。但对一般工业设备来说,其输入为一般的开关量,其输入信号的变化周期(秒级以上)大于程序扫描周期(毫微秒级),因此从宏观上来考察,输入信号一旦变化,就能立即进入输入映像寄存器。也就是说,PLC的输入/输出滞后现象对一般工业设备来说是完全允许的。但对某些设备,如需要输出对输入作快速反应,这时可采用快速响应模块、高速计数模块及中断处理等措施来尽量减少滞后时间。
从PLC的工作过程,可以总结如下几个结论。
(1)以扫描的方式执行程序,其输入/输出信号间的逻辑关系存在着原理上的滞后。扫描周期越长,滞后就越严重。
(2)扫描周期除了包括输入采样、用户程序执行、输出刷新3个主要工作阶段所占的时间外,还包括系统管理操作占用的时间。其中,程序执行的时间与程序的长短及指令操作的复杂程度有关,其他基本不变。扫描周期一般为毫微秒级。
(3)第n次扫描执行程序时,所依据的输入数据是该次扫描周期中采样阶段的扫描值Xn;所依据的输出数据有上一次扫描的输出值Y(n−1),也有本次的输出值Yn送往输出端子的信号,是本次执行全部运算后的最终结果Yn。
(4)输入/输出响应滞后,不仅与扫描方式有关,还与程序设计安排有关。