使用SHL/SHR对TwinCAT3中的阵列执行移位寄存器操作



我对PLC编程很陌生。有人能帮我解释一下如何使用TwinCAT3对INT数组(比如说10个元素(执行SHR/SHL操作吗。我认为我应该这样做的方式是将移位寄存器移动一个位置,使元素0变成元素1,元素1变成元素2。。等等,并且最后一个元素丢失。

提前感谢您的帮助。

假设您正在使用:

VAR
aiElements : ARRAY[0..uiElementsCount-1] OF INT;
i : INT;
END_VAR
VAR CONSTANT
uiElementsCount : INT := 10;
END_VAR

要将每个值向前移动一个索引(0->1、1->2等(,可以执行以下操作:

FOR i := uiElementsCount-1 TO 1 BY -1 DO
aiElements[i] := aiElements[i-1];
END_FOR 

要将每个值向后移动一个索引(1->0、2->1等(:

FOR i := 0 TO uiElementsCount-2 DO
aiElements[i] := aiElements[i+1];
END_FOR 

最新更新