1

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

预先感谢您的帮助。

4

1 回答 1

0

假设您正在使用:

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 
于 2022-02-18T08:36:26.760 回答