此功能用于在每周的指定日和时间(小时:分钟:30 秒)对实时时钟 (RTC) 增加或减去指定的秒数。
注意: 必须至少调用一次 SetRTCDrift 功能 需要被编程为近在第一个 Mast 循环期间执行。
若要查看 IL 或 ST 语言的一般表示形式,请参阅功能和功能块表示形式一章。
下表介绍输入参数:
输入 |
类型 |
注释 |
---|---|---|
RtcDrift |
SINT(-29...+29) |
按秒修正 (-29 ... +29) |
日 |
星期几进行更改。 |
|
时 |
在几点钟进行更改。 |
|
分 |
在第几分钟进行更改。 在每周的指定日的几时几分 30 秒。RTC 设置为“时:分:(30+RTCDrift) 秒”。 |
注意: 如果为 RTCDrift、Day、Hour、Minute 输入的值超过了限制值,则逻辑控制器固件会将所有值设置为其最大值。
下表描述了输出变量:
输出 |
类型 |
注释 |
---|---|---|
SetRTCDrift |
WORD |
如果命令正常运行,则返回十六进制的 00,否则返回检测到的错误的 ID 代码。 |
在此示例中,仅在第一个 MAST 任务循环期间调用此功能一次,每个星期二清晨 5:45:30 向 RTC 增加 20 秒:
VAR
MyRTCDrift : SINT (-29...+29) := 0;
MyDay : DAY_OF_WEEK;
MyHour : HOUR;
MyMinute : MINUTE;
END_VAR
IF IsFirstMastCycle() THEN MyRTCDrift := 20; MyDay := TUESDAY; MyHour := 5; MyMinute := 45; SetRTCDrift(MyRTCDrift, MyDay, MyHour, MyMinute); END_IF