Vai al contenuto

SysSetTaskLpTime, set task loop time

Vai all indice del manuale di programmazione
Tipo: Funzione
Libreria LogicLab: eLLabXUnified12Lib
Libreria Codesys: Non disponibile

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.

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
    RSts : ARRAY[0..1] OF BOOL; (* Result status *)
END_VAR

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

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

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