回复:求助WINCC指示灯问题。怎么做一个灯有三种状态!

我加盟

  • 帖子

    109
  • 精华

    0
  • 被关注

    21

论坛等级:侠圣

注册时间:2014-03-25

普通 普通 如何晋级?

发布于 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!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54776条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。