语句表指令介绍_第1页
语句表指令介绍_第2页
语句表指令介绍_第3页
语句表指令介绍_第4页
语句表指令介绍_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

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

文档简介

关于语句表指令介绍1第一页,共一百四十三页,编辑于2023年,星期四21.位操作指令A

AN

O

ON

X

XN

与非

或非

对于简单的指令,如(#),(P)等,如果在LAD中看不清楚,可以转换成语句表,了解整个执行流程。

取反

输出

中间值

复位

置位

RS/SR触发器

正负边沿检测

保存RLO到BR中

NOTRLO取反

SETRLO置位

CLRRLO复位

FN负边沿检测

FP正边沿检测

第二页,共一百四十三页,编辑于2023年,星期四3基本置位复位RS/SR触发器转换成语句表以后为R指令和S指令组合第三页,共一百四十三页,编辑于2023年,星期四4(P)检测前面M1.2的状态,其数值放置在M1.4内,与下一次M1.2相比。(N)检测前面M1.2的状态,其数值放置在M1.3内,与下一次M1.2相比。=输出,赋值指令第四页,共一百四十三页,编辑于2023年,星期四5NEG检测M1.6的状态。因为Q4.4的状态只是保持一个周期,所以使用一个自锁,观察状态。第五页,共一百四十三页,编辑于2023年,星期四6系统把某一变量恒定置位或者复位的方法。还有:A“FALSE”R“FALSE”AN“TRUE”S“TRUE”第六页,共一百四十三页,编辑于2023年,星期四7使用同一个信号分别设置本地与远程操作。紧停信号串联,因为只要一个出现故障,则系统断电。第七页,共一百四十三页,编辑于2023年,星期四8根据某一时钟脉冲,再作出其它一些时钟脉冲。本例子中,根据M6.1-1秒钟的时钟脉冲,作出一个3秒钟的时钟脉冲来。其中#IF.H1_Imp3Sec为一直小于3的计数变量,其在每次M6.1为1时加1,加到3时,把M6.7置位输出,否则,复位M6.7,这样M6.7每3秒变化一次,也就是一个3秒钟的时钟周期。第八页,共一百四十三页,编辑于2023年,星期四9

XXN的组合逻辑关系图,

X/X组合在状态不同时输出为1;

X/XN组合在状态相同时输出为1;停止时有灯按照一定的频率闪烁,程序如上图。第九页,共一百四十三页,编辑于2023年,星期四10SETRLO置位

CLRRLO复位

()前后的操作,先看括号前的指令,再接合括号内指令。得出输出。把括号前的A看成是串连逻辑,括号与括号之间为串连关系。

O前后为并联逻辑,也就是说只要前后有一个为1,结果为1;第十页,共一百四十三页,编辑于2023年,星期四11?以下程序段对应与什么样的梯形图

A"STAT-a1".ROB_CTRL.Pr_AtomOnAN"STAT-a1".ROB_FLT.Flt_Seq_Program_5AN"STAT-a1".ROB_FLT.Flt_General_2 ON"EPS-CTRL_1".AT.ROB2_ENOA"GHOST_RUN"A"GHOST-W-COL"ON"PARA-STA".a1_ENABLE="CR-ATa1"第十一页,共一百四十三页,编辑于2023年,星期四12

A(A(OM1000.0ONM100.5)A(ONM1000.1OM1000.2)AM1000.3OM1000.6)AM1000.7=M100.4第十二页,共一百四十三页,编辑于2023年,星期四13第十三页,共一百四十三页,编辑于2023年,星期四142.比较指令==ACCU2等于ACCU1

<>ACCU2不等于ACCU1

>ACCU2大于ACCU1

<ACCU2小于ACCU1

>=ACCU2大于等于ACCU1

<=ACCU2小于等于ACCU1如果满足条件,则RLO赋值,

根据不同的参数类型有不同指令:

整型数==I,<>I,>I,<I,>=I,<=I

双整型数==D,<>D,>D,<D,>=D,<=D

浮点数==R,<>R,>R,<R,>=R,<=R

第十四页,共一百四十三页,编辑于2023年,星期四15ACCU1ACCU2L***//执行完此句时,把L的数值***装入累加器1,累加器1内数值◎◎装入累加器2;ACCU1***L###//执行完此句时,把L的数值###装入累加器1,累加器1内***数值装入累加器2;ACCU1ACCU2ACCU2###◎◎

$$***◎◎第十五页,共一百四十三页,编辑于2023年,星期四16整数MW20>MW22,

RLO置位,M2.0输出。

梯形图指令始终是先输入的与后输入的比较。如果大于,则>I指令输出1。第十六页,共一百四十三页,编辑于2023年,星期四17双整型数MD20>MD24,

RLO置位,M2.0输出。

梯形图指令第十七页,共一百四十三页,编辑于2023年,星期四18比较实数第十八页,共一百四十三页,编辑于2023年,星期四19应用第十九页,共一百四十三页,编辑于2023年,星期四203.格式转换指令BTI/BTDBCD到整型数/双整型数

ITB/DTB整型数/双整型数到BCD

ITD整型数到双整型数

DTR双整型数到实数

INVI整型按位取反(16位)

INVD双整型按位取反(32位)

NEGI整型按位取反加1,得到负数

NEGD双整型按位取反加1,得到负数

NEGR实数得到负数

CAD交换累加器1低位内容,0-7<->8-15对换

CAW交换累加器1内容,ABCD换成DCBA。

RND、RND+、RND-、TRNUC圆整、截尾。

第二十页,共一百四十三页,编辑于2023年,星期四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码。第二十一页,共一百四十三页,编辑于2023年,星期四22BCD与整数之间的转换,负数的BCD格式与常规不同。第二十二页,共一百四十三页,编辑于2023年,星期四23BCD与双整型转换双整型转换与BCD第二十三页,共一百四十三页,编辑于2023年,星期四24INVI:整型各位取反NEGI:整型各位取反加1

即得到负数第二十四页,共一百四十三页,编辑于2023年,星期四25

得到负数CAD、CAW指令第二十五页,共一百四十三页,编辑于2023年,星期四26圆整到

最近整数MD10="100.5"=>RND=>MD20="+100"MD10="-100.6"=>RND=>MD20="-101"MD10="100.6"=>RND=>MD20="+101"MD10="-100.5"=>RND=>MD20="-100"第二十六页,共一百四十三页,编辑于2023年,星期四27截去小数点后数向上圆整MD10="100.5"=>RND+=>MD20="+101"MD10="-100.5"=>RND+=>MD20="-100"第二十七页,共一百四十三页,编辑于2023年,星期四284.计数器指令如果S引脚输入1,则计数器值为PV内数值;如果R引脚输入1,则计数器计数器值清零;如果CU引脚从0->1,则计数值加一,到999为止且保持不变;如果CU引脚从1->0,则计数值减一,到零为止且保持不变;第二十八页,共一百四十三页,编辑于2023年,星期四29第二十九页,共一百四十三页,编辑于2023年,星期四30把数值12赋给c3。加减计数第三十页,共一百四十三页,编辑于2023年,星期四31OPN打开数据块

CDB交换数据块内容

LDBLG装载共享数据块长度

LDBNO装载共享数据块编号

LDILG装载背景数据块长度

LDINO装载背景数据块编号5.块操作指令第三十一页,共一百四十三页,编辑于2023年,星期四32打开数据块方式CDB交换数据块内容,例如把背景数据块里面的内容与共享数据块交换,可以访问共享数据块,进行操作处理。访问背景数据块时,可以使用DI,也可以使用DB打开数据块。第三十二页,共一百四十三页,编辑于2023年,星期四33把共享数据块的内容送到背景数据块内首先打开共享数据块DBMS;然后从中读出DBD1176(此处访问共享数据块,所有使用DBD***);最后,传送到DID相应地址中去(此处访问背景数据块,所有使用DID***,且不要指定数据块号,因为在调用FB时已经指定了数据块);应用第三十三页,共一百四十三页,编辑于2023年,星期四34LDBLG判断数据块大小是否合适OPNDB10//OpendatablockDB10asshareddatablock.LDBLG//Loadlengthofshareddatablock(lengthofDB10).LMD10//Valueforcomparisonifdatablockislongenough.<DJCERRO//JumptoERROjumplabeliflengthislessthanvalueinMD10.第三十四页,共一百四十三页,编辑于2023年,星期四35LDBLG装载共享数据块长度

LDBNO装载共享数据块编号

LDILG装载背景数据块长度

LDINO装载背景数据块编号第三十五页,共一百四十三页,编辑于2023年,星期四36DB_CC_STAT为DB4,保存控制台激活的信号;同时把此信号存放到输出里。第三十六页,共一百四十三页,编辑于2023年,星期四37第三十七页,共一百四十三页,编辑于2023年,星期四38CDB解决了在一个功能块内调用两个共享数据块的问题;否则使用OPNDB1,×××再使用OPNDB2,×××容易出问题。第三十八页,共一百四十三页,编辑于2023年,星期四39状态·····BRCC1CC0OSOVORSTARLOFC首次检测位

*逻辑操作结果*

状态位

或位

溢出位

溢出状态保持位

条件码0

条件码1

二进制结果位状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检测状态字,并可以根据状态字中的某些位决定程序的走向和进程。

第三十九页,共一百四十三页,编辑于2023年,星期四406.逻辑控制指令第四十页,共一百四十三页,编辑于2023年,星期四41无条件跳转指令JL:跳转表格JU:无条件跳转第四十一页,共一百四十三页,编辑于2023年,星期四42根据JL后面指令和JL指向标签栏之间的跳转个数决定如何跳转。第四十二页,共一百四十三页,编辑于2023年,星期四43根据RLO条件跳转指令第四十三页,共一百四十三页,编辑于2023年,星期四44BR很多时候用于输出ENO。A I1.0 A I1.2 JCB JOVR //JumpifRLO=1tojumplabelJOVR.CopythecontentsoftheRLObitintotheBRbit.L IW8 //Programscancontinueshereifjumpisnotexecuted.T MW22 JOVR: A I2.1 //ProgramscanresumeshereafterjumptojumplabelJOVR.第四十四页,共一百四十三页,编辑于2023年,星期四45根据状态位BR/OV/OS跳转注意此处JO与JOS的区别,JO只是判断前面的一个计算是否溢出,而JOS则判断前面所有计算是否有过溢出。第四十五页,共一百四十三页,编辑于2023年,星期四46第四十六页,共一百四十三页,编辑于2023年,星期四47根据运算结果跳转第四十七页,共一百四十三页,编辑于2023年,星期四48第四十八页,共一百四十三页,编辑于2023年,星期四49如何单步运行1,打开online功能块;(语句表格式)2,设置运行模式为test模式;3,插入断点,单步运行。第四十九页,共一百四十三页,编辑于2023年,星期四50

可以观察PLC的寄存器数值,查看各个工作区域变化值。第五十页,共一百四十三页,编辑于2023年,星期四51第五十一页,共一百四十三页,编辑于2023年,星期四52第五十二页,共一百四十三页,编辑于2023年,星期四53第五十三页,共一百四十三页,编辑于2023年,星期四54第五十四页,共一百四十三页,编辑于2023年,星期四55JUO使用:除以0;使用非法指令;浮点数比较,与无穷大或无穷小比较。第五十五页,共一百四十三页,编辑于2023年,星期四56LOOP跳转第五十六页,共一百四十三页,编辑于2023年,星期四577.算术指令(16位整型)+IACCU1+ACCU2-IACCU2-ACCU1*IACCU1*ACCU2/IACCU2/ACCU1+整型常数(16,32位)(32位双整型)+DACCU1+ACCU2-DACCU2-ACCU1*DACCU1*ACCU2/DACCU2/ACCU1MOD取余数第五十七页,共一百四十三页,编辑于2023年,星期四58加法运算各种结果下的状态位指示。第五十八页,共一百四十三页,编辑于2023年,星期四59L20+200TMW192+I与+的用法第五十九页,共一百四十三页,编辑于2023年,星期四60乘法运算各种结果下的状态位指示。

第六十页,共一百四十三页,编辑于2023年,星期四61如果运算结果超出变量范围,如上例里面结果超出16位的MW184,赋值后出现错误结果,因此在乘法运算时尤其注意应该考虑结果会溢出的情况。此时可以读出状态字,1011指示结果超出32767,应该赋值给32位整型。第六十一页,共一百四十三页,编辑于2023年,星期四62除法运算各种结果下的状态位指示。第六十二页,共一百四十三页,编辑于2023年,星期四63除法:ACCU2-L/ACCU1-L,然后结果放到ACCU1-L,而余数放到ACCU1-H,影响的状态位如上页所示;

所以在上图中,当结果放置到MW192时,看不到余数,而放到MD196时,可以看到高位的余数数值。第六十三页,共一百四十三页,编辑于2023年,星期四64ACCU2/ACCU1,余数放到ACCU1;

L2000

L30

MOD

TMW194

第六十四页,共一百四十三页,编辑于2023年,星期四65+RACCU1+ACCU2-RACCU2-ACCU1*RACCU1*ACCU2/RACCU2/ACCU1ABS绝对值SQR平方SQRT平方根EXP指数值LN对数值下列角度算术运算:SINCOSTANASINACOSATAN第六十五页,共一百四十三页,编辑于2023年,星期四66开平方必须是浮点数格式才可以。第六十六页,共一百四十三页,编辑于2023年,星期四67第六十七页,共一百四十三页,编辑于2023年,星期四68第六十八页,共一百四十三页,编辑于2023年,星期四69以e为底数的指数值,判断OV位是否为1,程序是否有溢出、无穷大等。第六十九页,共一百四十三页,编辑于2023年,星期四70应该只是接受弧度数的计算值,也就是说,先把45度转换成。第七十页,共一百四十三页,编辑于2023年,星期四71第七十一页,共一百四十三页,编辑于2023年,星期四72符号S指数e=E+bias,bias=-127底数m=2-1~2-23

数值=(1+m)*2(e-bias)第七十二页,共一百四十三页,编辑于2023年,星期四73实数:100.25,转换为16进制为:42C88000,转换为2进制为:指数:27+22+20=133底数:2-1+2-4+2-8=0.566406251.56640625*2(133-127)=100.25第七十三页,共一百四十三页,编辑于2023年,星期四74L装载LSTW装载状态字到ACCU1LAR1AR2装载地址寄存器2的数值到地址寄存器1中LAR1<D>装载32位整型数到(32-bitPointer)地址寄存器1中LAR1装载ACCU1数值到地址寄存器AR1中LAR2<D>装载32位整型数到(32-bitPointer)地址寄存器2中LAR2装载ACCU1数值到地址寄存器2中T传送TSTW传送ACCU1到状态字TAR1AR2传送地址寄存器1到地址寄存器2TAR1<D>传送地址寄存器1到目标地址(32-bitPointer)TAR2<D>传送地址寄存器2到目标地址(32-bitPointer)TAR1传送地址寄存器1到ACCU1TAR2传送地址寄存器2到ACCU1CAR交换地址寄存器1和地址寄存器28.装载与传送指令第七十四页,共一百四十三页,编辑于2023年,星期四75第七十五页,共一百四十三页,编辑于2023年,星期四76装载共享数据块的内容,放入背景数据块响应的单元里面去。第七十六页,共一百四十三页,编辑于2023年,星期四77读取背景数据块的数值。第七十七页,共一百四十三页,编辑于2023年,星期四78FC303LP##SRC_ANY_PTR//SourceDateBlockloadLAR1LD[AR1,P#0.0]//dataTypeandrepeatingfactorTLD0//inANYPointerfileLD[AR1,P#4.0]//DBnumberandidentificationkeyTLD4//inANYPointerfileLW[AR1,P#8.0]//DWnumberTLW8//toANYPointerfileLP##DEST_ANY_PTR//pointerforSourceloadLAR1//andtoARRegisterfileLD[AR1,P#0.0]//dataTypeandrepeatingfactorTLD10//inANYPointerfileLD[AR1,P#4.0]//DBnumberandidentificationkeyTLD14//inANYPointerfileLW[AR1,P#8.0]//DWnumberTLW18//toANYPointerfile第七十八页,共一百四十三页,编辑于2023年,星期四799.程序控制指令BE 块结束BEC 块条件结束BEU 块无条件结束CALL 块调用CC 块条件调用UC 块无条件调用CALL 多重背景调用第七十九页,共一百四十三页,编辑于2023年,星期四80块条件结束:如果条件不满足,则直接返回调用块。第八十页,共一百四十三页,编辑于2023年,星期四81一般调用中,一个FB占用一个DB,而采用多重背景调用,则可以多个FB占用一个DB,带来的损失是多添加一个控制用FB。第八十一页,共一百四十三页,编辑于2023年,星期四82上面为普通调用,下面为多重背景调用。第八十二页,共一百四十三页,编辑于2023年,星期四83通过DP/DPCOUPLER传输的数据。直接在两个PLC内组态相应的数据传输区域,然后访问时直接读取或者写入而不必做其它的组态。通过DP/DPCOUPLER传输的数据。直接在两个PLC内组态相应的数据传输区域,然后访问时直接读取或者写入而不必做其它的组态。第八十三页,共一百四十三页,编辑于2023年,星期四84DP/DPCOUPLER内组态与数据输入输出区域。第八十四页,共一百四十三页,编辑于2023年,星期四85在控制用FB内,把希望控制的器件数据类型设置为FB<N>,此处为FB22,然后就可以在本程序中使用了。第八十五页,共一百四十三页,编辑于2023年,星期四86•UC 块无条件调用,但是在调用FB时不能使用背景数据块。•所以程序内尽量使用CALL指令。第八十六页,共一百四十三页,编辑于2023年,星期四87多重背景调用监视第八十七页,共一百四十三页,编辑于2023年,星期四88第八十八页,共一百四十三页,编辑于2023年,星期四89步骤1,在线打开;2,设置testoperation;3,单击需要监视得块右键;第八十九页,共一百四十三页,编辑于2023年,星期四9010.移位指令第九十页,共一百四十三页,编辑于2023年,星期四91移位无符号数第九十一页,共一百四十三页,编辑于2023年,星期四92第九十二页,共一百四十三页,编辑于2023年,星期四93有符号数移位第九十三页,共一百四十三页,编辑于2023年,星期四94负数移位时高位添1,正数直接移位。第九十四页,共一百四十三页,编辑于2023年,星期四95移位指令一览表第九十五页,共一百四十三页,编辑于2023年,星期四96循环移位第九十六页,共一百四十三页,编辑于2023年,星期四97第九十七页,共一百四十三页,编辑于2023年,星期四98左移254位,每移位32位相当于没有移动,所以和左移30位类似,又因为是循环移位,所以相当于右移2位,除以4。第九十八页,共一百四十三页,编辑于2023年,星期四99移位指令总结SSI 有符号整型移位(16-bit)SSD 有符号双整型移位(32-bit)SLW 整型左移(16-bit)SRW 整型右移(16-bit)SLD 双整型左移(32-bit)SRD 双整型右移(32-bit)RLD 循环左移(32-bit)RRD 循环右移(32-bit)RLDA 添加CC1数值到最低位(32-bit)RRDA 添加CC1数值到最高位(32-bit)第九十九页,共一百四十三页,编辑于2023年,星期四100RLD

RRDRLDARRDA第一百页,共一百四十三页,编辑于2023年,星期四101第一百零一页,共一百四十三页,编辑于2023年,星期四10211.定时器提供等待时间;延时关闭提供监视时间,延时启动产生脉冲等等第一百零二页,共一百四十三页,编辑于2023年,星期四103定时器S为启动定时器信号;R为复位定时器信号,将定时时间复位为0;TV为定时时间;BI、BCD为定时器的剩余时间。共有5种定时器。第一百零三页,共一百四十三页,编辑于2023年,星期四104时间值第一百零四页,共一百四十三页,编辑于2023年,星期四105第一百零五页,共一百四十三页,编辑于2023年,星期四106启动与复位定时器复位指令为1则会将定时器的数值复位为0。第一百零六页,共一百四十三页,编辑于2023年,星期四107脉冲定时器第一百零七页,共一百四十三页,编辑于2023年,星期四108要点第一百零八页,共一百四十三页,编辑于2023年,星期四109扩展脉冲定时器第一百零九页,共一百四十三页,编辑于2023年,星期四110要点第一百一十页,共一百四十三页,编辑于2023年,星期四111接通延时定时器第一百一十一页,共一百四十三页,编辑于2023年,星期四112要点第一百一十二页,共一百四十三页,编辑于2023

温馨提示

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

评论

0/150

提交评论