您好,欢迎访问三七文档
1指令介绍1.位操作指令2.比较指令3.格式转换指令4.计数器5.块操作6.逻辑控制7.算术指令8.装载与传送指令9.程序控制指令10.移位指令11.定时器12.字逻辑操作指令13.累加器相关指令21.位操作指令AANOONXXN与与非或或非对于简单的指令,如(#),(P)等,如果在LAD中看不清楚,可以转换成语句表,了解整个执行流程。取反输出中间值复位置位RS/SR触发器正负边沿检测保存RLO到BR中NOTRLO取反SETRLO置位CLRRLO复位FN负边沿检测FP正边沿检测3基本置位复位RS/SR触发器转换成语句表以后为R指令和S指令组合4(P)检测前面M1.2的状态,其数值放置在M1.4内,与下一次M1.2相比。(N)检测前面M1.2的状态,其数值放置在M1.3内,与下一次M1.2相比。=输出,赋值指令5NEG检测M1.6的状态。因为Q4.4的状态只是保持一个周期,所以使用一个自锁,观察状态。6系统把某一变量恒定置位或者复位的方法。还有:A“FALSE”R“FALSE”AN“TRUE”S“TRUE”7使用同一个信号分别设置本地与远程操作。紧停信号串联,因为只要一个出现故障,则系统断电。8根据某一时钟脉冲,再作出其它一些时钟脉冲。本例子中,根据M6.1-1秒钟的时钟脉冲,作出一个3秒钟的时钟脉冲来。其中#IF.H1_Imp3Sec为一直小于3的计数变量,其在每次M6.1为1时加1,加到3时,把M6.7置位输出,否则,复位M6.7,这样M6.7每3秒变化一次,也就是一个3秒钟的时钟周期。9XXN的组合逻辑关系图,X/X组合在状态不同时输出为1;X/XN组合在状态相同时输出为1;停止时有灯按照一定的频率闪烁,程序如上图。10SETRLO置位CLRRLO复位()前后的操作,先看括号前的指令,再接合括号内指令。得出输出。把括号前的A看成是串连逻辑,括号与括号之间为串连关系。O前后为并联逻辑,也就是说只要前后有一个为1,结果为1;11?以下程序段对应与什么样的梯形图ASTAT-a1.ROB_CTRL.Pr_AtomOnANSTAT-a1.ROB_FLT.Flt_Seq_Program_5ANSTAT-a1.ROB_FLT.Flt_General_2ONEPS-CTRL_1.AT.ROB2_ENOAGHOST_RUNAGHOST-W-COLONPARA-STA.a1_ENABLE=CR-ATa112•A(•A(•OM1000.0•ONM100.5•)•A(•ONM1000.1•OM1000.2•)•AM1000.3•OM1000.6•)•AM1000.7•=M100.413142.比较指令==ACCU2等于ACCU1ACCU2不等于ACCU1ACCU2大于ACCU1ACCU2小于ACCU1=ACCU2大于等于ACCU1=ACCU2小于等于ACCU1如果满足条件,则RLO赋值,根据不同的参数类型有不同指令:整型数==I,I,I,I,=I,=I双整型数==D,D,D,D,=D,=D浮点数==R,R,R,R,=R,=R15ACCU1ACCU2L***//执行完此句时,把L的数值***装入累加器1,累加器1内数值◎◎装入累加器2;ACCU1***L###//执行完此句时,把L的数值###装入累加器1,累加器1内***数值装入累加器2;ACCU1ACCU2ACCU2###◎◎$$***◎◎16整数MW20MW22,RLO置位,M2.0输出。梯形图指令始终是先输入的与后输入的比较。如果大于,则I指令输出1。17双整型数MD20MD24,RLO置位,M2.0输出。梯形图指令18比较实数19应用203.格式转换指令BTI/BTDBCD到整型数/双整型数ITB/DTB整型数/双整型数到BCDITD整型数到双整型数DTR双整型数到实数INVI整型按位取反(16位)INVD双整型按位取反(32位)NEGI整型按位取反加1,得到负数NEGD双整型按位取反加1,得到负数NEGR实数得到负数CAD交换累加器1低位内容,0-7-8-15对换CAW交换累加器1内容,ABCD换成DCBA。RND、RND+、RND-、TRNUC圆整、截尾。21BCD码•BCD码的形式将重量信号传输给大屏幕进行显示•BCD码(二到十进制编码)•把十进制数的每一位分别写成二进制形式的编码,称为二进制编码的十进制数,或BCD(BinaryCodedDecimal)编码。•BCD码编码方法很多,通常采用8421编码,这种编码方法最自然简单。其方法使用四位二进制数表示一位十进制数,从左到右每一位对应的权分别是23、22、21、20,即8、4、2、1。例如十进制数975的8421码可以这样得出•975(D)=100101110101(BCD)•用四位二进制表示一位十进制会多出6种状态,这些多余状态码称为BCD码中的非法码。BCD码与二进制之间的转换不是直接进行的,当需要将BCD码转换成二进制码时,要先将BCD码转换成十进制码,然后再转换成二进制码;当需要将二进制转换成BCD码时,要先将二进制转换成十进制码,然后再转换成BCD码。22BCD与整数之间的转换,负数的BCD格式与常规不同。23BCD与双整型转换双整型转换与BCD24INVI:整型各位取反NEGI:整型各位取反加1即得到负数25得到负数CAD、CAW指令26圆整到最近整数MD10=100.5=RND=MD20=+100MD10=-100.6=RND=MD20=-101MD10=100.6=RND=MD20=+101MD10=-100.5=RND=MD20=-10027截去小数点后数向上圆整MD10=100.5=RND+=MD20=+101MD10=-100.5=RND+=MD20=-100284.计数器指令如果S引脚输入1,则计数器值为PV内数值;如果R引脚输入1,则计数器计数器值清零;如果CU引脚从0-1,则计数值加一,到999为止且保持不变;如果CU引脚从1-0,则计数值减一,到零为止且保持不变;2930把数值12赋给c3。加减计数31OPN打开数据块CDB交换数据块内容LDBLG装载共享数据块长度LDBNO装载共享数据块编号LDILG装载背景数据块长度LDINO装载背景数据块编号5.块操作指令32打开数据块方式CDB交换数据块内容,例如把背景数据块里面的内容与共享数据块交换,可以访问共享数据块,进行操作处理。访问背景数据块时,可以使用DI,也可以使用DB打开数据块。33把共享数据块的内容送到背景数据块内首先打开共享数据块DBMS;然后从中读出DBD1176(此处访问共享数据块,所有使用DBD***);最后,传送到DID相应地址中去(此处访问背景数据块,所有使用DID***,且不要指定数据块号,因为在调用FB时已经指定了数据块);应用34LDBLG判断数据块大小是否合适OPNDB10//OpendatablockDB10asshareddatablock.LDBLG//Loadlengthofshareddatablock(lengthofDB10).LMD10//Valueforcomparisonifdatablockislongenough.DJCERRO//JumptoERROjumplabeliflengthislessthanvalueinMD10.35LDBLG装载共享数据块长度LDBNO装载共享数据块编号LDILG装载背景数据块长度LDINO装载背景数据块编号36•DB_CC_STAT为DB4,保存控制台激活的信号;•同时把此信号存放到输出里。3738CDB解决了在一个功能块内调用两个共享数据块的问题;否则使用OPNDB1,×××再使用OPNDB2,×××容易出问题。39状态字15876543210······BRCC1CC0OSOVORSTARLOFC首次检测位*逻辑操作结果*状态位或位溢出位溢出状态保持位条件码0条件码1二进制结果位状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检测状态字,并可以根据状态字中的某些位决定程序的走向和进程。406.逻辑控制指令41无条件跳转指令JL:跳转表格JU:无条件跳转42根据JL后面指令和JL指向标签栏之间的跳转个数决定如何跳转。43根据RLO条件跳转指令44BR很多时候用于输出ENO。AI1.0AI1.2JCBJOVR//JumpifRLO=1tojumplabelJOVR.CopythecontentsoftheRLObitintotheBRbit.LIW8//Programscancontinueshereifjumpisnotexecuted.TMW22JOVR:AI2.1//ProgramscanresumeshereafterjumptojumplabelJOVR.45根据状态位BR/OV/OS跳转注意此处JO与JOS的区别,JO只是判断前面的一个计算是否溢出,而JOS则判断前面所有计算是否有过溢出。4647根据运算结果跳转4849如何单步运行•1,打开online功能块;(语句表格式)•2,设置运行模式为test模式;•3,插入断点,单步运行。50可以观察PLC的寄存器数值,查看各个工作区域变化值。5152535455JUO使用:•除以0;•使用非法指令;•浮点数比较,与无穷大或无穷小比较。56LOOP跳转577.算术指令(16位整型)+IACCU1+ACCU2-IACCU2-ACCU1*IACCU1*ACCU2/IACCU2/ACCU1+整型常数(16,32位)(32位双整型)+DACCU1+ACCU2-DACCU2-ACCU1*DACCU1*ACCU2/DACCU2/ACCU1MOD取余数58加法运算各种结果下的状态位指示。59L20+200TMW192+I与+的用法60乘法运算各种结果下的状态位指示。61如果运算结果超出变量范围,如上例里面结果超出16位的MW184,赋值后出现错误结果,因此在乘法运算时尤其注意应该考虑结果会溢出的情况。此时可以读出状态字,1011指示结果超出32767,应该赋值给32位整型。62除法运算各种结果下的状态位指示。63除法:ACCU2-L/ACCU1-L,然后结果放到ACCU1-L,而余数放到ACCU1-H,影响的状态位如上页所示;所以在上图中,当结果放置到MW192时,看不到余数,而放到MD196时,可以看到高位的余数数值。64ACCU2/ACCU1,余数放到ACCU1;L2000L30MODTMW19465•+RACCU1+ACCU2•-RACCU2-ACCU1•*RACCU1*ACCU2•/RACCU2/ACCU1•ABS绝对值•SQR平方•SQRT平方根•EXP指数值•LN对数值•下列角度算术运算:•SIN•COS•TAN•ASIN•ACOS•ATAN66开平方必须是浮点数格式才可以。676869以e为底数的指数值,判断OV位是否为1,程序是否有溢出、无穷大等。70应该只是接受弧度数的计算值,也就是说,先把45度转换成。47172•符号S•指数e=E+bias,bias=-127•底数m=2-1~2-23•数值=(1+m)*2(e-bias)73•实数:100.25,转换为16进制为:•42C88000,转换为2进制为:•指数:27+22+20=133•底数:2-1+2-4+2-8=0.56640625•1.56640625*2(133-127)=100.2574•L装载•LSTW装载状态字到ACCU1•LAR1AR2装载地址寄存器2的数值到地址寄存器1中•LAR1D装载32位整型数到(32-bitPointer)地址寄存器1中•LAR1装载ACCU1数值到地址寄存器AR1中•LAR2D装载32位整型数到(32-bitPointer)地址寄存器2中•LAR2装载ACCU1数值到地址寄存器2中•T传送•TSTW传送ACCU1到状态字•TAR1AR2传送地址寄存器1到地址寄存器2•TAR1D传送地
本文标题:语句表指令介绍
链接地址:https://www.777doc.com/doc-3932056 .html