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.

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]