三菱FX系列PLC原理及应用 课件 第4章FX3U系列应用指令及其应用_第1页
三菱FX系列PLC原理及应用 课件 第4章FX3U系列应用指令及其应用_第2页
三菱FX系列PLC原理及应用 课件 第4章FX3U系列应用指令及其应用_第3页
三菱FX系列PLC原理及应用 课件 第4章FX3U系列应用指令及其应用_第4页
三菱FX系列PLC原理及应用 课件 第4章FX3U系列应用指令及其应用_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PLC控制技术FX3U系列应用指令及其应用‹#›回顾和测试下面梯形图语法是否正确:答案:语法错误无法编译回顾和测试下面梯形图的方框中应放置什么触点可以实现Y000先运行,Y001后运行。答案:YOOO常开触点(动合)回顾和测试根据梯形图画M100,M101,Y000的波形图。答案:Y000产生周期为X000两倍的波形(二分频)本章内容:应用指令概述数据处理类指令算术与逻辑运算类、浮点数类指令程序流程控制类指令外部设备指令5应用指令范围:从FNC00~FNC295应用指令(AppliedInstruction,也称为功能指令FunctionalInstruction),是PLC数据处理能力的标志。应用指令可分为:数据处理类算术运算类程序控制类特殊应用类外部设备类应用指令的表示方法1.应用指令的表示形式、应用与操作意义M8002的常开触点是执行应用指令的条件,其后应用框的第一个方框表示应用指令助记符,第二个方框表示源操作数(有的应用指令会有几个源操作数,可用Si表示,有的指令可能没有源操作数),第三个方框表示目标操作数。源和目标操作数后括号内的点,表示可以对指定的软元件地址变址或对指定数据变数据,不带括号的,表示不可变址或变数据。M8002仅接通一个扫描周期后断开,传送指令也仅执行一次,将源操作数指定的“十进制常数300”送往目标操作数指定的“数据寄存器D100”中。7(应用指令概述)应用指令都是FNC应用指令的助记符2.D指令和P指令应用指令有的只能是16位指令,也有的指令即可进行16位操作数操作,也可进行32位操作数操作。若指令允许32位操作数操作,其指令助记符前要加“D”。当X000的上升沿到来时执行指令一次,将第一源操作数S1指定的(D11,D10)中32位数据与第二源操作数S2指定的(D13,D12)中32位数据相加,求得的32位之和存入(D15,D14)中。8ADD:16位连续加法DADD:32位连续加法ADDP:16位脉冲加法,只执行一个扫描周期DADDP:32位脉冲加法,只执行一个扫描周期一个指令的四种用法加法指令实例:应用指令P指令和D指令D指令:同一条应用指令有的只能是16位操作,有的指令既可进行16位操作,也可进行32位操作。若指令允许32位操作数,其指令助记符前要加“D”。三菱FX3U系列PLC基本编程-应用指令D11D10+D13D12=D15D14程序步数:一般16位指令为7程序步,32位指令为13程序步。3.操作数元件的变址或变数据的形式、应用及操作意义源操作数S和目标操作数D旁边带有“(·)”符号的,表示操作数指定的软元件地址可以变址,或指定的操作数允许变数据。16位变址或变数据可以选用V0~V7和Z0~Z7中一个变址寄存器实现,32位变址或变数据可以各用V和Z中一个相同地址元件进行组合实现。11(应用指令概述)4.应用指令的操作数参数有参数要求的应用指令12SMOV指令可将源操作数的16位二进制数据按四位一组分成4组自动转换成BCD码,根据指定的m1组起,将m2组BCD数据覆盖目的操作数指定的第n组起的m2组数据中,构成一个新的新目标操作数。数据处理类指令比较类指令数据传送类指令循环与移位类指令数据处理其他指令(数据处理类指令)比较类指令:整数比较类指令触点比较类指令浮点数比较类指令比较指令整数比较类指令触点比较类指令浮点数比较类指令比较类指令和触点比较类指令1.整数比较类指令使源操作数S1(·)与S2(·)中的常数或指定软元件中数据进行比较。15指令名称指令代码位数助记符操作数使用范围程序步S1(·)S2(·)D(·)比较FNC10

(16/32)CMP、CMPPDCMPP、DCMPK、H、KnX、KnY、KnM、KnS、T、C、D、V、Z、、U□\G□Y、M、SD□.bCMP、CMPP…7步DCMP、DCMPP…13步(数据处理类指令)K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZY、M、S当前值整数比较类指令:CMP,ZCP【例】使用比较指令将计数器C0的当前值与可变常数K5Z0进行比较,使Y000产生占空比可变、周期为3秒的矩形波脉冲列的程序。C0的当前计数值与K5Z0(=K15)比较M8012每隔0.1S发脉冲当(C0)>K5Z0时,M0=ON,使Y000导通计到设定值30(即3秒)自动复位改变Z0中的数值,可以改变Y000输出脉冲的占空比。(数据处理类指令)(2)区间比较指令18指令名称指令代码位数助记符操作数使用范围程序步S1(·)/S2(·)/S(·)D(·)区间比较FNC11(16/32)ZCP、ZCPPDZCP、DZCPPK、H、KnX、KnY、KnM、KnST、C、D、V、Z、U□\G□Y、M、SD□.bZCP、ZCPP…9步DZCP、DZCPP…17步(数据处理类指令)【例】区间比较指令应用举例。首先对M0~M2清零,定时器T1定时到设定值90S便自动复位,重新开始定时,区间比较指令将T1的当前值与上、下限值比较,若(T1)<K300,M0=ON,Y001导通;若K300≤(T1)≤K600,M1=ON,Y002导通;若(T1)>K600,M2=ON,Y003导通,周而复始比较。图(b)是Y001~Y003输出的开关波形。19(数据处理类指令)产生方波信号

2.触点比较类指令20FNCNo16位助记符(5步)32位助记符(9步)操作数使用范围导通条件非导通条件S1(·)S2(·)224LD=DLD=K、H、KnX、KnY、KnM、KnS、T、CD、V、Z[S1(·)]=[S2(·)][S1(·)]≠[S2(·)]225LD>DLD>[S1(·)]>[S2(·)][S1(·)]≤[S2(·)]226LD<DLD<[S1(·)]<[S2(·)][S1(·)]≥[S2(·)]228LD<>DLD<>[S1(·)]≠[S2(·)][S1(·)]=[S2(·)]229LD<=DLD<=[S1(·)]≤[S2(·)][S1(·)]>[S2(·)]230LD>=DLD>=[S1(·)]≥[S2(·)][S1(·)]<[S2(·)](数据处理类指令)【例】与左母线连接的触点比较指令应用举例。三菱FX3U系列PLC基本编程-应用指令(C10)<K50时,Y010导通(C10)≥K50时,Y010导通M8012每隔0.1S发脉冲梯形图指令表(数据处理类指令)(2)串联连接的触点比较类指令23FNCNo16位助记符(5步)32位助记符(9步)操作数使用范围导通条件非导通条件S1(·)S2(·)232AND=DAND=K、H、KnX、KnY、KnM、KnS、T、CD、V、Z[S1(·)]=[S2(·)][S1(·)]≠[S2(·)]233AND>DAND>[S1(·)]>[S2(·)][S1(·)]≤[S2(·)]234AND<DAND<[S1(·)]<[S2(·)][S1(·)]≥[S2(·)]236

AND<>DAND<>[S1(·)]≠[S2(·)][S1(·)]=[S2(·)]237AND<=DAND<=[S1(·)]≤[S2(·)][S1(·)]>[S2(·)]238AND>=DAND>=[S1(·)]≥[S2(·)][S1(·)]<[S2(·)](数据处理类指令)【例】串联连接的触点比较类指令应用举例。当程序运行后,T0周期性定时10秒,当X000=ON,(T0)当前值<K50时,Y001导通;(T0)≥K50时,Y001截止,其常闭触点接通,为Y002导通作好准备;当(T0)当前值≥K60时,Y002导通,周而复始上述过程。24(数据处理类指令)(3)并联连接的触点比较类指令25FNCNo16位助记符(5步)32位助记符(9步)操作数使用范围导通条件非导通条件S1(·)S2(·)240OR=DOR=K、H、KnX、KnY、KnM、KnS、T、CD、V、Z[S1(·)]=[S2(·)][S1(·)]≠[S2(·)]241OR>DOR>[S1(·)]>[S2(·)][S1(·)]≤[S2(·)]242OR<DOR<[S1(·)]<[S2(·)][S1(·)]≥[S2(·)]244

OR<>DOR<>[S1(·)]≠[S2(·)][S1(·)]=[S2(·)]245OR<=DOR<=[S1(·)]≤[S2(·)][S1(·)]>[S2(·)]246OR>=DOR>=[S1(·)]≥[S2(·)][S1(·)]<[S2(·)](数据处理类指令)【例】并联连接的触点比较指令的应用编程。当程序运行后,T0周期性定时10秒。当X001=ON或(T0)当前值≤K40时,Y001导通;当X002=ON或(T0)≥K70时,Y002导通,周而复始上述比较过程。26(数据处理类指令)3.浮点数比较指令使用说明及应用27(数据处理类指令)

例如:A22=1,A21=0,A19~A0=0;E7=1,E6~E1=0,E0=1,则按上式可求出,二进制浮点值=

二进制浮点数比较指令会将参与比较的常数自动转换为32位二进制浮点数,因此二进制浮点数比较指令和区间比较指令前面一定要加“D”。其中,DECMP指令中S1(·)和S2(·)的操作数是K、H、E、D、R、U□\G□,D(·)的操作数是Y、M、S、D□.b;DEZCP指令中S1(·)、S2(·)和S(·)的操作数是K、H、E、D、R、U□\G□,D(·)的操作数是Y、M、S、D□.b。28数据传送类指令数据传送类指令有传送指令、移位传送指令、取反传送指令、数据块传送指令、多点数据传送指令。(1)传送指令29指令名称指令代码位数助记符操作数使用范围程序步S(·)D(·)数据传送FNC12(16/32)MOV、MOVPDMOV、MOVPK、HKnX、KnY、KnM、KnS、T、C、D、V、Z,特殊模块U□\G□KnX、KnM、KnST、C、D、V、Z殊模块U□\G□MOV、MOVP…5步DMOV、DMOVP…9步(数据处理类指令)当X000=ON时,MOV指令每个扫描周期都将源操作数S(·)指定的D0中数据送到目标操作数D(·)指定的软元件D10。当X000断开,D10中数据保持不变。(2)移位传送指令30按四位一组分成4组自动转换成BCD码,根据指定的m1组起,将m2组BCD数据覆盖目的操作数指定的第n组起的m2组数据中,构成一个新的新目标操作数。(数据处理类指令)MOV指令举例:四位数据传送定时器时间设定32位数据传送【例】传送指令应用于控制三相异步电动机Y/Δ降压启动的程序。启动按钮接X000停止按钮接X001电机定子电源接触器KM1接于Y000输出口电机定子Y形连接接触器KM2接于Y001输出口电机定子△形连接接触器KM3接于Y002输出口(数据处理类指令)Y000Y001Y002Y00333(数据处理类指令)0011010001010000【例】三位BCD码数字拨码开关通过移位传送指令SMOV实现数据从高到低的顺序组合。34指令执行过程是将源操作数中二进制(BIN)码自动转换为BCD码,(数据处理类指令)数字开关经X020~X027输入的2位BCD码(01100101)BCD自动以二进制形式存入D2中的低八位;经X000~X003输入的1位BCD码(0111)BCD自动以二进制形式存入D1中低四位。(3)取反传送指令CMP35将源操作D0元件中的二进制数按位取反(0→1,1→0)传送到目标操作数指定的元件中去。(数据处理类指令)(4)数据块传送指令数据块传送指令也称为成批数据传送指令。36(数据处理类指令)(5)多点传送指令将源操作数指定的常数或某个软元件中内容,向以目标操作数指定的n个软元件中传送。37(数据处理类指令)2.数据转换类指令(1)数据交换指令数据交换指令是将被指定的两个目标软元件中数据进行交换。数据交换指令可在特殊辅助继电器M8160=ON时,实现元件中数据进行高、低八位数据交换。38(数据处理类指令)【例】数据交换指令的应用程序。当程序运行后,(D10)=K200,(D20)=K100,当X000=ON,执行数据交换指令,将两个目标元件数据进行了交换,使(D10)=K100,(D20)=K200。39(数据处理类指令)(2)BCD转换指令BCD转换指令是将源操作数指定元件中的二进制数转换成二-十进制码送到目标操作数指定的元件中,源元件中二进制数据不变。【例】BCD转换指令的应用编程。图(a)是程序运行后,MOVP指令将常数K89送入D1中,X000=OFF时,BCD指令不执行,K2Y000状态为零;

图(b)是X000=ON,BCD指令将D1中的二进制数转换为(10001001)BCD,驱动K2Y000外部连接的两位BCD数码管显示数字89,而K2Y000的(10001001)BCD状态,编程软件是将其按二进制数换算成十进制数137在程序中显示的。40(数据处理类指令)(3)BIN转换指令BIN指令是BCD指令的逆转换,它将源操作数指定元件中的BCD码转换为二进制数送到目标操作数指定的元件中,源元件中BCD数据不变。源元件中数据范围:16位操作为0~9999;32位操作为0~99999999。【例】BIN转换指令的应用编程。41(数据处理类指令)(4)高低字节交换指令SWAP对16位或32位二进制整数数据进行高低八位字节进行交换。【例】高低位字节交换指令的应用编程。42(数据处理类指令)移位指令循环移位类指令不带进位的循环左、右移位指令(ROR和ROL)带进位的循环左、右移位指令(RCR和RCL)线性移位类指令线性位左、右移位指令(SFTR和SFTL)线性字左、右移位指令(WSFTR和WSFTL)循环与移位类指令1.循环移位类指令循环移位类指令有不带进位和带进位的循环左、右移位指令计四条。(1)不带进位的循环左、右移位指令(ROTATIONRIGHT)和ROL(ROTATIONLEFT)不带进位的循环左、右移位指令可以是16位或32位数据进行n位循环移位。44指令名称指令代码位数助记符操作数使用范围程序步D(·)n循环右移FNC30(16/32)ROR、RORPDROR、DRORPKnY、KnM、KnS、T、C、D、V、Z、R、U□\G□K、H、D、R移位量n≤16(16位)n≤32(32位)ROR、RORP…5步DROR、DRORP…9步循环左移FNC31(16/32)ROL、ROLPDROL、DROLPROL、ROLP…5步DROL、DROLP…9步(数据处理类指令)当X000=ON,16位RORP指令执行一次移位,将D(·)指定的D0元件中数据向右移n=4位,最后第4位循环移向最高位,且同时存于进位标志M8022中。45注意:如果使用连续执行的循环左、右移指令时,指令执行条件为ON,每个扫描周期执行一次循环移位操作。(数据处理类指令)【例】循环左、右移指令实现某广告牌上的L1~L8八个彩灯的程序编程。当X000=ON时,灯先以正序(左移)每隔1s依次点亮,当Y007亮后,停5S;然后以反序(右移)每隔1s依次点亮,当Y000亮后,停5s,重复上述过程。当X001为ON时,停止工作。Y000=ONL1L2L3L4L5L6L7L8L7L6L5L4L3L2L1应用指令问题:K4Y000能不能改成K2Y000?每秒左移位每秒右移移位每隔1S移位(2)带进位的循环左、右移位指令RCR(ROTATIONRIGHTWITHCARRY)和RCL(ROTATIONLEFTWITHCARRY)48若进位标志M8022的状态为ON,当X000=ON时,RCRP指令执行一次移位,将M8022的状态连同D(·)指定元件中的数据向右循环移4位,最后从低位移出的状态存入到M8022中。(数据处理类指令)带进位循环右移当M8022=ONCARRY【例】带进位循环左、右移指令实现某广告牌上16个彩灯顺序亮灭应用编程。49(数据处理类指令)2.线性移位类指令线性移位类指令有位和字左移和右移四条指令。(1)线性位左、右移位指令线性位移位指令的功能是将S(·)指定的n2个位元件中数据从左端或右端移入D(·)所指定的n1个位元件中,首尾端移出的n2个数据丢失。注意,n2≤n1≤1024。50指令名称指令代码位数助记符操作数使用范围程序步S(·)D(·)n1n2位右移FNC34(16)SFTR、SFTRPX、Y、M、SD□.bY、M、Sn1:K、H、n2:K、H、D、Rn2≤n1≤1024SFTR、SFTRP…9步位左移FNC35(16)SFTL、SFTLPSFTL、SFTLP…9步(数据处理类指令)当X010=ON时,SFTRP指令执行一次,将S(·)指定的n2=4个位元件中数据移到D(·)指定的n1=16个位元件的高四位中,且D(·)元件中数据依次向右移四位,低四位M3~M0中数据移出(溢出),若程序中n2=1,则每次只右移1位。M0-M3溢出M7-M4M0-M3M11-M8M7-M4M15-M12M11-M8X000-X003M15-M12【例】线性位移位指令实现广告牌上“欢迎光临”四个字顺序亮的应用编程。0M1011000000M8M1M2M3M4M6M5M710000000M1-M8每隔1秒为ON0广告牌上“欢迎光临”四个字先每秒亮一个字(M1~M4)再全亮(M5)再四个字灭1秒(M6)同时亮1秒(M7)将M1~M4清零X0=ON,M10=1SFTL移位(2)字左、右移位指令(WSFL和WSFR)当X000变ON时,D(·)内(D10~D25)16个字数据连同S(·)内(D0~D3)4个字数据向左移4个字。KnY,KnM,KnS,T,C,DknX,KnY,KnM,KnS,T,C,D【例】循环左、右移指令实现某广告牌上的L1~L8八个彩灯的程序编程。当X000=ON时,灯先以正序(左移)每隔1s依次点亮,当Y007亮后,停5S;然后以反序(右移)每隔1s依次点亮,当Y000亮后,停5s,重复上述过程。当X001为ON时,停止工作。Y000=ONL1L2L3L4L5L6L7L8L7L6L5L4L3L2L1三菱FX3U系列PLC基本编程-应用指令问题:K4Y000能不能改成K2Y000?每秒左移位每秒右移移位三菱FX3U系列PLC基本编程-应用指令每隔1S移位【例】线性位移位指令实现广告牌上“欢迎光临”四个字顺序亮的应用编程。三菱FX3U系列PLC基本编程-应用指令0M1011000000M8M1M2M3M4M6M5M710000000M1-M8每隔1秒为ON0广告牌上“欢迎光临”四个字先每秒亮一个字(M1~M4)再全亮(M5)再四个字灭1秒(M6)同时亮1秒(M7)三菱FX3U系列PLC基本编程-应用指令将M1~M4清零X0=ON,M10=1SFTL移位FIFO读写指令是先进先出(FIFO)读写指令,包括SFWR和SFRD两条指令,可用于数据管理。指令名称指令代码助记符

程序步S(·)D(·)n先进先出写入FNC38(16)SFWRSFWRPKnX、KnY、KnM、KnS、T、C、D、V、Z、R、U□\G□KnY、KnM、KnST、C、D、R、U□\G□K、H2≤n≤512SFWR、SFWRP…7步先进先出读出FNC39(16)SFRDSFRDPKnY、KnM、KnS、T、C、D、R、U□\G□KnY、KnM、KnS、T、C、D、R、V、Z、U□\G□SFRD、SFRDP…7步先进先出控制数据写入指令SFWRSFWR指令是先进先出控制数据写入指令。n=10表示D1开始有10个连续软元件,D1作为数据写入个数指针。当X000由OFF→ON时:将D0的数据存储到D2,指针D1的内容为1;将D0的数据存储到D3,指针D1的内容为2;……当D1内的数据超过n-1时,则上述操作不再执行,进位标志M8022动作。n=10表示从D1开始D1~D10,且D1中内容为9。当X000由OFF→ON时,D2

D20内,指针D1的内容减1,D3~D10的数据向右移。当D1的内容减为0时,则上述操作不再执行,零位标志M8020为ON。先进先出控制数据读出指令SFRD例:将输入的100个产品数据通过先进先出写入和读出。产品写入D202~D301产品读出到D310输入产品数据输出显示数据处理类其他指令1.成批复位指令成批复位指令也称为区间复位指令63(数据处理类指令)位元件区间复位32位字元件区间复位位元件区间复位解码指令解码指令DECO(DECODE)又称译码指令,它的功能是将源操作数S(·)指定的常数或元件中起始n位的二进制数转换为十进制数Q,使目标操作数D(·)指定的2n位有效范围中对应的Q位置1。64当X010=ON时,解码指令执行一次,将S(·)指定的X000起始的3位连续的位元件中二进制数011转换为十进制值Q=21+20=3,对D(·)指定的M10起始的2n位有效目标元件范围内的第3位元件(不含目标元件位本身)M13置1,其它位均置0。源操作数和目标操作数指定的均是字元件时,当X010=ON时,解码指令执行一次,将S(·)指定的D0中低3位二进制数011转换为十进制值Q=21+20=3,对D(·)指定的D1中2n位有效范围的第3位(不含目标元件位本身)b3位置1,有效范围内的其它位均置0。若解码的源数据Q=0时,则b0位为1。65注意:D(·)指定字元件时,n≤4,则可对D(·)指定的字元件的24=16位范围的某位解码置1;若n=0,指令不执行;n在1~4以外时,出现运算错误。执行解码指令后,X010变为OFF,D(·)指定元件中解码置1的位保持不变。(数据处理类指令)【例】解码指令应用于花式喷泉控制喷水的控制程序。66(数据处理类指令)3.编码指令编码指令ENCO(ENCODE)是解码指令的逆操作,它是将源操作数S(·)指定的元件内2n位中对应的最高置1位的位号编成二进制码,存放于目标操作数D(·)指定元件的n位中。67当X005=ON时,编码指令执行一次,指令根据源操作数S(·)指定的M10为首地址的23=8个连号位元件中,最高置1位是M13,其位号为b3,以二进制码011形式存放到目标D(·)指定元件D10的低3位中。(数据处理类指令)【例】解码指令应用于花式喷泉控制喷水的控制程序中,使用数码管显示号码。684.求ON(置1)位总和的指令求置1位总和指令可以对源操作数S(·)指定的常数或元件中数据为“1”的位求总和。69(数据处理类指令)5.ON位判断指令ON位指令也称“对源元件指定位的状态判别指令”,可用来判断源操作数S(·)指定元件的第n位是否为1,若为1则使目标操作数D(·)指定的位元件为ON,否则为OFF。70【例】SUM、BON、MEAN三指令的综合应用编程。SUM:求ON位总和BON:ON位判断MEAN:求平均值三菱FX3U系列PLC基本编程-应用指令判断D0Z0中第15位是否为1(为1表示负数)求D0Z0中为1的位之和,送到M10-M13求D0-D2中三个数平均值7.二进制开方指令二进制开方指令可将S(·)指定的常数或数据寄存器中二进制数正数进行开方,存入D(·)指定的数据寄存器中。若源数据为负数,则错误标志M8067动作,指令不执行。X000=ON,S(·)指定的数据寄存器D10中二进制数进行开方,将开方结果舍去小数取整值存入D12中。开方出现小数时,借位标志M8021为ON;开方结果为0时,零标志M8020为ON。72(数据处理类指令)8.数据合计值指令计算数据合计值指令是对源操作数指定的n个连续16位或32位软元件中的二进制数据求合计值,存放于目标操作数指定的软元件中。73当X000=ON,指令执行一次,将S(·)指定的D0~D5连续6个单元中数据计算合计值,并以32位二进制数据的形式存放于D(·)指定的D11和D10中。(数据处理类指令)10.数据表的数据删除指令数据表的数据删除指令是根据D(·)+1指定的软元件中数据表,对其指定的第n个元件中“要删除的数据”,进行删除,并将删除的数据保存在S(·)指定软元件中,数据表中n+1个单元开始的数据逐个向上移动,D(·)指定的起始软元件保存的数据个数减1。74当X000=ON时,指令根据n=2,将D(·)指定的起始软元件D10后的第2个软单元D12中数据“5555”删除,并保存在S(·)指定软元件D0中,D(·)指定的第n+1=3个软元件起始的数据表数据逐个向上移动,且D(·)指定的起始软元件D10中保存的数据个数减1变为4。(数据处理类指令)【例】数据表的数据删除指令、数据表计算合计值指令的编程应用。当X000=ON,FDELP执行一次,同时WSUMP指令执行一次。75(数据处理类指令)二进制整数算术运算类指令M8020为零标志,M8021为借位标志,M8022为进位标志。76(算术与逻辑运算类、浮点数类指令)运算类指令数据类型:整数运算浮点数转换和运算字符串运算运算类型:算术运算逻辑运算二进制整数算术运算类指令加法ADD(ADDITION)减法SUB(SUBTRACTION)乘法MUL(MULTIPLICATION)除法DIV(DIVISION)加1INC(INCREMENT)减1DEC(DECREMENT)加减乘除运算会使标志位变化,M8020为零标志,M8021为借位标志,M8022为进位标志。79加法指令减法指令运算结果为0,则零标志M8020置1;16位指令运算结果超出32767或32位指令运算结果超出2147483647,则进位标志M8022置1;16位指令运算结果小于-32767或32位指令运算结果小于-2147483647(),则借位标志M8021置1。(算术与逻辑运算类、浮点数类指令)乘法指令:乘法指令是将两个源操作数指定的常数或元件中的二进制数相乘,求得的积送到目标操作数指定的元件中去。除法指令:除法指令是将S1(·)指定的常数或元件中的二进制数作为被除数,S2(·)指定的常数或元件中的二进制数作除数,求得的商送到目标操作数D(·)指定的元件中,余数送到D(·)+1指定的元件中。80(算术与逻辑运算类、浮点数类指令)【例】使用乘2的方法实现16个灯的左移位循环。当X000为ON,灯正序每1S单个移位循环乘2:0000,0000,0000,00010000,0000,0000,00100000,0000,0000,0100除2:1000,0000,0000,00000100,0000,0000,0000编程思路:采用乘2、除2指令实现灯组的移位循环。加1法指令:加1指令INC在满足执行条件下,将目标操作数指定的元件中数据自动加1。每当X000由OFF→ON变化一次,INCP指令就使D(·)指定的元件D10中的二进制数自动加1。若使用连续执行型指令时,在X001=ON不变下,则每个扫描周期都使D(·)指定的元件内容自动加1。注意:16位加1指令运算时,当+32767加1则会变为-32768;同理,在32位加1指令运算时,当+2147483647加1变为-2147483647。加1指令的操作对零位、进位、借位标志没有影响。减1法指令:减1指令DEC在满足执行条件下,将目标操作数指定的元件中数据自动减1。82(算术与逻辑运算类、浮点数类指令)【例】算术运算指令的应用编程。乘法运算,乘积不超出16位X000-X007输入数据除法运算,舍去余数对D6开方舍去小数点后的数,送到D10中逻辑运算指令逻辑运算指令包括:与AND、或OR、异或XOR三条指令。对应的运算是WAND,WOR和WXOR。逻辑字“与”指令WAND,当X000=ON时,S1(·)指定的D10和S2(·)指定的D12中数据按位进行逻辑字与运算,不产生进位,结果存于由D(·)指定的D14元件中。注意:逻辑运算不产生进位。浮点数转换浮点数转换类指令有二进制浮点数与二进制整数互相转换指令、二进制浮点数与十进制整数互相转换指令、二进制浮点数与字符串互相转换指令六条。BIN整数转换BIN浮点数与指令:若M8023=OFF,当X000=ON时,将源元件D10中的16位二进制整数转换为二进制浮点数,存入目标元件(D13,D12)中;若M8023=ON,当X000=ON时,将(D11,D10)中的二进制浮点数转换为32位二进制整数(小数点后的数舍去)存入(D13,D12)中。85(算术与逻辑运算类、浮点数类指令)浮点数运算浮点数转换类指令浮点数算术运算类指令指数、对数和开方指令三角函数运算指令角度转换指令浮点数运算类指令二进制浮点数运算类指令有加、减、乘、除、开方、指数运算、三角函数运算、反三角函数运算等。87(算术与逻辑运算类、浮点数类指令)【例】浮点数指数运算。当X000=ON,传送指令将K48送入D0中,因D0中数据≤loge2127=K88,则将D0中数据转换为二进制浮点数,存入(D11、D10)中,然后进行指数运算,其结果的二进制浮点指数(7.017e+1。923)存放在D21、D20中程序。88(算术与逻辑运算类、浮点数类指令)浮点数转换二进制浮点数与二进制整数互相转换

FLT和INT二进制浮点数与十进制整数互相转换指令EBCD和EBIN二进制浮点数与字符串互相转换指令ESTR和EVALBIN整数转换BIN浮点数FLT(FLOAT)指令在M8023作用下可实现可逆转换,若M8023=OFF,当X000=ON时,将源元件D10中的16位二进制整数转换为二进制浮点数,存入目标元件(D13,D12)中;若M8023=ON,当X000=ON时,将(D11,D10)中的二进制浮点数转换为32位二进制整数(小数点后的数舍去)存入(D13,D12)中。字符串运算字符串常数以“”框起来,字符串最多可以指定32个字符,到NUL代码(00H)为止。字符串转换类指令子字符串运算指令字符串传送指令字符串运算92【例】字符串运算指令的应用。用D10中字符替换D4中字符,R0为替换字符的起始位置为1,而R0+1的单元R1作为替换字符串的长度为2。一个字符串占8个位字符用ASC码表示,如“0”的十进制为48。MIDW为替换字符串D10DCBAD4000202BAD4字符串转换类指令字符串与二进制数据转换VAL和BIN连接字符串$检测字符串长度LEN字符串“-123.45”子字符串运算类指令从字符串的右侧取出RIGHT从字符串的左侧取出LEFT从字符串中取子字符串MIDR替换任意的子字符串MIDW取子字符串个数条件跳转指令条件跳转指令可用于跳过不需要执行的程序段指令,达到有选择地执行分支程序,达到缩短程序执行周期的目的。跳转到某处执行,P0~P127指针指定其入口。96(程序流程控制类指令)条件跳转指令执行的意义是:只要满足跳转条件,PLC在每个扫描周期都执行跳转指令,跳转到以指针Pn为入口地址的程序执行,若跳转条件不满足,不执行跳转指令,顺序往下执行程序。97当X000置1(常开触点闭合),执行跳转指令,跳至标号P8地址处开始执行程序,因X000=1,它的常闭触点此时是断开的,不执行CJP9跳转指令,仅执行该指令下面开始的程序,直至END结束。(程序流程控制类指令)不同程序段的双线圈没有影响【例】使用跳转指令实现手动和自动程序。跳转指令可用来选择执行一定的程序段,在工业控制中经常使用。比如,为了提高设备的可靠性和调试的需要,许多设备也要建立自动及手动两种工作方式。98(程序流程控制类指令)条件跳转指令向上跳转第一个扫描周期执行初始化程序子程序调用及返回指令子程序调用指令CALL可以安排在主程序中,也可以嵌套在子程序中,调用的子程序必须安排在主程序结束指令FEND之后,调用指针为入口P0~P62,P64~P127,可以嵌套5级。子程序结束返回指令SRET主程序结束指令FEND子程序调用及返回指令子程序调用指令CALLP即可以安排在主程序中,也可以根据需要嵌套在子程序中,调用的子程序必须安排在主程序结束指令FEND之后,以指针为入口,子程序结束要安排返回指令SRET。101(程序流程控制类指令)[CJP1]执行时从主控区外跳到主控区内,跳转独立于主控操作,即主控指令[MCN0M0]中M0无论状态如何,均作ON处理;[CJP2]在主控区内跳转时,只有当M0=ON,跳转指令才能跳转;[CJP3]从主控区内跳到主控区外时,只有当M0=ON时,才可以跳转到主控区外,这时MCRN0可视为无效;

[CJP4]从一个主控区内跳到另一个主控区内,当主控指令[MCN0M1]中M1=ON时,该区跳转跳转到下一个主控区时,本区MCRN0可被忽略,下一个主控区指令[MCN0M2]中M2状态均看作ON。102(程序流程控制类指令)中断指令中断指令有中断允许、中断禁止和中断返回三条指令,均为无操作数指令。其中,中断允许、中断禁止指令是安排在主程序中指定某段程序区内是否允许响应中断请求的指令,中断返回指令应安排在中断子程序的结束处。中断是PLC响应各种中断请求的一种工作方式。主程序在执行过程中,当在EI与DI(或到FEND)之间(称为开放中断响应区,简称开中断区)有中断请求信号时,则响应中断请求转去执行中断指针指定的子程序;若在DI与EI(或到FEND)之间(称为关闭中断响应区,简称“关中断区),有中断请求信号,则不响应中断请求指定的中断子程序。103(程序流程控制类指令)中断指针又可分为输入中断指针六个(响应X000~X005发出的中断信号,执行该类指针对应的子程序),定时器中断指针三个,计数器中断指针六个。输入中断请求信号从对应的输入端送入,可用于机外突发随机事件发出的中断响应。定时器中断是机内中断定时指针自动定时,定时时间可在10~99ms之间选取,一旦定时时间到,自动执行定时中断子程序,可用于周期性重复执行的场合。计数器中断是利用机内高速计数器对外部计数的当前值与设定值进行比较,在满足比较条件时,执行计数中断指针入口的子程序。104(程序流程控制类指令)【例】定时中断实现16个LED灯亮灭。I750入口的定时中断子程序每50ms执行一次105M8057=ON,则I750定时中断子程序禁止执行。(程序流程控制类指令)循环指令FOR与NEXT二条指令为循环指令,编程时要配对使用。可以指定某段程序重复循环执行n次,循环指令的操作数可以指定常数、字元件中的数据作为循环次数。106(程序流程控制类指令)【例】循环指令FOR与NEXT实现从键盘输入五个十进制数求平均值的应用编程。调用子程序循环5次高速处理类指令比较置位指令DHSCS(SETBYHIGHSPEEDCOUNTER)比较复位指令DHSCR(RESETBYHIGHSPEEDCOUNTER)区间比较指令DHSZ(ZONECOMPAREFORHSC)可以用于对高速计数器的当前计数值与设定值或设定区间数据进行比较,其比较结果使指定的位元件进行置位、复位或调用中断子程序。108(其他应用指令)【例】高速计数器中断应用梯形图编程。程序中使用的C255为2相双计数输入,具有接收X003和X004两个输入端的A、B脉冲输入(两个脉冲相位决定了加或减计数),并有接收X007信号实现外启动的控制功能和接收X005信号实现外复位的功能。当程序运行后,进入开中断区,若X010=OFF,M8059=OFF,C255高速计数器接收脉冲的当前计数值与比较置位指令DHSCS中设定的十进制常数K500进行比较。109(其他应用指令)方便类指令110(其他应用指令)数据检索指令数据检索指令SER(DATASEARCH)可以进行同一数据、最大值、最小值检索。当X010=ON时,从D100为起始的n=10个元件D100~D109中,检索与D0中相同的数据(设K100)、最大值、最小值,并将其检索结果的内容存入D10~D14的五个连续地址的元件中。111(其他应用指令)示教定时器指令示教定时器指令TTMR(TEACHINGTIMER)可以测定按钮按下的时间,乘以n指定的倍率存入定时器的设定值元件中。其中,操作数D(·)为D、R,操作数n为K、H、D、R(n=0~

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论