发布于 2015-05-19 16:50:09
9楼
两个BOOL做 逻辑,11为运行,10或01为 故障,00为停止。在动态向导里找“基于表格的颜色动态”
例如:
#define TAG_0 "TAG1"
#define TAG_1 "TAG2"
#define TAG_2 "TAG1"
#define TAG_3 "TAG2"
#define TAG_4 "TAG1"
#define TAG_5 "TAG2"
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
//BEGIN DYNAMIC WITH PRIORITY (FARBEN)
//Trigger: 0
//Instancename: S7$程序(2)/DI.
/*BEGIN Varinfo
16449280 "TAG_0"(1) && "TAG_1"(0)
64255 "TAG_0"(0) && "TAG_1"(1)
65280 "TAG_0"(1) && "TAG_1"(1)
0 Tag connection fault
255 default
END Varinfo*/
DWORD dwVarStatus = 0;
DWORD dwTotalStatus = 0;
BYTE _v1;
BYTE _v2;
BYTE _v3;
BYTE _v4;
BYTE _v5;
BYTE _v6;
_v1 = GetTagByteState(TAG_0, &dwVarStatus);
dwTotalStatus = dwVarStatus;
_v2 = GetTagByteState(TAG_1, &dwVarStatus);
dwTotalStatus = dwVarStatus;
_v3 = GetTagByteState(TAG_2, &dwVarStatus);
dwTotalStatus = dwVarStatus;
_v4 = GetTagByteState(TAG_3, &dwVarStatus);
dwTotalStatus = dwVarStatus;
_v5 = GetTagByteState(TAG_4, &dwVarStatus);
dwTotalStatus = dwVarStatus;
_v6 = GetTagByteState(TAG_5, &dwVarStatus);
dwTotalStatus = dwVarStatus;
if (dwTotalStatus)
return(0);
if ( (_v1 & 0x1) && !(_v2 & 0x1))
return (16449280);
else if ( !(_v3 & 0x1) && (_v4 & 0x1))
return (64255);
else if ( (_v5 & 0x1) && (_v6 & 0x1))
return (65280);
else
return (255);
Always save before download!