您现在的位置是:首页 > PLC技术 > PLC技术

PLC用户程序的循环扫描过程

来源:艾特贸易2017-06-04

简介PLC 对用户程序的执行是以循环扫描方式进行的。 PLC 的这种程序运行方式与微型计算机有很大的不同。微型计算机运行程序时,一旦执行到 END 指令,程序运行结束,而 PLC 从 0000 号存储

    PLC对用户程序的执行是以循环扫描方式进行的。PLC的这种程序运行方式与微型计算机有很大的不同。微型计算机运行程序时,一旦执行到END指令,程序运行结束,而PLC0000号存储地址所存放的第一条用户程序开始,在无中断或跳转的情况下,按存储地址号递增的方向顺序逐条执行用户程序,直到END指令结束,然后再从头开始执行,并周而复始地执行,直到停机或从运行(RUN)切换到停止(STOP)工作状态为止。PLC每扫描完一次程序就构成一个扫描周期。    CPU不同时执行多个操作,只按分时操作(串行工作)方式,每一次执行一个操作,按顺序逐个执行。由于CPU的运算处理速度很快,所以从宏观上来看,PLC外部出现的结果似乎是同时(并行)完成的。这种串行工作过程即为PLC的扫描工作方式,它与传统的继电器控制系统相比有明显的不同,继电器控制装置采用硬逻辑并行运行的方式:在执行过程中,如果一个继电器的线圈通电,则该继电器的所有常开和常闭触点,无论处在控制线路的什么位置,都会立即动作,即常开触点闭合,常闭触点断开。PLC采用循环扫描控制程序的工作方式(串行工作方式):在PLC的工作过程中,如果某一个软继电器的线圈接通,该线圈的所有常开和常闭触点并不一定都会立即动作,只有CPU扫描到该触点时才会动作,即常开触点闭合,常闭触点断开。    PLC对用户程序进行循环扫描分为也必须分为三个阶段,即输入采样阶段、程序执行阶段和输出刷新阶段,如图1-14所示。
PLC用户程序的工作过程
    1-14    PLC用户程序的工作过程    (1)输入采样阶段。这是第一个集中批处理过程,在这个阶段中,PLC按顺序逐个采集所有输入端子上的信号,不论输人端子上是否接线,CPU都顺序读取全部输入端的信号,将所有采集到的一批输入信号写到输入映像寄存器中。此时输入映象寄存器被刷新,随即关闭输入端口,进入程序执行阶段。在当前的扫描周期内,用户程序用到的输入信号的状态(ONOFF)均从输入映像寄存器中读取,不管此时外部输入信号的状态是否变化。即使此时外部输入信号的状态发生了变化,也只能在下一个扫描周期的输入采样扫描阶段读取。对于这种采集输入信号的批处理,严格上说虽然每个信号被采集的时间有先有后,但由于PLC的扫描周期很短,这个差异对一般工程应用而言可忽略不计,所以可以认为这些采集到的输入信息是同时的。    (2)程序执行阶段。这是第二个集中批处理过程,在执行用户程序阶段,CPU对用户程序按顺序进行扫描。如程序用梯形图表示,则总是按先上后下、从左至右的顺序进行扫描。当遇到程序跳转指令时,则根据跳转条件是否满足来决定程序是否跳转。每扫描到一条指令,若其涉及输入信息的状态,则均从输入映像寄存器中读取,而不是直接使用现场的立即输入信号;对其他信息,则是从PLC的元件映像寄存器中读取。根据用户程序进行运算后,每一次运算的中间结果都立即写入元件映像寄存器中,对输出继电器的扫描结果,也不是马上去驱动外部负载,而是将其结果写入到输出映像寄存器中。在此阶段,允许对数字量I/O指令和不设置数字滤波的模拟量I/O指令进行处理,在扫描周期的各个部分,均可对中断事件进行响应。    在这个阶段,除了输入映像寄存器外,各个元件映像寄存器的内容是随着程序的执行而不断变化的。    (3)输出刷新阶段。这是第三个集中批处理过程,当CPU对全部用户程序扫描结束后,将元件映像寄存器中各输出继电器的状态同时送到输出锁存器中,再由输出锁存器通过一定的方式(继电器、晶体管或晶闸管)经输出端子去驱动外部负载。    在输出刷新阶段结束后,CPU进入下一个扫描周期,重新执行输入采样,周而复始。    在一个扫描周期内,PLC对输入状态的采样只在输入采样阶段进行。当PLC进入程序执行阶段后输人端将被封锁,直到下一个扫描周期的输入采样阶段才对输入状态进行重新采样。这种方式称为集中采样,即在一个扫描周期内,集中一段时间对输入状态进行采样。在用户程序中如果对输出结果多次赋值,则只有最后一次赋值有效。在一个扫描周期内,只在输出刷新阶段才将输出状态从输出映象寄存器中输出,对输出接口进行刷新;在其他阶段,输出状态一直保存在输出映象寄存器中,这种方式称为集中输出。    集中采样与集中输出的工作方式是PLC的又一特点,在采样期间,将所有输入信号(不论该信号当时是否要用)一起读人,此后在整个程序处理过程中PLC系统与外界隔离,直至输出控制信号。外界信号状态的变化要等到下一个工作周期再进行新一轮采集,这样从根本上提高了系统的抗干扰能力,提高了系统的可靠性。    在程序执行阶段,由于输出映像区的内容会随程序执行的进程而变化,因此,在程序执行过程中,所扫描到的功能经解算后,其结果马上就可被后面将要扫描到的逻辑的解算利用,因而简化了程序设计。