SysSetTaskLpTime, set task loop time
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.
Approfondimenti
- In questo articolo un programma di esempio calcolo diametro con acquisizione ingressi digitali in task fast.
- In questo articolo un programma di esempio acquisizione bus Wiegand da counters in task fast.
- In questo topic si tratta la velocità acquisizione degli ingressi digitali per contaimpulsi.
Descrizione
| Parametro | Tipo | 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. |
| Out | BOOL | FALSE: Errore esecuzione, TRUE: Esecuzione Ok. |
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]