SysSetTaskLpTime, set task loop time

List

Questa pagina fa parte del Manuale Programmazione IEC 61131-3. Vai all indice.

Permette di impostare il tempo di esecuzione delle tasks PLC. Esistono due tasks eseguite a tempo la task slow ID_TASK_SLOW e la task fast ID_TASK_FAST, ad ognuna di queste task può essere assegnato un tempo di esecuzione. La funzione non è attualmente disponibile sui sistemi basati su modulo CPU Raspberry.

Se il tempo impostato non è compreso nel range definito o se il rapporto tra i tempi di esecuzione della task fast rispetto alla slow non sono coerenti la funzione non modifica i tempi di esecuzione e ritorna FALSE. Di seguito sono riportati i range di tempo definibili per le varie tasks.

  • ID_TASK_FAST: Range da 100 μS a 10 mS (Default 1 mS). Se nella task si gestiscono schede di I/O su moduli di estensione queste non sono eseguite se tempo di esecuzione impostato inferiore a 500 uS.
  • ID_TASK_SLOW: Range da 1 a 100 mS (Default 10 mS). In questa task è gestita l’immagine di processo degli I/O, la gestione delle schede di estensione sul bus richiede un tempo tra 100~300 uS nella impostazione occorre accertarsi di avere il tempo sufficente a gestirla.
Upgrade list

Con l’upgrade a LogicLab versione 5.20.x.xx è stato modificato il nome del parametro Time in TTime perchè generava errore nel controllo sintattico.

Information Circle

Funzione

CODESYS: Non disponibile

LogicLab: eLLabXUnified12Lib

Descrizione

TaskID (TASK_ID) Identifica la task a cui si vuole definire il tempo di esecuzione vedi tabella.
TTime (UDINT) Indica il valore di tempo di esecuzione task espresso in μS.

La funzione ritorna un (BOOL) FALSE in caso di errore esecuzione, esempio parametri errati, TRUE funzione eseguita correttamente.

Immagine Fct SysSetTaskLpTime

Esempi

Come utilizzare gli esempi.
Al primo loop di esecuzione programma vengono modificati i tempi di esecuzione delle tasks Fast e Slow.

LogicLab (Ptp116, ST_SysSetTaskLpTime)
PROGRAM ST_SysSetTaskLpTime
VAR
    i : UDINT; (* Auxiliary variable *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_SysSetTaskLpTime"
// *****************************************************************************
// Are set the loop time for Fast and Slow tasks.
// -----------------------------------------------------------------------------

    IF (SysFirstLoop) THEN
        i:=SysSetTaskLpTime(ID_TASK_FAST, 500); //Task Fast is executed every 500uS
        i:=SysSetTaskLpTime(ID_TASK_SLOW, 5000); //Task Slow is executed every 5mS
    END_IF;

// [End of file]
Was this article helpful?