M251 写入功能

 

SetRTCDrift:将补偿值设置到 RTC

功能描述

此功能可加快或减慢 RTC 的频率,以控制 RTC 补偿的应用,具体取决于操作环境(温度等)。每周以秒为单位提供补偿值。它可以是正值(加快)或负值(减慢)。

注意: 必须至少调用一次 SetRTCDrift 功能 只能调用一次。每当新调用时,补偿值便会替换为新值。使用主电源或电池对 RTC 供电时,值保留在控制器硬件中。如果电池和电源都被移除,则 RTC 补偿值不可用。

图形表示形式

G-SE-0062398.1.gif-high.gif

 

 

IL 和 ST 表示形式

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

I/O 变量描述

下表介绍输入参数:

输入

类型

注释

RtcDrift

SINT(-36...+73)

每周按秒修正 (-36 ... +73)。

注意: 参数 DayHour 和 Minute 仅用于确保向后兼容。

注意: 如果为 RtcDrift 输入的值超过限制值,则控制器固件将该值设置为其最大值。

下表描述了输出变量:

输出

类型

注释

SetRTCDrift

RTCSETDRIFT_ERROR

如果命令正常运行,则返回 RTC_OK(十六进制的 00),否则返回检测到的错误的 ID 代码。

示例

在此示例中,仅在第一个 MAST 任务循环期间调用此功能一次。它每周加快 RTC 4 秒(一个月 18 秒)。

VAR
   MyRTCDrift : SINT (-36...+73) := 0;
   MyDay : DAY_OF_WEEK;
   MyHour : HOUR;
   MyMinute : MINUTE;
END_VAR    

IF IsFirstMastCycle() THEN
   MyRTCDrift := 4;
   MyDay := 0;
   MyHour := 0;
   MyMinute := 0;
   SetRTCDrift(MyRTCDrift, MyDay, MyHour, MyMinute);
END_IF