Guide till hur du kan använda firmwarefunktionen AlarmAckF till att räkna antalet okvitterade larm eller för att kvittera larm.
Firmwarefunktionen AlarmAckF kan t.ex. användas för att räkna antalet okvitterade larm i valfri larmklass eller antal okvitterade larm i hela PLC:n. Funktionen kan också användas för att kvittera ett specifikt larm, kvittera alla larm i en specifik larmklass eller för att kvittera alla larm i PLC:n.
I funktionsparametern “Mode” väljer du vad funktionen ska utföra:
Mode := 0 = Kvittera alla okvitterade larmpunkter.
Mode := 1 = Kvittera alla okvitterade larmpunkter, förutom säkerhetspunkter.
Mode := 2 = Kvittera en specific larmpunkt. Sätt larmets punkt-id med strParameter.
Mode := 3 = Kvittera alla larmpunkter i en specific larmklass. Sätt larmklassen med strParameter.
Mode := 4 = Kvittera alla larmpunkter i en specific prioritetsgrupp. Sätt prioritets-nummer med intParameter.
Mode := 100 = Räkna antalet okvitterade larmpunkter.
Mode := 101 = Räkna antalet okvitterade larmpunkter, förutom säkerhetspunkter.
Mode := 102 = Kontrollera om en specific larmpunkt är okvitterad. Sätt punkt-id till larmpunkten med strParameter.
Mode := 103 = Räkna antalet okvitterade larmpunkter i en specific larmklass. Sätt namnet på larmklassen med strParameter.
Mode := 104 = Räkna antalet okvitterade larmpunkter i en specific prioritetsgrupp. Sätt prioritetsnummer med intParameter.
Nedan följer några exempel på användning av funktionen.
Exempel 1:
Funktionen kvitterar alla larm när man trycker på en knapp i grafiken. Knappen sätts till status off efter kvittering av larm.
(*Läs knappens status*)
iAllAlarmsAck := GetDigitalPointF('TEST_ALARM_ALL_ACK_FI');
(*Om knappen har tryckts, kör koden *)
if (iAllAlarmsAck = 1) then
(* Kvittera alla larm *)
iResult := AlarmAckF(Mode:=0, intParameter:=1, strParameter:='abc');
(*Återställ knappens status till off*)
iResult := SetDigitalPointF(0, 4, 'TEST_ ALARM_ALL_ACK_FI');
end_if;
Exempel 2:
Funktionen används för att kvittera ett specifikt larm när man trycker på en knapp i grafiken.
Knappen sätts till status off efter kvittering av larm.
(*Läs knappens status*)
iSingleAck := GetDigitalPointF('TEST_ALARM_SINGLE_ACK_FI');
(*Om knappen har tryckts, kör koden *)
if (iSingleAck = 1) then
(*Kvittera en specifik larmpunkt*)
iResult := AlarmAckF(Mode:=2, intParameter:=1, strParameter:='TEST_ALARM_A1_FH');
(*Återställ knappens status till off*)
iResult := SetDigitalPointF(0, 4, 'TEST_ALARM_SINGLE_ACK_FI');
end_if;
Exempel 3:
Funktionen används för att räkna antalet okvitterade larm i en specifik larmklass.
(*Läs antal okvitterade larm i en specifik larmklass*)
iAClassCount := AlarmAckF(Mode:=103, intParameter:=1, strParameter:='A-CLASS');
(*Visa resultatet i grafiken*)
iResult := SetDigitalPointF(iAClassCount, 1, 'TEST_A_ALARM_M');
Exempel 4:
Funktionen används för att räkna antalet okvitterade larm med en specifik larmprioritet.
(*Läs antal okvitterade larm med en specifik larmprioritet.*)
iPrio3Count := AlarmAckF(Mode:=104, intParameter:=3, strParameter:='abc');
(*Display the value on graphics*)
iResult := SetDigitalPointF(iPrio3Count, 1, 'TEST_3_ALARM_M');