SetRTCDrift:每周调整实时时钟

功能描述

此功能用于在每周的指定日和时间(小时:分钟:30 秒)对实时时钟 (RTC) 增加或减去指定的秒数。

注意: 必须至少调用一次 SetRTCDrift 功能 需要被编程为近在第一个 Mast 循环期间执行。

图形表示形式

G-RU-0010362.2.gif-high.gif

 

 

IL 和 ST 表示形式

若要查看 IL 或 ST 语言的一般表示形式,请参阅功能和功能块表示形式一章。

I/O 变量描述

下表介绍输入参数:

输入

类型

注释

RtcDrift

SINT(-29...+29)

按秒修正 (-29 ... +29)

DAY_OF_WEEK

星期几进行更改。

HOUR

在几点钟进行更改。

MINUTE

在第几分钟进行更改。

在每周的指定日的几时几分 30 秒。RTC 设置为“时:分:(30+RTCDrift) 秒”。

注意: 如果为 RTCDriftDayHourMinute 输入的值超过了限制值,则逻辑控制器固件会将所有值设置为其最大值。

下表描述了输出变量:

输出

类型

注释

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