西门子PLC 200/300/400应用程序设计实例精讲(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 PLC的工作原理

本节主要从循环扫描和I/O响应来讲述PLC的工作原理。

1.4.1 循环扫描

CPU连续执行用户程序、任务的循环序列称为扫描。CPU的扫描周期包括读输入、执行程序、处理通信请求、执行CPU自诊断测试及写输出等内容。

PLC可被看成是在系统软件支持下的一种扫描设备。它一直周而复始地循环扫描并执行由系统软件规定好的任务。用户程序只是扫描周期的一个组成部分,用户程序不运行时,PLC也在扫描,只不过在一个周期中去除了用户程序和读输入、写输出这几部分内容。典型的PLC在一个周期中完成以下5个扫描过程。

(1)自诊断测试扫描过程。为保证设备的可靠性,及时反映所出现的故障,PLC都具有自监视功能。自监视功能主要由时间监视器(Watchdog Timer, WDT)完成。WDT是一个硬件定时器,每一个扫描周期开始前都被复位。WDT的定时可由用户修改,一般在100~200ms之间。其他的执行结果错误可由程序设计者通过标志位进行处理。

(2)与网络进行通信的扫描过程。一般小型系统没有这一扫描过程,配有网络的PLC系统才有通信扫描过程,这一过程用于PLC之间及PLC与上位计算机或终端设备之间的通信。

(3)用户程序扫描过程。机器处于正常运行状态下,每一个扫描周期内都包含该扫描过程。该过程在机器运行中是否执行是可控的。用户程序的长短,会影响过程所用的时间。

(4)读输入、写输出扫描过程。机器在正常运行状态下,每一个扫描周期内都包含这个扫描过程。该过程在机器运行中是否被执行是可控的。CPU在处理用户程序时,使用的输入值不是直接从输入点读取的,运算的结果也不直接送到实际输出点,而是在内存中设置了两个映像寄存器,一个为输入映像寄存器;另一个为输出映像寄存器。用户程序中所用的输入值是输入映像寄存器的值,运算结果放在输出映像寄存器中。在输入扫描过程中,CPU把实际输入点的状态锁存到输入映像寄存器:在输出扫描过程中,CPU把输出映像寄存器的值锁定到实际输出点。为了现场调试方便,PLC具有I/O控制功能,用户可以通过编程器封锁或开放I/O。封锁I/O就是关闭I/O扫描过程。

在读输入阶段,CPU对各个输入端子进行扫描,通过输入电路将各输入点的状态锁入输入映像寄存器中。紧接着转入用户程序执行阶段,CPU按照先左后右、先上后下的顺序对每条指令进行扫描,根据输入映像寄存器和输出映像寄存器的状态执行用户程序,同时将执行结果写入输出映像寄存器中。在程序执行期间,即使输入端子状态发生变化,输入映像寄存器的内容也不会改变,输入端子状态变化只能在下一个工作周期的输入阶段才被集中读入。在写输出阶段,将输出映像寄存器的状态集中锁定到输出锁存器,再经输出电路传递到输出端子。

由上述分析,得出循环扫描有如下特点。

(1)扫描过程周而复始地进行,读输入、写输出和用户程序是否执行是可控的。

(2)输入映像寄存器的内容是由设备驱动的,在程序执行过程中的一个工作周期内,输入映像寄存器的值保持不变,CPU采用集中输入的控制思想,只能使用输入映像寄存器的值来控制程序的执行。

(3)程序执行的输出映像寄存器的值决定了下一个扫描周期的输出物理端子的输出值,而在程序执行阶段,输出映像寄存器的值既可以作为控制程序执行的条件,同时又可以被程序修改用来存储中间结果或下一个扫描周期的输出结果。此时的修改不会影响输出锁存器的现在输出值,这是与输入映像寄存器完全不同的。

(4)对同一个输出单元的多次使用、修改次序会造成不同的执行结果。由于输出映像寄存器的值可以作为程序执行的条件,所以程序的下一个扫描周期的集中输出结果是与编程顺序有关的,最后一次的修改决定了下一个周期的输出值,这是编程人员要注意的问题。

(5)各个电路和不同的扫描阶段会造成输入和输出的延迟,这是PLC的主要缺点。各PLC厂家为了缩小延迟采取了很多措施,编程人员应对所使用型号的PLC的延迟时间的长短很清楚,它是进行PLC选型时的重要指标。

输入/输出采用映像寄存器结构的优点如下:

(1)集中I/O,程序扫描期间输入值固定不变,程序执行完后,统一输出。这种集中I/O的方法保证了程序的顺序执行与外部电路乱序执行的统一,使系统更加稳定可靠。

(2)程序执行时,存取映像寄存器要比直接读取I/O端点快得多,这样可以加快程序的执行速度。

(3)I/O点必须按位存取,而映像寄存器可按位、字节、字、双字灵活地存取,增加了程序的灵活性。

从以上对扫描周期的分析可知,扫描周期的时间变化基本上可分为三部分,即保证系统正常运行的公共操作、系统与外部设备信息的交换和用户程序的执行。第一部分的扫描时间基本上是固定的,因机器类型而有所不同;第二部分并不是每个系统或系统的每次扫描都有,占用的扫描时间也是变化的;第三部分随控制对象工艺的复杂程度和用户控制程序而变化。因此这部分占用的扫描时间不仅对不同系统其长短不同,而且对同一系统的不同执行条件也占用着不同的扫描时间。所以,系统扫描周期的长短,除了因是否运行用户程序而有较大的差别外,在运行用户程序时也不是完全固定不变的。这是由于在执行程序中,随变量状态的不同,一部分程序段可能不执行而形成的。用户程序的扫描时间主要由CPU的运算速度和程序的长短决定。

1.4.2 I/O响应时间

由于PLC采用循环扫描的工作方式,而且对输入和输出信号只在每个扫描周期的固定时间集中输入/输出,所以必然会产生输出信号相对输入信号滞后的现象。扫描周期越长,滞后现象越严重。对慢速控制系统这是允许的,当控制系统对实时性要求较高时,这就成了必须面对的问题,所以编程者应对滞后时间有一个具体数量上的了解。

从PLC输入端信号发生变化到输出端对输入变化做出反应,需要一段时间,这段时间就称为PLC的响应时间或滞后时间。

响应时间由输入延迟、程序执行时间和输出延迟三部分决定。

(1)PLC输入电路中设置了滤波器,滤波器的常数越大,对输入信号的延迟作用就越强。输入延迟是由硬件决定的,有些PLC滤波器时间常数可调。

(2)从输出锁存器到输出端子所经历的时间称为输出延迟,对各种不同的输出形式,其值大小不同。它也是由硬件决定的,对于不同型号的PLC,其具体数值可通过查表得到。

(3)程序执行时间主要由程序的长短来决定,对一个实际的控制程序,编程人员须对此部分时间进行现场测算,使PLC的响应时间控制在系统允许的范围内。

在最有利的情况下,输入状态经过一个扫描周期在输出得到响应的时间,称为最小I/O响应时间。在最不利的情况下,输入点的状态恰好错过了输入的锁入时刻,造成在下一个输出锁定时才能被响应,这就需要两个扫描周期时间,称为最大I/O响应时间。它们是由PLC的扫描执行方式决定的,与编程方法无关。

对一般的工业控制系统,这种滞后现象是完全允许的。同时可以看出,输入状态要想得到响应,开关量信号宽度至少要大于一个扫描周期才能保证被PLC采集到。当然,现在的PLC加强了快速响应和输入脉冲捕捉的功能,保证了各种宽度的开关量都能被准确地采集到。