S7-200 PLC的移位指令可以對字節(jié)(B)、字(W)、雙字(DW)進行左移、右移、循環(huán)左移、循環(huán)右移等操作。指令格式如表3-4所示。 移位指令中的IN為源操作數(shù);N為移位的位數(shù):OUT為目的操作數(shù);DATA為移位寄存器指令的待移入位數(shù)據(jù);S - BIT為移位寄存器指令的最低位;N為移位寄存器指令的位數(shù)及方向控制字。要求源操作數(shù)和目的操作數(shù)的數(shù)據(jù)類型必須與指令類型相匹配。
(1)左移指令SHL_W 對于左移指令.按指定位數(shù)(N)對源操作數(shù)(IN)依次左移N位,左邊移出位自然丟失,右邊空缺應補0,并將移位結(jié)果保存在目的操作數(shù)(OUT)中,源操作數(shù)(IN)保持不變。應用示例如圖3-4所示。
(2)右移指令SHR_W 對于右移指令,按指定位數(shù)(N)對源操作數(shù)(IN)依次右移N位,右邊移出位自然丟失,左邊空缺位補0,并將移位結(jié)果保存在目的操作數(shù)(OUT)中,源操作數(shù)(IN)保持不變。應用示例如圖3-5所示。
(3)循環(huán)左移指令ROL_W 對于循環(huán)左移指令,按指定位數(shù)(N)對源操作數(shù)(IN)依次循環(huán)左移N位,左邊移出位補充到右邊空缺位,并將移位結(jié)果保存在目的操作數(shù)(OUT)中,源操作數(shù)(IN)保持不變。應用示例如圖3-6所示。
圖3-6 西門子plc ROL_W 循環(huán)左移指令應用示例
(4)循環(huán)右移指令 對于循環(huán)右移指令,按指定位數(shù)(N)對源操作數(shù)(IN)依次循環(huán)右移N位,右邊移出位補充到左邊空缺位,并將移位結(jié)果保存在目的操作數(shù)(OUT)中,源操作數(shù)(IN)保持不變。應用示例如圖3-7所示。
圖3-7 ROR_W 循環(huán)右移指令應用示例 (5)移位寄存器 移位寄存器(SHRB)指令實際上是一種自定義移位寄存器。移位寄存器(SHRB)指令將DATA數(shù)值移入移位寄存器,并由S_BIT指定移位寄存器的最低位,由N指定移位寄存器的長度和移位方向(+N表示“移位加”,-N表示“移位減”,移位寄存器的最大長度為64位),移出位則放置在特殊功能存儲器SM1.1(移出標志位)中。 使用以下公式可計算“移位寄存器”的最高位的地址(MSB.b)。 其中,該公式計算出的整數(shù)部分為“移位寄存器”的最高位的字節(jié)地址,余數(shù)部分為“移位寄存器”的最高位的位序。例如:如果S_BIT為V33.4和N為14,則“移位寄存器”的最高位的地址為V35.1。
圖3-8 移位寄存器指令應用示例 移位寄存器指令的應用示例如圖3-8所示。 在“移位減”(N為負值)中,輸入數(shù)據(jù)(DATA)移入移位寄存器的最高位,并移出最低位(S_BIT)。移出的數(shù)據(jù)被放置在SM1. 1中。移位原理如圖3-9所示。
圖3-10 “移位加”的移位原理 在“移位加”(N為正值)中,輸入數(shù)據(jù)(DATA)移入移位寄存器的最低位(由S-BIT指定),并移出移位寄存器的最高位。移出的數(shù)據(jù)被放置在SM1.1中。移位原理如圖3-10所示。