Step 7 IO-Device Diagnose auslesen

TimeOUT

Level-1
Beiträge
125
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe hier ein AS-i Gateway, welches über PROFINET an meine Steuerung angebunden ist.

Ich möchte nun die gleichen Daten, welche ich erhalten, wenn ich in der HW-Konfig auf das AS-i GW Baugruppenzusatnd --> IO-Device Diagnose gehe und mir dort bspw. unter Kanalspezifische Diagnose einen Konfigurationsfehler in Hex-Darstellung anzeigen lassen, auslesen.

Ich habe gehört, dass dies mit dem SFB54 "RALRM" möglich ist.
Mein Aufruf im OB82:

Code:
      L     #OB82_MDL_ADDR
      T     "F_ID_DWord"


      CALL  #RALRM
       MODE  :=2
       F_ID  :="F_ID_DWord"
       MLEN  :=240                      // Max. length of old SFC13 DPMRM_DG
       NEW   :="NEW"
       STATUS:="STATUS"
       ID    :="ID"
       LEN   :="LEN"
       TINFO :=
       AINFO :=InData   // hier Pseudo, da es sich um ein DWORD-Array in einem globalen DB handelt

Als Status bekomme ich 0xC0882400

C0
read constrain conflict
Bei SFB 53 "WRREC": Die Daten können nur im STOP-Zustand der CPU geschrieben werden. Hinweis: Damit ist ein Schreiben durch das Anwenderprogramm nicht möglich. Sie können die Daten nur online mit PG/PC schreiben.
Bei SFB 52 "RDREC": Die Baugruppe führt den Datensatz, aber es liegen entweder noch keine Daten vor oder die Daten können nur im STOP-Zustand der CPU gelesen werden. Hinweis: Falls Daten nur im STOP-Zustand der CPU gelesen werden können, ist eine Auswertung durch das Anwender-programm nicht möglich. In diesem Fall können Sie die Daten nur online mit PG/PC lesen.

Aber ich benutze doch gar keinen der beiden genannten SFB's...?!

Gruß
Timeout
 
Als Status bekomme ich 0xC0882400
C0
read constrain conflict
Da hast Du Dich bei der Status-Interpretation verguckt.
Dein Status bedeuted:
Code:
C0 = STATUS[1] : Function_Num : Funktionskennung. Falls kein DPV1-Protokollelement benutzt wird: B#16#C0
88 = STATUS[2] : Error_Decode : Ort der Fehlerkennung
                                81 bis 8F   Quelle: CPU
                                            B#16#8x zeigt einen Fehler im x-ten Aufrufparameter des SFB an
24 = STATUS[3] : Error_Code_1 : Fehlerkennung
00 = STATUS[4] : Error_Code_2 : herstellerspezifische Erweiterung der Fehlerkennung

Kurz gefasst: Fehler im 8. Aufrufparameter vom RALRM
Das ist der von Dir nicht belegte IN_OUT-Parameter TINFO.


PS: Wie schaffst Du es, eine SFB-Multiinstanz in TEMP zu deklarieren?
Oder ist Dein Code garnicht im OB82?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

erstmal vielen Dank für die richtige Deutung des Fehlers ;)
Jetzt funktioniert es korrekt.

Habe mich vertan. Im OB82 hole ich mir lediglich die Addresse '#OB82_MDL_ADDR' und rufe den SFB54 in einem eigenen FB auf, da ich die Daten dort drinne noch weiter verarbeiten muss.

Gruß
 
Zurück
Oben