背景: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 }
注:
sprintf(szObjTemp1Name,"UT[%d]_Temp1",i); // 定义对象名称
sprintf(szTemp1Link,"UT[%d]_Temperature1_4",i);// 定义变量名称
strcpy(linkinfo.szLinkName, szTemp1Link);//变量名称赋给linkinfo的szLinkName属性
SetLink(lpszPictureName,szObjTemp1Name,"OutputValue",&linkinfo);//对象绑定变量