TIA S7-1200 als I-Device: Kommunikationsausfall erkennen

DerSigi

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

ich habe zwei S7-1200, die über ProfiNet vernetzt sind, und Daten untereinander austauschen. Hierzu ist eine S7-1200 als I-Device konfiguriert.

Am Master kann ich den Kommunikationsausfall problemlos mittels OB86 und der Funktion 'ModuleStates' erkennen und auswerten.

Aber wie kann die als I-Device konfigurierte Steuerung den Kommunikationsausfall erkennen?

LG
Sigi
 
Geht das Profinet-I-Device bei Verbindungsausfall in STOP? Gibt es Diagnosepuffer-Einträge? Die geben Hinweise, wie man den Ausfall des Controllers erkennen kann. Eventuell wird OB86 und/oder OB83 aufgerufen. (das Verhalten der S7-1200 kenne ich nicht)
Projektierung und Anwendung der PROFINET I-Device Funktion

Ansonsten: als einfachste Lösung ein regelmäßig toggelndes Lebensbit (oder ein Byte oder Word) übertragen und auf Änderung überwachen.

Harald
 
Hallo Harald, hallo Dieter,

nach einem Firmware-Update von 4.1.0 auf 4.1.3 sehe ich nun im Diagnosepuffer einen entsprechenden Eintrag der mit weiterhilft:

2015-11-05 07_35_39-Diagnosepuffer.jpg

Ein OB86 oder OB83 Aufruf gibt es (leider) nicht und so wie es aussieht lässt sich das scheinbar auch nicht projektieren (ich glaube bei der S7-300 geht das?). Diese Bausteine sind nicht vorhanden und die SPS geht im Fehlerfall nicht in Stop.

Ein Lifebit habe ich bereits programmiert, eine ereignisgesteuerte Reaktion auf den Fehler wäre mir aber lieber gewesen.

LG
Sigi
 
Stehen in dem Diagnosepuffereintrag "Ausfall eines IO-Device" (Ereignis-ID 16#02:39CB) auch noch Details? (der bezieht sich auf den Ausfall des Profinet-IO-Controllers?)

Das Ereignis 16#39CB sollte den OB86 auslösen (S7-300/400/1500). Bei S7-1200 kann man da einen OB86 erstellen und in die CPU laden?

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

ich habe es nun so gelöst (und funktioniert auch):

Code:
VAR_TEMP 
   RetVal : Word;   // Return value 'ModuleStates'
   IO_State : Array[0..127] of Bool;   // State-Flags
END_VAR

#RetVal := INT_TO_WORD(ModuleStates(LADDR := 270, MODE := 5, STATE := #IO_State));
"F_State_PN_CommError" := #IO_State[0];

2015-11-05 09_44_28-Systemkonstaten.jpg

Einen OB86 kann man bei der S7-1200 auch erstellen und 'hochladen'. Das mache ich beim Master auch um den Ausfall des I-Device (der Slave S7-1200) zu erkennen und funktioniert dort auch prima.

Ob das nach dem Firmware-Update auch am Slave (I-Device) funktioniert müsste ich nochmal prüfen. Vor dem Firmware-Update hat das auf jeden Fall nicht funktioniert (weshalb ich ja auch diesen Thread gestartet habe).

LG
Sigi
 
Zuletzt bearbeitet:
Zurück
Oben