Step 7 PN-IO Diagnose mit FB126 liefert keine Daten

Leto

Level-1
Beiträge
53
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen.

Ich habe ein kleines Problem mit der Diagnose meiner Profinet-IO Devices über den FB126. Ich würde gerne Diagnosedaten über den besagten Baustein auslesen, bekomme jedoch keinerlei Infos über meine angeschlossenen Geräte.

Ich habe mir die PNIODiag Bibliothek von Siemens heruntergeladen und anhand der Hilfedatei die nötigen Bausteine eingefügt. Leider ohne Erfolg.

Ich habe das Testprojekt mal angefügt. Vielleicht sieht einer von euch ja den Fehler.

Anhang anzeigen Test_pro.zip

Vielen Dank im voraus.

Gruß
 
iich habe das projekt mir nicht angeschaut. erste vermutung idt, du hast die aufrufe in den anderen ob´s vergessen. vergisst ein kolege auch immer :)
 
Hallo, nochmal ich ;)

Ich habe den ersten Fehler nun gefixt und bekomme ordnungsgemäß die Rückmeldung meiner angeschlossenen PN-Devices.

Jetzt habe ich eine weitere Frage:
Beim ziehen eines IO-Modul's an einer ET200s Anschaltung gibt mein FB ordnungsgemäß den Fehler "Gestört" aus. Beim Stecken des IO-Modul's verschwindet der Fehler automatisch wieder und der FB zeigt den Zustand "Gestört gewesen" an. Soweit alles wunderbar.

Wann wechselt der Status wieder auf "OK" oder bleibt der Status "Gestört gewesen" bis zum nächsten Neustart der CPU?

Gruß
 
Ich muss die Tage auch diesen FB einsetzen. Wo bekommst du den Zustand her? Aus der HMI?
Gibt es ein Sammelbit das ein Teilnehmer gestört ist damit ich in den Störmeldungen zumindest mal darauf hinweisen kann?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Volker

Ich hab leider bei dem FB126 auch so meine Probleme, k.A., was genau Siemens sich dabei denkt.
Der FB ist in SCL geschrieben und geschützt, der zugehörige IDB kommt ohne Variablenbezeichnungen daher, auch ein "Neu erzeugen" hat bei mir nichts gebracht, so dass man dort recht wenig findet.
Man kann aber in den zugehörigen WinCCFlex-Bildern ein wenig "schnüffeln".
Folgendes haben wir dann eingesetzt, um eine Bitmeldung für einen Profinet-Fehler auszugeben:

Code:
O(    
      L     DB126.DBW 1642
      L     66                          // Wartung
      ==I   
      )     
      O(    
      L     DB126.DBW 1642
      L     98                          // Wartung
      ==I   
      )     
      O(    
      L     DB126.DBW 1642
      L     132                         // Gestört
      ==I   
      )     
      O(    
      L     DB126.DBW 1642
      L     164                         // Gestört
      ==I   
      )     
      O(    
      L     DB126.DBW 1642
      L     264                         // Ausgefallen
      ==I   
      )     
      O(    
      L     DB126.DBW 1642
      L     296                         // Ausgefallen
      ==I   
      )     
      O(    
      L     DB126.DBW 1642
      L     528                         // Deaktiviert
      ==I   
      )     
      O(    
      L     DB126.DBW 1642
      L     560                         // Deaktiviert
      ==I   
      )     
      =     #error

Verwendet ist V1.8 des FB126 vom 08.06.11.
 
Ich hab leider bei dem FB126 auch so meine Probleme, k.A., was genau Siemens sich dabei denkt.
Das wüsste ich auch gerne. In der Visu ist ja Symbolik vorhanden. Also ist das nachträglich bewußt entfernt worden.

Hab den Baustein mal entschützt und mal reinzugucken. Aber sobald ich den öffne bekomme ich die Meldung das der Baustein zu lang ist.

Und wie kommst du auf die Adresse DBW 1642? Die sehe ich in der Visu nirgends.
Welcher Wert welchem Status entspricht kann man ja Stationsübersicht entnehmen.
 
Hab den Baustein mal entschützt und mal reinzugucken. Aber sobald ich den öffne bekomme ich die Meldung das der Baustein zu lang ist.

Und wie kommst du auf die Adresse DBW 1642? Die sehe ich in der Visu nirgends.
Welcher Wert welchem Status entspricht kann man ja Stationsübersicht entnehmen.

Dann speichere den Baustein mit Quelle generieren,
So kann dir jeder ASCII Editor helfen.
Das mit dem DW1642 habe ich auch schon gefunden, doch verstehen tue ich es nicht.
Denn dieses Wort wird nie beschrieben.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

es gibt eine PDF Datei, die den FB126, DB200 kurz beschreibt. Dort ist die Adresse DB126.DBW 1642 zu finden. Aus diesem WORD kann man den Zustand des 1. Profinetsystem's auslesen (100). Das 2. System (101) wäre dann das WORD DB126.DBW 1644 usw.

Wenn du keine Werte im
DB126.DBW 1642 hast, funktioniert entweder dein Fb126 nicht korrekt oder du hast keine System 101.


 

Anhänge

  • FB126_PNIODiag_de.pdf
    149,6 KB · Aufrufe: 207
Muss ich heute Abend mal testen.
Bisher ging es, den offenen Baustein im Editor zu öffnen und dann beim speichern mit generieren einer Quelle speichern.
Es ist schon toll, dass Siemens beschreibt was ankommen SOLL. Doch keinen Hinweis wie verfahren werden soll, wenn es einmal nicht klappt oder die Ergebnisse nicht schlüssig sind.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich hab das pdf mal überflogen. so ganz klar ist mir das aber noch nicht.

nehmen wir mal ein ganz normales profibus netz mit mehreren teilnehmern (sagen wir mal adressen 2,4 und 10).
dies entspricht dann dem dp-mastersystem 1. korrekt?
im dbw 1578 wird der gesamtzustand aller teilnehmer gespeichert welche an diesem bus hängen. ist das so?
was wenn nun 2 teilnehmer ausfallen oder einer war ausgefallen und nun fällt ein anderer aus. :confused:
was steht dann in dem dbw?

im db 200 wird in aufsteigender reihenfolge nun der zustand jeder einzelnen station abgelegt.
das wäre in diesem fall
dbw 0 -> teilnehmer mit adr 2
dbw 2 -> teilnehmer mit adr 4
dbw 4 -> teilnehmer mit adr 10

hätte ich jetzt noch ein zusätzliches profinet-netz wäre das das profinet io-system 100 welches seinen gesamtstatus in dbw 1640 schreibt.
die erste adresse der einzelnen statusinfos liegen wieder im db200 beginnend ab der adresse 512 da ja für jedes system 512 worte reserviert werden.

ist das so?
 
Hallo, nochmal ich ;)

Ich habe den ersten Fehler nun gefixt und bekomme ordnungsgemäß die Rückmeldung meiner angeschlossenen PN-Devices.

Jetzt habe ich eine weitere Frage:
Beim ziehen eines IO-Modul's an einer ET200s Anschaltung gibt mein FB ordnungsgemäß den Fehler "Gestört" aus. Beim Stecken des IO-Modul's verschwindet der Fehler automatisch wieder und der FB zeigt den Zustand "Gestört gewesen" an. Soweit alles wunderbar.

Wann wechselt der Status wieder auf "OK" oder bleibt der Status "Gestört gewesen" bis zum nächsten Neustart der CPU?

Gruß

Hallo Leto,

wie hast Du Deinen Fehler behoben bekommen?
Ich stehe vor einer ähnlichen Situation: Die Diagnose sagt bei mir gar nichts.

Danke + Viele Grüße.
 
hallo leto.

muss auch eine pnio Auswertung machen, unser eingener Baustein ist aber müll, wie hast du es gemacht? hast ein muster vielleicht?
lg
 
Die Auswertung für WINCC oder flexible, die im Siemens Paket dabei ist, war mir zu aufwendig.
Ich nehme nur die Werte aus DB126 und DB200 für meine Teilnehmer, lege sie in einem
extra DB ab. Da kann ich sie auch deklarieren.

Dann in WINCC V13 ein paar bunte Felder erstellen und für die Werte die der FB zurück
gibt die entsprechenden Farben mittels Animation darstellen.
Daneben habe ich noch eine Legende gestellt wo mittels Textliste der entsprechende
Zustand der einzelnen Teilnehmer angezeigt wird.

Man muss nur verstanden haben wo die Werte im DB126 und DB200 stehen.
 
Die Auswertung für WINCC oder flexible, die im Siemens Paket dabei ist, war mir zu aufwendig.

Man muss nur verstanden haben wo die Werte im DB126 und DB200 stehen.

Warum aufwendig?
Man muß doch die Bilder nur rüberkopieren ind fertig.
Aber egal, natürlich kann man die Anzeige auch selbst machen, wenn man das will.
Und dann muß man auch wissen, was da so in den DB landet. :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich muss dieses Thema nochmal hoch holen. Ich habe jetzt die erste Anlage mit Profinet an der ich eine genaue Diagnose des ausgefallenen Slaves möchte. Heißt also, dass ich gerne wissen würde, wenn der Slave gestört ist, welcher Steckplatz den Fehler verursacht. Mit den FB 125 ging das recht problemlos. Aktuell habe ich mir einen eigenen FC laufen der mir per SZL die Stationen abbildet. Ich habe nun schon einige Stunden mit diversen Dokumenten verbracht, aber so recht komme ich auf keinen grünen Zweig. Nun meine Frage. hat von euch jemand einen Tipp wie das Funktioniert oder kann mir da einen kleinem Beispielcode zeigen. Ich möchte keinen Fertigen Baustein sondern nur in die richtige Richtung gestoßen werden.

Natürlich könnte ich dem FB 126 verwenden. Nur ist mir dieser etwas zu oversized.

Danke
 
Hi.

Also ich hab da gerade auch einen kleinen Baustein geschrieben, der mir die Slaves auswertet.

Der DB200 wird in der CPU ja automatisch angelegt und enthält 512 Byte Pro Mastersystem
Du musst den Offset des Slaves berechnen und dann die Bits auswerten.
Mastersystem 1 => Masteroffset = Mastersystem -1 * 512
Slave 5 => Slaveoffset = Slave -1 * 2
Also Adresse=(System -1) * 512 + (Slave -1) * 2
Mastersystem 1
Slave 1 DB200.DBW0
Slave 2 DB200.DBW2
Slave 5 DB200.DBW8

Mastersystem 2
Slave 1 DB200.DBW512
.
.
.

Die Bits sind in der PDF beschrieben.
Bit 0 -> OK
Bit 2 -> gestört
Bit 3 -> ausgefallen
Bit 9 -> deaktiviert

Zustand des DP Mastersystemes wird aus dem DB 126 ab Adresse 1578 Wortweise ausgelesen.
Mastersystem 1 = DB126.DBW1578
Profinet Mastersysteme ab Adresse 1642
Profinetmastersystem 1 = DB126.DBW1642
Bit 0 -> OK
Bit 2 -> gestört
Bit 3 -> ausgefallen

Gruß
Thomas
 
Ja das ich weiß welcher Slave gestört ist, das habe ich ja schon. Nur möchte ich jetzt gerne wissen welcher Steckplatz an diesem Slave ausgefallen ist. Da der Slave eventuell nur ein Busumsetzer ist und die Steckplätze meine eigentlichen Teilnehmer sind.
 
Zurück
Oben