您所在位置: 网站首页 / WinCC-中定时器使用方法介绍.doc / 文档详情
WinCC-中定时器使用方法介绍.doc 立即下载
2025-01-05
约3.1千字
约8页
0
105KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

WinCC-中定时器使用方法介绍.doc

WinCC-中定时器使用方法介绍.doc

预览

免费试读已结束,剩余 3 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1、定时器功能介绍2、脚本中定时器介绍3、使用脚本实现更多定时器功能3.1整点归档3.2WinCC项目激活时避免脚本初次执行及延迟执行脚本1定时器功能介绍
WinCC中定时器的使用可以使WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC提供的定时器不能满足我们需求,这时我们就可以通过WinCC提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接调用WinCC其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。WinCC提供了C脚本和VBS脚本,本文主要以全局C脚本编程为例介绍定时功能的实现。
2脚本中定时器介绍既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:

图1脚本触发器分类如图1所示:脚本触发器分为使用定时器和使用变量,定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。使用变量触发脚本,即在变量发生变化时,脚本就执行一次,而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。
3使用脚本实现更多定时器功能
利用脚本自身的定时器,可以通过在脚本中编程的方式实现更多其它定时功能。
3.1整点归档
WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档,比如:整点归档。下面的设置结合WinCC脚本,实现了在整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。
软件环境:Windows7ProfessionalServicePack1,WinCCV7.0SP3
归档名称:ProcessValueArchive
归档变量:NewTag
归档周期:1分钟
归档控制变量startarchive
C脚本触发周期:10秒
脚本代码:
#include"apdefap.h"
intgscAction(void)
{
#pragmaoption(mbcs)
#pragmacode("kernel32.dll");
voidGetLocalTime(SYSTEMTIME*lpst);
#pragmacode();
SYSTEMTIMEtime;
intt1;
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)
{
#pragmaoption(mbcs)

#pragmacode("kernel32.dll");
voidGetLocalTime(SYSTEMTIME*lpst);
#pragmacode();
SYSTEMTIMEtime;
GetLocalTime(&time);
SetTagWord("Varname1",time.wYear);
SetTagWord("Varname2",time.wMonth);
SetTagWord("Varname3",time.wDayOfWeek);
SetTagWord("Varname4",time.wDay);
SetTagWord("Varname5",time.wHour);
SetTagWord("Varname6",time.wMinute);
SetTagWord("Varname7",time.wSecond);
SetTagWord("Varname8",time.wMilliseconds);
return0;
}
设置或读取系统时间的函数如下:
SetSystemTime
SetLocalTime
GetSyst
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

WinCC-中定时器使用方法介绍

文档大小:105KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用