我对PLC编程很陌生。任何人都可以帮助解释我如何使用 TwinCAT3 对一个 INT 数组执行 SHR/SHL 操作,比如说 10 个元素。我认为我会这样做的方法是将移位寄存器移动一个位置,以便元素 0 变为元素 1,元素 1 变为元素 2 ..等等。最后一个元素丢失了。
预先感谢您的帮助。
我对PLC编程很陌生。任何人都可以帮助解释我如何使用 TwinCAT3 对一个 INT 数组执行 SHR/SHL 操作,比如说 10 个元素。我认为我会这样做的方法是将移位寄存器移动一个位置,以便元素 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