您现在的位置是:首页 > PLC技术 > PLC技术

S7-200 PLC的移位指令

来源:艾特贸易2017-06-04

简介S7-200 PLC 的移位指令可以对字节 (B) 、字 (W) 、双字 (DW) 进行左移、右移、循环左移、循环右移等操作。指令格式如表 3-4 所示。 移位指令中的 IN 为源操作数; N 为移位的位数: OUT 为目

    S7-200 PLC的移位指令可以对字节(B)、字(W)、双字(DW)进行左移、右移、循环左移、循环右移等操作。指令格式如表3-4所示。    移位指令中的IN为源操作数;N为移位的位数:OUT为目的操作数;DATA为移位寄存器指令的待移入位数据;S - BIT为移位寄存器指令的最低位;N为移位寄存器指令的位数及方向控制字。要求源操作数和目的操作数的数据类型必须与指令类型相匹配。    (1)左移指令    对于左移指令.按指定位数(N)对源操作数(IN)依次左移N位,左边移出位自然丢失,右边空缺应补0,并将移位结果保存在目的操作数(OUT)中,源操作数(IN)保持不变。应用示例如图3-4所示。    (2)右移指令    对于右移指令,按指定位数(N)对源操作数(IN)依次右移N位,右边移出位自然丢失,左边空缺位补0,并将移位结果保存在目的操作数(OUT)中,源操作数(IN)保持不变。应用示例如图3-5所示。    (3)循环左移指令    对于循环左移指令,按指定位数(N)对源操作数(IN)依次循环左移N位,左边移出位补充到右边空缺位,并将移位结果保存在目的操作数(OUT)中,源操作数(IN)保持不变。应用示例如图3-6所示。
左移指令应用示例
    3-4    左移指令应用示例
右移指令应用示例
    3-5    右移指令应用示例
循环左移指令应用示例
    3-6    循环左移指令应用示例    (4)循环右移指令    对于循环右移指令,按指定位数(N)对源操作数(IN)依次循环右移N位,右边移出位补充到左边空缺位,并将移位结果保存在目的操作数(OUT)中,源操作数(IN)保持不变。应用示例如图3-7所示。
循环右移指令应用示例
    3-7    循环右移指令应用示例    (5)移位寄存器    移位寄存器(SHRB)指令实际上是一种自定义移位寄存器。移位寄存器(SHRB)指令将DATA数值移入移位寄存器,并由S_BIT指定移位寄存器的最低位,由N指定移位寄存器的长度和移位方向(+N表示“移位加”,-N表示“移位减”,移位寄存器的最大长度为64位),移出位则放置在特殊功能存储器SM1.1(移出标志位)中。    使用以下公式可计算“移位寄存器”的最高位的地址(MSB.b)
    其中,该公式计算出的整数部分为“移位寄存器”的最高位的字节地址,余数部分为“移位寄存器”的最高位的位序。例如:如果S_BITV33.4N14,则“移位寄存器”的最高位的地址为V35.1

移位寄存器指令应用示例
    3-8    移位寄存器指令应用示例    移位寄存器指令的应用示例如图3-8所示。    在“移位减”(N为负值)中,输入数据(DATA)移入移位寄存器的最高位,并移出最低位(S_BIT)。移出的数据被放置在SM1. 1中。移位原理如图3-9所示。
“移位减”的移位原理
    3-9    “移位减”的移位原理
“移位加”的移位原理
    3-10    “移位加”的移位原理    在“移位加”(N为正值)中,输入数据(DATA)移入移位寄存器的最低位(由S-BIT指定),并移出移位寄存器的最高位。移出的数据被放置在SM1.1中。移位原理如图3-10所示。