TIA Wie verhalten sich Organisationsbausteine nach einem Fehler?

Spleanify

Level-1
Beiträge
68
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe SPS-Forum Community,

Nach dem ich lange nur lesend Zeit in diesem Forum verbracht habe, möchte ich eine Frage in die Runde werfen worauf ich bisher noch keine Antwort gefunden habe. Es geht um Organisationsbausteine welche durch Fehler aufgerufen werden. Aber vorab kurz der Zusammenhang: Wir (ich mit Studienkollegen) erneuern die Steuerung einer Transportanlage bei einem Kunden, weil die bestehende Steuerung nicht mehr ordnungsgemäss funktioniert. Wir bauen eine neue Schaltanlage mit einer S7-1515 2PN. Dazu zwei Bedienstellen welche je ein Comfortpanel und ein ET 200SP Peripherieknoten enthalten um die Signale der Sensoren einzulesen. Des weiteren enthält die Anlage noch zwei Frequenzumformer (Danfoss VLT FC-302). Alle erwähnten Komponenten werden über Profinet vernetzt (ohne RTIO) udn das Projekt wird unter TIA V13 SP1 Upd.5 erstellt.

Sollte nun ein Peripheriegerät oder eine Busverbindung ausfallen würde, meines bisherigen Wissenstandes, die CPU in den Zustand Stop wechseln (bitte korrigiert mich wenn ich falsch liege). Unserem Kunden liegt jedoch einiges daran das alle Störungszustände möglichst klar ausgewertet werden, so dass das Instandhalterteam, möglichst wenig Zeit mit der Fehlersuche verbringt.

Somit war meine Idee diese Zustände über die entsprechenden Organisationsbausteine zu detektieren und als Meldungen über die Panels darzustellen (Idee: Instandhalter weiss sofort was los ist und die Fehler werden protokolliert). Die Projektierung eines solchen OB's (zum Beispiel den 86er für Buszugriffsfehler) hat mir bisher keine Mühe bereitet. Für mich stellen sich aber folgende Fragen:

  • Wenn ein anstehender Busfehler (im Falle des OB86) wieder verschwindet, wird der OB86 noch einmalig abgearbeitet, das Resultat des "gehenden Ereignisses" detektiert und dann? startet der OB 1 wieder? Oder muss ich das als Programmierer selbst anstossen?
  • Was passiert mit den letzten Zuständen aller meiner Ausgänge wenn ein OB aufgerufen wird? Werden diese automatisch "False" gesetzt wie beim Stop einer CPU oder muss ich alle meine Antriebe die an den Ausgängen hängen im OB selber "False" setzen?
  • Welche Organisationsbausteine für solche Fehlerbehandlung empfiehlt ihr aus eureren Erfahrungen? Welche Fehler sind die häufigsten die man abfangen muss?

Bisher projektiert habe ich lediglich den OB86, da mir dieser Baustein wichtig vorkam. Bei Ausfall einer ET 200SP beispielsweise, erhalte ich ja keine gültigen Sensorinformationen mehr um die Anlage zu steuern.
Über ein Feedback würde ich mich sehr freuen. Ich hoffe das diese Frage nicht schon mal gestellt wurde und ich einfach zu blöd war diese zu finden.

Liebe Grüsse
 
Die Fehler-OBs einzufügen damit die CPU nicht in Stop geht ist eine gute Idee.

Ich würde allerdings die Fehlerauswertung nicht in diese OBs packen, sondern über entsprechend andere Diagnosemöglichkeiten aus dem SPS-Programm realisieren. Bei der S7-300/400 konnte man das über entsprechende SZL-Abfragen, etwas ähnliches wird es auch für die S7-1500 geben. Also leere Fehler-OBs einfügen bei denen du dir sicher bist dass die SPS hier weiterlaufen kann, und die Diagnose im restlichen SPS-Programm ausprogrammieren.

Die Auswertung ist einfacher und weniger fehlerbehaftet, weil du bei der OB-Auswertung diverse Zustände beachten musst, wie SPS Neustart bei fehlenden Teilnehmern, Teilnehmerwiederkehr bei SPS-Stop-Zustand, gleichzeitiger Ausfall mehrerer Teilnehmer, etc. Das ist alles etwas wackelig, und das bekommt selbst Siemens bei PCS7 nicht zuverlässig ans Laufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hy Thomas,

Danke für das rasche Feedback. Verstehe ich das richtig, dass in einem "Fehlerzustand" mein normales Programm (OB1 und alle andern FC's und FB's) dennoch weiter bearbeitet werden? Also einfach nur zusätzlich der Fehler OB aufgerufen wird? Falls Ja, wird dieser vor oder nach dem OB1 innerhalb eines Zyklus aufgerufen?

Gruss
 
Die Fehler OB werden bei jedem neuen Ereignis aufgerufen.
Beispielsweise fällt ein Profinet/Profibus-Teilnehmer aus, dann wird der zugehörige Fehler OB einmalig aufgerufen.
Jeder Organisationsbaustein hat eine bestimmte Priorität. OBs mit höherer Priorität können die mit niedrigerer Priorität unterbrechen. Der OB1 ist der mit der niedrigsten Priorität (bzw. gibt es zumindest bei der S7-300/400 noch einen mit niedrigerer, der aber nur äußerst selten verwendet wird). Die Fehler-OBs haben eine höhere Priorität, und können demnach den OB1 während der Ausführung unterbrechen. D.h. der OB1 hält an, es wird der Fehler-OB abgearbeitet und danach wieder mit dem OB1 fortgesetzt.

Die Organisationsbausteine entsprechen den Interrupts bei der Mikrocontroller-Programmierung.
 
Zurück
Oben