搬家第14天-176.Wincc v7.3 c脚本 使用常数数组在function trend上绘制曲线

前面的博客记录了在wincc V7.3,使用vbs把常数数组在function trend上绘制曲线,这篇博客记录如何使用c脚本实现同样的功能。画面上有一个按钮,名字叫做btn,有一个function trend名字叫做trend,按钮的鼠标点击事件中添加以下c脚本

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma code("kernel32.dll")
#define GetObject GetObject
int i ;
__object *pdl=NULL;
__object *pic=NULL;
__object *objtrend=NULL;
__object * trend=NULL;
__object *btn=NULL;
int X_Values[11]={-1,1,2,3,4,5,6,7,8,9,10};
int Y_Values[11]={1,1,4,9,16,25,36,49,64,81,100};

pdl = __object_create("PDLRuntime");
pic=pdl->GetPicture("");
objtrend=pic->GetObject("trend");

btn=pic->GetObject("btn");
btn->Operation=FALSE;

objtrend->TrendIndex = 0;

objtrend->TrendRemove();


//初始化x轴
objtrend->XAxisAutorange =FALSE;
objtrend->XAxisBeginValue =-10;
objtrend->XAxisEndValue=20;


//初始化y轴
objtrend->YAxisAutorange =FALSE;
objtrend->YAxisBeginValue =-10;
objtrend->YAxisEndValue=200;

objtrend->TrendProvider=0;//无数据源,通过脚本赋值
objtrend->TrendAdd =TRUE;

trend=objtrend->GetTrend("趋势 1");

for(i=0;i<=10;i++)
   trend->InsertData(X_Values[i],Y_Values[i]);
btn->Operation=TRUE;

__object_delete(btn);
__object_delete(trend);
__object_delete(objtrend);
__object_delete(pic);
__object_delete(pdl);

}

保存运行,同样可以得到上一篇博客那种曲线。

posted @ 2021-02-11 11:03  来自金沙江的小鱼  阅读(668)  评论(0编辑  收藏  举报