PLC = Programmable logic Controller,可编程逻辑控制器,一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。是工业控制的核心部分。
当PLC投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC的CPU以一定的扫描速度重复执行上述三个阶段。
(一) 输入采样阶段
在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
(二) 用户程序执行阶段
在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。
即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
在程序执行的过程中如果使用立即I/O指令则可以直接存取I/O点。即使用I/O指令的话,输入过程影像寄存器的值不会被更新,程序直接从I/O模块取值,输出过程影像寄存器会被立即更新,这跟立即输入有些区别。
(三) 输出刷新阶段
当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
PLC实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同,基本构成为:
a、电源
PLC的电源在整个系统中起着十分重要的作用。如果没有一个良好的、可靠的电源系统是无法正常工作的,因此PLC的制造商对电源的设计和制造也十分重视。一般交流电压波动在+10[%](+15[%])范围内,可以不采取其它措施而将PLC直接连接到交流电网上去
b. 中央处理单元(CPU)
中央处理单元(CPU)是PLC的控制中枢。它按照PLC系统程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O以及警戒定时器的状态,并能诊断用户程序中的语法错误。当PLC投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后按指令的规定执行逻辑或算数运算的结果送入I/O映象区或数据寄存器内。等所有的用户程序执行完毕之后,将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。
为了进一步提高PLC的可靠性,近年来对大型PLC还采用双CPU构成冗余系统,或采用三CPU的表决式系统。这样,即使某个CPU出现故障,整个系统仍能正常运行。
c、存储器
存放系统软件的存储器称为系统程序存储器。
存放应用软件的存储器称为用户程序存储器。
d、输入输出接口电路
1、现场输入接口电路由光耦合电路和微机的输入接口电路,作用是PLC与现场控制的接口界面的输入通道。
2、现场输出接口电路由输出数据寄存器、选通电路和中断请求电路集成,作用PLC通过现场输出接口电路向现场的执行部件输出相应的控制信号。
e、功能模块
如计数、定位等功能模块
f、通信模块
如以太网、RS485、Profibus-DP通讯模块等
虽然PLC所使用之阶梯图程式中往往使用到许多继电器、计时器与计数器等名称,但PLC内部并非实体上具有这些硬件,而是以内存与程式编程方式做逻辑控制编辑,并借由输出元件连接外部机械装置做实体控制。因此能大大减少控制器所需之硬件空间。实际上PLC执行阶梯图程式的运作方式是逐行的先将阶梯图程式码以扫描方式读入CPU 中并执行控制运作。在整个的扫描过程包括三大步骤,“输入状态检查”、“程式执行”、“输出状态更新”说明如下:
步骤一“输入状态检查”:PLC首先检查输入端元件所连接之各点开关或传感器状态(1 或0 代表开或关),并将其状态写入内存中对应之位置Xn。
步骤二“程式执行”:将阶梯图程式逐行取入CPU 中运算,若程式执行中需要输入接点状态,CPU直接自内存中查询取出。输出线圈之运算结果则存入内存中对应之位置,暂不反应至输出端Yn。
步骤三“输出状态更新”:将步骤二中之输出状态更新至PLC输出部接点,并且重回步骤一。
此三步骤称为PLC之扫描周期,而完成所需的时间称为PLC 之反应时间,PLC 输入讯号之时间若小于此反应时间,则有误读的可能性。每次程式执行后与下一次程式执行前,输出与输入状态会被更新一次,因此称此种运作方式为输出输入端“程式结束再生”。
1. 输入/输出点数 ( I/O点数 )。
2. 扫描速度。 单位: ms /1000步 或 ms /步
3. 内存容量。
4. 指令条数。
5. 内部寄存器数目。
6. 高功能模块。
1. 抗干扰、可靠性高。
2. 模块化组合式结构,使用灵活方便。
3. 编程简单,便于普及。
4. 可进行在线修改。
5. 网络通讯功能,便于实现分散式测控系统。
6. 与传统的控制方式比较,线路简单。
1. 用于开关逻辑控制。
2. 用于机加工数字控制。
3. 用于闭环过程控制。
4 用于组成多级控制系统。
PLC的兴起,是与美国现代工业自动化生产发展的要求密不可分的。
一、PLC 源起于1960 年代,当时美国一汽车制造公司,为解决工厂生产线调整时,继电器顺序控制系统之电路修改耗时,平时检修与维护不易等问题。
在可编程逻辑控制器出现之前,汽车制造业中的一般控制、顺序控制以及安全互锁逻辑控制必须完全依靠众多的继电器、定时器以及专门的闭回路控制器来实现。它们体积庞大、有着严重的噪音,不但每年的维护工作要耗费大量的人力物力,而且继电器-接触器系统的排线检修等工作对维护人员的熟练度也有着很高的要求。
针对这些问题,美国通用汽车公司在1968年向社会公开招标,要求设计一种新的系统来替换继电器系统,并提出了的“通用十条”招标指标,也是目前PLC的特点:
1、编程方便,现场可修改程序;
2、维修方便,采用模块化结构;
3、可靠性高于继电器控制装置;
4、体积小于继电器控制装置;
5、数据可直接送入计算机;
6、成本可与继电器控制装置竞争;
7、输入可以是交流115V;
8、输出为交流115V,2A以上,能直接驱动电磁阀,接触器等;
9、在扩展时,原系统只要很小变更;
10、用户程序存储器容量能扩展。
二、随后,美国数字设备公司(DEC)根据这一设想,于1969年研制成功了台PDP-14控制器,并在汽车自动装配线上使用并获得成功。由于当时系统主要用于顺序控制、职能进行逻辑运算,所以被命名为可编程逻辑控制器(Programmable Logic Controller,PLC)。
三、最早期之PLC只具有简易之逻辑开/关(on/off)功能,但比起传统继电器之控制方式,已具有容易修改、安装、诊断与不占空间等优点。
四、1970 年代初期,PLC引进微处理机技术,使得PLC具有算术运算功能与多位元之数位信号输出/输入功能,并且能直接以阶梯图符号进行程式之编写。这项新技术的使用,在工业界产生了巨大的反响。日本在1971年从美国引进了这项技术,并很快研制成功了自己的DCS-8可编程逻辑控制器,德、法在1973年至1974年间也相继有了自己的该项技术。中国则于1977年研制成功自己的台可编程逻辑控制器,但是使用的微处理器核心为MC14500。
五、1970 年代中期,PLC功能加入远距通讯、类比输出输入、NC 伺服控制等技术。
六、1980 年代以后更引进PLC 高速通讯网络功能,同时加入一些特殊输出/输入界面、人机界面、高功能函数指令、资料收集与分析能力等功能。
PLC之功能早已不止当初数位逻辑之运算功能,因此近年来PLC常以可编程控制器(Programmable Controller)简称之。
PLC常用的编程语言主要有四种:基本指令、阶梯图、流程、IEC 61131-3。另有一些较少使用的专用编程语言。
1. 基本指令:类似于组合语言,由指令语句系列构成,如Mitsubishi FX2的控制指令LD、LDI、AND、ANI、OR、ORI、ANB、ORB、MMP、MMS与OUT等,一般配合书写器写入程式,而书写器只能输入简单的指令,与电脑程式中的阶梯图比较起来阳春许多。书写器一次只显示四行指令,所以不太直观,可读性差,特别是遇到较复杂的程式,更难读,所以多数程式用顺序功能流程图(SFC)表达;其优点就是不需要电脑就可以更改或察看PLC内部程式。
使用书写器时,必须注意的是PLC指令中输出有优先次序,其中若有输出至相同的单元时(如Y000),输出的优先次序以位址越大优先次愈越高,一般不容易从书写器中察觉所输入的单元。如下面程式中,有两个Y000输出点,而输出点Y000的位置是在X001后面,所以能控制Y000输出的只有X001这个输入点;因而X000输入点无法控制Y000。
2. 阶梯图(Ladder Programming,简称LAD):类似于传统上以继电器控制接触器的电路图,梯形图是通过连线把PLC指令的梯形图符号连接在一起的连通图,用以表达所使用的PLC指令及其前后顺序,它与电气原理图很相似。
它的连线有两种:一为母线,另一为内部横竖线。内部横竖线把一个个梯形图符号指令连成一个指令组,这个指令组一般总是从装载(LD)指令开始,必要时再继以若干个输入指令(含LD指令),以建立逻辑条件。为输出类指令,实现输出控制,或为资料控制、流程控制、通讯处理、监控工作等指令,以进行相应的工作。
3. 顺序功能流程图(Sequential Function Chart,简称SFC):类似于流程设计(Flow Design),流程图中的步骤组合而完成,主要是规划动作顺序的流程图,故谓之顺序功能流程图。如:劳委会中部办公室所公布之2004年工业配电乙级技能检定术科第三题顺序功能流程图,如下图。所谓步序式控制,即是一步一步控制,而这一步与上一步是有关连性的,有顺序性的。必须有上一个动作(STL),才会启动(SET)下一个动作(STL)。
4. IEC 61131-3:IEC 61131-3是一个国际标准,它规范了 PLC 相关之软件硬件的标准,其最终的目的是可以让PLC的使用者在不改 软件设计的状况下可以轻易更换PLC硬件。
功用:软件开发效率之提升 在POU或工作表(worksheets)中的程式设计可使用结构化的设计方法,透过功能及流程的区分建立程式。此方法能让多位设计师区分出其中的程式设计,而达到大量减少程式建立的时间。
ST语言类似于PASCAL及C语言,因此可利用 与微电脑及个人电脑相同的程式设计技术进行阶梯式语言所难以执行的复杂计算,完成程式的建立。常用的程式及回路可透过FB(功能区块)的建立轻易地重复利用。
IEC 61131-3涵盖之程式:
IL (指令集)、LD (阶梯图)、FBD (功能区块图)、ST (结构化文字)、SFC (时序流程图)
目前这个标准主要是由 PLCopen联盟 https://www.plcopen.org 在推广。
5.其他:另外还有功能图(Function Chart Programming,FBD)以及欧洲常用的IEC编程方法,是各种PLC编程语言规范化的方向。 一些的PLC还具有与电脑相容的C语言、BASIC语言、专用的高阶语言(如西门子公司的GRAPH5、三菱公司的MELSAP、富士电机的Micrex-SX系列),还有用布林逻辑语言、通用电脑相容的组合语言等。
大体而言,阶梯图程式目前依然是应用最广泛的撰写语言,因为它与继电—接触器控制线路非常相像,容易学习,使用方便。