EXIT第6章FX2NPLC功能指令及应用第6章第1页第6章FX2NPLC功能指令及应用6.1功能指令使用要素6.2程序流程控制(FNC00~FNC09)6.3传送和比较(FNC10~FNC19)6.4四则运算及逻辑运算(FNC20~FNC29)6.5循环移位与移位(FNC30~FNC39)6.6数据处理(FNC40~FNC49)6.7高速处理(FNC50~FNC59)6.8方便指令(FNC60~FNC69)EXIT第6章FX2NPLC功能指令及应用第6章第2页6.1.1功能指令的表现形式功能指令按功能号(FUC00~FUC99)编排。每条功能指令都有一个助记符。6.1功能指令使用要素例如FUC45的助记符“MEAN”在编程时用“HELP”键,可显示功能号与对应的助记符清单。在读出程序时,功能号与助记符同时显示。有些功能指令只需指定功能号即可。但许多功能指令在指定功能号的同时还必须指定操作数或操作地址。有些功能指令还需要多个操作数或地址。操作元件包括K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z。其中K表示十进制常数;H表示十六进制常数。EXIT第6章FX2NPLC功能指令及应用第6章第3页[S]:(SOURSE)源操作数。若可使用变址功能时,表达为[S·]。有时源操作数不止一个,可用[S1·]、[S2·]表示。6.1.1功能指令的表现形式[D]:(DESTINATION)目标操作数。若可使用变址功能时,表达为[D·]。目标不止一个时用[D1·]、[D2·]表示。m、n:其他操作数。常用来表示数的进制(十进制、十六进制等)或者作为源操作数(或操作地址)和目标操作数(或操作地址)的补充注释。需要注释的项目多时也可以采用m1、m2等方式。EXIT第6章FX2NPLC功能指令及应用第6章第4页即使使用跳转指令使其在两段不可能同时执行的程序中也不能使用。但可利用变址寄存器多次改变其操作数,多次执行这样的功能指令。6.1.1功能指令的表现形式功能指令的功能符号和助记符占一个程序步序操作数占2或4个程序步序,取决于指令是16bit还是32bit的。得注意的是有些功能指令在整个程序中只能出现一次。EXIT第6章FX2NPLC功能指令及应用第6章第5页其功能如下式表达:[(D0)+(D1)+(D2)+(D3)]÷3→(D4Z)图中标注[S·]指取值首元件。n指定取值个数。[D·]指定计算结果存放地址。6.1.1功能指令的表现形式例如下图中的功能指令是一个取平均值的指令EXIT第6章FX2NPLC功能指令及应用第6章第6页6.1.2数据长度及指令的执行形式(1)16bit和32bit功能指令可处理16位(bit)的数据和32(bit)位数据。功能指令中附有符号(D)表示处理32位(bit)数据。如(D)MOV、FNC(D)12、FNC12(D)。处理32bit数据时,用元件号相邻的两个元件组成元件对。元件对的元件号用奇数、偶数均可。但为避免错误,元件对的首元件建议统一用偶数编号。32bit计数器(C200~C255)不能用作16bit指令的操作数。EXIT第6章FX2NPLC功能指令及应用第6章第7页(2)连续执行/脉冲执行助记符后附有(P)符号表示脉冲执行,没有(P)符号的表示连续执行。6.1.2数据长度及指令的执行形式(P)和(D)可同时使用,如(D)MOV(P)表示32bit数据传送,脉冲执行。例如下图:(2)连续执行/脉冲执行助记符后附有(P)符号表示脉冲执行,没有(P)符号的表示连续执行。EXIT第6章FX2NPLC功能指令及应用第6章第8页图中仅在X0由OFF变为ON时执行D10到D12间的数据传(只传送一次),不需要每个扫描周期都执行。6.1.2数据长度及指令的执行形式当X1为ON时在每个扫描周期都被重复执行D20数据到D22的传送。当X0、X1为OFF时上述两个传送都不执行。在使用PLC编程时,如果在程序中的数据不随时变化,而且变化是可控的,这样的数据传送就可用脉冲方式。例如,INC指令含义是加1。如果每个运行周期都执行一次加1,其运行结果将无法确定。用连续方式时要特别注意。这些指令用“!”号表示。有些指令,例如XCH、INC、DEC等EXIT第6章FX2NPLC功能指令及应用第6章第9页6.1.3位元件和字元件只处理ON/OFF状态的元件,例如X、Y、M、和S,称为位元件。其它处理数字数据的元件,例如T、C和D,称为字元件。而位元件组合起来也可处理数字数据。位元件的字可以由Kn加首元件号来表示。位元件每4bit为一组合成单元,KnM0中的n是组数。16bit数据操作时为K1~K4。32bit数据操作时为K1~K8。例如,K2M0即表示由M0~M7组成2个4bit组。EXIT第6章FX2NPLC功能指令及应用第6章第10页当一个16bit的数据传送到K1M0、K2M0或K3M0(使用MOV指令)时,只传送相应的低位(bit)数据。较高位的数据不传送。32bit数据传送时也一样。例如010101011101010100000000110101016.1.3位元件和字元件M15M14M13M12M11M10M9M8M7M6M5M4M3M2M1M0传送后D0寄存器的数据如下:若X1为ON时用连续传送的方式传送M0~M7组成的8位二进制数到D0数据寄存器。传送前的M0~M15组成的16bit数如下:EXIT第6章FX2NPLC功能指令及应用第6章第11页由于数据高8位没有在指令中定义而不能传送,16位(bit)数据的符号位(最高位)为0,此时只能处理正数。6.1.3位元件和字元件由上述例子可知,在作16位(bit)数据操作,而参与操作的元件由K1、K2、K3来指定时,高位(不足部分)均作0。这就意味着只能处理正数(符号位为0)。在作32bit数据操作,参与操作的元件由K1~K7来指定时也一样。EXIT第6章FX2NPLC功能指令及应用第6章第12页6.1.4变址寄存器(V、Z)变址寄存器在传送、比较指令中来修改操作对象的元件号。其操作方式与普通数据寄存器一样。操作元件包括K.H、KnX、KnY、KnM、KnS、T、C、D、V、Z。其中KnY、KnM、KnS、T、C、D、V、Z可加入变址寄存器。对32bit指令,V作高16bit,Z作低16bit。32bit指令中用到变址寄存器时只需指定Z,这是Z就代表了V和Z。EXIT第6章FX2NPLC功能指令及应用第6章第13页如上图所示:X0为ON时,K10(十进制数10)送到V。X1为ON时,K20(十进制数20)送到Z。当X2为ON时所作的加法(D5V)+(D15Z)→(D40Z)(D15)+(D35)→(D60)。M8000是内部特殊寄存器(常ON),即无条件将十进制常数0(K0)送入V,此时(V)、(Z)的数据为0和20。当X3为ON时执行(D)ADD指令,作32bit数据加法(D0)+(D2)→(D4Z)就是(D1,D0)+(D3,D2)→(D25,D24)6.1.4变址寄存器(V、Z)EXIT第6章FX2NPLC功能指令及应用第6章第14页6.2程序流程控制指令:CJFNC00(P)(16)条件转移操作元件:指针P0~P127(允许变址修改)P63即END,无需再标注程序步数:CJ和CJ(P)……3步标号P××……1步梯形图功能:用于跳过顺序程序中的某一部分,这样可以减少扫描时间,并使双线圈操作成为可能。如果X0为ON则跳到标记P8处继续执行。EXIT第6章FX2NPLC功能指令及应用第6章第15页指令:CALLFNC01(P)(16)转子程序操作元件:指针P0~P127(允许变址修改)程序步数:CALL和CALL(P)…3步标号P××……1步嵌套:5级梯形图功能:用于特定条件下执行某个子程序,可减少程序重复。如果X0为ON则调用P10为标记的子程序执行。在执行子程序时也可调用子程序,可嵌套5级。6.2程序流程控制EXIT第6章FX2NPLC功能指令及应用第6章第16页指令:SRETFNC02子程序返操作元件:无程序步数:1步梯形图功能:与CALL指令对应的子程序结束返回CALL指令后的程序顺序执行。6.2程序流程控制EXIT第6章FX2NPLC功能指令及应用第6章第17页功能:中断服务程序的结束标记。在程序执行到IRET指令后表示该中断服务结束。该指令后的程序允许中断,直到DI指令出现。6.2程序流程控制指令:IRETFNC03中断返回操作元件:无程序步数:1步梯形图EXIT第6章FX2NPLC功能指令及应用第6章第18页指令:EIFNC04允许中断操作元件:无程序步数:1步梯形图功能:该指令后的程序允许中断,直到DI指令出现。6.2程序流程控制EXIT第6章FX2NPLC功能指令及应用第6章第19页6.2程序流程控制功能:该指令后的程序不可中断,直到EI指令出现。指令:DIFNC05禁止中断断返回操作元件:无程序步数:1步梯形图EXIT第6章FX2NPLC功能指令及应用第6章第20页6.2程序流程控制功能:执行到FEND时进行输出处理、输入处理、警戒时钟刷新后回到第0步。指令:FENDFNC06主程序结束操作元件:无程序步数:1步梯形图EXIT第6章FX2NPLC功能指令及应用第6章第21页6.2程序流程控制功能:若扫描周期超过100ms,PLC将停止运行。此时,应将WDT指令插入到合适的位置刷新警戒时钟,使程序执行到END。指令:WDTFNC07(P)警戒时钟操作元件:无程序步数:1步梯形图EXIT第6章FX2NPLC功能指令及应用第6章第22页6.2程序流程控制功能:FOR-NEXT间的程序重复执行“n”次后,NEXT指令后的程序才被执行。利用CJ指令可跳出循环体。FOR-NEXT间还可使用FOR-NEXT指令。循环指令最多允许5级嵌套。指令:FORFNC08(16)循环区起点操作元件:程序步数:3步梯形图EXIT第6章FX2NPLC功能指令及应用第6章第23页指令:NEXTFNC09循环区终点操作元件:无程序步数:1步梯形图:同上功能:与FOR配对使用6.2程序流程控制EXIT第6章FX2NPLC功能指令及应用第6章第24页6.3传送和比较功能:将[S1·]与[S2·]比较,结果由[D·]决定的M0开始的三个内部寄存器输出,可驱动各种动作。指令:CMPFNC10(P)(16/32)比较操作元件程序步数:CMP和CMP(P)…7步(D)CMP和(D)CMP(P)…13步梯形图EXIT第6章FX2NPLC功能指令及应用第6章第25页指令:ZCPFNC11(P)(16/32)区间比较程序步数:ZCP和ZCP(P)…9步(D)ZCP和(D)ZCP(P)…17步6.3传送和比较功能将[S·]与[S1·][S2·]的区间比较,结果有[D·]指定的M3始的三个寄存器输出。当S小于该区间时M3为ON,S在该区间时M4为ON,S大于该区间时M5为ON梯形图操作元件EXIT第6章FX2NPLC功能指令及应用第6章第26页6.3传送和比较指令:MOVFN12(P)(16/32)传送程序步数:MOV和MOV(P)…5步(D)MOV和(D)MOV(P)…9步梯形图表达X0=ON时,K100→(D10)X0=OFF时指令不执行梯形图功能:将[S·]指定的源数据传送到[D·]指定的目标寄存器。操作元件EXIT第6章FX2NPLC功能指令及应用第6章第27页6.3传送和比较指令:CMLFNC14(P)(16/32)取反传送程序步数:CML和CML(P)…5步(D)CML和(D)CML(P)…9步梯形图表达X0=ON时,将(D0)取反→(K1Y0)如果X0=OFF时,指令不执行梯形图功能:将源数据取反并传送到目标。(K1Y0)指以Y0为首元件的4个元件组成的一个字节(4bit)。操作元件EXIT第6章FX2NPLC功能指令及应用第6章第28页6.3传送和比较指令:SMOVFNC13(P)(16)位移传送程序步数:SMOV和SMOV(P)…11步梯形图表达:源数据BCD码右起第4位