Tasks ins Siemens

S7_Student

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

kann mir jemand sagen ob man bei Siemens auch ähnlich wie bei CoDeSys mehre Tasks "parallel" laufen lassen kann?

Wenn ja, wie kann man dies realisieren?

Vielen Dank schon mal im Vorraus!
 
Bei CoDeSys gibt es ja Zeit und Ereignisgesteuerte Tasks. Bei Siemens gibt es dafür OBs (Organisationsbausteine).

Als Beispiel OB35 (Zeitgesteuert) alle x ms, OB100 (Ereignisgesteuert) bei Neustart. Diese können sich von CPU zu CPU unterscheiden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber Vorsicht, die sind bei Siemens nicht wirklich parallel. Wenn ein Zeit-OB zuschlägt, wird das Hauptprogramm unterbrochen und zwar so lange, wie der Zeit-OB zur Abarbeitung benötigt.
 
Das mit den Unterbrechungen von Tasks ist in CoDeSys ganz ähnlich.
Man kann bei CoDeSys den Tasks eine Priorität zuordnen in deren Abhängigkeit sich die Tasks unteinander unterbrechen dürfen.

Bis her habe ich davon recht wenig Gebrauch gemacht ich nutze die Tasks hauptsächlich wenn es um Dateioperationen (schreiben und lesen von Dateien) geht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

also von Adept zum Beispiel kenn ich es so, dass jedem Task immer gleich viel Zeit zur Abarbeitung bekommt. Wenn die Zeit abgelaufen ist, dann kommt der nächste dran.

Dies scheint mit bei Siemens so aber nicht zu gehen oder?
 
Das meinte ich mit meiner Bemerkung auch, es ist bei Siemens nicht so.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, wäre ja auch zu schön gewesen!

Danke trotzdem für die Bestätigung!

An was für eine Anwendung denkst Du denn die ein Multitaskingsystem im SPS Bereich erforderlich macht?

Die meisten Sachen die mir dazu einfallen lassen sich "relativ" einfach umschiffen solange man Einfluss darauf hat.

Eine Ausnahme ist z.B. das Schreiben und Lesen vom/aufs Filesystem (aber in diese Verlegenheit kommt man bei den klassischen Siemens SPSen ja eh nicht).

Also bleiben z.B. irgendwelche Schleifen zum Suchen und Kopieren das kann man eigentlich auch ganz gut selbst auf mehrere SPS Zyklenverteilen.

Ich bin mal gespannt ob das große S mit seiner neuen Wunderwaffel Step7 10.5 Basic da auch was in Richtung Multitasting vorsieht (ich vermute mal eher nein).
 
Hallo zusammen,

ich kenne die Multitaskingfähigkeit aus der Robotiksteuerung. Hier kann man zum Beispiel das Hochfahren, das Main-Programm, die Bewegungen, das Fehlerhändling und z.B. Kommunikation auf getrennten Tasks laufen lassen.
Grundsätzlich hat mit dies sehr gefallen und deshalb könnte ich mir gut vorstellen eine Anlagensteuerung auch so aufzubauen.
 
Das ist bei den Robotern auch meistens notwendig, weil die Tasks in den Bewegungsprogrammen "hängen" bleiben. Also bleibt der Task solange gestoppt bis die Bewegung fertig ist.

Da es relativ Aufwenig ist die Tasks zu synchronisieren, (Stehen alle Informationen an der richtigen Stelle zur richtigen Zeit zu verfügung?) versucht man bei der SPS den Task so schnell laufen zu lassen das man alle Ereignisse "mitbekommt". Wird das Programm zu groß und läuft der Task zu lange, so benutzt man eine größere CPU oder teilt das Programm auf mehrere CPUs auf.

Viele Programmteile in der SPS laufen so zwar nacheinander ab, jedoch reden wir dort von Bereichen 5-20ms. Hat man Anwendungen, die deutlich schneller ablaufen müssen (z.B. Regler) muss man auf Spezialhardware zurückgreifen, in denen das Programm z.B. fest gespeichert in einem µc abläuft.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
...
ich kenne die Multitaskingfähigkeit aus der Robotiksteuerung.
...
Wie Deltal bereist erwähnt hat sind die gängigen Roboter Programmierungen nicht mit dem gängigen Grundkonzept einer SPS vergleichen.

Bei Robotern programmiert man gerade für die Bewegungen einen Ablauf und das Programm verharrt an dieser Stelle bis die Aktion (z.B. Bewegung vollendet wurde). Dieses Programm wird aufgerufen und abgearbeitet und eventuell später wieder aufgerufen und abgearbeitet.

SPS Programme werden meistens Zyklisch bearbeitet sprich das ist eine Endlosschleife und der entsprechende Task dem das Programm zugeordnet ist wird darauf hin meisten sogar noch überwacht (Watchdog) um Zykluszeit Überschreitungen erkennen zu können.

Natürlich braucht man bei SPSen auch Abläufe, hier hat sich das Konzept der Schrittkette durchgesetzt. Diese ermöglicht einen Ablauf Schrittweise abzuarbeiten ohne das der Task-Zyklus angehalten wird.

Ein Beispiel wo ich die Multitaskingfähigkeit von CoDeSys einmal gebraucht habe war der bereits angesprochene Fall das ich eine Datei auf dem Filesystem öffen, beschreiben und wieder schließen musste. Dieser Task durfe dann von dem eigentlichen SPS Task (PLC_PRG) unterbrochen werden der mit einer fest eingestellten Zeit von 10ms vor sich hin brummen durfte. Der Task der sich um das Dateihändling gekümmert hat durfte ruhig einige Sekunden benötigen.

Ich bestreite ja nicht das es schick ist eine Multitaskingfähige SPS zu haben. Bei einigen Dingen führt auch kein Wegdaran vorbei aber für den eigentlichen Programm Ablauf sollte man bedenken:
...
es relativ Aufwenig ist die Tasks zu synchronisieren, (Stehen alle Informationen an der richtigen Stelle zur richtigen Zeit zu verfügung?) ...

Wenn man da unvorsichtig ist kann es zu ganz seltsamen Effekten kommen die man fast nicht bzw. nur sehr schwer debuggen kann.
 
Zurück
Oben