定时器功能介绍

定时器功能介绍

ID:39347502

大小:89.00 KB

页数:10页

时间:2019-07-01

定时器功能介绍_第1页
定时器功能介绍_第2页
定时器功能介绍_第3页
定时器功能介绍_第4页
定时器功能介绍_第5页
资源描述:

《定时器功能介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1、定时器功能介绍. 42、脚本中定时器介绍. 43、使用脚本实现更多定时器功能. 53.1整点归档.. 53.2WinCC项目激活时避免脚本初次执行及延迟执行脚本1定时器功能介绍   WinCC中定时器的使用可以使WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC提供的定时器不能满足我们需求,这时我们就可以通过WinCC提供的脚本接口通过编程的方式实现定

2、时的功能,因为脚本本身既可以直接调用WinCC其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。WinCC提供了C脚本和VBS脚本,本文主要以全局C脚本编程为例介绍定时功能的实现。2脚本中定时器介绍   既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:             图1  脚本触发器分类如图1所示:脚本触发器分为使用定时器和使用变量,定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指

3、定2012年10月1日执行一次属于非周期执行。使用变量触发脚本,即在变量发生变化时,脚本就执行一次,而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。3使用脚本实现更多定时器功能  利用脚本自身的定时器,可以通过在脚本中编程的方式实现更多其它定时功能。3.1整点归档   WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档,比如:整点归档。下面的设置结合WinCC脚本,实现了在整点开始归档,

4、归档五分种后停止归档,即每个小时仅归档前五分钟的数据。   软件环境:Windows7ProfessionalServicePack1,WinCCV7.0SP3   归档名称:ProcessValueArchive   归档变量:NewTag   归档周期:1分钟   归档控制变量 startarchive   C脚本触发周期:10秒   脚本代码:#include"apdefap.h"intgscAction(void){   #pragmaoption(mbcs)   #pragmacode("kerne

5、l32.dll");    voidGetLocalTime(SYSTEMTIME*lpst);    #pragmacode();      SYSTEMTIMEtime;     int t1;      GetLocalTime(&time);      t1=time.wMinute; if(t1==00)      {                  SetTagBit("startarchive",1);        }     if(t1==05)      {               

6、   SetTagBit("startarchive",0);     } return0;}归档设置如图2:           图2  归档设置  同理,在以上脚本的基础上做修改,可以实现在某个指定的时间点打印报表,只要在满足触发条件时调用下列函数:        RPTJobPrint("Myprintjob");   Myprintjob为事先创建好的打印作业。       脚本主要部分在于获取系统当前时间,下面的脚本实现了获取当前时间并分别获取年、月、日、时、分、秒、毫秒,星期几的功能。   Var

7、name1到Varname8为WinCC内部变量。若在WinCC画面上显示时,由于默认I/O域的格式为999.99,要把Varname1的显示格式改为9999。  #include"apdefap.h"intgscAction(void){         #pragmaoption(mbcs)          #pragmacode("kernel32.dll");             voidGetLocalTime(SYSTEMTIME*lpst);         #pragmacode(); 

8、        SYSTEMTIMEtime;           GetLocalTime(&time);              SetTagWord("Varname1",time.wYear);          SetTagWord("Varname2",time.wMonth);          SetTagWord("Varname3",time.wDayOfWeek);     

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。