PLC学习(一)——PLC基础
PLC学习(一)——PLC基础
前言:PLC的前世今生
什么是可编程控制器?
可编程逻辑控制器(Programmable Logic Controller)通常被称为工厂级别的计算机,可直接面向生产一线的设备,一直在生产流程的控制领域和离散制造业的机电设备中长盛不衰。
20世纪60年代以前的100多年里,对工业生产或电气设备进行控制的装置是继电器控制电路。继电器控制电路是利用电器元件的机械触点的串、并联组合成逻辑控制电路。由于采用硬线连接,连线多而复杂,因此对后继的逻辑修改、增加功能都很困难。而PLC则是在继电器控制技术的基础上融合计算机技术和现代通信技术发展起来的一项先进的控制技术。PLC以微处理器为核心,用编写的软件程序进行逻辑控制、定时、计数和算术运算等,并通过数字量和模拟量的输入/输出(I/O)来控制各种生产过程和设备。改变程序, 便可改变逻辑,连线少、体积小、可靠方便,因而得到了快速的发展和应用。
继电器控制电路
继电器控制电路是指用导线将继电器类元件的触点(如按钮、开关或继电器、定时器、计数器的触点)按控制要求连接成控制用电设备工作的电路。控制电路中的继电器类元件的触点及这些触点与用电设备的不同连接,构成了触点与用电设备之间的不同逻辑关系,可以实现不同的逻辑控制。
继电器控制电路分为触点控制电路及继电器控制电路两类。
触点控制电路,是指用手动控制器触点(如开关、按钮)的通、断,去控制用电设备的电路。用触点控制电路可以实现一些常见的逻辑关系,如与、或等。要实现更复杂的逻辑关系或要用小功率开关及触点去控制大功率动力设备的电路就得采用继电器控制电路了。
继电器控制电路是除了手动控制器触点(如开关、按钮),还使用继电器触点的电路,其控制对象既有用电设备,又有电磁继电器的自身线圈。
但继电器控制电路有以下缺点:
- 触点间用导线连接,容易形成故障点,使可靠性降低,维护费增高。
- 控制电路中的继电器类元件都是分立元件,体积大,不便实现复杂逻辑关系的控制。
- 控制电路没有柔性。控制要求改变时,电路也要重新设计制造,从而推高用户的生产费用。
"GM十条"与PLC
20世纪60年代以后,美国汽车制造业为适应市场需求,不断更新汽车产品,要求及时改变相应的加工生产线。汽车生产线上的继电器控制系统就需要经常重新设计装备,这不仅费用高,而且新系统的制造和接线也非常费时,延长了汽车的设计生产周期。在这种情况下,采用传统的继电器控制就显出许多不足。
1968年美国通用汽车(GM)公司首次公开招标,要求制造商为其装配线提供一种新型的通用程序控制器,并提出了著名的10项招标指标,即奠定了PLC基本雏形的著名的“GM十条”:
- 编程简单,可在现场修改程序;
- 维护方便,最好是插件式;
- 可靠性高于继电器控制柜;
- 体积小于继电器控制柜;
- 可将数据直接输入管理计算机;
- 在成本上可与继电器控制器竞争;
- 输入可以是交流115V;
- 输出为交流115V、2A以上,能直接驱动电磁阀;
- 在扩展时,原有系统只需要很小变更;
- 用户程序储存器容量至少能扩展到4kW
1969年,美国数字设备公司(DEC)根据这10项技术指标的要求研制出了第1台可编程逻辑控制器——PDP-14,并成功地应用在GM公司的生产线上。
1971年,日本引进了这项技术,并开始生产自己的PLC。1973年,欧洲一些国家也生产出自己的PLC。1974年,我国开始了PLC技术的研究,并在1977年研制出第一台具有实用价值的PLC。
在这一时期,PLC主要用于顺序控制。随着半导体技术、微电子技术及微型计算机技术的发展,到了20世纪70年代中期以后,PLC广泛采用微处理器作为中央处理器,并且在外围的输入/输出(I/O)电路中逐渐使用了大规模和超大规模的集成电路,用集成电路的存储器代替磁芯存储器,把微型计算机技术结合到PLC中,使得PLC实现了更大规模的集成化,工作更为可靠,更能适应工业环境,而且柔性更强,同时成本也大幅度地降了下来,从而使PLC进入了工业实用阶段。
1980年,美国电气制造商协会(NEMA)将其正式命名为可编程控制器(Programmable Controller,PC),为与PC(Personal Computer)加以区别,常把可编程控制器称为PLC(Programmable Logic Controller)。
1987年国际电工委员会(IEC)颁布的“可编程控制器标准草案”中对PLC做了如下的定义:“可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用了可编程序的存储器,用来在其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等,并通过数字式和模拟式的输入和输出,控制各种类型的机械或生产过程。可编程控制器及其有关外围设备,都应按易于与工业控制系统连成一个整体,易于扩充其功能的原则设计”。
连接式编程系统与存储式编程系统
在一个继电器控制系统中,要完成一项逻辑控制功能,支持控制系统的“程序”由各分立元件(继电器、定时器、计数器等)点到点之间布线连接来实现,这是一种连接式编程系统。如果元件是串联,那就是一个“与”逻辑;如要变为“或”逻辑,两个触点的串联电路必须重新布线,改为并联电路以适应控制程序的变化。所以,继电器控制系统也称为连接式编程控制系统。
如果控制逻辑是编程器预先写好的“程序”并存放在存储器中,线圈的接通或断开都是由程序决定的,与控制器的结构和布线无关,这种控制系统称为存储式编程系统。这样就可以使用标准的控制器,将生产过程的开关、按钮、各种传感器(称为输入设备)和电气设备等执行机构(称为输出设备)分别与控制器的端子相连。如果需改变控制功能,只要通过编程器改变存储器中的程序,外部的连线不需要做任何改变,因此,PLC就是存储式编程的控制器。
PLC的组成单元
PLC比一般计算机具有更强的与工业过程相连接的I/O接口,具有更适用于控制要求的编程语言和更适应于工业环境的抗干扰性能。
PLC基本单元
PLC主机(也称基本单元)由中央处理器(CPU)、存储器、输入/输出接口(I/O接口)、通信接口、扩展接口、外围设备接口和电源等部分组成。而PLC控制系统则由PLC主机、输入设备、输出设备组成。
中央处理器
CPU是PLC的核心部件,是PLC的运算和控制中心,PLC的工作过程都是在CPU的统一指挥和协调下进行的。CPU由微处理器和控制器组成,可以实现逻辑运算和数学运算,协调控制系统内部各部分的工作。
PLC常用的CPU有通用微处理器、单片机和位片式微处理器。通用微处理器按其处理数据的位数可分为4位、8位、16位和32位等。PLC大多用8位和16位微处理器。
控制器的作用是控制整个微处理器的各个部件有条不紊地进行工作,其基本功能就是从内存中读取指令和执行指令。控制器接口电路是微处理器与主机内部其他单元进行联系的部件,主要有数据缓冲、单元选择、信号匹配、中断管理等功能。微处理器通过它来实现与各个单元之间的可靠的信息交换和最佳的时序配合。
存储器
存储器是PLC存放系统程序、用户程序和运行数据的单元。PLC的存储器由系统程序存储器和用户程序存储器两部分组成。
系统程序存储器是PLC用于存放系统程序如指令(软件)等内容的部件,这部分存储器用户不能访问。
用户程序存储器是为用户程序提供存储的区域。用户程序存储器容量的大小,决定了用户程序的大小和复杂程度,从而决定了用户程序所能完成的功能和任务的大小。用户程序存储器的容量一般以字节为单位。小型PLC的用户程序存储器容量在1KB左右,典型PLC的用户程序存储器容量可达数兆字节(MB)。PLC的用户存储区一般包括几个部分,每一部分都有特定的功能和用途。
PLC的存储器主要包括以下几种类型:
- 只读存储器(ROM)
- 可编程只读存储器(PROM)
- 可擦除可编程只读存储器(EPROM)
- 电可擦除可编程只读存储器(EEPROM)
- 随机存取存储器(RAM)
I/O接口单元
I/O接口单元通常也称I/O接口电路或I/O模块,是PLC与工业过程控制现场之间的连接部件。PLC通过输入接口能够得到生产过程的各种参数,并向PLC提供开关信号量,经过处理后,变成CPU能够识别的信号。PLC通过输出接口将处理结果送给被控制对象,以实现对工业现场执行机构的控制目的。由于外部输入设备和输出设备所需的信号电平是多种多样的,而PLC内部CPU处理的信息只能是标准电平,所以I/O接口必须能实现这种转换。
I/O扩展单元
I/O扩展单元用来扩展PLC的I/O点数。当用户所需要的I/O点数超过PLC基本单元的I/O点数时,可通过此接口用扁平电缆线将I/O扩展单元(不带有CPU)与主机单元相连接,以增加PLC的I/O点数,适应控制系统的要求。其他很多的智能单元也通过该接口与主机相连。PLC的扩展能力主要受CPU寻址能力和主机驱动能力的限制。
通信接口
PLC配有各种通信接口,这些通信接口一般都带有通信处理器。PLC通过这些通信接口可与监视器、打印机、其他PLC、上位计算机等设备实现通信连接。
PLC的软件组成
PLC的软件系统由系统程序(又称为系统软件)和用户程序(又称应用软件)两大部分组成。
系统程序
系统程序由生产厂家设计,由管理程序(运行管理、生成用户元件、内部自检)、用户指令解释程序、编辑程序、功能子程序以及调用管理程序组成。它和PLC的硬件系统相结合,完成系统诊断、命令解释、功能子程序的调用管理、逻辑运算、通信及各种参数设定等功能,提供了PLC运行的平台。
1)系统管理程序
系统管理程序主管整个PLC的运行,因此是管理程序中最重要最核心的部分,管理程序由以下三部分组成。
(1)运行管理:时间分配的运行管理,即控制可编程控制器输入、输出、运算、自检及通信的时序。
(2)存储空间的分配管理:主要是进行存储空间的管理,即生成用户环境,由它规定各种参数、程序的存放地址,将用户使用的数据参数存储地址转化为实际的数据格式及物理存放地址。它将有限的资源变为用户可直接使用的很方便的元件。
(3)系统自检程序:包括各种系统出错检验、用户程序语法检验、语句检验、警戒时钟运行等。在系统管理程序的控制下,整个PLC就能按要求正确地工作。
2)用户指令解释程序(包含编辑程序)
用户指令解释程序的主要任务是将用户编程使用的PLC语言(如梯形图语言)变为机器能懂的机器语言程序。它将梯形图程序逐条翻译成相应的机器语言,然后通过CPU完成这一步的功能。在实际操作中,为了节省内存,提高解释速度,用户程序是用内码的形式存储在PLC中的。用户程序变为内码形式的这一步是由编辑程序实现的,它可以插入、删除、检查用户程序,方便程序的调试。
3)标准模块和系统调用
这部分主要由许多独立的程序块组成,各自能完成不同的功能,有些完成I/O,有些完成特殊运算等。
用户程序
PLC的用户程序是用户利用PLC厂家提供的编程语言,根据工业现场的控制要求来设计编写的程序。它存储在PLC的用户存储器中,用户可以根据系统的不同控制要求,对原有的应用程序进行改写或删除。用户程序包括开关量逻辑控制程序、模拟量运算程序、闭环控制程序和操作站系统应用程序等。
PLC的控制工作过程
PLC的循环扫描与中断
从时间进程上看,PLC采用分时操作原理,一个时刻执行一个操作指令。随着时间推移,一个操作一个操作地顺序进行。这种分时操作进程称做CPU对程序的“扫描”。当PLC开始上电运行时,首先清除I/O存储单元的内容,然后进行自诊断,确认正常后开始扫描。
PLC的“扫描”过程分为三个阶段:
1)输入采样阶段
输入接口电路时刻监视着输入点的通、断状态。CPU执行程序前首先将输入设备的通、断信息通过输入接口电路采集进来,转变成PLC的CPU能接受的标准电平信号——输入设备的“通”状态存于存储单元中就是“1”,“断”状态存于存储单元中就是“0”。此状态暂存于PLC的输入映像区(暂存器)中。每一输入点都有一个与其对应的输入暂存器。完成输入端刷新工作后,转入下一步工作过程,即程序执行阶段。
2)程序执行阶段
对用户的控制程序,CPU从第一条指令开始执行,并将相应的逻辑运算结果存入对应的内部辅助寄存器和输出状态锁存器。当最后一条控制程序执行完毕后,即转入输出刷新阶段。
3)输出刷新阶段
PLC的CPU从输入映像区中读取输入信息并带入到程序中解算运行,解算运行的结果通过输出接口电路控制输出设备的通、断运行。
输出接口电路有输出锁存器。它有高、低电位两个状态,并可锁存。同时,它还有相应的物理电路,可把这个高、低电位状态传送给输出点(高电位使输出回路接通,低电位使输出回路断开)。每一输出点都有一个与其相对应的输出锁存器。
在中断方式下,需处理的控制先请求中断,被响应后,PLC的CPU停止正在运行的程序,转而去处理有关中断服务程序。待处理完中断,又返回来运行原来的程序。
通过扫描与中断,大量控制都用扫描方式处理,个别紧急的用中断处理,计算机资源能得到充分利用。
PLC的工作状态
PLC有两种工作状态,即运行(RUN)状态与停止(STOP)状态。运行状态是执行应用程序的状态。停止状态一般用于程序的编制与修改。在这两个不同的工作状态中,扫描过程所要完成的任务是不尽相同的。
在内部处理阶段,PLC检查CPU模块内部的硬件是否正常,将监控定时器复位,以及完成一些其他内部工作。
在通信服务阶段,PLC与其他带微处理器的智能装置通信,以更新编程器的显示内容。
扫描周期和响应时间
PLC在运行状态时,执行一次扫描操作所需的时间称为扫描周期,其典型值为0.5~100ms。
扫描周期的长短主要取决于以下几个因素:CPU执行指令的速度,执行每条指令占用的时间;程序中指令条数的多少。指令执行所需的时间与用户程序的长短、指令的种类和CPU执行速度有很大关系。
PLC的响应时间是指从PLC外部输入信号发生变化的时刻起至由它控制的有关外部输出信号发生变化的时刻之间的间隔,也叫做滞后时间(通常滞后时间为几十毫秒)。它由输入电路的时间常数、输出电路的时间常数、用户语句的安排和指令的使用、PLC的循环扫描方式以及PLC对I/O的刷新方式等部分组成。显然,PLC的响应时间不为零,这种现象称为I/O延迟响应或滞后现象。
响应时间可以分为最短响应时间和最长响应时间。
1)最短响应时间
如果在一个扫描周期刚结束之前收到一个输入信号,在下一个扫描周期之前进入输入采样阶段,这个输入信号就被采样,使输入更新,这时响应时间最短。
2)最长响应时间
如果PLC收到一个输入信号经输入延迟后,刚好错过I/O刷新的时间,在该扫描周期内这个输入信号无效,要到下一个扫描周期输入采样阶段才被读入和更新,这时响应时间最长。
PLC的编程语言
PLC是专为工业控制而开发的控制器,主要使用者是企业电气技术人员。为了适应他们的传统习惯和掌握能力,PLC没有采用计算机编程语言,而采用面向控制过程、面向问题的“自然语言”进行编程。国际电工委员会(IEC)1994年5月公布的IEC 61131-3《可编程控制器语言标准》详细地说明了句法、语义和5种编程语言:梯形图、功能块图、状态转移图、指令语言、结构文本。
梯形图(Ladder Diagram,LD)
梯形图是使用得最多的图形编程语言,其基本结构形式是将继电器电路图软件化,即借用其线圈控制触点的概念和形式。
1)能流
为了分析各个元器件间的输入与输出关系,在梯形图中会假想一个概念电流,也称做能流(power flow)。一般认为电流是按照从左到右的方向流动的,这一方向与执行用户指令顺序时的逻辑运算关系是一致的,即左边是“因”(条件),右边是“果”(结果)。
2)母线
梯形图两侧的垂直公共线称为母线(bus bar)。母线之间有能流从左向右流动。通常梯形图中的母线有左右两条,左侧的母线必须画出,但右侧母线可以省略不画。
3)软触点
软触点的“1”或“0”状态代表着相应继电器触点或线圈的接通或断开。
PLC梯形图中的编程元件中有部分元件沿用了继电器这一名称和功能,如输入继电器、输出继电器、内部辅助继电器等。PLC中的“软输入继电器(软触点)”实质上是输入信息映射区的一对应内存位(bit),“软输出继电器(也称为输出线圈)”则是输出映射区对应的内存位。
根据梯形图中各触点的状态和逻辑关系,可以求出与图中各线圈对应的编程元件的ON/OFF状态,称为梯形图的逻辑解算。逻辑解算是按梯形图中从上到下、从左至右的顺序进行的。逻辑解算是根据输入映像寄存器中的值,而不是根据逻辑解算瞬时外部输入触点的状态来进行的。
梯形图与其他程序设计语言有一一对应关系,便于相互的转换和对程序的检查。
功能块图(Function Black Diagram,FBD)
这是一种类似于数字逻辑门电路的编程语言,对于有数字电路基础的读者很容易掌握。该编程语言用类似与门、或门的方框来表示逻辑运算关系。方框的左侧为逻辑运算的输入变量,右侧为输出变量。I/O端的小圆圈表示“非”运算,方框被“导线”连接在一起,信号自左向右流动。
状态转移图(Sequential Function Chart,SFC)
它是用来编制顺序控制程序的流程的。它提供了一种组织程序的图形方法,在状态转移图中可以用别的语言嵌套编程。状态转移图主要用来描述开关量顺序控制系统,根据它可以很容易地画出顺序控制梯形图程序。
指令语言(Instruction List,IL)
PLC的指令是一种与微机的汇编语言中的指令相似的助记符表达式。助记符表达式与梯形图有一一对应关系,由指令组成的程序叫做指令(表)程序。在用户程序存储器中,指令按步序号顺序排列。
结构文本(Structured Text,ST)
结构文本是按IEC 61131-3标准创建的一种专用的高级编程语言。它采用计算机的描述语句描述系统中各种变量之间的运算关系,完成所需的功能或操作。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。在大中型的可编程控制器系统中,常采用结构文本设计语言来描述控制系统中各个变量的关系。它也被用于集散控制系统的编程和组态。在进行PLC程序设计过程中,除了允许几种编程语言供用户使用外,标准还规定编程者可在同一程序中使用多种编程语言,这使编程者能选择不同的语言来适应特殊的工作。
常见PLC类型
按I/O点数分类
PLC可按输入/输出点数分为微型机、小型机、中型机、大型机及超大型机。大型机、超大型机控制规模大、功能强、性能高,价格也高;而微型机、小型机控制规模小、功能差、性能也低些,但价格便宜。
1)微型机
I/O点数为小于64点的PLC。
2)小型PLC
I/O点数为256点以下,用户程序存储容量小于8KB的为小型PLC。它可以连接开关量和模拟量I/O模块以及其他各种特殊功能模块,能实现包括逻辑运算、计时、计数、算术运算、数据处理和传送、通信联网等功能。例如,西门子公司的S7-200系列PLC,三菱公司的FX系列PLC都属于小型机。
3)中型PLC
I/O点数在512~2048点之间的为中型PLC。它除了具有小型机所能实现的功能外,还具有更强大的通信联网功能、更丰富的指令系统、更大的内存容量和更快的扫描速度。例如,西门子公司的S7-300系列PLC、三菱公司的A1S系列PLC都属于中型机。
4)大型PLC
I/O点数为2048点以上的为大型PLC。它具有极强的软件和硬件功能、自诊断功能、通信联网功能,它可以构成三级通信网,实现工厂生产管理自动化。另外,大型PLC还可以采用3个CPU构成表决式系统,使机器具有更高的可靠性。例如,西门子公司的S7-400系列PLC、三菱公司的A3M、A3N系列PLC都属于大型机。
按结构分类
PLC按其结构可分为一体式、模块式及叠装式3种。
1)一体式PLC
将CPU、I/O单元、电源、通信等部件集成到一个机壳内的PLC称为一体式PLC。一体式PLC由不同I/O点数的基本单元(又称主机)和扩展单元组成。基本单元内有CPU、I/O接口、与I/O扩展单元相连的扩展口以及与编程器相连的接口。扩展单元内只有I/O接口和电源等,没有CPU。基本单元和扩展单元之间一般用扁平电缆连接。它还配备有特殊功能单元,如模拟量单元、位置控制单元等,使其功能得以扩展。一体式PLC一般都是小型机。
2)模块式PLC
模块式PLC是将PLC的每个工作单元都制成独立的模块,如CPU模块、I/O模块、电源模块(有的含在CPU模块中)以及各种功能模块。模块式PLC由母板(或框架)以及各种模块组成。把这些模块按控制系统需要选取后,安插到母板上,就构成了一个完整的PLC系统。这种模块式PLC的特点是配置灵活,可根据需要选配不同规模的系统,而且装配方便,便于扩展和维修。大、中型PLC一般采用模块式结构。例如,西门子公司的S7-300系列、S7-400系列PLC都采用模块式结构形式。
3)叠装式PLC
将整体式和模块式的特点结合起来,构成所谓的叠装式PLC。叠装式PLC将CPU模块、电源模块、通信模块和一定数量的I/O单元集成到一个机壳内,如果集成的I/O模块不够使用,可以进行模块扩展。其CPU、电源、I/O接口等也是各自独立的模块,但它们之间要靠电缆进行连接,并且各模块可以一层层地叠装。叠装式PLC集一体式PLC与模块式PLC优点于一身,它不但系统配置灵活,而且体积较小,安装方便。西门子公司的S7-200系列PLC就是叠装式的结构形式。
按功能分类
根据PLC所具有的功能不同,可将PLC分为低档、中档及高档3类。
一般低档机多为小型PLC,采用一体式结构;中档机可为大、中、小型PLC,其中,小型PLC多采用一体式结构,中型和大型PLC采用模块式结构。
1)低档PLC
具有逻辑运算、定时、计数、移位以及自诊断、监控等基本功能,还可有少量的模拟量I/O、算术运算、数据传送和比较、通信等功能。主要用于逻辑控制、顺序控制或少量模拟量控制的单机控制系统。
2)中档PLC
除具有低档PLC的功能外,还具有较强的模拟量I/O、算术运算、数据传送和比较、数制转换、远程I/O、子程序、通信联网等功能。有些还可增设中断控制、PID(比例、积分、微分)控制等功能,以适用于复杂控制系统。
3)高档PLC
除具有中档PLC的功能外,还增加了带符号算术运算、矩阵运算、函数、表格、CRT显示、打印和更强的通信联网功能,可用于大规模过程控制系统或构成分布式网络控制系统,实现工厂自动化。
内容来源:
[1] 赵燕,徐汉斌.PLC——从原理到应用程序设计[M].上海:电子工业出版社,2013.