如何在OS上确定PC设置的是夏令时还是冬令时?

描述:
以下的C脚本可以确定PC上的夏令时/冬令时设置。

创建一个新的全局脚本函数,名称为“SummerWinterFlag” ,并将下面的文本复制到这个函数中。然后在诸如按钮的鼠标点击事件中调用此函数。返回值是一个包含关于夏令时/冬令时信息的数。

注意:
示例中,返回值由printf()输出,并带有描述。

全局脚本函数:

typedef struct _TIME_ZONE_INFORMATION {
LONG Bias;
WCHAR StandardName[ 32 ];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[ 32 ];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
} TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;

void SummerWinterFlag()
{
#pragma code(“kernel32.dll”)
DWORD GetTimeZoneInformation( LPTIME_ZONE_INFORMATION lpTimeZoneInformation );
#pragma code()

TIME_ZONE_INFORMATION tzi;
DWORD ret;

ret = GetTimeZoneInformation( &tzi );

// printf(“ret = %drn”, ret);

if (ret == 0)
{
printf(“unknown timern”);
}
else if (ret == 1)
{
printf(“Standard Timern”);
}
else if (ret == 2)
{
printf(“Summer Timern”);
}
else { printf(“invalid value”);
}
}

为了让该信息在AS中可用,请使用一个合适的方式(例如使用一个过程变量)将该信息传送到AS。
在PCS 7 V6.x和更高版本中,还可以选用标准库[current standard library]中的功能块LOC_TIME(FC60)。 功能块的“SUMMER”输出指定当前设定的是冬令时(0)还是夏令时(1)。可以使用以下方法获取CPU时间设置,在组件视图下选择CPU,点击右键后 选择 “PLC > Set Time of Day…”,在弹出的对话框中点击按钮“More…”,通过“Indicate as daylight saving time”区分夏令时/冬令时。
更多详细信息可参阅此功能块的在线帮助。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论