《功能指令及应用.ppt》由会员分享,可在线阅读,更多相关《功能指令及应用.ppt(65页珍藏版)》请在三一办公上搜索。
1、第八章 功能指令及应用,讲师:丁卡尼电邮:,由NordriDesign提供,学完本章之后,你应该能够:熟悉FX2N系列PLC功能指令的表示形式及含义;了解功能指令的分类,熟悉各种应用指令操作数的用法;掌握常用功能指令的功能、用法和应用;,教学目标,主要内容(第六章 PLC梯形图程序设计方法),8.1 应用指令的表示形式及含义8.2 应用指令的分类与操作数说明8.3 程序流向控制指令8.4 比较与传送指令8.5 运算指令8.6 循环移位与移位指令8.7 程序设计举例,引言,可编程控制器的基本指令是基于继电器、定时器、计数器类软元件,主要用于逻辑处理的指令。作为工业控制计算机,PLC仅有基本指令是
2、远远不够的。PLC制造商逐步在PLC中引入功能指令(Functional Instruction),或称为应用程序(Applied Instruction),这使得可编程控制器成了真正意义上的计算机。近年来,功能指令又向综合性方向迈进了一大步。,8.1 应用指令的表示形式及含义,图8.1所示是应用指令的梯形图形式。FX2N系列PLC在梯形图中使用功能框表示功能指令,分别含有应用指令的名称(助记符)和操作数。,图8.1 应用指令的梯形图形式,8.1 应用指令的表示形式及含义,FX2N系列可编程控制器的功能指令是采用计算机通用的助记符形式来表示的。一般用指令的英文名称或缩写作为助记符,如指令助记符
3、MEAN用来表示取平均值的指令。这种表达方式的优点是直观,稍具计算机程序知识的人马上可以悟出指令的功能。,8.1 应用指令的表示形式及含义,操作数分为源(Source)操作数、目标(Destination)操作数及其他操作数源操作数是指令执行后不改变其内容的操作数,用表示目标操作数是指令执行后将改变其内容的操作数,用D表示其他操作数用m或n表示,它们常用来表示常数,或作为源操作数和目标操作数的补充说明。表示常数时,K为十进制,H为十六进制。如果可以使用变址功能,则表示为S和D如果源或目标不止一个,可表示为S1,S2,D1,D2等,8.1 应用指令的表示形式及含义,功能指令依处理数据的长度分为1
4、6位指令和32位指令。其中32位指令用(D)表示,无(D)符号的为16位指令。功能指令有脉冲执行型和连续执行型。指令中标有(P)的为脉冲执行型。,8.1 应用指令的表示形式及含义,功能指令的功能号和指令助记符占一个程序步,每个操作数占2个或4个程序步(16位操作数是2个程序步,32位操作数是4个程序步),图8.1中同时给出了功能指令MEAN的指令语句表和步序号。在使用简易编程器的场合,输入功能指令时,应先按FNC 键,再输入功能指令的编号,如MEAN的编号为FNC45。使用HELP 键的帮助功能,可以显示出功能指令助记符和编号的一览表。,8.2 应用指令的分类与操作数说明,FX2N PLC应用
5、指令有14类,下仅列出其中9类:,8.2 应用指令的分类与操作数说明,下面重点介绍应用指令处理数据和运算过程中均要用到的数据寄存器、变址寄存器、中断指针和特殊辅助继电器。数据寄存器与位组合数据(1)数据寄存器(D)特殊寄存器用于存储数值数据,其值可通过应用指令、数据存取单元及编程装置进行读出或写入。每个数据寄存器都是16位,最高位为符号位,0:正数,1:负数,如图8.2所示。,图8.2 16位数据寄存器,图8.3 32位数据寄存器,8.2 应用指令的分类与操作数说明,两个相邻的数据寄存器(如D10、D11),可组成32位数据寄存器,亦是最高位为符号位,如图8.3所示。数据寄存器分为一般型、停电
6、保持型和特殊型。,表8.1 数据寄存器编号,注:一般型一旦写入数据,只要不再写入其他数据,其内容不会变化,但PLC停止运行或停电时,所有数据将清零。但在M8033被驱动时例外,即数据可以保持,8.2 应用指令的分类与操作数说明,(2)位组合数据用位元件表示,4位一组,表示1个十进制数字,其形式为KnP,K表示十进制常数,n为组数,P为元件(通常为X、Y、M、S)。例如:K1X0、K2Y0、K3Y0,8.2 应用指令的分类与操作数说明,2、变址寄存器(V、Z)(1)变址寄存器的形式变址寄存器也是可进行读写的寄存器,字长为16位,共有16个,分别为V0V7和Z0Z7。变址寄存器也可以组成32位数据
7、寄存器,组合状态如图8.4。,图8.4 组合成32位变址寄存器,图8.5 变址寄存器使用示例,8.2 应用指令的分类与操作数说明,(2)变址寄存器有关参数的修改数据寄存器编号的修改16位指令操作数的修改32位指令操作数的修改常数K的修改输入/输出继电器编号的修改定时器当前值得修改,图8.6 变址寄存器参数修改示例之一,8.2 应用指令的分类与操作数说明,8.7 变址寄存器参数修改示例之二,8.2 应用指令的分类与操作数说明,3、指针(P/I)指针用作跳转、中断等程序的入口地址,与跳转、子程序、中断程序等指令一起应用。其地址号用十进制数分配。按用途可分为分支指针(P)和中断指针(I)。,8.2
8、应用指令的分类与操作数说明,(1)分支指针P分支指针P用于条件跳转指令、子程序调用指令,地址号P0P63(FX2n)63点,而P63则相当于END指令,表示跳转结束注意:编程时指针号不能重复使用(2)中断指针I中断指针I 有以下三种类型,与应用指令FNC03(IRET)中断返回、FNC04(EI)允许中断、FNC05(DI)禁止中断一起组合使用输入中断I定时器中断,8.3 程序流向控制指令,程序跳转及中断指令共有10条,这10条程序流程指令含义见下表表8.2 程序流程指令及含义,8.3 程序流向控制指令,8.3.1 条件跳转指令CJ(FNC00)1.指令使用图8.8所示为条件跳转指令在梯形图中
9、的具体应用格式。(1)在图8.8中,若X0=1,程序跳转到标号P8,处;X0=0,则顺序执行程序,这是有条件转移。若执行条件为M8000,则称为无条件跳转,因为M8000触点在PLC通电运行叫就自动接通(2)一个标号只能使用一次,但两条跳转指令可以使用同一标号。编程时,标号占一行。(3)图8.9所示为带有P63标号的跳转指令,图8.8 条件跳转指令的应用格式,8.3 程序流向控制指令,图8.9 条件跳转指令的编程,8.3 程序流向控制指令,2.应用举例 工业控制中经常用到手动和自动控制电路,两种电路程序要切换。图8.10所示即为采用CJ完成手动和自动控制切换程序,X0为切换方式开关,X1为手动
10、计数脉冲,M8013为秒脉冲,X10为清零开关。,图8.10 利用CJ指令完成自动/手动方式切换程序,8.3 程序流向控制指令,子程序调用指令CALL-SRET(FNC01、FNC02)1.指令使用(1)图8.11所示为CALL指令在程序中的基本格式。指针号在程序中只能用一次。(2)CALL指令一般安排在主程序中,主程序的结束有FEND指令。子程序开始端有PXX指针号,最后又SRET返回主程序。(3)图8.11中X0为调用子程序条件。当X0为ON时,调用P10SRET子程序并执行。当X0为OFF时,不调用子程序,主程序按顺序运行。,图8.11 子程序调用指令的基本使用格式,8.3 程序流向控制
11、指令,(4)子程序调用指令可以嵌套,最多为5级。图8.12所示是一嵌套例子。,图8.12子程序的嵌套示例,8.3 程序流向控制指令,2.应用举例采用子程序调用指令,可以优化程序结构,提高编程效果。,图8.13 子程序调用应用示例,8.3 程序流向控制指令,中断指令IRET、EI、DI(FNC03、FNC04、FNC05)1.中断指令的使用说明(1)IRET:中断子程序返回主程序;EI:允许中断;DI:禁止中断。图8.14所示为中断指令使用说明。EIDI为允许中断区间,当中断条件出现在主程序此区间内则转向执行有中断标号的子程序。,图8.14中断指令的使用,8.3 程序流向控制指令,(2)中断子程
12、序开始有中断标号,由IRET返回。中断子程序一般出现在主程序后面。中断标号必须对应允许中断的条件。(3)中断子程序可嵌套最多二级,多个中断信号同时出现,中断标号低的有优先权。(4)对中断标号为I00I50的输入中断,对应M8050M8055为1时中断被禁止。对中断标号为I6I8 的定时器中断,对应M8056M8058为1时中断被禁止。(5)在特殊场合主程序设计中采用中断指令,可以有目的预先应付突发事件。中断指令也适合于一些必须定时监控诊断的主程序中。,8.3 程序流向控制指令,2.应用举例(1)外部输入中断子程序,图8.15 外部输入中断子程序,8.3 程序流向控制指令,(2)定时中断子程序,
13、图8.16定时器子程序示例,8.3 程序流向控制指令,主程序结束指令FEND(FNC06)FEND指令表示主程序结束。程序执行到FEND时,进行输入、输出处理,监视定时器和计数器刷新,全部完成以后返回到程序的00步。使用该指令时应注意,子程序和中断子程序必须写在主程序结束指令FEND和END指令之间。在有跳转(CJ)指令的程序中,用FEND作为主程序和跳转程序的结束。在调用子程序(CALL)中,子程序、中断子程序应写在FEND之后且用SRET和IRET返回指令。当主程序中有多个FEND指令,CALL或中断子程序必须写在最后一个FEND及END之间。结束指令的使用如图8.17所示,8.3 程序流
14、向控制指令,监视定时指令(WDT(FNC07)在程序的执行过程中,如果扫描的时间(从第00步到END或FEND语句)超过200ms(FN2PLC监视定时器100ms,FX2N为200ms),则PLC将停止运行。在这种情况下使用WDT指令可以刷新监视定时器,使程序执行到END或FEND。WDT为连续型执行指令,WDT(P)为脉冲型指令。两种工作状态的梯形图、工作波形图如图8.17所示。,图8.17 WDT两种工作状态,8.3 程序流向控制指令,要改变监视定时器时间,可通过改变D8000的数值进行。利用监视定时指令WDT可以将超过200ms的程序(假设240ms)一分为二。,图8.18 修改监视定
15、时值,图8.19 监视定时指令WDT的应用,8.3 程序流向控制指令,循环指令FOR、NEXT(FNC08、FNC09)FOR、NEXT为循环开始和循环结束指令。循环指令的使用如图8.20,在程序运行时,位于FOR-NEXT间的程序可循环执行几次后,再执行NEXT指令后的程序。循环次数n由FOR后跟操作数指定,循环次数值范围为132767。FOR、NEXT指令可嵌套使用,最多允许5级嵌套。FOR、NEXT必须成对使用,否则出错NEXT指令不允许写在END、FEND指令的后面,8.3 程序流向控制指令,图8.20 FOR、NEXT指令的使用,图8.21FOR、NEXT应用示例,8.4 比较与传送
16、指令,比较指令CMP、ZCP(FNC10、FNC11)1.指令说明CMP为比较指令,ZCP为区间比较指令。要清楚比较结果,用复位指令。(1)比较指令CMP比较指令CMP的使用及复位如图。比较指令是将源操作数S1、S2中的数据进行比较,比较结果影响目标操作数D的状态。当X0=OFF时,CMP指令不执行。M0、M1、M2(2)区间比较指令ZCP区间比较指令ZCP的使用如图。该指令是将一个数S与两个源操作数S1、S2进行代数比较,比较结果影响目标操作数D的状态。2.应用实例图所示为CMP的应用示例,8.4 比较与传送指令,8.4.1 传送指令MOV(FNC12)1.基本格式传送指令MOV的格式如图8
17、.25所示,图8.25 传送指令的格式,8.4 比较与传送指令,2.应用举例图8.26所示是MOV指令的两个应用图8.27所示是将PLC输入端X0X3的状态送到输出端Y0Y3的两种编程方法。注意:在MOV指令中K1X0,K1Y0是位组合数据,分别表示X0X3,Y0Y3,图8.26传送指令的应用,图8.27 进行位软元件传送数值的两种编程方法,8.4 比较与传送指令,8.4.3 位传送指令SMOV(FNC13)1.指令说明位传送指令SMOV的格式与功能如图8.28所示。,图8.28 位传送指令格式与功能,当X0=ON时,将源操作数S即(D1)中的二进制数先转换成BCD码,再把(D1)中的BCD传
18、送到(D2)中,最后(D2)中的BCD码转换成二进制。,8.4 比较与传送指令,2.应用举例图8.29所示为BCD码合成的一个例子。,图8.29 位传送指令应用举例(BCD码合成),8.4 比较与传送指令,反相传送指令CML(FNC14)1.指令说明反相传送指令CML的格式与功能如图8.30所示。当条件X0=0时,将源操作数D0中二进制数每位取反然后送到目标操作数中,D中若为常数,则自动地先转换成二进制数。,图8.30反相指令CML格式与功能,8.4 比较与传送指令,2.应用举例本例为CML作反相输入或输出指令。,图8.31 反相指令的应用,8.4 比较与传送指令,8.4.5 数据交换指令XC
19、H(FNC17)1.指令说明数据交换指令XCH的格式与功能如图8.32所示。当X0=ON,则操作数D1、D2及(D10)、(D11)中的数据进行交换若D1、D2为同一地址号时,在特殊继电器M8160接通后,表示数据的高八位与低八位交换,同理(D)XCH指令,在该条件下表示高十六位于低十六位交换。,图8.32 XCH指令格式与功能,图8.33 XCH指令的特殊说明,8.4 比较与传送指令,2.注意事项该指令用脉冲执行型较好,即XCH(P)可达到一次交换数据的效果。若采用连续执行型,则每个扫描均在交换数据,这样最后的交换结果就不能确定,在编程时应引起注意。,8.4 比较与传送指令,8.4.6 BC
20、D码变换指令BCD(FNC18)1.指令说明BCD变换指令是将源地址中的二进制数转换为BCD码后送到目标地址中,其格式与功能如图8.34所示。2.注意事项(1)BCD指令转换结果超过09 999(16位运算)或099 999 999(32位运算)时,则出错(2)若将PLC的二进制数转换成BCD码并用LED七段显示器显示,可用BCD指令。,图8.34 BCD指令格式与功能,8.4 比较与传送指令,8.4.7 二进制变换指令BIN(FNC19)BIN指令与BCD指令相反,它是将源地址中即S中的BCD码转换成二进制存入目标地址D,其格式与功能如图8.35所示。BCD码数值范围为09 999(16位运
21、算)或099 999 999(32位运算),如遇常数K将自动进行二进制变换处理。,8.35 BIN指令格式与功能,8.5 算术运算与字逻辑运算指令,8.5.1 加法指令ADD(FNC201.指令说明2.注意事项加法操作指令影响3个常用标志,即M8020零标志、M8021借位标志、M8022进位标志。如果运算结果为0,则零标志M8020置1;如果运算结果超过32 767(16位运算)或2 147 483 647(32位运算),则进位标志M8022置1;如果运算结果小于-32 767(16位运算)或-2 147 483 647(32位运算),则借位标志M8021置1。,图8.36 ADD指令格式与
22、功能,8.5 算术运算与字逻辑运算指令,8.5.2 减法指令SUB(FNC21)8.5.1 乘法指令MUL(FNC20,图8.37 SUB指令格式与功能,图8.38 MUL指令格式与功能,8.5 算术运算与字逻辑运算指令,8.5.4 除法指令DIV(FNC23),图8.39 DIV指令格式与功能,8.5 算术运算与字逻辑运算指令,8.5.5 加1指令和减1指令INC(FNC24)、DEC(FNC25)加1指令和减1指令的格式与功能如图8.40所示。注意脉冲执行与连续执行的区别,图8.40加1和减1指令格式与功能,8.5 算术运算与字逻辑运算指令,8.5.6 字逻辑与、或、异或指令字逻辑与指令W
23、AND(FNC26)、或指令WOR(FNC27)、异或指令WXOR(FNC28),其基本格式及功能如图8.41所示。注意:使用上述指令要注意采用连续执行型还是脉冲执行型,16位操作还是32位操作。,图8.41 字逻辑运算指令格式与功能,8.5 算术运算与字逻辑运算指令,8.5.7 算术运算指令应用实例1.四则运算式的实现若某程序运算38X/255+2,式中X为输入端K2X0送入的二进制数,运算结果送输出端K2Y0端。其梯形图如图8.42所示。,图8.42 四则运算应用实例,8.5 算术运算与字逻辑运算指令,2.利用乘、除法实现移位控制有一组灯15盏,接于输出点Y0Y16上(Y0Y7,Y10Y1
24、6),要求灯每隔1s单个移动,并循环。,图8.43 灯组移位控制,8.6 循环移位与移位指令,8.6.1 循环移位指令1.循环右移指令ROR(FNC30)循环右移指令ROR的格式与功能如图8.44所示循环右移指令:有16位移位和32位移位。ROR(P)是脉冲型,在X0为ON状态下只执行一次,ROR为连续型,在每个扫描周期都会执行一次移位,图8.44 循环右移指令格式与功能,8.6 循环移位与移位指令,2.循环左移指令ROL(FNC31)循环右移指令ROR的格式与功能如图8.45所示,图8.45 循环左移指令格式与功能,8.6 循环移位与移位指令,8.6.2 带进位的循环右移、左移指令RCR、R
25、CL(FNC32、FNC33)带进位的循环右移指令RCR的格式与功能如图8.46所示。带进位循环左移指令RCL的格式功能说明类似RCR指令,只是左移而已,不再复述。,图8.46 RCR指令执行示意图,8.6 循环移位与移位指令,8.6.3 位右移、位左移指令SFTR、SFTL(FNC34、FNC35)位右移指令SFTR的格式和功能说明如图8.47所示。N1为指定位元件长度,n2指定移位位数,且有n2n11024。SFTR(P)为脉冲型指令,仅执行一次。用SFTR为连续型指令,移位操作每个扫描周期执行一次。SFTL为位左移指令,指令格式和移位说明与SFTR类同,只是向左移位。SFTL(P)为脉冲
26、型指令,SFTL为连续型指令,不再重复。,图8.47 位右移指令格式与功能说明,8.6 循环移位与移位指令,8.6.4 字右移、字左移指令WSFT、WSFL(FNC36、FNC37)字右移、字左移指令与位移位指令功能类同,字移位时以字为单位向右或左移位。字左位指令WSFL格式与功能说明如图8.48所示 当XO为ON时,(D3D0)(D13D1),(Dl3D10)(Dl7D14),(D17D14)(D2l,D18),(D2lD18)(D25,D22),(D25D22)移出。n1=Kl6是指定D的长度为16个,n2=K4是指每次移动的一组数据,D中出现的是最低位的数据地址(如D10)。WSFL和W
27、SFR都分脉冲型和连续型指令。,图8.48 字左移指令格式及移位状态,8.6 循环移位与移位指令,用位元件进行字移位指令,是以8个数为一组进行。如K1XO代表X7X0,K2X0代表X17X10、X7X0,用位元件进行的字右移指令格式与功能说明如图8.49所示。,图8.49 以位元件进行的字右移指令格式及移位状态,8.7 程序设计举例,8.7.1 电动机的Y-启动控制程序 图8.50(a)为电动机Y-启动控制电气主电路,图(b)为PLC I/O接线图,图(c)为PLC控制程序梯形图。,图8.50 异步电动机Y-启动控制,H3、H4、H5为十六进制数即为0011、0100、0101。启动按钮X0,
28、停止按钮X1,热继电器过载停机动合触点X2。电路主电源接触器KMl接于输出接口Y0,电动机Y联结的接触器KM2接于输出接口Y1,电动机联结的接触器KM3接于输出接口Y2。按SBl(XO),电动机Y形启动(传送常数H3,Y0、Y1为1);当转速上升到一定程度,即启动延时6 s后,断开YO、Y1,接通Y2(传送常数H4,YO、Yl为0,Y2为1)。l s后又接通Y0、Y2(传送常数115,YO、Y2为1),这时电动机接为运行。按sB2(Xl),电机停止(传送常数为O,YO、Y1、Y2为0)。在过载时,热继电器触点FR(X2)接通,电机也停止。K1Y0为位组合数,表示Y0Y3,8.7 程序设计举例,
29、子程序调用彩灯控制现有彩灯16盏,分两组,每组8盏。如一组为红灯,另一组为绿灯。红灯组接于输出接口YOY7,绿灯组接于输出接口Yl0-Y17。为显示美观,红灯、绿灯交替间隔布置。红灯;L2 YO-Y7正序每隔ls轮流点亮,当Y7亮后,停5s;然后,反向逆序每隔1 s轮流点亮,当YO亮后,停5s。这时轮到绿灯组丁作。绿灯组先以Y10一Y17正序逐一点亮至全部亮,又反序Y17YI0逐一熄灭到全部熄灭。接着又轮到红灯组工作,循环1 000次上述彩灯控制程序梯形图如8.51所示。FOR设定循环次数1 000次,是考虑了晚上灯组工作时间l0 h以上。X0是启动控制开关,当XOON时灯组开始工作。Xl是停
30、止开关,X1一ON时灯组停止工作。因此在工作状态必须使XO=0N,X1=OFF M8002为PLC通电初始脉冲,M8034为1,禁止全部输出。Z为变址寄存器,置初值8,即K4YOZ起始元件为Y10。M8013为秒脉冲。,8.7 程序设计举例,图8.51子程序调用彩灯控制,8.7 程序设计举例,8.7.3 密码锁程序 用比较器构成密码锁系统。六位键输入密码锁的程序梯形图及I/O接线图如图8.52所示,如用12位键、16位键组成输入密码数,则具有更好的保密性和实用性。输入按钮可分别接于XOX17,输入数据必须与程序设定的各位数据比较,数据完全相同时密码锁才能开锁。本程序中的六个程序预先设定数为H2
31、A4,H1E,H151,H18A,H3B,H4C。K2X0表示输入XOX7,由X0X7输入六个数必须与程序中设定数比较相等时密码锁南输出Y0开锁,10 s后又重新锁定。,8.7 程序设计举例,图8.52 密码锁控制程序梯形图及I/O接线图,小结,本章介绍了应用指令的格式、含义、分类及功能,列举了各应用指令的一些应用实例。本章中的转移、子程序调用、比较、传送、移位等应用指令十分频繁地应用在实际编程,因此作了重点介绍并列举了一些实例。这些应用实例能使读者对应用指令的使用有更深刻的理解。不同型号的PLC,其应用指令的分类及数目有所不同,可能相同的功能在不同型号PLC上其助记符等有所不同,读者要区别认识(见附录3)。本章介绍了FX2NPLC的大多数应用指令,但也有部分不常用的应用指令未予介绍。应用指令的使用可简化程序,使程序功能明确,特别适用于结构复杂的工业应用程序中,而且扩展了PLC编程使用范围。,感谢您的关注,