TC3 - Task läuft nicht ab

Auf dem Screenshot wird die Variable nur dann hochgezählt wenn sie kleiner 200 ist, hat aber bereits die 200 erreicht?
 
Auf dem Screenshot wird die Variable nur dann hochgezählt wenn sie kleiner 200 ist, hat aber bereits die 200 erreicht?
Meine Vermutung war auch, dass die andere Task so schnell läuft, dass die andere gar nichts mehr macht.
Aber das Problem wurde ja von @Guga schon gelöst.
Manchmal verschluckt sich TwinCAT bei der Anlage neuer Tasks und Programme, wo und warum auch immer weiß ich nicht. Dies Problem war hier im Forum auch schon andere Male das Thema und Guga hatte das erkannt.
 
Das passt doch, ich verstehe nicht was du da als falsch erkennst.

Der Threadersteller bemängelt, dass das Programm nicht laufen würde. Wenn die Variable aber bereits auf 200 steht, dann sieht man zum einen natürlich keine Veränderung mehr, zum anderen stellt sich die Frage, wie diese Variable zu diesem Wert gekommen ist wenn das Programm nicht läuft. Er wird sie ja vermutlich nicht von Hand auf diesen Wert gesetzt haben, wenn er prüfen will ob das Programm läuft?
 
Der Threadersteller bemängelt, dass das Programm nicht laufen würde. Wenn die Variable aber bereits auf 200 steht, dann sieht man zum einen natürlich keine Veränderung mehr, zum anderen stellt sich die Frage, wie diese Variable zu diesem Wert gekommen ist wenn das Programm nicht läuft. Er wird sie ja vermutlich nicht von Hand auf diesen Wert gesetzt haben, wenn er prüfen will ob das Programm läuft?
Ok, jetzt hat es bei mir Klick gemacht, was du meinst. Du hast natürlich Recht 👍
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

hier der TE ☺️.

Also, es ist eine Programmierung aus einem Tutorial um einmal die Funktionsweise der Tasks kennen zu lernen.

Dabei sind zwei globale Variablen in der GVL definiert. Dazu zwei Programme, die jeweils in einer eigenen Task laufen. In jedem Programm ist eine IF-Abfrage programmiert, deren Bedingung jeweils die gleiche ist (die gleiche Variable wird auf <200 verglichen). In dem Programm in der ersten Task (Aufrufinterval = 10ms) wird die Variable in der Bedingung inkrementiert, in dem Programm in der zweiten Task (Aufrufintervall = 20ms) wird eine andere Variable inkrementiert.
Also, wenn die erste Variable 200 erreicht, erreicht die zweite Variable 99.
Das Bild hat den Aufruf in der zweiten Task gezeigt, nachdem die Steuerung auf run gestellt wurde un 200 erreicht hat.
Der Fehler bestand darin, dass die zweite Variable gar nicht inkrementiert wurde, obwohl die erste Variable die 200 noch nicht erreicht hatte.

Wie bereits geschrieben, hat Guga mir per Teamviewer geholfen. Tatsächlich funktionierte die Task in dem Programm einfach nicht. Er hat ein zweites Programm eingefügt, in dem beide Tasks wie gewünscht funktionieren.

VG
 
Zurück
Oben