恭喜,你发布的帖子
发布于 2015-08-04 15:03:29
3楼
报警处理
MsgEvID1 {S7_a_type:='alarm_s';S7_server:='alarm_archiv'} :DWORD:=DW#16#0;
MsgEvID2 {S7_a_type:='alarm_s';S7_server:='alarm_archiv'} :DWORD:=DW#16#0;
MsgEvID3 {S7_a_type:='alarm_s';S7_server:='alarm_archiv'} :DWORD:=DW#16#0;
....
//Alarm Message
MsgEff1[0]:=TripOut;
MsgEff1[1]:=MonDynErr OR MonStaErr;
MsgEff1[2]:=ExtMsg1;
MsgEff1[3]:=FALSE;
MsgEff1[4]:=FALSE;
MsgEff1[5]:=FALSE;
MsgEff1[6]:=FALSE;
MsgEff1[7]:=FALSE;
IF (RunUpCyc = 0) AND (MsgEffOld<>MsgEff)THEN
IF (MsgEff AND 16#01) <> ( MsgEffOld AND 16#01)THEN
iRet1:= ALARM_SQ(SIG := MsgEff1[0] // IN: BOOL
,ID :=W#16#EEEE // IN: WORD
,EV_ID :=MsgEvID1 // IN: DWORD
,SD :=SD1 // IN: ANY
); // INT
END_IF;
IF (MsgEff AND 16#02) <> ( MsgEffOld AND 16#02) THEN
iRet2:= ALARM_SQ(SIG :=MsgEff1[1] // IN: BOOL
,ID :=W#16#EEEE // IN: WORD
,EV_ID :=MsgEvID2 // IN: DWORD
,SD :=SD2 // IN: ANY
); // INT
END_IF;
IF (MsgEff AND 16#04) <> ( MsgEffOld AND 16#04)THEN
iRet3:= ALARM_SQ(SIG :=MsgEff1[2] // IN: BOOL
,ID :=W#16#EEEE // IN: WORD
,EV_ID :=MsgEvID3 // IN: DWORD
,SD :=SD3 // IN: ANY
); // INT
END_IF;
END_IF;
MsgEffOld:=MsgEff ;
程序扫描前几个周期抑制报警,报警功能块只有在出现反值的时候才被调用,即只有在报警消息的到达和离开的本个周期。
报警过滤:
请填写推广理由:
分享
只看
楼主