In logicLab non abbiamo più gestito flags impulsive come in Remoter (L’ambiente di sviluppo famiglia Picosyst), ma è estremamente facile realizzare in proprio queste flags. La funzione SysGetSysTime ritorna il valore di tempo espresso su di una variabile UDINT che si incrementa ogni 1 uS. Utilizzando un UDINT avremo il roll over del valore ogni 4294.967295 secondi (71 minuti).
Utilizzando questa funzione è possibile gestire in linguaggio ST una flags con impulso di un loop di programma che si attiva ogni 100mS. Ecco il listato del programma.
PLCPulse100:=FALSE; (* Pulse bit every 100 mS *)
IF ((SysGetSysTime(TRUE)-TimeBf) >= 100000) THEN
TimeBf:=SysGetSysTime(TRUE); (* Time buffer (uS) *)
PLCPulse100:=TRUE; (* Pulse bit every 100 mS *)
END_IF;
E solo modificando il valore di tempo nella IF ((SysGetSysTime(TRUE)-TimeBf) >= 100000) sarà possibile generare tutte le flags impulsive che servono.
In linguaggio ladder utilizzando il FB eTON è facilmente realizzabile la gestione di flags impulsive (Screenshot). Ho realizzato il programma Pulse100mS che contiene i due esempi in linguaggio LD ed ST (Download programma).