發布日期:2022-04-17 點擊率:26 品牌:西門子_Siemens
FC的輸入數據IN(DWord)是要移位的雙字,Bit_No(Int)是移位位數。輸出數據OUT(DWord)是移位的結果。本文以輸入IN的低20位數據連續循環移位1~20位為例。Tmp1和Tmp2分別用來暫存移位后的數據和移位次數剩余值。L1.4是Tmp1(LD0)的第20位。
將L1.4改為LD0的其他位,可以改變要移位數據的位數。例如改為L2.4時,被移位數據的位數為12位。
L#IN
T#Tmp1//保存被移位的雙字
L#Bit_No
BACK:T#Tmp2//保存移位次數剩余值
L1
L#Tmp1
RLD//循環移位1位
T#Tmp1
AL1.4
SL3.0//Tmp1的第20位為1則將最低位置位
ANL1.4
RL3.0//Tmp1第20位為0則將最低位復位
CLR
=L1.4//將Tmp1第20位清零
L#Tmp2//取移位次數剩余值
LOOPBACK//減1后非零則返回
L#Tmp1
T#OUT//輸出循環移位的結果
CALLFC1
IN:=MD10
Bit_No:=MW14
OUT:=MD16
用十六進制格式監控MD10和MD16,移位次數MW14的值最好是4的整倍數,監控比較方便。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV