WinCC 中批量绑定变量

背景:WinCC中有大量对象需要绑定变量。

      这些变量背景和对象名字都是有一定规律的。

      例如:发酵罐的批次号,温度等。

 

使用LINKINFO函数,具体使用方法参见WinCC帮助文件

 1 include "apdefap.h"
 2 void OnOpenPicture(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 3 {
 4 int i;
 5 char szObjStepNrName[30];
 6 char szStepNrLink[30];
 7 
 8 char szObjBatchNrName[30];
 9 char szBatchNrLink[30];
10 char szObjLevelName[30];
11 char szLevelLink[30];
12 char szObjTemp1Name[30];
13 char szTemp1Link[30];
14 char szObjTemp2Name[30];
15 char szTemp2Link[30];
16 char szObjTemp3Name[30];
17 char szTemp3Link[30];
18 
19 LINKINFO linkinfo;
20 linkinfo.LinkType = 1;
21 linkinfo.dwCycle = 0;
22 
23     for(i=1;i<=33;i++)
24     {
25              sprintf(szObjStepNrName,"UT[%d]_StepNr",i);
26              sprintf(szStepNrLink,"UT[%d]_StepNr_4",i);
27              strcpy(linkinfo.szLinkName, szStepNrLink);
28              SetLink(lpszPictureName,szObjStepNrName,"OutputValue",&linkinfo); 
29 
30              sprintf(szObjBatchNrName,"UT[%d]_BatchNr",i);
31              sprintf(szBatchNrLink,"UT[%d]_BatchNr_4",i);
32              strcpy(linkinfo.szLinkName, szBatchNrLink);
33              SetLink(lpszPictureName,szObjBatchNrName,"OutputValue",&linkinfo); 
34 
35              sprintf(szObjLevelName,"UT[%d]_Level",i);
36              sprintf(szLevelLink,"UT[%d]_Level_4",i);
37              strcpy(linkinfo.szLinkName, szLevelLink);
38              SetLink(lpszPictureName,szObjLevelName,"OutputValue",&linkinfo); 
39 
40              sprintf(szObjTemp1Name,"UT[%d]_Temp1",i);
41              sprintf(szTemp1Link,"UT[%d]_Temperature1_4",i);
42              strcpy(linkinfo.szLinkName, szTemp1Link);
43              SetLink(lpszPictureName,szObjTemp1Name,"OutputValue",&linkinfo); 
44 
45              sprintf(szObjTemp2Name,"UT[%d]_Temp2",i);
46              sprintf(szTemp2Link,"UT[%d]_Temperature2_4",i);
47              strcpy(linkinfo.szLinkName, szTemp2Link);
48              SetLink(lpszPictureName,szObjTemp2Name,"OutputValue",&linkinfo);
49 
50              sprintf(szObjTemp3Name,"UT[%d]_Temp3",i);
51              sprintf(szTemp3Link,"UT[%d]_Temperature3_4",i);
52              strcpy(linkinfo.szLinkName, szTemp3Link);
53              SetLink(lpszPictureName,szObjTemp3Name,"OutputValue",&linkinfo);
54     }
55 }
ex

注:

sprintf(szObjTemp1Name,"UT[%d]_Temp1",i);  // 定义对象名称

sprintf(szTemp1Link,"UT[%d]_Temperature1_4",i);// 定义变量名称

strcpy(linkinfo.szLinkName, szTemp1Link);//变量名称赋给linkinfo的szLinkName属性

SetLink(lpszPictureName,szObjTemp1Name,"OutputValue",&linkinfo);//对象绑定变量

posted @ 2017-03-03 17:23  倪晓磊的博客园  阅读(1901)  评论(0编辑  收藏  举报