1.4 PLC的工作方式和性能指标
1.4.1 PLC的循环扫描工作方式
在继电器控制电路中,当某些梯级同时满足导通条件时,这些梯级中的继电器线圈会同时通电,也就是说,继电器控制电路是一种并行工作方式。PLC是采用循环扫描的工作方式,在PLC执行用户程序时,CPU对梯形图自上而下、自左向右地逐次进行扫描,程序的执行是按语句排列的先后顺序进行的。这样,PLC梯形图中各线圈状态的变化在时间上是串行的,不会出现多个线圈同时改变状态的情况,这是PLC控制与继电器控制很重要的区别。
PLC采用循环扫描的工作方式,它可以看做是一种由系统软件支持的扫描设备,不论用户程序运行与否,都周而复始地进行循环扫描,并执行系统程序规定的任务。每一个循环所经历的时间称为一个扫描周期。每个扫描周期又分为几个工作阶段,每个工作阶段完成不同的任务。
PLC加电后首先进行初始化,然后进入循环扫描工作过程。完成一次扫描的任务及过程可归纳为4个工作阶段:公共处理→程序执行→I/O刷新→外设端口服务,各阶段任务如下。
1.公共处理阶段
在每一次扫描开始之前,CPU都要进行复位监视定时器、硬件检查,以及用户内存检查等操作。如果有异常情况,除了故障显示灯亮以外,还判断并显示故障性质。如果属于一般性故障,则只报警不停机,等待处理;如果属于严重故障,则停止PLC的运行。公共处理阶段所用的时间一般是固定的,不同机型的PLC有所差异。
2.程序执行阶段
在程序执行阶段,CPU对用户程序按先上后下、先左后右的顺序逐条地进行扫描,即解释和执行。CPU从输入映像寄存器(每个输入继电器对应一个输入映像寄存器)和元件映像寄存器(元件映像寄存器与各种内部继电器、输出继电器对应)中读取各继电器当前的状态,根据用户程序给出的逻辑关系进行逻辑运算,运算结果再写入元件映像寄存器中。
执行用户程序阶段的扫描时间不是固定的,其原因在于用户程序的指令条数多少不同,或指令种类不同。而且,在不同时段执行用户程序的扫描时间也不尽相同。
3.I/O刷新阶段
在I/O刷新阶段,CPU要做两件事情。其一,从输入电路中读取各输入点的状态,并将此状态写入输入映像寄存器中,也就是刷新输入映像寄存器的内容。自此输入映像寄存器就与外界隔离,无论输入点的状态怎样变化,输入映像寄存器的内容都保持不变,一直到下一个扫描周期的I/O刷新阶段,才会写进新内容。这就是说,各输入映像寄存器的状态要保持一个扫描周期不变。其二,将所有输出继电器的元件映像寄存器的状态传送到相应的输出锁存电路中,再经输出电路的隔离和功率放大部分传送到PLC的输出端,驱动外部执行元件动作。
I/O刷新阶段的时间长短取决于I/O点数的多少。
4.外设端口服务阶段
在外设端口服务阶段中,CPU完成与外设端口连接的外围设备的通信处理。
完成上述各阶段的处理后,又返回公共处理阶段,周而复始地进行扫描。
PLC的循环扫描工作方式也为PLC提供了一条死循环自诊断功能。在PLC内部设置了一个监视定时器WDT(看门狗),WDT定时时间可以使用默认值,也可由用户在PLC的系统设定区设定,其定时时间可设置为大于用户程序的扫描周期。PLC在每个扫描周期的公共处理阶段将监视定时器复位。正常情况下,监视定时器不会动作。如果由于CPU内部故障使程序执行进入死循环,那么扫描周期将超过监视定时器的定时时间。这时监视定时器WDT动作使PLC运行停止,以提示用户排查故障。
图1.8描述了信号从输入端子到输出端子的传递过程。在I/O刷新阶段,CPU从输入电路的输出端读出各输入点的状态,并将其写入输入映像寄存器中。在紧接着的下一个扫描周期用户程序执行阶段,CPU从输入映像寄存器和元件映像寄存器中读出各继电器的状态,并根据此状态执行用户程序,执行结果再写入元件映像寄存器中。在I/O刷新阶段,将元件映像寄存器的状态写入输出锁存电路,再经输出电路传递到输出端子。
图1.8 PLC信号的传递过程
如图1.8所示,在某一个扫描周期里执行用户程序的具体过程:执行第一个梯级时,CPU从输入映像寄存器中读出0.00号输入继电器的状态,设其为1,再读出0.01号输入继电器的状态,设其为0。由0.00和0.01的状态计算出100.00号继电器当前的状态是1。若此前100.00的状态是0,则CPU用当前的1去改写元件映像寄存器中100.00对应的位。下一步再执行第二个梯级,从元件映像寄存器中读出100.00号继电器的状态1(即前一步存入的),计算出100.01号继电器的状态是1。若此前100.01的状态是0,则CPU用当前的1去改写元件映像寄存器中100.01对应的位。本次扫描I/O刷新的结果是100.00为1,100.01为1。
由上述分析可得出,执行用户程序的扫描阶段的特点如下:
①在执行用户程序的过程中,输入映像寄存器的状态不变;
②元件映像寄存器的内容随程序的执行在改变,前一步的计算结果随即作为下一步的计算条件,这一点与输入映像寄存器完全不同;
③程序的执行是由上而下进行,所以不同梯级中的继电器线圈及其触点的状态不可能同时改变,而继电器控制电路中,若几个梯级中的线圈都满足接通条件,那么这些线圈会同时通电。
PLC的I/O滞后现象:
由于PLC采用循环扫描的工作方式,而且对输入和输出信号只在每个扫描周期的I/O刷新阶段集中输入、集中输出,所以必然会产生输出信号相对输入信号的滞后现象。扫描周期越长,滞后现象越严重。但是一般扫描周期只有十几毫秒,最多几十毫秒。在慢速控制系统中,可以认为输入信号一旦变化就立即能进入输入映像寄存器中,其对应的输出信号也可以认为是及时的,而在要求快速响应的控制中就成了需要解决的问题。为了弥补此不足,PLC设置了立即刷新指令,在程序中执行该指令,可随时对指定的I/O进行刷新,缩短了输出滞后输入的时间,提高了I/O响应速度。
对一般工业控制设备或输入信号变化较慢的系统来说,这种滞后现象是完全允许的。若需要输出对输入做出快速响应的场合,则可采用快速响应模块、高速计数模块,以及中断处理等措施来尽量减少滞后时间。
1.4.2 PLC的主要性能指标
在描述PLC的性能时,经常用到以下术语:位(bit)、数字(digit)、字节(byte)及字(word)。位指二进制数的一位,仅有1、0两种取值。一个位对应PLC的一个继电器,某位的状态为1或0,分别对应该继电器线圈得电(ON)或失电(OFF)。4位二进制数构成一个数字,这个数字可以是0000~1001(十进制数),也可是0000~1111(十六进制数)。2个数字或8位二进制数构成1字节,2字节构成一个字。在PLC术语中,字也称为通道。一个字含16位,或说一个通道含16个继电器。
PLC的主要性能指标有以下几方面。
1.存储容量
系统程序存放在系统程序存储器中。这里说的存储容量指的是用户程序存储器的容量。用户程序存储器容量决定了PLC可以容纳用户程序的长短,一般以字节为单位来计算。每1024字节为1KB(K字)。中、小型PLC的存储容量一般在20KB以下,大型PLC的存储容量可达到256KB以上。PLC程序存储容易常用步表示,某条指令占的步数是由PLC系统决定的,不可更改。一般基本指令占1步,应用指令占多步。CP1H PLC的程序容量为20K步。而PLC的数据存储容量常用KB(K字)表示。
2.输入/输出点数
I/O点数即PLC面板上的输入、输出端子的个数。I/O点数越多,外部可接的输入器件和输出器件就越多,控制规模就越大。因此I/O点数是衡量PLC性能的重要指标之一。
3.扫描速度
扫描速度是指PLC执行程序的速度,是衡量PLC性能的重要指标。一般以扫描1K字所用的时间来衡量扫描速度。PLC用户手册一般给出执行各条指令所用的时间,可以通过比较各种PLC执行相同的操作所用的时间,来衡量扫描速度的快慢。
4.编程指令的种类和条数
编程指令的种类和条数是衡量PLC能力强弱的主要指标。编程指令种类及条数越多,其功能就越强,即处理能力、控制能力越强。
5.存取器的种类和数量
内部器件包括各种继电器、计数器/定时器、数据存储器等。其种类越多,数量越大,存储各种信息的能力和控制功能越强。
6.扩展能力
PLC的扩展能力表现在以下几个方面。大部分PLC不仅可以连接基本I/O扩展单元进行I/O点数的扩展,还可以连接高功能I/O扩展单元和CPU扩展单元完成模拟量控制、位置和速度控制及通信连网等功能。扩展单元种类的多少和功能的强弱是衡量PLC产品水平高低的一个重要指标。
7.通信能力
PLC的通信能力表现在具有通信端口的个数、与各类外围设备实现连接和通信的能力,以及支持的通信协议有多少等。