S7-200指令

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章数据处理、运算指令及应用本章要点数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训算术运算、逻辑运算、递增/递减指令的介绍、应用及实训表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍5.1数据处理指令5.1.1数据传送指令1.字节、字、双字、实数单个数据传送指令MOV数据传送指令MOV,用来传送单个的字节、字、双字、实数。指令格式及功能如表5-1所示。表5-1单个数据传送指令MOV指令格式使ENO=0即使能输出断开的错误条件是:SM4.3(运行时间),0006(间接寻址错误)。【例5-1】将变量存储器VW10中内容送到VW100中。程序如图5-1所示。LDI0.1MOVWVW10,VW100图5-1例5-1题图LADSTLMOVBIN,OUTMOVWIN,OUTMOVDIN,OUTMOVRIN,OUT操作数及数据类型IN:VB,IB,QB,MB,SB,SMB,LB,AC,常量OUT:VB,IB,QB,MB,SB,SMB,LB,ACIN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,常量,ACOUT:VW,T,C,IW,QW,SW,MW,SMW,LW,AC,AQWIN:VD,ID,QD,MD,SD,SMD,LD,HC,AC,常量OUT:VD,ID,QD,MD,SD,SMD,LD,ACIN:VD,ID,QD,MD,SD,SMD,LD,AC,常量OUT:VD,ID,QD,MD,SD,SMD,LD,AC字节字、整数双字、双整数实数功能使能输入有效时,即EN=1时,将一个输入IN的字节、字/整数、双字/双整数或实数送到OUT指定的存储器输出。在传送过程中不改变数据的大小。传送后,输入存储器IN中的内容不变2.字节、字、双字、实数数据块传送指令BLKMOV数据块传送指令将从输入地址IN开始的N个数据传送到输出地址OUT开始的N个单元中,N的范围为1至255,N的数据类型为:字节。指令格式及功能如表5-2所示。表5-2数据传送指令BLKMOV指令格式使ENO=0的错误条件:0006(间接寻址错误)0091(操作数超出范围)。【例5-2】程序举例:将变量存储器VB20开始的4个字节(VB20-VB23)中的数据,移至VB100开始的4个字节中(VB100-VB103)。程序如图5-2所示。LADSTLLDI0.0BMBVB20,VB100,4图5-2例5-2图程序执行后,将VB20~VB23中的数据30、31、32、33送到VB100~VB103。执行结果如下:数组1数据30313233数据地址VB20VB21VB22VB23块移动执行后:数组2数据30313233数据地址VB100VB101VB102VB1035.1.2字节交换、字节立即读写指令1.字节交换指令字节交换指令用来交换输入字IN的最高位字节和最低位字节。指令格式如表5-3所示。LADSTLBMBIN,OUTBMWIN,OUTBMDIN,OUT操作数及数据类型IN:VB,IB,QB,MB,SB,SMB,LB。OUT:VB,IB,QB,MB,SB,SMB,LB。数据类型:字节IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW。OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AQW。数据类型:字IN/OUT:VD,ID,QD,MD,SD,SMD,LD。数据类型:双字N:VB,IB,QB,MB,SB,SMB,LB,AC,常量;数据类型:字节;数据范围:1-255功能使能输入有效时,即EN=1时,把从输入IN开始的N个字节(字、双字)传送到以输出OUT开始的N个字节(字、双字)中表5-3字节交换指令使用格式及功能LADSTL功能及说明SWAPIN功能:使能输入EN有效时,将输入字IN的高字节与低字节交换,结果仍放在IN中IN:VW,IW,QW,MW,SW,SMW,T,C,LW,AC。数据类型:字ENO=0的错误条件:0006(间接寻址错误),SM4.3(运行时间)【例5-3】字节交换指令应用举例。如图5-3所示。程序执行结果:指令执行之前VW50中的字为:D6C3指令执行之后VW50中的字为:C3D62.字节立即读写指令字节立即读指令(MOV-BIR)读取实际输入端IN给出的1个字节的数值,并将结果写入OUT所指定的存储单元,但输入映像寄存器未更新。字节立即写指令从输入IN所指定的存储单元中读取1个字节的数值并写入(以字节为单位)实际输出OUT端的物理输出点,同时刷新对应的输出映像寄存器。指令格式及功能如表5-4所示。表5-4字节立即读写指令格式LADSTL功能及说明BIRIN,OUT功能:字节立即读IN:IBOUT:VB,IB,QB,MB,SB,SMB,LB,AC。数据类型:字节BIWIN,OUT功能:字节立即写IN:VB,IB,QB,MB,SB,SMB,LB,AC,常量OUT:QB数据类型:字节使ENO=0的错误条件:0006(间接寻址错误),SM4.3(运行时间)。注意:字节立即读写指令无法存取扩展模块。5.1.3移位指令及应用举例移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两类移位指令按移位数据的长度又分字节型、字型、双字型3种。1.左、右移位指令左、右移位数据存储单元与SM1.1(溢出)端相连,移出位被放到特殊标志存储器SM1.1位。移位数据存储单元的另一端补0。移位指令格式见表5-5。(1)左移位指令(SHL)使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1。如果移位结果为0,零标志位SM1.0置1。(2)右移位指令使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1。如果移位结果为0,零标志位SM1.0置1。(3)使ENO=0的错误条件:0006(间接寻址错误),SM4.3(运行时间)表5-5移位指令格式及功能说明:在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。如:MOVBIN,OUTSLBOUT,N2.循环左、右移位指令循环移位将移位数据存储单元的首尾相连,同时又与溢出标志SM1.1连接,SM1.1用来存放被移出的位。指令格式见表5-6。(1)循环左移位指令(ROL)使能输入有效时,将IN输入无符号数(字节、字或双字)循环左移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。(2)循环右移位指令(ROR)使能输入有效时,将IN输入无符号数(字节、字或双字)循环右移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。(3)移位次数N≥数据类型(B、W、D)时的移位位数的处理如果操作数是字节,当移位次数N≥8时,则在执行循环移位前,先对N进行模8操作(N除以8后取余数),其结果0-7为实际移动位数。如果操作数是字,当移位次数N≥16时,则在执行循环移位前,先对N进行模16操作(N除以16后LADSTLSLBOUT,NSRBOUT,NSLWOUT,NSRWOUT,NSLDOUT,NSRDOUT,N操作数及数据类型IN:VB,IB,QB,MB,SB,SMB,LB,AC,常量。OUT:VB,IB,QB,MB,SB,SMB,LB,AC。数据类型:字节IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,常量。OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC。数据类型:字IN:VD,ID,QD,MD,SD,SMD,LD,AC,HC,常量。OUT:VD,ID,QD,MD,SD,SMD,LD,AC。数据类型:双字N:VB,IB,QB,MB,SB,SMB,LB,AC,常量;数据类型:字节;数据范围:N≤数据类型(B、W、D)对应的位数功能SHL:字节、字、双字左移N位;SHR:字节、字、双字右移N位取余数),其结果0-15为实际移动位数。如果操作数是双字,当移位次数N≥32时,则在执行循环移位前,先对N进行模32操作(N除以32后取余数),其结果0-31为实际移动位数。(4)使ENO=0的错误条件:0006(间接寻址错误),SM4.3(运行时间)。表5-6循环左、右移位指令格式及功能说明:在STL指令中,若IN和OUT指定的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所指定的存储单元。如:MOVBIN,OUTSLBOUT,N【例5-4】程序应用举例,将AC0中的字循环右移2位,将VW200中的字左移3位。程序及运行结果如图5-4所示。图5-4例5-4题图【例5-5】用I0.0控制接在Q0.0~Q0.7上的8个彩灯循环移位,从左到右以0.5s的速度依次点亮,保持任意时刻只有一个指示灯亮,到达最右端后,再从左到右依次点亮。分析:8个彩灯循环移位控制,可以用字节的循环移位指令。根据控制要求,首先应置彩灯的初始状态为QB0=1,即左边第一盏灯亮;接着灯从左到右以0.5s的速度依次点亮,即要求字节QB0中的“1”用循环左移位指令每0.5s移动一位,因此须在ROL-B指令的EN端接一个0.5s的移位脉冲(可用定时器指LADSTLRLBOUT,NRRBOUT,NRLWOUT,NRRWOUT,NRLDOUT,NRRDOUT,N操作数及数据类型IN:VB,IB,QB,MB,SB,SMB,LB,AC,常量。OUT:VB,IB,QB,MB,SB,SMB,LB,AC。数据类型:字节IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,常量。OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC。数据类型:字IN:VD,ID,QD,MD,SD,SMD,LD,AC,HC,常量。OUT:VD,ID,QD,MD,SD,SMD,LD,AC。数据类型:双字N:VB,IB,QB,MB,SB,SMB,LB,AC,常量;数据类型:字节。功能ROL:字节、字、双字循环左移N位;ROR:字节、字、双字循环右移N位。图5-5例5-5题图令实现)。梯形图程序和语句表程序如图5-5所示。LDSM0.1//首次扫描时MOVB1,QB0//置8位彩灯初态LDI0.0//T37产生周期为ANT370.5s的移位脉冲TONT37,+5LDT37//每来一个脉冲RLBQB0,1彩灯循环左移1位3.移位寄存器指令(SHRB)移位寄存器指令是可以指定移位寄存器的长度和移位方向的移位指令。其指令格式如图5-6所示。说明:(1)移位寄存器指令SHRB将DATA数值移入移位寄存器。梯形图中,EN为使能输入端,连接移位脉冲信号,每次使能有效时,整个移位寄存器移动1位。DATA为数据输入端,连接移入移位寄存器的二进制数值,执行指令时将该位的值移入寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向,移位寄存器的最大长度为64位,N为正值表示左移位,输入数据(DATA)移入移位寄存器的最低位(S_BIT),并移出移位寄存器的最高位。移出的数据被放置在溢出内存位(SM1.1)中。N为负值表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位(S_BIT)。移出的数据被放置在溢出内存位(SM1.1)中。(2)DATA和S-BIT的操作数为I,Q,M,SM,T,C,V,S,L。数据类型为:BOOL变量。N的操作数为VB,IB,QB,MB,SB,SMB,LB,AC,常量。数据类型为:字节。(3)使ENO=0的错误条件:0006(间接地址),0091(操作数超出范围),0092(计数区错误)。(4)移位指令影响特殊内部标志位:SM1.1(为移出的位值设置溢出位)。【例5-6】移位

1 / 65
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功