WinCC中定时器使用方法精讲【工控老鬼】

标签:
plc培训工控老鬼工业自动化西门子plcwincc定时器 |
分类: WinCC |
WinCC中定时器使用方法精讲【工控老鬼】
The usage of Timer in WinCC
Project
1定时器功能介绍
2脚本中定时器介绍
3使用脚本实现更多定时器功能
3.1整点归档
3.2 WinCC项目激活时避免脚本初次执行及延迟执行脚本
1 定时器功能介绍
2 脚本中定时器介绍
图1 脚本触发器分类
3 使用脚本实现更多定时器功能
利用脚本自身的定时器,可以通过在脚本中编程的方式实现更多其它定时功能。
3.1整点归档
软件环境: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:
图2 归档设置
#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
3.2 WinCC项目激活时避免脚本初次执行及延迟执行脚本
#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;
}
#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;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
启程培训中心
工控老鬼技术Blog:http://blog.sina.com.cn/wincchome
E-mail:gongkong8@foxmail.com
QQ空间
工控老鬼执着坚守,坚韧笃定,专注于工业自动化技术的传播和推广以及