FC_SetTaskPriorityByName

 

FC_SetTaskPriorityByName - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

SystemInterface_1.53.7.9

Versionen:

Aktuelle Version

Aufgabe

Die Priorität einer Task oder mehrerer Tasks mit dem gleichen Namen ändern

Beschreibung

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.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_sTaskName

STRING(80)

Task, deren Priorität geändert werden soll

i_diPriorityOS

DINT

Priorität 0 ... 255

Rückgabewert

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.

Beispiel

G-SE-0068283.1.gif-high.gif

 

 

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

G-SE-0068284.1.gif-high.gif

 

 

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