Multitasking
Mit einem Echtzeit-Multitask-Betriebssystems wird die Rechenleistung der SPS prioritätsgesteuert optimal für jede Aufgabe eingesetzt. Eine Task besteht aus Programmbausteinen und bekommt genauso viel Zeit zugewiesen, wie sie zu ihrer Abarbeitung benötigt. Damit wird keine wertvolle Leistung in unnötigen Wartezyklen verschenkt. Darüberhinaus werden den Tasks unterschiedliche Prioritätsstufen zugeordnet, die die Reihenfolge der Bearbeitung gemäß ihrer Wichtigkeit sicherstellen:
- Überwachungstask (supervisor task level)ermittelt Fehler (Division durch Null, Zeitüberschreitung etc.) und aktiviert die entsprechende Betriebssystemtask.
- Anwender- und Defaulttask (user task level)
- Zyklische Tasks führen die ihnen zugewiesenen Programme innerhalb eines definierten Zeitintervalls mit vorgegebener Priorität aus. Die Task mit der höchsten Priorität wird als erste aufgerufen.
- Ereignistasks werden vom Betriebssystem der XCx gestartet, wenn bestimmte Ereignisse wie z.B. Interruptsignal, CANopen- oder IPO-Task auftreten.
- Defaulttask wird dann aktiviert, wenn alle höherprioren Anwendertasks abgearbeitet wurden.
- Betriebssystemtasks (system task level) wie Kommunikation, Debugging, Speicherverwaltung und Systemkontrolle laufen vom Anwender unbeeinflusst ab.
Task-Prioritäten
Die XCx unterstützt 18 Anwendertasks. In den schnellen hochprioren Tasks werden die zeitkritischen Programme des Maschinenablaufs gesteuert. In den mittleren Tasks können umfangreiche Benutzerführungen und in den niederprioren Tasks zeitunkritische Überwachungsprogramme bearbeitet werden. Die Tasks werden in der Reihenfolge ihrer Priorität behandelt. Dadurch ist sichergestellt, dass die kritischen Prozesse zuerst und vollständig abgearbeitet werden. Die weniger kritischen Prozesse werden in der verbleibenden Zeit gemäß ihrer Priorität bearbeitet. Beispiel: SPS-Programm mit drei TasksTask 1.
- Zykluszeit 1 ms
- Bearbeitungszeit 0,3 msTask 2
- Zykluszeit 2 ms
- Bearbeitungszeit 0,5 msTask 3
- Zykluszeit 4 ms
- Bearbeitungszeit 1,5 ms


