PLC采用循环执行用户程序的方式,称为循环扫描工作方式,一个循环扫描周期,主要可分为输入采样、用户程序执行和输出刷新三个阶段。PLC运行后首先执行一次启动组织块,再开始监视时间,在输入采样阶段,读取输入设备的状态,并存储到IO映像区中,之后进入执行用户程序阶段,按照从上到下从左到右的顺序依次执行用户程序,执行完用户程序,将输出映像区的结果刷新到输出设备。这一过程就是一个扫描周期,循环进行上述步骤称为循环扫描工作方式。
在扫描周期中的输入采样阶段,依次读入所有输入状态和数据,并将它们存入IO映像区中的相应单元内,输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,IO映像区中的相应单元的状态和数据也不会改变。因此如果输入是脉冲信号,该脉冲信号的宽度必须大于一个扫描周期,才能够保证在任何情况下该输入均能被读入。
在扫描周期中的用户程序执行阶段,PLC总是按由上而下的顺序依次扫描用户程序,再扫描每一条梯形图时,并按先左后右先上后下的顺序进行逻辑运算。逻辑运算的结果存于映像区,上面的逻辑运算,其运算结果会对下面的逻辑运算起作用。相反下面的逻辑运算,其运算结果只能到下一个扫描周期,才能对上面的运算结果起作用。
在扫描周期中的输出刷新阶段,当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照保存在IO映像区的运算结果,刷新所有对应的输出锁存电路,再经输出电路驱动相应的外设,这时才是PLC的真正输出。
综合上述过程,PLC的工作特点如下:
一、所有输入信号在程序处理前统一读入,并在程序处理过程中不再变化。而程序处理的结果也是在扫描周期的最后时段统一输出,其工作特点是将一个连续的过程分解成若干静止的状态。
二、PLC仅在扫描周期的起始时段读取外部输入状态,该时段相对较短,对输入信号的抗干扰能力强。
三、循环扫描的工作方式,对于高速变化的过程可能漏掉变化的信号,也会带来系统响应的滞后。为克服上述问题,可利用立即输入输出脉冲捕获高速计数器或中断技术等。
下面我们来看一个实例,I0.1代表外部的按钮,当按钮动作后,左面的程序只需要一个扫描周期,就可以完成对M0.4的刷新,而右面的程序要经过四个扫描周期才能完成对M0.4的刷新,在扫描周期极短,无时序配合要求时,感觉不到这两个程序执行的差异。在有时序配合的情况下,这种差异要引起注意。
结合PLC循环扫描工作方式分析图示双线圈输出程序。当I0.0按下时,最终输出Q0.0还是0,当I0.1按下时,最终输出Q0.0才是1。
下面通过示意图介绍西门子S7-1200 PLC启动到运行的过程,启动过程中依次执行以下步骤:A、清除输入映像存储器。B、使用上一个值或替换值,对输出执行初始化。C、执行启动OB块。D、将物理输入的状态复制到输入映像存储器。F、启用将输出映像存储器的值写入到物理输出。E、将所有中断事件存储到要在软模式下处理的队列中。运行时依次执行以下步骤:①将输出映像存储器写入物理输出。②将物理输入的状态复制到输入映像存储器。③执行程序循环OB块。④执行自检诊断。⑤请注意,在扫描周期的任何阶段,可实时处理中断和通信。
S7-1200从启动到运行的执行过程