如何使用 WinCC 全局脚本访问系统时钟?

注意
如果在 Windows 7 或更高版本中使用这个脚本, 必须关闭用户账户控制。这也许会导致不利,将不得不权衡需求。用户账户控制,在 Windows 7 中已很严格,包含下列系统功能。

进行以下操作可防止这种限制。

  • 点击开始 > 搜索栏输入 “UAC“ 并打开UAC(UAC代表用户账户控制)。“用户账户控制设置“窗口打开。设置被显示为安全调节器。
  • 拖动安全调节器到 “从不报告” 并点击 “确定” 确定设置。
  • 重新启动计算机。

说明:
使用下列函数设置或读取系统时间:

  • SetSystemTime
  • SetLocalTime
  • GetSystemTime
  • GetLocalTime

系统中本地计算机时间和格林威治时间是有区别的。函数“SetSystemTime / GetSystemTime”用于设置或读取格林威治时间。
函数“SetLocalTime / GetLocalTime”用于设置或读取本地计算机时间。
两种时间会因地理的时区不同而改变,也会受到冬令时和夏令时的影响。两个函数使用方法相同。
操作本地计算机时间的函数是 Windows 系统函数,因此它独立于 WinCC 函数“GetLocalTimeString”或 WinCC 早期版本的“GetLocalTime”函数。

下面的例子程序说明如何在 WinCC 中操作本地计算机时间:

示例:
读取时间并将其存入 Word 类型变量中

#pragma code("kernel32.dll")

VOID GetLocalTime(SYSTEMTIME *lpst);

#pragma code();

SYSTEMTIME zeit;

GetLocalTime(&zeit);

SetTagWord("varname",zeit.wYear);

SetTagWord("varname",zeit.wMonth);

SetTagWord("varname",zeit.wDayOfWeek);

SetTagWord("varname",zeit.wDay);

SetTagWord("varname",zeit.wHour);

SetTagWord("varname",zeit.wMinute);

SetTagWord("varname",zeit.wSecond);

SetTagWord("varname",zeit.wMilliseconds);

示例:
读取时间并存入原始数据类型变量中

#pragma code("kernel32.dll")

VOID GetLocalTime(SYSTEMTIME *lpst);

#pragma code();

SYSTEMTIME zeit;

GetLocalTime(&zeit);

SetTagRaw("varname",(Byte*)&zeit,sizeof (SYSTEMTIME));

示例:
通过 Word 类型变量设置时间

#pragma code("kernel32.dll")

BOOL SetLocalTime(SYSTEMTIME *lpst);

#pragma code();

SYSTEMTIME zeit;

zeit.wYear=GetTagWord("varname");

zeit.wMonth=GetTagWord("varname");

zeit.wDayOfWeek=GetTagWord("varname");

zeit.wDay=GetTagWord("varname");

zeit.wHour=GetTagWord("varname");

zeit.wMinute=GetTagWord("varname");

zeit.wSecond=GetTagWord("varname");

zeit.wMilliseconds=GetTagWord("varname");

SetLocalTime(&zeit);

示例:
通过原始数据类型变量设置时间

#pragma code("kernel32.dll")

VOID SetLocalTime(SYSTEMTIME *lpst);

#pragma code();

SYSTEMTIME zeit;

GetTagRaw("varname",(BYTE*)&zeit,sizeof (SYSTEMTIME));

SetLocalTime(&zeit);

设置时间的参数可以通过 WinCC 的内部变量来指定,例如通过过程画面中的输入/输出域来实现。

注意:
年份必须用四位数字表示。

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

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

相关推荐

发表回复

登录后才能评论