plc主要按扫描方式进行工作,而且是周期扫描方式。 PLC的中央处理器CPU与各外部设备之间的信息交换、用户程序的执行、输入信号的采集、控制量的输出等操作都是按固定的顺序进行的,而且是执行一遍后再执行下一遍,以循环扫描方式进行。 在正常状态下,从某一操作点开始,按顺序扫描各个操作流程,再返回到这一操作点的整个过程称为扫描周期,所用时间称为扫描周期时间。 PLC的扫描周期一般包括系统自检、外部设备服务、通信服务、输入采样、程序执行、输出刷新等六个阶段。PLC周期扫描流程框图见图。
1.系统自检阶段 PLC的CPU要对系统的有关硬件进行自检。这类工作中的一部分,上电启动后只进行一次,不进入扫描周期;有的部分要周期循环的进行,归入扫描周期内,作为系统自检阶段。 这阶段的工作还包括对运行监控定时器WDT(Watch Dog Timer)的检查和复位。WDT监控定时器的功能是,通过时间设定来检测整个扫描周期是否有故障。 首先,由系统或用户对WDT定时器设定一个时间,这个时间与扫描周期时间相对应,略大于扫描周期时间,这个时间称为设定值;WDT定时器还有一个记录当前值的寄存器,它从扫描周期开始计时,一个扫描周期进行完毕后,当前值寄存器记录的当前值就是这个扫描周期时间。运行正常时扫描周期时间小于WDT定时器设定值。在PLC运行的整个过程中,WDT定时器当前值与设定值不断的进行比较。 进入系统自检阶段,标志上一个扫描周期结束,此时检查监控定时器WDT,若WDT定时器当前值小于设定值,则说明运行正常。在这种情况下,WDT检查后,再对WDT定时器复位,当前值寄存器归零,开始下一周期的计时。 若由于某些原因,PLC发生了故障,例如程序进入死循环,执行程序时间必然超时,这样,在WDT当前值比设定值小时,扫描循环周期不会进入系统自检阶段,而最终会出现WDT定时器当前值大于设定值的情况,此时WDT发出警告,再配合其他检测信息,系统判断故障性质,若属偶然因素所至,系统能够自动清除,则复位WDT定时器,循环扫描重新开始;否则,WDT定时器发出故障信号,系统将自动停止执行用户程序,封锁硬件,切断输出,以保障设备和人身安全,并对外发出报警信号,等待处理。 有的PLC的WDT定时器的设定时间是固定的,不允许用户改变;有的允许用户用软件来设定,以适应用户控制程序的需要。 有的PLC虽然WDT定时器的设定时间是固定的,但指令系统中有WDT复位指令。如果用户程序过长而使周期扫描时间大于WDT定时器的设定时间,会出现非故障停机,为解决这一问题,可以把WDT复位指令插在程序中间,人为地让WDT及时复位而使当前值始终小于设定值而不会发出非故障的故障信号。 2.外设服务阶段 在PLC RUN(运行)时,可能通过编程器或专用监控器或微机对运行状态进行监视,甚至强迫改变某些存储器的值,或输出某些数据。这就要求PLC与外部设备(编程器、监控器、微机、外部存储器、打印机等)进行信息交换,这就是外设服务。外设服务的时间和次序是确定的,也在周期扫描时间内。 3.通信服务阶段 当PLC不是单机控制而是形成控制网络时,PLC与PLC 之间,PLC与上位机之间要进行信息和数据交换,也就是通过通信处理器(通信接口)进行通信联系。这个时间也是固定在周期扫描时间内。在通信服务时间,PLC发出的信息和数据送到通信处理器,并从通信处理器中读取所需数据和信息。当数据交换完成或者通信服务时间到,服务就结束。PLC运行不需要通讯时,通信服务时间就是零。 4.输入采样阶段 这是体现PLC周期循环扫描方式重要优点的一个阶段。我们知道,外部输入开关的通断状态改变是随机地,这个改变随时地通过输入接口电路送到输入状态暂存器中,但不能随时地送到输入映像存储器中。 输入映像存储器中,一位(二进制)存储单元存储一个外部输入开关的状态,通,存“1”;断,存“0”。这里,一个二进制一位存储单元被称为一个“输入继电器”。全部“输入继电器”(或说整个输入映像存储器),可以称为输入状态表,因为它记录了所有的外部输入开关的状态。 什么时候把输入状态暂存器中的外部输入开关的状态送到输入映像存储器(输入状态表)中?在输入采样阶段。在这个阶段,PLC把输入状态暂存器中全部的数据,即外部输入开关的状态,不管有没有改变,都同时地(也可以说,一次性集中地),按外部点地址与内部位的对应关系,读入到内存中的输入映像存储器中,也就是在各输入继电器中存起来。这称为输入采样,也称为输入刷新,刷新输入状态表。输入状态表上所有的值在两次输入采样之间都不改变,不管对应输入点上的开关状态发生变化还是没有发生变化。这样处理的好处,在后面介绍。 5.程序执行阶段 这个阶段执行用户程序。从0000步程序开始,按顺序、按要求一条指令一条指令地执行,直到“END”指令出现,程序执行阶段结束。由于是周期循环扫描,所以用户程序也是一个周期从头到尾执行一次,并且,随着周期的循环,不断反复地执行。执行程序就要从内存各类存储器中读数据,进行要求的运算和操作,向有关存储器中写数据。向存储器中写入的数据当然是运算和操作的结果。需要控制外部输出开关量的数据一般由执行输出指令获得,写入到“输出继电器”,即输出映像存储器中。在一次程序执行过程中,前面程序得到的运算结果,可以马上被后面指令使用;后面程序得到的运算结果,在同一周期内不能被前面指令使用,但可以在下一周期被前面指令使用。这样,指令在程序中的前后位置是需要认真考虑的。 6.输出刷新阶段 在程序执行过程中,通过输出指令写到“输出继电器”中的“0”、“1”是控制输出接口中的输出开关的,进而控制外部输出器件的通电或断电。“输出继电器”的全体称为输出映像存储器,一个“输出继电器”占据输出映像存储器的一位。输出映像存储器又可看作为输出状态表。在程序执行阶段,执行一次对“输出继电器”的输出指令,就立即把得到的0、1数据写到输出映像存储器的对应位中,执行几次,写几次。也就是说,可以随时地即时刷新输出状态表。但是不能即时刷新输出状态锁存器,即输出状态锁存器的各位不能随时被改写。输出状态锁存器的各位是在输出刷新阶段被统一集中刷新。在这个阶段,CPU把内存中输出映像存储器,也就是输出状态表的内容一一对应地同时转存到输出接口电路的输出状态锁存器中,再经过光耦驱动,刷新输出开关,再使PLC输出口的执行器件的工作状态被刷新,实现PLC的控制目的。
|