TIA Ob121 122

ssppss

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo in die Runde,

Wenn man den ob121 122 eingefügt hat werden diese ja bei einem Programmier Hardware Fehler zyklisch, je nach Priorität, vor oder nach dem OB1 aufgerufen.

So wie ich das verstanden habe bleibt der Aufruf jeweils solange aktiv, solange der Fehler ansteht. Steht der Fehler nicht mehr an, wird der Aufruf beendet.

Nun habe ich in diversen Foren und Beiträgen gelesen, dass man den Aufruf löschen muss. Konnte aber diesbezüglich nichts in der TIA Hilfe finden.

Kann mir hier jemand auf die Sprünge helfen? Muss man wirklich den Aufruf aktiv im Programm löschen oder muss ich mich da um nichts kümmern wenn OB121 u 122 eingefügt sind. Natürlich würde ich eine kleine Diavnose in den OBs programmieren. Hintergrund des Ganzen ist, dass ich vermeiden will, dass die PLC im Fehlerfall in STOP geht.

Grüße
 
Ich gehe mal davon aus, du redest von einer 300/400er CPU.
Muss man wirklich den Aufruf aktiv im Programm löschen
Die Bausteine werden automatisch durch das Betriebssystem aufgerufen.

So wie ich das verstanden habe bleibt der Aufruf jeweils solange aktiv, solange der Fehler ansteht. Steht der Fehler nicht mehr an, wird der Aufruf beendet.
Der/die Bausteine werden bei jedem einzelnen Fehler aufgerufen.

je nach Priorität, vor oder nach dem OB1 aufgerufen.
Nein, genau zum Zeitpunkt des Fehlers.

PS: Nach dem OB1 ist vor dem OB1
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn man den ob121 122 eingefügt hat werden diese ja bei einem Programmier Hardware Fehler zyklisch, je nach Priorität, vor oder nach dem OB1 aufgerufen.
Nein, die werden bei jedem Programmier- oder Peripheriezugriffs-Fehler sofort aufgerufen.

Nun habe ich in diversen Foren und Beiträgen gelesen, dass man den Aufruf löschen muss. Konnte aber diesbezüglich nichts in der TIA Hilfe finden.

Kann mir hier jemand auf die Sprünge helfen? Muss man wirklich den Aufruf aktiv im Programm löschen oder muss ich mich da um nichts kümmern wenn OB121 u 122 eingefügt sind. Natürlich würde ich eine kleine Diavnose in den OBs programmieren.
OBs generell und so auch OB121 und OB122 kann man gar nicht aufrufen und daher auch nicht den Aufruf löschen.
Vielleicht hast Du was gelesen, daß jemand die Fehlerstelle im Programm nicht finden konnte und ihm wurde geraten, daß er die OB12x online in der CPU löschen sollte, damit die CPU in STOP geht und er die Information bekommt, wo die CPU in STOP gegangen ist?

Hintergrund des Ganzen ist, dass ich vermeiden will, dass die PLC im Fehlerfall in STOP geht.
Ja, das ist wohl der Hintergrund bei vielen Programmierern. Scheixx egal was für Folgeschäden passieren können, Hauptsache die CPU geht nicht in STOP ;)
Ernsthaft: Programmierfehler sollten nicht durch OB121 vertuscht werden und nach der IBN online gelöscht werden oder nach kurzer Diagnose oder Aufrufzähler/HMI-Meldung zu STOP führen. Gute Programme kommen ohne OB121 aus. Nur wo häufig Programmänderungen im RUN vorgenommen werden, kann ein vorhandener OB121 vor den Folgen von unkonzentriert arbeitenden Programmierern schützen...
Peripheriezugriffsfehler können immer mal unerwartet durch Kabelbrüche oder Versorgungsspannungsausfall bei Peripheriegeräten passieren. Es ist absolut sinnvoll, einen OB122 in die CPU zu laden. Es sollte aber überlegt werden, welche Peripherieausfälle große Folgeschäden verursachen können (z.B. Ausfall Wegmeßsystem) und ob es da nicht besser ist, die CPU in STOP zu schicken.

Es kommt vermutlich auch noch darauf an, was für eine CPU Du hast. Ich kann gerade nicht nachschauen, doch ich glaube, S7-1200 (und weitere CPUs?) gehen auch ohne die OB121 und OB122 nicht in STOP?

Harald
 
Ich kann gerade nicht nachschauen, doch ich glaube, S7-1200 (und weitere CPUs?) gehen auch ohne die OB121 und OB122 nicht in STOP?
Quelle
Im Vergleich zu S7-300/400 gibt es bei S7-1200/1500 weniger Kriterien, die zum Betriebszustand "STOP" führen. Durch die geänderte Konsistenzprüfung im TIA Portal kann der Betriebszustand "STOP" bei den Steuerungen S7-1200/1500 in den meisten Fällen schon im Vorfeld ausgeschlossen werden. Die Konsistenz von Programmbausteinen wird schon beim Kompilieren im TIA Portal geprüft. Diese Vorgehensweise macht die S7-1200/1500 Steuerungen "fehlertoleranter" als ihre Vorgänger.

Vorteile:

Es gibt nur drei Fehlersituationen, die die S7-1200/1500 Steuerungen in den Betriebszustand STOP versetzen. Dadurch ist das Fehlermanagement übersichtlicher und einfacher zu programmieren.

Eigenschaften: (siehe Sceenshot)

Fehler OBs:

  • OB80 "Zeitfehler-OB" ("Time error interrupt") wird vom Betriebssystem aufgerufen, wenn die maximale Zykluszeit der Steuerung überschritten wird.
  • OB121 "Programmierfehler-OB" ("Programming error") wird vom Betriebssystem aufgerufen, wenn ein Fehler bei der Programmabarbeitung auftritt.
Zusätzlich wird bei jedem Fehler automatisch ein Eintrag im Diagnosepuffer erstellt.

Anmerkung:

Bei S7-1200/1500 Steuerungen gibt es noch weitere programmierbare Fehler-OBs (Diagnosefehler, Baugruppenträgerausfall, usw.).Weitere Information über die Fehlerreaktionen von S7-1200/1500 befinden sich in der Online Hilfe des TIA Portals unter "Ereignisse und OBs" ("Events and OBs").
Komisch, da steht was von drei Fehlersituationen beider die CPU in Stop geht, gelistet sind aber nur zwei. Das Bild unten in dem FAQ kann ich mir nicht anschauen ( Handy ).
 
Hatte wohl vergessen zu erwähnen das es sich um 1500er PLCs handelt...

Also im TIA Funktionshandbuch steht Folgendes bezüglich OB121 (siehe angehängtes Bild)

Also für mich heisst das, dass er zyklisch nach eingestellter Prio aufgerufen wird und NICHT sofort beim Eintritt des Fehlers. Wenn seine Prio höher als OB1 Prio ist, wird OB1 unterbrochen. Wenn seine Prio niedriger ist, wird er erst nach OB1 Ende im Fehlerfall aufgerufen oder nicht????
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hatte wohl vergessen zu erwähnen das es sich um 1500er PLCs handelt...

Also im TIA Funktionshandbuch steht Folgendes bezüglich OB121 (siehe angehängtes Bild)

Also für mich heisst das, dass er zyklisch nach eingestellter Prio aufgerufen wird und NICHT sofort beim Eintritt des Fehlers. Wenn seine Prio höher als OB1 Prio ist, wird OB1 unterbrochen. Wenn seine Prio niedriger ist, wird er erst nach OB1 Ende im Fehlerfall aufgerufen oder nicht????
OB121.PNG
 
Also im TIA Funktionshandbuch steht Folgendes bezüglich OB121 (siehe angehängtes Bild)

Also für mich heisst das, dass er zyklisch nach eingestellter Prio aufgerufen wird und NICHT sofort beim Eintritt des Fehlers. Wenn seine Prio höher als OB1 Prio ist, wird OB1 unterbrochen. Wenn seine Prio niedriger ist, wird er erst nach OB1 Ende im Fehlerfall aufgerufen oder nicht????
Das würde ich persönlich an einer echten S7-1500 ausprobieren/testen. Man muß nicht alles glauben, was in den Siemens- und besonders TIA-Handbüchern steht. Oft steht da auch kompletter Unsinn... :cool: ;)

Harald
 
Das habe ich getestet und es ist tatsächlich so. Das war ja auch gar nicht meine Frage. Meine Frage war lediglich, ob der Aufruf aktiv gelöscht werden muss, weil ich das im Inet gelesen hatte. Hier z.B.

https://spsexperten.de/OB-Organisationsbaustein-im-TIA-Portal

Habe aber diesbezüglich in der TIA Hilfe, wie gesagt, nichts gefunden. Wollte hier nur auf Nummer sicher gehen, nicht iein Blödsinn zu machen....

Mir ist schon klar, dass solche Fehler nicht durch OB121/122 vertuscht werden sollten. Das soll auch nicht der Grund sein. Wir sind ca. 10 Programmierer im Serienbau. Da kann sowas schonmal unerwartet beim Kunden passieren. Und gerade deswegen wollen wir Schäden vermeiden. Es könnte ja z.B. bei laufender Pumpe im Fehlerfall ohne OB121/122 die PLC in STOP gehen. Das könnte zur Überflutung führen.

Außerdem soll ja gerade durch diese OB121/122 Aufrufe eine Diagnose programmiert werden, wo eine Meldung am HMI ausgegeben wird + ein STOP an der Maschine. Aber das SPS Programm soll weiter bearbeitet werden um gerade Fehler wie Dauerlauf von Pumpen zu vermeiden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine Frage war lediglich, ob der Aufruf aktiv gelöscht werden muss, weil ich das im Inet gelesen hatte. Hier z.B.

https://spsexperten.de/OB-Organisationsbaustein-im-TIA-Portal
Also da steht nichts, daß man den Aufruf löschen soll. Man soll den OB aus der CPU löschen.
Wie schon weiter oben geschrieben, kann man OB-Aufrufe nicht löschen, weil es die gar nicht gibt. Oder hast Du in Deinem Programm OB-Aufrufe gefunden, die Du löschen könntest?
 
Hatte wohl vergessen zu erwähnen das es sich um 1500er PLCs handelt...

Also im TIA Funktionshandbuch steht Folgendes bezüglich OB121 (siehe angehängtes Bild)

Also für mich heisst das, dass er zyklisch nach eingestellter Prio aufgerufen wird und NICHT sofort beim Eintritt des Fehlers. Wenn seine Prio höher als OB1 Prio ist, wird OB1 unterbrochen. Wenn seine Prio niedriger ist, wird er erst nach OB1 Ende im Fehlerfall aufgerufen oder nicht????
Anhang anzeigen 69671
Also ssppss, mit dir würde ich auf der Baustelle ganz sicher richtig Krawall haben. Ich hasse Leute, die einfach irgendwas aus der Luft greifen und in eine Aussage rein interpretieren. Ja, der OB wird nach Priorität bearbeitet. Aber wo steht, dass sich das nur auf den OB1 bezieht? Der OB1 (und die möglichen anderen zyklischen OBs) haben eine sehr niedrige Priorität. Aber all die anderen Zeit- oder Fehler getriggerten OBs können eine höhere Priorität haben. Schau dir mal an welche OBs es gibt.

Edit: "nur" dazu
 
Das habe ich getestet und es ist tatsächlich so.
Keine Ahnung was du getestet hast aber die OB´s ( 121/122 ) werden bei einem Fehler sofort aufgerufen und nicht erst wie von dir behauptet/vermutet am Zyklusende.

Und das diese OB´s nach ihrer PRIO abgearbeitet werden ist auch klar denn diese OB´s können auch unterbrochen werden ( z.B. durch OB35... )
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also in 1200ern muss ich den 121er projektieren damit ich eben Programmierfehler mitbekomme und bei den 1500ern ist es genau anders herum? Muss ich auch irgendwie nicht verstehen, aber gut zu wissen!
Verstehe ich auch nicht, warum das Systemverhalten hier so unterschiedlich angelegt wurde.
 
Das habe ich getestet und es ist tatsächlich so. Das war ja auch gar nicht meine Frage. Meine Frage war lediglich, ob der Aufruf aktiv gelöscht werden muss, weil ich das im Inet gelesen hatte. Hier z.B.

https://spsexperten.de/OB-Organisationsbaustein-im-TIA-Portal
Um das jetzt nicht weiter aufzublähen und nicht zu Despektierlichkeiten zu verleiten :
Ich würde sagen, dass der verlinkte Beitrahg bei den "SPS-Experten" ein ganz klein bisschen missverständlich formuliert worden ist - und daran hat sich jetzt der Fragesteller gerieben.
 
Ich würde sagen, dass der verlinkte Beitrahg bei den "SPS-Experten" ein ganz klein bisschen missverständlich formuliert worden ist
Finde ich auch. Auf der Seite steht ja auch, dass man die Bausteine OB121/OB122 unbedingt am Ende löschen muss was ja so auch nicht richtig ist.

In den OB122 gehört halt eine ordentliche Fehlerbehandlung rein, warum sollte er unbedingt raus?

1687414705835.png


Außerdem passt die Aussage hier auch nicht, da die S7-1200 nicht in STOP geht bei einem Programmierfehler. Also wäre es umso wichtiger, ihn dort einzufügen und auszuwerten....

1687415039805.png
 
Zurück
Oben