当可编程逻辑控制器投入运行后,其工作过程一般分为三个阶段, 即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,可编程逻辑控制器的CPU以一定的扫描速度重复执行上述三个阶段。
一、输入采样阶段 在输入采样阶段,可编程逻辑控制器以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应的单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。 二、用户程序执行阶段 在用户程序执行阶段,可编程逻辑控制器总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。 即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。 在程序执行的过程中如果使用立即I/O指令则可以直接存取I/O点。即使用I/O指令的话,输入过程影像寄存器的值不会被更新,程序直接从I/O模块取值,输出过程影像寄存器会被立即更新,这跟立即输入有些区别。 三、输出刷新阶段 当扫描用户程序结束后,可编程逻辑控制器就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是可编程逻辑控制器的真正输出。