第1章 可编程控制器概述

1.1 PLC的产生与发展

可编程控制器(Programmable Controller)是为工业控制应用而设计制造的。早期的可编程控制器称为可编程逻辑控制器(Programmable Logic Controller,PLC)。如今人们仍然沿用PLC作为可编程控制器的缩写。

它是一个以微处理器为核心的数字运算操作的电子系统装置,专为在工业现场应用而设计,它采用可编程的存储器,用于在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式或模拟式的输入、输出接口,控制各种类型的机械或生产过程。

1987年2月国际电工委员会(IEC)发布了可编程控制器标准草案第三稿,其中对PLC定义如下:可编程控制器是一种数字运算操作电子系统,专为在工业环境下应用而设计。它采用了可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字的、模拟的输入和输出,控制各种类型的机械或生产过程。可编程序控制器及其有关的外围设备,都应按易于与工业控制系统形成一个整体、易于扩充其功能的原则设计。

20世纪60年代末,由于市场的需要,工业生产从大批量、少品种的生产方式转变为小批量、多品种的生产方式。但是,当时这种大规模生产线的控制大多是继电器控制系统,体积大,耗电多,容易损坏,而且改变生产程序非常困难。为了改变这种状况,满足生产产品多样性的要求,1968年美国通用汽车公司公开对外招标,要求用新的电气控制装置取代继电器控制装置,以适应灵活、快速地改变生产程序的要求。

1969美国数字设备公司(DEC)研制成功了世界上第一台PLC,并在美国通用汽车的生产线试验成功,从此开辟了可编程逻辑控制器的时代。1971年,日本引进了这项技术,很快就研制出日本第一台PLC。1973年,原西德和法国也研制出自己的PLC。20世纪70年代中期,欧美及日本的一些生产厂家,其PLC产品中多以微处理器及大规模集成电路芯片为其核心部件,使PLC的功能进一步扩展,并且有了自诊断功能,可靠性得到进一步提高。随着微电子技术的迅猛发展,20世纪80年代中期,PLC的处理速度和可靠性大大提高,不仅增加了多种特殊功能,而且体积进一步缩小,成本大幅度下降。到20世纪90年代中期之后,PLC几乎完全计算机化,其速度更快,功能更强,PLC的各种智能化模块不断被开发出来,一些厂家还推出了PLC的计算机辅助编程软件,许多小型PLC的性能也不可小视。

现在,PLC不仅能进行逻辑控制,在模拟量的闭环控制、数字量的智能控制、数据采集、监控、通信联网及集散控制等方面都得到广泛的应用。如今大、中型,甚至小型PLC都配有A/D、D/A转换及算术运算功能,有的还具有PID功能。这些功能使PLC应用于模拟量的闭环控制、运动控制、速度控制等具有了硬件基础;PLC具有输出和接收高速脉冲的功能,配合相应的传感器及伺服装置,PLC可以实现数字量的智能控制;PLC配合可编程终端设备(如触摸屏),可以实时显示采集到的现场数据及分析结果,为分析、研究系统提供依据;利用PLC的自检信号可实现系统监控;PLC具有较强的通信功能,可与计算机或其他智能装置进行通信和联网,从而能方便地实现集散控制。功能完备的PLC不仅能满足控制的要求,更满足了现代化大生产管理的需要。

目前,世界上一些著名电器生产厂家几乎都在生产PLC,产品功能日趋完善,换代周期越来越短。为了进一步扩大PLC在工业自动化领域的应用范围,适应大中小型企业的不同需要,PLC产品大致向两个方向发展:小型PLC向体积缩小、功能增强、速度加快、价格低廉的方向发展,使之能更加广泛地取代继电器控制,更便于实现机电一体化;大中型PLC向高可靠性、高速度、多功能、网络化的方向发展,将PLC系统的控制功能和信息管理功能融为一体,使之能对大规模、复杂系统进行综合性的自动控制。

1.2 PLC的特点

PLC作为一种专为工业环境应用而设计的数字运算操作电子系统,其优越性主要体现在以下的几个方面。

1. 控制功能强

PLC所采用的CPU一般是具有较强位处理功能的位处理机,为了增强其复杂的控制功能和通信联网等管理功能,可采用双CPU的运行方式,使其功能得到极大的加强。

2. 可靠性高,抗干扰能力强

继电器控制系统中,由于器件的老化,脱焊、触点的抖动及触点电弧等现象是不可避免的,大大降低了系统的可靠性。继电器控制系统的维修工作不仅耗资费时,而且由于停产维修所造成的损失也不可估量。而在PLC控制系统中,大量的开关动作是由无触点的半导体电路来完成的,加之PLC在硬件和软件方面都采取了强有力的措施,使产品具有极高的可靠性和抗干扰能力,故此PLC可以直接安装在工业现场而稳定地工作。从国内外使用PLC的实际情况来看,平均无故障率可以达到几万甚至几十万小时以上。因而PLC被誉为“专为适应恶劣的工业环境而设计的计算机”。

3. 编程语言简单易学

PLC采用的是梯形图编程语言,与早期的继电器控制图非常相似,理解方式相同,非常清晰直观,了解继电器控制技术的电气人员很容易学会。

4. 适用于恶劣的工业环境

采用封装的方式,适合于各种振动、腐蚀、污染、有毒气体的应用场合。

5. PLC与外部设备连接方便

PLC上采用统一接线方式的可拆装的活动端子排,不同端子适合不同的功能。例如,PLC的输入接口可以直接与各种输入设备(如按钮、各种传感器等)连接,输出接口具有较强的驱动能力,可以直接与继电器、接触器、电磁阀等强电电器连接,接线简单,使用非常方便。

6. PLC的扩展能力强

通过增加扩展机架使PLC可用于控制从几个I/O点到几百个I/O点的控制系统。同时也可以根据工业现场的需要,给PLC增加一些特殊功能的模块,如以太网模块、模拟量模块、位置模块、运动控制模块等。

7. 体积小、重量轻、易于实现机电一体化

由于PLC内部电路主要采用半导体集成电路,所以具有结构紧凑、体积小、重量轻、功耗低的特点。更由于其能适应各种恶劣的环境、具备很强的抗干扰能力,因而成为实现机电一体化十分理想的控制装置。

8. 性价比高

与其他的控制方式相比,PLC控制系统设计周期短,可以在实验室进行模拟调试,使现场的工作量大大减少,省时省力。

1.3 PLC的基本组成

PLC是以微处理器为核心的一种特殊的工业用计算机,其结构与一般的计算机相类似,由中央处理单元(CPU)、存储器(RAM、ROM、EPROM、EEPROM等)、输入接口、输出接口、I/O扩展接口、外部设备接口及电源等组成。

根据结构形式的不同,PLC可分为整体式(也称箱体式)和组合式(也称模块式)两类。

整体式结构的PLC是将中央处理单元(CPU)、存储器、输入单元、输出单元、电源、通信端口、I/O扩展端口等组装在一个箱体内构成主机。另外还有独立的I/O扩展单元等与主机配合使用。整体式PLC的结构紧凑、体积小,小型机常采用这种结构。整体式PLC的基本组成如图1.1所示。日本欧姆龙(OMRON)公司的CPM1A、CPM2A、CP1H、CP1L均为整体式PLC。

图1.1 整体式PLC的组成示意图

组合式PLC的组成如图1.2所示。这种结构的PLC是将CPU单元、输入单元、输出单元、智能I/O单元、通信单元等分别做成相应的电路板或模块,各模块可以插在底板上,模块之间通过底板上的总线相互联系。装有CPU的单元称为CPU模块,其他单元称为扩展模块。CPU与各扩展模块之间若通过电缆连接,距离一般不超过10m。中、大型机常采用组合式。日本欧姆龙(OMRON)公司的C200H、CJ1M、CS1等为组合式PLC。

图1.2 组合式PLC的组成示意图

本书下面将介绍的CP1H系列PLC为整体式的,其CPU单元中装配了20点和40点规格的输入/输出电路。它将模块式的各个单元集成为一体,不如模块式灵活但是使用方便。如果I/O点数不够可用CPM1A系列扩展单元进行扩展,但最多不能超过7台。另外,CP1H CPU单元的侧面连接有CJ单元适配器CP1W-EXT01,故可以连接CJ系列特殊I/O单元或CPU总线单元最多两个单元。与模块式一样,它也可以增加扩展I/O机架。该整体式PLC的CPU机架结构如图1.3所示。

图1.3 CP1H的CPU机架结构图

下面介绍PLC各组成部分及其作用。

1.3.1 中央处理单元(CPU)

CPU是PLC的核心部件,它类似人的大脑,能指挥PLC按照预先编好的系统程序完成各种任务,其作用有以下几点。

(1)接收、存储由编程工具输入的用户程序和数据,并可通过显示器显示出程序的内容和存储地址。

(2)检查、校验用户程序。对正在输入的用户程序进行检查,发现语法错误立即报警,并停止输入;在程序运行过程中若发现错误,则立即报警或停止程序的执行。

(3)接收、调用现场信息。将接收到现场输入的数据保存起来,在需要该数据的时候将其调出、并送到需要该数据的地方。

(4)执行用户程序。当PLC进入运行状态后,CPU根据用户程序存放的先后顺序,逐条读取、解释和执行程序,完成用户程序中规定的各种操作,并将程序执行的结果送至输出端,以驱动PLC外部的负载。

(5)故障诊断。诊断电源、PLC内部电路的故障,根据故障或错误的类型,通过显示器显示出相应的信息,以提示用户及时排除故障或纠正错误。

1.3.2 存储器

存储器可以分为以下3种。

(1)系统程序存储器。系统程序是厂家根据其选用的CPU的指令系统编写的,它决定了PLC的功能。系统程序一般存储在只读存储器ROM或EPROM之中,用户不能更改其内容。

(2)用户程序存储器。根据控制要求而编制的应用程序称为用户程序。不同机型的PLC,其用户程序存储器的容量可能差异较大。根据生产过程或工艺的要求,用户程序经常需要改动,所以用户程序存储器必须可读/写。用户程序和数据存储在随机存储器RAM中。一般要用后备电池(锂电池)进行掉电保护,以防掉电时丢失程序和数据。CP1H系列整体式PLC,可选外置快闪存储卡,容量达512KB,并含有内置闪存,用户程序和参数区(如PLC设置)是自动备份和自动恢复的。

(3)工作数据存储器。用来存储工作数据的区域叫工作数据区。工作数据是经常变化、经常存取的,所以这种存储器必须可读/写。这部分数据存储在RAM中,以适应随机存取的要求,它们是PLC程序操作的对象,即指令的操作数。PLC的工作数据存储区分为元件映像寄存器区和数据寄存器区。

映像寄存器以位为单位,存储PLC的开关量输入、开关量输出、定时器、计数器、辅助继电器等软继电器的ON/OFF状态。输入点与输入映像寄存器相对应,输出点与元件映像寄存器相对应。

数据寄存器以通道(字)为单位,用来存放各种数据,例如,数学运算的源数据和结果数据、定时器和计数器的当前值和设定值、A/D转换得到的数值等。

1.3.3 输入/输出单元

I/O单元(或I/O模块)是PLC与外部设备相互联系的窗口。输入单元接收现场设备向PLC提供的信号,例如,由按钮、操作开关、限位开关、继电器触点、接近开关、拨码器等提供的开关量信号,可使用开关量输入单元接收这些开关量信号;可使用模拟量输入(A/D)单元接收温度传感器及变送器发出的直流电压信号;可使用高速计数单元接收旋转编码器发出的脉冲信号等。输入单元将接收到的各种现场信号转换成CPU能够接收和处理的信号。输出单元通常有开关量输出、脉冲输出和模拟量输出3种输出单元。开关量输出单元用于驱动控制继电器、接触器、电磁阀及指示灯等。脉冲输出单元用于连接步进电机驱动器,驱动步进电动机,构成定位控制系统;也可以连接具有脉冲输入端口的交流伺服驱动器,驱动交流永磁同步电动机,构成位置闭环控制系统。模拟量(D/A)输出单元可用于连接具有模拟量输入端口的直流驱动器,驱动直流电动机构成直流调速系统或位置控制系统;也可用于连接具有模拟量输入端口的交流伺服驱动器,驱动交流伺服电动机,构成速度控制系统、位置控制系统或同步控制系统等。

1.数字量(开关量)输入单元

欧姆龙公司的CP1H带有内置输入/输出端子。X/XA型CPU单元的数字量(开关量)输入单元的接点占用输入继电器0CH的00~11位为止的12点,和1CH的00~11位为止的12点,共计24点。因为0CH/1CH的高位位12~15通常被系统清除,故不可作为内部辅助继电器使用。输入电路图如图1.4所示,性能指标见表1.1。图1.4(a)中点画线框内为输入电路,框外左侧为现场用户接线;3.0kΩ为限流电阻;910Ω与1000pF构成滤波器,用以除去输入信号中的高频干扰;虚线框内为光电耦合器,由发光二极管和光敏三极管组成,它将输入电路与内部电路(控制电路)隔离,提高输入单元的抗干扰能力;输入指示灯在外部输入电路接通时亮,表示有信号输入。图1.4(b)、(c)原理与图1.4(a)一样,并且可以看出直流电源的极性接法是任意的。

对于开关类元件,通常分为无源元件和有源元件两大类,如按钮开关、行程开关及位置开关等为无源元件,采用这类输入元件时,使用外接24V直流电源,如图1.4所示。光敏类接近开关和磁敏类接近开关属于有源元件,采用分立元件或集成电路,需要提供器件电源,这些开关元件通常由三极管集电极输出。

图1.4 CP1H-XA型数字量(开关量)输入单元电路图

表1.1 CP1H-XA型数字量(开关量)输入单元性能指标

2.数字量(开关量)输出单元

开关量输出单元通常有继电器输出单元、晶体管输出单元及双向晶闸管(可控硅)输出单元。

(1)继电器输出单元。X/XA型CPU单元的数字量(开关量)输出继电器占用100CH的00~07位8点,101CH的00~07位8点,共计16点。100CH/101CH的高位位08~15可作为内部辅助继电器使用。图1.5是电路图。内部有16只小型24V直流继电器,其规格性能指标见表1.2。图中点画线框内是继电器单元的输出电路,框外右侧为现场用户接线,图中仅画出1位接点的输出电路,其他各位继电器的输出电路均相同。

图1.5 CP1H-XA型数字量(开关量)输出单元电路图

表1.2 CP1H-XA型继电器输出单元性能指标

继电器输出单元的负载可以是接触器、牵引电磁铁、比例电磁铁、气动电磁阀、液压电磁阀、信号灯及警报器等。外接电源视负载类型而定,可选用直流或交流电源。使用直流电源时,电源极性任意。

(2)晶体管输出单元。CP1H-XA型的晶体管输出单元的电路如图1.6所示,性能指标见表1.3。

图1.6(a)、(b)分别对应地址100CH的8个和101CH的8个输出端子的输出电路,图1.6中点画线框内是晶体管输出单元内部的输出电路,框外右侧为现场用户接线。外接电源为24V直流电源。图1.6(b)虚线框内为光电耦合器,外面的三极管为功率无触点开关元件,用于接通或断开负载电路。图中只画出一位即一个输出点的输出电路,其他各个输出点的输出电路均相同。

图1.6 CP1H-XA型晶体管输出单元电路图

表1.3 CP1H-XA型的晶体管输出单元性能指标

晶体管作为无触点开关元件,寿命长且响应时间短,如本例中晶体管输出单元ON响应时间为0.1ms左右,OFF响应时间为0.1ms左右。最大通断范围为DC 1~300mA,4.5~30V。通常晶体管输出单元采用光电耦合器作为输出级,使得内部电路(控制电路)与输出电路隔离,内部电路不直接受到负载电流的影响,提高了输出单元抗干扰能力。对于晶体管输出单元,当负载为感性负载时,应采用浪涌吸收器,用以吸收浪涌电压。此外,还应有过电流和过载保护电路。

1.3.4 电源部分

PLC中一般配有开关式稳压电源为内部电路供电。开关电源的输入电压范围宽、体积小、重量轻、效率高、抗干扰性能好。有的PLC能向外部提供24V的直流电源,可给输入单元所连接的外部开关或传感器供电。

1.3.5 I/O扩展端口

当主机上的I/O点数或类型不能满足用户需要时,主机可以通过I/O扩展端口连接I/O扩展单元来增加I/O点。没有I/O扩展端口的PLC是不能进行I/O点扩展的。另外,通过I/O扩展口还可以连接各种智能单元,扩展PLC的功能。

1.3.6 外设端口

每台PLC都有外设端口。通过外设端口,PLC可与外部设备相连接。例如,连接编程器以输入、修改用户程序或监控程序的运行;有的PLC可以通过外设端口与其他PLC、计算机或终端设备PT等链接进行通信,或连成各种网络等;连接打印机以打印用户程序、打印PLC运行过程中的状态、打印故障报警的种类和时间等;连接EPROM写入器,将调试好的用户程序写入EPROM,以免被误改动等;连接外存储器存储用户程序等。

CP1H之前的OMRON PLC的外设端口,可直接连接手持编程器,向PLC写入程序。CP1H取消了手持编程器配置,没有通常的外设端口,有一个外围设备USB端口。另外,还可以安装相应的选件板得到RS-232C和RS-422A/485两个通信端口。

1.3.7 编程工具

编程工具是开发应用和检查维护PLC及监控系统运行不可缺少的外部设备。编程工具的主要作用是用来编辑程序、调试程序和监控程序的执行,还可以在线测试PLC的内部状态和参数,与PLC进行人机对话等。通常使用的编程工具可以是简易手持编程器,也可以是配有专用编程软件包的通用计算机。

1.简易编程器

简易编程器不能直接输入梯形图程序,只能输入语句表程序。用简易编程器编程时,编程器必须与PLC相连接。简易编程器的优点是价格低、体积小、重量轻、方便携带。

编程器可以不参与现场运行,所以一台编程器可以供多台PLC使用。

2.计算机辅助编程

许多厂家对自己的PLC产品设计了计算机辅助编程软件。当PLC与装有编程软件的计算机链接通信时,可进行计算机辅助编程(见第6章)。编程软件的功能很强,它可以编辑、修改用户的程序,监控系统运行,打印文件,采集和分析数据,在屏幕上显示系统运行状况,对工业现场和系统进行仿真,将程序储存在磁盘上,实现计算机和PLC之间的程序相互传送,等等。

CP1H之前的OMRON PLC可直接采用手持编程器编程,也可以通过计算机辅助编程。CP1H取消了手持编程器编程功能,只能通过CX-Programmer(简称CX-P)编程软件在计算机上编程,然后下载到CP1H PLC中。

1.3.8 智能单元

PLC还有多种智能单元。智能单元本身是一个独立的计算机系统,它有自己的CPU、系统程序、存储器及与外界相连的接口。对组合式PLC,智能单元是PLC系统的一个模块,与CPU单元通过系统总线相连接,并在CPU单元的协调管理下独立地进行工作(不参与循环扫描)。对整体式PLC,主机通过I/O扩展接口与智能单元连接。

目前已开发的常用智能单元有A/D单元、D/A单元、高速计数单元、位置控制单元、PID控制单元、温度控制单元和各种通信单元等。

1.4 PLC的编程语言

可编程控制器是通过程序对系统进行控制的,各种机型的PLC都有自己的编程语言。PLC的编程语言有多种,如梯形图、语句表、逻辑功能图和结构化文本等。下面分别加以介绍。

1.4.1 梯形图编程语言

梯形图编程语言是一种图形语言,是若干图形符号的组合。不同厂家的PLC各有自己的一套梯形图符号。这种编程语言具有继电器控制电路形象、直观的优点,使熟悉继电器控制的技术人员很容易掌握。可见,各种机型的PLC都把梯形图作为第一编程语言。

表1.4列出了物理的继电器与CP1H系列PLC输出继电器的梯形图符号。

图1.7(a)是用继电器控制的电动机直接启、停(也称启保停)控制梯形图,图1.7(b)是用PLC控制的梯形图程序。由图可见,这两种梯形图形式很相似。但是,它们只是形式上的相似,实质上却存在着本质的差别,其主要区别有以下几点。

1. 两种继电器的区别

(1)继电器控制电路中使用的继电器都是物理的电器,继电器与其他控制电器间的连接必须通过硬接线来完成;PLC的继电器不是物理的电器,它是PLC内部的寄存器位,常称为“软继电器”。之所以称为“软继电器”,是因为它具有与物理继电器相似的功能。例如,当它的“线圈”通电时,其所属的常开触点闭合、常闭触点断开,当它的“线圈”断电时,其所属的常开触点和常闭触点均恢复常态。PLC梯形图中的接线称为“软接线”,这种“软接线”是通过编程序来实现的。

表1.4 两种继电器符号对照

图1.7 两种控制方式的梯形图

(2)PLC的每一个继电器都对应着内部的一个寄存器位,由于可以无限次地读取某位寄存器的内容,所以,可以认为PLC的继电器有无数个常开、常闭触点可供用户使用。而物理继电器的触点个数是有限的。

(3)PLC的输入继电器是由外部信号所驱动的,在梯形图中只能使用输入继电器的触点,而不出现它的线圈。而物理继电器触点的状态取决于其线圈中有无电流通过,在继电器控制电路中,若不接继电器线圈,只接其触点,则触点永远不会动作。

2. 两种梯形图的区别

PLC梯形图左右的两根线也叫母线,但与继电器控制电路的两根母线不同。继电器控制电路的母线与电源连接,其每一行(也称梯级)在满足一定条件时将通过两条母线形成电流通路,从而使电器动作;而PLC梯形图的母线并不接电源,它只表示每一个梯级的起始和终了,PLC的每一个梯级中并没有实际的电流通过。通常说PLC的线圈接通了,这只不过是为了分析问题方便而假设的概念电流通路,而且概念电流只能从左向右流,这是PLC梯形图与继电器控制电路本质的区别。

3. 实现控制功能手段的区别

继电器控制是靠改变电器间的硬接线来实现各种控制功能的,而PLC是通过编程序来实现控制的。

图1.8是对应图1.7(b)的PLC外部接线。图中只画出了一部分输入和输出端子。0.00、0.01等是输入端子,100.00、100.01等是输出端子,输入和输出端子各有自己的公共端COM。

图1.8 PLC的外部接线

当启动按钮SB1闭合时,0.00输入端子对应的输入继电器线圈通电,它的触点相应动作;当停止按钮SB2闭合时,0.01输入端子对应的输入继电器线圈通电,它的触点相应动作。当100.00输出端子对应的输出继电器线圈通电时,外部负载KM的线圈通电。根据上述关系,分析图1.7(b)启、停电动机的过程是

按下启动按钮SB1,0.00输入端子对应的输入继电器线圈通电,其常开触点0.00闭合。由于没有按动SB2,所以常闭触点0.01处于闭合状态。因此输出继电器100.00线圈通电,使KM通电。KM的主触点接在电动机的主电路中,于是电动机启动。释放启动按钮SB1后,由于100.00线圈通电,其常开触点100.00闭合起自锁作用。

在电动机运行过程中按下SB2,0.01输入端子对应的输入继电器线圈通电,其常闭触点0.01断开,输出继电器100.00线圈断电,使KM断电,于是电动机停转。

1.4.2 语句表编程语言

语句表编程语言类似计算机的汇编语言,用助记符来表示各种指令的功能。对同样功能的指令,不同厂家的PLC使用的助记符一般不同。

对图1.8(b)的梯形图,其语句表为

指令语句是PLC用户程序的基础元素,多条语句的组合构成了语句表。一个复杂的控制功能是用较长的语句表来描述的。

语句表编程语言不如梯形图形象、直观,但是在使用简易编程器输入用户程序时,只能输入语句表程序。

1.4.3 功能块编程语言

功能块(FB)是一个包含标准处理功能的基本程序单元。用户在使用时,可以根据需要选择由PLC生产厂家提供的功能块或自行定义。

用户定义的功能块中可以包含用不同编程语言实现的、与传统PLC程序相似的控制代码。与传统PLC程序最大的区别就是功能块中的数据是符号化的数据,且不与硬件或固定的存储器直接相连。因此用户所定义的功能块中控制代码可以在相同的PLC任务中使用,在多个任务间共享,或者复制到其他PLC中。

OMRON最新推出的CJ1、CS1、CP系列PLC和CX-P(5.0及其以上的版本)可直接支持用户定义的标准功能块。梯形图功能块是由完成特定功能的程序段组成的。组成程序的每一步都有输入和输出,功能块中的输入和输出被定义成变量的特点,决定着它能成为一个编程“元素”,而能够在不同的程序中被多次调用。总的来说,功能块是由变量加算法构成的。

1.变量

内部变量是只能在功能块内部使用的变量。内部变量不能与功能块的I/O参数直接建立联系,例如,不能从功能块的输入参数直接获得数据,也不能将数据直接从功能块输出。

输入变量是从功能块外面指定的输入参数中获得数据。每个功能块都有一个默认输入变量EN,EN为使能变量,功能块创建时自动生成,不需要用户定义,当EN处于ON时,功能块执行。

输出变量可以将数据赋给功能块外面指定的输出参数。每个功能块都有一个默认输出变量ENO,ENO为使能输出变量,功能块创建时自动生成,不需要用户定义,功能块执行时,ENO处于ON状态。

外部变量是由CX-P定义保存的系统变量(条件标志和一些辅助区域位),或用户定义的全局符号(可用于每个实例中)。

2.算法

算法是依靠梯形图的编程来完成的。依靠算法可以完成某个特定的控制功能。

功能块示意图如图1.9所示,如要实现接通输入点0.00之后5s接通输出100.00,梯形图程序如图(a)所示。如要把这个功能做成功能块的形式,以便今后编程时调用,必须将其中的输入、输出甚至中间量都定义成为如图(b)所示变量形式。在每次调用功能块的时候,无须知道内部结构,只要知道该功能块能实现的控制功能,以及输入、输出变量对应完成的功能,就可以直接使用了,如图(c)所示。

图1.9 功能块示意图

1.4.4 结构化文本

随着PLC技术的发展,PLC的高级功能越来越多,如果仍然用梯形图来实现,会很不方便。为了方便用户使用PLC的数学运算、数据处理、图形显示、打印报表等功能,许多大中型或先进的PLC都配备了结构文本(ST)编程语言。

ST语言(Structure Text Language)是符合工业控制标准编程语言IEC61131-3的高级编程语言,是用结构化的语句编写程序的。在大、中型PLC控制系统中,常采用这种编程方式来表达控制系统中各变量的关系。

ST语言类似于PASCAL语言,但在表达式和语句的种类方面都做了简化。一个ST程序由多条语句组成,而一个语句由变量和表达式组成。通过编写不同的语句建立不同的控制关系。

表达式包含着运算符和操作数(变量或常数)。运算符包括算术运算、逻辑运算和比较运算等算法。语句是由表达式构成的,可以分为赋值语句和控制语句。赋值语句将表达式计算的结果保存于变量中。控制语句包含选择语句、循环语句和条件语句等。

一个结构文本程序如图1.10所示,此例包含CASE(选择)语句和IF(条件)语句。

图1.10 结构文本程序示例

用户除了可以创建梯形图FB之外,熟悉高级编程的技术人员还可以创建ST语言的FB。CX-P为熟悉不同编程语言的用户提供了不同的编程平台。懂得高级语言的用户编写好复杂的ST语言功能块后,其他用户甚至不熟悉ST语言的操作人员也可以使用该功能块,这就大大降低了对操作人员所使用编程语言的限制。另外,使用高级语言编程,可以轻松完成复杂的数学运算。若用梯形图语言编辑复杂的算术运算功能,需要编写很多条程序,占用更多的程序容量;而用ST语言来写,表达式就可以代替梯形图中的复杂程序,要方便得多。

1.5 PLC的循环扫描工作方式

在继电器控制电路中,当某些梯级同时满足导通条件时,这些梯级中的继电器线圈会同时通电,也就是说,继电器控制电路是一种并行工作方式。PLC是采用循环扫描的工作方式,在PLC执行用户程序时,CPU对梯形图自上而下、自左向右地逐次进行扫描,程序的执行是按语句排列的先后顺序进行的。这样,PLC梯形图中各线圈状态的变化在时间上是串行的,不会出现多个线圈同时改变状态的情况,这是PLC控制与继电器控制很重要的区别。

PLC采用循环扫描的工作方式,它可以看做是一种由系统软件支持的扫描设备,不论用户程序运行与否,都周而复始地进行循环扫描,并执行系统程序规定的任务。每一个循环所经历的时间称为一个扫描周期。每个扫描周期又分为几个工作阶段,每个工作阶段完成不同的任务。

PLC上电后首先进行初始化,然后进入循环扫描工作过程。完成一次扫描的任务及过程可归纳为四个工作阶段:公共处理→程序执行→I/O刷新→外设端口服务,各阶段完成的任务如下。

1.公共处理阶段

在每一次扫描开始之前,CPU都要进行复位监视定时器、硬件检查,以及用户内存检查等操作。如果有异常情况,除了故障显示灯亮以外,还判断并显示故障的性质。如果属于一般性故障,则只报警不停机,等待处理;如果属于严重故障,则停止PLC的运行。公共处理阶段所用的时间一般是固定的,不同机型的PLC有所差异。

2.程序执行阶段

在程序执行阶段,CPU对用户程序按先上后下、先左后右的顺序逐条地进行扫描,即解释和执行。CPU从输入映像寄存器(每个输入继电器对应一个输入映像寄存器)和元件映像寄存器(元件映像寄存器与各种内部继电器、输出继电器对应)中读取各继电器当前的状态,根据用户程序给出的逻辑关系进行逻辑运算,运算结果再写入元件映像寄存器中。

执行用户程序阶段的扫描时间不是固定的,其原因在于用户程序的指令条数多少不同,或指令种类不同。而且,在不同时段执行用户程序的扫描时间也不尽相同。

3.I/O刷新阶段

在I/O刷新阶段,CPU要做两件事情。其一,从输入电路中读取各输入点的状态,并将此状态写入输入映像寄存器中,也就是刷新输入映像寄存器的内容。自此输入映像寄存器就与外界隔离,无论输入点的状态怎样变化,输入映像寄存器的内容都保持不变,一直到下一个扫描周期的I/O刷新阶段,才会写进新内容。这就是说,各输入映像寄存器的状态要保持一个扫描周期不变。其二,将所有输出继电器的元件映像寄存器的状态传送到相应的输出锁存电路中,再经输出电路的隔离和功率放大部分传送到PLC的输出端,驱动外部执行元件动作。

I/O刷新阶段的时间长短取决于I/O点数的多少。

4.外设端口服务阶段

在外设端口服务阶段中,CPU完成与外设端口连接的外围设备的通信处理。

完成上述各阶段的处理后,又返回公共处理阶段,周而复始地进行扫描。

PLC的循环扫描工作方式也为PLC提供了一条死循环自诊断功能。在PLC内部设置了一个监视定时器WDT(看门狗),WDT定时时间可以使用默认值,也可由用户在PLC的系统设定区设定,其定时时间可设置为大于用户程序的扫描周期。PLC在每个扫描周期的公共处理阶段将监视定时器复位。正常情况下,监视定时器不会动作。如果由于CPU内部故障使程序执行进入死循环,那么扫描周期将超过监视定时器的定时时间。这时监视定时器WDT动作使PLC运行停止,以提示用户排查故障。

图1.11描述了信号从输入端子到输出端子的传递过程。在I/O刷新阶段,CPU从输入电路的输出端读出各输入点的状态,并将其写入输入映像寄存器中。在紧接着的下一个扫描周期用户程序执行阶段,CPU从输入映像寄存器和元件映像寄存器中读出各继电器的状态,并根据此状态执行用户程序,执行结果再写入元件映像寄存器中。在I/O刷新阶段,将元件映像寄存器的状态写入输出锁存电路,再经输出电路传递到输出端子。

对图1.11,在某一个扫描周期里执行用户程序的具体过程:执行第一个梯级时,CPU从输入映像寄存器中读出0.00号输入继电器的状态,设其为1,再读出0.01号输入继电器的状态,设其为0。由0.00和0.01的状态结算出100.00号继电器当前的状态是1。若此前100.00的状态是0,则CPU用当前的1去改写元件映像寄存器中100.00对应的位。下一步再执行第二个梯级,从元件映像寄存器中读出100.00 号继电器的状态1(即前一步存入的),结算出100.01号继电器的状态是1。若此前100.01的状态是0,则CPU用当前的1去改写元件映像寄存器中100.01对应的位。本次扫描I/O刷新的结果是100.00为1,100.01为1。

图1.11 PLC信号的传递过程

由上述分析可得出,执行用户程序的扫描阶段的特点:

(1)在执行用户程序的过程中,输入映像寄存器的状态不变;

(2)元件映像寄存器的内容随程序的执行在改变,前一步的结算结果随即作为下一步的结算条件,这一点与输入映像寄存器完全不同;

(3)程序的执行是由上而下进行,所以不同梯级中的继电器线圈及其触点的状态不可能同时改变。而继电器控制电路中,若几个梯级中的线圈都满足接通条件,那么这些线圈会同时通电。

PLC的I/O滞后现象:

由于PLC采用循环扫描的工作方式,而且对输入和输出信号只在每个扫描周期的I/O刷新阶段集中输入、集中输出,所以必然会产生输出信号相对输入信号的滞后现象。扫描周期越长,滞后现象越严重。但是一般扫描周期只有十几毫秒,最多几十毫秒。在慢速控制系统中,可以认为输入信号一旦变化就立即能进入输入映像寄存器中,其对应的输出信号也可以认为是及时的,而在要求快速响应的控制中就成了需要解决的问题。为了弥补此不足,PLC设置了立即刷新指令,在程序中执行该指令,可随时对指定的I/O进行刷新,缩短了输出滞后输入的时间,提高了I/O响应速度。

对一般工业控制设备,对输入信号变化较慢的系统来说,这种滞后现象是完全允许的。若需要输出对输入做出快速响应的场合,则可采用快速响应模块、高速计数模块,以及中断处理等措施来尽量减少滞后时间。

1.6 PLC的主要性能指标

在描述PLC的性能时,经常用到以下术语:位(bit)、数字(digit)、字节(byte)及字(word)。位指二进制数的一位,仅有1、0两种取值。一个位对应PLC的一个继电器,某位的状态为1或0,分别对应该继电器线圈得电(ON)或失电(OFF)。4位二进制数构成一个数字,这个数字可以是0000~1001(十进制数),也可是0000~1111(十六进制数)。2个数字或8位二进制数构成1字节,2字节构成一个字。在PLC术语中,字也称为通道。一个字含16位,或说一个通道含16个继电器。

PLC的主要性能指标有以下几方面。

1.存储容量

系统程序存放在系统程序存储器中。这里说的存储容量指的是用户程序存储器的容量。用户程序存储器容量决定了PLC可以容纳用户程序的长短,一般以字为单位来计算。每1024字为1KB。中、小型PLC的存储容量一般在20KB以下,大型PLC的存储容量可达到256KB以上。也有PLC用存放用户程序的指令条数来表示容量。

2.输入/输出点数

I/O点数即PLC面板上的输入、输出端子的个数。I/O点数越多,外部可接的输入器件和输出器件就越多,控制规模就越大。因此I/O点数是衡量PLC性能的重要指标之一。

3.扫描速度

扫描速度是指PLC执行程序的速度,是衡量PLC性能的重要指标。一般以扫描1K字所用的时间来衡量扫描速度。PLC用户手册一般给出执行各条指令所用的时间,可以通过比较各种PLC执行相同的操作所用的时间,来衡量扫描速度的快慢。

4.编程指令的种类和条数

编程指令的种类和条数是衡量PLC能力强弱的主要指标。编程指令种类及条数越多,其功能就越强,即处理能力、控制能力越强。

5.存取器的种类和数量

内部器件包括各种继电器、计数器/定时器、数据存储器等。其种类越多,数量越大,存储各种信息的能力和控制功能越强。

6.扩展能力

PLC的扩展能力表现在以下几个方面。大部分PLC可以用I/O扩展单元进行I/O点数的扩展;有的PLC可以使用各种功能模块进行功能扩展等。

7.智能单元的数量

PLC不仅能完成开关量的逻辑控制,而且利用智能单元可完成模拟量控制、位置和速度控制及通信联网等功能。智能单元种类的多少和功能的强弱是衡量PLC产品水平高低的一个重要指标。各个生产厂家都非常重视智能单元的开发,近年来智能单元的种类日益增多,功能越来越强。

1.7 PLC产品及资料下载

从20世纪70年代初至今40年的时间里,PLC生产已发展成为一个巨大的产业,主要厂商集中在欧美和日本。全世界有上百个PLC制造厂家中,几家举足轻重的公司是日本的欧姆龙(OMRON)和三菱(Mitsubish)公司,美国的罗克韦尔(Rockwell)自动化所属的A-B(Allen & Bradly)公司,德国的西门子(Siemens)公司,法国的施耐德(Schneider)公司。欧、美的大型PLC的名气较大,日本则以高性价比的小型机著称。

(1)欧姆龙公司PLC。日本的小型PLC很有特色,在小型机领域中颇具盛名。某些用欧美的中型或大型机才能实现的控制,用日本的小型机就可以解决。在开发较复杂的控制系统方面明显优于欧美的小型机,所以格外受用户欢迎。在中国OMRON的小型机产品销量居首位。

OMRON公司的PLC产品,大、中、小型俱全。

小型机:CPM1A/CPM2A、CP1H/CP1L都属小型机。前些年,CPM1A/CPM2A系列以其高性价比的优势在我国的销量相当好,现在已被其升级产品、性价比更高的CP1H/CP1L系列所取代。

中型机:C200H、C200Hα、CJ1M系列。C200Hα是C200H的升级产品,近年畅销的高性能中型机,有品种齐全的通信模块,是适应信息化的PLC产品。配置齐全的I/O模块和高功能模块,具有较强的通信和网络功能。CJ1M系列PLC是紧凑型的,比其他中型机具有更小的体积、更灵活的配置和更高的性能。

大型机:C1000H/C2000H、CV/CVM1系列、CS1系列等。CS1尽管是中型机C200Hα的后续机型,但就其功能而言,CS1实际上是OMRON大、中型机的代表机型。CS1推出后,原来需要大型机的场合CS1就胜任了,本文将其列为大型机。

值得注意的是,小型机CP1、中型机CJ1和大型机CS1的内部存储器设置趋向一致,存储器的种类几乎是一样的。当然,同一种内部存储器里会有所不同的,例如,因为功能的不同,三种PLC的CIO区划分有差异;同一种内部存储器,在数量上,一般CS1要多于CJ1和CP1。

目前欧姆龙主推的小、中和大机型为CP1H/CP1L、CJ1和CS1系列。CP1H/CP1L具有与CJ1/CS1几乎一样的系统内部存储器结构,是集CJ1/CS1各基本功能为一体的小型PLC。使用CJ1/CS1相同的命令语言体系,可以简单共享CJ1/CS1的梯形图。

欧姆龙中国有限公司的工业自动化网站为http://www.fa.omron.com.cn,点击“软件及资料下载”进入下载中心,可以下载欧姆龙PLC的中英文资料和软件。另外,可以拨打欧姆龙中国有限公司的免费技术热线:800-820-4535,询问技术问题。

(2)三菱公司PLC。三菱公司的PLC也是较早进入中国市场的产品,其小型机有FX0N、FX1S、FX2N、FX3U、FX3G。三菱公司的中、大型机为Q系列,有多种型号,如Q02H、Q06H、Q12H等。

在网站http://www.mitsubishielectric-automation.cn/download/download.asp可以下载三菱PLC和其工控产品的资料。

(3)罗克韦尔自动化的A-B(Allen & Bradly)公司PLC。在进入我国的大型PLC中,美国A-B公司的产品几乎占到一半。罗克韦尔自动化公司的PLC产品主要有PLC—5、MicroLogix、SLC500可编程控制器和ControlLogix系列可编程控制器。

在网站http://www.rockwellautomation.com.cn可以下载罗克韦尔PLC和其工控产品的中文资料。

(4)德国的西门子PLC。德国的西门子的电子产品以性能精良而久负盛名。在中、大型PLC产品领域与美国的A-B公司齐名。西门子目前销售机型为S7系列机,有S7—200(小型)、S7—300(中型)及S7—400(大型)。

在网站http://www.ad.siemens.com.cn可以下载西门子PLC和其工控产品的资料。

(5)施耐德公司PLC。施耐德公司公司有三家PLC制造商:Modicon、Square D与Telemecanique(TE)公司。

http://www.telemecanique.com/en/functions_discovery/function_5_11.htm可以下载施耐德PLC的英文资料。在http://www.schneider-electric.com.cn/schneider/index.jsp的“下载中心”可以下载施耐德工控产品的中文资料。

网站http://www.plcs.net是一个PLC专业网站,在其“Learn PLCs”栏目中点击“Link”可以连接到全世界的PLC厂家的网站和致力于PLC标准化的组织The PLCopen的网站。

在中国工控网的“PLC”专栏可以下载PLC的资料和软件,查询PLC的销售商和报价,在PLC论坛可以交流PLC应用中遇到的问题。

习 题

1.PLC有哪些主要特点?

2.比较PLC控制和继电器控制的优缺点。

3.为什么称PLC的继电器是软继电器?和物理继电器相比,软继电器在使用上有何特点?

4.PLC常采用哪几种编程语言?各有何特点?

5.继电器控制和PLC控制的梯形图有何区别?

6.整体式和组合式PLC主要由哪几个部分组成?简述各部分作用。

7.OMRON PLC的编程工具通常有哪几种?各有何特点?CP1H系列PLC的编程是怎样实现的?

8.CP1H系列PLC属于何种结构的PLC?它与CJ1/CS1系列PLC相比又有哪些异同点?

9.什么是PLC的扫描周期?其扫描过程分为哪几个阶段,各阶段完成什么任务?

10.PLC控制与继电器控制的工作方式有何不同?执行用户程序的扫描阶段的特点是什么?

11.PLC主要指标有哪些?各指标的意义是什么?