小弟有如下wincc 全局C脚本:
int Operat;
BOOL A,B,C;
A=GetTagBit("MOTOR_ALM_01");
B=GetTagBit("MOTOR_TEMP_01");//中间变量,存储上一次报警信号的状态
C=GetTagBit("MOTOR_RESET_01");
if(A==TRUE & B==FALSE)
{
Operat=MessageBox(NULL, "1#电机故障上升沿", "请确认!!!", MB_YESNO MB_SYSTEMMODAL);
SetTagBit("MOTOR_TEMP_01",GetTagBit("MOTOR_ALM_01"));
if (Operat==IDYES)
SetTagBit("MOTOR_RESET_01",1);
else
SetTagBit("MOTOR_RESET_01",0);
}
else if(A==FALSE & B==TRUE)
{
//Operat=MessageBox(NULL, "下降沿1#电机故障下降沿", "请确认!!!", MB_YESNO MB_SYSTEMMODAL);
SetTagBit("MOTOR_TEMP_01",GetTagBit("MOTOR_ALM_01"));
SetTagBit("MOTOR_RESET_01",0);
}
else
以上脚本可以实现报警上升沿到达时,弹出MessageBox给操作员提示,报警信号的下降沿则不会触发任何动作,脚本触发器为报警到达触发一次。
问题如下:
1、弹出MessageBox后,如果操作员点击“确定”按钮,该报警则被确认,如果点击“取消”按钮,则继续弹出MessageBox,直到操作员点击“确定”按钮,就是说报警信号一直存在且没有被确认则MessageBox一直弹出,则这个循环该怎么写呢。请高手指点一下。
2、实际项目中有很多报警信息,如果短时间内多个报警信号到达,上位机画面会出现多个重叠的MessageBox,怎么做才能当有MessageBox弹出时,不再弹出另外的MessageBox,直到当前没有MessageBox弹出再弹出其他报警MessageBox。
请高手指点一下,主要是第一个问题的循环该怎么写啊