繁体   English   中英

结构化文本中的延迟计时器

[英]Delay Timer in Structured Text

我刚刚开始使用结构化文本在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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM