- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《定时器功能介绍
1、定时器功能介绍.?42、脚本中定时器介绍.?43、使用脚本实现更多定时器功能.?53.1 整点归档..?53.2 WinCC 项目激活时避免脚本初次执行及延迟执行脚本
1 定时器功能介绍
??? WinCC 中定时器的使用可以使 WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC 已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC 提供的定时器不能满足我们需求,这时我们就可以通过 WinCC 提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接 调用 WinCC其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。WinCC 提供了 C 脚本和 VBS 脚 本,本文主要以全局 C 脚本编程为例介绍定时功能的实现。
2 脚本中定时器介绍 ??? 既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:
? ? ? ? ? ? ? ? ? ? ? ? ?图1?? 脚本触发器分类 如图1所示: 脚本触发器分为使用定时器和使用变量, 定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。 使用变量触发脚本,即在变量发生变化时,脚本就执行一次, 而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒 钟采集变量一次。
3使用脚本实现更多定时器功能
?? 利用脚本自身的定时器, 可以通过在脚本中编程的方式实现更多其它定时功能。
3.1整 点归档
??? WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些 变量或脚本返回值来控制归档, 比如:整点归档。下面的设置结合WinCC脚本,实现了在 整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。
??? 软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3
??? 归档名称:ProcessValueArchive
??? 归档变量:NewTag
??? 归档周期:1 分钟
??? 归档控制变量? startarchive
??? C脚本触发周期:10秒
?? ?脚本代码:
#include apdefap.h
intgscAction( void )
{
??? #pragma option(mbcs)
??? #pragma code (kernel32.dll);?
??? void GetLocalTime (SYSTEMTIME* lpst);?
??? #pragma code();?
??? ??SYSTEMTIME time;
????? int? t1;?
????? GetLocalTime(time);?
???? ?t1=time.wMinute;?
if(t1==00)?
???? ?{?
??????????????? ??SetTagBit(startarchive,1);??
? ?????}?
???? if(t1==05)?
????? {?
? ????????????????SetTagBit(startarchive,0);????
?}?
return0;
}
归档设置如图2:
? ? ? ? ? ? ? ? ? ? ?图2?? 归档设置
? ? 同理,在以上脚本的基础上做修改,可以实现在某个指定的时间点打印报表,只要在满足触发条件时调用下列函数:????
? ? ?? RPTJobPrint( Myprintjob);? ? ? Myprintjob为 事先创建好的打印作业。?
?????? 脚 本主要部分在于获取系统当前时间,下 面的脚本实现了获取当前时间并分别获取年、月、日、时、分、秒、毫秒,星期几的功能。
?
? ? Varname1 到 Varname8 为 WinCC 内部变量。若在 WinCC画面上显示时,由于默认 I/O 域的 格式为999.99, 要把 Varname1 的显示格式改为9999。?
? #include apdefap.h
intgscAction( void )
{
????????? #pragma option(mbcs)
?
????????? #pragma code (kernel32.dll);?
???????????? void GetLocalTime (SYSTEMT
文档评论(0)