《功能指令及应用课件》由会员分享,可在线阅读,更多相关《功能指令及应用课件(65页珍藏版)》请在金锄头文库上搜索。
1、第八章 功能指令及应用,讲师:丁卡尼 电邮:,由NordriDesign提供 ,学完本章之后,你应该能够:熟悉FX2N系列PLC功能指令的表示形式及含义; 了解功能指令的分类,熟悉各种应用指令操作数的用法; 掌握常用功能指令的功能、用法和应用;,教学目标,主要内容(第六章 PLC梯形图程序设计方法),8.1 应用指令的表示形式及含义 8.2 应用指令的分类与操作数说明 8.3 程序流向控制指令 8.4 比较与传送指令 8.5 运算指令 8.6 循环移位与移位指令 8.7 程序设计举例,引言,可编程控制器的基本指令是基于继电器、定时器、计数器类软元件,主要用于逻辑处理的指令。 作为工业控制计算机
2、,PLC仅有基本指令是远远不够的。 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 应用指令的表示形式
4、及含义,功能指令依处理数据的长度分为16位指令和32位指令。其中32位指令用(D)表示,无(D)符号的为16位指令。 功能指令有脉冲执行型和连续执行型。指令中标有(P)的为脉冲执行型。,8.1 应用指令的表示形式及含义,功能指令的功能号和指令助记符占一个程序步,每个操作数占2个或4个程序步(16位操作数是2个程序步,32位操作数是4个程序步),图8.1中同时给出了功能指令MEAN的指令语句表和步序号。 在使用简易编程器的场合,输入功能指令时,应先按 FNC 键,再输入功能指令的编号,如MEAN的编号为FNC45。使用 HELP 键的帮助功能,可以显示出功能指令助记符和编号的一览表。,8.2 应
5、用指令的分类与操作数说明,FX2N PLC应用指令有14类,下仅列出其中9类:,8.2 应用指令的分类与操作数说明,下面重点介绍应用指令处理数据和运算过程中均要用到的数据寄存器、变址寄存器、中断指针和特殊辅助继电器。 数据寄存器与位组合数据 (1)数据寄存器(D) 特殊寄存器用于存储数值数据,其值可通过应用指令、数据存取单元及编程装置进行读出或写入。每个数据寄存器都是16位,最高位为符号位,0:正数,1:负数,如图8.2所示。,图8.2 16位数据寄存器,图8.3 32位数据寄存器,8.2 应用指令的分类与操作数说明,两个相邻的数据寄存器(如D10、D11),可组成32位数据寄存器,亦是最高位
6、为符号位,如图8.3所示。 数据寄存器分为一般型、停电保持型和特殊型。,表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位,共有
7、16个,分别为V0V7和Z0Z7。 变址寄存器也可以组成32位数据寄存器,组合状态如图8.4。,图8.4 组合成32位变址寄存器,图8.5 变址寄存器使用示例,8.2 应用指令的分类与操作数说明,(2)变址寄存器有关参数的修改 数据寄存器编号的修改 16位指令操作数的修改 32位指令操作数的修改 常数K的修改 输入/输出继电器编号的修改 定时器当前值得修改,图8.6 变址寄存器参数修改示例之一,8.2 应用指令的分类与操作数说明,8.7 变址寄存器参数修改示例之二,8.2 应用指令的分类与操作数说明,3、指针(P/I) 指针用作跳转、中断等程序的入口地址,与跳转、子程序、中断程序等指令一起应用
8、。其地址号用十进制数分配。按用途可分为分支指针(P)和中断指针(I)。,8.2 应用指令的分类与操作数说明,(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 程序流向控制指令
9、,8.3.1 条件跳转指令CJ(FNC00) 1.指令使用 图8.8所示为条件跳转指令在梯形图中的具体应用格式。 (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.应用举例工业控制中经常用到手动和自动控制电路,两种
10、电路程序要切换。图8.10所示即为采用CJ完成手动和自动控制切换程序,X0为切换方式开关,X1为手动计数脉冲,M8013为秒脉冲,X10为清零开关。,图8.10 利用CJ指令完成自动/手动方式切换程序,8.3 程序流向控制指令,8.3.2子程序调用指令CALL-SRET(FNC01、FNC02) 1.指令使用 (1)图8.11所示为CALL指令在程序中的基本格式。指针号在程序中只能用一次。 (2)CALL指令一般安排在主程序中,主程序的结束有FEND指令。子程序开始端有PXX指针号,最后又SRET返回主程序。 (3)图8.11中X0为调用子程序条件。当X0为ON时,调用P10SRET子程序并执
11、行。当X0为OFF时,不调用子程序,主程序按顺序运行。,图8.11 子程序调用指令的基本使用格式,8.3 程序流向控制指令,(4)子程序调用指令可以嵌套,最多为5级。图8.12所示是一嵌套例子。,图8.12子程序的嵌套示例,8.3 程序流向控制指令,2.应用举例 采用子程序调用指令,可以优化程序结构,提高编程效果。,图8.13 子程序调用应用示例,8.3 程序流向控制指令,8.3.3中断指令IRET、EI、DI(FNC03、FNC04、FNC05) 1.中断指令的使用说明 (1)IRET:中断子程序返回主程序;EI:允许中断;DI:禁止中断。图8.14所示为中断指令使用说明。EIDI为允许中断
12、区间,当中断条件出现在主程序此区间内则转向执行有中断标号的子程序。,图8.14中断指令的使用,8.3 程序流向控制指令,(2)中断子程序开始有中断标号,由IRET返回。中断子程序一般出现在主程序后面。中断标号必须对应允许中断的条件。(3)中断子程序可嵌套最多二级,多个中断信号同时出现,中断标号低的有优先权。 (4)对中断标号为I00I50的输入中断,对应M8050M8055为1时中断被禁止。对中断标号为I6I8 的定时器中断,对应M8056M8058为1时中断被禁止。 (5)在特殊场合主程序设计中采用中断指令,可以有目的预先应付突发事件。中断指令也适合于一些必须定时监控诊断的主程序中。,8.3
13、 程序流向控制指令,2.应用举例 (1)外部输入中断子程序,图8.15 外部输入中断子程序,8.3 程序流向控制指令,(2)定时中断子程序,图8.16定时器子程序示例,8.3 程序流向控制指令,8.3.4主程序结束指令FEND(FNC06) FEND指令表示主程序结束。程序执行到FEND时,进行输入、输出处理,监视定时器和计数器刷新,全部完成以后返回到程序的00步。 使用该指令时应注意,子程序和中断子程序必须写在主程序结束指令FEND和END指令之间。 在有跳转(CJ)指令的程序中,用FEND作为主程序和跳转程序的结束。在调用子程序(CALL)中,子程序、中断子程序应写在FEND之后且用SRE
14、T和IRET返回指令。当主程序中有多个FEND指令,CALL或中断子程序必须写在最后一个FEND及END之间。 结束指令的使用如图8.17所示,8.3 程序流向控制指令,8.3.5监视定时指令(WDT(FNC07) 在程序的执行过程中,如果扫描的时间(从第00步到END或FEND语句)超过200ms(FN2PLC监视定时器100ms,FX2N为200ms),则PLC将停止运行。在这种情况下使用WDT指令可以刷新监视定时器,使程序执行到END或FEND。 WDT为连续型执行指令,WDT(P)为脉冲型指令。两种工作状态的梯形图、工作波形图如图8.17所示。,图8.17 WDT两种工作状态,8.3
15、程序流向控制指令,要改变监视定时器时间,可通过改变D8000的数值进行。利用监视定时指令WDT可以将超过200ms的程序(假设240ms)一分为二。,图8.18 修改监视定时值,图8.19 监视定时指令WDT的应用,8.3 程序流向控制指令,8.3.6循环指令FOR、NEXT(FNC08、FNC09) FOR、NEXT为循环开始和循环结束指令。循环指令的使用如图8.20,在程序运行时,位于FOR-NEXT间的程序可循环执行几次后,再执行NEXT指令后的程序。循环次数n由FOR后跟操作数指定,循环次数值范围为132767。 FOR、NEXT指令可嵌套使用,最多允许5级嵌套。 FOR、NEXT必须
16、成对使用,否则出错 NEXT指令不允许写在END、FEND指令的后面,8.3 程序流向控制指令,图8.20 FOR、NEXT指令的使用,图8.21FOR、NEXT应用示例,8.4 比较与传送指令,8.4.1比较指令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.25所示,