(共284张PPT)
欢迎学习
《工厂电气控制与可编程控制器》
下篇
可编程控制器技术
选用教材:
主讲:黄晓红
授课班级:电气033
2005.8-2006.1
可编程控制器
5 概述
6 基本逻辑指令
7 步进顺控指令
8 功能指令
9 PLC控制系统的设计与应用
10手持编程器及编程软件的使用
5 可编程序控制器概述
FX2N系列可编程序控制器是日本三菱公司继F1、F2、FX2系列可编程序控制器之后推出的新产品。它采用整体式结构,按功能可分为基本单元、扩展单元、扩展模块及特殊适配器等四种类型产品。基本单元内有CPU、存储器、输入/输出(I/O)、电源等,是一个完整的PC机,可以单独使用。
可编程控制器的产生与发展
可编程控制器简称PLC, 是20世纪70年代以来在继电—接触器控制系统中引入微型计算机控制技术后发展起来的一种新型工业控制设备。
它的引入避免了继电器控制系统的下列缺点:
(1) 硬接线电路的故障率高。
(2) 电器触头的使用寿命有限。
(3) 诊断、 排除故障的速度慢。
(4) 以硬接线实现控制逻辑, 当控制逻辑需要修改时难于改动接线。
PLC产品以软件控制取代了常规电气控制系统中的硬件控制, 具有功能强, 可靠性高, 配置灵活, 使用方便, 体积小, 重量轻等优点, 目前已在工业生产的各个领域获得广泛使用, 成为工业控制的支柱产品。
国际电工委员会(IEC)对可编程控制器的定义是:
可编程逻辑控制器是一种数字运算操作的电子系统, 专为在工业环境下应用而设计, 它采用了可编程序的存储器, 用来在其内部存储执行逻辑运算、 顺序控制、 定时、 计算和算术运算等操作的指令, 并通过数字式和模拟式的输入和输出来控制各类机械的生产过程。
可编程控制器及其有关外围设备都按易于与工业系统联成一个整体, 易于扩充其功能的原则设计。
现代可编程控制器产品的技术特点:
(1) 高可靠性与高抗干扰能力。 PLC产品是专为工业控制环境设计的, 机内采取了一系列抗干扰措施, 其平均无故障时间可高达4~5万小时, 远远超过采用硬接线的继电—接触器控制系统, 也远远高于一般的计算机控制系统。 PLC产品在软件设计上采取了循环扫描、 集中采样、 集中输出的工作方式, 设置了多种实时监控、 自诊断、 自保护、 自恢复程序; 在硬件设计上采用了屏蔽、 隔离、 滤波、 联锁等抗干扰电路结构, 并实现了整体结构的模块化。 PLC适应于恶劣的工业环境, 这是它优于普通微机控制系统的首要特点。
(2) 通用、 灵活、 方便。 PLC作为专用微机控制系统产品, 采用了标准化的通用模块结构, 其I/O电路又采用了足够的抗干扰设计, 既可以使用模拟量, 也可以使用开关量, 现场信号可以直接接入, 用户不需要进行硬件的二次开发, 控制规模又可以根据控制对象的信号数量与所需功能进行灵活方便的模块组合, 具有接线简单, 使用、 维护十分方便的优点。
(3) 编程简单, 易于掌握。 这是PLC产品优于普通微机控制系统的另一个特点。 可编程控制器的程序编写一般不需要高级语言, 其通常使用的梯形图语言类似于继电器控制原理图, 使未掌握专门计算机知识的现场工程技术人员也可以很快熟悉和使用, 这种面向问题和控制过程的编程语言直观、 清晰、 修改方便且易于掌握。 当然, 不同机型PLC在编程语言上是多样化的, 但同一档次不同机型的控制功能可以十分方便地相互转换。 ?
(4) 开发周期短。 设计一套常规继电器控制系统需顺序进行电路设计、 安装接线、 逻辑调试三个步骤, 只有进行完前一步才能进入下一步, 开发周期长, 线路修改困难, 工程越大这一缺点就越明显。 而使用PLC完成一套电气控制系统, 只要电气总体设计完成, I/O点分配完毕, 软件设计模拟调试与硬件设计施工就可以同时分别进行。 在软件调试方面, 控制程序可以反复修改; 在硬件施工方面, 安装接线只涉及输入和输出装置, 不涉及复杂的继电器控制线路, 硬件投资较少, 故障率低。 在软、 硬件分别完成之后的正式调试中, 控制逻辑的修改也仅涉及软件修改, 大大缩短了开发周期。
(5) 功能强, 体积小, 重量轻。 由于PLC产品是以微型计算机为核心的, 所以具有许多计算机控制系统的优越性。 以日本三菱公司的FX2N-32MR小型可编程控制器为例, 该PLC的外型尺寸是87 mm×40 mm×90 mm, 重量0.65 kg, 内部包含各类继电器3228个, 状态寄存器1000个, 定时器256个, 计数器241个, 数据寄存器8122个, 耗电量为150 W, 其应用指令包括程序控制、 传送比较、 四则逻辑运算、 移位、 数据(包括模拟量)处理等多种功能, 指令执行时间为每步小于0.1 μs, 无论在体积、 重量上, 还是在执行速度、 控制功能上, 都是常规继电器控制系统所无法相比的。
PLC产品按I/O点数和存储容量可分为小型、 中型和大型PLC三个等级。 小型PLC的I/O点数在256点以下, 存储容量为2 k步, 具有逻辑控制、 定时、 计数等功能, 目前的小型PLC产品也具有算术运算、 数据通信和模拟量处理功能。 中型PLC的I/O点数在256~2048点之间, 存储容量为2~8 k步, 具有逻辑运算、 算术运算、 数据传送、 中断、 数据通信、 模拟量处理等功能, 用于多种开关量、 多通道模拟量或数字量与模拟量混合控制的复杂控制系统。
大型PLC的I/O点数在2048点以上, 存储容量达8 k步以上, 具有逻辑运算、 算术运算、 模拟量处理、 联网通信、 监视记录、 打印等功能, 有中断、 智能控制、 远程控制能力, 可完成大规模的过程控制, 也可构成分布式控制网络, 完成整个工厂的网络化自动控制。
基本单元型号表示方法:
FX2N-××M×
| |
1 2
式中,1部分用两位数表示输入/输出(I/O)的总点数,有16、24、32、48、64和80六种;2部分用字符表示输出类型:R表示继电器触点输出,T表示晶体管输出,S表示双向晶闸管输出。
例如,FX2N-32MR表示是FX2N系列的基本单元,输入/输出(I/O)总点数为32点,其中16点为直流24 V输入,16点为继电器输出。
PLC的基本组成与功能
PLC实质上是一种为工业控制而设计的专用微机控制系统, 因此其硬件结构与微型计算机控制系统相似, 但输入、 输出电路要求具有更强的抗干扰能力。 一套可编程控制器在硬件上由基本单元(主机)、 I/O扩展单元及外围设备组成, 通过各自的端口连成一个整体。 图5-1为PLC的硬件结构图。
图 5-1 PLC的硬件结构图
1. PLC基本单元
PLC基本单元是以CPU为核心的一台工业控制专用微机系统, 主要由CPU、 存储器和I/O接口电路组成。
CPU的功能是:
(1) 接收编程器、 PC机或其他外围设备输入的用户程序、 数据等信息。
(2) 扫描接收现场输入信号, 并存入指定内部继电器或寄存器。
(3) 读取、 解释用户程序, 执行用户控制程序, 获得正确的逻辑运算或算术运算结果。
(4) 更新有关的内部继电器或寄存器, 并将运算结果传送至输出电路, 以实现对现场设备的准确动作控制。
(5) 如需输出打印或状态监控, 还需将有关信息传送至外围设备。
不同档次的PLC产品内部使用的CPU芯片差异较大, 三菱公司FX2系列小型PLC使用的微处理器是16位8096单片机, 美国AB公司的PLC-3型大型PLC采用的微处理器是ADM-2900高速芯片。
存储器的功能是:
(1) 系统存储器(ROM区) 用于储存PLC产品生产厂编写的各种系统工作程序, 用户不能更改或调用。
(2) 用户存储器(RAM区) 用来储存用户编写的控制程序和用户数据, 该区域用户可读可写, 可随意增加或删减。 在PLC中一般采用锂电池对用户程序进行掉电保护(一般能保持5~10年, 经常带负载可保存2~5年)。
I/O接口电路的功能是:
(1) 输入接口电路的作用是将来自现场设备的输入信号通过电平变换、 速度匹配、 信号隔离和功率放大, 转换成可供CPU处理的标准电平信号。 图5-2为PLC产品中常见的一种直流24 V传感器输入电路。 如输入器件为按钮、 开关类无源器件, +24 V端子仍需接24 V电源, 但输入按钮或开关则可直接连在输入端子和COM端之间, 电路更为简单。 只要程序运行, PLC内部就可以识别输入端子和COM之间的通或断。
图5-2 直流24 V输入电路
(2) 输出接口电路的作用是将CPU的程序运行结果经过电平转换、 隔离和功率放大, 转换成能带一定负载的具体的输出状态。 基本单元上的输出信号一般为开关量, 输出接口电路分继电器输出型、 晶体管输出型和晶闸管输出型三种。
图5-3 PLC的输出接口电路
(a) 继电器输出型; (b) 晶体管输出型; (c) 晶闸管输出型
2. PLC的扩展单元
每个系列的PLC产品都有一系列与基本单元相匹配的扩展单元, 以便根据所控制对象的控制规模大小来灵活组成电气控制系统。 扩展单元内部不配备CPU和存储器, 仅扩展输入/输出电路, 各扩展单元的输入信息经扩展连接电缆进入主机总线, 由主机的CPU统一处理, 执行程序后, 需要输出的信息也由扩展连接电缆送至各扩展单元的输出电路。 PLC处理模拟量输入/输出信号时, 要使用模拟量扩展单元, 这时的输入接口电路为A/D转换电路, 输出接口电路为D/A转换电路。
3. PLC的外围设备
小型PLC最常用的外围设备是编程器和PC机。 编程器的功能是完成用户程序的编制、 编辑、 输入主机、 调试和执行状态监控, 是PLC系统故障分析和诊断的重要工具。 PLC的编程器主要由键盘、 显示屏、 工作方式选择开关和外存储器接口等部件组成, 按功能可分为简易型和智能型两大类。 以三菱FX2N系列PLC为例, 它可以使用手持式简易编程器FX2N-20P-E-SETO编程, 也可以使用更高级的智能型图形编程器GP-80FX-E来编程, 后者的功能更强, 但价格更高。
由于PLC产品一般在程序调试或需要监控时才插上编程器, 当电气控制系统正常运行时不必使用编程器, 所以目前对PLC编程在许多场合采用了个人电脑(装载专用编程软件)加PC-PLC专用连接电缆, 而不使用专用编程器的编程方法, 即用计算机键盘通过屏幕对话完成图形编程、 图形显示、 通信联网、 修改调试、 输出打印等任务。 目前各PLC公司均开发有相应的编程软件, 另外, 利用个人电脑还可以运行更多的工业控制软件。
图5-4为三菱FX2N小型PLC产品主机及扩展单元示意图。 图中FX2N-32MR为基本单元, 带有32个I/O点(16入16出), M表示主机, R表示该单元为继电器输出型; FX2N-32ER为32点开关量扩展单元, E表示该单元为扩展单元; FX2N-2AD为两路模拟量输入扩展单元; FX2N-2DA为两路模拟量输出扩展单元。 PLC产品的扩展单元种类很多, 扩展单元的功能及与主机的配合细节可查阅有关手册。
图 5-4 三菱FX2N小型PLC产品示意图
PLC的性能规格与内部资源
PLC的性能规格
FX2N系列PLC的性能规格如下表所示。
FX2N系列PLC的主要技术性能
续表
续表
FX2N系列输入类型为直流输入,采用直流(DC 24 V)供电。输出类型有继电器、晶体管、双向晶闸管三种输出形式。继电器输出可靠性高,价格低,适用电压范围广,既可控制交流负载又可控制直流负载,因而使用广泛;但因为有触点输出,尤其在感性负载时继电器触点寿命较短,动作响应时间较长(10 ms以下),因而不适应要求高速通断、快速响应的工作场合。晶体管输出是无触点输出,动作响应时间短(0.5 ms以下),用于控制直流负载。双向晶闸管输出亦是无触点输出,动作响应时间较短,用于控制交流负载。晶体管和双向晶闸管输出过载、过压能力较差,价格高,因而适应于要求高速通断、快速响应的工作场合。
PLC的内部资源
各种不同型号和档次的PLC具有不同数量和功能的内部资源, 但构成PLC基本特征的内部软元件是类似的。 现以 FX2N系列小型PLC为例, 介绍PLC的内部资源。
PLC是按照电气继电控制线路的设计思想,借助于大规模集成电路和计算机技术开发的一种新型工业控制器。使用者可以不必考虑PC内部元器件的具体组成线路,可以将PC看成是由各种功能元器件组成的工业控制器,利用编程语言对这些元器件线圈、触点进行编程以达到控制要求,为此使用者必须熟悉和掌握这些元器件的功能、编号及其使用方法。每种元器件都用特定的字母来表示,如X表示输入继电器、Y表示输出继电器、M表示辅助继电器、T表示定时器、C表示计数器、S表示状态元件等,并对这些元器件给予规定的编号。
1.FX2N编程元件的分类及编号
FX2N系列PLC具有数十种编程元件,FX2N系列PLC编程元件的编号分为两部分,第一部分是代表功能的字母,如输入继电器用“X”表示,输出继电器用“Y”表示;第二部分为数字,为该类器件的序号,FX2N系列PLC中输入继电器及输出继电器的序号为八进制,其余器件的序号为十进制。
2. 输入继电器
FX2N系列可编程控制器输入继电器编号范围为X0~X177(128点)。
输入继电器与PLC的输入端相连,是PLC接收外部开关信号的元件,如开关、传感器等输入信号,输入继电器必须由外部信号来驱动,不能用程序驱动。它可提供无数对常开接点、常闭接点,如图5.1所示。这些接点在PLC内可以自由使用。FX2N型PLC输入继电器采用八进制地址编号,最多可达128点(X0~X177)。
3. 输出继电器(Y0~Y177)
输出继电器是PLC用来输送信号到外部负载的元件,输出继电器只能用程序指令驱动,如图5.1所示。每一个输出继电器有一个外部输出的常开触点。而内部的软接点,不管是常开还是常闭,都可以无限次地自由使用,输出继电器的地址是八进制,最多可达128点。
图5-5 输入、输出继电器示意图
4. 辅助继电器(M)
PLC内部有很多辅助继电器,辅助继电器与输出继电器一样只能用程序指令驱动,外部信号无法驱动它的常开常闭接点,在PLC内部编程时可以无限次地自由使用。但是这些接点不能直接驱动外部负载,外部负载必须由输出继电器的外部接点来驱动。
在逻辑运算中经常需要一些中间继电器作为辅助运算用,这些器件往往用作状态暂存、移位等运算。另外,辅助继电器还具有一些特殊功能。下面是几种常见的辅助继电器。
1) 通用辅助继电器M0~M499(500点)
通用辅助继电器按十进制地址编号(在FX型PLC中除了输入/输出继电器外,其他所有器件都是十进制编号)。
2) 断电保持辅助继电器M500~M1023(524点)
PLC在运行时若发生停电,输出继电器和通用辅助继电器全部成为断开状态。上电后,除了PLC运行时被外部输入信号接通的以外,其它仍断开。不少控制系统要求保持断电瞬间状态。断电保持辅助继电器就是用于此场合的,断电保持是由PLC内装锂电池支持的。
3) 特殊辅助继电器M8000~M8255(256点)
PLC内有256个特殊辅助继电器,这些特殊辅助继电器各自具有特定的功能。通常分为下面两大类。
(1) 只能利用其接点的特殊辅助继电器。线圈由PLC自动驱动,用户只可以利用其接点。例如:
M8000为运行监控用,PLC运行时M8000接通。
M8002为仅在运行开始瞬间接通的初始脉冲特殊辅助继电器。
M8012为产生100 ms时钟脉冲的特殊辅助继电器。
(2) 可驱动线圈型特殊辅助继电器。用户激励线圈后,PLC作特定动作。例如:
M8030为锂电池电压指示灯特殊辅助继电器,当锂电池电压跌落时,M8030动作,指示灯亮,提醒PLC维修人员赶快调换锂电池。
M8033为PLC停止时输出保持辅助继电器。
M8034为禁止全部输出特殊辅助继电器。
M8039为定时扫描特殊辅助继电器。
需要说明的是,未定义的特殊辅助继电器可在用户程序中使用。辅助继电器的常开常闭接点在PLC内可无限次地使用。
5. 状态器(S)
状态器(S)是构成状态转移图的重要器件,它与后述的步进顺控指令配合使用。通常,状态器软件有下面五种类型:
(1) 初始状态器S0~S9,共10点。
(2) 回零状态器S10~S19,共10点。
(3) 通用状态器S20~S499,共480点。
(4) 保持状态器S500~S899,共400点。
(5) 报警用状态器S900~S999,共100点。这100个状态器器件可用作外部故障诊断输出。
S0~S499没有断电保持功能,但是用程序可以将它们设定为有断点保持功能的状态。状态器的常开常闭接点在PLC内可以使用,且使用次数不限。不用步进顺控指令时,状态器S可以作辅助继电器M在程序中使用。此外,每一个状态继电器还提供一个步进触点,称为STL触点,用符号—[ ]—表示,在步进控制的梯形图中使用。
6. 定时器(T)
PC中定时器T相当于继电器控制系统中的延时继电器,它可提供无限对常开延时触点、常闭延时触点供编程使用。定时器元件号按十进制编号,设定时间由编程时设定系数K决定。T0~T199为0.1 s定时器,设定值范围为0.1~3276.7 s,最小单位为0.1 s。T200~T245为0.01 s定时器,设定值范围为0.01~327.67 s。除此之外,还有积算型定时器等。
7. 计数器(C)
计数器元件号按十进制编号,计数器计数次数由编程时设定的系数K决定。它可提供无限对常开触点、常闭触点供编程使用。C0~C99为通用加计数器,计数范围为1~32 767。C100~C199为停电保持加计数器,计数范围为1~32 767。除此之外,还有可逆、加、减计数器等。
PLC的基本指令编程法
PLC是一套专用的微型计算机的控制系统, 该系统具有继电器、 定时器、 计数器或其他内部电子器件的功能, 低端用户不需要学习高级的计算机语言, 只要采用简单的类似于继电器电路的梯形图语言就可以编制控制程序, 指令系统容易掌握。 而将编程器或PC机与PLC主机相连, 又可方便地把梯形图送入PLC内存并进行运行状态监控, 所以操作使用也十分简便。
PLC在运行状态, 采用周期循环扫描方式执行用户程序, 一个用户程序的扫描周期由三个阶段构成:
(1) 输入采样阶段。 本阶段检测每个输入触点的状态(通为“1”, 断为“0”), 然后顺序存入输入映像寄存器。
(2) 程序执行阶段。 对用户梯形图程序按先左后右、 从上到下的顺序, 逐句执行指令, 包括从输入映像寄存器和各种内部寄存器中读取状态和数据, 完成程序要求的运算和把结果写入有关内部寄存器或输出继电器。
(3) 输出刷新阶段。 将输出继电器状态输出至输出锁存器, 经隔离、 功放、 输出端子去驱动负载。
程序执行一次的时间称为扫描周期, 一个扫描周期可以分为上述输入采样、 程序执行、 输出刷新三个阶段, 小型PLC的扫描周期在十几毫秒至几十毫秒之间。
1. 输入触点X的编程
工业控制系统输入电路中的选择开关、 按钮、 限位开关等在梯形图中以输入触点表示, 在编程时输入触点X可由常开 和常闭 两种指令来编程, 但梯形图中的常开或常闭指令与外电路中X实际接常开还是常闭触头并无对应关系, 无论外电路使用什么样的按钮、 旋钮、 限位开关, 无论使用的是这些开关的常开或常闭点, 当PLC处于RUN方式时, 扫描输入只遵循如下规则:
(1) 梯形图中的常开触点 X与外电路中X的通断逻辑相一致。 如外接线中X5是导通的(无论其外部物理连接是常开点还是常闭点), 程序中的 X5即处理为闭合(ON)。
反之, 如外部X5连线断开, 则程序中的 X5就处理为断开(OFF)。
(2) 梯形图中的常闭触点 X与外电路中X的通断逻辑相反。 如外接线中X5是导通的(无论其外部物理连接是常开点还是常闭点), 程序中的 X5处理为断开(OFF)。 反之, 如外部X5连线断开, 则程序中的 X5就处理为闭合(ON)。 梯形图中几个触点串联表示“与”操作, 几个触点并联表示“或”操作。
按上述规则, 将PLC应用于电机的起动停车控制, 外部按图5-6接线, 则采用图5-7所示梯形图即可实现按钮X0启动, 输出Y0得电并自锁, 按钮X1停车的控制逻辑。 用一个接触器KM控制电动机的主电路见第2章。
上述两个按钮接线时均使用了常开触点, 如果工程中需连接停车按钮的常闭触点, 则图7所示梯形图中将常闭X1换成常开X1, 仍能实现控制功能。 甚至可以将启停两个按钮都连接常闭点, 只要相应修改软件逻辑即可,充分体现了应用PLC控制的方便之处。
图5-6 PLC控制的起动停车电路接线图
图5-7 起动停车梯形图
2. 输出继电器Y和内部继电器M的编程
继电器具有逻辑线圈及可以多次调用的常开触点、 常闭触点。输出继电器和普通内部继电器的简单程序如图5-8所示。
PC进入RUN方式时,输出线圈Y0通电, 相应的0#输出指示灯亮。
当接通输入触点X10后,内部线圈M100通电,M100的常闭触点断开,常开触点导通, 因此输出端Y0失电,0#灯熄灭,Y1得电,相应的1#灯亮。掉电保持型继电器M510的简单程序如图5-9所示。
图5-8 继电器简单程序
图5-9 掉电保持型继电器简单程序
初始状态(PC进入RUN后)输出线圈Y1和Y7不通电, 1#和7#输出信号灯不亮。 使输入端子X11接通一下, 梯形图中X11的常开点即闭合, 内部线圈M100通电, 常开触点M100通电闭合, 对线圈M100起自保作用。 另一个闭合的M100触点则接通输出线圈Y1, 使1#输出灯亮。 与上述动作同时, M510起类似M100的作用, 使7#输出灯亮, 这两者的差别在于如果将PC置于HALT(暂停)状态, 仍然再返回RUN方式, 或者使PC断电后再复电, 那么1#灯不会亮(因为输入端X11没有接通), 但7#灯仍然亮, 这就表明了线圈M510的锁存作用。
图5-10 普通定时器的简单程序
(a) 定时器梯形图;(b) 定时器时序图
初始状态时, 线圈Y0、 T0均不通电, 0#输出信号灯灭。 X0闭合时, 定时器T0的线圈通电, 并开始记时, K123表示计数值为常数123, 定时时间为100 ms×123=12.3 s。 当T0线圈通电够12.3 s后, 定时器动作, 其常开触点T0闭合, 使Y0输出灯亮, 从定时器开始计时到定时器触点动作, 其间延迟时间由程序确定。 定时器在计时过程中, 如果线圈失电后再通电时, 定时器相当于自动复位, 重新从预置值开始计时。
4. 计数器C的编程
以16位向上计数的普通计数器C0为例。 图5-11(a)为C0定时器的梯形图, 5-11(b)为执行该程序的时序图。
图5-11普通计数器的简单程序
(a) 计数器梯形图;(b) 计数器时序图
图5-11中, X001为计数脉冲输入端子, 计数线圈C0的计数值为常数5; X000为计数复位输入端子, 当X000为ON时, 计数线圈C0不允许计数且计数值被清零, 只有当X000为OFF时, 计数线圈C0才对X000的输入脉冲进行加1计数。 在允许计数期间, 如计数线圈C0计数够5个, 则C0动作, 常开触点闭合, Y0得电。 C0计满动作后如出现X000变为ON, 则C0的触点、 线圈均清零复位。
5. 上升或下降沿检测的编程
上升沿或下降沿检测指令用来将输入信号的上升或下降沿检出并通过线圈输出一个扫描周期的电信号。 图5-12(a)为上升、 下降沿检出的梯形图, 图5-12(b)为执行该程序的时序图。
图5-12上升、 下降沿检出的简单程序
(a) 梯形图;(b) 时序图
程序中, X000为外部信号输入端子, PLS表示取上升沿, X000信号由OFF变ON时, 内部继电器M0得电一个扫描周期; X001为另一路外部信号输入端子, PLF表示取下降沿, X001信号由ON变OFF时, 内部继电器M1得电一个扫描周期; 程序中M0与M1两个触点的任务分别是将内部继电器M50置位与复位; END为程序结束符, 用于所有主程序结束。 FX2N系列PLC的程序指令除了梯形图格式之外, 还有语句表格式, 除了上述基本指令编程法之外, 还有其他更复杂的指令编程法, 本节仅介绍PLC编程的初步知识。
6 基本逻辑指令
1. 逻辑取指令LD、LDI及线圈驱动指令OUT
LD,取指令,表示读入一个与母线相连的常开接点指令,即常开接点逻辑运算起始。
LDI,取反指令,表示读入一个与母线相连的常闭接点指令,即常闭接点逻辑运算起始。
OUT,线圈驱动指令,也叫输出指令。
图6-1 LD、LDI、OUT指令的使用说明
LD、LDI两条指令的目标元件是X、Y、M、S、T、C,用于将接点接到母线上。也可以与后述的ANB、ORB指令配合,用于分支起点。
OUT是驱动线圈的输出指令,它的目标元件是Y、M、S、T、C。对输入继电器X不能使用。OUT指令可以连续使用多次。
对定时器的定时线圈使用OUT指令后,必须设定常数K,图中K为10,对应的延时时间为1 s。因为T0~T199为0.1 s(100 ms)定时器,设定值范围为0.1~3276.7 s,定时最小单位为0.1 s,K=10,则对应定时时间为10×0.1 s;如K改为100,则对应定时时间为100×0.1 s。
对计数器的计数线圈使用OUT指令后,也必须设定常数K,K表示计数器设定次数。
2. 接点串联指令AND、ANI
AND,与指令,用于单个常开接点的串联。
ANI,与非指令,用于单个常闭接点的串联。
AND与ANI都是一个程序步指令,它们串联接点的个数没有限制,也就是说,这两条指令可以多次重复使用。AND、ANI指令的使用说明如图6-2所示。这两条指令的目标元件为X、Y、M、S、T、C。
图6-2 AND、ANI指令的使用说明
3. 接点并联指令OR、ORI
OR,或指令,用于单个常开接点的并联。
ORI,或非指令,用于单个常闭接点的并联。
OR与ORI指令都是一个程序步指令,它们的目标元件是X、Y、M、S、T、C。
对这两种指令的使用作如下说明:
(1) OR、ORI指令用于单个触点的并联连接指令。
(2) 两个以上接点串联连接电路块并联连接时,要用后述的ORB指令。
OR、ORI是从该指令的当前步开始,对前面的LD、LDI指令并联连接的。并联的次数无限制。OR、ORI指令的使用说明如图6-3所示。
图6-3 OR、ORI指令的使用说明
4. 串联电路块的并联连接指令ORB
两个或两个以上的接点串联连接的电路叫串联电路块。对串联电路块并联连接时,有如下的说明:
(1) 分支开始用LD、LDI指令,分支终点用ORB指令。
(2) ORB指令为无目标元件指令,为一个程序步;它不表示触点,可以看成电路块之间的一段连接线。
ORB有时也简称或块指令。ORB指令的使用说明如图6-4所示。
图6-4 ORB指令的使用说明之一
ORB指令的使用方法有两种:一种是在要并联的每个串联电路块后加ORB指令,详见图6-5(b)所示语句表;另一种是集中使用ORB指令,详见图6-5(c)所示语句表。对于前者分散使用ORB指令时,并联电路的个数没有限制,但对于后者集中使用ORB指令时,这种电路块并联的个数不能超过8个(即重复使用LD、LDI指令的次数限制在8次以下)。
图6-5 ORB指令的使用说明之二
(a) 梯形图;(b) 语句表一;(c) 语句表二
5. 并联电路块的串联连接指令ANB
两个或两个以上接点并联的电路称为并联电路块,分支电路并联电路块与前面电路串联连接时,应使用ANB指令。在使用时应注意:
(1) 分支的起点用LD、LDI指令,并联电路块结束后,使用ANB指令与前面电路串联。
(2) ANB指令也简称与块指令,ANB也是无操作目标元件,是一个程序步指令。
ANB指令的使用说明如图6-6所示。
图6-6 ANB指令的使用说明
(a) 梯形图;(b) 语句表
(3) 当并联的串联电路块大于等于3时,有两种编程方法。图6-7是ORB和ANB指令的编程实例。编程时,首先要找出并联电路块和串联电路块,然后正确使用这两条指令。
图6-7 ORB、ANB指令的使用说明
6. 多重输出指令MPS、MPD、MPP
MPS为进栈指令,MRD为读栈指令,MPP为出栈指令。
PLC中有11个存储运算中间结果的存储器,称之为栈存储器。进栈MPS指令就是将运算中间结果存入栈存储器,使用一次MPS指令,该时刻的运算结果就压入栈存储器第一级,再使用一次MPS指令时,当时的运算结果压入栈的第一级,先压入的数据依次向栈的下一级推移。
使用出栈MPP指令就是将存入栈存储器的各数据依次上移,最上级数据读出后就从栈内消失。
读栈MRD指令是存入栈存储器的最上级的最新数据的读出专用指令,栈内的数据不发生上、下移。
这组指令都是没有数据(操作元件号)的指令,可将触点先存储,因此用于多重输出电路。MPS、MRD、MPP指令的使用说明如图6-8、图6-9、图6-10和图6-11所示。图6-9是简单电路,即一层栈电路。
图6-8 栈存储器与多重输出指令
(a) 栈存储器;(b) 多重输出梯形图;(c) 语句表
图6-9 一层栈电路
图6-10 二层栈电路
图6-11 四层栈电路
MPS、MRD、MPP指令在使用中应注意:
(1) MPS、MRD、MPP指令用于多重输出电路。
(2) MPS与MPP必须配对使用。
(3) MPS与MPP连续使用必须少于11次。
7. 主控及主控复位指令MC、MCR
MC为主控指令,用于公共串联接点的连接。MCR叫主控复位指令,即MC的复位指令。在编程时,经常遇到多个线圈同时受一个或一组接点控制的情况。如果在每个线圈的控制电路中都串入同样的接点,则将多占用存储单元,应用主控指令可以解决这一问题。使用主控指令的接点称为主控接点,它在梯形图中与一般的接点垂直。它们是与母线相连的常开接点,是控制一组电路的总开关。MC、MCR指令的使用说明如图6-12所示。
MC指令是3程序步,MCR指令是2程序步,两条指令的操作目标元件是Y、M,但不允许使用特殊辅助继电器M。
当图6-12中的X0接通时,执行MC与MCR之间的指令;当输入条件断开时,不执行MC与MCR之间的指令。非积算定时器和用OUT指令驱动的元件复位,积算定时器、计数器、用SET/RST指令驱动的元件保持当前的状态。使用MC指令后,母线移到主控接点的后面,与主控接点相连的接点必须用LD或LDI指令。MCR使母线回到原来的位置。在MC指令区内使用MC指令称为嵌套,嵌套级N的编号(0~7)顺次增大,返回时用MCR指令,从大的嵌套级开始解除,见图6-13。
图6-12 MC、MCR指令的使用说明
(a) 梯形图;(b) 语句表
图6-13 多重嵌套主控指令
8. 置位与复位指令SET、RST
SET为置位指令,其功能是使元件置位,并保持直至复位为止。RST为复位指令,使元件复位并保持,直至置位为止。SET、RST指令的使用说明如图6-14所示。由波形图可见,X0接通后,即使再变成断开,Y0也保持接通。X1接通后,即使再变成断开,Y0也将保持断开。SET指令的操作目标元件为Y、M、S。而RST指令的操作元件为Y、M、S、D、V、Z、T、C。对同一编程元件,如例中Y0、M0、S0等,SET、RST指令可以多次使用,且不限制使用顺序,以最后执行者有效。
图6-14 SET、RST指令的使用说明
RST指令可以对定时器、计数器、数据寄存器、变址寄存器的内容清零,还可用来复位积算定时器T246~T255和计数器。现举一个RST复位指令用于计算器、定时器的例子,如图6-15所示。当X0接通时,输出接点T246复位,定时器的当前值也成为0。输入X1接通期间,T246接收1 ms时钟脉冲并计数,计到1234时Y0就动作。32位计数器C200根据M8200的开、关状态进行递加或递减计数,它对X4接点的开关数计数。输出接点的置位或复位取决于计数方向及是否达到D1、D0中所存的设定值。输入X3接通后,输出接点复位,计数器C200当前值清零。
图6-15 RST指令用于T、C的使用说明
(a) 梯形图;(b) 语句表
9. 脉冲输出指令PLS、PLF
PLS指令在输入信号上升沿产生脉冲输出,而PLF在输入信号下降沿产生脉冲输出,这两条指令都是2程序步,它们的目标元件是Y和M,但特殊辅助继电器不能作目标元件。
PLS、PLF指令的使用说明如图6-16所示。使用PLS指令,元件Y、M仅在驱动输入接通后的一个扫描周期内动作(置1),即PLS指令使M0产生一个扫描周期脉冲,而使用PLF指令,元件Y、M仅在驱动输入断开后的一个扫描周期内动作;PLF指令使元件M1产生一个扫描周期脉冲。
图6-16 PLS、PLF指令的使用说明
(a) 梯形图;(b) 语句表;(c) 时序图
10. 空操作指令NOP
NOP指令是一条无动作、无目标的程序步指令。可编程序控制器的编程器一般都有指令的插入和删除功能,在程序中一般很少使用NOP指令。执行完清除用户存储器的操作后,用户存储器的内容全部变为空操作指令。
11. 程序结束指令END
END是一条无目标元件的程序步指令。PLC反复进行输入处理、程序运算、输出处理,若在程序最后写入END指令,则END以后的程序不再执行,直接进行输出处理。在程序调试过程中,按段插入END指令,可以顺序扩大对各程序段动作的检查。采用END指令将程序划分为若干段,在确认处于前面电路块的动作正确无误之后,依次删去END指令。要注意的是,在执行END指令时,也刷新监视时钟。
梯形图编程注意事项
1. 水平不垂直
梯形图的接点应画在水平线上,不能画在垂直分支上,如图6-17所示,图(a)中触点3被画在垂直线上,就很难正确识别它与其他触点的关系,及对输出线圈的控制方向。因此,根据自上而下、自左至右的原则,应将图(a)改画成图(b)的形式。
图6-17 梯形图画法之一
(a) 不正确;(b) 正确
2. 多上串右
有串联电路相并联时,应将接点最多的那个串联回路放在梯形图最上面。有并联电路相串联时,应将接点最多的并联回路放在梯形图的最左边。这种安排程序简洁、语句也少,如图6-18所示。
图6-18 梯形图画法之二
(a) 串联多的电路尽量放上部;(b) 并联多的电路尽量靠近母线
3. 线图右边无接点
不能将接点画在线圈右边,只能在接点的右边接线圈,如图6-19所示。
图6-19 梯形图画法之三
(a) 不正确;(b) 正确
4. 双线圈输出不可用
如果在同一程序中一元件的线圈使用两次或多次,则称为双线圈输出。这时前面的输出无效,只有最后一次才有效,如图6-20所示。一般不应出现双线圈输出。
图6-20 双线圈输出
1. 电动机的Y-△起动电路
将电动机三相绕组接成星形起动时, 起动电流是直接起动的1/3, 在达到规定转速后, 再切换为三角形运转。 这种减小电流的起动方法适合于容量大、 起动时间长的电动机, 或者是因容量限制, 避免起动时造成电源电压下降的电动机使用。 图6-21(a)为电动机主电路, 接触器KM1、 KM2同时接通时, 电动机工作在星形起动状态; 而当接触器KM2、 KM3同时接通时, 电动机就转入三角形接法正常工作状态。
基本逻辑指令的应用和编程实例
图6-21 (b)是PLC的输入、 输出外接电路, 其中X1接起动按钮, X2为停止按钮, HL为电动机运行状态指示灯。 此外, 在输出回路中KM1、 KM3利用辅助触点实现互锁。
电动机的Y-△起动电路梯形图如图6-22(a)所示。 定时器T1确定起动时间, 其预置值(TS)应与电机相配。 当电动机绕组由星形切换到三角形时, 在继电器控制电路中利用常闭点断开在先而常开点的闭合在后这种机械动作的延时, 保证KM1完全断开后, KM3再接通, 从而达到防止短路的目的。 但PLC内部切换时间很短, 为了达到上述效果, 必须使KM1断开和KM3接通之间有一个锁定时间TA, 这是靠定时器T2来实现的。 图6-22(b)为工作时序图。
图6-21 电动机Y-△起动电路
(a) 主电路; (b) 控制电路
图6-22 Y-△起动梯形图和时序图
(a) 梯形图; (b) 时序图
2. 电动机的正反转控制
异步电动机由正转到反转, 或由反转到正转切换时, 使用两个接触器KM1、 KM2去切换三相电源中的任何两相即可, 在设计控制电路时, 必须防止由于电源换相引起的短路事故。 例如, 由正向运转切换到反向运转, 当发出使KM1断电的指令时, 断开的主回路触点由于短时间内产生电弧, 这个触点仍处于接通状态, 如果这时立即使KM2通电, KM2触点闭合, 就会造成电源故障, 必须在完全没有电弧时再使KM2接通。
与机械动作的继电器控制电路不同, 在其内部处理中, 触点的切换几乎没有时间延时, 因此必须采用防止电源短路的方法, 例如使用定时器来设计切换的时间滞后。 图6-23(a)为PLC控制的电动机可逆运行外部电路接线图, (b)为相应的梯形图。 X1、 X2接正、 反转控制按钮, 是常开型; X3接停止按钮, 是常闭型。 梯形图中M101、 M102为内部继电器; T1、 T2为定时器, 分别设置对正转指令和反转指令的延迟时间。
图6-23 电动机正反转接线图与梯形图
(a) 接线图; (b) 梯形图
3. 加热反应炉自动控制系统
图6-24为加热反应炉结构示意图。
加热反应的工艺过程分为以下三个阶段。
第一阶段为进料控制, 其过程如下:
(1) 检测下液面(X1)、 炉温(X2)、 炉内压力(X4)是否都小于给定值(均为逻辑0), 即PLC输入点X1、 X2、 X4是否都处于断开状态。
(2) 若是, 则开启排气阀Y1和进料阀Y2。
(3) 当液面上升到位使X3闭合时, 关闭排气阀Y1和进料阀Y2。
(4) 延时20 s, 开启氮气阀Y3, 使氮气进入炉内, 提高炉内压力。
(5) 当压力上升到给定值时(X4=1), 关断氮气阀Y3, 进料过程结束。
第二阶段为加热反应控制, 其过程如下:
(1) 此时温度肯定低于要求值(X2=0), 应接通加热炉电源Y5。
(2) 当温度达到要求值(X2=1)后, 切断加热电源。
(3) 加温到要求值后, 维持保温10 min, 在此时间内炉温实现通断控制, 保持X2=1。
第三阶段为泄放控制, 其过程如下:
(1) 保温够10 min时, 打开排气阀Y2, 使炉内压力逐渐降到起始值(X4=0)。
(2) 维持排气阀打开, 并打开泄放阀Y4, 当炉内液面下降到下液面以下时(X1=0), 关闭泄放阀Y4和排气阀Y2, 系统恢复到原始状态, 重新进入下一循环。
根据上述工艺规律设计PLC梯形图, 如图6-25所示。
图6-24 加热反应炉结构图
图6-25 反应炉控制梯形图
对于复杂的控制电路或大型的自动生产线,应用梯形图或指令表编程,程序过长,不易阅读和编写。一些PLC生产厂家近年来增加了IEC标准的SFC (Sequential Function Chart ) 语言编制控制程序的方法,称为步进顺序控制。利用增加的两条步进顺控指令和状态转移图方式编程,可以较简单地实现较复杂的步进顺序控制。
7 步进顺控指令
7.1步进顺控的基本指令
符号
名称
功能
操作元件
STL
步进顺控
使状态元件S置位,步进开始;驱动S状态元件
S
说明:
步进STL触点只有常开触点,当转移条件满足时,其状态置位,STL触点闭合,驱动负载;当状态转移时,STL指令断开,使与该指令有关的其他指令都不能执行。
(1)STL指令
(2)RET指令
符号
名称
功能
操作元件
RET
返回
该步进控制结束,返回
无
7.2 状态元件和状态转移图
FX系列PLC的状态元件一般有近百到几百点,其中FX2N系列PLC的状态元件(S0~S899)共900点,用来作初始化用的状态元件有10点(S0~S9)。初始化状态元件一般用PLC运行后的初始化脉冲特殊继电器M8002置位或由其他初始信号将其初始值置位。其他元件状态由状态转移条件决定。当状态转移条件满足时,状态开始从初始化状态转移,转移后的状态被置位,而转移源的状态自动复位。这种状态的转移用状态转移图来描述。 状态转移图又称为顺序功能图或状态流程图,它是用来表示步进顺控系统的控制过程、功能和特性的一种图形。
1简单流程的状态转移图
图7-1为某一简单流程的状态转移图。其中,用双线框表示初始状态,其他状态元件用单线框表示,方框之间的线段表示状态转移的方向,一般由上至下或由左至右,线段间的短横线表示转移的条件,与方框连接的横线和线圈表示状态驱动的负载。
图7-1中的初始状态S0由M8002驱动,当PLC由STOP→RUN切换时,初始化脉冲使S0置1,当按下启动按钮X0时,状态转移到S20,S20置1,同时S0复位至零,S20立即驱动Y1,当转移条件X1接通时,状态从S20转移到S21,使S21置1,而S20则在下一执行周期自动复位至零,Y1线圈也就断电了。当S21置1时,驱动线圈Y2。同理,当X2接通,状态转移到S22,驱动Y3;当X3接通,状态转移到S23,驱动Y4。当X4接通,状态转移回到S0,使初始化状态S0又置位,控制过程循环动作。
将状态转移图和步进顺序控制指令相结合,形成步进顺控图,进而再写成指令表(如图7-2所示)。
图7-1 简单流程的状态转移图
图7-2 图7-1的梯形图和指令表
2 选择性分支的状态转移图
选择性分支流程的各分支状态的转移是由各自的条件选择执行,两个或两个以上的分支的状态不能同时转移。图7-3所示为选择性分支的状态转移图,图7-4为其步进顺控图和相应的指令表。
图7-3 选择性分支的状态转移图
图7-4 图7-3的梯形图和指令表
3 并行性分支的状态转移图
并行分支的状态转移是当同一条件满足时,状态同时向各并行分支转移。图7-5为并行性分支的状态转移图,图7-6为其步进顺控图和相应的指令表。
图7-5 并行性分支的状态转移图
图7-6 图7-5的梯形图和指令表
7.3 分支和汇合的编程方法
有些步进顺控有多层分支和汇合组合,对于FX2N系列的PLC,其分支数有一定的限制。对所有的初始状态(S0~S9),每一状态下的分支电路不能大于16个,并且在每一分支点分支数不能大于8个。对于多层分支和汇合要注意编程方法 。
图7-7 步进顺控的分支和汇合组合
图7-8 选择和并行分支的编程
7.4 步进顺控的应用和编程实例
1使用PLC完成自动台车的控制的例子。
如图7-9所示,某生产过程的控制工艺要求如下:
(1) 按下启动按钮SB,台车电机M正转,台车前进,碰到限位开关SQ1后,台车电机M反转,台车后退。(2) 台车后退碰到限位开关SQ2后,台车电机M停转,台车停车,停5 s,第二次前进,碰到限位开关SQ3,再次后退。
(3) 当后退再次碰到限位开关SQ2时,台车停止(或者继续下一个循环)。
图7-9 台车自动往返系统工况示意图
为编程的需要,不妨设置输入、输出端口配置如下表所示。
编程步骤如下:
流程图是描述控制系统的控制过程、功能和特性的一种图形,流程图又叫功能表图(Function Chart)。流程图主要由步、转移(换)、转移(换)条件、线段和动作(命令)组成。
图7-10是该台车的流程图。该台车的每次循环工作过程分为前进、后退、延时、前进、后退五个工步。每一步用一个矩形方框表示,方框中用文字表示该步的动作内容或用数字表示该步的的标号。与控制过程的初始状态相对应的步称为初始步。初始步表示操作的开始。每步所驱动的负载(线圈)用线段与方框连接。 方框之间用线段连接,表示工作转移的方向,习惯的方向是从上至下或从左至右,必要时也可以选用其它方向。线段上的短线表示工作转移条件,图中状态转移条件为SB、SQ1。方框与负载连接的线段上的短线表示驱动负载的联锁条件,当联锁条件得到满足时才能驱动负载。转移条件和联锁条件可以用文字或逻辑符号标注在短线旁边。
图7-10 台车自动往返系统状态转移流程图
步进指令的应用举例
1 交通信号灯控制
控制要求
信号灯的动作受开关总体控制,按一下启动按钮,信号灯系统开始工作,并周而复始地循环动作;按一下停止按钮,所有信号灯都熄灭。信号灯控制的具体要求如下表所示。
系统配置
根据信号控制要求,I/O分配及其接线如图7-11所示。图中用一个输出点驱动两个信号灯,如果PLC输出点的输出电流不够,可以用一个输出点驱动一个信号灯,也可以在PLC输出端增设中间继电器,由中间继器再去驱动信号灯。
图7-11 PLC I/O接线图
图7-12 交通信号灯控制的时序图
时序图
十字路口交通信号灯控制的时序图如图7-12所示。
程序设计
1) 按单流程编程
如果把东西方向和南北方向信号灯的动作视为一个顺序动作过程,其中每一个时序同时有两个输出,一个输出控制东西方向的信号灯,另一个输出控制南北方向的信号灯,这样就可以按单流程进行编程,其状态转移图如图7-13所示,对应的步进梯形图如图7-14所示。
按下启动按钮SB1,X0接通,S0置位,转入初始状态,由于Y0、M0条件满足,状态使S20置位,转入第一工步,同时T0开始计时,经25 s后,S21置位,S20复位,转入第二工步……当状态转移到S25时,程序又重新从第一工步开始循环。
图7-13 按单流程编程的状态转移图
图7-14 按单流程编程的步进梯形图
按停止按钮SB3,X2接通,M0使接通并自保,断开S0后的循环流程,当程序执行完后面的流程后停止在初始状态,即南北红灯亮,禁止通行;东西绿灯亮,允许通行。T6、T7组成的是0.5 s的振荡电路,该电路的作用是控制绿灯闪烁,其中T1和T4是控制闪烁的时间。
2) 按双流程编程
东西方向和南北方向信号灯的动作过程也可以看成是两个独立的顺序动作过程。其状态转移图如图7-15所示。它具有两条状态转移支路,其结构为并联分支与汇合。按启动按钮SB1,信号系统开始运行,并反复循环。
图7-15 按双流程编程的状态转移图
2 物料自动混合控制
控制要求
1) 初始状态
容器是空的,电磁阀F1、F2、F3和F4,搅拌电动机M,液面传感器L1、L2和L3,加热器H和温度传感器T均为OFF。
2) 物料自动混合控制
物料自动混合装置如图7-16所示。按下启动按钮,开始下列操作:
(1) 电磁阀F1开启,开始注入物料A,至高度L2(此时L2、L3 为ON)时,关闭阀F1,同时开启电磁阀F2,注入物料B,当液面上升至L1时,关闭阀F2。
(2) 停止物料B注入后,启动搅拌电动机M,使A、B两种物料混合10 s。
(3) 10 s后停止搅拌,开启电磁阀F4,放出混合物料,当液面高度降至L3后,再经5 s关闭阀F4。
3) 停止操作
按下停止按钮,在当前过程完成以后,再停止操作,回到初始状态。
图7-16 物料自动混合装置
图7-17 PLC I/O配置及接线图
用步进指令编程
物料自动混合过程,实际上是一个按一定顺序操作的控制过程。因此,也可以用步进指令编程,其状态转移图如图7-18所示。
图7-18 物料自动混合控制的状态转移图
3 大、小球分检控制
图7-19 大、小球分类选择传送装置示意图
其动作顺序如下:
左上为原点,机械臂下降(当磁铁压着的是大球时,限位开关SQ2断开,而压着的是小球时SQ2接通,以此可判断是大球还是小球)→大球SQ2断开 →将球吸住 →上升SQ3动作 →右行到SQ5动作→ 小球SQ2接通→将球吸住→上升SQ3动作→右行到SQ4动作→下降SQ2动作→释放→上升SQ3动作→左移SQ1动作到原点。
左移、右移分别由Y4、Y3控制,上升、下降分别由Y2、Y0控制,将球吸住由Y1控制。
根据工艺要求,该控制流程可根据SQ2的状态(即对应大、小球)有两个分支,此处应为分支点,且属于选择性分支。分支在机械臂下降之后根据SQ2的通断,分别将球吸住、上升、右行到SQ4或SQ5处下降,此处应为汇合点,然后再释放、上升、左移到原点。其状态转移图如图7-20所示。
图7-20 大、小球分类选择传送状态转移图
根据选择性分支汇合的编程方法,编制的大、小球分类程序如下:
LD M8002
SET S0
STL S0
OUT Y5
LD X0
AND X1
AND X3
SET S21
STL S21
0UT Y0
OUT T0
K20
LD T0
AND X2
SET S22
LD T0
ANI X2
SET S25
STL S22
SET Y1
OUT T1
K10
LD T1
SET S23
STL S23
OUT Y2
LD X3
SET S24
STL S24
LDI X4
OUT Y3
STL S25
SET Y1
OUT T1
K10
LD T1
SET S26
STL S26
OUT Y2
LD X3
SET S27
STL S27
LDI X5
OUT Y3
STL S24
LD X4
SET S28
STL S27
LD X5
SET S28
STL S28
OUT Y0
LD X2
SET S29
STL S29
RST Y1
OUT T2
LDI X5
OUT Y3
STL S24
LD X4
SET S28
STL S27
LD X5
SET S28
STL S28
OUT Y0
LD X2
SET S29
STL S29
RST Y1
OUT T2
K10
LD T2
SET S30
STL S30
OUT Y2
LD X3
SET S31
STL S31
LDI X1
OUT X4
LD X1
OUT S20
RET
END
8 可编程控制器的功能指令
从20世纪80年代开始,PLC制造商就逐步地在小型PLC中加入一些功能指令 (Functional Instruction)或称为应用指令(Applied Instruction)。这些功能指令实际上就是一个个功能不同的子程序。随着芯片技术的进步,小型PLC的运算速度、存储量不断增加,其功能指令的功能也越来越强。许多技术人员梦寐以求甚至以前不敢想象的功能,通过功能指令就极易实现,从而大大提高了PLC的实用价值。一般来说功能指令可以分为程序流控制、传送与比较、算术与逻辑运算、移位与循环移位、数据处理、高速处理、方便命令、外部输入输出处理、外部设备通信、实数处理、点位控制和实时时钟等12类。
本章以日本三菱FX2N系列的PLC为主介绍一些应用广泛的功能指令。功能指令采用计算机通用的助记符+操作数 (元件) 方式,稍有计算机及PLC知识的人极易明白其功能。
8.2 功能指令的基本概念
1 功能指令的表现形式
功能指令由指令助记符、功能号、操作数等组成,功能指令按功能号(FNC00~FNC250)编排。每条功能指令都有一助记符。在简易编程器中输入功能指令时是以功能号输入功能指令,在编程软件中是以指令助记符输入功能指令。功能指令的一般形式如下所示。
2 助记符和功能号
如上所示助记符MEAN(求平均值)的功能号为FNC45。每一助记符表示一种功能指令,每一指令都有对应的功能号。
3操作元件(或称操作数)
助记符表示一种功能指令,有些功能指令只须助记符,但大多数功能指令在助记符之后还必须有1—4个操作元件。它的组成部份有:
①源操作元件 [S·] ,有时源不止一个,例如有 [S1·] 、 [S2·]。S后面[·] 的,表示可使用变址功能。
②目标操作元件[D·],如果不止一个目标操作元件时,用[D1]、[D2]表示。
③K、H为常数。K表示十进制数,H表示十六进制数。
④功能助记符后有符号(P)的,表示具有脉冲执行功能。
⑤功能指令中有符号(D)的,表示处理32位数据,而不标(D)的,只处理16位数据。
4位软元件和字软元件
只处理ON/OFF状态的元件,称为位软元件,如X、Y、M、S等。其它处理数字数据的元件,例如T、C、D、V、Z等,称为字软元件。
但位软元件由Kn加首元件号的组合,也可以处理数字数据,组成字软元件。位软元件以4位为一组组合成单元。K1~K4为16位运算,K1~K8为32位运算。例如K1X0,表示X3~X0的4位数据,X0为最低位;K4M10表示M25~M10的16位数据,M10为最低位;K8M100表示M131-M100组成的32位数据,M100为最低位。
不同长度的字软元件之间的数据传送,由于数据长度的不同,在传送时,应按如下进行处理。
①长→短的传送:长数据的高位保持不变。
②短→长的传送:长数据的高位全部变零。
对于BCD、BIN转换,算术运算,逻辑运算的数据也以这种方式传送。
5变址寄存器V、Z
变址寄存器是在传送、比较指令中用来修改操作对象元件号的,其操作方式与普通数据寄存器一样。V和Z是16位数据寄存器。将V和Z的组合可进行32位的运算,此时,V作为高位数据处理。变址寄存器用于改变软元件地址号。
例如下列的Z值定为4,则:
K2X000Z=K2X004 K1Y000Z=K1Y004
K4M10Z=K4M14 K2S5Z=K2S9
D5Z=D9 F6Z=T10 C7Z=C11
P8Z=P12 K100Z=K104
6整数与实数
(1)整数
在PLC中整数的表示及运算采用BIN码格式,可以用16ht或32以t元件来表示整数,其中最高bit为符号bit,0表示正数,1表示负数。负数以补码方式表示。
整数可表示的范围:16 bit时为-32768~+32767,32 bit位时为-2147483648~
+2147483647。除表示范围受限制外,作科学运算时产生的误差也较大,所以需要引入实数。
(2) 实数的浮点格式
实数必须用32bit来表示,通常用数据寄存器对来存放实数。实数的浮点格式如图8-1所示。
图8-1 实数的浮点格式示例
(3)实数的科学记数格式
PLC内实数的处理是采用上述浮点格式的,但浮点格式不便于监视,所以引入实数的科学记数格式。这是一种介于BIN与浮点格式之间的表示方法。用这种方法来表示实数也需占用32bit,即两个字元件。通常也用数据寄存器对(如D1,D0)来存放科学记数式实数。此时,序号小的数据寄存器(D0)存放尾数,序号大的数据寄存器存放以10为底的指数。
科学格式实数=尾数×10指数 (上例中即是D0×10Dl)
尾数范围:±(1000~9999)或0;
指数范围:-41~+35。
值得注意的是:尾数应以4位有效数字(不带小数)表示,例如2.34567×105应表示为2345×102,在上例中即(D0)=2345,(D1)=2。
8.3 程序流控制指令
程序流控制指令(FNC00~FNC09)包括程序的条件跳转、中断、调用子程序、循环等。
1条件跳转(FNC00)
(1)指令
CJ (FNC00) ,操作元件:指针P0~P63 (P63相当于END指令)
(2)格式
如图8-2所示。
图8-2 跳转指令
(3)说明
① 当CJ指令的驱动输入X0为ON时,程序跳转到指令指定的指针P同一编号的标号处。如果X0为OFF时,则执行紧接指令的程序。
② 当X0为ON时,被跳转命令到标号之间的程序不予执行。在跳转过程中如果Y、M、S被OUT、SET、RST指令驱动使输入发生变化,则仍保持跳转前的状态。例如,通过X0驱动输出Y0后发生跳转,在跳转过程中即使X0变为OFF,但输出Y0仍有效。
③对于T、C,如果跳转时定时器或计数器正发生动作,则此时立即中断计数或定时,直到跳转结束后继续进行定时或计数。但是,正在动作的T63或高速计数器,不管有无跳转,仍旧连续工作。
④功能指令在跳转时不执行,但PLSY、PWM指令除外。
2调用子程序
(1)指令
调用子程序 CALL(FNC01),操作元件:指针P0~P63
子程序返回 SRET(FNC02),操作元件:无
(2)格式
如图8-3表示。
图8-3 调用子程序指令
(3)说明
①把一些常用的或多次使用的程序以子程序写出。当X0为ON时,CALL指令使主程序跳到标号P处执行子程序。子程序结束,执行SRET指令后返回主程序。
②子程序应写在主程序结束指令FEND之后。
③调用子程序可嵌套,嵌套最多可达5级。
④ CALL的操作数与CJ的操作数不能用同一标号,但不同嵌套的CALL指令可调用同一标号的子程序。
⑤在子程序中使用的定时器范围规定为T192~T199和T246~T249。
图8-4 中断指令
3中断
(1)指令
中断返回 IRET(FNC03),操作元件:无。
允许中断 EI(FNC04),操作元件:无。
禁止中断 DI(FNC05),操作元件:无。
(2)格式
如图8-4所示。
(3)说明
① 中断用指针分为输入中断、定时中断和高速计数器中断三种,具体规定如下所示。
②在主程序执行过程中,X000由OFF→ON时,则程序跳转到1001标志的子程序处,当子程序执行到IRET时就返回到原来的主程序。
③如果有多个依次发出的中断信号,则优先级按发生的先后为序,发生越早则优先级越高,若同时发生多个中断信号时,则中断标号小的优先级高。
④中断程序在执行过程中,不响应其他的中断(其他中断为等待状态)。不能重复使用与高速计数器相关的输入,不能重复使用1000与1001相同的输入。
⑤ 可编程控制器平时处于禁止中断状态。如果EI-DI指令在扫描过程中有中断输入时,则执行中断程序(从中断标号到IRET之间的程序)。
⑥ 即使在允许中断范围内,如果特殊辅助继电器M805△(△=0~3)被驱动,则I△0□的中断不执行。如图8-4(b)所示,如果X010为ON时,则禁止1001或1000的中断。即虽存在中断请求,中断也不被接受。
⑦当DI~EI指令问(中断禁止区间)发生中断请求时,则存贮这个请求信号,然后在EI指令执行完后才被执行。如果中断禁止区间较大,则等待中断响应的时间也较长。
4主程序结束
(1) 指令
FEND(FNC06),操作元件,无。
(2) 格式
如图8-5所示。
图8-5
(3) 说明
①FEND指令表示一个主程序的结束,执行这条指令与执行END指令一样,即执行输人、输出处理或警告定时器刷新后,程序
送回到0步程序。
② 使用多条FEND指令时,中断程序应写在最后的FEND指令与END指令之间。子程序应写在FEND之后,而且必须以SRET结束。
③如果在FOR指令执行后,在NEXT指令执行前执行FEND指令时,程序将会出错。
5 警戒时钟
(1)指令
WDT(FNC07),操作数:无。
(2)格式
如图8-6所示。
图8-6 警戒时钟
3说明
①WDT指令是在控制程序中刷新警戒定时器的指令,如果执行程序的扫描周期时间(从0步到END或FEND指令之间)200ms,则PLC将停止运行。这时应将WDT指令插到合适的程序步中刷新警戒时钟,以便程序得以继续运行直到END。例如将一个扫描周期为240ms的程序分为2个120ms程序。如图8-6所示,在这两个程序之间插入WDT指令。
②如果希望每次扫描周期时间超过200ms,则可用移动指令MOV把限制值写入特殊数据寄器D8000中,如图8-6所示。
6 循环
(1)指令
循环区起点 FOR(FNC08),操作元件
循环区终点 NEXT(FNC09),操作元件,无
(2)格式
如图8-7所示
图8-7 循环
3说明
①FOR-NEXT之间的循环可重复执行n次(由源数据指定次数)。但执行完后,程序就转到紧跟在NEXT指令后的步序。N=1~32767为有效。
②如图8-7例子中,DOZ的数据为5时,每执行一次A的程序,B的程序就执行5次,由于A要执行4次,那么,B的程序总共要执行20次。
③在FOR-NEXT指令内最多可嵌套5层其他的FOR-NEXT指令。但下列的任一种情况都会导致出错:NEXT指令写在FOR指令之前、缺少NEXT指令、NEXT指令写在FEND、END指令之后、NEXT指令与FOR指令数目不一致。
8.4 传送及比较指令
传送和比较指令包括数据比较、传送、交换和变换等。
1数据比较
(1)指令
(D)CMP(FNCl0),操作元件如下:
(2)格式
如图8-8所示。
图8-8比较
(3)说明
①比较指令操作数有两个源数据,把源数据[S1·]与源数据[S2·]的数据进行比较,其结果送到目标[D·]按比较结果进行操作。按代数规则进行大小比较。
②所有的源数据都按二进制数值处理。对于多个比较指令,其目标[D·]也可指定为同一个软元件,但每执行一次比较指令,[D·]的内容随发生变化。
③一条CMP指令用到三个操作数,如果只有一个或二个操作数,就会出错,妨碍PLC运行。
2 区间比较
(1)指令
(D)ZCP(FNC11),操作元件与CMP指令相同。
(2)格式
如图8-9所示。
图8-9 区间比较
(3)说明
①区间比较指令是与一个设定值构成的区间大小进行比较的指令。
上下二点的比较值与源数据S的内容进行比较,根据在区间内的比较结果,决定M3、M4、M5的状态。
②按代数规则进行大小比较(例如10<2)。
③ 源数据[S2·]须大于源数据[Sl·]。
例如 [S1·]=K100,
[S2·]=K90,
则将 [S2·]作为K=100进行操作。
④ 区间比较特别适用于用加工误差或加工缺陷来控制的加工过程。
3传送
(1)指令
(D)MOV(FNCl2),操作元件如下:
(2)格式
(3)说明
①传送指令是将数据按原样传送的指令,当X0为ON时,K100数据传送到D10中果X0为OFF时,则目标元件中的数据保持不变。
②传送时源数据常数K100自动转换成二进制数。
4批传送
(1)指令
BMOV(FNCl5),操作元件如下:
(2)格式
如图8-10所示。
图8-10 批传送
(3)说明
① 批传送是将由源指定的几个数据软元件中的数据一起传送到由目标指定的几个软元件中(超出软元件地址号范围时,只能在允许范
围内传送)。上例中是将以D5开始的三个源数据送到以D10开始的三个目标元件中去。
②若在指定组合的位软元件之间进行数据传送,其源与目标应取相同位数。
5二进制码变换成BCD码
(1)指令
(D)BCD(FNC18),操作元件如下:
(2)格式
(3)说明
①BCD指令是将源中二进制数(BIN)转换成目标中的BCD的变换传送指令。当X0为ON时,D12中数据转换成BCD码传送到K2Y中;当X0为OFF时,目标中的数据不变。
②BCD的转换结果超过0~9999(16位运算),或超过0~999999(32位运算)时则出错。
③在PLC控制中,BIN向BCD变换,常用于向七段码显示等外部器件输出。
6 BCD码变换成二进制码
(1)指令
(D)BIN(FNCl9),操作元件与BCD指令相同。
(2)格式
(3)说明
①BIN指令是将源中的BCD码转换成目标中的二进制(BIN)的变换传送指令。当X0为0N时,源K2X0中的BCD码自动变换成BIN码,传送到目标D13中。当X0为OFF时,目标文件中的数据不变。
②若源中数据不是BCD码,则发生运算出错。
③BIN指令可用于将BCD码数字开关的设定值读人可编程序控制器中。
8.5 四则运算及逻辑运算
四则运算包括二进制数的加法、减法、乘法和除法。逻辑运算包括逻辑与、或、异或等。
1二进制加法、减法
(1)指令
加法:(D)ADD(FNC20)
减法:(D)SUB(FNC 21),操作元件如下
(2)格式
图8-11 二进制加减法
(3)说明
①二个源数据的二进制数值相加(相减),其结果送人目标元件中。各数据的高位是符号位,正为0,负为1。这些数据按代数规则进行运算。例如:5+(-8)=-3,5-(-8)=13。
②当驱动输入X000为OFF时,不执行运算,目标元件的内容也保持不变。
③如果运算结果为0,零标志M8020置1,如果运算结果超过32767(16位运算)或2147483647(32位运算),则进位标志M8022置1。如果运算结果小于-32767(16位运算)或-2147483647(32位运算),则借位标志M8021置1。
2二进制乘除法
(1)指令
乘法:(D)MUL(FNC22)
除法:(D)DIV(FNC23),操作元件如下:
(2)格式
图8-12 二进制乘除法
(3)说明
①对乘法,二源的乘积以32位形式送到指定目标中。低16位在指定目标元件(D4)中,高16位在下一个元件(D5)中。
在上例中,如D0=8,D2=9,则其乘积送到(D5,D4)=72,最高位为符号位(0为正,1为负),V不用于目标元件。只有Z允许作16位运算。
②16位运算的结果变为32位,32位运算的结果变为64位。如果位组合指定元件为目标元件,超过32位的数据就会丢失。
③如果驱动输入X0为OFF,不执行运算,目标元件中的数据不变。
④对除法,[S1]指定为被除数,[S2]指定为除数,商存于[D]中、余数存于紧靠[D]的下一个编号的软元件中。V和Z不可用于[D]中。
⑤若位组合指定元件为[D],则余数就会丢失。除数为零时,则运算出错,且不执行运算。
3二进制加1和减1
(1)指令
(D)INC(FNC24)
(D)DEC(FNC25),操作元件如下:
(2)格式
如图8-13所示。
(3)说明
①当每次K0为ON时,则目标D10、D11的数值就加1或减1。
②当连续执行这种指令时,每个运算周期都要加1或减1。
③当运算结果超出高低限时,对16位运算,有+32767+1→-32678及-32767-1→+32678的标志位状态不变;对32位运算,有+2147483647+1→-2147483648及-2147483647-1→+2147483648的标志位状态不变。
4逻辑与、或、异或
(1)指令
与:AND(FNC26)
或:OR(FNC27)
异或:XOR(FNC28),操作元件如下:
(2)格式
图8-14与、或、异或
(3)说明
①16位运算时,指令为WAND、WOR、WXOR。32位运算时,指令为(D)AND、(D)OR、(D)XOR。
②当X0为ON时,进行各对应的逻辑运算,把结果存于目标[D]中。当X0为OFF时,不执行运算,[D]的内容保持不变。
8.6 移位、复位及数据处理指令
本节内容包括左移位、右移位、批复位、解码、编码及高速处理等指令。
1移位
(1)指令
右移位:SFTR(FNC34)
左移位:SFTL(FNC35),操作元件如下:
(2)格式
如图8-15所示。
(3)说明
①右移位、左移位操作数有源元件、目标元件以及n1、n2两常数,n1为指定位元件长度,n2为移位的位数,且n2≤n1≤512。移位的概念是使位元件中的状态向右/向左移动。
②在右移位(SFTR)中,X3~X0为4位的移位元件,M15~MO为位元件长度。当一次移位有效,X3~X0→+M15~M12,M15~M12→M11~M8,M11~M8→M7~M4,M7~M4→M3~MO,M3~MO溢出。第二次移位有效,X3~x0→M11~M8,M11~M8→M7~M4,M7~M4溢出。其余类推。
③使用脉冲指令时,在执行条件的上升沿时执行。用连续指令时,当执行条件ON,则每个扫描周期执行一次。
2成批复位
(1)指令
ZRST (FNC40),操作元件如下
(2)格式
图8-16 成批复位
(3)说明
① [D1·]和[D2·]应为同类软元件,且[D1·]编号必须小于D2·]编号。如果[D1·]编号大于[D2·]编号时,则只有[D1·]指定的软元件被复位。
②本指令为处理16位指令。[D1·]、[D2·]也可指为32位高速计数器。但[D1·]和[D2·]不能一个为16位,另一个为32位。
3解码
(1)指令
DECO(FNC41),操作元件如下:
(2)格式
如图8-17所示。
图8-17 解码
(3)说明
①解码的意义是源元件被解码,送到目标元件中。
②对位软元件解码(图a)情况,源的位数由常数K(n=3)决定,为X2、X1、X0三位。目标元件的点数也由K决定(23=8点,从M17~M10),如果X0为1,X1为1,X2为0,则源元件的数值为21+20=2+1=3,取选中目标元件中从M10后起的第三位M13置1。若源全部为0,则M10置1。当n=8时,目标点数最大为28=256点。
③对字软元件解码情况,如图(b),n=3,源元件取3位。其值为21+20=2+1=3,选中目标元件第3位,置1。
④当驱动输入为OFF时不执行本指令,目标元件中数据保持不变。
4编码
(1)指令
ENCO(FNC42),操作元件如下
(2)格式
如图8-18所示
(3)说明
①对位软元件的解码情况,对源元件以M10开始,n=3(23=8)的点数中,如M13为1,即第3位置1,编码结果由3=21+20=2+1送到D10中,编码的目标元件为16位,故只有b0置1,b1置l,b2置0(3位),其余均为零。
②对字软元件解码,源和目标元件均为16位。当n=3时,源元件有23=8点,其余无效。第3位为1,故目标元件由于20+21=1+2二3,故目标元件中b0置1,b1置1、b2置0。
当指定源中为1的位不止一处,则只有最高的位的1才有效。若指定源中所有位均为0,则出错。
③当执行条件(X5)为OFF时,则不执行本指令,编码输出也不变。
5输入/输出刷新
(1) 指令
REF (FNC 50),操作元件:
[D·]:X000、X010、X020…Y000、Y010、Y020…(最低位为0的X、Y元件)
n: K或H的参数,K8、K16…K128(8的倍数)
(2)格式
如图8-19所示。
(3)说明
① 输入输出批刷新方式为在执行第0步运算前,输入端子的信息存人输入映象存贮区中,并在执行END指令时,通过锁存存贮器从输出映象存储区送到输出端口。该输入输出刷新指令可用于在运算过程中需要读取最新的输人信息或者直接输出运算结果。
②当执行输人刷新时,n=8,从X0~X7共8点被刷新。当X0~X7为ON时,输入映象存贮区也相应为ON。执行本指令约需10ms (即输入滤波器响应时间)。
③当执行输出刷新时,如图8-19所示,n=16,对Y0~Y7、T10~T17、共16点输出刷新。执行本指令时,与输出Y0~Y17对应的输出锁存器状态立即输出到输出端子,在输出响应延迟时间后输出触点动作。
④输入输出刷新被指定的元件号必须是10的倍数,如X0、X10,…,Y0,Y10,…等。被刷新点数必须是8的倍数。
⑤输入端子的输入滤波器响应时间可调整,其值为0~15ms。
6高速计数器置位、复位
(1)指令
置位:HSCS(FNC53)
复位:HSCR(FNC54),操作元件如下
(2)格式
如图8-20所示
图8-20 高速计数器的置位和复位
(3)说明
①关于高速计数器
前面已介绍过高速计数器,高速计数器有单相单输入、单相双输人以及双相输入三种输人类型。按各种输入类型计数器地址号,必须要有与其相应的复位输入端子号与启动输入端子号。
U/D:增/减计数输入 (单相单输入)
U: 增计数输入 (单相双输入)
D: 减计数输入 (单相双输入)
A: A相输入 (双相输入)
B: B相输入 (双相输人)
R: 复位输入
S: 启动输入
单相单输入计数器的计数方向由M8235~M8244
ON(减)/OFF(加)的状态决定。至于双相输入计数器的计数方向为:当A相输入为ON时,B相输入由OFF→ON为增计数;由ON→OFF为减法计数。当A相输人为OFF时,不计数。
虽然高速计数器的计数输入、复位输入和启动输入不需要程序,但是必须要用M8000来驱动高速计数器的线圈。
②图8-20中,C254的计数输入是X000(A相),X001(B相),复位输入是X002,启动输入是X003。
③C254的置位:执行HSCS指令,一旦C254的当前值从99变为100或从101变为100时,则Y000立即被置位,且向外部输出。
④C254复位:执行HSCR指令,一旦C254的当前值从199变为200,或从210变为200时,则Y000立即被复位,且外部输出也复位。
⑤目标元件[D]与第二源元件[S2]一样,也可以被指定为高速计数器。但此时目标元件必须为双字节。图8-19中,当执行HSCR指令,当计数器的当前值从399变为400或从401变为400时,则C254立即被复位,且当前值被清零。
⑥指令HSCS和HSCR是在脉冲送到输入端子时以中断方式进行。如果没有脉冲输入,即使驱动输入为ON且比较条件[S1·]=[S2·],但输出Y0也不会动作。
7脉冲输出
(1)指令
(D)PLSY(FNC 57),操作元件如下:
(2)格式
如图8-21所示
(3)说明
①PLSY指令用于产生规定数量的脉冲。[S1]为指定脉冲的频率(10~2000Hz),[S2]为指定产生脉冲的数目,脉冲数范围为16位指令在1~32767之间,32位指令为1~2147483647之间。若脉冲数为0,则会产生无限个脉冲。[D]为指定脉冲输出元件号,只能指定Y0。
②当发完设定脉冲数后,执行完成标志M8029被置位。
⑥输出脉冲的占空比为50% (即ON占50%,OFF占50%)。
③图中当X10为OFF时,停止产生输出脉冲。当X10再次为ON时,又从头开始输出脉冲。在连续脉冲发生时,一旦X10为OFF时,Y0就变为OFF。
④在执行本指令时,[S1]内容可以修改。但[S2]的内容修改只有在完成一次操作后才有效。
⑤本指令只能使用一次,且只能用于晶体管输出类型PLC。
8脉宽调制
(1)指令
PWM (FNC 58) ,操作元件如下:
(2)格式
如图8-22所示。
(3)说明
①PWM指令是控制脉冲宽度t/T0比值的指令。[S1]为指定脉冲宽度,范围t=32767ms,[S2]是指定周期T0,范围为1~32767ms,[S1]必须小于[S2],[D]为指定脉冲输出地址号,输出的ON/OFF状态用中断方式控制,输出[D]只能指定Y1。
②图8-22中,当源[S]的D10中的值从0~50变化时,输出Y1的输出脉冲占空比从0~100%变化。当X10变为OFF时,Y1也为OFF。
③本指令只能用1次,且只适用于晶体管输出类型PLC。
8.7 方便指令
方便指令包括置初始状态指令,交替输出指令和斜坡信号指令。其它的一些特殊方便指令,请参阅有关资料。
1置初始状态
(1)指令
IST (FNC60) ,操作元件如下:
(2)格式
如图8-23所示。
(3)说明
①IST指令常用于步进顺序控制,它能自动控制步进阶梯图中的初始状态和特殊辅助继电器。由[S·] 指定运行模式的输入首元件。
X000:点动 X004:连续运行
X001:回原点 X005:回原点启动
X002:单步操作 X006:自动启动
X003:单周期运行 X007:停止
②如果遗漏了部分运行模式时,应该按上述所示借助继电器重新安排顺序。[D1]和[D2]分别指定自动模式中实际用到的最低和最高状态寄存器的地址号。
③如果执行到这条指令,就会自动地控制下列的这些软元件。但是,驱动输入为OFF时,这些软元件的状态不发生变化。
M8040:禁止传送 M8041:传送开始
M8042:启动脉冲 M8047:监控有效
S0:个别操作初始状态
S1:回原点初始状态
S2:自动运行初始状态
④使用本指令时,S10~S19只能用于回原点。而M8044 (原点条件)、M8043(回原点结束)应由用户编程进行控制。
⑤IST指令必须编在S0~S2的一系列STL电路之前。
2交替输出
(1)指令
ALT (FNC66) ,操作元件如下:
(2)格式
如图8-24所示。
图8-24
(3)说明
①执行ALT指令,目标通常由脉冲信号驱动。当X0每次从OFF到ON变化时,M10就翻转动作一次。如果连续执行ALT指令时,每个运算周期翻转动作一次。
②如图8-24所示,用M10的常闭和常开触头分别控制Y0和Y1时,则第一次按下X0时,起动输出Y1置1,第二次按下X0时Y0置1而Y1置0,如此反复交替动作。
3斜坡信号
(1)指令
RAMP (FNC67) ,操作元件如下
(2)格式
如图8-25所示。
(3)说明
①RAMP指令与模拟量输出结合可实现软起动/软停止。
②斜坡信号的两个源元件和目标元件均用数据寄存器D担任。其中最初值写入D1,最终值写入D2。X0接通后,D3中的数据从初始值逐渐变到最终值D2,完成整个过程所需时间是几个扫描周期。扫描周期当前值存于D4中。
③输出结束后,完成标志M8029置1,此时(D3)=(D2),(在FX2,FX2C系列中相当于特殊继电器M8026为ON状态)。
④在D8039中写入扫描周期(稍长于实际扫描时间),把M8039置1,则PLC进入恒定扫描周期运行方式,如果扫描周期设定值是20ms,则D3中的数值从D1值变化到D2值所需时间是20s。
⑤若在斜坡输出期间X000断开,则斜坡输出停止。此后若X000再次接通,则D4清零,D3的值从D1的设定值开始动作。
9 PLC控制系统的设计与应用
9.1 PLC控制系统的设计概述
可编程控制器的结构和工作方式与通用微型计算机不完全一样。因此,利用可编程控制器设计自动控制系统与微机控制系统开发过程也不完全相同,需要根据可编程控制器的特点进行系统设计。PLC控制系统与继电器-接触器控制系统也有本质区别,硬件和软件可分开进行设计是可编程控制器的一大特点。
就工业控制的全面性而言,控制系统的设计包含了许多内容和步骤,需要丰富的专业知识。只要掌握了一定的基本知识和对控制对象具有足够的了解,在设计一些规模较小或者结构较为简单的控制系统时,就会发现并不使太困难的事情。
1 PLC控制系统设计的基本原则
任何一种电气控制系统都是为了实现被控对象(生产设备或生产过程)的工艺要求,以提高生产效率和产品质量。在设计PLC控制系统时,应遵循以下基本原则:
①最大限度地满足被控对象的控制要求。设计前,应深入现场进行调查研究,搜集资料,并与机械部分的设计人员和实际操作人员密切配合,共同拟定电气控制方案,协同解决实际中出现的各种问题。
②在满足控制要求的前提下,力求使控制系统简单、经济、使用及维修方便。
③保证控制系统的安全、可靠。
④考虑到生产的发展和工艺的改进,在选择PLC容量时,应适当留有裕量。
2 PLC控制系统设计的一般步骤
图9-1是PLC控制系统设计流程图,具体设计步骤为:
①根据生产的工艺过程分析控制要求。如需要完成的动作(动作顺序、动作条件、必须的保护和连锁等),操作方式(手动、自动、连续、单周期、单步等)。
②根据控制要求确定所需要的用户输入/输出设备。据此确定PLC的I/O点数。
③选择PLC。
④分配PLC的I/O点,设计I/O连接图,这一步也可以结合第②步进行。
⑤进行PLC程序设计,同时可进行控制台(柜)的设计和现场施工。
在设计电气控制系统时,必须在控制线路(硬接线)设计完后,才能进行控制台(柜)的设计和现场施工。可见,采用PLC控制,可以使整个工程的周期缩短。
PLC程序设计的步骤是:
①对于较复杂的控制系统,需绘制系统控制流程图,用以清楚地表明动作的顺序和条件。对于简单的控制系统,也可省去这一步。
②设计梯形图。这是程序设计的关键一步,也是比较困难的一步。要设计好梯形图,首先要十分熟悉控制要求,同时还要有一定的电气设计的实践经验。
③根据梯形图编制程序清单(若使用的编程器可直接输入梯形图,则可省去此步)。
④用编程器将程序键入到PLC的用户存储器中,并检查键人的程序是否正确。
⑤对程序进行调试和修改,直到满足要求为止。
⑥待控制台(柜)及现场施工完成后,就可以进行联机调试。如不满足要求,再回去修改程序或检查接线,直到满足要求为止。
⑦编制技术文件。
⑧交付使用。
图9-1 可编程控制器系统设计流程图
3 确定控制对象及范围
4 可编程控制器的选择
(1) 机型的选择
机型选择的基本原则应是在功能满足要求的情况下,保证可靠、维护使用方便以及最佳的性能价格比。
(2) 输入/输出的选择
(3) 内存估计
用户程序所需内存容量受到下面几个因素的影响:内存利用率;开关量输入/输出点数;模拟量输入/输出点数;用户的编程水平。
(4) 响应时间
对过程控制,扫描周期和响应时间必须认真考虑。可编程控制器顺序扫描的工作方式使它不能可靠地接收持续时间小于扫描周期的输入信号。例如某产品有效检测宽度为3cm,产品传送速度为30m/min,为了确保不会漏检经过的产品,要求可编程控制器扫描周期不能大于产品通过检测点的时间间隔60ms[T=3cm/(30m/min)]。
系统响应时间是指输入信号产生时刻与由此使输出信号状态发生变化时刻的时间间隔。
系统响应时间=输入滤波时间+输出滤波时间+扫描时间
5 硬件与程序设计
6 控制系统的总装与统调
9.2 PLC控制系统的程序设计
编程方法
一般地,PLC的编程有三种方法:经验法、解析法和图解法。
1 经验法
即是运用自己的或别人的经验进行设计。多数是设计前先选“样机”,并结合自己的情况,对“样机”逐一修改,直至适合自己的情况。“样机”多为与自己情况类似的一个或若干个成功的程序,也可为具有一些典型功能的标准程序。在工作过程中,可收集与积累这些“样机”,从而可不断丰富自己的经验。
2 解析法
PLC的逻辑控制,实际是逻辑综合问题。所以,可根据组合逻辑或时序逻辑的理论,并运用相应的解析方法,对其进行逻辑关系的求解,然后,再根据求解的结果,或画成梯形图,或直接编写程序。解析法比较严密,可以运用一定的标准,使程序优化与算法化,并可避免编程的盲目性,是较有效的方法。
3 图解法
图解法是靠画图进行PLC程序设计。常见的主要有三种方法:梯形图法、波形图法及流程图法。
梯形图法是很基本的方法。无论经验法,还是解析法,若把PLC程序等价成梯形图后,就要用到梯形图法。
波形图法很适合于时间控制电路。把对应信号的波形画出后,再依时间用逻辑关系去组合,就可很容易把电路设计出来。
流程图是用框图表示PLC程序执行过程及输入条件与输出间关系。在使用步进指令的情况下,用它进行设计,是很方便的。
图解法与解析法不能截然分开。解析法中也要画图,而图解法中也要列解析式子,只是这两者各有其侧重。
10手持编程器及编程软件的使用
PLC程序的写入、调试及监控是通过编程器实现的。编程器是PLC的重要的外围设备,它一方面对PLC进行编程,另一方面又能对PLC的工作状态进行监控。选用不同的编程设备可用不同的手段进行编程。FX系列PLC的编程设备有FX20P-E编程器、GP-80FX-E图形编程器,还可以用编程软件SWOPC-FXGP/WIN—C在个人计算机上进行编程。编程器具有对程序进行读、写、插入、删除、修改、检查、监视等功能。本章简单介绍目前常用的FX-20P-E手持编程器和编程软件SWOPC-FXGP/WIN-C的使用。读者可通过上机操作,熟练掌握手持编程器和编程软件的使用。
10.1 手持编程器及其使用
FX-20P-E编程器可以用于FX系列FX2、FX0、FX0N、FX2C、FX2N型PLC,也可以通过FX-20P-E-FKIT转换器用于Fl和F2系列PLC。
FX-20P-E和一般编程器一样,有在线编程和离线编程两种方式。在线编程也叫联机编程,编程器和PLC直接相连,并对PLC用户程序存储器进行直接操作。在写入程序时,若未装EEPROM卡盒时,程序就写入了PLC内部的RAM;若装有EEPROM卡盒时,则程序就写入了该存储器卡盒。在离线编程方式下,编制的程序先写入编程器内部的RAM,再成批地传送到PLC的存储器,也可以在编程器和ROM写入器之间进行程序传送。
10.2编程软件及其使用
三菱公司的SWOPC-FXGP/WIN-C编程软件,是应用于FX系列PLC的中文编程软件,在Windows 9x或Windows 3.1及以上操作系统运行。
谢谢!
下篇结束