【文档说明】第四章功能指令与简单编程器课件.ppt,共(34)页,733.502 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45506.html
以下为本文档部分文字说明:
第四章功能指令与简单编程器的使用方法4.1FX系列PLC的功能指令概述一功能指令的表示方法用功能号表示“FNC”来指定功能每条功能指令都要助记符例FNC45的助记符是MEANX0X1MEAND0D4Z0K3(D)MOV(P)D10D12[S.][D.]n
由上图可见,功能指令的梯形图结构包括以下3部分1执行条件由X、Y、M、S、T、C等软元件的接点或接点组构成,如图中的X0和X1,当执行条件为ON时,才执行应用指令2功能号和助记符每条功能指令都有一个功能编号和相应的助记符,功能号不同,应用指令的功能就不同。图中,MEAN就是指令助
记符3操作数操作数有以下几种1)源操作数〔S〕在执行指令的过程中,源操作数中的内容保持不变。当同时有多个源操作数时,分别用〔S1〕〔S2〕等表示若可使用变址功能可用〔S.〕表示2)目标操作数用〔D〕表示
,在执行指令的过程中,目标操作数中的内容随程序的执行会有所改变。3)其他操作数用m、n表示,用来表示十进制常数K或十六进制常数H。二数据长度和指令类型1数据长度16位指令和32位指令在16位指令助记符的前面加上字符D即为32位
指令16位操作数的每一个操作数占2个程序步2脉冲执行与连续执行脉冲执行:指令仅在执行条件从OFF变到ON时执行,脉冲执行方式的指令在指令助记符后面附有符号P连续执行:当执行条件位ON时,指令在各个扫描周期都被执行注:符号“(P)”和“(D)”和同时使用例“ADD
”“ADDP”“DADD”“DADDP”三位元件1、位元件与字元件位元件:只有ON/OFF状态的元件,例XYMS字元件:处理数据的元件TCD2、位元件的组合没相邻的4bit元件组成一个单元,用“Kn+首位元件”表示.n位组数,16位指令Kn为K1—K
432位指令Kn为K1—K8例K8M100四变址寄存器VZ1同普通寄存器一样,变址寄存器VZ也是16位的数据寄存器,其地址编号为V7-V0,Z7-Z0,共16点。当需用进行32位数据运算时,需将VZ组合起来使用。
且规定Z存放低16位数据2可用变址寄存器修改的软元件有XYMSPTCDKHKnXKnYKnMKnS,但不能修改VZ本身以及指定位数用的Kn本身例不能用Z0M10来修改Z的地址。但可用M10Z0来修改M的地址。X0X1X2MOVK10V0MOVK20Z1A
DDD5V0D15Z1D40Z14.2程序流向控制指令一条件跳转指令CJ通过例子对跳转指令执行前后以及跳转区内外各软元件的状态进行说明1、软元件YMS的状态保持跳转前的状态X0X10X12X11X13CJP8Y
11T0K10RSTC1C1K20P82计数器C的状态及定时器T的状态1)若发生跳转前,C和T没有计数和计时,跳转发生后,即使条件满足,C和T也不工作2)若C和T在工作时跳转,则在跳转期间,它们将停止计数和定时,并保持当前值不变,当跳转解除后,
计数和定时继续,如图3)定时器T192-T199高速计数器的状态与跳转指令无关X0X10X12X11X13CJP8Y11T0K10RSTC1C1K20P83当主控指令MC与跳转指令一起使用,应注意1)当程序由MC区外向MC区外跳转,或由MC区
外向MC区内跳转时,跳转指令的执行与MC指令是否有效无关2)当程序执行由MC区内向MC区内跳转,或由MC区内向MC区外跳转时,跳转指令的执行,必须是MC指令有效3)当程序的执行由1个MC区如主控1跳转到另一个MC区如主控
2是,只有当1区的MC指令有效时,才能执行跳转4T、C软元件复位指令RST的执行4.2.2子程序调用与子程序返回指令CALLSRET注意问题子程序应写在FEND之后,即CALLCALLP指令对应的标号
应写在FEND之后,CALLCALLP指令调用的程序必须以SRET结束,CJ指令中用过的指针不能再用。4.2.3与中断有关的指令IRET:中断返回指令EI:允许中断指令DI:禁止中断指令以上3个指令无操作数,分别占用一个程序中断程序从他唯一的中断指针开始,到第一条IRET指令结束。中断指令
应放在FEND指令之后,IRET指令只能在中断程序中使用。4.2.4程序结束指令FEND:主程序结束指令子程序包括中断子程序应放在FEND指令之后,4.2.6循环指令FOR:用来表示循环区的起点,它的原操作数用来表示循环次数N,可以取任意的数据格式,如果N为负数,当作N=1处理。NEXT:
是循环区终点指令,无操作数FOR和NEXT之间的程序被反复执行,执行次数由FOR指令的原操作数决定,执行完后,执行NEXT后面的指令循环程序注意:FOR和NEXT指令总是成对使用的,FOR指令应放在NE
XT的前面,如果没有满足上述条件,就会出错例题:在X1的上升沿,将50、55、60、…、90分别送D10—D18LDPX1RSTZMOVK50D10FORK8ADDD10ZK5D11ZINCZNEXT4.3比较与传送指令4.3.1比较指令CMP:比较,用来实现两个数据的代数比较
ZCP:区间比较1比较CMP2个原操作数[S1]和[S2]为原操作数[D]目标操作数,放比较结果X1M0M1M2CMPK100C10M0[S1][S2][D]100>C10的当前值时M0为ON100=C10的当前值时M1为ON100<C10的当前值时M2为ON2区间比较3个原操
作数X2M3M4M5ZCPK100K150T3[S1][S2][D]M3[S]4.3.2传送指令1MOV指令:将源程序传送到指定目标2SMOV移位指令X1X0MOVK100D10SMOVD1K4K2D2K3[S][D][S][D]m1m2n1031031021021011
011001003取反指令CMLX1[S.][D.]CMLD0K1Y05块传送指令BMOV块传送将原操作数指定的元件开始的n个数据组成的数据块传送到指定的目标X0X1BMOVBMOVD10D9K3D10D11K3D10D11D12D9D
10D11D10D11D12D11D12D13(1)(2)(3)(3)(2)(1)[S.][D.]n[S.][D.]n5多点传送指令FMOVFMOV将源文件中的数据传送到指定目标开始的n个元件中,传送后n个文件中的
数据完全相同6数据交换指令XCH执行数据交换指令时,数据在指定的目标元件之间交换,交换指令一般采用脉冲执行方式,否则在每一个扫描周期都要交换一次X2X1FMOVK0D5K10D10D11[S.][D.]n[S.][D.]XCH(P)4.3.3数据变换指令1BCD变换指令将源文件
中的二进制数转换为BCD码并送到目标元件中00000010101001100000011001111000X0BCDPC4K3Y01248102040808004002001001248COM678Y0Y3Y4Y7Y10Y137段数码显示PLC输
出模块BIN数据BCD码设C4的当前值为6784.4算术运算与字逻辑运算指令4.4.1算术运算1加法指令:将源元件中的二进制数相加,结果送到指定的目标元件2减法指令SUB3乘法指令MUL4除法指令DIV[S1.][S
2.][D.][S1.][S2.][D.][S1.][S2.][D.][S1.][S2.][D.]X0X1X2X3ADDD10D12D14SUBPD0K22D0MULD0D2D4DDIVD6D8D24.4.2二进制加1INC减1DEC指令X4X1I
NC(P)DEC(P)D10D11[D.][D.]综合运算举例X0M1X11MOV(P)K0Z0BCD(P)C0Z0K4Y0INC(P)Z0CMP(P)K10Z0M14.4.3字逻辑运算[S1.][S2.][D.][S1.][S2.][D.][S1.][S2.][D.][D.]X0X1X2X4WA
NDWORWXORCML(P)NEG(P)D50D34D34D10D12D14D20D22D24D30D32D344.5循环移位与移位指令4.5.1循环移位指令右移位ROR左移位ROLX4ROR(P)D0K30000000011111111
M802211100000000111111M8022X1ROL(P)D0K31111111100000000M80221M80221111100000000111[D.]nn[D.]右循环左循环一次循环后一次循环后进位位进位位右循环左循环4.5.2带进位的循环移位指令右循环RCR左循环R
CL1X2RCR(P)D0K31111111100000100M802200111111101000000M8022X1RCL(P)D0K31111111100000000M80221M80221111100000000111[D.]nn[D.]右循环左循环一次循环
后一次循环后进位位进位位带进位的右循环带进位的左循环14.5.3位右移SFTR和位左移SFTL指令X10SFTR(P)X0M0K9K3X2X1X0M8M7M6M5M4M3M2M1M0[S.][D.]n1n2X10SFTL(P)X0M0K9K3X2X1X
0M8M7M6M5M4M3M2M1M0[S.][D.]n1n2右移3位左移3位位右移位左移(4)(3)(2)(1)(1)(2)(3)(4)溢出溢出4.5.4字右移WSFR和字左移WSFL指令X0WSFR(P)T0D0K9K3T2T1T0D8D7D6D5D4D3D2D1D0[S.]
[D.]n1n2X10WSFL(P)T0D0K9K3T2T1T0D8D7D6D5D4D3D2D1D0[S.][D.]n1n2右移3个字左移3个字字右移字左移(4)(3)(2)(1)(1)(2)(3)(4)溢出溢出4.5.5F
IFO写入与读出指令X0SFWR(P)D0D1K9D0D9D8D7D6D5D4D3D2D1[S.][D.]n指针源X0SFRD(P)D0D20K9D20D9D8D7D6D5D4D3D2D1[S.][D.]n
指针(1)(2)(3)例题:某仓库的产品在出库时,要求按入库登记的顺序从库内取出,即按先入先出的原则出库,假设产品编号用4位16进制数表示,允许最大的库存量为99,实现上述要求的程序如图所示X20MOVPK4X0D256SFWRPD256D257K100X21SFRD
PD257D357K100M8000MOVPD357K4Y0RUN监控入库请求按钮出库请求按钮指令表LDPX20MOVK4X0D256SFWRD256D257K100LDPX21SFWDD257D357K100LDM8000MOVD357K4Y
0