TIA Mehrere Main OB - Programm Cycle im Programm vorhanden??

kapo666

Level-1
Beiträge
157
Reaktionspunkte
20
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum-Team

wir haben in unserer Firma bei einer Abwasseranlage einen sporadischen Messwert oder Ablauffehler. Da wir keinen offensichtlichen Fehler erkennen konnten, wollte ich mal das SPS Programm durchforsten, um zu sehen durch welche Eingänge der Störmerker gebildet wird.
Als ich das Programm öffnete, sah ich nicht nur den OB1 Main - Programm Cylce, sondern gleich 12 Stück, OB132 - OB144 mit der Ereignisklasse: Program Cylce. Für jeden Anlagenteil wurde ein eigener OB verwendet, sowie für die HMI Kommunikation, für die Antriebe, Globale Funktionen, etc. Ich habe das so in der Form noch nirgends wo gesehen und glaube auch zu wissen, dass das damals im SIMATIC Manager nicht erlaubt war. Und es sind keine Weckalarm-OBs. :confused:

Verwendet wurde hierfür TIA13 und eine 1214C + KTP700 Basic PN

Meine Frage jetzt:
Seit wann können mehrere Programmzyklus-OB (Main OB) in einem SPS Programm aufgerufen werden?
Welchen Vorteil bringt es mir, das Programm auf diese Art zu Strukturierung?

Ich freue mich auf euren Beitrag und leibe Grüße
Kapo666
 
Moin kapo666,

mehrere OBs mit ProgramCycle geht meines Wissens mind. seit TIA V14. Aber offensichtlich ging es auch schon bei TIA 13 :rolleyes:.

Also ich sehe da keinen direkten Vorteil. Ich denke, dass durch die zwölf Aufrufe eher Nachteile entstehen. Z.B. ist die Aufrufreihenfolge nicht unbedingt sichergestellt.

Wenn die OBs parallel arbeiten könnten (was sie nicht können), wären Vorteile vorstellbar. Also, wenn dann ein OB eine Zyklusüberschreitung hat, könnten die anderen weiterlaufen.

Aprospro Zyklus: Wenn ein OB 1200ms bräuchte, bräuchte jeder der 12 OBs nur 100ms. Das könnte ein Vorteil sein, um einer Zyklusüberschreitung entgegenzuwirken. Man könnte z.B. rechenintensive Programmteile in einen anderen OB auslagern, um die Zykluszeitbelastung zu reduzieren.

Aber ich denke, das sind alles nur theoretische Überlegungen. Nur, ob man das Programm jetzt so strukturiert, dass man 12 OBs hat oder 1 OB und 11 FC-Aufrufe oder, oder,... ist m.E. eher eine Geschmacksfrage.

VG

MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

die OBs werden in der Reihenfolge ihrer Nummer aufgerufen. Ist also genau definiert.
Ich habe da mal Tests gemacht, die Zykluszeit ist identisch wenn man FCs macht und im OB1 aufruft oder mehrere OBs anlegt.

Ich mache das ganz gerne, da ich dann andere Programmteile in mein Programm reinkopieren kann und mich nicht um das aufrufen kümmern muss.
 
Moin Windoze,

Ich habe da mal Tests gemacht, die Zykluszeit ist identisch wenn man FCs macht und im OB1 aufruft oder mehrere OBs anlegt.

das wundert mich. Also wird die Zykkluszeit nicht für jeden ProgramCycle separat erfasst, sondern für alle ProgramCycle-Aufrufe zusammengefasst?


Ich mache das ganz gerne, da ich dann andere Programmteile in mein Programm reinkopieren kann und mich nicht um das aufrufen kümmern muss.

Den Vorteil verstehe ich nicht. Die anderen Programmteile müssten doch so oder so aufgerufen werden, egal ob in den OB1 oder in den OB2 "reinkopiert", oder?


VG

MFreiberger
 
Es ist mir auch neu, dass man mehrere Main OB´s projektieren kann. Hatte ich vorher noch nie gelesen.
Ich habe gerade einmal ins Systemhandbuch geschaut, man kann tatsächlich auch mehrere Anlauf OB´s projektieren.

Anlauf.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das wundert mich. Also wird die Zykkluszeit nicht für jeden ProgramCycle separat erfasst, sondern für alle ProgramCycle-Aufrufe zusammengefasst?

Ja, das verhalten ist exakt, wie wenn man alles nacheinander im OB1 aufruft.
Die Zykluszeit ist für alle Aufrufe gesamt.

Den Vorteil verstehe ich nicht. Die anderen Programmteile müssten doch so oder so aufgerufen werden, egal ob in den OB1 oder in den OB2 "reinkopiert", oder?

Die Programmteile haben ihren eigenen OB, wenn ich den dann mit reinkopiere wird er automatisch aufgerufen.
 
Moin kapo666,

mehrere OBs mit ProgramCycle geht meines Wissens mind. seit TIA V14. Aber offensichtlich ging es auch schon bei TIA 13 :rolleyes:.

Also ich sehe da keinen direkten Vorteil. Ich denke, dass durch die zwölf Aufrufe eher Nachteile entstehen. Z.B. ist die Aufrufreihenfolge nicht unbedingt sichergestellt.

Wenn die OBs parallel arbeiten könnten (was sie nicht können), wären Vorteile vorstellbar. Also, wenn dann ein OB eine Zyklusüberschreitung hat, könnten die anderen weiterlaufen.

Aprospro Zyklus: Wenn ein OB 1200ms bräuchte, bräuchte jeder der 12 OBs nur 100ms. Das könnte ein Vorteil sein, um einer Zyklusüberschreitung entgegenzuwirken. Man könnte z.B. rechenintensive Programmteile in einen anderen OB auslagern, um die Zykluszeitbelastung zu reduzieren.

Aber ich denke, das sind alles nur theoretische Überlegungen. Nur, ob man das Programm jetzt so strukturiert, dass man 12 OBs hat oder 1 OB und 11 FC-Aufrufe oder, oder,... ist m.E. eher eine Geschmacksfrage.

VG

MFreiberger

Die Sache mit der Zykluszeitaufteilung für einzelne Programmabschnitte find ich irgendwie praktisch. Anscheinend kann ich auch mehrere Startup OBs verwenden. Dadurch ergeben sich komplett neue Möglichkeiten, die ich mir jetzt gerade nur ausmalen kann :rolleyes::cool:

Werde das mal auf meiner Versuchsstation mal ausführlich testen müssen.
 
Zurück
Oben