WINCC几个常用 C 语言编程
全局脚本编程(按钮连续增减)
说明: 1、建立全局脚本函数
2 、建立全局动作C 脚本
、在启动画面的打开画面中调用全局脚本函数
、在计算机的启动选项中选中全局脚本全局脚本函数 InitAction ()
extern char
tagname[30] = " " ;
extern
SHORT count = 0;
extern
FLOAT low = 0;
extern
FLOAT high = 0;
extern
FLOAT step = 0;
void
InitAction()
按钮左键按下连续增加
extern char
tagname[30];
extern
SHORT count;
extern
FLOAT low;
extern
FLOAT high;
extern
FLOAT step;
strcpy(tagname,"S32i_varia_but_04");
count = 1;
low = 0;
high =1400;
step =0.5;
按钮左键按下连续减少
extern char
tagname[30];
extern
SHORT count;
extern
FLOAT low;
extern
FLOAT high;
extern
FLOAT step;
strcpy(tagname,"S32i_varia_but_04");
count = 2;
low = 0;
high =1400;
step =0.5;
按钮左键松开停止增减
externSHORT count;
count=0;
全局动作 C 脚本( counter.pas
)
#include
"apdefap.h"
int gscAction( void )
{
extern char
tagname[30];
extern
SHORT count;
extern
FLOAT
low;
extern
FLOAT
high;
extern
FLOAT
step;
FLOAT value;
if((count==1)||(count==2)) {
//get current value
value = GetTagFloat (tagname);
if(count==1)
{
//inc
value = value+step;
if(value>high) (value=high); //high lim
it
if
}//if
(count==2)
{
//dec
value = value-step;
if(value
//low limi
t
}//if
SetTagFloat (tagname,value);
}//if
return (0);
}
全局脚本函数( InitAction)文件:
C脚本( counter.pas )文件:
按钮左键连续增加文件:
按钮左键松开文件:
C脚本编程(按钮按击增减)
1、直接调用 C动作方式实现:
#include
"apdefap.h"
voidOnLButtonDown(char * lpszPictureName,
ar * lpszPropertyName,UINTnFlags,int
char * lpszObjectName, x, int y)
ch
{
FLOAT value;
value=GetTagFloat("S32i_varia_but_00"); //get tag value
if
else
(value>1300) (value=1400);
value=value+100;
//check limit
//inc valu
e
SetTagFloat("S32i_varia_but_00",value); //set new value
2、调用函数方式实现( incdecvalue ):
FLOAT value;
value=GetTagFloat ("S32i_varia_but_04");
IncDecValue(&value,0,1400,100,1);
SetTagFloat ("S32i_varia_but_04",value);
项目函数( incdecvalue )
voidIncDecValue(FLOAT *value,FLOAT low,FLOAT high,FLOAT step,DWORD
a)
{
FLOATv;
v=*value; //get current value
switch(a){
case0: {
if(v
e