我刚刚开始使用结构化文本在PLC上工作,我必须在每次延迟 1 分钟后将值存储在温度变量数组中,但我无法做到这一点。
FOR i := 0 TO 5 DO
Temp[i] := tempsensor;
END_FOR;
这是一种伪代码。我只需要在循环中引入延迟,每隔 1 分钟它就可以读取该值并将其存储在数组位置中。
即使有任何其他方式,我也会非常感激。
我刚刚开始使用结构化文本在PLC上工作,我必须在每次延迟 1 分钟后将值存储在温度变量数组中,但我无法做到这一点。
FOR i := 0 TO 5 DO
Temp[i] := tempsensor;
END_FOR;
这是一种伪代码。我只需要在循环中引入延迟,每隔 1 分钟它就可以读取该值并将其存储在数组位置中。
即使有任何其他方式,我也会非常感激。
尝试这个
VAR
i:INT;
Temp: ARRAY[0..10000] OF LREAL;
delayTimer: TON;
END_VAR
delayTimer(IN := not delayTimer.Q, PT := T#1m);
IF delayTimer.Q THEN
Temp[i] := tempsensor;
i := i + 1;
IF i > 10000 THEN
i := 0;
END_IF;
END_IF;
1 分钟后,它将记录 1 个温度值并索引数组。如果它到达数组的末尾,它将从开头开始写入。
每分钟循环一次数组并设置值。
VAR
i: INT := 1; (* Cycle number *)
temp: ARRAY[1..5] OF REAL; (* Array of temperatures *)
ton1: TON; (* Timer *)
END_VAR
ton1(IN := NOT ton1.Q, PT := T#1m);
IF ton1.Q THEN
temp[i] := tempsensor;
IF i >= 5 THEN i := 1 ELSE i := i + 1 END_IF;
END_IF;