FC_SetTaskPriorityByName - Allgemeine Informationen
Typ |
Funktion |
Verfügbar ab |
SystemInterface_1.53.7.9 |
Versionen: |
Aktuelle Version |
Die Priorität einer Task oder mehrerer Tasks mit dem gleichen Namen ändern
Die Priorität einer oder mehrerer mit i_sTaskName spezifizierten Task wird geändert.
Es ist möglich, mit nur einem Aufruf dieser Funktion die Priorität einer oder mehrerer Tasks zu ändern, die im allgemeinen ersten Teil des Tasknamens als i_sTaskName festgelegt sind.
So verändert die Funktion, wie im Beispiel unten, mit i_sTaskName = TASK_S die Prioritäten der Tasks TASK_SetTaskPriorityByName_Test, TASK_SR_SercosGetConfiguration und TASK_SR_TestStandInit, aber nicht der Task Task_TestManager.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_sTaskName |
STRING(80) |
Task, deren Priorität geändert werden soll |
i_diPriorityOS |
DINT |
Priorität 0 ... 255 |
Datentyp |
Beschreibung |
---|---|
DINT |
>0: Die Priorität der Task wurde geändert. Der Wert gibt die Anzahl der betroffenen Tasks an. -1: Falscher Taskname oder Priorität (i_diPriorityOS) außerhalb der Grenzen. |
HINWEIS: Wenn Sie diese Funktion verwenden, müssen Sie den Systemebenenwert angeben. Daher müssen Sie zu dem Wert, den Sie für die Task-Priorität angegeben haben, 244 hinzu addieren.
Beispiel auf Grundlage der folgenden Tasks
PROGRAM SR_SetTaskPrioirityByName_Test
VAR
xPrioTask1_HI : BOOL := FALSE;
xPrioTask1_LO : BOOL := FALSE;
xPrioTask2_HI : BOOL := FALSE;
xPrioTask2_LO : BOOL := FALSE;
END_VAR
// Change priority of a single task
IF xPrioTask1_HI THEN
IF 1 = FC_SetTaskPriorityByName('TASK_SetTaskPriorityByName_Test', 224 + 31) THEN
xPrioTask1_HI := FALSE;
END_IF
END_IF
IF xPrioTask1_LO THEN
IF 1 = FC_SetTaskPriorityByName('TASK_SetTaskPriorityByName_Test', 224 + 5) THEN
xPrioTask1_LO := FALSE;
END_IF
END_IF
// Change priority of a group of matching task names
IF xPrioTask2_HI THEN
IF 3 = FC_SetTaskPriorityByName('TASK_S', 224 + 31) THEN
xPrioTask2_HI := FALSE;
END_IF
END_IF
IF xPrioTask2_LO THEN
IF 3 = FC_SetTaskPriorityByName('TASK_S', 224 + 10) THEN
xPrioTask2_LO := FALSE;
END_IF
END_IF