Questo blocco funzione a differenza del FB BLINK, esegue la temporizzazione di un ciclo On/Off con tempi random di On e di Off definibili tra valori minimo e massimo. Il massimo valore di tempo gestito è di oltre 1193 ore. Impostando 0 nei tempi Min e Max si ottiene una uscita impulsiva (Un loop) sulla relativa temporizzazione.
Attivando il comando Enable l'uscita Out esegue un lampeggio On/Off con tempi random compresi tra i valori minimo e massimo definiti. Disabilitando l'ingresso l'uscita Out si disattiva. In Delay è ritornato il valore di ritardo attualmente attivo, in Time è ritornato il countdown del tempo.
Function block
CODESYS: Non disponibile
LogicLab: eLLabUtyLib
Enable (BOOL) Abilitazione blocco funzione, attivandolo viene gestito il lampeggio dell'uscita Out. Disattivandolo l'uscita viene resettata.
MinOffTime (UDINT) Valore minimo di tempo in cui l'uscita rimane nello stato logico low, espresso in mS.
MaxOffTime (UDINT) Valore massimo di tempo in cui l'uscita rimane nello stato logico low, espresso in mS.
MinOnTime (UDINT) Valore minimo di tempo in cui l'uscita rimane nello stato logico high, espresso in mS.
MaxOnTime (UDINT) Valore massimo di tempo in cui l'uscita rimane nello stato logico high, espresso in mS.
Out (BOOL) Stato On/Off in uscita.
Delay (UDINT) Valore di tempo attualmente in temporizzazione, espresso in mS.
Time (UDINT) Countdown tempo in temporizzazione, espresso in mS.
Esempi
Come utilizzare gli esempi.
Viene impostato un lampeggio con tempi random di Off compresi tra 1 e 3 secondi, e tempi random di On compresi tra 500mS e 2 secondi.
PROGRAM ST_OnOffCycle_v1 VAR Lamp : BOOL; (* Lamp output *) VarOut : UDINT; (* Variable output *) Blink : OnOffCycle_v1; (* On/Off cycle FB *) END_VAR // ***************************************************************************** // PROGRAM "ST_OnOffCycle_v1" // ***************************************************************************** // Lamp blinks staying off for a random time between 1 to 3 S and on for a // random time between 500 mS to 2 S. // ----------------------------------------------------------------------------- // ------------------------------------------------------------------------- // INITIALIZATION // ------------------------------------------------------------------------- IF (SysFirstLoop) THEN Blink.MinOffTime:=1000; //Set the minimum off time Blink.MaxOffTime:=3000; //Set the maximum off time Blink.MinOnTime:=500; //Set the minimum on time Blink.MaxOnTime:=2000; //Set the maximum on time END_IF; // ------------------------------------------------------------------------- // LAMP BLINKING // ------------------------------------------------------------------------- Blink(Enable:=TRUE); //Call On/Off cycle FB VarOut:=Blink.Delay; //Delay time is copied to variable Lamp:=Blink.Out; //Lamp output // [End of file]
Ultimo aggiornamento: 22 Marzo 2020