ich versuche mich gerade mit der Taskkonfiguration. An einer WAGO 750-837 wollte ich zwei kleine Beispiel Programme über die Taskkonfiguration abarbeiten lassen. Mir geht es hauptsächlich erstmal darum, mich mit der Taskkonfiguration vertraut zu machen. Ich wollte mir daher erstmal über die Taskkonfiguration die Zykluszeit der einzelnen Programme anschauen. Hatte mich schon soweit schlau gemacht, dass ich die Bibliotheken SysTaskInfo.lib und SysLibTime.lib benötige. Weiterhin habe ich die beiden Programme als freilaufende Tasks definiert.
Meine erste Frage ergibt sich aus der Tatsache, dass ich unter dem 837er nicht die Einstellmöglichkeiten habe, wie bei einem 841er. Zum Beispiel fehlen die System-Ereignisse. Kann man überhaupt, und wenn ja, in welchem Umfang, die Taskkonfiguration für den 837er nutzen? Wenn nein, müsste ich auf den 841er zurückgreifen.
Meine zweite Frage bezieht sich auf die Bibliotheken. Muss ich die Bausteine erst in einem Programm einbauen, oder reicht für die Taskkonfig das bloße Einbinden der Bibliotheken?
Beim Online Modus, wird mir eine Task als DEBUG angezeigt, kann aber die DEBUG Task nicht ändern... Vermutlich lässt sich dieses Problem schon mit Antwort 1 lösen.
Ich freue mich über alle Anregungen für mein Problem.
Gruß Grit
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
837
der 837 ist ein 16-Bit Controller und hat kein richtiges Betriebssystem
und kein echtes Multitasking.
Tasks können sich nicht gegenseitig unterbrechen.
Wenn eine Task gestartet wurde, dann läuft sie auch
bis zum Ende.
Alle anderen Tasks, die gern laufen würden, müssen warten
auch wenn sie eine höhere Priorität haben.
Erst wenn die laufende Task durchgelaufen ist, dann schaut
das Laufzeitsystem welche Task als nächstes dran ist.
(höchste wartende Prio).
Das ist zwar nicht immer unbedingt das was man erwartet,
macht aber den konsistenten Datenaustausch zwischen den
Tasks einfach. Man braucht keine Semaphore.
841
Der 841 ist ein 32-Bit Controller mit einem Multitasking-Betriebssystem.
Hier können sich Tasks gegenseitig unterbrechen.
Bei einem solchen Tasksystem muß man schon recht genau
wissen was man tut, da in der Regel die Tasks auch irgendwie
miteinander Daten austauschen.
Und damit man hier konsistente Daten behält, muß man in der Regel
Semphore einsetzen.
Hierbei sollte man nicht auf die sinnlose Funktion SEMA aus der Standard.lib
setzen, sondern lieber die Bibliothek SysLibSem.lib benutzen.
Die Bibliotheken SysTaskInfo und SysLibTime müssen nur im Bibliotheksverwalter
eingebunden sein und auch dort nur zum beobachten der Tasklaufzeiten in der
Taskkonfiguration.
Wird nicht beobachtet, dann werden sie auch nicht gebraucht.
Gruß
Uwe
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
vielen Dank für die ausführliche Info; die hat mir echt geholfen. Dann werde ich für die Taskkonfiguration auf den 841 zurückgreifen. Um meine Programme nun bezüglich der Zykluszeit bewerten zu können, muss ich mit dem 837 erstmal wieder auf die herkömmliche Methode mit TIME() zurückgreifen.
Trotzdem vielen Dank.
Gruß Grit
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
ich versuche mich gerade mit der Taskkonfiguration. An einer WAGO 750-837 wollte ich zwei kleine Beispiel Programme über die Taskkonfiguration abarbeiten lassen. Mir geht es hauptsächlich erstmal darum, mich mit der Taskkonfiguration vertraut zu machen. Ich wollte mir daher erstmal über die Taskkonfiguration die Zykluszeit der einzelnen Programme anschauen. Hatte mich schon soweit schlau gemacht, dass ich die Bibliotheken SysTaskInfo.lib und SysLibTime.lib benötige. Weiterhin habe ich die beiden Programme als freilaufende Tasks definiert.
Meine erste Frage ergibt sich aus der Tatsache, dass ich unter dem 837er nicht die Einstellmöglichkeiten habe, wie bei einem 841er. Zum Beispiel fehlen die System-Ereignisse. Kann man überhaupt, und wenn ja, in welchem Umfang, die Taskkonfiguration für den 837er nutzen? Wenn nein, müsste ich auf den 841er zurückgreifen.
Meine zweite Frage bezieht sich auf die Bibliotheken. Muss ich die Bausteine erst in einem Programm einbauen, oder reicht für die Taskkonfig das bloße Einbinden der Bibliotheken?
Beim Online Modus, wird mir eine Task als DEBUG angezeigt, kann aber die DEBUG Task nicht ändern... Vermutlich lässt sich dieses Problem schon mit Antwort 1 lösen.
Ich freue mich über alle Anregungen für mein Problem.
Gruß Grit
Hallo Grit,
837
der 837 ist ein 16-Bit Controller und hat kein richtiges Betriebssystem
und kein echtes Multitasking.
Tasks können sich nicht gegenseitig unterbrechen.
Wenn eine Task gestartet wurde, dann läuft sie auch
bis zum Ende.
Alle anderen Tasks, die gern laufen würden, müssen warten
auch wenn sie eine höhere Priorität haben.
Erst wenn die laufende Task durchgelaufen ist, dann schaut
das Laufzeitsystem welche Task als nächstes dran ist.
(höchste wartende Prio).
Das ist zwar nicht immer unbedingt das was man erwartet,
macht aber den konsistenten Datenaustausch zwischen den
Tasks einfach. Man braucht keine Semaphore.
841
Der 841 ist ein 32-Bit Controller mit einem Multitasking-Betriebssystem.
Hier können sich Tasks gegenseitig unterbrechen.
Bei einem solchen Tasksystem muß man schon recht genau
wissen was man tut, da in der Regel die Tasks auch irgendwie
miteinander Daten austauschen.
Und damit man hier konsistente Daten behält, muß man in der Regel
Semphore einsetzen.
Hierbei sollte man nicht auf die sinnlose Funktion SEMA aus der Standard.lib
setzen, sondern lieber die Bibliothek SysLibSem.lib benutzen.
Die Bibliotheken SysTaskInfo und SysLibTime müssen nur im Bibliotheksverwalter
eingebunden sein und auch dort nur zum beobachten der Tasklaufzeiten in der
Taskkonfiguration.
Wird nicht beobachtet, dann werden sie auch nicht gebraucht.
Gruß
Uwe
Hallo Uwe,
vielen Dank für die ausführliche Info; die hat mir echt geholfen. Dann werde ich für die Taskkonfiguration auf den 841 zurückgreifen. Um meine Programme nun bezüglich der Zykluszeit bewerten zu können, muss ich mit dem 837 erstmal wieder auf die herkömmliche Methode mit TIME() zurückgreifen.
Trotzdem vielen Dank.
Gruß Grit