Passa al contenuto principale

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​

Immagine Fct SysSetTaskLpTime

ParametroTipoDescrizione
TaskIDTASK_IDIdentifica la task a cui si vuole definire il tempo di esecuzione vedi tabella.
TTimeUDINTIndica il valore di tempo di esecuzione task espresso in μS.
OutBOOLFALSE: 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]