1.2 PLC的工作原理
1.2.1 PLC基本组成
PLC的基本组成可以归纳为4大部件:中央处理器单元(CPU)、存储器、输入输出部件(I/O部件)和电源部件。其中CPU是控制器的核心;存储器用于存放系统程序、用户程序及工作数据;I/O部件是连接现场设备与CPU之间的接口电路;电源部件为PLC内部电路提供电能。下面分别说明:
1.CPU
CPU主要包含运算器、控制器、寄存器,它是PLC的核心部分。PLC的CPU芯片其实就是微处理器或单片机。只是它是专用于PLC的,并且大部分是生产厂家为实现PLC产品最佳性能而自行研制开发的。也有的PLC产品用的CPU芯片就是通用的单片机,只是内部装有自行编写的监控程序,并靠该监控程序实现PLC功能。
CPU芯片的性能直接关系着PLC处理控制信号的能力和速度,CPU位数越多,运算速度越快,系统处理的信息量也就越大。随着CPU芯片技术的飞跃发展,PLC所用的CPU芯片也越来越高档。在一些对可靠性要求特别高的大型工业应用场合,采用双CPU结构,构成冗余系统。这样,即使某个CPU出现故障,整个系统仍然可以正常运行。
2.存储器
存储器按照存储方式可以分为随机存储器(RAM)和只读存储器(ROM)。PLC内部所使用的存储器,按其用途一般可以分为系统程序存储器、用户程序存储器、内部数据存储器。
(1)系统程序存储器用来存放系统工作程序(监控程序)、模块化应用功能子程序、命令解释、功能子程序的调用管理程序和系统参数等。这是PLC正常工作的基本保证。系统工作程序是由PLC生产厂家编制、安装并固化的。
注意:系统程序存储器直接关系到PLC的性能,不能由用户直接存取。出于这种可靠性方面的考虑,PLC的系统程序存储器都采用ROM、EPROM等用户不能进行修改的存储器。
(2)用户程序存储器是用来存放用户程序的。用户程序由用户编制,通过编程器输入。所谓“编程”就是编写PLC用户程序。用户通过编制用户程序,控制生产过程。
通常PLC产品资料中所指的存储器容量就是用户程序存储器。部分PLC用户程序存储器的存储容量是以“步”为单位进行计算。PLC中的一步,指的是PLC一条最基本逻辑运算指令所占用的存储器容量。不同的PLC,每步对应的实际存储器字节数是有所不同的。
用户程序一旦调试完成,除非设备的控制要求发生改变,才需要重新设计编写PLC程序,否则使用者一般不需要更改程序。
(3)内部数据存储器是用来存放PLC程序执行的中间状态与信息的。PLC程序的中间处理结果等信息均存储在内部数据存储器中。内部数据存储器的存储容量与PLC规模和指令系统有关。PLC的规模越大,指令系统越复杂,内部数据存储器的存储容量也就越大。
内部数据存储器的状态在PLC程序执行过程中发生动态改变,所以必须采用动态RAM进行存储,其内容在关机时自动清除。但由于设备连续工作或断电恢复的需要,部分内部数据存储器可以用电池保持。
3.I/O部件
I/O部件是CPU与现场仪表、执行机构和其他智能设备之间的连接部件。I/O部件包括输入模块和输出模块。
输入模块用来接收和采集输入信号,实现外部信号到PLC内部信号的转换。数字量输入模块用来接收从生产设备或控制现场的各种开关、继电器等数字量输入信号,通过输入接口电路,将开关量信号转换成PLC内部控制所需要的、CPU能够直接处理的TTL电平;模拟量输入模块用来接收电位器、变送器等提供的连续变化的模拟量电流、电压信号,通过A/D转换,变为PLC内部能处理的数字量。输入电路中一般设有RC滤波电路、稳压电路等,以防止由于输入触点抖动或外部干扰脉冲引起错误的输入信号。而且与内部计算机电路通过光耦元件隔离,如图1-1所示。
图1-1 输入信号图
输出模块用来输出各种控制信号,实现PLC内部信号到外部信号的转换。数字量输出模块用来控制接触器、电磁阀、指示灯、数字显示器等输出设备;模拟量输出模块用来控制变频器、调节阀等执行装置。输出电路内外也是电隔离的,靠光耦元件或输出继电器建立联系。输出电路还要进行功率放大,使其足以驱动一般工业控制器件。
总之,PLC通过输入模块可以检测被控对象或被控生产过程的各种参数,通过输出模块将处理结果传送给被控设备或工业生产过程,以实现控制。
I/O模块可与CPU放在一起,也可远程放置。通常,I/O模块上还具有状态显示,各I/O点的通断状态均用发光二极管显示。外部接线一般接在模块的接线端子排。
4.电源
PLC使用交流220V电源(AC220V)或直流24V电源(DC24V)。PLC内部电源主要是向其内部的TTL集成电路与运算放大器等部件提供工作电源,将外部输入转换为DC5V、DC ±12V、DC±15V、DC24V等不同电压。部分PLC机型还可以向外部提供DC24V,供外部的开关信号、外部传感器使用。但PLC输出使用的电源,一般不可以由PLC提供(即使用DC24V),必须另外准备负载电源。
PLC基本结构框图如图1-2所示。
图1-2 PLC基本结构框图
整体结构的PLC的4大部件装在同一机壳内,也称为箱体式PLC,它由主箱体和扩展箱体构成。其中,主箱体由CPU单元、内存单元、I/O单元、外设接口、电源、箱体间接口及其他附件等构成,扩展箱体由I/O单元、电源、箱体间接口及其他附件等构成。
模块式结构的PLC的各部件独立封装,称为模块,通过机架和总线连接。每个模块又由不同单元组合而成。如CPU模块则由CPU单元、内存单元、接口单元等组合而成;输入/输出模块(I/O模块)则是由多个输入/输出电路、接线器及相应接口等组合而成。
1.2.2 PLC工作过程
1.工作过程
PLC作为一种特殊的工业控制计算机,其工作过程与通用的计算机有很大不同。最初研制生产的PLC主要用于代替传统的由继电器、接触器构成的控制装置。其运行方式是不同的。
通用的计算机一般采用事件驱动和消息机制,是一种等待命令的工作方式,如常见的键盘操作,当按下按键后,计算机转入相应的子程序运行。传统的继电器控制装置采用硬逻辑并行运行方式,如果一个继电器的线圈通电或断电,则该继电器所有的触点都会动作。而PLC的CPU则采用顺序扫描用户程序的运行方式,如果一个逻辑线圈被接通或断开,则该线圈的所有触点不会立即动作,必须等扫描到这个触点时才会动作。
PLC采用不断循环的顺序扫描工作方式。每一次扫描所用的时间称为扫描周期或工作周期,PLC的工作过程如图1-3所示。
图1-3 PLC的工作过程图
简单讲,PLC上电时,启动执行,然后进入PLC扫描过程。从用户观点,PLC扫描过程就是从输入模块读取状态信号放入过程映像区,然后开始调用循环。如果有事件产生中断,则调用相应的块(功能)进行处理。最后把过程映像输出表送输出模块。PLC可以被看作是在系统软件支持下的一种扫描设备,一直在循环扫描并执行系统软件设计好的任务。
PLC整个扫描过程可以分为内部处理、通信服务、输入采样、用户程序执行、输出刷新5个阶段。
(1)内部处理阶段
内部处理阶段也称为系统自检阶段。内部处理过程是运行PLC内部系统的管理程序,在这个阶段,PLC完成硬件自检工作和将监控定时器复位等内部工作。如果通过自检,则执行后续功能,否则发出报警信号。该程序是生产厂家在PLC出厂时就已经固化的,一般比较固定,与用户的控制程序无直接关联,其运行时间与用户程序运行时间相比要短的多。
(2)通信服务阶段
在通信服务阶段,处理链接服务功能。主要是PLC建立、处理与远程I/O、上位计算机、其他联网PLC、编程器以及各种智能装置的通信链接。当然,只有在系统中已配置了远程I/O和其他链接单元时,才进行此阶段工作。
(3)输入采样阶段
PLC以扫描的方式工作,输入电路时刻监视着输入信号,按顺序将信号读入寄存输入状态的输入映像寄存器中存储,每一输入点都有一个对应的存储其信息的寄存器。输入寄存器与计算机内存交换信息通过计算机总线,并主要由运行系统程序来实现。PLC内存有专门开辟的存放输入信息的映像区。这个区的每一个对应位(bit)称为输入继电器,或称软接点。这些位置为1,表示接点通,为0表示接点断。由于其状态是由输入刷新得到的,所以,它反映的就是输入状态。这个过程称为输入采样。该采样结果将在PLC执行程序时被使用。
(4)用户程序执行阶段
PLC的用户程序由若干条指令组成,PLC从第一条指令开始,按顺序逐条对用户程序进行扫描。用户程序一般从输入映像寄存器、内部寄存器和输出映像寄存器中读取所需的数据进行运算、处理,再将程序执行的结果写入输出映像寄存器中暂存。
(5)输出刷新阶段
在执行完所有用户程序后,PLC将输出映像寄存器中的内容送到输出寄存器中,并通过输出电路产生相应的输出,再去驱动用户设备。
为了便于理解PLC程序的执行过程,通常也可近似的认为PLC的扫描工作过程为3个基本阶段:输入采样、用户程序执行、输出刷新。PLC在运行模式时,扫描工作是不断重复的,也就是说,以上3 个阶段是不断重复的,其输入和输出存储器不断被刷新。由于这个过程是永不停止地循环反复,所以,输出总是反映输入变化的。只是响应时间,略有滞后。当然,这个滞后不宜太大,否则,所实现的控制就不会及时,也就失去控制意义。为此,PLC的工作速度要快。速度快、执行指令时间短,是PLC实现控制的基础。事实上,PLC的速度是很快的,执行一条指令,长则几微秒、几十微秒,短则零点几或零点零几微秒,而且这个速度还在不断提高。
同一个系统在各次扫描周期中,随着条件的不同,执行程序的时间会有变化,因为程序执行过程中,变量状态的不同,部分程序段可能不执行。
程序循环扫描一次的时间,不仅与每条指令执行的时间有关,而且与程序中所用的指令类型、指令条数有关。
2.PLC扫描工作方式优点
PLC扫描工作方式的优点如下:
(1)在执行程序时,读写的是输入/输出映像寄存器的值,而不是直接对实际的I/O点进行操作。
(2)整个程序执行阶段各输入继电器的状态是固定的,程序执行后再用输出映像寄存器的值,更新所有的输出点,使得系统运行稳定。
(3)用户程序读写I/O映像寄存器比直接读写I/O点要快得多,这样可以提高用户程序的运行速度。
(4)扫描工作方式具有较好的抗干扰能力,在一个扫描周期内,输入处理仅占用极少部分时间。在大部分时间内,干扰信号不会被采集到PLC系统。
3.过程映像
在每个扫描周期,CPU检查输入和输出的状态。有特定的存储器区保存模块的二进制数据:PII和PIQ。处理程序访问这些寄存器,而不直接查询数字信号模块的信号状态。这一特定的存储器区就是过程映像。
PII(Process Image Input)过程映像输入表建立在CPU存储器区,所有输入模块的信号状态存放在这里。PII以字节队列的格式分配存储区,每个字节对应一个8位的输入信号。
PIQ(Process Image Output)过程映像输出表包含程序执行的结果输出值,这些输出值在扫描结束传送到实际输出模块上。
在用户程序检查输入(例如:AI 2.0)时,使用PII的最后状态。这样就保证在一个扫描周期内使用相同的信号状态,如图1-4所示。
图1-4 过程映像
输出在程序中可以被赋值,也可以被检查,即使一个输出在程序中的多个地方被赋值,仅最后被赋值的状态传送到相应的输出模块上。与直接I/O访问相比,过程映像访问可以为循环程序处理过程中的CPU提供相同的过程信号映像。而且,过程映像被保存在CPU的系统存储器中,所以访问的速度比直接访问信号模块速度快。
4.PLC中断处理
PLC采用中断工作方式来应对紧急任务。一般的计算机系统中,CPU在每一条指令执行结束时都要询问有无中断申请。而PLC对中断的响应则是在相关程序块结束后查询有无中断申请,如果有中断申请,则转入执行相应的中断服务程序。待处理完中断,又返回运行原来程序。
在PLC中,中断源是通过输入点进入系统的,PLC扫描输入点是按照输入点编号的先后顺序进行的。系统接到中断申请后,顺序扫描中断源,可能只有一个中断源申请中断,也可能同时有多个中断源申请中断。系统在扫描中断源的过程中,在存储器的特定区建立“中断处理表”,按顺序存放中断信息,中断源被扫描后,中断处理表也已建立完毕,系统就按照这个表的先后顺序调入相应的中断处理子程序。
与一般计算机系统的中断一样,PLC的中断也是分优先级的。当同时出现2 个或多个中断申请时,则优先级别高的先处理,继而处理低级别的。直到中断申请全部处理完毕,再转而执行扫描程序。
需要指出的是,多个中断源可以有优先顺序,但无嵌套关系。即在中断程序执行中,如果有新的中断发生,不论新中断的优先顺序如何,都要等执行中的中断处理程序结束后,再进行新的中断处理。
5.PLC集中处理方式
PLC在工作过程中,对输入信号执行过程、输出控制采取集中批处理方式。这样不仅避免了继电器、接触器控制系统中触点竞争和时序失配的问题,而且增强了系统的抗干扰能力,提高了工作稳定性。由于干扰一般是脉冲式的、短时的。只要PLC不是正好工作在输入刷新阶段,就不会受到干扰的影响。因此,瞬间干扰所造成的影响将会大大降低,从而增强了系统的抗干扰能力,这是PLC可靠性高的原因之一。
6.PLC时间滞后现象
PLC对输入和输出信号的响应是有延时的,这就是滞后现象。PLC输入/输出滞后时间又称为系统响应时间,是指从PLC的外部输入信号发生变化到其控制的外部输出信号发生变化的时刻之间的时间间隔。它是由输入电路的滤波时间、输出电路的滞后时间、扫描工作方式产生的滞后时间组成。
PLC在执行用户程序时,使用的是在输入处理阶段读入并存放在输入映像寄存器中的数据,而不是当时可能已经发生变化的外部电路的最新状态的数据,所以造成了信号的滞后。
为了确保PLC在任何情况下都能正常无误地工作,一般情况下,输入信号的脉冲宽度必须大于一个扫描周期。
还应该注意一个问题是输出信号的状态是在输出刷新时才送出的。因此,在一个程序中若给一个输出端多次赋值,中间状态只改变输出映像区。只有最后一次赋值才能被送到输出端。
造成PLC时间滞后是因为一个扫描周期内对所有的输出只刷新一次,而且还与电路特性有关,滤波电路的时间常数和输出继电器触点的机械滞后。经分析,由扫描工作方式引起的滞后时间最长可达2~3个扫描周期。
PLC总的响应延迟时间一般只有几毫秒至几十毫秒,对于一般的系统是无所谓的。
为了减少PLC的响应延迟时间,可以采用如下措施:
(1)选用扫描速度快的PLC;
(2)选用延迟时间短的输入/输出模块;
(3)可以使用立即输入指令和立即输出指令,或者使用输入中断功能。