1、第6章 FX2N PLC功能指令及应用,6.1 功能指令使用要素,6.2 程序流程控制(FNC00FNC09)6.3 传送和比较(FNC10FNC19),6.4 四则运算及逻辑运算(FNC20FNC29)6.5 循环移位与移位(FNC30FNC39)6.6 数据处理(FNC40FNC49)6.7 高速处理(FNC50FNC59)6.8 方便指令(FNC60FNC69),6.1.1 功能指令的表现形式,功能指令按功能号(FUC00FUC99)编排。每条功能,指令都有一个助记符。,6.1 功能指令使用要素,有些功能指令只需指定功能号即可。但许多功能指令在指定功能号的同时还必须指定操作数或操作地址。
2、有些功能指令还需要多个操作数或地址。操作元件包括K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z。其中K表示十进制常数;H表示十六进制常数。,S :(SOURSE) 源操作数。若可使用变址功能时,表达为S。有时源操作数不止一个,可用S1、S2表示。,6.1.1 功能指令的表现形式,D:(DESTINATION)目标操作数。若可使用变址功能时,表达为。目标不止一个时用、,表示。,、:其他操作数。常用来表示数的进制(十进制、十六进制等)或者作为源操作数(或操作地址)和目标操作数(或操作地址)的补充注释。需要注释的项目多时也可以采用、等方式。,其功能如下式表达:,(D0)+(D1)+(D2
3、)+(D3)3(D4Z),图中标注S指取值首元件。n指定取值个数。D指定,计算结果存放地址。,6.1.1 功能指令的表现形式,例如下图中的功能指令是一个取平均值的指令,6.1.2 数据长度及指令的执行形式,(1)16bit和32bit,功能指令可处理16位(bit)的数据和32(bit)位数据。功能指令中附有符号(D)表示处理32位(bit)数据。如(D)MOV、 FNC(D)12、FNC12(D)。,处理32bit数据时, 用元件号相邻的两个元件组成元件对。元件对的元件号用奇数、偶数均可。但为避免错误,元件对的首元件建议统一用偶数编号。,32bit计数器(C200C255)不能用作16bit
4、指令的操作数。,(2)连续执行脉冲执行,助记符后附有(P)符号表示脉冲执行,没有(P)符号的表示连续执行。,6.1.2 数据长度及指令的执行形式,(P)和(D)可同时使用,如(D)MOV(P)表示32bit数据,传送,脉冲执行。,例如下图:,图中仅在X0由OFF变为ON时执行D10到D12间的数据传(只传送,一次),不需要每个扫描周期都执行。,6.1.2 数据长度及指令的执行形式,当X1为ON时在每个扫描周期都被重复执行D20数,据到D22的传送。,当X0、X1为OFF时上述两个传送都不执行。在使用PLC编程时,如果在程序中的数据不随时变化,而且变化是可控的,这样的数据传送就可用脉冲方式。,例
5、如,INC指令含义是加1。如果每个运行周期都执行一次加1,其运行结果将无法确定。用连续方式时要特别注意。,有些指令,例如XCH、INC、DEC等,6.1.3 位元件和字元件,只处理ONOFF状态的元件,例如X、Y、M、和S,称为,位元件。,其它处理数字数据的元件,例如T、C和D,称为字元件。,而位元件组合起来也可处理数字数据。,位元件的字可以由Kn加首元件号来表示。位元件每4bit为一 组 合 成 单 元 , KnM0 中的 n 是 组 数 。 16bit 数 据 操 作 时 为K1K4。32bit数据操作时为K1K8。,例如,K2M0即表示由M0M7组成2个4bit组。,1,0,1,0,1,
6、0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,M15 M14 M13 M12 M11 M10 M9 M8 M7 M6,M5,M4 M3 M2,M1 M0,传送后D0寄存器的数据如下:,6.1.3 位元件和字元件当一个16bit的数据传送到K1M0、K2M0或K3M0(使用MOV指令)时,只传送相应的低位(bit)数据。较高位的数据不传送。32bit数据传送时也一样。例如若X1为ON时用连续传送的方式传送M0M7组成的8位二进制数到D0数据寄存器。传送前的M0M15组成的16bit数如下:,由于数据高8位没有在指令中定义而不能传送,1
7、6位(bit),数据的符号位(最高位)为0,此时只能处理正数。,6.1.3 位元件和字元件,由上述例子可知,在作16位(bit)数据操作,而参,与操作的元件由K1、K2、K3来指定时,高位(不足部分)均作0。这就意味着只能处理正数(符号位为0)。在作32bit数据操作,参与操作的元件由K1K7来指定时也一样。,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作高16b
8、it,Z作低16bit。32bit指令中用到变址寄存,器时只需指定Z,这是Z就代表了V和Z。,如上图所示:,X0为ON时,K10(十进制数10)送到V。X1为ON时,K20(十进制,数20)送到Z。,当X2为ON时所作的加法,(D5V)(D15Z)(D40Z),(D15)(D35)(D60)。 M8000是内部特殊寄存器(常ON),即无条件将十进制常数0(K 0)送入V,此时(V)、(Z)的数据为0和20。,当X3为ON时执行(D)ADD指令,作32bit数据加法,(D0)(D2)(D 4Z),就是(D1,D0)(D3,D2)(D25,D24),6.1.4 变址寄存器(V、Z),6.2 程序流
9、程控制,指令:,CJ,FNC00(P)(16)条件转移,操作元件:指针P0P127(允许变址修改)P63即END,无需再标注程序步数: CJ 和 CJ (P)3步标号P1步梯形图功能:用于跳过顺序程序中的某一部分,这样可以减少扫描时间,并使双线圈操作成为可能。如果X0为ON则跳到标记P8处继续执行。,指令:,CALL FNC01(P)(16),6.2 程序流程控制,转子程序操作元件:指针P0P127(允许变址修改)程序步数:CALL和CALL(P)3步标号P1步嵌 套:5级梯形图功能:用 于 特 定 条 件下执行 某 个 子 程序 , 可 减 少 程 序 重 复 。如果 X0 为ON则调用P1
10、0为标记的子程序执行。在执行子程序时也可调用子程序,可嵌套5级。,指令:,SRET FNC02,子程 序返,6.2 程序流程控制,操作元件:无程序步数:1步梯形图功能:与CALL指令对应的子程序结束返回CALL指令后的程序顺序执行。,6.2 程序流程控制,指令:,IRET FNC03中断返回,操作元件:无程序步数:1步梯形图 功能:中 断 服务 程序 的结 束 标 记 。 在程序 执行 到 IRET 指 令 后 表 示该 中 断 服务 结 束 。 该指令 后 的 程序 允 许 中断 , 直 到DI指 令 出现 。,指令:,EI FNC04允许中断,6.2 程序流程控制,操作元件:无程序步数:1
11、步梯形图功能:该指令后的程序允许中断,直到DI指令出现。,6.2 程序流程控制,功能:,该 指令 后 的 程序 不可 中 断 , 直到EI指 令出现。,指令: DI FNC05禁止中断断返回操作元件:无程序步数:1步,梯形图,6.2 程序流程控制,功能:,执 行 到 FEND 时 进行输出处理、输入处理、警戒时钟刷新后回到第0步。,指令: FEND FNC06主程序结束操作元件:无程序步数:1步,梯形图,6.2 程序流程控制,功能:,若 扫描 周期 超 过100ms,PLC将停止运行。此时,应将WDT指令 插 入 到 合 适的 位置 刷 新 警 戒 时 钟 , 使程序执行到END。,指令: W
12、DT FNC07 (P)警戒时钟操作元件:无程序步数:1步,梯形图,6.2 程序流程控制,功能: FORNEXT间的程,序 重 复 执 行 “ n” 次 后 ,NEXT指令后的程序才被执 行 。 利 用 CJ 指 令可跳出循环体。FORNEXT间还可使用FORNEXT指令。循环指令最多允许5级嵌套。,指令: FOR FNC08(16),循环区起点操作元件:,程序步数: 3步,梯形图,指令:,NEXT FNC09循环区终点,6.2 程序流程控制,操作元件:无程序步数:1步梯形图 :同上功能:与FOR配对使用,指令: ZCP FNC11(P)(16/32)区间,比较,程序步数:ZCP和ZCP(P)
13、9步,(D)ZCP和(D)ZCP(P)17步,6.3 传送和比较,功能,将S 与S1 S2的区间比较,结果有D指定的M3始的三个寄存器输出。当S小于该区间 时 M3 为 ON , S 在该 区间时M4 为ON,S 大于该区间时M5为ON,梯形图,操作元件,6.3 传送和比较,指令: CML FNC14(P)(16/32)取反传送程序步数: CML和CML(P)5步,(D)CML和(D)CML(P)9步梯形图功能:将源数据取反并传送到目标。(K1 Y0)指以Y0为首元件的4个元件组成的一个,字节(4bit)。,操作元件,梯形图表达X0=ON时,将(D0)取反(K1 Y0)如果X0OFF时,指令不
14、执行,6.3 传送和比较,指令: SMOV FNC13(P) (16)位移传送,程序步数: SMOV和SMOV(P)11步梯形图功能:将源数据(二进制)转换为BCD码,然后将BCD码移,位传送,然后将目标中的BCD码转换为二进制。BCD码值超过9999时出错。,操作元件,梯形图表达:源数据BCD码右起第4位(m14)开始的2位(m2=2)移到目标的第3位(n3)和第2位。然后将BCD码转换为二进制,其中第1、4位不受移位指令的影响。,6.3 传送和比较,指令: BMOV FNC15(P) (16)块传送 程序步数: BMOV和BMOV(P)7步梯形图,功能:,从源操作数指定的元件开始的n 个数
15、据组成的数据块传送到目标。一旦传送,传送一组数据。,操作元件,梯形图表达:当 X0 ON 时 , 将 寄 存 器(D5,D6,D7) 数 据 传 送 到 3 目 标(D10,D11,D12),6.3 传送和比较,指令: FMOV FNC16(P) (16)多点传送,操作元件,程序步数: FMOV和FMOV(P)7步梯形图功能:相同数据送到多个目标。将源元件中的 数据传 送到指 定目标开始的n个元件中。梯形图表达:将K0传送到D0D9,6.3 传送和比较,指令: XCH FNC17(P)(16/32)(“!”)交换,操作元件,程序步数: XCH和XCH(P)5步(D)XCH和(D)XCH(P)9
16、步梯形图功能:交换目标元件中的数据。 梯形图表达:交换前:(D10)=110、(D11)=100交换后:(D10)= 100、(D11)= 110,6.3 传送和比较,指令: BCD FNC18(P)(16/32)二进制转换成BCD码,操作元件,程序步数: BCD和BCD(P)5步(D)BCD和(D)BCD(P)9步梯形图功能:将源元件中的 二进制数 转换成BCD码送到目标元件中。 梯形图表达:将(D12)中的数据转换成BCD码送到Y0开始的两个(4bit)字节(Y0Y7)中,6.3 传送和比较,指令: BIN FNC19(P)(16/32)BIN变换程序步数: BIN和BIN(P)5步,操作
17、元件,(D)BIN和(D)BIN(P)9步梯形图功能:将源元件中的BCD码转换成二进制数送到目标元件中。梯形图表达:将X0开始的两个(4bit)字节(X0X7)中的BCD码数据转换成二进制数送到(D13)中。,6.4,四则运算及逻辑运算,指令: ADD FNC20(P) (16/32) 加法程序步数: ADD和ADD(P)7步(D)ADD和(D)ADD(P)13步,标,志:M8020(零标志);M8021(借位);,操作元件,功能:指定源元件中的二进制数相加,结果送到指定的目标元件。每个数据的最高bit作为符号为(0为正,1为负)。运算为代数运算。结果大于32767(16bit) 或21474
18、83647(32bit)时进位标志M8021置1;结果小于-32767(16bit)或-2147483647(32bit)时借位标志M8022置1。,M8022(进位)梯形图梯形图表达:当X0=ON时,执行(D10)+(D12) (D14)结果为0时, M8020置1;,6.4,四则运算及逻辑运算,操作元件,指令: MUL FN22(P) (16/32)BIN乘法程序步数: MUL和MUL(P)7步(D)MUL和(D)MUL(P)13步梯形图 梯形图表达:当X0=ON时执行16bit运算 (D0)(D2) (D5,D4)当X1=ON时执行32bit运算(D1,D0)(D3,D2)(D7,D6,
19、D5,D4)功能:两 个 源 数据 的 乘 积 以32bit 形 式 送 到 指 定目 标。 低16bit在指定目标,高16bit在下一个元件中。,6.4,四则运算及逻辑运算,指令: INC FNC24(P) (16/32)“!”,操作元件,加1程序步数: INC、INC(P)、3步(D)INC、(D)INC(P) 13步梯形图功能:输入条件由OFF变ON时,执行D指定的目标数据增加1 梯形图表达:当X0由OFF变ON时,执行 (D10)+1(D10),6.4,四则运算及逻辑运算,指令:,DEC FNC25(P) (16/32)“!”,操作元件,减1程序步数: DEC和DEC(P)3步(D)D
20、EC和(D)DEC(P)13步梯形图功能: 输 入 条 件 由 OFF 变ON 时,执行D 指定的目标数据减少1 梯形图表达:当X1由OFF变ON时,执行(D10)-1(D10),6.4,四则运算及逻辑运算,指令: AND FNC26(P) (16/32) 逻辑,操作元件,“与”程序步数: 16bit操作 7步32bit操作 13步梯形图 功能:以bit为单位的逻辑与运算。将S1S2指定的源数据进行逻辑“与”运算后结果存入D的目标单元梯形图表达:(D10)(D12)(D14),6.4,四则运算及逻辑运算,指令: OR FNC27(P)(16/32)逻辑“或程序步数: 16bit操作 7步,操作
21、元件,32bit操作 13步梯形图功能:将S1S2指定的源数据进行逻辑“或”运算后结果存入D的目标单元。 梯形图表达:(D10)(D12)(D14),6.4,四则运算及逻辑运算,指令: XOR FNC28(P)(16/32)逻辑“异或”,操作元件,(D10),(D12)(D14),程序步数: 16bit操作 7步32bit操作 13步梯形图功能:将S1S2指定的源数据进行逻辑“异或”运算后结果存入D的目标单元。梯形图表达:,PDF 文件使用 pdfFactory Pro 试用版本创建 ,6.4,四则运算及逻辑运算,指令: NEG FNC29(P)(16/32)求补,际是绝对值不变的变号操作。,
22、操作元件,程序步数: NEG和NEG(P)3步(D)NEG和(D)NEG(P)5步梯形图功能:将D指定数据的每一位都取反,然后该数加1,结果存入同一元件。本指令实,梯形图表达:(D10)+1(D10),6.5,循环移位与移位,指令: ROR FNC30(P) (16/32)“!”,状态存于进位标志M8022中。,操作元件,右循环程序步数: ROR,ROR(P) )5步梯形图功能:将D指定的数据右移n决定的位数,最低位移出的,梯形图表达:每次X0由OFFON时各bit数据向右旋转“n”bit,最后一次从最高位移出的状态存于进位标志M8022中。,6.5,循环移位与移位,指令: RCR FNC32
23、(P) (16/32) “!”,(16/32bit)数据连同进位标志一起向右循环移位n决定的位数。,操作元件,带进位右循环移位程序步数: 5步梯形图功能:本指令使D指定的,梯形图表达:每次X0由OFFON时各bit数据向右旋转“n”bit,最低位移出的进位标志M8022同时参与移位。,6.5,循环移位与移位,指令: SFTR FNC34(P) (16/32)“!”,向右移位,由n1指定bit元件的长度,n2指定移位数。,操作元件(其中n2n11024),位元件状态右移位程序步数: 9步梯形图功能:本指令使bit元件中的状态,梯形图表达:每次X10由OFFON时,D内各位数据连同S内4位数据向右
24、移动4bitX0X3组成的4bit数据从高端移入而(M0 M3)4位溢出。,6.5,循环移位与移位,指令: WSFR FNC36(P) (16/32),本指令使字元件中的状态向右移位,由n1指定字元件长度,n2指定移位字数。,操作元件(其中n2n1 512),“!” 元件状态(字)右移程序步数: WSFR、WSFR(P)9步梯形图功能:,梯形图表达:每次X10由OFFON时,D10D2516字数据连同S内D0D3 4字数据向右 移 动 4bit D0 D3 从 高 端 移 入 而(D10D13)从低端移出。,6.5,循环移位与移位,指令: SFWR FNC38(P)(16/32) “!”先入先
25、出FIFO写入程序步数: SFWR、SFWR(P)7步,标,功能:本指令是FIFO(先入先出)控制数据写入指令。将,S指定的数据写入D指定的第二位开始的长度为n指定的寄存器内,D指定的第一位为指针位。指针为n1时不执行本操作。,操作元件(其中2n 512),志:M8022(进位) WSFR、梯形图,梯形图表达:当X0由OFFON时,D0中的数据写入D2,而D1内的数据变为1(指针)。 D0数据改变后X0再由OFFON时,DO中的数据写入D3,D1中的数据变为2。依此类推。直到D1内数据为n-1上述指令不再执行,6.6 数据处理,指令: ZRST FNC40(P) (16)区间复位,功能:用于一
26、批元件的同时复位。如控制程序的初始化处理等。,操作元件(其中2n 512),程序步数: ZRST,ZRST(P)7步梯形图注:D1D2指定同一元件,D1号D2号,梯形图表达:PLC 送 电 运 行 时 M500 M599 ,C235C255成批复位,6.6 数据处理,操作元件(其中n=18)功能:S 指 定 的 源 元 件 和 n 指 定 的 个数,组成二进制数等于几,就将D 指定的目标开始的8 个寄存器中的对应位置的寄存器置1。,指令: DECO FNC41(P)(16/32)解码程序步数: DECO,DECO(P)7步梯形图梯形图表达:当X4=ON时,X3、X2、X1组成的二进制数等于几,
27、就将M10M17对应的M置1。若D指定目标是T、C、或D,应使n4。,6.6 数据处理,指令: MEAN FNC45(P) (16)平均值,将S指定的源开始的n个数据的平均值送入D指定的目标。,操作元件其中n=164,程序步数: MEAN、MEAN(P)3步梯形图功能:,梯形图表达:当X5为ON时,将D0、D1、D2的平均值送入D10。,6.7 高速处理,操作元件D最低位为0的X或Y元件,如X0、X10、X20等nK或H的参数,8的倍数。功能:用于刷新一组输入或输出寄存器。,指令: REF FNC50(P)(16) “!”刷新程序步数:REF,REF(P)5步梯形图梯形图表达:当X3为ON时,
28、刷新X10X17的一组8个输入寄存器。,6.7 高速处理,指令: REFF FNC51(P) (16)刷新和滤波时间调整程序步数: REFF,REFF(P)3步,操作元件X0X7(无需指定)nK,H n060,梯形图梯形图表达:n=K1时滤波时间为1msM8000为初始电平。功能:用于刷新X0 X7的映象寄存器,并更改滤波常数为n决定的时间。,6.7 高速处理,操作元件功能:S1指定脉冲频率(11000Hz)。S2指定产生脉冲数目。16bit为132767个脉冲,32bit为121474836547个脉冲。占空比为:50,程序步数: PLSY7步,(D)PLSY13步标 志:M8029(完成)
29、梯形图 梯形图表达:当X10ON时,在Y0输出1KHz脉冲信号(D0)个,完成后M8029置1标志结束。若在输出过程中X10变为OFF使输出停止。本指令只能使用1次,以中断方式输出脉冲。,6.7 高速处理,操作元件功能:S1指定脉冲宽度(032767ms),S2指定脉冲周期(132767ms)。D指定输出目标。,指令: PWM FNC58 (16)脉宽调制程序步数: PWM7步梯形图梯形图表达:当X10ON时,在Y0输出K50为周期的脉冲信号,其占空比由D10控制。若在输出过程中X10变为OFF时Y0也为OFF。本指令只能使用1次。,6.8 方便指令,功能:,本指令用于自动设置初始状态和特殊辅
30、助继,指令: IST NC60 (16)置初始状态程序步数: IST7步梯形图,梯形图表达:S指定操作方式输入的首元件。D1指定在自动操作中实际用到的最低状态号。D2指定在自动操作中实际用到的最高状态号。,操作元件S:X、Y、MD1D2:S20S899D1D2,电器。,6.8 方便指令,功能:,产生延时断定时器和闪动定时器。,指令: STMR FNC65(P) (16/32)特殊定时器程序步数: 7步梯形图,操作元件S:T;D:Y、M、S;m:K、H m1to 32767,梯形图表达:M0 为延时定时器,M1 为单脉冲式定时器。,6.8 方便指令,功能:输入条件改变时使出交替变化。,操作元件,指令: ALT FNC66(P) (16)“!”交替输出程序步数: 5步梯形图,梯形图表达:每次X3从OFF到ON时,M0的状态改变一次,