Zykluszeitproblem mit Beckhoff/Twincat

andimann

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Allerseits!

Habe hier eine Versuchsanlage (Sortieranlage) mit einer Beckhoffsteuerung vor mir. Anlage läuft soweit, alles bestens. Nun möchte ich aber die Pakete direkt im Durchlauf vermessen und habe dafür diverse Lichtschranken installiert. Problem: die Zykluszeit des Main-Task liegt bei 10 ms und lässt sich nicht weiter runtersetzen (Zykluszeit wurde da wohl als Trigger/Zeitbasis o.ä. benutzt, gibt jedenfalls bei Änderung lustige Effekte)
Als Workaround haben wir nun einen zweiten Task "Einlesen" mit 1 ms Zykluszeit eingebaut der nur die Lichtschranken abfragt.
Es zeigt sich aber anhand der Ungenauigkeiten (ich bekomme Messfehler in bestimmten Schrittweiten), dass dieser zweite Task anscheinend ebenfalls mit 10 ms Zykluszeit läuft.

Frage: a) ist der Ansatz überhaupt richtig, d.h. kann Twincat überhaupt zwei Tasks mit zwei unterschiedlichen Zykluszeiten verwalten
b) wie kann ich mal _sicher_ überprüfen, welcher Task auf welcher Zykluszeitläuft?

Danke und Gruß

Andreas
 
Das mit den zwei unterschiedliche schnellen Tasks sollte Funktionieren.

Der Task kann aber so schnell sein wie er will wenn das Prozessabild der betreffenden Eingänge nun am Main Zyklus verankert ist ändert sich der wert eben frühestens alle 10ms.

Kannst Du mit dem Systemmanager vielleicht die Eingänge (einen Slave oder was auch immer) an den Schnellen Task koppeln?

ich habe letztens hier im Forum was entsprechendes im Zusammenhang mit EtherCAT gelesen.
 
In TwinCAT gibt's erstmal die "Basiszeit". Die schnellste Task-Zykluszeit (generell die Zykluszeit) muss >= n*Basiszeit sein.
Dann muss, glaube ich, die höchstpriorisierte Task auch zugleich die schnellste sein!
Und zuletzt werden die I/Os nur mit der Task (also Zykluszeit) getriggert, der sie per System Manager zugeordnet sind. Also die Klemmen müssen dann auch mit den Variablen der schnellen Task verknüpft werden!
 
Zurück
Oben