1、第7章可编程控制器编程语言以梯形图为主的简明、易学的工业控制编程方法7.1 编程语言7.1.1 梯形图语言 由接触器继电器电路的形式演变而来,形象、直观、实用,为电气技术人员熟悉。图7-1表示了这两种梯形图的表达形式,这两种梯形图的基本表达思想是一致的,具体表达方式有一定区别。1.梯形图的格式 整个梯形图有多个阶梯组成;每个在最右边的输出可构成一个阶梯;每个阶梯可有多个支路组成;梯形图结构从左到右,从上到下 布置;复杂的支路放在左边和上边;每个编程元素以符号加数字表示。2.梯形图编程格式的特点 梯形图的继电器是存储位代表的软继电器 梯形图中的电流是从左到右的“概念”电流;软继电器常开、常闭接点
2、可以无限使用;PLC中的输入继电器有触点、无线圈;梯形图的逻辑运算结果,可以马上使用;梯形图中的输入接点和线圈;输出继电器线圈只反映输出映像的对应位7.1.2 助记符语言是一种与汇编语言类似的编程语言;表达式:操作码+操作数 操作码+操作数+参数操作数的分配原则:1.每个独立的元素指定互不重复的操作数;2.所指定的参数必须是在该型号PLC允许的范围内。7.1.3 逻辑功能图 采用半导体逻辑电路的逻辑功能框图表示可编程控制器的逻辑组合;一个逻辑功能框表示一种运算功能;常用的逻辑运算功能有“与”,“或”,“非”三种逻辑运算功能。7.1.4 高级语言 在大型可编程控制器中,为完成比较复杂的控制任务时
3、,有采用高级语言进行编程 各种可编程控制器的编程语言和符号是有差异的,但编程的基本原理和方法是相同或相似的。.2 梯形图画法 触点符号:分为输入、输出和内部各种继电器及常开、常闭触点。触点的基本画法见图;输出符号:分为输出和取反输出,输出的基本画法见图;数据处理指令符号:有多种功能,画法见图;逻辑电源符号:基本画法见图。.2.2 梯形图使用规则1.由多个梯形组成,代表一个逻辑方程;2.由软件的存储器代表“软继电器”;3.电路中流过的是“概念电流”;4.软继电器的触点可以多次使用;5.输入输出的是存储器的状态;6.存储器的输出需要模块;7.触点在有,线圈在坐;8.线圈能够并联,不能串联;9.程序
4、结实要有。.2.3 逻辑运算的梯形图表示1.“与”运算,触点串联;2.“或”运算,触点并联;3.“非”运算,取反。编程原则:从左向右,从上向下进行编程,不能返回。桥式电路必须化简为繁,见图以下将以OMRON的指令为例进行教学7.3 可编程控制器编程基础7.3.1 基本指令LD/LD NOT 图AND/AND NOT图OR/OR NOT 图OUT/OUT NOT 图END 图7.3.2 逻辑块指令1.AND LD 图2.OR LD 图3.逻辑块指令串联 图、图应用举例 图4.多个输出指令 图编程举例将继电器接触器控制的正、反转控制电路转化为可编程控制器的梯形图电路图(a)是电气控制电路;图(b)
5、是的端口分配;图(c)是的梯形图;图(d)是的程序指令。7.4 可编程控制器常用指令7.4.1 概述基本指令包括输入、输出和逻辑与、或、非功能指令包括定时/计数器、数据移位、传送比较、算术运算、数制转换、逻辑运算、程序分支与跳转、子程序中断、步进、网络和其他系统操作指令。常用指令的格式1.微分指令:在指令前加,在执行条件变off后执行一个扫描周期;2.指令的数据区和标志:即指令的操作数,通常以字母+通道号表示;常数加#。系统标志:ER:出错标志;CY:进位标志;EQ:等于标志;GR:大于步骤;LE:小于步骤。7.4.2 基本指令 LD (基本指令应用见图7-31)OUT AND OR NOT
6、END AND LD OR LD7.4.3 连锁IL和连锁清除ILC IL和ILC必须成对使用;当IL条件不满足时,在IL和ILC之间的所有程序都不满足。编程举例:图7-32 IL的串联使用:图7-337.4.4 暂存继电器TR 在具有一个以上输出分支的地方作为一个暂存工作位。当不能用IL和ILC编程时,可以使用TR;PLC中有8个TR暂存继电器,TR0TR7。使用举例:图7-347.4.5 跳转JMP和跳转结束JME 当JMP条件为off时,跳过JMP和JME之间的程序;JMP00是一个特殊情况,当JMP00和JME00之间的指令被跳过时,这些指令仍被处理但不执行,即占用扫描时间;JMP00
7、和JME00可以多次使用,但其他只能使用一次。JMP和JME指令应用,见图7-35,367.4.6 锁存继电器KEEP 维持ON或OFF直到条件改变;和HR或AR使用,实现掉电保持;应用举例,见图7-37,7-38,7-397.5 可编程控制器功能指令7.5.1 微分指令DIFU(13)和DIFD(14)DIFU上升沿微分指令,在off变 on时,输出一个周期;DIFD下升沿微分指令,在on变 off 时,输出一个周期。应用举例:图7-407.5.2 定时器和计数器指令 定时器和计数器的地址编号相同,不能重复;定时器有低速TIM和高速TIMH,都采用减计数,输入条件满足,从设定值SV开始计时,
8、到零时输出ON;计数器有单向减法计数器CNT和双向可逆计数器CNTR;设定值SV必须是BCD码。定时器的应用1.定时器指令TIM:以0.1秒为单位计时,SV的范围是09999,应用举例见图7-422.高速定时器指令TIMH:以0.01秒为单位计时,SV的范围是09999,应用举例见图7-43 延长定时器的延时时间的两个方法:采用多个定时器;采用定时器和计数器结合。计数器的应用3.计数器指令CNT:是预置递减计数器,计数范围是00009999,有一个计数输入端CP和复位端R t,见图7-48;4.可逆计数器指令CNTR:有加、减两个输入端,可分别输入递增信号和递减信号。CNTR计数器的应用见图7
9、-51。扩展计数器的应用见图7-53;用计数器实现定时器应用见图7-55。7.6 数据处理指令7.6.1 数据移位指令1.移位寄存器SFT:图7-562.可逆移位寄存器SFTR/SFTR:图7-613.算术左移ASL/ASL:图7-644.算术右移ASR/ASR:图7-655.循环左移ROL/ROL:带进位CY图7-676.循环右移ROR/ROR:带进位CY图7-687.数字左移SLD和SLD:左移一个BCD码的字(4位)图7-698.数字右移SRD和SRD:右左移一个BCD码的字(4位)9.字移位WSFT和WSFT:左移一个字(16位)图7-707.6.2 数据传送指令1.数据传送MOV/M
10、OV:图7-712.块设置BSET/BSET:图7-723.块传送XFER/XFER:图7-754.数据交换XCHG/XCHG:通道交换5.位传送MOVB/MOVB:8位二进制6.字传送MOVD/MOVD:四位BCD码7.6.3 数据比较指令1.单字比较CMP/CMP:图7-80,比较结果通过GR、EQ和LE输出;2.块比较BCMP/BCMP:图7-813.块表比较TCMP/TCMP:7.6.4 数制转换指令1.BCD至两进制转换BIN(23)/BIN(23)图7-82 BIN指令2.双通道BCD至两进制BIN(58)/BIN(58)图7-83 BINL指令3.两进制至BCD转换BIN(24)
11、/BIN(24)图7-48 BCD指令4.双通道两进制至BCD转换BIN(24)/BIN(24)图7-85 BCDL指令7.6.5 BCD运行指令1.递增指令INC(38)/INC(38)2.递减指令DEC(39)/DEC(39)3.进位标志CY置位STC(40)/清除CLC(41)4.BCD加法指令ADD(30)/ADD(30)5.双通道BCD加法ADDL(54)/ADDL(54)6.BCD减法指令SUB(31)/SUB(31)加减法时往往需要先清除进位标志CYBCD运算例题见图7-86 7-917.6.6 逻辑运算指令1.求反指令COM(29)/COM(29)2.逻辑与指令ANDW(34)
12、/ANDW(34)3.逻辑或指令ORW(35)/ORW(35)4.逻辑异或XORW(36)/XORW(36)5.逻辑同或XNRW(37)/XNRW(37)以上指令的例子见图7-92 图7-967.7 子程序和中断控制程序 子程序是将大量的控制任务分离成许多小的控制任务,可以组合使用,也可以重复使用。当主程序调用一个子程序时,控制就转到子程序,子程序执行完毕,返回主程序的调用处的后一条指令。中断和子程序的调用类似,中断使主程序停顿,完成中断任务后,再执行开始中断程序的后一条指令。中断可以是外部的输入信号产生,也可以是内部定时产生中断。中断分为一般中断方式和高速中断方式,一般中断方式,CPU处理完
13、当前程序后停止主程序响应中断,高速中断方式,CPU停止当前程序,立即响应中断。宏指令MCRO(89)指令,宏指令以一个单独的子程序(格式)替代几个具有相同结构、不同操作数的子程序。7.7.1 中断指令1.一般中断程序:中断控制字DM6620是全0000;2.高速中断方式:中断控制字DM6620是首位是1,其余位任意 1-;当中断响应时间精确到1ms时使用高速中断,定时中断时间间隔设置DM6622,可以设置10ms或1ms 的倍数。(图7-99)7.2.2 子程序调用指令SBS(91)子程序编号00至15与中断同时使用,子程序编号99被用于定时中断;主程序中将SBS放在要执行的子程序处,子程序编
14、号表示要调用的子程序,当SBS为ON时,PLC根据子程序编号调用相同编号的SBN和RET之间的程序,完成后返回到SBS后的程序。SBS可以多次调用,见图7-101、102、1037.7.3子程序定义和返回SBNRET 在SBN(92)指令中,每个子程序编号只能使用一次;SBN(92)表示一个子程序的开始;RET(93)表示一个子程序的结束;所有子程序都安排在主程序的结尾。7.7.4 宏指令MCRO(99)MCRO指令有4个输入字(SR290-293),4个输出字(SR294-297);子程序执行时,将数据从这些输入、输出口中传输;宏指令的应用见图7-106、1077.7.5 中断控制指令INT
15、(89)INT(89)设置中断方式,表7-2,表7-2中6种是输入中断,3种定时中断,2种屏蔽或非屏蔽所有中断。中断应用见图7-109、7-1107.7.6 步指令 STEP(08)和SNXT(09)步指令成对使用,用步指令可以按照指定的顺序执行程序;在步指令可以反复使用PLC的内部资源;在步指令中不能使用IL(02)/ILC(03)、JMP(04)/JME(05)、SBN(92)和END(01)指令。1.步定义和步起动STEP/SNXT STEP(08)B定义一个程序段(一个步)的开始。STEP(08)B不需要执行条件,即其执行与否由控制位B来控制;SNXT(09)B用来启动程序位B的程序段
16、,在ON的条件下执行SNXT(09)B指令,具有相同控制位B的步被执行,若执行条件为OFF,则该步将不执行 SNXT(09)必须在STEP(08)之前。步指令应用举例1.顺序执行:图7-114;2.分支执行:图7-117;3.并行执行:图7-120。7.7.7 特殊指令1.出错报警指令FAL(06)和严重故障报警指令FALS(07)2.信息显示MSG(46)/MSG(46)3.位计数指令FUN(67)/FUN(67)4.设置系统定时器WDT(94)/WDT(94)5.I/O刷新IORF(97)/IORF(97)本章小结 本章主要介绍了PLC的指令系统和如何将继电器接触器电路转化为PLC控制的基本方法。本章内容重要,希望同学们认真学习,做好实验。练习题:P279习题6习题7习题8