Profinet-Diagnose

KNEFI

Level-1
Beiträge
55
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute
ich beschäftige mich derzeit mit einem Projekt indem ich meine Profinet Teilnehmer diagnostizieren möchte. Dies soll auf eine einfache Art und weise passieren. Ich möchte "einfach" nur bei einem Ausfall ein Bit gesetzt bekommen. Ähnlich wie bei dem FC125 dp Diagnose.
Es gibt da den Baustein von Siemens fb126 dieser Baustein ist ein komplett system mit Visualisierung das ich so aber nicht anwenden möchte. Der zugehörige DB in dem die Daten stehen ist nicht weiter beschrieben. (von Siemens gewollt).

Nun meine Frage bevor ich anfange das Wincc bild zu entschlüsseln und den einzelnen Bits im Bild dem DB zuzuordnen. Hat jemand diese entschlüsselung vllt schon gemacht???
Oder hat jemand vllt eine andere Muster lösung um mein Pronlem zu lösen?

Danke schonmal im voraus..........
 
Soweit wie ich weiss, wenn ich dein Problem jetzt richig verstehe, gibt es so etwas schon. Ich hatte erst das vergnügen auf Messebau das ich auch die Profinetdiagnose fahren sollte über das WinCC. Ich hatte allerdings nur den IO Link und unten dran ein Asi-Netz. Also diese Diagnose war völlig für AS-i ausgelegt.:|
 
Hallo,
ich habe aus dem Inst-DB (normalerweise DB126) den Status auf 0 verglichen. Wenn 0 dann Profinet OK.
Code:
      L     "Detail_PNIO_Diag".Systems_Status
      L     0
      ==I   
      =     "PNIO_OK"
In dem Bereich des DB´s stehen auch noch andere Sachen die man für eine einfache Diagnose verwenden kann.

Gruß Schnicker
 
könntest du nicht einfach über den OB86 Baugruppenträgersausfall auswerten
ob eine Baugruppe ausgefallen ist.

Bei der Kopfinformaiton "OB86_EV_CLASS" kannst du dann prüfen was
das für ein erreignis war, der Wert "B#16#39" ist ein kommendes Ereignis
und bei "B#16#38" ist es ein gehendes Ereignis.

Über die Kopfinformation "OB86_FLT_ID" bekommst du dann über den Wert
was da so passiert ist, hier die relaveten Fehler:

Code:
B#16#CA
PROFINET IO-Systemausfall·    OB86_MDL_ADDR: logische Basisadresse des
IO-Controllers·    OB86_Z23:-    Bit 0 bis 10: 0 (Stationsnummer)-
Bit 11 bis 14: IO-System-ID-    Bit 15: 1-    Bit 16 bis 31: 0

B#16#CB
PROFINET IO-Stationsausfall/Stationswiederkehr·    OB86_RESERVED_1:
B#16#C4·    OB86_MDL_ADDR: logische Basisadresse des IO-Controllers· 
OB86_Z23:-    Bit 0 bis 10: Stationsnummer-    Bit 11 bis 14:
IO-System-ID-    Bit 15: 1-    Bit 16 bis 30: logische Basisadresse der
Station-    Bit 31: I/O-Kennung

B#16#CC
PROFINET IO-Stationswiederkehr mit Störung·    OB86_RESERVED_1:
B#16#C4·    OB86_MDL_ADDR: logische Basisadresse des IO-Controllers· 
OB86_Z23:-    Bit 0 bis 10: Stationsnummer-    Bit 11 bis 14:
IO-System-ID-    Bit 15: 1-    Bit 16 bis 30: logische Basisadresse der
Station-    Bit 31: I/O-Kennung

B#16#CD
PROFINET IO-Stationswiederkehr, Sollausbau weicht von Istausbau ab· 
OB86_MDL_ADDR: logische Basisadresse des IO-Controllers·    OB86_Z23:- 
Bit 0 bis 10: Stationsnummer-    Bit 11 bis 14: IO-System-ID-    Bit 15: 1- 
Bit 16 bis 30: logische Basisadresse der Station-    Bit 31: I/O-Kennung

B#16#CE
PROFINET IO-Stationswiederkehr, Fehler bei der Baugruppenparametrierung·
OB86_MDL_ADDR: logische Basisadresse des
IO-Controllers·
OB86_Z23:-    Bit 0 bis 10: Stationsnummer-    Bit 11 bis
14: IO-System-ID-    Bit 15: 1-    Bit 16 bis 30: logische Basisadresse der
Station-    Bit 31: I/O-Kennung
die Taste "F1" gibt weitere Information wenn du den OB86 anklickst
 
Zuviel Werbung?
-> Hier kostenlos registrieren
re

Danke für eure zahlreichen antworten...

Aber es ist irgendwie noch nichts für mich dabei....ich möchte nicht wissen das mein ganzes profinet nicht mehr funktioniert (das bekommt der Kunde schon mit wenn nichts mehr funktioniert) sondern ich möchte den Fehlerhaften teilnehmer identifizieren um den Kunden gezielt dort hinschicken zu können. Darum brauche ich auch keine diagnosen von den Teilnehmern oder sowas sondern nur das sie gestört sind.
 
das müsstest du mal probieren, ist ungetestet

Code:
[B][U]OB86[/U][/B]
[B][/B] 
//Kommendes Ereignis
      L OB86_EV_CLASS
      L B#16#39
      ==I
      = #kommend
 
//gehendes Ereignis
      L OB86_EV_CLASS
      L B#16#38
      ==I
      = #gehend
 
//Fehler Code für PROFINET IO-Stationsausfall/Stationswiederkehr
       L OB86_FLT_ID 
       L B#16#CB
       ==I
       = #Profinet_IO
 
//Teilnehmer Nr aus Bit 0 bis 10 ausmaskieren
      L OB86_Z23
      SRD 22
      T #Teinehmer_Nr
 
Mithilfe der Systemzustandslisten (SZL) kannst du eine Auswertung für die Profinetteilnehmer schreiben die so arbeitet wie der FC125.
 
@Helmut

Ich habe mal versucht dein Programmstückchen in meine CPU zu schreiben...dabei ist mir aufgefallen das der OB86 oder 82 nicht angesprochen werden obwohl keine Projektierte Hardware nicht angeschlossen ist. Die CPU springt in den OB122 und sagt mir in der Diagnosepuffer Peripherie-Zugrifsfehler, lesend aber auch schreibend.
Weißt du wie diese Aufrufe der OB funktionieren?

Habe den OB 122 auch schon gelöscht da ist die CPU in stopp gegangen. und der OB 86 wurde trotzdem nichangesprochen.

Hilfe???
 
Zuviel Werbung?
-> Hier kostenlos registrieren
der OB86 muß aufgerufen werden wenn eine Baugruppe ausfällt
Das Betriebssystem der CPU ruft den OB 86 in folgenden Fällen auf:
· Der Ausfall eines zentralen Erweiterungsgeräts (nicht bei S7-300) wird erkannt (sowohl bei kommendem als auch bei gehendem Ereignis).
· Der Ausfall eines DP-Mastersystems wird erkannt (sowohl bei kommendem als auch bei gehendem Ereignis).
· Der Ausfall einer Station bei Dezentraler Peripherie (PROFIBUS DP oder PROFINET IO) wird erkannt (sowohl bei kommendem als auch bei gehendem Ereignis).
· Sie haben eine Station bei Dezentraler Peripherie (PROFIBUS DP oder PROFINET IO) mit der SFC 12 "D_ACT_DP" mittels MODE=4 deaktiviert.
· Sie haben eine Station bei Dezentraler Peripherie (PROFIBUS DP oder PROFINET IO) mit der SFC 12 "D_ACT_DP" mittels MODE=3 aktiviert.
Haben Sie den OB 86 nicht programmiert und ein solcher Fehler tritt auf, geht die CPU in den Betriebszustand STOP.
Sie können den OB 86 mit Hilfe der SFCs 39 bis 42 sperren bzw. verzögern und wieder freigeben.

schreib doch mal folgenden Code rein um zu kontrolleren ob er wirklich
aufgerufen wird.
Code:
      SET
      = M 10.0

Den Merker 10.0 kannst du dann in einer Variablentabelle beobachten.


OB82 ist für den Diagnosalarm da, dazu muß die Baugruppe Diagnosefähig
sein und diese muß dann auch Scharfgeschaltetet werden.
Wenn eine diagnosefähige Baugruppe, bei der Sie den Diagnosealarm freigegeben haben, eine Änderung ihres Diagnosezustands erkennt, stellt sie eine Diagnosealarmanforderung an die CPU:
· Es liegt eine Störung vor oder eine Komponente muss gewartet werden oder beides (kommendes Ereignis).
· Es liegt keine Störung mehr vor, und keine Komponente muss mehr gewartet werden (gehendes Ereignis).
Daraufhin ruft das Betriebssystem den OB 82 auf.
Der OB 82 enthält in seinen lokalen Variablen die logische Basisadresse sowie eine vier Byte lange Diagnoseinformation der fehlerhaften Baugruppe (siehe folgende Tabelle).
Haben Sie den OB 82 nicht programmiert, geht die CPU in den Betriebszustand STOP.
Sie können den Diagnosealarm-OB mit Hilfe der SFCs 39 bis 42 sperren bzw. verzögern und wieder freigeben.
 
Hallo Helmut!
Ich wollte das ganze hier mal ausprobieren. Dabei ist mit aufgefallen, dass mein OB86 keine Variable OB86_Z23 hat. Mache ich da was falsch?
Gruß Schnicker
 
Zuviel Werbung?
-> Hier kostenlos registrieren
re schnicker

Hey wird bei dir der Ob86 aufgerufen bei einem Baugruppenausfall??? wenn ja kannste mir mal eine übersicht deiner eingebundenen OB geben.
 
Hi nochmal!
Also bei mir wird bei Baugruppenausfall der OB86 aufgerufen - hab´s probiert. Das Programm von Helmut ist auch - bis auf die Teilnehmer_Nr (siehe oben) - voll funktionsfähig.
An OB´s hab´ ich OB81-86, OB100, OB101, OB102 und OB122 drin.
Ach ja - CPU ist ne 414.
Falls ich nochwas probieren soll gib bescheid, ich habe hier gerade Leerlauf und sogar eine komplette Anlage zum Testen.
Gruß Schnicker
 
Also bei wir wird der OB86 nicht aufgerufen. habe allerdings keinen Baugruppenausfall simuliert sondern einfach nur eine Cpu 317f und mehrere teilnehmer. wobei die teilnehmer nur in der Hardware der Cpu existieren.

Also der Fehler ist quasi nicht aufgetreten sondern war schon immer da. wenn du verstehst was ich meine. vllt wird desahlb der Ob 86 nicht aufgerufen. vllt muss der ausfall erst nach dem anlauf der cpu passieren..oderso??
 
Zurück
Oben