1、威海职业学院教案 案例7相关背景知识 关于:数据处理指令 一、传送类指令 传送类指令用于在各个编程元件之间进行数据传送。根据每次传送数据的数量,可分为单个传送指令和块传送指令。 1.单个传送指令MOVB,BIR,BIW,MOVW,MOVD,MOVR 单个传送指令每次传送l个数据,传送数据的类型分为字节传送、字传送、双字传送和实数传送。 (1)字节传送指令MOVB,BIR,BlW 字节传送指令可分为周期性字节传送指令和立即字节传送指令。 ①周期性字节传送指令MOVB。 在梯形图中,周期性字节传送指令以功能框的形式编程,指令名称为MOV_B。当允许输入EN有效时,将一个无符号的
2、单字节数据IN传送到0UT中。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时问),0006(问接寻址)。 在语句表中,周期性字节传送指令MOVB的指令格式为:MOVB IN,OUT。IN和0UT的寻址范围。 操作数 类 型 寻址范围 IN BYTE VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数 OUT BYTE VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD ②立即字节传送指令BIR,BIW。 立即读字节传送指令BIR:当允许输入EN有效时,BI
3、R指令立即读取(不考虑扫描周期)当前输入继电器区中由IN指定的字节,并传送到OUT。在梯形图中,立即读字节传送指令以功能框的形式编程,指令名称为:MOV_BIR。当允许输入EN有效时,将1个无符号的单字节数据IN传送到0UT中。 在语句表中,立即读字节传送指令BIR的指令格式为: BIR IN,OUT。 IN和0UT的寻址范围如下表所示. 操作数 类 型 寻址范围 IN BYTE IB OUT BYTE VB,IB,QB,MB,SB,SMB,LB,AC,。VD,8AC,。LD (2)字传送指令MOVW 字传送
4、指令MOVW将1个字长的有符号整数数据IN传送到OUT。在梯形图中,字传送指令以功能框的形式编程,当允许输入EN有效时,将1个无符号的单字长数据IN传送到0UT中。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时间),0006(间接寻址)。在语句表中,字传送指令MOVW的指令格式为MOVW IN,OUT。IN和0UT的寻址范围. 操作数 类 型 寻 址 范 围 IN WORD VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD和常数 OUT WORD VW,IW,QW,MW,SW,SMW
5、LW,T,C,AC,*VD,*AC,*LD (3)双字传送指令MOVD 双字传送指令MOVD将1个双字长的有符号整数数据IN传送到0UT。 在梯形图中,双字传送指令以功能框的形式编程,指令名称为:MOV_DW。当允许输入EN有效时,将1个有符号的双字长数据IN传送到0UT中。 影响允许输出EN0正常工作的出错条件为SM4.3(运行时间),0006(问接寻址)。在语句表中,双字传送指令MOVD的指令格式为:MOVD IN,OUT。 IN和0UT的寻址范围如下表所示。 操作数 类 型 寻址范围 IN DWORD VD,ID,QD,MD,SMD,LD,
6、AC,HC,*VD,*AC,*LD和常数 OUT DWORD VD,ID,QD,MD,SMD,LD,AC,*VD,*AC,*LD (4)实数传送指令MOVR 实数传送指令MOVR将1个双字长的实数数据烈传送到OUT。 在梯形图中,实数传送指令以功能框的形式编程,当允许输入EN有效时,将1个有符号的双字长实数数据IN传送到OUT中。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时间),0006(间接寻址)。 在语句表中,实数传送指令MOVR的指令格式为:MOVR IN,OUT。 IN 和 0UT的寻址范围如下表所示。 操作数 类 型
7、 寻址范围 IN REAL VD,ID,QD,MD,SMD,LD,AC,HC,*VD,*AC,*LD和常数 0UT REAL VD,ID,QD,MD,SMD,LD,AC,4VD,*AC,*LD 2.块传送指令BMB,BMW,BMD 块传送指令用来进行一次传送多个数据,将最多可达255个的数据组成1个数据块,数据块的类型可以是字节块、字块和双字块。 (1) 字节块传送指令BMB 字节块传送指令BMB的功能是:当允许输入EN有效时,将从输入字节IN开始的N个字节型数据传送到从OUT开始的N个字节存储单元。 (2)字块传送指令BMW 字块传送指令BMW
8、的功能是:当允许输入EN有效时,将从输入字IN开始的N个字型数据传送到从0UT开始的N字存储单元。 (3)双字块传送指令BMD 双字块传送指令BMD的功能是:当允许输入EN有效时,将从输入双字IN开始的N个双字型数据传送到从OUT开始的N个双字存储单元。 块传送指令在梯形图中以功能框形式编程,影响允许输出EN0正常工作的出错条件为:M4.3(运行时间),0006(间接寻址),0091(数超界),在语句表中,块传送指令的指令格式如下。 字节块传送指令:BMB IN,OUT,N。 字块传送指令: BMW IN,OUT,N。 双字块传送指令:BMD IN,OUT,N
9、 块传送指令的IN,N,OUT的寻址范围 指令 操作数 类型 寻址范围 BMB IN BYTE VB,Ⅲ,QB,Ⅷ,SMB,LB,AC,HC,*VD,*AC,*LD OUT BYTE VB,IB,QB,MB,SMB,LB,AC,HC,*VD,*AC,*LD N BYTE VB,IB,QB,MB,SMB,LB,AC,*VD,*AC.*LD BMW IN WORD VW,IW,QW,MW,SMW,LW,AIW,T,C,AQW,AC,HC,*VD,*AC.*LD OUT W
10、ORD N BYTB VB,IB,QB,MB,SMB,LB,AC,*WD,*AC.*LD BMD IN DWORD VD,ID,QD,MD,SMD,SD,LD,AC,HC,*VD,*AC.*LD OUT DWORD N BYTE VB,113,QB,MB,SMB,LB,AC,+VD,*AC,*LD和常数 关于:移位指令 1.左移和右移指令 左移或右移指令的功能是将输入数据IN左移或右移N位后,把结果送到0UT。 左移或右移指令的特点如下。 .被移位的数据是无符号的。 .在移位时,存放被移位数据的编程元
11、件的移出端与特殊继电器SM1.1连接,移出位进入SM1.1(溢出),另一端自动补0。 .移位次数N与移位数据的长度有关,如N小于实际的数据长度,则执行N次移位。如N大于数据长度,则执行移位的次数等于实际数据长度的位数。 .移位次数Ⅳ为字节型数据。 左移和右移指令影响的特殊继电器:SM1.0(零),当移位操作结果为0时,SM1.0自动置位;SM1.1(溢出)的状态由每次移出位的状态决定。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时间),0006(间接寻址)。 (1)字节左移指令SLB(Shift Left Byte)和字节右移指令SRB(Shift Right Byte
12、) 在梯形图中,字节左移指令或字节右移指令以功能框的形式编程,指令名称分别为: SHL B和SHR B。 当允许输入EN有效时,将字节型输入数据IN左移或右移N位(N≤8)后,送到0UT指定的字节存储单元。 在语句表中,字节左移指令SLB或字节右移指令SRB的指令格式如下。 字节左移指令:SLB OUT,N(OUT与IN为同一个存储单元) 字节右移指令:SRB OUT,N(OUT与IN为同一个存储单元) (2)字左移指令SLW(ShiftLeftWord)和字右移指令SRW(ShiftRightWord) 在梯形图中,字左移指令SLW或字右移指令SRW以功能框的形式编程,指令的
13、名称分别为:SHL_W和SHR_W。 当允许输入EN有效时,将字型输入数据IN左移或右移N位(N≤l6)后,送到0UT指定的字存储单元。 在语句表中,字左移指令SLW或字右移指令SRW的指令格式如下。 字左移指令:SLW OUT,N(OUT与IN为同一个存储单元) 字右移指令:SRW OUT,N(OUT与IN为同一个存储单元) (3)双字左移指令SLD(Shift Left Double word)和双字右移指令SRD(Shift Right Double word) 在梯形图中,双字左移指令SLD或双字右移指令SRD以功能框的形式编程, 当允许输
14、入EN有效时,将双字型输入数据IN左移或右移N位(N≤32)后,送到0UT指定的双字存储单元。 在语句表中,双字左移指令SLD或双字右移指令SRD的指令格式如下。 双字左移指令:SLD OUT,N(OUT与IN为同一个存储单元) 双字右移指令:SRD OUT,N(OUT与IN为同一个存储单元) 2.循环左移和循环右移指令 循环移位的特点如下。 ·被移位的数据是无符号的。 · 在移位时,存放被移位数据的编程元件的移出端既与另一端连接,又与特殊继电器SM1.1 连接,移出位在被移到另一端的同时,也进入SM1.1(溢出),另一端自动补0。 ·移位次数N与移位数据的长度有关,如N小于
15、实际的数据长度,则执行N次移位。如N大于数据长度,则执行移位的次数为N除以实际数据长度的余数。 ·移位次数N为字节型数据。 循环移位指令影响的特殊继电器:SM1.0(零),当移位操作结果为0时,SM1.0自动置位:SM1.1(溢出)的状态由每次移出位的状态决定。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时间),0006(间接寻址)。 (1) 字节循环左移指令RLB(Rotate Left Byte)和字节循环右移指令RB(RotateRightByte) 在梯形图中,字节循环移位指令以功能框的形式编程,指令名称分别为:ROL_B和ROR_B
16、 当允许输入EN有效时,把字节型输入数据州循环移位Ⅳ位后,送到由0UT指定的字在语句表中,字节循环移位指令的指令格式如下。 字节循环左移指令:RLB OUT,N 字节循环右移指令:RRB OUT,N (2) 字循环左移指令RLW(Rotate Left Word)和字循环右移指令RRW(Rotate Right Word) 在梯形图中,字循环移位指令以功能框的形式编程,指令名称分别为:ROL_W和ROR_W。 当允许输入EN有效时,把字型输入数据IN循环移位N位后,送到由OUT指定的字。 在语句表中,字循环移位指令的指令格式如下。 字循环左移指令:RLW OUT,N 字循
17、环右移指令:RRW OUT,N (3)双字循环左移指令RLD(Rotate Left Double word)和双字循环右移指令RRD(Rotate Right Double word) 在梯形图中,双字循环移位指令以功能框的形式编程,指令名称分别为:ROL_DW和ROR_DW。 当允许输入EN有效时,把双字型输入数据IN循环移位N位后,送到由OUT指定的双字存储单元。 在语句表中,字循环移位指令的指令格式如下。 双字循环左移指令:RLD OUT,N 双字循环右移指令:RRD OUT,N 3.移位寄存器指令SHRB(Shift Register Bit) 在梯形图中,移位寄
18、存器以功能框的形式编程,指令名称为:SHRB。它有3个数据输入端: DATA为移位寄存器的数据输入端; S_BIT为组成移位寄存器的最低位; N为移位寄存器的长度。 移位寄存器的特点如下。 ·移位寄存器的数据类型无字节型、字型、双字型之分,移位寄存器的长度N(≤64)由程序指定。 ·移位寄存器的组成: 最低位为S_BIT; 最高位的计算方法为MSB=(I︱N︱-l+(S BIT的位号))/8; 最高位的字节号:MSB的商+S_BIT的字节号; 最高位的位号: MSB的余数。 移位寄存器的组成:V33.4~V33.7,V34.0~V34.7,V35.0,V35.1,共l4
19、位。 ·N>0时,为正向移位,即从最低位向最高位移位。 ·N<0时,为反向移位,即从最高位向最低位移位。 ·移位寄存器指令的功能是:当允许输入端EN有效时,如果N>0,则在每个EN的前沿,将数据输入DATA的状态移入移位寄存器的最低位S_BIT;如果N<0,则在每个EN的前沿,将数据输入DATA的状态移入移位寄存器的最高位,移位寄存器的其他位按照Ⅳ指定的方向(正向或反向),依次串行移位。 ·移位寄存器的移出端与SM1.1(溢出)连接。 移位寄存器指令影响的特殊继电器:SM1.0(零),当移位操作结果为0时,SM1.0自动置位;SM1.1(溢出)的状态由每次移出位的状态决定。 影响允许输出EN0正常工作的出错条件为:SM4.3(运行时间),0006(间接寻址),o091 (操作数超界),0092(计数区错误)。






