1.1 PLC的基本结构与工作原理
可编程控制器作为工业控制的特殊计算机,与一般微型计算机系统类似,具有相应的硬件结构和软件系统。
1.1.1 PLC的基本结构
目前PLC生产厂家很多,产品结构也各不相同,但其基本组成部分大致相同,如图1-1所示。从图中可以看出,PLC采用了典型的计算机结构,主要由主机、I/O扩展接口及外围设备组成。PLC主机由中央处理器(CPU)、存储器(Memory)、输入/输出(I/O)接口、I/O扩展接口、通信接口、外围设备接口和电源等部分组成。
图1-1 PLC的典型结构
1.中央处理器(CPU)
CPU是PLC的核心部件,是PLC的运算和控制中心,PLC的工作过程都是在CPU的统一指挥和协调下进行的。CPU由微处理器和控制器组成,可以实现逻辑运算和数学运算,协调控制系统内部各部分的工作。它是按照系统程序所赋予的任务运行的。PLC常用的CPU有通用微处理器、单片机和位片式微处理器。通用微处理器按其处理数据的位数可分为4位、8位、16位和32位等。PLC大多用8位和16位微处理器。控制器的作用是控制整个微处理器的各个部件有条不紊地进行工作,其基本功能就是从内存中读取指令和执行指令。控制器接口电路是微处理器与主机内部其他单元进行联系的部件,主要有数据缓冲、单元选择、信号匹配、中断管理等功能。微处理器通过它来实现与各个单元之间的可靠的信息交换和最佳的时序配合。控制器的主要功能如下:
(1)采集由现场输入装置送来的状态或数据,通过输入接口存入输入映像寄存器或数据寄存器中,用扫描方式接收输入设备的状态信号,并存入相应的数据区(输入映像寄存器)。
(2)按用户程序存储器中存放的先后次序逐条读取指令,完成各种数据的运算、传递和存储等功能,进行编译解释后,按指令规定的任务完成各种运算和操作。
(3)将各种运算结果送到输出端。
(4)监测和诊断电源PLC内部电路工作状态及用户程序编程过程中出现的语法错误。
(5)根据数据处理的结果,刷新有关标志位的状态和输出状态寄存器的内容,响应各种外围设备(如编程器、打印机、上位计算机、图形监控系统、条码判读器等)的工作请求,以实现输出控制、制表打印或数据通信等功能。
2.存储器
PLC的存储器有保持型存储器、随机存取存储器和存储器卡等类型,用于存放PLC系统程序、用户程序和运行数据。保持型存储器用于存放PLC的系统程序和编好的用于控制运行的用户程序,可长时间存储。随机存取存储器用于存放用户临时程序和数据,存储的内容会因掉电而丢失。存储器卡为扩展与后备用存储器,由用户根据需要选配。
3.I/O接口
I/O接口通常也称I/O单元或I/O模块,是PLC与工业过程控制现场之间的连接部件。PLC通过输入接口能够得到生产过程的各种参数,并向PLC提供开关信号量,经过处理后,变成CPU能够识别的信号。PLC通过输出接口将处理结果送给被控制对象,以实现对工业现场执行机构的控制目的。由于外部输入设备和输出设备所需的信号电平是多种多样的,而PLC内部CPU处理的信息只能是标准电平,因此I/O接口必须能实现电平转换。
输入接口的作用是把现场的按钮、各种开关或传感器等信号转变成PLC内部可处理的标准信号。常用的输入接口按其使用电源不同可以分成3种类型,即直流输入接口、交流输入接口和交-直流输入接口。输入接口采用光耦合电路,如图1-2所示,它可以大大减少强电和电磁干扰。
图1-2 输入接口电路
输出接口的作用是将PLC内部的标准信号转换为外部现场执行机构所需要的电开关量输出信号。PLC的输出接口也采用光耦合电路设计,按PLC内部所使用的功率放大元器件不同可分为晶体管型、晶闸管型和继电器型。
晶体管型输出接口用于驱动直流负载。晶体管输出单元的驱动电路一般采用晶体管进行驱动放大,输出方式一般为集电极输出,外加直流负载电源。每个输出点带负载能力约为1 A,每个模块约为3 A。晶体管开关量输出模块为无触点输出模块,使用寿命较长。图1-3所示的是晶体管集电极输出电路,线框内为PLC内部的输出电路,框外右侧为外部用户连接线。各组的公共点接外接直流电流电源的正(负)极。输出信号送给内部电路中的输出锁存器,再经光耦合器送给输出晶体管,后者的饱和导通状态和截止状态相当于触点的接通和断开。图中的稳压管用来抑制关断过电压和外部的浪涌电压,以保护晶体管,晶体管输出电路的延迟时间小于1 ms。场效应晶体管输出电路的结构与晶体管输出电路基本上相同。
图1-3 晶体管集电极输出电路
晶闸管型输出接口用于驱动交流负载。图1-4所示为晶闸管型输出电路。它采用的开关器件是光控双向晶闸管,驱动电路采用光控双向晶闸管进行驱动放大。图中电阻和电容组成开关保护;压敏电阻清除尖峰电压,起限压作用。该模块外加交流负载电源,每个输出点的带负载能力约为1 A,每个模块约为4 A。双向晶闸管为无触点开关,输出的负载电源可以根据负载的需要选用直流或交流电源。双向晶闸管多用于驱动交流负载,负载驱动能力比继电器型的大,可直接驱动小功率接触器。晶闸管型输出电路的响应时间介于晶体管型与继电器型之间。
图1-4 晶闸管型输出电路
继电器型输出接口既可以驱动交流负载又可以驱动直流负载。图1-5所示为继电器型输出电路。内部电路使继电器的线圈通电,常开触点闭合,使外部负载得电工作。断电器同时起隔离和功率放大作用,每一路只给用户提供一对常开触点。继电器型输出电路的滞后时间一般约为10 ms。
图1-5 继电器型输出电路
总之,在I/O接口电路中一般都具有光隔离和滤波功能,以提高PLC的抗干扰能力,实现外部现场的各种信号与系统内部统一信号的匹配和信号的正确传递。另外,I/O接口上通常还有状态指示灯,工作状况直观,便于维护。
4.I/O扩展接口
I/O扩展接口用来扩展PLC的I/O端子数。当用户所需要的I/O端子数超过PLC基本单元的I/O端子数时,即主机单元(带CPU)的I/O端子数不能满足I/O设备端子数需要时,可通过此接口用扁平电缆线将I/O扩展接口(不带有CPU)与主机单元相连接,以增加PLC的I/O端子数,适应控制系统的要求。其他很多的智能单元也通过该接口与主机相连,PLC的扩展能力主要受CPU寻址能力和主机驱动能力的限制。
5.通信接口
PLC配有各种通信接口,如RS-232C、RS-422和RS-485等接口,这些通信接口有的需要通信处理器。PLC通过这些通信接口可与监视器、打印机、其他PLC、计算机等设备实现通信。
6.外围设备接口及特殊模块
外围设备接口是可编程控制器主机实现人-机对话、机-机对话的通道。通过它,可编程控制器可以和编程器、彩色图形显示器、打印机等外围设备相连,也可以与其他可编程控制器或上位计算机连接。
PLC还有许多特殊功能模块,主要包括模拟量I/O单元、远程I/O单元、高速计数模块、中断输入模块和PID调节模块等。随着PLC的进一步发展,特殊功能单元的种类也越来越多。
7.电源
PLC的电源是指把外部供应的交流电源经过整流、滤波、稳压处理后,转换成满足PLC内部的CPU、存储器和I/O接口等电路工作所需要的直流电源电路或电源模块。不同型号的PLC有不同的供电方式,所以PLC的电源输入电压既有直流电压5 V、12 V和24 V,又有交流电压110 V和220 V。
1.1.2 PLC的程序软件
PLC除了硬件结构外,还需要有软件系统的支撑,二者缺一不可。PLC的软件系统由系统程序(又称系统软件)和应用程序(又称应用软件)两大部分组成。
1.系统程序
系统程序由生产厂家设计,由管理程序(运行管理、生成用户元件、内部自检)、用户指令解释程序、编辑程序、功能子程序及调用管理程序组成。它和PLC的硬件系统相结合,完成系统诊断、命令解释、功能子程序的调用管理、逻辑运算、通信及各种参数设定等功能,提供了PLC运行的平台。
(1)系统管理程序:
系统管理程序主管整个PLC的运行,因此是管理程序中最重要、最核心的部分,管理程序由以下3部分组成。
① 运行管理:时间分配的运行管理,即控制可编程控制器输入、输出、运算、自检及通信的时序。
② 存储空间的分配管理:主要进行存储空间的管理,即生成用户环境,由它规定各种参数、程序的存放地址,将用户使用的数据参数存储地址转化为实际的数据格式及物理存放地址。它将有限的资源变为用户可直接使用的很方便的元件。
③ 系统自检程序:包括各种系统出错检验、用户程序语法检验、句语检验、警戒时钟运行等。在系统管理程序的控制下,整个PLC就能按要求正确地工作了。
(2)用户指令解释程序(包含编辑程序):
用户指令解释程序的主要任务是将用户编程使用的PLC语言(如梯形图语言)变为机器能懂的机器语言程序。它将梯形图程序逐条翻译成相应的机器语言,然后通过CPU完成这一步的功能。在实际操作中,为了节省内存,提高解释速度,用户程序是用内码的形式存储在PLC中的。用户程序变为内码形式的这一步是由编辑程序实现的,它可以插入、删除、检查、查错用户程序,方便程序的调试。
(3)标准模块和系统调用:
标准模块和系统调用主要由许多独立的程序块组成,各自能完成不同的功能,有些完成I/O,有些完成特殊运算等。
2.应用程序
PLC的应用程序是用户利用PLC厂家提供的编程语言,根据工业现场的控制目的来编制的程序。它存储在PLC的用户存储器中,用户可以根据系统的不同控制要求,对原有的应用程序进行改写或删除。应用程序包括开关量逻辑控制程序、模拟量运算程序、闭环控制程序和操作站系统程序等。
1.1.3 PLC的工作原理
PLC的工作原理可以简单地表述为在系统程序的管理下,通过运行应用程序,对控制要求进行处理判断,并通过执行用户程序来实现控制任务。但是,在时间上,PLC执行的任务是按串行方式进行的,其具体的运行方式与继电器-接触器控制系统及计算机控制系统都有着一定的差异。
1.循环扫描的工作原理
PLC的一个工作过程一般有5个阶段:内部处理阶段、通信处理阶段、输入采样阶段、程序执行阶段和输出刷新阶段。当PLC开始运行时,首先清除I/O映像区的内容,其次进行自诊断,然后与外部设备进行通信连接,确认正常后开始扫描。对于每个用户程序,CPU从第一条指令开始执行,按指令步序号做周期性的程序循环扫描,如果无跳转指令,则从第一条指令开始,逐条执行用户程序,直至遇到结束符后又返回第一条指令,如此周而复始不断循环,因此,PLC的工作方式是一种串行循环工作方式,如图1-6所示。
图1-6 PLC的循环扫描过程
(1)内部处理阶段:
在内部处理阶段,CPU监测主机硬件、用户程序存储器、I/O模块的状态并清除I/O映像区的内容等,即PLC进行各种错误检测(自诊断功能),若自诊断正常,继续向下扫描。
(2)通信处理阶段:
在通信处理阶段,CPU自动监测并处理各种通信端口接收到的任何信息,即检查是否有编程器、计算机或上位PLC等通信请求,若有,则进行相应处理,完成数据通信任务。例如,PLC接收编程器送来的程序、命令和各种数据,并把要显示的状态、数据、出错信息发送给编程器进行显示,这称为“监视服务”,一般在程序执行之后进行。
(3)输入采样阶段:
在输入采样阶段,PLC首先扫描所有的输入端子,按顺序将所有输入端的输入信号状态(“0”或“1”表现在接线端上是否在承受外加电压)读入输入映像寄存区。这个过程称为对输入信号的采样,或称输入刷新阶段。完成输入端刷新工作后,将关闭输入端口,转入下一步工作过程,即程序执行阶段。在程序执行期间,即使输入端状态发生变化,输入状态寄存器的内容也不会发生改变,而这些变化必须等到下一个工作周期的输入刷新阶段才能被读入。
(4)程序执行阶段:
程序执行阶段又称程序处理阶段,是PLC对程序按顺序进行执行的过程。
在程序执行阶段,PLC根据用户输入的控制程序,从第一条指令开始逐条执行,并将相应的逻辑运算结果存入对应的内部辅助寄存器和输出状态寄存器。只有输入映像寄存区存放的输入采样值不会发生改变,其他各种数据在输出映像寄存器区或系统RAM存储区内的状态和数据都有可能随着程序的执行发生改变。前面执行的结果可能被后面的程序所用到,从而影响后面程序的执行结果;而后面执行的结果不可能改变前面的扫描结果,只有到了下一个扫描周期再次扫描前面程序时才有可能起作用。但是,在扫描过程中如果遇到程序跳转指令,就会根据跳转条件是否满足来决定程序的跳转地址。当指令中涉及输入、输出状态时,PLC从输入映像寄存器中“读入”上一阶段存入的对应输入端子状态,从输出映像寄存器“读入”对应输出映像寄存器的当前状态。然后,进行相应的运算,运算结果再存入元件映像寄存器中。对于元件映像寄存器来说,每一个元件(输出软继电器的状态)都会随着程序执行过程而变化。当最后一条控制程序执行完毕后,即转入输出刷新阶段。
(5)输出刷新阶段:
当程序中所有指令执行完毕后,PLC将输出状态寄存器中所有输出继电器的状态,依次送到输出锁存电路,并通过一定输出方式输出,驱动外部负载,这就形成了PLC的实际输出。
在上述5个阶段中,内部处理阶段、通信处理阶段为PLC公共处理部分,与用户程序的执行无直接关联;输入采样阶段、程序执行阶段和输出刷新阶段是PLC执行用户程序的3个主要阶段,这3个阶段构成PLC一个工作周期,并循环执行,这就是PLC循环扫描工作方式的由来。由此可以总结出PLC在扫描过程中信号的处理规则。
2.PLC的信号处理规则
(1)输入映像区中的数据,取决于本扫描周期输入采样阶段所处的状态。在程序执行阶段和输出刷新阶段,输入映像区中的数据不会因为有新的输入信号而发生改变。
(2)输出映像区中的数据由程序中输出指令的执行结果决定。在输入采样阶段和输出刷新阶段,输出映像区的数据不会发生改变。
(3)输出端子直接与外部负载连接,其状态由输出状态寄存器中的数据来确定。
3.扫描周期和响应时间
PLC在运行状态时,执行一次扫描操作(即5个阶段的工作过程)所需的时间称为扫描周期,它是PLC的重要指标之一,其典型值为0.5~100 ms。
扫描周期T=(输入一点时间×输入端子数)+(指令执行速度×指令条数)+(输出一点时间×输出端子数)+故障诊断时间+通信时间
可见,扫描周期的长短主要取决于CPU执行指令的速度、执行每条指令占用的时间和程序中指令条数的多少。指令执行所需的时间与用户程序的长短、指令的种类和CPU执行速度有很大关系。一般来说,一个扫描过程中,故障诊断时间、通信时间、输入采样和输出刷新所占时间较少,执行指令的时间占了绝大部分。
PLC的响应时间是指从PLC外部输入信号发生变化的时刻起至由它控制的有关外部输出信号发生变化的时刻之间的间隔,也称为滞后时间(通常滞后时间为几十毫秒)。它由输入电路的时间常数、输出电路的时间常数、用户语句的安排和指令的使用、PLC的循环扫描方式及PLC对I/O的刷新方式等部分组成。这种现象称为I/O延迟响应或滞后现象。
由于PLC的这种周期循环扫描工作方式,决定了响应时间的长短与收到输入信号的时刻有关。响应时间可以分为最短响应时间和最长响应时间。
(1)最短响应时间:
如果在一个扫描周期刚结束之前收到一个输入信号,在下一个扫描周期之前进入输入采样阶段,这个输入信号就被采样,使输入更新,这时响应时间最短,如图1-7所示。最短响应时间=输入延迟时间+一个扫描周期+输出延迟时间。
图1-7 PLC的最短响应时间
(2)最长响应时间:
如果收到一个输入信号经输入延迟后,刚好错过I/O刷新的时间,在该扫描周期内这个输入信号无效,要到下一个扫描周期输入采样阶段才被读入,使输入更新,这时响应时间最长,如图1-8所示。最长响应时间=输入延迟时间+两个扫描周期+输出延迟时间。
图1-8 PLC的最长响应时间
由于PLC采用循环扫描的工作方式,即对信息串行处理方式,必定导致输入、输出延迟响应,产生滞后现象。对于一般工业控制要求,这种滞后现象是允许的。但是对那些要求响应时间小于扫描周期的控制系统或窄脉冲则不能满足。对于响应时间小于扫描周期的控制系统,可以使用智能I/O单元(如快速响应I/O模块)或专门的指令(如立即I/O指令);对于窄脉冲,可以通过设置脉冲捕捉功能,将输入信号的状态变化锁存并一直保持到下一个扫描周期的输入阶段,让CPU读到为止,这两种情况均通过与扫描周期脱离的方式来解决。
(3)梯形图程序网络顺序影响响应时间:
用户梯形图程序网络的顺序也将影响响应时间。图1-9所示为梯形图中各元件状态的时序图。当输入信号在第一个扫描周期的程序执行阶段被激励,当输入信号到第二周期输入采样阶段才被读入,存入输入映像寄存器I0.1,而后进入程序执行阶段。由于I0.1=“1”,Q0.1被激励为“1”,Q0.1=“1”的状态存入输出映像寄存器Q0.1,同时位存储器M2.1=“1”。最后进入输出刷新阶段,将输出映像寄存器Q0.1=“1”的状态转存到输出锁存器,直至输出端子Q0.1=“0”,这是PLC的实际输出。位存储器M1.0要到第三个周期才能被激励,这是由PLC执行程序时是按顺序扫描所致的。如果将Network1、Network2的位置对调一下,则位存储器M1.0在第二周期也能响应。可见用户梯形图程序网络顺序的安排影响了响应时间。
图1-9 梯形图中各元件状态时序图
注:时序图是分析PLC程序执行过程中在时间轴上各元件电平高低的序列图,时序图中高电平表示对应元件得电处于接通状态,低电平表示对应元件失电处于断开状态。