Multitasking und Eingänge

wonderfulworld

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

ich überleg gerade mit meinen Kollegen folgenden Fall, wo ich auch keine Antwort habe. Könnt ihr mir vielleicht helfen?
Und zwar haben wir eine Elau-Steuerung mit direkten Eingängen, die über den Sercos-Bus alle 2ms eingelesen werden. Zusätzlich haben wir in unserem Programm mehrere Tasks, die in unterschiedlichen Zyklen aufgerufen werden. Jetzt ist unsere Frage, wie synchronisieren sich die Eingänge während der Programmabarbeitung? Zwei Szenarien haben wir uns überlegt.

1. Die Eingänge werde alle 2ms eingelesen und den Programmen zur Verfügung gestellt. Das würde aber heißen, dass ich am Anfang meines Programm eventuell andere Daten habe, wie am Ende. Was zu nicht vorhersehbaren Verhalten führen würde. Das Problem ist ja, dass nicht vorhergesehen werden kann, wann der Scheduler mein Programm unterbricht.

2. In der Schule haben wir mal was vom Prozessabbild der Eingänge (PAE) gelernt. Da wurde uns beigebracht das alle Eingänge am Beginn des Abarbeitungzykluses eingelesen werden. Trifft das hier auch zu? Das würde ja dann heißen, dass ich in einem Task den Eingang X schon auf TRUE sehe, obwohl er im anderen Task noch auf FALSE steht? Und wie verhält sich dass dann mit den Ausgängen? Der kann ja nicht in einem Task TRUE und in anderen FALSE zur gleichen Zeit sein?

Gruß
wonderfulworld
 
Alle Eingänge am anfang des programmes in merker schreiben und am ende des programmes in die ausgänge! Sprich das prozessabbild selber machen!

den ganzen Ablauf in einen task unterbringen, und nur was geht in einen anderen, zum beispiel eine regelung!

Multitask ist eine heikle sache...
 
Ja, an sowas hab ich auch schon gedacht :). Eigentlich wollte ich nur wissen, wie es ist. Also ist es tatsächlich so, dass die Eingänge auch während dem Zyklus einer Task sich ändern können? Ich wundere mich ein bisschen, weil ich jetzt schon mehrere Jahre mit Elau programmiere und diesbezüglich nie ein Problem hatte. Für mich hat sich das Programm immer sehr deterministisch Verhalten.
Gruß
wonderfulworld
 
Zurück
Oben