SCL T_ADD — 时间相加
两个 Time 相加。
SCL 的时间运算围绕 TIME/LTIME(时长)和 TOD/DTL(时间点/日期时间)展开。
T_ADD 加时长,T_SUB 减时长,T_DIFF 求两个时间标签的差;结果类型取决于输入组合。
Time 是 32 位毫秒,约 49 天上限;长时间累计用 LTIME 或 DInt 毫秒/秒。
| 需求 | 指令 |
|---|---|
| 时间相加 | T_ADD |
| 时间相减 | T_SUB |
| 两个时间标签的差 | T_DIFF |
| 读系统时间 | RD_SYS_T |
| 设置时间 | WR_SYS_T |
1#Total := T_ADD(IN1 := #Total, IN2 := #CycleTime);
2IF #Total >= T#1H THEN
3 #MaintenanceDue := TRUE;
4END_IF;
1#Duration := T_DIFF(IN1 := #EndDTL, IN2 := #StartDTL);
Time 约 49 天上限;跨月/长时间差用 LTIME 或分段累计。
加时长用 T_ADD,减时长用 T_SUB,求两个时间标签的差用 T_DIFF;结果都是时间类型。
TIME 是 32 位毫秒,约 49 天;更长时间用 LTIME 或 DInt 秒/毫秒累计。
T_DIFF 的 TIME 变体对 DTL-DTL 有 24 天限制;用 T_DIFF_LTIME 或分段累计。
可以;IN1 早于 IN2 时为负。下游定时器/延时通常要求正数,使用前检查。