TIA PN Diagnose

jok3r

Level-2
Beiträge
354
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe gerade mal mit einer PN Diagnose angefangen, nur irgendwie bekomme ich keine Infos über den Status des PN gerätes.
Woran kann das liegen? Habe ich den falschen Mode ausgewählt ? Mein Ziel wäre eben das Kopfmodul einer zb Beckhof IO Baugruppe auszuwerten.
Die informationen die ich brauche wären
Status OK,wartungsanforderung,gestört, nicht vorhanden.

Code:
CASE GET_DIAG(LADDR:=#HW_Device,MODE := 1,CNT_DIAG=>#cnt_Diag ,DIAG:= #SSVisu.Info) OF
    //
    0: // get local slot infomation...
        CASE LOG2GEO(LADDR:=#HW_Device,GEOADDR:=#GEOADDR) OF
            0: //OK
                ;
            ELSE  //Error
                ENO:= FALSE;
                RETURN;
                ;
        END_CASE;
        
       // get name
        #HW_Name(LADDR:= #IOSystem,
                 STATION_NR:= #GEOADDR.STATION,
                 DATA:=#SSVisu.Name);
        IF #HW_Name.ERROR THEN
            ENO:= FALSE;
            RETURN;
        END_IF;
        
        // get info
        IF NOT #readbyStart THEN
            #HW_StationInfo(REQ:=TRUE,
                            LADDR:=#HW_Device,
                            MODE:=1,
                            DATA:=#SSVisu.IP);
        END_IF;
        // finish ???
        IF #HW_StationInfo.ERROR OR #HW_StationInfo.STATUS = 16#7001 OR
            #HW_StationInfo.STATUS = 16#7002 OR
            #HW_StationInfo.STATUS = 16#7000
        THEN
            ENO:= FALSE;
            RETURN;
        END_IF;
        
        #readbyStart := TRUE;
    ELSE 
        ENO:= FALSE;
        RETURN;
END_CASE;

Gruß
 
Also ich mache es mit der Funktion Devicestates. Diese gibt eine Zustandsliste "State" [0..1024] of bool zurück, die man dann weiter auswerten kann, z.B. wie folgt:


#RetVal := DeviceStates(LADDR := #"LADDR", MODE := 1, STATE := "d_PNDP_Zustand".Konfiguriert);

#RetVal := DeviceStates(LADDR := #"LADDR", MODE := 2, STATE := "d_PNDP_Zustand".Gestoert);

#RetVal := DeviceStates(LADDR := #"LADDR", MODE := 3, STATE := "d_PNDP_Zustand".Deaktiviert);

#RetVal := DeviceStates(LADDR := #"LADDR", MODE := 4, STATE := "d_PNDP_Zustand".Vorhanden);

#RetVal := DeviceStates(LADDR := #"LADDR", MODE := 5, STATE := "d_PNDP_Zustand".Wartung);
 
Zurück
Oben