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

上传人:b****5 文档编号:6614083 上传时间:2023-01-08 格式:DOCX 页数:8 大小:53.52KB
下载 相关 举报
如何使用 WinCC 全局脚本访问系统时钟.docx_第1页
第1页 / 共8页
如何使用 WinCC 全局脚本访问系统时钟.docx_第2页
第2页 / 共8页
如何使用 WinCC 全局脚本访问系统时钟.docx_第3页
第3页 / 共8页
如何使用 WinCC 全局脚本访问系统时钟.docx_第4页
第4页 / 共8页
如何使用 WinCC 全局脚本访问系统时钟.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

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

《如何使用 WinCC 全局脚本访问系统时钟.docx》由会员分享,可在线阅读,更多相关《如何使用 WinCC 全局脚本访问系统时钟.docx(8页珍藏版)》请在冰豆网上搜索。

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

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

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

说明:

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

∙SetSystemTime

∙SetLocalTime

∙GetSystemTime

∙GetLocalTime

系统中本地计算机时间和格林威治时间是有区别的。

函数“SetSystemTime/GetSystemTime”用于设置或读取格林威治时间。

函数“SetLocalTime/GetLocalTime”用于设置或读取本地计算机时间。

两种时间会因地理的时区不同而改变,也会受到冬令时和夏令时的影响。

两个函数使用方法相同。

操作本地计算机时间的函数是Windows系统函数,因此它独立于WinCC函数“GetLocalTimeString”或WinCC早期版本的“GetLocalTime”函数。

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

示例:

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

#pragmacode("kernel32.dll")

VOIDGetLocalTime(SYSTEMTIME*lpst);

#pragmacode();

SYSTEMTIMEzeit;

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);

示例:

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

#pragmacode("kernel32.dll")

VOIDGetLocalTime(SYSTEMTIME*lpst);

#pragmacode();

SYSTEMTIMEzeit;

GetLocalTime(&zeit);

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

示例:

通过Word类型变量设置时间

#pragmacode("kernel32.dll")

BOOLSetLocalTime(SYSTEMTIME*lpst);

#pragmacode();

SYSTEMTIMEzeit;

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);

示例:

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

#pragmacode("kernel32.dll")

VOIDSetLocalTime(SYSTEMTIME*lpst);

#pragmacode();

SYSTEMTIMEzeit;

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

SetLocalTime(&zeit);

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

注意:

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

条目号:

24019500

日期:

2012-09-20

如何在WinCCRuntimeProfessional中读取、显示或设置本地计算机时间或协调世界时间?

描述

该FAQ描述了在WinCCRTProfessional中访问系统时间(本地计算机时间或协调世界时间)的几种方式。

注释

∙设置时间的用户权限

本文介绍的用于设定时间的方法需要操作系统级别的管理权限。

如果WinCCRTProfessional运行在受限的环境中,本文所述的用于设定时间的示例代码不会正常运行。

∙避免时间跳跃

在操作期间应该避免使用本文所述的方法设置系统时间,原因是由此带来的时间跳跃可能导致与WinCCProfessional的冲突(例如,当显示归档数据时)。

因此,推荐在WinCCRTProfessional终止后使用时间同步或者设置时间。

为此可以利用"RuntimeStop"触发器使用scheduler。

No.

选项

1

WinCC时钟

"Clock"控件提供了一种简单和快速的方法在过程画面中显示WinCCRTProfessional的时间。

关于该控件的详细信息,可以参考TIAPortal的在线帮助文档,位于"Visualizingprocesses>Creatingscreens>Displayandoperatingobjects>Objects>Clock"。

注释

该控件不提供在其它应用程序中评估时间(例如Scheduler),或者设置或修改时间。

2

WindowsAPI函数

可以使用WindowsAPI函数...

∙GetLocalTime(),

∙SetLocalTime(),

∙GetSystemTime()和

∙SetSystemTime()

...可以在C脚本中读取或设置本地计算机时间或协调世界时间(UTC),这些函数使用"SYSTEMTIME"数据类型(结构体),该结构体的成员变量为数字类型(年、月、日、时、分、秒、毫秒...)。

注释

如果需要周期执行的脚本,可以使用"Scheduler"。

关于"Scheduler"的详细信息,请参见TIAPortal的在线帮助文档,位置如下:

∙"Visualizingprocesses>Schedulingtasks>Basics>WorkingareaoftheSchedulereditor"或

∙"Visualizingprocesses>Schedulingtasks>Basics>Tasktype>IntegratinglocalCscripts(RTProfessional"

条目ID24019500介绍如何使用这些函数的示例。

3

VBS

可以在WinCC中使用VBS读取或设置日期和时间。

提供以下方法:

∙Time函数

Time函数返回本地计算机时间(不包括日期)。

∙Now函数

Now函数返回本地计算机时间(包括日期和时间)。

∙WindowsManagementInstrumentation(WMI)

WindowsManagementInstrumentation(WMI)提供对所有系统参数的访问。

WMI能够读取信息和管理系统参数。

因此可以使用VBS读取本地计算机时间或协调世界时间(UTC),或者读取、设置计算机时区。

关于"WindowsManagementInstrumentation(WMI)"的详细信息,可以参见微软的文档:

在以上链接中,可以找到VBS的示例代码、简短描述和与Windows不同版本的兼容性。

条目ID24198647介绍如何在WinCC中使用WMI访问日期和时间的示例。

4

Windows命令"date"和"time"

Windows操作系统提供命令行指令"time"和"date",用于显示和设置系统时间和日期。

在Windows命令行中输入"helptime"或"helpdate",可以看到这些命令的简短描述。

可以在脚本中使用上述的命令行指令(C脚本或VBS)。

以下是使用C脚本或VBS的示例代码。

∙C脚本

ProgramExecute("cmd/ctime14:

16");

system("time14:

16");

∙VBS

DimobjWshShell

SetobjWshShell=CreateObject("Wscript.Shell")

objWshShell.Run"cmd/Ctime14:

16",1

表01

下载

为了进行简单的测试,可以下载下面的库。

使用相应的任务卡打开全局库,将包含在库中的元素托拽到项目中。

Time_Functions.zip(489KB)

图.01

创建环境

在该FAQ中的画面和下载,创建在WinCCProfessionalV11SP2中。

条目号:

59558655

日期:

2012-05-04

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1