1.3 PLC的工作原理
1.3.1 PLC的等效工作电路
为了便于说明PLC的工作原理,对于开关量顺序控制(逻辑运算)的PLC,可以利用如图1-8所示的等效继电器控制电路进行描述。
在等效工作电路图中,PLC可以分为输入电路、内部控制电路与输出电路三部分。其中,输入电路代表实际PLC的输入接口电路、输出采样、输入缓冲等部分;内部控制电路代表实际PLC的控制程序执行过程;输出电路代表实际PLC的输出接口电路、输出刷新、输出缓冲等部分。
值得注意的是,图1-8所示的电路仅是为了说明PLC工作原理而“虚拟”的等效工作电路,实际PLC的内部组成电路、I/O连接方式、I/O接口等硬件均与此不同,如实际PLC中并不存在图1-8中的I0.0~I0.7等“输入继电器”。
图1-8 PLC顺序控制等效工作电路图
(1)输入电路
输入电路由外部输入信号、PLC输入接线端子、等效输入继电器三部分组成。外部输入信号包括各类按钮、转换开关、行程开关、接近开关、光电开关等。外部输入信号经PLC的输入接线端与输入继电器连接(事实上PLC内部无这些输入继电器,它们相当于实际PLC中的“输入映像”)。每个输入继电器与输入信号一一对应,当外部输入为“1”时,输入继电器“线圈”得电,内部控制电路中对应的输入触点“吸合”。
在实际PLC中,由于“输入映像”可以在程序中进行无限次使用,因此,应认为等效电路中的输入继电器触点也是无限的,它们同样可以在内部控制电路中无限次使用。此外,由于在用户程序中,绝大部分PLC都不允许将输入信号地址作为PLC程序中的“输出”,因此,假设输入继电器也同样不可以用内部控制电路进行驱动,即等效电路中的输入继电器只能受外部输入信号的控制,在内部控制电路中只能使用它们的“触点”。
(2)输出电路
输出电路由内部输出触点、PLC输出接线端子、输出执行元件三部分组成。输出执行元件包括各种电磁阀线圈、接触器、信号指示灯等。内部输出触点经PLC的输出接线端子与输出执行元件连接,每个输出触点与内部控制电路中的输出线圈一一对应,当输出线圈为“1”时,输出触点接通(即相当于继电器控制线路中的“常开”触点),且每一输出线圈只能有一个用于驱动外部执行元件的触点。
在实际PLC中,输出触点的输出形式与连接方式取决于PLC输出的类型,它们可以是继电器的触点,也可以是其他形式的输出,如晶体管、双向晶闸管等;触点连接可以是如图1-8所示的共用公共端形式,也可以是每一触点单独输出或者8输出触点共用一个公共端。同时,由于在PLC程序中“输出映像”不仅可以作为输出线圈驱动实际输出,而且在程序中可以作为“触点”无限次使用。因此,应假设等效输出电路中的输出触点,对于外部只能连接一个执行元件,但在内部控制电路中却可无限次使用。
(3)内部控制电路
内部控制电路由PLC用户控制程序转化而来,它将PLC程序中的顺序控制逻辑转化成了普通的继电器控制电路。诚然,在实际PLC工作时,这两者事实上存在一些不同,但它与说明PLC工作原理无关。
在等效内部控制电路中,PLC的定时器、计数器同样可以用继电器控制电路的时间继电器、计数器进行等效,但其使用比实际时间继电器、计数器更加灵活,可以对计时、计数的实际值进行即时检查,且精度更高、范围更大。
此外,在PLC程序中还大量使用了PLC标志寄存器,在等效电路里,它们除不可以用来驱动外部执行元件外,其余与输出继电器完全相同。
1.3.2 PLC的工作原理
(1)建立I/O映像区
在PLC存储器内开辟了I/O映像区。I/O映像区的大小由PLC的程序决定,对于系统的一个输入点总有输入映像区的某一位与之相对应。对于系统的每一个输出点都有输出映像区的某一位与之相对应。系统I/O点的编址号与I/O映像区的映像寄存器地址号相对应。PLC工作时,将采集到的输入信号状态存放在输入映像区对应的位上,将运算结果存放到输出映像区对应的位上。PLC在执行用户程序时所需“输入继电器”、“输出继电器”的数据取自I/O映像区,而不直接与外部设备发生关系。
I/O映像区的建立,使PLC在工作时只和内存有关的地址单元所存储的信息状态发生关系,而系统输出也只给内存某一地址单元设定一个状态,这样不仅加快了程序执行速度,而且还使控制系统与外界隔开,提高了系统的抗干扰能力,同时控制系统远离实际控制对象,为硬件标准化生产创造了条件。
(2)循环扫描工作方式
PLC控制任务的完成是在其硬件的支持下,通过执行反映控制要求的用户程序来实现的,这一点和计算机相同。但计算机与PLC的工作方式有所不同。计算机一般采用等待命令工作方式,如常见的键盘扫描或I/O扫描方式,当键盘按下或I/O口有信号时,产生中断,转入相应子程序。而PLC确定了工作任务,装入了专用程序成为一种专用机,它采用循环扫描的工作方式,系统工作任务管理及用户程序的执行都通过循环扫描的方式来完成。
PLC加电后,在系统程序的监控下,一直在周而复始地进行巡回扫描,执行由系统软件规定好的任务。即对整个程序采用巡回执行的工作方式,就是说用户程序的执行不是从头到尾只执行一次,而是执行一次以后,又返回去执行第二次、第三次……直到停机。因此,PLC可以被看成是在系统软件支持下的一种扫描设备。PLC的工作过程如图1-9所示。
①内部处理。在该内部处理阶段,CPU检测主机硬件,同时也检查所有的I/O模块的状态。在RUN方式下,还检测用户程序存储器。如果发现异常,则停机并显示出错信息。如果诊断正常,则继续向下扫描。
② 通信处理。在CPU通信处理阶段,CPU自动监测并处理各通信接口接收到的任何信息,即检查是否有编程器、计算机、终端设备、显示器、打印机等的通信请求,若有则进行相应的处理。在通信处理阶段完成数据通信任务。
③ 执行用户程序。PLC在运行状态下,每一个扫描周期都要执行用户程序。执行用户程序时,是以扫描的方式按顺序对语句进行逐条扫描处理的,扫描一条执行一条,并把运算结果存入输出映像区的对应位中。
④ 输入、输出信息处理。PLC在运行状态下,每一个扫描周期都要进行输入、输出信息处理。以扫描的方式把外部输入信号的状态存入输入映像区;将运算处理后的结果存入输出映像区,直至传送到外部被控设备。
PLC周而复始地巡回扫描,执行上述过程,直至停机。
(3)用户程序的扫描过程
图1-9 PLC的工作过程
PLC的工作过程与CPU的操作方式有关。CPU有两种操作方式:STOP方式和RUN方式。在扫描周期内,STOP方式和RUN方式的主要差别在于:RUN方式执行用户程序,而STOP方式不执行用户程序。PLC对用户程序进行循环扫描可分为三个阶段,即输入采样阶段、程序执行阶段和输出刷新阶段,如图1-10所示。
图1-10 PLC用户程序的工作过程
① 输入采样阶段。PLC用扫描方式把所有输入端的外部输入信号的通/断(ON/OFF)状态一次写入到输入映像寄存器(或称输入状态寄存器)中,此时输入映像寄存器被刷新。这一过程称为采样。在本周期内,这个采样结果的内容不会改变,而且这个采样结果在CPU执行程序时被使用。在程序执行阶段或输出阶段,输入映像寄存器与外界隔离,即使外部输入信号的状态发生了变化,输入映像寄存器的内容也不会随之改变。输入信号变化了的状态,只是在下一个扫描周期的输入采样阶段才能被读入。也就是说,在输入采样阶段采样结束之后,无论输入信号如何变化,输入映像寄存器的内容保持不变,直到下一个扫描周期的输入采样阶段,才重新写入输入端的新状态(或信息)。
②程序执行阶段。PLC按顺序对程序进行扫描,即从上到下、从左到右地扫描每条指令,并分别从输入映像寄存器、内部元件寄存器(内部继电器、定时器、计数器等)和输出映像寄存器中获得所需的数据进行运算、处理,再将程序执行的结果写入寄存执行结果的输出映像寄存器中保存。但这个结果在整个程序未执行完毕之前不会送到输出端口上。这就是说,反映各输出元件状态的输出元件映像寄存器所储存的内容,会随着程序执行的进程而变化,当所有程序全部执行完毕后,输出元件映像寄存器的内容最后就固定下来。
这里要充分注意,当执行控制程序时,如果程序要求某个输出继电器动作,此时这个动作要求并没有直接实时地传送到该继电器,而只是将输出映像寄存器中代表该继电器的对应位置设置为“1”,等待所有程序段都执行完毕后,才将全部程序执行后产生的输出结果(输出映像寄存器的内容)一次送到输出锁存器。PLC的这种工作方式同一般单纯用硬件组成的控制电路或由控制计算机组成的控制电路是不同的。
③ 输出刷新阶段。当所有的用户程序执行完后,PLC将元件映像寄存器中的输出元件(即输出继电器)的状态(此状态存放在对应的输出映像寄存器中)转存到输出锁存寄存器中,经过输出模块隔离和功率放大,转换成被控设备所能接收的电压或电流信号后,再去驱动被控制的用户设备(即外部负载)。
PLC重复执行上述三个阶段,每重复一次的时间即为一个扫描周期,用符号T表示。PLC在一个扫描周期中,输入扫描和输出刷新的时间一般为4ms左右,而程序执行时间可因程序的长度不同而不同。PLC的一个扫描周期一般在40~100ms。扫描周期的长短与用户程序的长短有关。
PLC工作的主要特点是输入信号集中批处理、执行过程集中批处理和输出控制集中批处理。PLC的这种“串行”工作方式,可以避免继电接触器控制系统中触点竞争和时序失配的问题,并增强系统抗干扰能力。由于干扰常常是脉冲式的、短时的,只要PLC不是正好工作在输入刷新阶段,就不会受到干扰的影响。因此,瞬间干扰所引起的误动作将会大大减少,从而增加了系统的抗干扰能力。这是PLC可靠性高的原因之一,但是这种工作方式对于要求快速响应的控制系统引起输入在时间上的滞后,这也是PLC的缺点之一。