Die Bibliothek SysLibTasks.
lib
Die Bibliothek [Link]
Diese Bibliothek dient dazu, Tasks zu verwalten. Wenn das Zielsystem die Funktionalität beinhaltet,
können die Bibliotheksfunktionen verwendet werden, um Tasks zu generieren, zu löschen, mit
bestimmter Priorität zu versetzen und sie pausieren und wieder weiterlaufen zu lassen. Die
Abarbeitung erfolgt synchron.
(Um Informationen speziell über die Konfiguration von IEC-Tasks abzurufen, kann die Bibliothek
[Link] verwendet werden.)
Funktionen zur Verwaltung von Tasks:
• SysTaskCreate
• SysTaskDestroy
• SysTaskGetInfo
• SysTaskGetPriority
• SysTaskSetPriority
• SysTaskSuspend
• SysTaskResume
Funktionen für die Verwendung innerhalb von Tasks:
• SysTaskSleep
• SysTaskEnd
• SysTaskGetCurrent
© 3S – Smart Software Solutions GmbH / 05.12.2005 / CoDeSys V2.3 1
Die Bibliothek [Link]
SysTaskCreate
Diese Funktion vom Typ UDINT dient dazu, eine Task zu generieren.
Als Rückgabewert erhält man eine eindeutige Id-Nummer für die Task, die als Eingabeparameter für
andere Funktionen dieser Bibliothek benötigt wird.
Input-Variable Datentyp Beschreibung
stName STRING Name der Task
byPriority BYTE Priorität der Task; möglich Werte: 0-255,
Reserviert: 0..31 für System
IEC-Tasks: 32..63
Kommunikations-Tasks: 64 und höher
udiInterval UDINT Taskintervall in Millisekunden
pfFunction DWORD Funktionspointer, der mit Hilfe der Funktion
SysIECGetFctPointer() ermittelt werden muss
pArgument DWORD Übergabeparameter für neue Task
SysTaskDestroy
Diese Funktion vom Typ BOOL wird verwendet um eine Task zu löschen. Der Rückgabewert ist
TRUE, wenn dies gelingt, FALSE, wenn die Task nicht gelöscht werden konnte.
Input-Variable Datentyp Beschreibung
udiTaskId UDINT Id der Task, die gelöscht werden soll; Id wird erhalten aus
SysTaskCreate
SysTaskGetInfo
Diese Funktion vom Typ BOOL liefert Information über eine Task, die durch die Id spezifiziert wird.
Input-Variable Datentyp Beschreibung
udiTaskId UDINT Id der Task, über die Info gewünscht ist; Id wird erhalten
aus Funktion SysTaskCreate
pSysTaskInfo POINTER TO Zeiger auf die Struktur SysTaskInfo, siehe unten, die
SYSTASKINFO Informationen zur Task liefert
Komponenten der Strukur SysTaskInfo:
dwHandle: DWORD; (* Betriebssystem-Handle der Task *)
dwId: DWORD; (* Index der Task *)
dwSem: DWORD; (* Reserviert, wird nur im Runtime-System
verwendet *)
wIECTaskNr WORD; (* IEC-Task Index, falls Task eine IEC-Task ist *)
:
stName: STRING; (* Name der Task *)
2 © 3S – Smart Software Solutions GmbH / 05.12.2005/ CoDeSys V2.3
Die Bibliothek [Link]
SysTaskGetPriority
Diese Funktion vom Typ BYTE liefert als Rückgabewert die Priorität der mit der Id angegebenen Task.
Priorität kann zwischen 0 (=höchste Priorität) und 255 (=niedrigste Priorität) liegen.
Input-Variable Datentyp Beschreibung
udiTaskId UDINT Id der Task, von der die Priorität ermittelt werden soll;
wird erhalten aus Funktion SysTaskCreate
SysTaskSetPriority
Diese Funktion vom Typ BOOL dient dazu, die Priorität für die mit der Id angegebenen Task zu
setzen. Als Rückgabewert erhält man mit TRUE oder FALSE Auskunft über den Erfolg dieser
Operation.
Priorität kann zwischen 0 (=höchste Priorität) und 255 (=niedrigste Priorität) liegen.
Input-Variable Datentyp Beschreibung
UdiTaskId UDINT Id der Task, deren Priorität gesetzt werden soll;
wird erhalten aus Funktion SysTaskCreate
byPriority BYTE Priorität; mögliche Werte: 0 – 255
- Reserviert für System: 0..31
- IEC-Tasks: 32..63
- Kommunikations-Tasks: 64 und höher
SysTaskSuspend
Diese Funktion vom Typ BOOL dient dazu, eine über die Id angegebene Task mitten in der
Abarbeitung anzuhalten. Durch den Aufruf von SysTaskResume, kann die Abarbeitung wieder
fortgesetzt werden.
Als Rückgabewert erhält man mit TRUE oder FALSE Auskunft über den Erfolg dieser Operation.
Input-Variable Datentyp Beschreibung
udiTaskId UDINT Id der Task, die angehalten werden soll; wird erhalten aus
Funktion SysTaskCreate
SysTaskResume
Diese Funktion vom Typ BOOL dient dazu, die über die ID angegebene Task erneut zu starten, wenn
Sie vorher über SysTaskSuspend angehalten wurde.
Als Rückgabewert erhält man mit TRUE oder FALSE Auskunft über den Erfolg dieser Operation.
Input-Variable Datentyp Beschreibung
udiTaskId UDINT Id der Task, die nun wieder weiterlaufen soll; Id erhalten aus
Funktion SysTaskCreate
© 3S – Smart Software Solutions GmbH / 05.12.2005 / CoDeSys V2.3 3
Die Bibliothek [Link]
SysTaskSleep
Diese Funktion vom Typ BOOL dient dazu, die Abarbeitung innerhalb einer laufenden Task zu
unterbrechen und nach einer definierten Zeit wieder anzustoßen.
Als Rückgabewert erhält man TRUE, wenn die Sleep-Funktion erfolgreich ausgeführt wurde oder
FALSE, wenn ein Fehler auftritt.
Input-Variable Datentyp Beschreibung
udiMilliseconds UDINT Zeit in Millisekunden, nach der die Task nach dem Stop weiter
abgearbeitet werden soll.
SysTaskEnd
Diese Funktion vom Typ BOOL muss von einer Task aufgerufen werden, wenn Ihre Abarbeitung
beendet wird. Typischerweise sollte die unmittelbar vor dem Verlassen der Task-Funktion erfolgen.
Input-Variable Datentyp Beschreibung
udiExitCode UDINT Sollte 0 sein
udiTaskId UDINT Id der Task, die nun gelöscht werden soll; wird erhalten aus
SysTaskCreate
SysTaskGetCurrent
Diese Funktion vom Typ UDINT wird von der laufenden Task aufgerufen, um als Rückgabewert die
eigene ID zu erhalten.
Input-Variable Datentyp Beschreibung
bDummy BOOL TRUE startet die Funktion
4 © 3S – Smart Software Solutions GmbH / 05.12.2005/ CoDeSys V2.3