WinCC中定时器使用方法

时间:2023-03-17作者:佚名

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

2脚本中定时器介绍
既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:

WinCC中定时器使用方法
图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"

int gscAction( 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);
}
return 0;
}

归档设置如图2:

WinCC中定时器使用方法
图2 归档设置

同理,在以上脚本的基础上做修改,可以实现在某个指定的时间点打印报表,只要在满足触发条件时调用下列函数:

RPTJobPrint("Myprintjob");

Myprintjob为事先创建好的打印作业。

脚本主要部分在于获取系统当前时间,下面的脚本实现了获取当前时间并分别获取年、

月、日、时、分、秒、毫秒,星期几的功能。

Varname1到Varname8为WinCC内部变量。若在WinCC画面上显示时,由于默认I/O 域

的格式为999.99, 要把 Varname1的显示格式改为9999。

#include "apdefap.h"

int gscAction( void )
{

#pragma option(mbcs)

#pragma code ("kernel32.dll");

void GetLocalTime (SYSTEMTIME* lpst);

#pragma code();

SYSTEMTIME time;

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

return 0;
}

设置或读取系统时间的函数如下:

SetSystemTime
SetLocalTime
GetSystemTime
GetLocalTime

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

GetSystemTime”用于设置或读取格林威治时间。

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

两种时间会因地理的时区不同而改变。两个函数使用方法相同。

3.2 WinCC项目激活时避免脚本初次执行及延迟执行脚本

全局脚本在项目激活时,是要执行一次的,在有些情况下,需要避免脚本执行,就采用在脚本中去判断。比如可以创建WinCC内部布尔型变量 flag,脚本如下:

#include "apdefap.h"

int gscAction( void )
{

#pragma option(mbcs)

if ( GetTagBit("flag")==1)
SetTagWord("NewTag",1);//根据自己的需求编写对应代码.
else
SetTagBit("flag",1); //Return-Type: BOOL

return 0;
}

除了避免项目运行激活时触发脚本执行,我们还可以通过Sleep() 延迟脚本功能执行,比如开机后五分钟开始执行脚本具体功能,代码如下:

#include "apdefap.h"

int gscAction( void )
{

#pragma option(mbcs)
#pragma option(mbcs)
#pragma code("Kernel32.dll");
void Sleep(int milliseconds);
#pragma code()

Sleep(300000); //延迟300秒即五分钟

int temp;

//根据自己的需求编写对应代码.
temp=GetTagWord("NewTag"); //Return-Type: WORD
temp ;
SetTagWord("NewTag",temp);

return 0;
}

相关阅读

加工中心回参考点及其故障诊断

所谓加工中心 参考点又名原点或零点,是机床的机械原点和电气 原点相重合的点,是原点复归后机械上固定的点。每台机床可以有一个参考原点,也可以据需要设置多个参考原点,用于...
2023-03-21

为什么说“紧车工,慢钳工,吊儿郎当当电工,不要脸的是焊工”?

工厂里流行的口头语,“紧车工,慢钳工,吊儿郎当当电工,不要脸的是焊工”下面我们就来了解一下。 车工一旦接单,整个切削加工过程都是特别紧张忙碌的。每一个步骤都不能错,...
2023-06-11
为什么说“紧车工,慢钳工,吊儿郎当当电工,不要脸的是焊工”?

水电维修十几年心得,90%的电路问题,都逃不出这几点

做水电维修十几年,见过的电路故障没有一万也有八千。很多看似复杂的问题,其实根源都藏在几个高频点上。今天就把这些年总结的核心干货一次性讲透,帮你快速定位故障,少走弯路。...
2026-06-29
水电维修十几年心得,90%的电路问题,都逃不出这几点

什么是开环控制?什么是闭环控制?

闭环控制是控制论的一个基本概念。指作为被控的输出以一定方式返回到作为控制的输入端,并对输入端施加控制影响的一种控制关系。在控制论中,闭环通常指输出端通过“旁链”方...
2023-03-21

电工常见电路接线图10例,90%电工都收藏了!

一、带指示灯的电动机起动停止电路 带指示灯的电动机起动停止线路在工作生产中是最常见的一种控制线路,它具有单方向控制电动机起停,并有自锁、短路保护和过载动作保护作用。...
2023-06-11
电工常见电路接线图10例,90%电工都收藏了!

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

电位器旋钮电流调节螺帽直流逆变电焊机二保焊送丝机通用旋钮B102

电位器旋钮电流调节螺帽适用于直流逆变电焊机和二保焊送丝机,是一款通用的旋钮B102。该旋钮采用优质材料制造,具有耐磨损、耐高温、耐腐蚀等特点,能够长时间稳定运行...
¥ 0.7

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目