OUMAN OUFLEX Modbus hälytyksien käsittely

OUMAN OUFLEX logiikan hälytyksien rekisterit sisältävät lisätiedot jotka on käsiteltävä erikseen


OUMANin Modbus rekisteri (esim. Holding Register 665 = 0x229),  jossa on hälytystieto, sisältää lukuarvoja jotka näyttävät esim. "56"

Modbus ohjeet antaavat seuraava taulukko ja ohjeet:

Arvo "56" bitteissa on 00111000

josta:

LSB

1 - 0  Hälytyksen tila 0 = Ei aktiivinen, 1 = Aktiivinen

2 - 0  Hälytyksen kuittaus 0 = Kuitattu, 1 = Kuittaamaton

3 - 0  Hälytyksen prioriteetti

4 - 1  Hälytyksen prioriteetti

5 - 1  Hälytyksen prioriteetti

6 - 1  Hälytysryhmä

7 - 0

8 - 0

MSB

Kun esimerkiksi se hälytys vaihtuu oman tilan (0 -> 1) ja tulee "kuittamattomaksi", Modbus rekiserin arvo muuttuu vastaavasti "59" eli bitteissa 00111011

Kun se hälytys on kuitattu OUMAN logiikan puolesta (käyttäjäpaneeli), sen Modbus rekiserin arvo muuttuu "57" eli biiteissa 00111001


Kun ala-asemassa on luotu vastaava Modbuslaite ja kommunikointi on OK, IEC projeksissa pitää toteuttaa hälytysketn ja kuittaustilan pisteet seuraavasti:

VAR

fbReg_x3_665 : GenericModbus642FB;


holdreg_665_Bit0 : string(30);
holdreg_665_Bit1 : string(30);


END_VAR

PROGRAM

fbReg_x3_665(Port:=6, Send:=0, Module:=1, StartRegister :=665, RegisterType:=3);
if fbReg_x3_665.DataValid = 1 then



fbReg_x3_665.Reg0 := CoilF_3(id_String := holdreg_665_Bit0, RegValue := fbReg_x3_665.Reg0, BitMask := 16#0001, Force := FALSE, ReleaseOverride := TRUE);

(* holdreg_665_Bit0 sisältää hälytyksen tilan *)


fbReg_x3_665.Reg0 := CoilF_3(id_String := holdreg_665_Bit1, RegValue := fbReg_x3_665.Reg0, BitMask := 16#0002, Force := FALSE, ReleaseOverride := TRUE);


(* holdreg_665_Bit1 sisältää hälytyksen kuittaustilan *)
end_if;


END_PROGRAM