您好,欢迎访问三七文档
第五章功能指令•掌握功能指令通则;•掌握常用功能指令;•学会用功能指令编程。第五章功能指令功能指令概述PLC指令:基本逻辑指令、步进顺控指令、功能指令功能指令实质:功能不同的子程序功能指令分类:12类功能指令表示:助记符+操作数功能指令概述功能指令概述这段程序表示:当执行条件M100为ON时,把源常数K123送到目标元件D500。复杂的功能指令不是一目了然,配合例子。第五章功能指令5.1功能指令通则5.1.1功能指令的表现形式助记符+操作元件MEAND0D4ZK3X0[S.][D.]n如:5.1功能指令通则MEANFUC45(P)(16)MEAN:指令助记符FUC45:功能号(P):脉冲执行指令(D):作32bit运算,如没有此符号表示执行16bit运算5.1功能指令通则[S]:(SOURCE)源操作数。若可使用变址功能时,表达为[S.],有时源操作数不止一个,可用[S1.],[S2.]表示。[D]:(DESTINATION)目的操作数。若可使用变址功能时,表达为[D.],有时目的操作数不止一个,可用[D1.],[D2.]表示。K,HKnXKnYKnMKnSTCDV,Z[S.][D.]n5.1.2数据长度及指令的执行方式1.16bit和32bit助记符(D)表示处理32bit数据,无此符号表示处理16bit数据,如下图所示:X0D12[S.][D.]D10MOVX1D22D20(D)MOV将D10中的数据送到D12将D21和D20中的数据送到D23,D225.1.2数据长度及指令的执行方式2.脉冲执行与连续执行助记符(P)表示脉冲执行,没有此符号表示连续执行。(P)和(D)可同时使用。X0D12D10X1D22D20MOV脉冲执行连续执行(P)MOV(D)5.1.3位元件1.位元件和字元件只处理ON/OFF状态的元件,例如X、Y、M和S,称为位元件;其他处理数字数据的元件,例如T、C和D,称为字元件。2.位元件的组合位元件每4bit为一组组合成单一。如KnM0,其中n是组数。解释:KnXX/Y/M/S等十进制位数,每位十进制数由4bit组成。M3M2M1M0M7M6M5M4M11M10M9M8M15M14M13M12K1M0K2M0K3M0K4M0X3X2X1X0X7X6X5X4X11X10X9X8X15X14X13X12K1X0K2X0K3X0K4X0Y3Y2Y1Y0Y7Y6Y5Y4Y11Y10Y9Y8Y15Y14Y13Y12K1Y0K2Y0K3Y0K4Y0S3S2S1S0S7S6S5S4S11S10S9S8S15S14S13S12K1S0K2S0K3S0K4S05.1.3位元件2.位元件的组合举例:X0D12K3X0MOV由X0~X11组成的12位二进制数送到D12中去。5.1.4整数与实数1.整数PLC中整数的表示和运算采用BIN码格式,可以用16bit和32bit元件来表示整数,其中最高bit为符号bit,0表示整数,1表示负数。负数已补码方式表示。整数的表示范围:16bit:-32768~+3276732bit:-2147483648~+21474836475.1.4整数与实数1.实数的浮点格式实数必须用32bit来表示。通常用数据寄存器对来存放实数。实数的浮点格式如下:浮点式实数的表示范围:±3.403*1038~±1.175*10-38。5.1.4整数与实数2.实数的科学记数法实数的科学记数法也用32bit来表示,即两个字元件,通常用两个寄存器对(例如:D1,D0)来存放科学记数式实数。序号小的数据寄存器存放尾数,序号大的寄存器存放以10为底的指数。科学格式实数=尾数×10指数如D0为25,D1为30由D0、D1寄存器对表示实数=25×1030。5.1.5变址寄存器变址寄存器的功能:在传送指令中用来修改操作对象的元件号。操作示例如下:X0V0K10MOVX1Z0K20MOVX2D15Z0D5V0ADDM8000V0K0MOVX3D4Z0D0(D)MOVD40Z0D2(D5V0)+(D15Z0)-(D40Z0)(D15)+(D35)-(D60)(D1,D0)+(D3,D2)-(D24,25)5.1.6功能指令简表及某些功能指令使用次数的限制见p101~p104表。五、循环移位和移位(一)循环移位RORFNC30(p)(16/32)(“!”)ROLFNC31(p)(16/32)(“!”)(二)带进位的循环RCRFNC32(p)(16/32)(“!”)RCLFNC33(p)(16/32)(“!”)(三)移位SFTRFNC34(p)(16/32)(“!”)SFTLFNC35(p)(16/32)(“!”)(四)字右移/字左移WSFRFNC36(p)(16/32)(“!”)WSFLFNC37(p)(16/32)(“!”)例五、循环移位和移位(一)循环移位RORFNC30(p)(16/32)(“!”)ROLFNC31(p)(16/32)(“!”)(二)带进位的循环RCRFNC32(p)(16/32)(“!”)RCLFNC33(p)(16/32)(“!”)(三)移位SFTRFNC34(p)(16/32)(“!”)SFTLFNC35(p)(16/32)(“!”)(四)字右移/字左移WSFRFNC36(p)(16/32)(“!”)WSFLFNC37(p)(16/32)(“!”)例RORFNC30(p)(16/32)(“!”)10010000100010111011100100001000ROR(P)D0K4如:D01次循环后M8022M8022=1X0RCRFNC30(p)(16/32)(“!”)10010000100010110111001000010000RCR(P)D0K4如:D01次循环后M8022M8022=1X0ROLFNC31(p)(16/32)(“!”)10010000100010110000100010111001ROL(P)D0K4如:D01次循环后M8022M8022=1X0RCLFNC31(p)(16/32)(“!”)10010000100010110000010001011100RCL(P)D0K4如:D01次循环后M8022M8022=1X0SFTRFNC34(p)(16/32)(“!”)X3X2X1X0SFTR(P)X0M0K16K4X10M15M14M13M12M11M10M9M8M7M6M5M4M3M2M1M0(1)(2)(3)(4)(1)M3~M0Overflow(2)M7~M4M3~M0(3)M11~M8M7~M4(4)M15~M12M11~M8(5)X3~X0M15~M12SFTLFNC35(p)(16/32)(“!”)X3X2X1X0SFTL(P)X0M0K16K4X10M15M14M13M12M11M10M9M8M7M6M5M4M3M2M1M0(1)(2)(3)(4)(1)M15~M12Overflow(2)M11~M8M15~M12(3)M7~M4M11~M8(4)M3~M0M7~M4(5)X3~X0M3~M0WSFRFNC36(p)(16/32)(“!”)D3D2D1D0WSFR(P)D0D10K16K4X10D25D24D23D22D21D20D19D18D17D16D15D14D13D12D11D10(1)(2)(3)(4)(1)D13~D10Overflow(2)D17~D14D13~D10(3)D21~D18D17~D14(4)D25~D22D21~D18(5)D3~D0D25~D22WSFLFNC37(p)(16/32)(“!”)D3D2D1D0WSFL(P)D0D10K16K4X10D25D24D23D22D21D20D19D18D17D16D15D14D13D12D11D10(1)(2)(3)(4)(1)D25~D22Overflow(2)D21~D18D25~D22(3D17~D14D21~D18(4)D13~D10D21~D18(5)D3~D0D13~D10例1:利用左右移位指令使一亮灯以0.2S的速度自右向左移动,到达最左侧后,再自左向右返回右侧,如此反复。Y7Y6Y5Y4Y3Y2Y1Y0要求:X2-ON,移位开始;X2-OFF,清零。编程思想:Y15Y14Y13Y12Y11Y10Y9Y8Y7Y6Y5Y4Y3Y2Y1Y00000000000000001ROL(P)K4Y0K11000000000000000初始状态一次循环后循环到Y7为ON00000000100000000000000001000000ROR(P)K4Y0K1一次循环后MOVK0K4Y0PLSY15M8000X2M8000X2X2T0M1M0Y0M0T0ROL(P)K4Y0K1M0Y7Y7Y0M1M1T1M1T1ROR(P)K4Y0K1M1Y0K2K2清零Y15:ON产生0.2S间隔的脉冲信号左循环Y7为ON时,准备右循环右循环产生0.2S间隔的脉冲信号M0END
本文标题:功能指令
链接地址:https://www.777doc.com/doc-4538812 .html