描述:
以下的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