您好,欢迎访问三七文档
PLC功能指令教学目的1、掌握功能指令的使用格式。2、掌握跳转指令的使用及其特点。3、掌握中断指令的使用及其特点。4、掌握子程序调用指令的使用及其特点。一、FX系列可编程控制器功能指令概述1功能指令的通用表达形式2数据长度3功能指令类型4位元件5变址寄存器V、Z1功能指令的通用表达形式图8-2应用指令的表示形式及要素D10D12D14FNC20(D)ADD(P)S1·S2·D·①①②②③③④④⑤⑤⑥⑥X000应用指令段源操作数目的操作数执行条件◥二、程序流程控制功能指令条件跳转指令CJ子程序调用指令CALL与返回指令SRET中断返回指令IRET、允许中断指令EI与禁止中断指令DI主程序结束指令FEND监视定时器刷新指令WDT循环开始指令FOR与循环结束指令NEXT条件跳转指令CJCJ、CJP指令用于跳过顺序程序某一部分的场合,以减少扫描时间。条件跳转指令CJ应用说明如图图8-9手动/自动转换程序FNC00CJX025P5手动程序FNC00CJX025自动程序ENDP5P6P6FNC00CJP8X00004X001Y001X002M16X003S1811RSTT246X00515X004T0K10X006T246K100018RSTC022X007X010C0K2025FNC12MOVK329D0X011FNC00CJP936P8X000X012Y00140P943RSTT246RSTC0X013图8-4条件跳转指令使用说明X020FNC00CJP9FNC00CJP9X022P9X021Y005图8-5两条跳转指令使用同一指针标号图8-7跳转指令用于程序初始化FNC00CJPLSP7M100M8002M100P7Y002Y006X023跳转程序LDX020CJP9LDX021CJP9P9LDX022OUTY005Y001X024X010P10图8-6指针标号可以设在跳转指令之前FNC00CJP10子程序调用指令CALL与返回指令SRET子程序应写在主程序之后,即子程序的标号应写在指令FEND之后,且子程序必须以SRET指令结束。X001100104FNC06FEND主程序P10P11FNC01CALL(P)P10FNC01CALL子程序P11FNC02SRETFNC02SRET子程序END①②X030图8-10子程序在梯形图中的表示中断返回指令IRET、允许中断指令EI与禁止中断指令DI图8-13外部输入中断子程序*M8050X001FNC04EIFNC05DIFNC06FENDI001Y012FNC03IRETY011ENDM8013M8000SETY000Y011M8013X001=0时,M8050=0,允许标号I001的中断子程序执行X000上升沿时中断执行一次Y011由M8013驱动,每秒闪一次Y011输出是X000在上升沿时为1,Y012输出由M8013决定主程序结束指令FENDFEND指令表示主程序的结束,子程序的开始。程序执行到FEND指令时,进行输出处理、输入处理、监视定时器刷新,完成后返回第0步。FEND指令通常与CJ-P-FEND、CALL-P-SRET和I-IRET结构一起使用(P表示程序指针、I表示中断指针)。CALL指令的指针及子程序、中断指针及中断子程序都应放在FEND指令之后。CALL指令调用的子程序必须以子程序返回指令SRET结束。中断子程序必须以中断返回指令IRET结束。监视定时器刷新指令WDT如果扫描时间(从第0步到END或FEND)超过100ms,PLC将停止运行。在这种情况之下,应将WDT指令插到合适的程序步(扫描时间不超过100ms)中刷新监视定时器。循环开始指令FOR与循环结束指令NEXTFOR~NEXT之间的程序重复执行n次(由操作数指定)后再执行NEXT指令后的程序。循环次数n的范围为1~32767。若n的取值范围为-32767~0,循环次数作1处理。FOR与NEXT总是成对出现,且应FOR在前,NEXT在后。FOR~NEXT循环指令最多可以嵌套5层。利用CJ指令可以跳出FOR~NEXT循环体。循环指令由FOR及NEXT二条指令构成,这二条指令总是成对出现的。如梯形图8-21所示。FNC08FORK4FNC08FORD3(D3)=3FNC08FORK1X000(K1X000)=4FNC24INCD100M8000FNC09NEXTFNC09NEXTFNC09NEXT①②③图8-21循环指令使用说明*传送与比较指令比较指令CMP区间比较指令ZCP传送指令MOV移位传送指令SMOV取反传送指令CML块传送指令BMOV多点传送指令FMOV数据交换指令XCHBCD变换、BIN变换指令比较指令CMPCMP指令有三个操作数:两个源操作数[S1.]和[S2.],一个目标操作数[D.],该指令将[S1.]和[S2.]进行比较,结果送到[D.]中。CMP指令使用说明如图所示。X000FNC10CMPS1·S2·D·K200C21M0M0M1M2K200C21当前值,M0=ONK200=C21当前值,M1=ONK200C21当前值,M2=ONX000断开后不执行CMP指令时,M0~M2保持X000断开前的状态如要清除比较结果,要采用复位RST指令。如图8-23。X000RSTRSTRSTM0M1M2或用区间复位指令复位X000FNC40ZRSTM0M2M0~M2复位图8-23比较结果复位图8-14定时器中断子程序M8056FNC40ZRSTM1M3FNC12MOVK0D0X001T0X001K100T0Y001Y002M2FNC04EIFNC05DIFNC06FENDY003M8013I610M8000M2FNC24INCD0FNC10CMPK1000D0M1FNC03IRETEND(K1000D0当前值,M1=ON)I610每0.01秒使D0加1,计到1000时,正好为10秒X00110秒Y001=Y002(K1000=D0当前值,M2=ON)(K1000D0当前值,M3=ON)区间比较指令ZCPZCP指令是将一个操作数[S.]与两个操作数[S1.]和[S2.]形成的区间比较,且[S1.]不得大于[S2.],结果送到[D.]中。ZCP指令使用说明如图5.15所示。X000FNC11ZCPS1·S2·D·K100K200C20M3M4M5K100>C20当前值时,M3=ONK100≤C20当前值≤200时,M4=ONK200<C20当前值时时,M5=ONX000断开后不执行ZCP指令时,M3~M5保持X000断开前的状态S·M3在不执行指令清除比较结果时,可采用图8-23进行比较结果复位。传送指令MOVMOV指令将源操作数的数据传送到目标元件中,即[S.]→[D.]。MOV指令的使用说明如图所示。当X0为ON时,源操作数[S.]中的数据K100传送到目标元件D10中。当X0为OFF,指令不执行,数据保持不变。(3)位软元件的传送,可用图8-28中右图MOV指令来表示左图的顺控程序。移位传送指令SMOV首先将二进制的源数据(D1)转换成BCD码,然后将BCD码移位传送,实现数据的分配、组合。源数据BCD码右起从第4位(m1=4)开始的2位(m2=2)移送到目标D2/的第3位(n=3)和第2位,而D2/的第4和第1两位BCD码不变。然后,目标D2/中的BCD码自动转换成二进制数,即为D2的内容。BCD码值超过9999时出错。511000111011500S·D·m1m2nFNC13SMOVD1K4K2K3D2X000D1(16位BIN)10210110310001100自动转换D1(4位BCD)49754不变不变位移D2(4位BCD)01010100自动转换D2(16位BIN)m1=4m2=2n=32.移位传送指令应用(1)图8-31是三位BCD码数字开关与不连续的输入端连接实现数据的组合。102101100图8-31数字开关的数据组合块传送指令BMOVBMOV指令是从源操作数指定的元件开始的n个数组成的数据块传送到指定的目标。如果元件号超出允许的元件号范围,数据仅传送到允许的范围内。BMOV指令的使用说明如图所示。数据交换指令XCHXCH指令是将两个目标元件D1和D2的内容相互交换。使用说明如图所示。BCD变换、BIN变换指令BCD是将源元件中的二进制数转换为BCD码送到目标元件中。对于l6位或32位二进制操作数,若变换结果超出0-9999或0-99999999的范围就会出错。BCD指令常用于将PLC中的二进制数变换成BCD码输出以驱动LED显示器。BIN是将源元件中的BCD码转换为二进制数送到目标元件中。常数K不能作为本指令的操作元件。如果源操作数不是BCD码就会出错。BIN指令常用于将BCD数字开关的设定值输入到PLC中。电动机的Y—△起动控制用PLC基本逻辑指令编程实现三相异步电动机Y—△起动,KM3(星形接触器)先闭合,KM1(主接触器)再闭合,经过3s延时KM3断开,KM2(三角形接触器)闭合。I/O分配:停止按钮(X0),起动按钮(X1),热继电器常开触点(X2),主接触器KM1(Y0),星形接触器(KM3),三角形接触器KM2(Y1)。外置计数器算术运算和逻辑运算指令加法指令ADD、减法指令SUB乘法指令MUL、除法指令DIV加1指令INC、减1指令DEC字逻辑运算指令(FNC26~FNC29)加法指令ADD、减法指令SUBADD指令是将指定的源元件中的二进制数相加,结果送到指定的目标元件中去。每个数据的最高位作为符号位(0为正,1为负),运算是二进制代数运算。减法指令SUB与ADD指令类似。乘法指令MUL、除法指令DIVMUL指令是将两个源元件中的数据的乘积送到指定目标元件。如果为16位数乘法,则乘积为32位,如果为32位数乘法,则乘积为64位,如图5.25所示。数据的最高位是符号位。加1指令INC、减1指令DECINC、DEC指令操作数只有一个,且不影响零标志、借位标志和进位标志。在16位运算中,32767再加1就变成了-32768。32位运算时,2147483647再加1就变成-2147483648。DEC指令与INC指令处理方法类似。二、算术及逻辑运算指令应用实例335645X四则运算式的实现编程实现:算式的运算。式中“X”代表输入端口K2X000送入的二进制数,运算结果送输出口K2Y000;X020为启停开关。二、算术及逻辑运算指令应用实例彩灯正序亮至全亮、反序熄至全熄再循环控制实现彩灯控制功能可采用加1、减1指令及变址寄存器Z来完成的。彩灯有12盏,各彩灯状态变化的时间单位为1s,用秒时钟M8013实现。图中X001为彩灯控制开关,X001=OFF时,禁止输出继电器M8034=1,使12个输出Y000~Y014为OFF。M1为正、反序控制。一、循环与移位控制类指令说明(一)循环右移和循环左移指令该类指令的助记符、指令代码、操作数、程序步如表所示。表循环右移、左移指令的要素指令名称指令代码位数助记符操作数范围程序步D(·)n循环右移FNC30◥(16/32)RORROR(P)KnY、KnM、KnST、C、D、V、ZK、H移位量n≤16(16位)n≤32(32位)ROR、RORP…5步DROR、DRORP…9步循环左移FNC31◥(16/32)ROLROL(P)ROL、ROLP…5步DROL、DROLP…9步*M8022M80221501110001011100010循环右移n=4执行一次后进位01500000000011111111**M8022M80221501110001011100010循环左移n=4执行一次后进位11501111111100000000*X000D·nK4FNC30RORPD0X001D·nK4FNC31ROLPD0(a)循环右移(b)循环左移**图8-62循环移位指令使用说明*第六节数据处理指令及其应用数据处理指令含批复位指令、编、译码指令以及平均值计算指令等。其中批复位指令可用于数据区的初始化,编、译码指令可用于字元件中某个
本文标题:PLC功能指令
链接地址:https://www.777doc.com/doc-3096559 .html