第6章FX系列PLC的常用应用指令教案.ppt
第6章FX系列PLC的常用应用指令 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本章主要内容本章主要内容n6.1 6.1 应用指令概述应用指令概述应用指令概述应用指令概述 n6.2 6.2 程序流程指令程序流程指令程序流程指令程序流程指令n6.3 6.3 比较与传送指令比较与传送指令比较与传送指令比较与传送指令n6.4 6.4 算术与逻辑运算指令算术与逻辑运算指令算术与逻辑运算指令算术与逻辑运算指令n6.5 6.5 移位指令移位指令移位指令移位指令n6.6 6.6 浮点数运算指令浮点数运算指令浮点数运算指令浮点数运算指令n6.7 6.7 其他常用指令其他常用指令其他常用指令其他常用指令ch.6-ch.6-2 2Kunming University of Science&TechnologyKunming University of Science&Technology6.1 应用指令概述应用指令概述1 1、应用指令的表示方法、应用指令的表示方法、应用指令的表示方法、应用指令的表示方法 应用指令的梯形图结构一般包括以下三部分:应用指令的梯形图结构一般包括以下三部分:应用指令的梯形图结构一般包括以下三部分:应用指令的梯形图结构一般包括以下三部分:执行条件:执行条件:执行条件:执行条件:当执行条件为当执行条件为当执行条件为当执行条件为ONON时,才执行应用指令(有些应用时,才执行应用指令(有些应用时,才执行应用指令(有些应用时,才执行应用指令(有些应用指令没有执行条件)指令没有执行条件)指令没有执行条件)指令没有执行条件)功能号和助记符:功能号和助记符:功能号和助记符:功能号和助记符:每条应用指令都有一个功能编号和相应的每条应用指令都有一个功能编号和相应的每条应用指令都有一个功能编号和相应的每条应用指令都有一个功能编号和相应的助记符,功能号不同,应用指令的功能就不同助记符,功能号不同,应用指令的功能就不同助记符,功能号不同,应用指令的功能就不同助记符,功能号不同,应用指令的功能就不同 操作数:操作数:操作数:操作数:包括源操作数包括源操作数包括源操作数包括源操作数SS、目标操作数、目标操作数、目标操作数、目标操作数DD、常数、常数、常数、常数(mm、n n)。)。)。)。助记符助记符FNCFNC+操作数操作数操作数操作数ch.6-ch.6-3 3Kunming University of Science&TechnologyKunming University of Science&Technology6.1 应用指令概述应用指令概述2 2、操作数的表达方式有以下几种:、操作数的表达方式有以下几种:、操作数的表达方式有以下几种:、操作数的表达方式有以下几种:(1 1)位元件:)位元件:X X、Y Y、MM、S S、D.b D.b。(只有。(只有ON/OFFON/OFF两种状态)两种状态)(2 2)字元件:)字元件:T T、C C、D D、R R、V V、Z Z、UGUG。(。(1616位数值)位数值)(3 3)Kn+Kn+位元件位元件 (用(用KnKn 4 4位位元件组成的字元件)位位元件组成的字元件)例:例:“K1Y0”K1Y0”表示将表示将Y0Y0作为起始位的作为起始位的“Y3 Y3 Y0”Y0”的的4 4位数据;位数据;“K2X0”K2X0”表示将表示将X0X0作为低位的作为低位的“X7 X7 X0”X0”的的8 8位数据;位数据;“K4M10”K4M10”表示将表示将M10M10作为低位的作为低位的“M25 M25 M10”M10”的的1616位数据;位数据;“K8M100”K8M100”表示将表示将M100M100作为低位的作为低位的“M131 M100”M131 M100”的的3232位数位数据据 对于对于1616位指令,位指令,KnKn为为K1 K1 K 4K 4,对于,对于3232位指令,位指令,KnKn为为K1 K1 K 8 K 8。(4 4)常数:)常数:十进制常数(十进制常数(K K)、十六进制常数()、十六进制常数(H H)、浮点数()、浮点数(E E)。)。(5 5)指针:)指针:P P、I I。ch.6-ch.6-4 4Kunming University of Science&TechnologyKunming University of Science&Technology6.1 应用指令概述应用指令概述 3 3不同长度数据之间的传送不同长度数据之间的传送不同长度数据之间的传送不同长度数据之间的传送 (1 1)“从长到短从长到短从长到短从长到短”的传送:忽略长数据的高位;的传送:忽略长数据的高位;的传送:忽略长数据的高位;的传送:忽略长数据的高位;(2 2)“从短到长从短到长从短到长从短到长”的传送:长数据的高位为的传送:长数据的高位为的传送:长数据的高位为的传送:长数据的高位为0 0。ch.6-ch.6-5 5Kunming University of Science&TechnologyKunming University of Science&Technology6.1 应用指令概述应用指令概述4 4、1616位和位和位和位和3232位指令位指令位指令位指令 应用指令分为应用指令分为应用指令分为应用指令分为1616位指令和位指令和位指令和位指令和3232位指令。在位指令。在位指令。在位指令。在1616位指令助记符的位指令助记符的位指令助记符的位指令助记符的前面加上字符前面加上字符前面加上字符前面加上字符“D”D”,即为,即为,即为,即为3232位指令。位指令。位指令。位指令。处理处理处理处理3232位指令时,用相邻地址的两个位指令时,用相邻地址的两个位指令时,用相邻地址的两个位指令时,用相邻地址的两个1616位字元件存放位字元件存放位字元件存放位字元件存放3232位位位位数据,其首地址通常用偶数。数据,其首地址通常用偶数。数据,其首地址通常用偶数。数据,其首地址通常用偶数。5 5、连续执行、连续执行、连续执行、连续执行/脉冲执行指令脉冲执行指令脉冲执行指令脉冲执行指令 连续执行:连续执行:连续执行:连续执行:当执行条件为当执行条件为当执行条件为当执行条件为ONON时,指令时,指令时,指令时,指令在每个扫描周期都执行在每个扫描周期都执行在每个扫描周期都执行在每个扫描周期都执行。脉冲执行:脉冲执行:脉冲执行:脉冲执行:指令仅在执行条件从指令仅在执行条件从指令仅在执行条件从指令仅在执行条件从OFFOFF变到变到变到变到ONON(上升沿)时执行上升沿)时执行上升沿)时执行上升沿)时执行。脉冲执行方式的指令(简称脉冲执行方式的指令(简称脉冲执行方式的指令(简称脉冲执行方式的指令(简称P P指令)和指令)和指令)和指令)和3232位指令(简称位指令(简称位指令(简称位指令(简称D D指令)指令)指令)指令)可同时使用可同时使用可同时使用可同时使用。注意区分:注意区分:注意区分:注意区分:MOVMOV、MOVPMOVP、DMOVDMOV、DMOVPDMOVP 用法举例:用法举例:ch.6-ch.6-6 6Kunming University of Science&TechnologyKunming University of Science&Technology6.1 应用指令概述应用指令概述举例:举例:ch.6-ch.6-7 7Kunming University of Science&TechnologyKunming University of Science&Technology6.2 程序流程指令程序流程指令6.2.1 6.2.1 主程序与子程序主程序与子程序主程序与子程序主程序与子程序n n子程序是为特定控制目的编制的相对独立的程序。子程序是为特定控制目的编制的相对独立的程序。n n如果某段程序在整个程序中的不同位置反复出现多次,则可如果某段程序在整个程序中的不同位置反复出现多次,则可以将此段程序作为子程序处理。以将此段程序作为子程序处理。n n为了使整个程序结构清晰,也可以把功能相对独立的程序段为了使整个程序结构清晰,也可以把功能相对独立的程序段作为子程序处理。作为子程序处理。n n与子程序调用与子程序调用相关的指令相关的指令有子程序调用指令(有子程序调用指令(CALLCALL、CALLPCALLP)、子程序返回指令()、子程序返回指令(SRETSRET)和主程序结束指令)和主程序结束指令(FENDFEND)。)。n n子程序必须写在子程序必须写在FENDFEND与与ENDEND之间。每段子程序必须以之间。每段子程序必须以SRETSRET结束。子程序可以实现最多结束。子程序可以实现最多5 5级的嵌套。级的嵌套。n n子程序调用的子程序调用的指针指针可以为可以为P0 P62P0 P62或或P64 P4095P64 P4095。指针指针不不能能在梯形图的母线左边在梯形图的母线左边重复重复出现。出现。ch.6-ch.6-8 8Kunming University of Science&TechnologyKunming University of Science&Technology6.2.1 主程序与子程序主程序与子程序n n子程序中的子程序中的定时器定时器:只可用:只可用T192T199T192T199。n nFENDFEND表示主程序结束,执行表示主程序结束,执行FENDFEND后,会执行与后,会执行与ENDEND相同相同的的处理处理。n n注意:注意:在子程序内被置在子程序内被置ONON的元的元件,即使执行条件已经变成件,即使执行条件已经变成OFFOFF,但在程序结束后这些元,但在程序结束后这些元件仍被保持件仍被保持ONON状态。状态。在子程序内对定时器和在子程序内对定时器和计数器执行计数器执行RSTRST指令后,其复指令后,其复位状态也被保持。位状态也被保持。ch.6-ch.6-9 9Kunming University of Science&TechnologyKunming University of Science&Technology6.2.2 条件跳转条件跳转n n条件跳转指令用于跳过顺控程序中条件跳转指令用于跳过顺控程序中的某一部分,从而减少程序的扫描的某一部分,从而减少程序的扫描时间,使顺控程序中的双线圈输出时间,使顺控程序中的双线圈输出成为可能成为可能 n n跳转指令执行前后以及跳转区内、跳转指令执行前后以及跳转区内、外各个软元件的状态外各个软元件的状态 软元件软元件Y Y、MM、S S的状态的状态 计数器计数器C C的状态的状态 定时器定时器T T的状态的状态 T T、C C软元件复位指令软元件复位指令RSTRST的执行的执行 应用指令的执行应用指令的执行 用法举例:用法举例:ch.6-ch.6-1010Kunming University of Science&TechnologyKunming University of Science&Technology6.2.2 条件跳转条件跳转n n跳转指令(跳转指令(跳转指令(跳转指令(CJCJ)与主控指令)与主控指令)与主控指令)与主控指令MCMC的关系:的关系:的关系:的关系:MCMC区外区外区外区外 MCMC区外区外区外区外MCMC区外区外区外区外 MCMC区内区内区内区内MCMC区内区内区内区内 MCMC区内区内区内区内MCMC区内区内区内区内 MCMC区外区外区外区外 MC1MC1区区区区 MC2MC2区区区区CJ CJ 的执行与的执行与的执行与的执行与MCMC是否有效无关是否有效无关是否有效无关是否有效无关执行执行执行执行CJ CJ 时,时,时,时,须须须须MCMC有效有效有效有效执行执行执行执行CJ CJ 时,须时,须时,须时,须MC1MC1中的中的中的中的MCMC有效有效有效有效ch.6-ch.6-1111Kunming University of Science&TechnologyKunming University of Science&Technology6.2.2 条件跳转条件跳转n跳转指令调用的跳转指令调用的跳转指令调用的跳转指令调用的指针指针指针指针:P0 P4095P0 P4095。其中。其中。其中。其中P63P63用于用于用于用于跳转到跳转到跳转到跳转到ENDEND位置,而位置,而位置,而位置,而ENDEND指令处不能标记指令处不能标记指令处不能标记指令处不能标记P63P63。n跳转方向:跳转方向:跳转方向:跳转方向:可以跳转到比跳转指令步序号小的位置可以跳转到比跳转指令步序号小的位置可以跳转到比跳转指令步序号小的位置可以跳转到比跳转指令步序号小的位置,但要注意扫,但要注意扫,但要注意扫,但要注意扫描时间不能超过描时间不能超过描时间不能超过描时间不能超过200ms200ms,否则会产生看门狗定时器出,否则会产生看门狗定时器出,否则会产生看门狗定时器出,否则会产生看门狗定时器出错错错错 多个跳转指令也多个跳转指令也多个跳转指令也多个跳转指令也可以向一个地方跳转可以向一个地方跳转可以向一个地方跳转可以向一个地方跳转,但某个跳转程,但某个跳转程,但某个跳转程,但某个跳转程序段所使用的指针不能再供其它跳转程序段或子程序序段所使用的指针不能再供其它跳转程序段或子程序序段所使用的指针不能再供其它跳转程序段或子程序序段所使用的指针不能再供其它跳转程序段或子程序段所使用(即左母线左边的标号标记不能重复)段所使用(即左母线左边的标号标记不能重复)段所使用(即左母线左边的标号标记不能重复)段所使用(即左母线左边的标号标记不能重复)ch.6-ch.6-1212Kunming University of Science&TechnologyKunming University of Science&Technology6.2.3 中断与循环中断与循环1 1中断中断中断中断n允许中断(允许中断(EIEI)、禁止中断(、禁止中断(DIDI)和中断返回)和中断返回(IRETIRET)三条应用指令与中断指针一起使用,实现)三条应用指令与中断指针一起使用,实现中断控制。它们均无操作数,属纯指令结构,且不中断控制。它们均无操作数,属纯指令结构,且不需要驱动触点。需要驱动触点。n中断子程序必须中断子程序必须写在写在FENDFEND指令与指令与ENDEND指令指令之间,每之间,每个中断子程序必须以个中断子程序必须以IRETIRET指令结束。指令结束。n中断子程序中的定时器:只可用中断子程序中的定时器:只可用T192T192T199T199。n当多个中断信号顺序发生时,当多个中断信号顺序发生时,最先产生的中断信号最先产生的中断信号有优先权有优先权。若几个中断信号同时产生,则。若几个中断信号同时产生,则中断指针中断指针号较低的有优先权号较低的有优先权。ch.6-ch.6-1313Kunming University of Science&TechnologyKunming University of Science&Technology6.2.3 中断与循环中断与循环中断中断n n中断是否有效中断是否有效,由特殊辅助继电由特殊辅助继电器控制器控制。当与中断事件对应的特。当与中断事件对应的特殊辅助继电器为殊辅助继电器为OFFOFF时,中断事时,中断事件有效,为件有效,为ONON时,中断事件无时,中断事件无效。效。输入中断:输入中断:由由M8050M8050 M8055M8055控制。控制。定时器中断:定时器中断:由由M8056M8056、M8057M8057、M8058M8058控制。控制。高速计数器中断:高速计数器中断:由由M8059M8059控制。控制。用法举例用法举例:(:(P158)ch.6-ch.6-1414Kunming University of Science&TechnologyKunming University of Science&Technology6.2.3 中断与循环中断与循环 循环循环n n 循环程序从循环程序从循环程序从循环程序从FORFOR指令开始,指令开始,指令开始,指令开始,至至至至NEXTNEXT指令结束,指令结束,指令结束,指令结束,在在在在FORFORNEXTNEXT之间的程序重复执行之间的程序重复执行之间的程序重复执行之间的程序重复执行n n次后再执行次后再执行次后再执行次后再执行NEXTNEXT后面的程序。后面的程序。后面的程序。后面的程序。n n循环可以循环可以循环可以循环可以嵌套嵌套嵌套嵌套,但不能超过,但不能超过,但不能超过,但不能超过5 5层,且层,且层,且层,且FORFOR与与与与NEXTNEXT使用的次使用的次使用的次使用的次数必须相同数必须相同数必须相同数必须相同。n nFORFOR指令不能在指令不能在指令不能在指令不能在NEXTNEXT之后之后之后之后,在在在在FENDFEND和和和和ENDEND之后不能使用之后不能使用之后不能使用之后不能使用NEXTNEXT指令指令指令指令。用法举例用法举例:(:(P158)ch.6-ch.6-1515Kunming University of Science&TechnologyKunming University of Science&Technology6.3 比较与传送指令比较与传送指令6.3.1 CMP6.3.1 CMP比较指令比较指令比较指令比较指令 1.1.数据比较指令(数据比较指令(数据比较指令(数据比较指令(FNC10 CMPFNC10 CMP):):):):用来实现两个用来实现两个用来实现两个用来实现两个数据的代数比较。数据的代数比较。数据的代数比较。数据的代数比较。ch.6-ch.6-1616Kunming University of Science&TechnologyKunming University of Science&Technology6.3.1 CMP比较指令比较指令2.2.区间比较指令(区间比较指令(区间比较指令(区间比较指令(FNC11 ZCP FNC11 ZCP)将一个数据与将一个数据与将一个数据与将一个数据与2 2个设定值进行比较个设定值进行比较个设定值进行比较个设定值进行比较 。ch.6-ch.6-1717Kunming University of Science&TechnologyKunming University of Science&Technology6.3.1 CMP比较指令比较指令3.比较结果的清零(比较结果的清零(比较结果的清零(比较结果的清零(FNC40 ZRST FNC40 ZRST)当执行条件为当执行条件为当执行条件为当执行条件为OFFOFF时,执行结果仍保持执行比时,执行结果仍保持执行比时,执行结果仍保持执行比时,执行结果仍保持执行比较指令之前的状态。故在不执行比较指令时,需用较指令之前的状态。故在不执行比较指令时,需用较指令之前的状态。故在不执行比较指令时,需用较指令之前的状态。故在不执行比较指令时,需用复位指令对比较结果清零。复位指令对比较结果清零。复位指令对比较结果清零。复位指令对比较结果清零。ch.6-ch.6-1818Kunming University of Science&TechnologyKunming University of Science&Technology6.3.2 触点式比较指令触点式比较指令 触点式比较指令(触点式比较指令(触点式比较指令(触点式比较指令(FNC224 FNC224 FNC246FNC246)是使用是使用是使用是使用LDLD、ANDAND、OROR触点符号进行触点符号进行触点符号进行触点符号进行数据比较的指令。数据比较的指令。数据比较的指令。数据比较的指令。用法举例:用法举例:ch.6-ch.6-1919Kunming University of Science&TechnologyKunming University of Science&Technologych.6-ch.6-2020Kunming University of Science&TechnologyKunming University of Science&Technology6.3.3 传送类指令传送类指令1 1传送传送传送传送指令(指令(指令(指令(FNC12 FNC12 MOVMOV):用于将源操作数的数据传送):用于将源操作数的数据传送):用于将源操作数的数据传送):用于将源操作数的数据传送(复制)到目标操作数。(复制)到目标操作数。(复制)到目标操作数。(复制)到目标操作数。2.2.取反传送取反传送取反传送取反传送指令(指令(指令(指令(FNC14 FNC14 CMLCML):将源数据的各位取反后再传将源数据的各位取反后再传将源数据的各位取反后再传将源数据的各位取反后再传送到目标元件送到目标元件送到目标元件送到目标元件.3.3.批传送批传送批传送批传送指令(指令(指令(指令(FNC15 FNC15 BMOVBMOV)也称)也称)也称)也称块传送块传送块传送块传送指令指令指令指令:将以将以将以将以S.S.所指定的元件为起始地址的所指定的元件为起始地址的所指定的元件为起始地址的所指定的元件为起始地址的n n点数据,传送到以点数据,传送到以点数据,传送到以点数据,传送到以目标目标目标目标D.D.所指定的元件为起始地址的所指定的元件为起始地址的所指定的元件为起始地址的所指定的元件为起始地址的n n个元件中去。个元件中去。个元件中去。个元件中去。ch.6-ch.6-2121Kunming University of Science&TechnologyKunming University of Science&Technology6.3.3 传送类指令传送类指令4 4多点传送多点传送多点传送多点传送指令(指令(指令(指令(FNC16 FNC16 FMOVFMOV):用于):用于):用于):用于将同一数将同一数将同一数将同一数据传送到多个软元件据传送到多个软元件据传送到多个软元件据传送到多个软元件中。中。中。中。传送后,传送后,传送后,传送后,n n点目标元件中的数据相同,均为源数点目标元件中的数据相同,均为源数点目标元件中的数据相同,均为源数点目标元件中的数据相同,均为源数据。据。据。据。ch.6-ch.6-2222Kunming University of Science&TechnologyKunming University of Science&Technology6.3.3 传送类指令传送类指令5 5移位传送移位传送移位传送移位传送指令(指令(指令(指令(FNC13 FNC13 SMOVSMOV)用法举例:用法举例:P161ch.6-ch.6-2323Kunming University of Science&TechnologyKunming University of Science&Technology6.3.4 数据交换指令(数据交换指令(XCH)n交换指令(交换指令(交换指令(交换指令(FNC17 XCHFNC17 XCH):):):):当执行条件为当执行条件为当执行条件为当执行条件为ONON时,时,时,时,两个目标数据相互交换两个目标数据相互交换两个目标数据相互交换两个目标数据相互交换。注意:注意:注意:注意:若使用若使用若使用若使用连续执行连续执行连续执行连续执行方式的指令,则方式的指令,则方式的指令,则方式的指令,则每个扫描周每个扫描周每个扫描周每个扫描周期都将执行一次期都将执行一次期都将执行一次期都将执行一次数据交换。数据交换。数据交换。数据交换。用法举例:用法举例:P162ch.6-ch.6-2424Kunming University of Science&TechnologyKunming University of Science&Technology6.3.5 BCD与与BIN之间的相互转换之间的相互转换1.BINBIN转换成转换成转换成转换成BCDBCD指令(指令(指令(指令(FNC18 FNC18 BCDBCD):将源将源将源将源S.S.所指定的所指定的所指定的所指定的BINBIN数据转换成数据转换成数据转换成数据转换成BCDBCD数据,数据,数据,数据,并将该并将该并将该并将该BCDBCD码传送到目标码传送到目标码传送到目标码传送到目标D.D.所指定的元件中。所指定的元件中。所指定的元件中。所指定的元件中。用法举例:用法举例:P163图图6.18ch.6-ch.6-2525Kunming University of Science&TechnologyKunming University of Science&Technologych.6-ch.6-2626Kunming University of Science&TechnologyKunming University of Science&Technology6.3.5 BCD与与BIN之间的相互转换之间的相互转换2.2.BCDBCD转换成转换成转换成转换成BINBIN指令(指令(指令(指令(FNC19 FNC19 BINBIN):将由源将由源将由源将由源S.S.所指定的所指定的所指定的所指定的BCDBCD数据转换成数据转换成数据转换成数据转换成BINBIN数据,并将转换结果传送到由目标数据,并将转换结果传送到由目标数据,并将转换结果传送到由目标数据,并将转换结果传送到由目标D.D.所指定的元件中。所指定的元件中。所指定的元件中。所指定的元件中。用法举例:用法举例:P163ch.6-ch.6-2727Kunming University of Science&TechnologyKunming University of Science&Technology6.4 算术与逻辑运算指令算术与逻辑运算指令6.4.1 6.4.1 二进制算术运算指令二进制算术运算指令二进制算术运算指令二进制算术运算指令 1 1二进制加法运算指令(二进制加法运算指令(二进制加法运算指令(二进制加法运算指令(FNC20 ADDFNC20 ADD):用来实现用来实现用来实现用来实现S1.S1.、S2.S2.两个源数据的加运算(代两个源数据的加运算(代两个源数据的加运算(代两个源数据的加运算(代数运算),并将运算结果送到指定的目标数运算),并将运算结果送到指定的目标数运算),并将运算结果送到指定的目标数运算),并将运算结果送到指定的目标D.D.中。中。中。中。ch.6-ch.6-2828Kunming University of Science&TechnologyKunming University of Science&Technology6.4.1 二进制算术运算指令二进制算术运算指令2.二进制减法运算指令(二进制减法运算指令(二进制减法运算指令(二进制减法运算指令(FNC21 SUBFNC21 SUB):用来实现用来实现用来实现用来实现S1.S1.、S2.S2.两个源数据的减运算,两个源数据的减运算,两个源数据的减运算,两个源数据的减运算,并将运算结果送到指定的目标并将运算结果送到指定的目标并将运算结果送到指定的目标并将运算结果送到指定的目标D.D.中。中。中。中。ch.6-ch.6-2929Kunming University of Science&TechnologyKunming University of Science&Technology6.4.1 二进制算术运算指令二进制算术运算指令3.3.二进制乘法运算指令(二进制乘法运算指令(二进制乘法运算指令(二进制乘法运算指令(FNC22 MULFNC22 MUL)用来实现两个源操作数的乘法运算,并将运算结用来实现两个源操作数的乘法运算,并将运算结用来实现两个源操作数的乘法运算,并将运算结用来实现两个源操作数的乘法运算,并将运算结果送入目标果送入目标果送入目标果送入目标D.D.为首地址的字元件中。为首地址的字元件中。为首地址的字元件中。为首地址的字元件中。ch.6-ch.6-3030Kunming University of Science&TechnologyKunming University of Science&Technology6.4.1 二进制算术运算指令二进制算术运算指令4.二进制除法运算指令(二进制除法运算指令(二进制除法运算指令(二进制除法运算指令(FNC23 DIVFNC23 DIV)用于实现两个源操作数用于实现两个源操作数用于实现两个源操作数用于实现两个源操作数S1.S1.(被除数)和(被除数)和(被除数)和(被除数)和S2.S2.(除数)的除法运算。(除数)的除法运算。(除数)的除法运算。(除数)的除法运算。注意:注意:注意:注意:除数不能为除数不能为除数不能为除数不能为0 0;当目标为位元件时,不能得到余数;当目标为位元件时,不能得到余数;当目标为位元件时,不能得到余数;当目标为位元件时,不能得到余数;ch.6-ch.6-3131Kunming University of Science&TechnologyKunming University of Science&Technology6.4.1 二进制算术运算指令二进制算术运算指令5.5.加加加加1/1/减减减减1 1运算指令(运算指令(运算指令(运算指令(FNC24 INC/FNC25 DECFNC24 INC/FNC25 DEC)用于将目标用于将目标用于将目标用于将目标D.D.中的二进制数据加中的二进制数据加中的二进制数据加中的二进制数据加1/1/减减减减1 1。ch.6-ch.6-3232Kunming University of Science&TechnologyKunming University of Science&Technology6.4.2 字逻辑运算指令字逻辑运算指令1.逻辑字与(逻辑字与(逻辑字与(逻辑字与(FNC26 WANDFNC26 WAND):仅当两个输入都为仅当两个输入都为仅当两个输入都为仅当两个输入都为“1”1”时,输出才为时,输出才为时,输出才为时,输出才为“1”1”,否则输出为,否则输出为,否则输出为,否则输出为“0”0”。2.逻辑字或(逻辑字或(逻辑字或(逻辑字或(FNC27 WORFNC27 WOR):仅当两个输入都为仅当两个输入都为仅当两个输入都为仅当两个输入都为“0”0”时,输出才为时,输出才为时,输出才为时,输出才为“0”0”,否则输出为,否则输出为,否则输出为,否则输出为“1”1”3.逻辑字异或(逻辑字异或(逻辑字异或(逻辑字异或(FNC28 WXORFNC28 WXOR):当两个输入相同时,当两个输入相同时,当两个输入相同时,当两个输入相同时,输出为输出为输出为输出为“0”0”,当两个输入不同时,输出为,当两个输入不同时,输出为,当两个输入不同时,输出为,当两个输入不同时,输出为“1”1”。4.“异或非异或非异或非异或非”运算运算运算运算:将将将将WXORWXOR指令与取反传送指令与取反传送指令与取反传送指令与取反传送(FNC14 CMLFNC14 CML)指令相结合实现。)指令相结合实现。)指令相结合实现。)指令相结合实现。ch.6-ch.6-3333Kunming University of Science&TechnologyKunming University of Science&Technology6.4.2 字逻辑运算指令字逻辑运算指令用法举例用法举例ch.6-ch.6-3434Kunming University of Science&TechnologyKunming University of Science&Technology6.5 移位指令移位指令6.5.1 6.5.1 循环右移循环右移循环右移循环右移/左移指令(左移指令(左移指令(左移指令(FNC30 ROR/FNC31 ROLFNC30 ROR/FNC31 ROL)用于使目标用于使目标用于使目标用于使目标D.D.中的中的中的中的1616位(或位(或位(或位(或3232位)二进制数位)二进制数位)二进制数位)二进制数据据据据向右向右向右向右/向左循环移动向左循环移动向左循环移动向左循环移动n n位位位位(对于(对于(对于(对于1616位指令,位指令,位指令,位指令,n16n16;对于;对于;对于;对于3232位指令,位指令,位指令,位指令,n32n32)。)。)。)。ch.6-ch.6-3535Kunming University of Science&TechnologyKunming University of Science&Technology6.5 移位指令移位指令6.5.2 6.5.2 位右移位右移位右移位右移/位左移指令(位左移指令(位左移指令(位左移指令(FNC34 SFTR/FNC35 SFTLFNC34 SFTR/FNC35 SFTL)用于将源用于将源用于将源用于将源S.S.为首地址的为首地址的为首地址的为首地址的n2n2位位元件的内容送位位元件的内容送位位元件的内容送位位元件的内容送到以目标到以目标到以目标到以目标D.D.为首地址的为首地址的为首地址的为首地址的n1n1位移位寄存器中,每次位移位寄存器中,每次位移位寄存器中,每次位移位寄存器中,每次向右向右向右向右/向左移动向左移动向左移动向左移动n2n2位,最低位位,最低位位,最低位位,最低位/最高位溢出。最高位溢出。最高位溢出。最高位溢出。用法举例:用法举例:P168ch.6-ch.6-3636Kunming University of Science&TechnologyKunming University of Science&Technology 6.5.2 6.5.2 移位写入与移位读出指令(移位写入与移位读出指令(移位写入与移位读出指令(移位写入与移位读出指令(SFWR/SFRDSFWR/SFRD)1.1.移位写入指令(移位写入指令(移位写入指令(移位写入指令(FNC38 SFWRFNC38 SFWR):用来控制先入先出(用来控制先入先出(用来控制先入先出(用来控制先入先出(FIFOFIFO)的数据写入。在执行的数据写入。在执行的数据写入。在执行的数据写入。在执行SFWRSFWR前,先将指针前,先将指针前,先将指针前,先将指针D.D.清零。清零。清零。清零。例:例:例:例:当执行条件当执行条件当执行条件当执行条件X1X1从从从从OFFOFF变到变到变到变到ONON时,将源时,将源时,将源时,将源D0D0中的数据写入中的数据写入中的数据写入中的数据写入D2D2中,中,中,中,指针数据指针数据指针数据指针数据D1D1加加加加1 1后变为后变为后变为后变为1 1。当。当。当。当D0D0的数据改变后的数据改变后的数据改变后的数据改变后,X1,X1再次从再次从再次从再次从OFFOFF变变变变到到到到ONON时,这个时,这个时,这个时,这个D0D0被写入到被写入到被写入到被写入到D3D3中中中中,指针数据指针数据指针数据指针数据D1D1变为变为变为变为2 2。其余类。其余类。其余类。其余类推,直到推,直到推,直到推,直到D1D1的内容超过的内容超过的内容超过的内容超过“n-1”n-1”时,上述处理不再执行,进位标时,上述处理不再执行,进位标时,上述处理不再执行,进位标时,上述处理不再执行,进位标志志志志M8022M8022置置置置1 1。ch.6-ch.6-3737Kunming University of Science&TechnologyKunming University of Science&Technology 6.5.2 6.5.2 移位写入与移位读出指令(移位写入与移位读出指