710 likes | 945 Vues
第 16 章 可编程序控制器. 16.1 可编程控制器的结构和基本工作原理 16.2 PLC 的内部寄存器及 I/O 配置 16.3 PLC 的编程语言概述 16.4 OMRON 公司可编程控制器的程序. 16.1 可编程控制器的结构和基本工作原理. 1 )什么是 PLC ?. PLC 是一种专门用于工业控制的计算机。. 早期的 PLC 是用来替代继电器、接触器控制的。它主要用于顺序控制,只能实现逻辑运算。因此, 被称为可编程逻辑控制器( Programmable logic controller ,略写 PLC ).
E N D
第16章 可编程序控制器 16.1 可编程控制器的结构和基本工作原理 16.2 PLC的内部寄存器及I/O配置 16.3 PLC的编程语言概述 16.4 OMRON公司可编程控制器的程序
16.1可编程控制器的结构和基本工作原理 1)什么是PLC ? PLC 是一种专门用于工业控制的计算机。 早期的PLC是用来替代继电器、接触器控制的。它主要用于顺序控制,只能实现逻辑运算。因此,被称为可编程逻辑控制器(Programmable logic controller,略写 PLC ) 随着电子技术、计算机技术的迅速发展,可编程控制器的功能已远远超出了顺序控制的范围。被称为可编程控制器(Programmable controller,略写PC)。为区别于Personal Computer (PC),故沿用PLC这个略写。
主机 2)PLC的结构及工作原理 1.PLC结构示意图 地址总线 控制总线 各种开关 照明 输 入 接 口 中 央 处 理 单 元 存 储 器 输 出 接 口 数 据 存 储 器 继电器接点 电磁装置 行程开关 执行机构 模拟量输入 。。。。 地址总线 控制总线 数据总线 电源 编程 单元
(1)CPU:(1) 将各种输入信号取入存储器。 (2) 编译、执行指令。 (3) 把结果送到输出端。 (4) 响应各种外部设备的请求。 2.各组成部分的作用 (2)存储器: RAM:存储各种暂存数据、中间结果、用户正调 试的程序。 ROM:存放监控程序和用户已调试好的程序。
不同型号的PLC使用不同的CPU,制造商用CPU的指令系统编写系统程序,并固化到只读存储器ROM中,CPU 按系统程序赋予的功能,接收编程单元输入的用户程序和数据,存入RAM中。 CPU按扫描方式工作,从0000首址存放的第一条用户程序开始,到用户程序的最后一个地址,不停地周期性扫描,每扫描一次,用户程序就执行一次。
(3) 输入、输出接口: 采用光电隔离,减小了电磁干扰。 输出三种形式:继电器 -- 低速大功率 可控硅 -- 高速大功率 晶体管 -- 高速小功率 (4) 各种接口、高功能模块: 便于扩展。 小型机:一体机。有接口可扩展。 中、大型机:模块式。可根据需要在主板上随意组合。
POWER CPU PC FP1-C16 小型机: 中、大型机:
(5) 编程单元: 是一台专用的微机控制器,在编程单元上有显示屏和键盘,用键盘上的按键输入用户程序,还可以调试、删改、插入这些程序。 3.可编程控制器的基本工作原理 可编程控制器按循环扫描方式工作。每个循环称为一个扫描周期T。一个扫描周期要完成下列工作: 自诊断、与编程器的数据交换、输入采样、执行用户程序、输出刷新.
I/O刷新 O 刷新 I 刷新 执行指令 一个扫描周期 工作方式 这种工作方式 有什么好处? 微机:等待命令。 PLC:循环扫描。 CPU从第一条指令开始执行,遇到结束符又返回第一条,不断循环。 对慢速响应系统, 增强了抗干扰能力。
4.主要技术指标 1) 输入/输出点数 ( I/O点数 )。 2) 扫描速度 单位:ms/1000步 或 s/1000步 3) 内存容量。 4) 指令条数。 5) 内部寄存器数目。 6) 编程语言
简单介绍OMRON公司C系列主要技术指标 OMRON公司C系列的机型: P为小型机、H为高档机、K为功能更强型机。 OMRON公司C系列的C200H机型为例: 1)最大输入/输出点数 ( I/O点数 ):480 2)扫描速度 :每条基本指令处理时间0.75-2.25 s 3)数据存储容量:2000字 4)指令条数:173 5)编程容量:6.6K
PLC的优点 1. 抗干扰、可靠性高。 2. 模块化组合式结构,使用灵活方便。 3. 编程简单,便于普及。 4. 可进行在线修改。 5. 网络通讯功能,便于实现分散式测控系统。 6. 与传统的控制方式比较,线路简单。
PLC的 应用 1. 用于开关逻辑控制。 2. 用于机加工数字控制。 3. 用于闭环过程控制。 4 用于组成多级控制系统。
16.2 PLC的内部寄存器及I/O配置 PLC的内部寄存器分为: 1)输入/输出寄存器区 用于存放输入、输出信号,可直接于外部输入输出端传递信息。 2)内部辅助寄存器区 用于存放中间变量,它的作用相当于传统继电器控制电路中的中间继电器。 3)数字寄存器区 用于数据存储,存放中间结果。它只能以寄存器(16位)方式进行操作。
4)专用寄存器区 这个区域包括:定时器、计数器、标志位寄存器、内部指令寄存器。 定时器:主要起时间继电器的作用控制,用于延时 计数器:用于记录计数输入信号到来的个数 标志位寄存器:用于监测系统工作状态、产生的时钟信 号及各种标志的专用寄存器 内部指令寄存器:用于存放PLC的内部指令。 用户在对这四个区进行操作时,可以以寄存器(16位)和/或接点(1位)的方式进行。
F E D C B A 9 8 7 6 5 4 3 2 1 0 寄存器 以I/O区为例: 寄存器是一个16位二进制单元,16位中的每一位是一个接点,对应外部的一个输入/输出端子。 寄存器000-029共30个通道,其中000-009共10个通道,在CPU母板上。010-029位于I/O扩展板上。 PLC通过 I/O寄存器与外部设备相连,输入用于接收现场来的输入信号,一旦某输入端上的外部信号于输入电源形成回路,对应的输入继电器动作。
× × × × × 通道号(寄存器号) 位(点)号 (0-15) 在OMRON公司的产品中: 寄存器采用4-6位阿拉伯数码寻址。
区 域 名 称 通 道 号 I/O寄存器区(继电器区 000-029不用的I/O通道作为内部辅助寄存器 内部继电器区 IR 030-250 专用继电器区 SR 250-255 暂存继电器区 TR RT0-TR7(只有8位) 保持继电器区 HR HR00-HR99 辅助存储继电器区 AR AR00-AR27 链接继电器区 LR LR00-LR63 定时/计数继电器区 TC TM000-TM511 数据存储区 DM MD0000-MD0999(读/写) DM1000-DM1999(只读) C200H PLC的数据区通道号分配表
16.3 PLC编程语言概述 与一般的计算机语言相比,PLC的编程语言,具有明显的特点。它既不同与高级语言,也不同于汇编语言。PLC的主要用户是工程技术人员,应用场合是工业过程。因此,PLC的编程语言简单,易于编写和调试,但应用范围比较窄。 目前,各个PLC的生产厂家使用的语言互不兼容。常用的PLC使用的编程语言有梯形图语言、助记符语言和计算机高级语言,一般的小型机多使用多使用梯形图语言或指令助记符语言,本章着重介绍这两种语言 。
16.3.1 梯形图语言 梯形图语言是一种图形语言,它是以继电器控制系统的电气原理图为基础演变而来的。它沿用了传统的继电器控制中的触点、线圈、串并联等术语和图形符号还加进了许多功能强、使用灵活的指令,使得编程更加容易。 梯形图语言比较形象、直观,对于熟悉继电器控制系统的人来说,容易接受。世界上各个PLC的生产厂家都把梯形图语言作为第一用户编程语言。
(2)梯形图中的接点(对应触头)有两种: 常开( ) 和 常闭( ) 不同的继电器用不同的寄存器编号表示。梯 形图的每个逻辑行必须是触点与母线相连。 1.梯形图的语言格式: (1)梯形图的左边为起始母线,右边为结束母线。 右边结束母线可省略不画。梯形图按从左到 右、从上到下的顺序排列,每个继电器线圈 为一个逻辑行,最后是线圈输出,整个图形 呈阶梯型。
(3)输出继电器用 表示, 并标出相 应的I/O寄存器编号,输出寄存器只能输出一次, 输出前面必须有接点。 (4)继电器触点作为输入元素可使用无数次,用线 圈驱动的触点可多次用作输入,既可用动合触 点,又可用动断触点, (5)一段完整的梯形图程序,必须用END结束
A B C QS KH FU KMF KMR SB1 KMF SBF KMF KH KMR KMF SBR KMR M 3~ 例:三相异步电动机的正反转控制 I/O分配: SB10000 SBF 0001 SBR 0002 KMF 0500 KMR 0501 KMR
KH KMF KMR SB1 SBF KMF KMR KMF SBR 0000 0501 0001 0500 KMR 0500 0501 0000 0500 0002 0501 END I/O分配: SB10000 SBF 0001 SBR 0002 KMF 0500 KMR 0501 梯形图语言
16.3.2指令助记符语言 指令助记符语言是用一系列可编程控制器的操作命令组成的语句表.这些操作命令将控制逻辑关系描述出来,通过编程器将这些命令输入到可编程控制器。 重点介绍20条基本指令及某些用于数据传送的指令和位移指令。掌握这些指令后,就可以用PLC取代继电器控制电路,完成原来用继电器控制较难实现的逻辑控制功能。 可编程控制器的指令由助记符和操作数两部分组成,助记符标志计算机的CPU执行此条指令完成的功能,操作数指出CPU的操作对象(寄存器的地址、通道号、位号)。
1)操作数的寻址方式 (1)直接寻址 指令中的操作数存放于存储器中,存储器由若干个通道组成。每个通道为16个二进制数位,每位叫做一个继电起(软继电器)。在指令格式中,操作数以所在继电器的地址码形式给出,叫做直接寻址。 (2)间接寻址 数据存储区(DM)的数据访问可采用间接寻址方式,可用DM表示。将DM的内容作为操作数的实际地址。 (3)立即数寻址 当立即数作为操作数时,需要在立即数前面加上 “#”以示与继电器号的区别。
读取指令:LD s 梯形图: 功能:读入每一逻辑线开头的常开触点状态,用于每条逻辑线的开始。 操作数s:除DM区以外的寄存器点号。 s 输出指令:OUT s 梯形图: 功能:将运算结果输出。 操作数s:IR、HR、TR、AR、LR。 s 2)基本指令
“与”指令:AND s 梯形图: 功能:逻辑“与”运算,用于串联一个常开触点。 操作数s:IR、SR、HR、TR、AR、LR。 “或”指令:OR s 梯形图: 功能:逻辑“或”运算,用于并联一个常开触点。 操作数s:IR、SR、HR、TR、AR、LR s s
读取动断触点指令:LDNOT s 梯形图: 功能:读入逻辑线开头的动断触点状态。 非指令:NOT 梯形图: 功能:对操作数求“反”,可与上述指令配合使用, 用于对常闭触点的操作。
OUTNOT s 梯形图: 功能:将运算结果求反后输出。 s “与非”指令:ANDNOT s 梯形图: 功能:逻辑“与非”运算,串联一个常闭触点。 “或非”指令:ORNOT s 梯形图: 功能:逻辑“或非”运算,用于并联一个常闭触点。 s s
“块与”指令:ANDLD 梯形图: 功能:两个程序块(触点组)的串联 “块或”指令:ORLD 梯形图: 功能:两个程序块(触点组)的并联 结束指令:END 功能:程序结束。PLC执行用户程序时,总是从第一 条开始遇到END结束。
地址 指令 数据 00000 LD 00000 00001 OR 00001 00002 00000 00200 00002 ANDNOT 00002 00001 00003 OUT 00200 00004 00003 00201 00004 LD 00003 00006 00005 00005 AND 00004 00008 00007 00006 LD 00005 00202 00010 00009 00007 ANDNOT 00006 00008 ORLD 00009 OUT 00201 00010 LD 00007 00011 OR 00009 00012 LD 00008 00013 OR 00010 00014 ANDLD 00015 OUT 00202 00016 END END 用这些基本指令可编制出“与”、“或”混合基本逻辑控制程序。如下图
2.3)C200H PLC的特殊功能指令 (1)分支指令和分支结束指令 IL(02)/ILC(03)(指令后的小括号内的数,表示它的指令代号)。IL(02)总是和ILC(03)一起使用,分别位于一段分支程序的首尾处。 几点注意: a.IL前面的条件为ON时,IL-ILC之间的程序正常执行。IL前面的条件为OFF时,IL-ILC之间的程序不执行。此时,两指令间所有输出位被关断,所有定时器被复位,所有计数器、移位寄存器、保持继电器不发生变化。 b.分支指令IL可以实现程序分支,用于工作方式的切换,与LD指令连用,作为支路的开始,分支结束指令ILC作为支路返回信号,IL-ILC指令成对使用。
指令 数据 00000 LD 00000 00001 IL(02) 00002 LD 00001 地址 00003 AND 00002 00000 00004 OUT 00200 00001 00002 00005 LD 00003 00003 00006 OUT 00201 00004 00007 LDNOT 00004 00008 OUT 00202 00009 ILC(03) IL 02 00202 00201 00200 ILC(01) C.分支不允许嵌套(如IL-IL-ILC-ILC),但允许不成对出现(IL-IL-ILC)。在程序中使用IL-IL-ILC后,程序检查时,认为出错,编程器上会显示“IL-ILC-ERR”,但不影响执行。 IL和ILC的应用举例
地址 指令 数据 00000 LD 00000 00001 OUT TR0 00002 AND 00002 00003 OUT 00200 00000 00002 TR0 00004 LD TR0 00003 00005 AND 00003 00001 00004 00006 OUT 00201 TR1 00004 00007 LD TR0 00008 AND 00001 00009 OUT TR1 00010 ANDNOT 00004 00011 OUT 002O2 00012 LD TR1 00013 AND 00004 00014 OUT 00203 00201 00202 00200 00203 (2) 暂存指令:TR 暂存继电器TR0-TR7用于暂存中间逻辑结果,记录程序分支点的状态。暂存指令TR的使用,只是为了方便编程,对程序的执行不产生影响。同一个暂存器在一个程序段中只能使用一次,在不同的程序段中,可重复使用。 暂存指令举例
(3)跳转指令:JMP(04)/JME(05) JMP为跳转开始,JME跳转结束。C200H的跳转指令用跳转号n来区分,n的范围为00-99。 几点注意: a.JMP n前面的条件为OFF时,在JIMPn与JMEn之间的程序不执行。当JMPn前面的条件为ON时,在JIMPn与JMEn之间的程序执行,与没有跳转指令相同 b.跳转指令JMP/JME与分支指令IL/ILC一样,可实现程序的分支。两者的区别在于,当输入条件OFF时,IL/ILC之间的继电器全部释放,而JMP/JME之间的继电器均为保持。所以JMP/JME适用于控制某些需要保持的设备,如气动装置和液压系统,而IL/ILC适用于控制某些不需要输出保持的设备。
c.跳转号n是00-99之间的任何一个两位数,非零跳转编号在程序中只能使用一次,而JMP00与JME00可在程序中多次使用。c.跳转号n是00-99之间的任何一个两位数,非零跳转编号在程序中只能使用一次,而JMP00与JME00可在程序中多次使用。 d.JMP00与JME00的程序块在JMP 00前面的条件为OFF时,仍需处理,占用扫描时间,当跳转号n≠0时,JMPn与JMEn之间的程序块在JMP n前面的条件为OFF时,不进行处理,不占用扫描时间。 e.可以嵌套使用(如JMP01-JMP02-JME02-JME01)。允许不成对出现(JMP01-JMP02-JME02),这样使用后,程序检查时,认为出错,编程器上会显示“JMP-JME-ERR”,但不影响执行。
地址 指令 数据 00000 LD 00000 00001 JMP 01 00000 JMP01 00002 00003 00002 LD 00002 00001 00003 OUT 00200 00004 JMP02 00005 00004 LD 00003 00005 OUT 00201 00200 00201 00006 LD 00001 00007 JMP 02 00008 LD 00004 00009 OUT 00202 00010 LD 00005 00011 OUT 00203 00012 JME 02 00013 LD 00200 00014 AND 00201 00015 OUT 00204 00016 JME 01 00204 00200 00203 00201 00202 JME02 JME01 跳转指令的编程举例
St R KEEP B (4)保持指令:KEEP 语句格式:KEEP s 操作数s:IR、HR、AR、LR区的继电器号 梯形图格式: KEEP指令有一个置位端St,一个复位端R。用于改变一个位的状态。
复位优先 KEEP指令时序图 置位端St 复位端R KEEP位 编程时先编置位端,后编复位端,然后编KEEP指令。当置位端为ON时,复位端OFF时,KEEP状态为ON;当置位端为OFF时,复位端ON时,KEEP位保持原状态不变。KEEP指令只能以位为单位操作,且不影响标志位。当置位输入St和复位输入R同时为ON时,复位输入优先。
指令 数据 00000 LD 00002 00001 LD 00003 00002 KEEP HR0010 地址 00002 00003 KEEP HR0010 当KEEP指令使用HR或AR数据区时,断电后保持断电前的状态;使用IR或LR数据区时,断电后变为OFF。 KEEP指令的编程举例
DIFU B DIFD B (5)微分指令:DIFU/DIFD 语句格式: 前沿微分指令:DIFU S 后沿微分指令:DIFD S 操作数S:IR、HR、AR、LR 梯形图 前沿微分指令DIFU,是上升沿微分指令。在输入端检测到一个OFF→ON的跳变时,DIFU输出为ON。
地址 指令 数据 00000 LD 00000 00001 DIFU 22500 00002 DIFD 22501 00000 22500 22501 一次扫描时间 一次扫描时间 微分指令的时序图 DIFD 22501 DIFU 22500 00000 后沿微分指令DIFD,是下降沿微分指令。在输入端检测到一个ON→OFF的跳变时,DIFD输出为ON。 微分指令的编程举例
(6)定时器和计数器指令 共有四种,两种定时器,两种计数器。定时器和计数器都有设定值SV和当前值PV。设定值SV可以使用不同的数据区,其值为BCD数,由用户程序设定;当前值PV取决于定时器计数器的工作状态和设定值SV,由PLC自动处理,也可由用户程序进行设定 a.定时器指令TIM 语句格式:TIM N,T N:定时器编号,范围000-511共512个。 T:时间设定值,范围0000-9999的一个四位数。 定时器TIM 为通电延时,基本延时单位为0.1s。定时器是减1定时器,定时时间到,定时器触点接通,当输入条件为ON时,开始每0.1s的减1运算,定时器当前值减到0时,为“定时时间到”——定时器触点接通并保持。当输入条件为OFF时,定时器复位,当前值恢复为设定值T,触点断开。
TIM N T T为设定值SV 定时器相当于时间继电器,精度为0.1秒,电源掉电时,定时器复位,即定时器无掉电保护功能 梯形图 TIM设定值SV的数据区:IR、HR、AR、LR、DM、*DM、#。 b.高速定时器指令TIMH 高速定时器指令TIMH和定时器指令TIM的语句格式、梯形图、功能基本一样。不同的是,高速定时器指令TIMH的基本延时单位为10ms
计数端CP CNT N D 复位端R C.计数器指令CNT 语句格式:CNT N,D N:定时器编号,范围000-511共512个。 D:一般是立即数,范围0000-9999的一个四位数: 梯形图 计数器指令CNT为减1计数,当计数器输入端CP每一次由OFF→ON,计数器的当前值就减1,在计数器当前值减至0时,计数触点接通并保持。当计数器的输入信号CP和复位信号R同时到达时,复位优先。计数器的编程顺序为先编计数输入信号CP,再编复位端R,最后是计数器CNT。 CNT设定值D的数据区:IR、HR、AR、LR、DM、*DM、#。
计数端CP(+) CNTR N D 计数端CP(-) 复位端R d.可逆计数器指令CNTR 语句格式:CNTR(12)N,D; N:定时器编号,范围000-511共512个 D:一般是立即数,范围0000-9999的一个四位数; 梯形图 CNTR是一个环形可逆计数器指令,根据输入信号为(+)端或(-)端,可分别作递增或递减计数器。 CNTR设定值D的数据区:IR、HR、AR、LR、DM、*DM、#。
指令 数据 00000 LD 00000 00001 TIM 001 #900 地址 00000 TIM 001 #900 00002 LD TIM001 TIM001 TIM 002 #900 00003 TIM 002 TIM002 #900 00200 00004 LD TIM002 00005 OUT 00200 定时器/计数器应用举例 用两个定时器串联组成一个3min定时器。
地址 指令 数据 00000 LD 00000 00001 ANDNOT TIM001 00002 ANDNOT CNT002 CNT 002 TIM 001 00000 TIM 001 00003 TIM 001 #50 TIM001 CP CNT 002 #0100 #50 00001 R 00004 LD TIM001 CNT002 00200 00005 LD 00001 00006 CNT 002 #0100 00007 LD CNT002 00008 OUT 00200 用几个定时器和计数器联合使用,组成一个500s的定时器。TIM每5s产生一个脉冲,CNT002对该脉冲计数。得到一个500s的定时器。