登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:wincc高手,C高手进,急

点击:487 回复:5

#pragma code("Winmm.dll")
VOID WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag);
#pragma code()
if(GetTagBit("Alarm001")!=0)
if(GetTagBit("Alarm002")!=0)
sndPlaySoundA("C:\\WINDOWS\\Media\\ALSNDMGR.WAV",0X1|0X8);
else
     sndPlaySoundA(NULL,0X0);  
报警声音输出,一个变量置位,输出没问题,声音就出来了,但就如上我写多个变量,只有最后一个才又输出,求解,或者说下多变量的脚本怎么写
11-12-17 15:46
WINCC 没有用过,如果是C 格式的话,你的选择语句有问题!用{ } 嵌套是必须的。
11-12-17 16:12
if(GetTagBit("Alarm001")!=0)
if(GetTagBit("Alarm002")!=0)
sndPlaySoundA("C:\\WINDOWS\\Media\\ALSNDMGR.WAV",0X1|0X8);
这样的写法相当于  ALarm1不等于0并且Alarm2不等于0
你应该写成:
if(GetTagBit("Alarm001")!=0)
sndPlaySoundA("C:\\WINDOWS\\Media\\ALSNDMGR.WAV",0X1|0X8);
if(GetTagBit("Alarm002")!=0)
sndPlaySoundA("C:\\WINDOWS\\Media\\ALSNDMGR.WAV",0X1|0X8);
Regards
11-12-17 22:18
楼上应该加一句elseif就对了
11-12-18 16:55

引用 wanwan8778 在 2011/12/18 16:55:49 发言【内容省略】

要实现诸如LZ的并发,显然这里加Elseif是多余的。
Good Luck~
11-12-19 08:55
表情
11-12-19 09:20

工控新闻

更多新闻资讯