2.2 PLC的结构和工作原理
2.2.1 可编程控制器的硬件组成
可编程控制器种类繁多,但其基本结构和工作原理相同。可编程控制器的功能结构区由CPU(中央处理器)、存储器和输入接口/输出接口三部分组成,如图2-1所示。
图2-1 PLC结构框图
2.2.1.1 CPU(中央处理器)
CPU的功能是完成PLC内所有的控制和监视操作。中央处理器一般由控制器、运算器和寄存器组成。CPU通过数据总线、地址总线和控制总线与存储器、输入输出接口电路连接。
2.2.1.2 存储器
在PLC中使用两种类型的存储器:一种是只读类型的存储器,如EPROM和EEPROM,另一种是可读/写的随机存储器RAM。PLC的存储器分为5个区域,如图2-2所示。
图2-2 存储器的区域划分
程序存储器的类型是只读存储器(ROM),PLC的操作系统存放在这里,操作系统的程序由制造商固化,通常不能修改。存储器中的程序负责解释和编译用户编写的程序、监控I/O口的状态、对PLC进行自诊断以及扫描PLC中的程序等。系统存储器属于随机存储器(RAM),主要用于存储中间计算结果、数据和系统管理,有的PLC厂家用系统存储器存储一些系统信息如错误代码等,系统存储器不对用户开放。I/O状态存储器属于随机存储器,用于存储I/O装置的状态信息,每个输入模块和输出模块都在I/O映像表中分配一个地址,而且这个地址是唯一的。数据存储器属于随机存储器,主要用于数据处理功能,为计数器、定时器、算术计算和过程参数提供数据存储。有的厂家将数据存储器细分为固定数据存储器和可变数据存储器。用户编程存储器,其类型可以是随机存储器、可擦除存储器(EPROM)和电擦除存储器(EEPROM),高档的PLC还可以用FLASH。用户编程存储器主要用于存放用户编写的程序。存储器的关系如图2-3所示。
图2-3 存储器的关系
只读存储器可以用来存放系统程序,PLC断电后再上电,系统内容不变且重新执行。只读存储器也可用来固化用户程序和一些重要参数,以免因偶然操作失误而造成程序和数据的破坏或丢失。随机存储器中一般存放用户程序和系统参数。当PLC处于编程工作时,CPU从RAM中取指令并执行。用户程序执行过程中产生的中间结果也在RAM中暂时存放。RAM通常由CMOS型集成电路组成,功耗小,但断电时内容消失,所以一般使用大电容或后备锂电池保证掉电后PLC的内容在一定时间内不丢失。
2.2.1.3 输入/输出接口
PLC的输入和输出信号可以是开关量或模拟量。输入/输出接口是PLC内部弱电(low power)信号和工业现场强电(high power)信号联系的桥梁。输入/输出接口主要有两个作用,一是利用内部的电隔离电路将工业现场和PLC内部进行隔离,起保护作用;二是调理信号,可以把不同的信号(如强电、弱电信号)调理成CPU可以处理的信号(5V、3.3V或2.7V等),如图2-4所示。
图2-4 输入/输出接口
输入/输出接口模块是PLC系统中最大的部分,输入/输出接口模块通常需要电源,输入电路的电源可以由外部提供,对于模块化的PLC还需要背板(安装机架)。
(1)输入接口电路
① 输入接口电路的组成和作用 输入接口电路由接线端子、输入调理电路和电平转换电路、模块状态显示电路、电隔离电路和多路选择开关模块组成,如图2-5所示。现场的信号必须连接在输入端子才可能将信号输入到CPU中,它提供了外部信号输入的物理接口。调理和电平转换电路十分重要,可以将工业现场的信号(如强电AC 220V信号)转化成电信号(CPU可以识别的弱电信号);电隔离电路主要是利用电隔离器件将工业现场的机械或者电输入信号和PLC的CPU的信号隔开,它能确保过高的电干扰信号和浪涌不串入PLC的微处理器,起保护作用,通常有三种隔离方式,用得最多的是光电隔离,其次是变压器隔离和干簧继电器隔离。当外部有信号输入时,输入模块上有指示灯显示,这个电路比较简单,当线路中有故障时,它帮助用户查找故障,由于氖灯或LED灯的寿命比较长,所以这个灯通常是氖灯或LED灯。多路选择开关接受调理完成的输入信号,并存储在多路开关模块中,当输入循环扫描时,多路开关模块中信号输送到I/O状态寄存器中。
图2-5 输入接口的结构
② 输入信号设备的种类 输入信号可以是离散信号和模拟信号。当输入端是离散信号时,输入端的设备类型可以是限位开关、按钮、压力继电器、继电器触点、接近开关、选择开关以及光电开关等,如图2-6所示。当输入为模拟量输入时,输入设备的类型可以是压力传感器、温度传感器、流量传感器、电压传感器、电流传感器以及力传感器等。
图2-6 输入/输出接口
(2)输出接口电路
① 输出接口电路的组成和作用 输出接口电路由多路选择开关模块、信号锁存器、电隔离电路、模块状态显示电路、输出电平转换电路和接线端子组成,如图2-7所示。在输出扫描期间,多路选择开关模块接受来自映像表中的输出信号,并对这个信号的状态和目标地址进行译码,最后将信息送给锁存器。信号锁存器是将多路选择开关模块的信号保存起来,直到下一次更新。输出接口的电隔离电路作用和输入模块的一样,但是由于输出模块输出的信号比输入信号要强得多,因此要求隔离电磁干扰和浪涌的能力更高。输出电平转换电路将隔离电路送来的信号放大成可以足够驱动现场设备的信号,放大器件可以是双向晶闸管、三极管和干簧继电器等。输出的接线端子用于将输出模块与现场设备相连接。
图2-7 输出接口的结构
PLC有三种输出接口形式,即继电器输出、晶体管输出和晶闸管输出形式。继电器输出形式的PLC的负载电源可以是直流电源或交流电源,但其输出响应频率较慢,其内部电路如图2-8所示。晶体管输出的PLC负载电源是直流电源,其输出响应频率较快,其内部电路如图2-9所示。晶闸管输出形式的PLC的负载电源是交流电源,西门子S7-1200 PLC的CPU模块暂时还没有晶闸管输出形式的产品出售,但三菱FX系列有这种产品。选型时要特别注意PLC的输出形式。
图2-8 继电器输出内部电路
图2-9 晶体管输出内部电路
② 输出信号的设备种类 输出信号可以是离散信号和模拟信号。当输出端是离散信号时,输出端的设备类型可以是电磁阀的线圈、电动机启动器、控制柜的指示器、接触器线圈、LED灯、指示灯、继电器线圈、报警器和蜂鸣器等。当输出为模拟量输出时,输出设备的类型可以是流量阀、AC驱动器(如交流伺服驱动器)、DC驱动器、模拟量仪表、温度控制器和流量控制器等。
【关键点】 PLC的继电器型输出虽然响应速度慢,但其驱动能力强,一般为2A,这是继电器型输出PLC的一个重要的优点。一些特殊型号的PLC,如西门子LOGO!的某些型号驱动能力可达5A和10A,能直接驱动接触器。此外,从图2-8中可以看出继电器型输出形式的PLC,对于一般的误接线,通常不会引起PLC内部器件的烧毁(高于交流220V电压是不允许的)。因此,继电器输出形式是选型时的首选,在工程实践中,用得比较多。
晶体管输出的PLC的输出电流一般小于1A,西门子S7-200 SMART的输出电流源是0.5A(西门子有的型号的PLC的输出电流为0.75A),可见晶体管输出的驱动能力较小。此外,由图2-9可以看出晶体管型输出形式的PLC,对于一般的误接线,可能会引起PLC内部器件的烧毁,所以要特别注意。
2.2.2 PLC的工作原理
PLC是一种存储程序的控制器。用户根据某一对象的具体控制要求,编制好控制程序后,用编程器将程序输入到PLC(或用计算机下载到PLC)的用户程序存储器中寄存。PLC的控制功能就是通过运行用户程序来实现的。
PLC运行程序的方式与微型计算机相比有较大的不同。微型计算机运行程序时,一旦执行到END指令,程序运行便结束;而PLC从0号存储地址所存放的第一条用户程序开始,在无中断或跳转的情况下,按存储地址号递增的方向顺序逐条执行用户程序,直到END指令结束。然后再从头开始执行,并周而复始地重复,直到停机或从运行(RUN)切换到停止(STOP)工作状态。把PLC这种执行程序的方式称为扫描工作方式。每扫描完一次程序就构成一个扫描周期。另外,PLC对输入、输出信号的处理与微型计算机不同。微型计算机对输入、输出信号实时处理,而PLC对输入、输出信号是集中批处理。下面具体介绍PLC的扫描工作过程。其运行和信号处理示意如图2-10所示。
图2-10 PLC内部运行和信号处理示意图
PLC扫描工作方式主要分为三个阶段:输入扫描、程序执行和输出刷新。
(1)输入扫描
PLC在开始执行程序之前,首先扫描输入端子,按顺序将所有输入信号,读入到寄存器-输入状态的输入映像寄存器中,这个过程称为输入扫描。PLC在运行程序时,所需的输入信号不是现时取输入端子上的信息,而是取输入映像寄存器中的信息。在本工作周期内这个采样结果的内容不会改变,只有到下一个扫描周期输入扫描阶段才被刷新。PLC的扫描速度很快,取决于CPU的时钟速度。
(2)程序执行
PLC完成了输入扫描工作后,按顺序从0号地址开始的程序进行逐条扫描执行,并分别从输入映像寄存器、输出映像寄存器以及辅助继电器中获得所需的数据进行运算处理。再将程序执行的结果写入输出映像寄存器中保存。但这个结果在全部程序未被执行完毕之前不会送到输出端子上,也就是物理输出是不会改变的。扫描时间取决于程序的长度、复杂程度和CPU的功能。
(3)输出刷新
在执行到END指令,即执行完用户所有程序后,PLC上将输出映像寄存器中的内容送到输出锁存器中进行输出,驱动用户设备。扫描时间取决于输出模块的数量。
从以上的介绍可以知道,PLC程序扫描特性决定了PLC的输入和输出状态并不能在扫描的同时改变,例如一个按钮开关的输入信号的输入刚好在输入扫描之后,那么这个信号只有在下一个扫描周期才能被读入。
上述三个步骤是PLC的软件处理过程,可以认为就是程序扫描时间。扫描时间通常由三个因素决定,一是CPU的时钟速度,越高档的CPU,时钟速度越快,扫描时间越短;二是I/O模块的数量,模块数量越少,扫描时间越短;三是程序的长度,程序长度越短,扫描时间越短。一般的PLC执行容量为1K的程序需要的扫描时间是1~10ms。
图2-11所示为PLC循环扫描工作过程。
图2-11 PLC循环扫描工作过程
2.2.3 PLC的立即输入、输出功能
一般的PLC都有立即输入和立即输出功能。
(1)立即输出功能
所谓立即输出功能就是输出模块在处理用户程序时,能立即被刷新。PLC临时挂起(中断)正常运行的程序,将输出映像表中的信息输送到输出模块,立即进行输出刷新,然后再回到程序中继续运行,立即输出的示意图如图2-12所示。注意,立即输出功能并不能立即刷新所有的输出模块。
图2-12 立即输出过程
(2)立即输入功能
立即输入适用于要求对反应速度很严格的场合,例如几毫秒的时间对于控制来说十分关键的情况下。立即输入时,PLC立即挂起正在执行的程序,扫描输入模块,然后更新特定的输入状态到输入映像表,最后继续执行剩余的程序,立即输入的示意图如图2-13所示。
图2-13 立即输入过程