单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章功能指令与简单编程器的使用方法,4.1FX系列PLC的功能指令概述,一 功能指令的表示方法,用功能号表示“FNC ”来指定功能,每条功能指令都要助记符 例FNC45的助记符是MEAN,第四章功能指令与简单编程器的使用方法4.1FX系列PLC的功,1,由上图可见,功能指令的梯形图结构包括以下3部分,1,执行条件,由X、Y、M、S、T、C等软元件的接点或接点组构成,如图中的X0和X1,当执行条件为ON时,才执行应用指令,2,功能号和助记符,每条功能指令都有一个功能编号和相应的助记符,功能号不同,应用指令的功能就不同。图中,MEAN就是指令助记符,由上图可见,功能指令的梯形图结构包括以下3部分,2,3,操作数,操作数有以下几种,1)源操作数,S,在执行指令的过程中,源操作数中的内容保持不变。当同时有多个源操作数时,分别用,S1 S2,等表示若可使用变址功能可用,S.,表示,2)目标操作数 用D表示,在执行指令的过程中,目标操作数中的内容随程序的执行会有所改变。,3)其他操作数 用m、n表示,用来表示十进制常数K或十六进制常数H。,3 操作数,3,二 数据长度和指令类型,1数据长度,16位指令和32位指令在16位指令助记符的前面加上字符D即为32位指令,16位操作数的每一个操作数占2个程序步,2 脉冲执行与连续执行,脉冲执行:指令仅在执行条件从OFF变到ON时执行,脉冲执行方式的指令在指令助记符后面附有符号P,连续执行:当执行条件位ON时,指令在各个扫描周期都被执行,二 数据长度和指令类型,4,注:符号“(P)”和“(D)”和同时使用,例 “ADD”,“ADDP”,“DADD”,“DADDP”,注:符号“(P)”和“(D)”和同时使用,5,位元件,1、位元件与字元件,位元件:只有ON/OFF状态的元件,例X Y M S,字元件:处理数据的元件 T C D,2、位元件的组合,没相邻的4bit元件组成一个单元,用“Kn+首位元件”表示.,n位组数,16位指令Kn为K1K4,32位指令Kn为K1K8,例 K8M100,位元件,6,变址寄存器 V Z,1同普通寄存器一样,变址寄存器V Z也是16位的数据寄存器,其地址编号为V7-V0,Z7-Z0,共16点。当需用进行32位数据运算时,需将V Z组合起来使用。且规定Z存放低16位数据,2可用变址寄存器修改的软元件有X Y M S P T C D K H KnX KnY KnM KnS,但不能修改V Z本身以及指定位数用的Kn本身,例 不能用Z0M10来修改Z的地址。但可用M10Z0来修改M的地址。,变址寄存器 V Z,7,第四章功能指令与简单编程器课件,8,4.2 程序流向控制指令,一 条件跳转指令 CJ,通过例子对跳转指令执行前后以及跳转区内外各软元件的状态进行说明,1、软元件 Y M S的状态,保持跳转前的状态,4.2 程序流向控制指令,9,2 计数器C的状态及定时器T的状态,1)若发生跳转前,C和T没有计数和计时,跳转发生后,即使条件满足,C和T也不工作,2)若C和T在工作时跳转,则在跳转期间,它们将停止计数和定时,并保持当前值不变,当跳转解除后,计数和定时继续,如图,3)定时器T192-T199高速计数器的状态与跳转指令无关,2 计数器C的状态及定时器T的状态,10,3,当主控指令MC与跳转指令一起使用,应注意,1)当程序由MC区外向MC区外跳转,或由MC区外向MC区内跳转时,跳转指令的执行与MC指令是否有效无关,2)当程序执行由MC区内向MC区内跳转,或由MC区内向MC区外跳转时,跳转指令的执行,必须是MC指令有效,3)当程序的执行由1个MC区如主控1跳转到另一个MC区如主控2是,只有当1区的MC指令有效时,才能执行跳转,4 T、C软元件复位指令RST的执行,3 当主控指令MC与跳转指令一起使用,应注意,11,4.2.2子程序调用与子程序返回指令,CALL SRET,注意问题,子程序应写在FEND之后,即CALL CALLP指令对应的标号应写在FEND之后,CALL CALLP指令调用的程序必须以SRET结束,CJ指令中用过的指针不能再用。,4.2.2子程序调用与子程序返回指令,12,4.2.3 与中断有关的指令,IRET:中断返回指令,EI:允许中断指令,DI:禁止中断指令,以上3个指令无操作数,,分别占用一个程序,中断程序从他唯一的,中断指针开始,到第一条,IRET指令结束。中断指令应,放在FEND指令之后,IRET指令,只能在中断程序中使用。,4.2.3 与中断有关的指令,13,4.2.4程序结束指令,FEND:主程序结束指令,子程序包括中断子程序应放在FEND指令之后,,4.2.6 循环指令,FOR:用来表示循环区的起点,它的原操作数用来表示循环次数N,可以取任意的数据格式,如果N为负数,当作N=1处理。,NEXT:是循环区终点指令,无操作数,FOR和NEXT之间的程序被反复执行,执行次数由FOR指令的原操作数决定,执行完后,执行NEXT后面的指令,4.2.4程序结束指令,14,循环程序,注意:FOR和NEXT指令,总是成对使用的,FOR,指令应放在NEXT的,前面,如果没有满足,上述条件,就会出错,循环程序,15,例题:在X1的上升沿,将50、55、60、,、90分别送D10D18,LDP X1,RST Z,MOV K50 D10,FOR K8,ADD D10Z K5 D11Z,INC Z,NEXT,例题:在X1的上升沿,将50、55、60、90分别送D1,16,4.3 比较与传送指令,4.3.1比较指令,CMP:比较,用来实现两个数据的代数比较,ZCP:区间比较,1 比较CMP,2个原操作数,S1和S2为原操作数,D 目标操作数,放比较结果,4.3 比较与传送指令,17,2 区间比较,3个原操作数,2 区间比较 3个原操作数,18,4.3.2 传送指令,MOV指令:将源程序传送到指定目标,SMOV 移位指令,4.3.2 传送指令,19,3 取反指令 CML,3 取反指令 CML,20,块传送指令 BMOV,块传送将原操作数指定的元件开始的n个数据组成的数据块传送到指定的目标,块传送指令 BMOV,21,多点传送指令 FMOV,FMOV将源文件中的数据传送到指定目标开始的n个元件中,传送后n个文件中的数据完全相同,6 数据交换指令 XCH,执行数据交换指令时,数据在指定的目标元件之间交换,交换指令一般采用脉冲执行方式,否则在每一个扫描周期都要交换一次,多点传送指令 FMOV,22,4.3.3 数据变换指令,BCD 变换指令,将源文件中的二进制数转换为BCD码并送到目标元件中,4.3.3 数据变换指令,23,4.4 算术运算与字逻辑运算指令,4.4.1 算术运算,1 加法指令:将源元件中的二进制数相加,结果送到指定的目标元件,2 减法指令SUB,3 乘法指令MUL,4除法指令DIV,4.4 算术运算与字逻辑运算指令,24,4.4.2 二进制加1,INC,减1,DEC,指令,4.4.2 二进制加1INC减1DEC指令,25,综合运算举例,综合运算举例,26,4.4.3 字逻辑运算,4.4.3 字逻辑运算,27,4.5 循环移位与移位指令,4.5.1循环移位指令 右移位ROR 左移位 ROL,4.5 循环移位与移位指令,28,4.5.2 带进位的循环移位指令,右循环RCR 左循环 RCL,4.5.2 带进位的循环移位指令,29,4.5.3 位右移SFTR和位左移SFTL指令,4.5.3 位右移SFTR和位左移SFTL指令,30,4.5.4 字右移WSFR和字左移WSFL指令,4.5.4 字右移WSFR和字左移WSFL指令,31,4.5.5 FIFO写入与读出指令,4.5.5 FIFO写入与读出指令,32,例题:某仓库的产品在出库时,要求按入库登记的顺序从库内取出,即按先入先出的原则出库,假设产品编号用4位16进制数表示,允许最大的库存量为99,,实现上述要求的程序如图所示,例题:某仓库的产品在出库时,要求按入库登记的顺序从库内取出,,33,指令表,LDP X20,MOV K4X0 D256,SFWR D256 D257 K100,LDP X21,SFWD D257 D357 K100,LD M8000,MOV D357 K4Y0,指令表,34,