Mehrere Tasks mit einer Wago 750 881

Beiträge
432
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus zusammen,

meine Steuerung für Heimautomation, läuft jetzt schön langsam. Insgesamt sind es normale DO und DI, Dali,KNXTP1, eine Elsner P03 Modbus und One Wire. Bis jetzt läuft an Schnittstellen nur Dali in nem seperaten Task.

Nun zur eigentlichen Frage:
Dali, KNX und die Wetterstation sollen in verschieden Tasks laufen, wurde mir empfohlen. Nur blicke ich da noch nicht ganz durch.
Was ich weiß, ein schneller wichtiger Task muss eine höhere Priorität haben als der langsamere.
Nur wie ist es jetzt wenn der schnelle Task dem langsamen unterbricht? Fängt der dann wieder von vorne an, wenn er wieder Zeit kriegt?

Wenn ich jetzt zum Beispiel Daten aus Vars in eine csv logge, wird das länger als 5ms dauern, also Stelle ich einen Task mit geringer prio ein um die wichtigen Tasks nicht zu blockieren, nur wird doch die csv so nie befüllt weil der Task unterbrochen wird.

Ich hoffe ich konnte meine Fragen gut beschreiben und würde mich um Antworten freuen.

Danke

Gruß
 
Eine unterbrochene Task läuft dort weiter, wo sie unterbrochen wurde. Du musst aber bei der Taskzykluszeit die Unterbrechungen einkalkulieren. Wenn Du eine schnelle Task mit z. B. 1ms Zykluszeit hast und ihr
Programm 0.5ms benötigt, hat eine langsamere Task nur die Restzeit zur Verfügung, die die schnelle Task übrig lässt, im Beispiel also nur 50% ihrer Zykluszeit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei mir läuft der Dali und der KNX Kram in einem freilaufenden Main-Task...
aktuell liegt der bei 5-6ms Zykluszeit

Mein Modbus wird über dem Modbuskonfigurator in einem separaten Zyklischen Task mit 50ms aufgerufen.

Deine eigentlichen Fragen hatte StructuredTrash ja schon behandelt.
 
Zurück
Oben