版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章 S7-200系列可编程控制器功能指令及应用学习目标:学习目标:v熟练掌握梯形图的编程方法,掌握功能指熟练掌握梯形图的编程方法,掌握功能指令中的常用指令,了解和会用其他指令。令中的常用指令,了解和会用其他指令。通过对本章的学习,做到可以根据需要编通过对本章的学习,做到可以根据需要编制出结构较复杂的控制程序。制出结构较复杂的控制程序。 第一节 功能指令的分类及用途v 功能指令(功能指令(Function Instruction)又称为)又称为应用指令,它是指令系统中应用于复杂控制应用指令,它是指令系统中应用于复杂控制的指令。功能指令依据其功能可分为:数据的指令。功能指令依据其功能可分为:数
2、据处理类、程序控制类、特种功能类及外部设处理类、程序控制类、特种功能类及外部设备类等类型。这些功能指令实际上是厂商为备类等类型。这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程满足各种客户的特殊需要而开发的通用子程序。序。v第二节第二节 功能指令的表达形式及使用要素功能指令的表达形式及使用要素v1、功能框及指令的标题、功能框及指令的标题l2、语句表达形式、语句表达形式v3、操作数类型及长度、操作数类型及长度v4、指令的执行条件及执行形式、指令的执行条件及执行形式v执行形式分为连续执行和脉冲执行。执行形式分为连续执行和脉冲执行。v5、指令功能及、指令功能及ENO状态状态v6、指令
3、执行结果对特殊标志位的影响、指令执行结果对特殊标志位的影响v7、指令的机型适用范围、指令的机型适用范围v第三节第三节 传送比较类指令及应用传送比较类指令及应用v一、传送类指令一、传送类指令v1.字节、字、双字、实数传送指令字节、字、双字、实数传送指令使能输入有效时,把一个单字节无符号数使能输入有效时,把一个单字节无符号数据由据由IN传送到传送到OUT所指的字节存储单元。所指的字节存储单元。 指令格式:指令格式:MOVB IN, OUT MOVB IN, OUT v2.字节立即传送指令字节立即传送指令v字节立即传送指令含字节立即读指令(字节立即传送指令含字节立即读指令(BIR)及字)及字节立即写
4、(节立即写(BIW)指令,允许在物理)指令,允许在物理I/O和存储器之和存储器之间立即传送一个字节数据。间立即传送一个字节数据。v(1)字节立即读指令)字节立即读指令使能输入有效时,立即读取单字节物理输入使能输入有效时,立即读取单字节物理输入ININ,并,并传送到传送到OUTOUT所指的字节存储单元,不刷新过程映像寄所指的字节存储单元,不刷新过程映像寄存器。存器。 指令格式:指令格式:BIR IN, OUT BIR IN, OUT (2)字节立即写指令:)字节立即写指令:BIW使能输入有效时,从存储器使能输入有效时,从存储器IN读取数据,写入物读取数据,写入物理输出,同时刷新相应的过程映像区理
5、输出,同时刷新相应的过程映像区。 指令格式:指令格式:BIW IN, OUT BIW IN, OUT v3.块传送指令块传送指令l(1)字节块传送指令:)字节块传送指令:BMB l(2)字块传送指令:)字块传送指令:BMW使能输入有效时,把从输入字节使能输入有效时,把从输入字节IN开始的开始的N个字节型数据传送到从个字节型数据传送到从OUT开始的开始的N个字个字节存储单元。节存储单元。 指令格式:指令格式:BMB IN, OUT, N 使能输入有效时,把从输入字使能输入有效时,把从输入字IN开始的开始的N个字型数据传送到从个字型数据传送到从OUT开始的开始的N个字存储个字存储单元。单元。 指令
6、格式:指令格式:BMW IN, OUT, N v3)双字块传送指令:)双字块传送指令:BMD使能输入有效时,把从输入双字使能输入有效时,把从输入双字IN开始的开始的N个双字型数据传送到从个双字型数据传送到从OUT开始的开始的N个双字存储单元。个双字存储单元。 指令格式:指令格式:BMD IN, OUT, N 3预选时间的选择控制预选时间的选择控制某工厂生产的某工厂生产的2种型号工件所需加热的时间为种型号工件所需加热的时间为40 s、60 s。使用。使用2个开关来控制定时器的设定值,每一开关对应个开关来控制定时器的设定值,每一开关对应于一设定值;用起动按钮和接触器控制加热炉的通断。于一设定值;用
7、起动按钮和接触器控制加热炉的通断。PLC I/O地址分配如表如下图所示。地址分配如表如下图所示。v二、比较指令二、比较指令v比较指令是一种比较判断,用于比较两个符号数或无比较指令是一种比较判断,用于比较两个符号数或无符号数。符号数。v 在梯形图中以带参数和运算符号的触点的形式编程,在梯形图中以带参数和运算符号的触点的形式编程,当这两数比较式的结果为真时,该触点闭合。当这两数比较式的结果为真时,该触点闭合。v 在功能框图中以指令盒的形式编程,当比较式结果为在功能框图中以指令盒的形式编程,当比较式结果为真时,输出接通。真时,输出接通。v 在语句表中使用在语句表中使用LD指令进行编程时,当比较式为真
8、指令进行编程时,当比较式为真时,主机将栈顶置时,主机将栈顶置1。使用。使用A/O指令进行编程时,当比指令进行编程时,当比较式为真时,则在栈顶执行较式为真时,则在栈顶执行A/O操作,并将结果放入操作,并将结果放入栈顶。栈顶。v 比较指令的类型有:字节比较、整数比较、双字整数比较指令的类型有:字节比较、整数比较、双字整数比较和实数比较。比较和实数比较。v 比较运算符有:比较运算符有:=、=、和和(表示不等表示不等于)。于)。 1. 字节比较字节比较 字节比较用于比较两个字节型整数值字节比较用于比较两个字节型整数值IN1和和IN2的大小,的大小,字节比较是无符号的。比较式可以是字节比较是无符号的。比
9、较式可以是LDB、AB或或OB后直后直接加比较运算符构成。接加比较运算符构成。如:如:LDB=、AB、OB= 等。等。整数整数IN1和和IN2的寻址范围:的寻址范围:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。和常数。指令格式例:指令格式例:LDB= VB10, VB12 AB MB0, MB1 OB= AC1, 116 2. 整数比较整数比较 整数比较用于比较两个一字长整数值整数比较用于比较两个一字长整数值IN1和和IN2的大小,的大小,整数比较是有符号的(整数范围为整数比较是有符号的(整数范围为16#8000和和16#7FFF之之间)。比较式可以是间)。比较式
10、可以是LDW、AW或或OW后直接加比较运算后直接加比较运算符构成。符构成。如:如:LDW=、AW、OW= 等。等。整数整数IN1和和IN2的寻址范围:的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常和常数。数。指令格式例:指令格式例:LDW= VW10, VW12 AW MW0, MW4 OW= AC2, 1160 3. 双字整数比较双字整数比较双字整数比较用于比较两个双字长整数值双字整数比较用于比较两个双字长整数值IN1和和IN2的大的大小 , 双 字 整 数 比 较 是 有 符 号 的 ( 双 字 整 数 范 围 为小 , 双 字 整
11、 数 比 较 是 有 符 号 的 ( 双 字 整 数 范 围 为16#80000000和和16#7FFFFFFF之间)。比较式可以是之间)。比较式可以是LDD、AD或或OD后直接加比较运算符构成。后直接加比较运算符构成。如:如:LDD=、AD、OD= 等。等。双字整数双字整数IN1和和IN2的寻址范围:的寻址范围:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常数。和常数。指令格式例:指令格式例:LDD= VD10, VD14 AD MD0, MD8 OD= AC0, 1160000 4. 实数比较实数比较 实数比较用于比较两个双字长实数值实数比较用于比较两个
12、双字长实数值IN1和和IN2的大小,的大小,实数比较是有符号的(负实数范围为实数比较是有符号的(负实数范围为-1.175495E-38和和-3.402823E+38,正实数范围为,正实数范围为+1.175495E-38和和+3.402823E+38)。比较式可以是)。比较式可以是LDR、AR或或OR后直接加后直接加比较运算符构成。比较运算符构成。如:如:LDR=、AR、OR= 等。等。整数整数IN1和和IN2的寻址范围:的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常数。和常数。指令格式例:指令格式例:LDR= VD10, VD18 AR MD0, MD
13、12 OR= C30,VW20 /比较计数器,当前值是否大于比较计数器,当前值是否大于等等 /于于VW20VW20中的值中的值 Q0.0 /输出触点输出触点 LDW= C30,VW30 /比较计数器,当前值是否大于比较计数器,当前值是否大于等等 /于于VW30VW30中的值中的值 Q0.1 /输出触点输出触点v三、传送比较指令应用实例三、传送比较指令应用实例v1、彩灯六只分接于、彩灯六只分接于Q0.0-Q0.5,开始工作后,开始工作后,Q0.0先亮,以后每隔先亮,以后每隔2s依次点亮依次点亮1盏灯,直到盏灯,直到6盏灯全亮盏灯全亮2s后,每隔后,每隔2s熄灭熄灭1盏灯,直到盏灯,直到6盏盏灯全
14、熄,灯全熄,2s后再开始循环。后再开始循环。第四节第四节 数学运算类指令及应用数学运算类指令及应用 数学运算类指令含有四则运算指令、数学功数学运算类指令含有四则运算指令、数学功能指令和递增、递减指令及逻辑运算等指令,能指令和递增、递减指令及逻辑运算等指令,是实现运算功能的主体指令。是实现运算功能的主体指令。v四则运算指令四则运算指令v1. 加法运算指令加法运算指令 v加法指令是对有符号数进行相加操作。加法指令是对有符号数进行相加操作。包括:整数加法、双整数加法和实数加包括:整数加法、双整数加法和实数加法。法。v加法指令影响的特殊存储器位:加法指令影响的特殊存储器位:SM1.0(零);(零);S
15、M1.1(溢出);(溢出);SM1.2(负)。(负)。v使能流输出使能流输出ENO断开的出错条件:断开的出错条件:0006(间接寻址);(间接寻址);SM1.1(溢出(溢出);SM4.3(运行时间)。(运行时间)。v(1)整数加法指令:)整数加法指令:+I使能输入有效时,将两个使能输入有效时,将两个单字长(单字长(16位)的符号整数位)的符号整数IN1和和IN2相加,产生一个相加,产生一个16位整数结果位整数结果OUT。 在在LAD和和FBD中,以指令盒形式编程,执行结果:中,以指令盒形式编程,执行结果:IN1+IN2OUT。在在STL中,通常将中,通常将IN2与与OUT公用一个地址单元,执行
16、结公用一个地址单元,执行结果:果:IN1+OUTOUT。指令格式:指令格式:+I IN1, OUT v程序实例: LD I0.1 /使能输入端使能输入端+I VW0, VW2 /VW0+VW2VW2VW2IN2和和OUT可用同一可用同一单元。单元。 整数加法例整数加法例b b v(2)双整数加法指令:)双整数加法指令:+Dv使能输入有效时,将两个双使能输入有效时,将两个双v字长(字长(32位)的符号整数位)的符号整数IN1v和和IN2相加,产生一个相加,产生一个32位整位整v数结果数结果OUT。v指令格式:指令格式:+D IN1, OUTv(3)实数加法指令:)实数加法指令:+R 使能输入有效
17、时,将两个双字使能输入有效时,将两个双字长(长(32位)的实数位)的实数IN1和和IN2相加,相加,产生一个产生一个32位实数结果位实数结果OUT。 指令格式:指令格式:+R IN1, OUT v2. 减法运算指令减法运算指令 v减法指令是对有符号数进行相减操作。包括:整数减法、减法指令是对有符号数进行相减操作。包括:整数减法、双整数减法和实数减法。这三种减法指令与所对应的加法双整数减法和实数减法。这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。指令除运算法则不同之外,其他方面基本相同。v减法指令影响的特殊存储器位:减法指令影响的特殊存储器位:SM1.0(零);(零);S
18、M1.1(溢出);(溢出);SM1.2(负)。(负)。v使能流输出使能流输出ENO断开的出错条件:断开的出错条件:0006(间接寻址);(间接寻址);SM1.1(溢出);(溢出);SM4.3(运行时间(运行时间)。 整数减法整数减法 双整数减法双整数减法 实数减法实数减法 v程序实例: 指令格式:指令格式:-I IN2(IN1), OUT /整数减法,整数减法, OUT-IN2(IN1)OUT -D IN2 (IN1), OUT /双整数减法双整数减法 -R IN2 (IN1), OUT /实数减法实数减法 LD I0.0 /使能输入端使能输入端-I VW2, VW0 /整数减法整数减法 /V
19、W0-VW2VW0VW0 操作数 地址单元 单元长度(字节) 运算前的值运算后的值IN1VW0260005000IN2VW2210001000OUTVW0260005000l3. 乘法运算指令乘法运算指令 l乘法运算指令是对有符号数进行相乘运算。包括:乘法运算指令是对有符号数进行相乘运算。包括:整数乘法、完全整数乘法、双整数乘法和实数乘整数乘法、完全整数乘法、双整数乘法和实数乘法。法。l乘法指令影响的特殊存储器位:乘法指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(负);(负);SM1.3(除数(除数为为0)。)。l使能流输出使能流输出ENO断开的出
20、错条件:断开的出错条件:0006(间接(间接寻址);寻址);SM1.1(溢出);(溢出);SM1.3(除数为(除数为0););SM4.3(运行时间)。(运行时间)。v(1)整数乘法指令:)整数乘法指令:*I使能输入有效时,将两个单字使能输入有效时,将两个单字长(长(16位)的符号整数位)的符号整数IN1和和IN2相乘,产生一个相乘,产生一个16位整数结果位整数结果OUT。 指令格式:指令格式:*I IN1, OUT v程序实例:程序实例:(2)完全整数乘法指令:)完全整数乘法指令:MUL LD I0.0 /使能输入端使能输入端*I VW0, VW2 /整数乘法整数乘法 /VW0*VW2VW2V
21、W2 使能输入有效时,将两个单字使能输入有效时,将两个单字长(长(16位)的符号整数位)的符号整数IN1和和IN2相乘,产生一个相乘,产生一个32位双整数结果位双整数结果OUT。 指令格式:指令格式:*I IN1, OUT v(3)双整数乘法指令:*D v程序实例:(IN2与OUT不是公用一个地址单元时) 使能输入有效时,将两个双字使能输入有效时,将两个双字长(长(32位)的符号整数位)的符号整数IN1和和IN2相乘,产生一个相乘,产生一个32位整数结果位整数结果OUT。 指令格式:指令格式:*D IN1, OUT LD I0.0 /使能输入端MOVD VD0, VD6 /VD0VD6*D V
22、D2, VD6 /双整数乘法 双整数乘法例 v(4)实数乘法指令:)实数乘法指令:*R v使能输入有效时,使能输入有效时,v将两个双字长(将两个双字长(32位)符号整数位)符号整数vIN1和和IN2相乘,产生一个相乘,产生一个32位整位整v数结果数结果OUT。v指令格式:指令格式:*R IN1,OUTv4. 除法运算指令除法运算指令 v 除法运算指令是对有符号数进行相除操作。包括:整数除除法运算指令是对有符号数进行相除操作。包括:整数除法、完全整数除法、双整数除法和实数除法。这四种除法指法、完全整数除法、双整数除法和实数除法。这四种除法指令与所对应的乘法指令除运算法则不同之外,其他方面基本令与
23、所对应的乘法指令除运算法则不同之外,其他方面基本相同。相同。v 除法指令影响的特殊存储器位:除法指令影响的特殊存储器位:SM1.0(零);(零);SM1.1(溢出);(溢出);SM1.2(负);(负);SM1.3(除数为(除数为0)。)。 v使能流输出ENO断开的出错条件:0006(间接寻址);SM1.1(溢出);SM1.3(除数为0);SM4.3(运行时间)。 指令格式:指令格式:/I IN2,OUT /I IN2,OUT /整数除法整数除法, OUT/IN2, OUT/IN2OUTOUT。 DIV IN2, OUT /DIV IN2, OUT /整数完全除法整数完全除法 /D IN2, O
24、UT /D IN2, OUT /双整数除法双整数除法 /R IN2, OUT /R IN2, OUT /实数除法实数除法v程序实例: 在整数除法中,两个在整数除法中,两个16位的整数相除,产生一个位的整数相除,产生一个16位的整数商,不保位的整数商,不保留余数。双整数除法也同样过程,只是位数变为留余数。双整数除法也同样过程,只是位数变为32位。位。在整数完全除法中,两个在整数完全除法中,两个16位的符号整数相除,产生一个位的符号整数相除,产生一个32位结果,位结果,其中,低其中,低16位为商,高位为商,高16位为余数。位为余数。32位结果的低位结果的低16位运算前期被兼位运算前期被兼用存放被除
25、数。用存放被除数。 LD I0.0 /使能输入端使能输入端MOVW +12345, VW12 /12345VW12VW12 MOVW +100, VW20 /100VW20VW20 LD I0.1 /使能输入端使能输入端DIV VW20, VD10 /VW12/VW20VD10VD10 整整数数完完全全除除法法例例 v二、二、 数学功能指令数学功能指令 v数学功能指令包括平方根、自然对数、指数、三数学功能指令包括平方根、自然对数、指数、三角函数等几个常用的函数指令。角函数等几个常用的函数指令。v运算输入输出数据都为实数。结果如果大于运算输入输出数据都为实数。结果如果大于32位位二进制表示的范围
26、,则产生溢出。二进制表示的范围,则产生溢出。v(1)平方根指令:)平方根指令:SQRT 把一个双字长(把一个双字长(32位)的实位)的实数数IN开方,得到开方,得到32位的实数结位的实数结果果OUT。指令格式:指令格式:SQRT IN, OUT v(2)自然对数指令:)自然对数指令:LN v(3)指数指令:)指数指令:EXP 把一个双字长(把一个双字长(32位)的实位)的实数数IN取自然对数,得到取自然对数,得到32位的位的实数结果实数结果OUT。指令格式:指令格式:LN IN, OUT 把一个双字长(把一个双字长(32位)的实位)的实数数IN取以取以e为底的指数,得到为底的指数,得到32位的
27、实数结果位的实数结果OUT。指令格式:指令格式:EXP IN, OUT v(4)三角函数指令:SIN、COS、TAN v程序实例:(求65的正切值) 即正弦、余弦、正切指令。将把一个双字长(即正弦、余弦、正切指令。将把一个双字长(32位)的实位)的实数数弧度值弧度值IN分别取正弦、余弦、正切,各得到分别取正弦、余弦、正切,各得到32位的实数位的实数结果结果OUT。 指令格式:指令格式:SIN IN, OUT; COS IN, OUT; TAN IN, OUTLD I0.0 /使能输入端使能输入端MOVR 3.14159, AC0 /3.14159AC0AC0/R 180.0, AC0 /180
28、.0AC0AC0*R 65.0, AC0 /65.0*AC0AC0AC0TAN AC0, AC1 /TAN(AC0AC0)AC1AC1/计算结果为计算结果为TANTAN(6565)=2.1445=2.1445AC1AC1/(AC1AC1)2.14452.1445 求三角函数例求三角函数例 v三、递增和递减指令三、递增和递减指令 v递增和递减指令递增和递减指令 ,又称自增和自减,是对无符号,又称自增和自减,是对无符号或有符号整数进行自动增加或减少一个单位的操或有符号整数进行自动增加或减少一个单位的操作,数据长度可以是字节、字或双字。作,数据长度可以是字节、字或双字。 v使能流输出使能流输出ENO
29、断开的出错条件:断开的出错条件:0006(间接寻(间接寻址);址);SM1.1(溢出);(溢出);SM4.3(运行时间)。(运行时间)。v在在LAD和和FBD中,以指令盒形式编程,执行结果:中,以指令盒形式编程,执行结果:IN1OUT和和IN1OUT。v在在STL中,执行结果:中,执行结果:OUT1OUT和和OUT1OUT。 v(1)字节增和字节减指令:)字节增和字节减指令:INCB,DECB v使能输入有效时,把一字节长的无符号输入数使能输入有效时,把一字节长的无符号输入数IN加加1或减或减1,得到一个字节的无符号输出结果,得到一个字节的无符号输出结果OUT。v指令格式:指令格式:INCB
30、OUT; DECB OUT v(2)字增和字减指令:)字增和字减指令:INCW,DECW v使能输入有效时,把一字长的有符号输入数使能输入有效时,把一字长的有符号输入数IN加加1或减或减1,得到一个字长的有符号输出结果得到一个字长的有符号输出结果OUT。v指令格式:指令格式:INCW OUT; DECW OUTv(3)双字增和双字减指令:)双字增和双字减指令:INCD,DECD v使能输入有效时,把一双字长的有符号输入数使能输入有效时,把一双字长的有符号输入数IN加加1或减或减1,得到一个双字长的有符号输出结果,得到一个双字长的有符号输出结果OUT。 v指令格式:指令格式:INCD OUT;
31、DECD OUT 四、逻辑操作指令四、逻辑操作指令v逻辑运算是对无符号数进行的逻辑处理,主要逻辑运算是对无符号数进行的逻辑处理,主要包括逻辑与、逻辑或、逻辑异或和取反等运算包括逻辑与、逻辑或、逻辑异或和取反等运算指令。按操作数长度可分为字节、字和双字逻指令。按操作数长度可分为字节、字和双字逻辑运算。辑运算。vIN1、IN2、OUT操作数的数据类型分别为:操作数的数据类型分别为:B、W、DW。v逻辑运算指令影响的特殊存储器位:逻辑运算指令影响的特殊存储器位:SM1.0SM1.0(结果为零)。(结果为零)。v使使ENO=0ENO=0的错误条件是:的错误条件是:006006(间接寻址)(间接寻址)(
32、1)逻辑与运算指令)逻辑与运算指令 ANDB,字节逻辑与指令。使能输入有效时,把两个字节,字节逻辑与指令。使能输入有效时,把两个字节的逻辑数按位求与,得到一个字节长的逻辑输出结果的逻辑数按位求与,得到一个字节长的逻辑输出结果OUT。ANDW,字逻辑与指令。使能输入有效时,把两个字的逻,字逻辑与指令。使能输入有效时,把两个字的逻辑数按位求与,得到一个字长的逻辑输出结果辑数按位求与,得到一个字长的逻辑输出结果OUT。ANDD,双字逻辑与指令。使能输入有效时,把两个双字,双字逻辑与指令。使能输入有效时,把两个双字的逻辑数按位求与,得到一个双字长的逻辑输出结果的逻辑数按位求与,得到一个双字长的逻辑输出
33、结果OUT。指令格式:指令格式:ANDB IN1, OUT;ANDW IN1, OUT;ANDD IN1, OUT (2) 逻辑或运算指令逻辑或运算指令 ORBORB,字节逻辑或指令。使能输入有效时,把两个字节的逻,字节逻辑或指令。使能输入有效时,把两个字节的逻辑数按位求或,得到一个字节长的逻辑输出结果辑数按位求或,得到一个字节长的逻辑输出结果OUTOUT。ORWORW,字逻辑或指令。使能输入有效时,把两个字的逻辑数,字逻辑或指令。使能输入有效时,把两个字的逻辑数按位求或,得到一个字长的逻辑输出结果按位求或,得到一个字长的逻辑输出结果OUTOUT。ORDORD,双字逻辑或指令。使能输入有效时,
34、把两个双字的逻,双字逻辑或指令。使能输入有效时,把两个双字的逻辑数按位求或,得到一个双字长的逻辑输出结果辑数按位求或,得到一个双字长的逻辑输出结果OUTOUT。 指令格式:指令格式:ORB IN1, OUT;ORW IN1, OUT;ORD IN1, OUT (3)逻辑异或运算指令)逻辑异或运算指令 XORBXORB,字节逻辑异或指令。使能输入有效时,把两个字节的,字节逻辑异或指令。使能输入有效时,把两个字节的逻辑数按位求异或,得到一个字节长的逻辑输出结果逻辑数按位求异或,得到一个字节长的逻辑输出结果OUTOUT。XORWXORW,字逻辑异或指令。使能输入有效时,把两个字的逻辑,字逻辑异或指令
35、。使能输入有效时,把两个字的逻辑数按位求异或,得到一个字长的逻辑输出结果数按位求异或,得到一个字长的逻辑输出结果OUTOUT。XORDXORD,双字逻辑异或指令。使能输入有效时,把两个双字的,双字逻辑异或指令。使能输入有效时,把两个双字的逻辑数按位求异或,得到一个双字长的逻辑输出结果逻辑数按位求异或,得到一个双字长的逻辑输出结果OUTOUT。 指令格式:指令格式:XORB IN1, OUT;XORW IN1, OUT;XORD IN1, OUT(4)取反指令)取反指令 INVB,字节逻辑取反指令。使能输入有效时,把一个字节,字节逻辑取反指令。使能输入有效时,把一个字节的逻辑数按位求反,得到一个
36、字节长的逻辑输出结果的逻辑数按位求反,得到一个字节长的逻辑输出结果OUT。INVW,字逻辑取反指令。使能输入有效时,把一个字的逻,字逻辑取反指令。使能输入有效时,把一个字的逻辑数按位求反,得到一个字长的逻辑输出结果辑数按位求反,得到一个字长的逻辑输出结果OUT。INVD,双字逻辑取反指令。使能输入有效时,把一个双字,双字逻辑取反指令。使能输入有效时,把一个双字的逻辑数按位求反,得到一个双字长的逻辑输出结果的逻辑数按位求反,得到一个双字长的逻辑输出结果OUT。 指令格式:指令格式:INVB OUT; INVW OUT; INVD OUT v程序实例: LD I0.0 /使能输入端使能输入端MOV
37、B AC0, AC1 /AC0AC1AC1ANDB 255, AC1 /AC1的值和的值和255255作相与作相与/运算,即实现了运算,即实现了AC0AC0和和255255相与的运算,相与的运算,结结/果放到果放到AC1AC1中。中。LD I0.1 /使能输入端使能输入端MOVW LW10, LW30 /LW10LW30LW30ORW LW20, LW30 /进行或运算进行或运算 LD I0.2 /使能输入端使能输入端MOVD VD100, VD120 /LD100LD120LD120XORD VD110, VD120 /进行异或运算进行异或运算 LD I0.3 /使能输入端使能输入端MOVW
38、 VW10, VW20 / VW10VW20VW20INVW VW20 /进行取反运算进行取反运算 逻辑运算指令例 第五节 数据处理类指令及应用v转换指令是指对操作数的类型进行转换,包括数据转换指令是指对操作数的类型进行转换,包括数据的类型转换、码的类型转换以及数据和码之间的类的类型转换、码的类型转换以及数据和码之间的类型转换。型转换。v 数据类型主要包括字节、整数、双整数、实数,数据类型主要包括字节、整数、双整数、实数,不同性质的指令对操作数的类型要求不同,类型转不同性质的指令对操作数的类型要求不同,类型转换指令可将固定的一个数值用到不同类型要求的指换指令可将固定的一个数值用到不同类型要求的
39、指令,而不必对数据进行针对类型的重新装载。令,而不必对数据进行针对类型的重新装载。 v 1. BCD码与整数之间的转换指令码与整数之间的转换指令 v(1)BCD码到整数:码到整数:BCDIv使能输入有效时,将二进使能输入有效时,将二进v制编码的十进制数制编码的十进制数IN转换转换v为整数,并将结果送到为整数,并将结果送到OUTv输出。输出。vIN的有效范围是的有效范围是0到到9999.v指令格式:指令格式:BCDI OUTv程序实例:程序实例: 已知(已知(AC0AC0)=1234=1234,程序,程序运行后:(运行后:(AC0AC0)=04D2=04D2。 LD I1.0 /使能输入端BCD
40、I AC0 /AC0中的BCD码转换为整数 BCD码转换为整数例v(2)整数到)整数到BCD码:码:IBCD v v v 2. 字节与字整数之间的转换指令字节与字整数之间的转换指令 v(1)字节到整数:)字节到整数:BTI 使能输入有效时,将输入整数值使能输入有效时,将输入整数值IN转换成转换成二进制编码的十进制数,并将结果送到二进制编码的十进制数,并将结果送到OUT输出。输出。 指令格式:指令格式:IBCD OUT 使能输入有效时,将字节型输入数据使能输入有效时,将字节型输入数据IN转转换成整数类型,并将结果送到换成整数类型,并将结果送到OUT输出。输出。字节型是无符号的,所以没有符号扩展。
41、字节型是无符号的,所以没有符号扩展。 指令格式:指令格式:BCDI OUT v(2)整数到字节:)整数到字节:ITB v v 3. 字型整数与双字整数之间的转换指令字型整数与双字整数之间的转换指令v(1)双整数到整数:)双整数到整数:DTI 使能输入有效时,将双整数型输入数据使能输入有效时,将双整数型输入数据IN转换成整数类型,并将结果送到转换成整数类型,并将结果送到OUT输出。输出。输入数据超出整数范围则产生溢出。输入数据超出整数范围则产生溢出。 指令格式:指令格式:DTI OUT 使能输入有效时,将整数型输入数据使能输入有效时,将整数型输入数据IN转转换成字节类型,并将结果送到换成字节类型
42、,并将结果送到OUT输出。输出。输入数据超出字节范围(输入数据超出字节范围(0255)则产生溢)则产生溢出出 。指令格式:指令格式:IBCD OUT v(2)整数到双整数:)整数到双整数:ITD v 4. 双字整数与实数之间的转换指令双字整数与实数之间的转换指令v(1)实数到双整数:)实数到双整数:ROUND,TRUNC 使能输入有效时,将实数型输入数据使能输入有效时,将实数型输入数据IN转转换成双整数类型,并将结果送到换成双整数类型,并将结果送到OUT输出。输出。两条指令的区别是:前者小数部分四舍五入,两条指令的区别是:前者小数部分四舍五入,而后者小数部分直接舍去。输入数据超出实而后者小数部
43、分直接舍去。输入数据超出实数范围则产生溢出。数范围则产生溢出。 指令格式:指令格式:ROUND IN, OUTTRUNC IN, OUT 使能输入有效时,将整数型输入数据使能输入有效时,将整数型输入数据IN转转换成双整数类型(符号进行扩展),并将结换成双整数类型(符号进行扩展),并将结果送到果送到OUT输出。输出。 指令格式:指令格式:ITD OUT v(2)双整数到实数:)双整数到实数:DTR 使能输入有效时,将双整数型使能输入有效时,将双整数型输入数据输入数据IN转换成实数型,并转换成实数型,并将结果送到将结果送到OUT输出。输出。 指令格式:指令格式:DTR IN, OUT 6. 段码(
44、SEG)指令 SEG,七段码指令。使能输入有效,七段码指令。使能输入有效时,将字节型输入数据时,将字节型输入数据IN的低的低4位有位有效数字(效数字(160F)转换成七段显)转换成七段显示码,并将其输出到示码,并将其输出到OUT所指定的所指定的字节单元。字节单元。 指令格式:指令格式:SEG IN, OUT ATH,ASCII码到十六进制数指令。使能输入有效时,将从码到十六进制数指令。使能输入有效时,将从IN开始开始的长度为的长度为LEN的的ASCII码转换为十六进制数,并将结果送到码转换为十六进制数,并将结果送到OUT开始开始的字节进行输出。的字节进行输出。ASCII字符串的最大长度为字符串
45、的最大长度为255字符。字符。 HTA,十六进制数到,十六进制数到ASCII码指令。使能输入有效时,将从输入字码指令。使能输入有效时,将从输入字节节IN开始的十六进制数字转换成从开始的十六进制数字转换成从OUT开始的开始的ASCII字符。欲转换字符。欲转换的十六进制数字位数由长度(的十六进制数字位数由长度(LEN)指定。可转换的最大十六进制)指定。可转换的最大十六进制数字位数为数字位数为255。有效。有效ASCII字符是十六进制数值字符是十六进制数值30至至39和和41至至46。指令格式:指令格式:ATH IN, OUT, LEN; HTA IN, OUT, LEN LD I0.0 /使能输入
46、端ATH VB100, VB200, 4 /使能输入有/效时,把VB100开始的4个ASCII码转/换成从VB200开始的十六进制数 v7. ASCII码与十六进制数之间的转换指令 ATH,ASCII码到十六进制数指令。使能输入有效时,将从码到十六进制数指令。使能输入有效时,将从IN开始开始的长度为的长度为LEN的的ASCII码转换为十六进制数,并将结果送到码转换为十六进制数,并将结果送到OUT开开始的字节进行输出。始的字节进行输出。ASCII字符串的最大长度为字符串的最大长度为255字符。字符。 HTA,十六进制数到,十六进制数到ASCII码指令。使能输入有效时,将从输入码指令。使能输入有效
47、时,将从输入字节字节IN开始的十六进制数字转换成从开始的十六进制数字转换成从OUT开始的开始的ASCII字符。欲转字符。欲转换的十六进制数字位数由长度(换的十六进制数字位数由长度(LEN)指定。可转换的最大十六进)指定。可转换的最大十六进制数字位数为制数字位数为255。有效。有效ASCII字符是十六进制数值字符是十六进制数值30至至39和和41至至46 指令格式:指令格式:ATH IN, OUT, LEN HTA IN, OUT, LEN v 8. 整数、双字整数、实数转换为整数、双字整数、实数转换为ASCII码指令码指令v(1)整数到)整数到ASCII码:码:ITA 使能输入有效时,将输入端
48、(使能输入有效时,将输入端(IN)的有符号整数转换成)的有符号整数转换成ASCII字符字符串,转换结果存入以串,转换结果存入以OUT为起始字节地址的为起始字节地址的8个连续字节的输出缓冲个连续字节的输出缓冲区中。指令格式操作数区中。指令格式操作数FMT指定指定ASCII码字符串中分隔符的位置和码字符串中分隔符的位置和表示方法,即小数点右侧的转换精度,以及是否将小数点显示为逗表示方法,即小数点右侧的转换精度,以及是否将小数点显示为逗号或点号。号或点号。FMT占用一个字节,高占用一个字节,高4位必须为位必须为0,低,低4位用位用cnnn表示,表示,C位指定整数和小数之间的分隔符:位指定整数和小数之
49、间的分隔符:C1,用逗号分隔,用逗号分隔,C0,用,用小数点分隔。输出缓冲器中小数点右侧的位数由小数点分隔。输出缓冲器中小数点右侧的位数由nnn域指定,域指定,nnn域域的有效范围是的有效范围是05。指定小数点右侧的数字为。指定小数点右侧的数字为0会使显示的数值无小会使显示的数值无小数点。对于大于数点。对于大于5的的nnn数值为非法格式,此时无输出,用数值为非法格式,此时无输出,用ASCII空空格填充输出缓冲器。格填充输出缓冲器。 指令格式:指令格式:ITA IN, OUT, FMT v(2)双整数到ASCII码:DTA v(3)实数到ASCII码:RTA 使能输入有效时,将输入端(使能输入有
50、效时,将输入端(IN)的实数转换成)的实数转换成ASCII字符串,转换结果存入以字符串,转换结果存入以OUT为起始字节地为起始字节地址的址的315个连续字节的输出缓冲区中。个连续字节的输出缓冲区中。FMT占用一占用一个字节,高个字节,高4位用位用ssss表示,表示,ssss区的值指定输出缓冲区的值指定输出缓冲区的字节数(区的字节数(315个字节),个字节),0、1或或2个字节无效。个字节无效。并规定输出缓冲区的字节数应大于输入实数小数点并规定输出缓冲区的字节数应大于输入实数小数点右边的位数。低右边的位数。低4位的定义与位的定义与ITA指令相同。指令相同。 指令格式:指令格式:RTA IN, O
51、UT, FMT 使能输入有效时,将输入端(使能输入有效时,将输入端(IN)的有符号双)的有符号双整数转换成整数转换成ASCII字符串,转换结果存入以字符串,转换结果存入以OUT为起始字节地址的为起始字节地址的12个连续字节的输出缓冲区中。个连续字节的输出缓冲区中。指令格式操作数指令格式操作数FMT与与ITA指令的指令的FMT定义相同。定义相同。 指令格式:指令格式:DTA IN, OUT, FMT v五、移位和循环移位指令五、移位和循环移位指令v1.字节、字、双字右移位和左移位指令字节、字、双字右移位和左移位指令 v 2.字节、字、双宇循环右移位和循环左字节、字、双宇循环右移位和循环左移位指令
52、移位指令 v 3.移位寄存器指令。移位寄存器指令。3. 寄存器移位寄存器移位 SHRB,寄存器移位指令。该指,寄存器移位指令。该指令在梯形图中有令在梯形图中有3个数据输入端:个数据输入端:DATA为数值输入,将该位的值为数值输入,将该位的值移入移位寄存器;移入移位寄存器;S BIT为移位寄为移位寄存器的最低位端;存器的最低位端;N指定移位寄指定移位寄存器的长度。每次使能输入有效存器的长度。每次使能输入有效时,整个移位寄存器移动时,整个移位寄存器移动1位。位。 移位特点:移位特点:移位寄存器长度在指令中指定,没有字节型、字型、双字移位寄存器长度在指令中指定,没有字节型、字型、双字型之分。可指定的
53、最大长度为型之分。可指定的最大长度为64位,可正也可负。位,可正也可负。移位数据存储单元的移出端与移位数据存储单元的移出端与SM1.1SM1.1(溢出)相连,所以(溢出)相连,所以最后被移出的位被放到最后被移出的位被放到SM1.1SM1.1位存储单元。位存储单元。 l移位时,移出位进入移位时,移出位进入SM1.1,另一端自动补以,另一端自动补以DATA移入位移入位的值。的值。l正向移位时长度正向移位时长度N为正值,移位是从最低字节的最低位为正值,移位是从最低字节的最低位S BIT移入,从最高字节的最高位移入,从最高字节的最高位MSB.b移出;反向移位时,移出;反向移位时,长度长度N为负值,移位
54、是从最高字节的最高位移入,从最低字为负值,移位是从最高字节的最高位移入,从最低字节的最低位节的最低位S BIT移出。移出。l最高位的计算方法:(最高位的计算方法:(N的绝对值的绝对值1+(S BIT的位号)的位号)/8,相除结果中,余数即是最高位的位号,商与相除结果中,余数即是最高位的位号,商与S BIT的字节号的字节号之和即是最高位的字节号。之和即是最高位的字节号。l例如,如果例如,如果S BIT是是V22.5,N是是8,那么,那么MSB.b是是V23.4。具。具体计算如下:体计算如下:lMSB.bV22+(8-1+5)8V22+128V22+1(余数为(余数为4)V23.4指令格式:指令格
55、式: SHRB DATA, S BIT, N例:例: SHRB I0.5, V20.0, 5以本条指令为例,指令执行情况如下表所示。以本条指令为例,指令执行情况如下表所示。 指令SHRB执行结果 脉冲数I0.5值 VB20内容 位SM1.1说 明01101 10101X移位前。移位时,从V20.0移入,从V20.4移出 11101 0101111移入SM1.1,I0.5的脉冲前值进入右端 21101 1011110移入SM1.1,I0.5的脉冲前值进入右端 30101 0111001移入SM1.1,I0.5的脉冲前值进入右端 l3. 字节交换指令字节交换指令 SWAP,字节交换指令。当使能输入
56、有效,字节交换指令。当使能输入有效时,将字型输入数据时,将字型输入数据IN高位字节与低位字节高位字节与低位字节进行交换,交换的结果输出到进行交换,交换的结果输出到IN存储器单元存储器单元中。因此又可称为半字交换指令。中。因此又可称为半字交换指令。 指令格式:指令格式:SWAP INv 5. 编码、译码指令v(1)编码指令:ENCO 使能输入有效时,将输入字的最低使能输入有效时,将输入字的最低有效位的位号写入输出字节的低四有效位的位号写入输出字节的低四位。位。指令格式:指令格式:ENCO IN, OUT v(2)译码指令:DECO 使能输入有效时,根据输入字使能输入有效时,根据输入字节的低四位所
57、表示的位号置输节的低四位所表示的位号置输出字的相应位为出字的相应位为1 1,其他清零。,其他清零。指令格式:指令格式:DECO IN, OUT v应用实例应用实例1v控制要求:食品加工厂对饮料生产线上的盒装饮料进行控制要求:食品加工厂对饮料生产线上的盒装饮料进行计数,每计数,每24盒为一箱,要求能记录生产的箱数。盒为一箱,要求能记录生产的箱数。LDI0.0/增脉冲输入端LDC30/复位输入端/循环计数CTUC30, +24/增计数指令/设定脉冲数为24LDC30/装入计数器触点/作为双字增的/脉冲输入INCDVD100/双字增指令/ 应用实例应用实例2 模拟量控制程序中的数据类型转换。将模拟量
58、输入端采样值模拟量控制程序中的数据类型转换。将模拟量输入端采样值由整数转换为双整数,然后由双整数转换为实数,再除以一由整数转换为双整数,然后由双整数转换为实数,再除以一个比例因子得到个比例因子得到PLC可以处理的范围内的值。可以处理的范围内的值。 LD SM0.0 /使能输入 ITD AIW2, AC0 / / 整数转换为双整数 / DTR AC0, AC0 / / 双整数转换为实数 / /R 32768.0, AC0 / / 实数除法指令 / AC0/32768=VD100 MOVR AC0, VD200 / / 实数传送指令 v应用实例应用实例3v用用I0.0控制接在控制接在Q0.0-Q0
59、.7上的上的8个彩灯循环移位,从左到右个彩灯循环移位,从左到右以以0.5s的速度依次点亮,保持任意时刻只有一个指示灯亮,的速度依次点亮,保持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮。到达最右端后,再从左到右依次点亮。v实例实例4 台车控制台车控制v实例实例5 单按钮控制五台电机启停单按钮控制五台电机启停第六节第六节 程序控制类指令及应用程序控制类指令及应用v程序控制类指令用于程序执行流程的控制。程序控制类指令用于程序执行流程的控制。对程序的扫描执行过程而言,跳转指令可以对程序的扫描执行过程而言,跳转指令可以使程序出现跨越或跳跃以实现程序段的选择。使程序出现跨越或跳跃以实现程序
60、段的选择。子程序可调用子程序;循环指令可多次重复子程序可调用子程序;循环指令可多次重复执行指定的程序段;中断指令则用于中断信执行指定的程序段;中断指令则用于中断信号引起的子程序调用。程序控制类指令可以号引起的子程序调用。程序控制类指令可以影响程序执行的流向及内容,对合理安排程影响程序执行的流向及内容,对合理安排程序的结构,提高程序功能以及实现某些技巧序的结构,提高程序功能以及实现某些技巧性运算具有重要的意义。性运算具有重要的意义。一、跳转指令一、跳转指令v1.跳转及标号指令跳转及标号指令v跳转指令使程序流程跳转到指定标号跳转指令使程序流程跳转到指定标号N处的处的程序分支执行。标号指令标记跳转目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论