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