CTU

Ingresso conteggio avanti

Il Function Block CTU (count up) vi consente di programmare procedure di conteggio.

Il conteggio parte da zero fino a raggiungere il valore massimo di 32767. Ogni fronte di salita al conteggio in avanti a CU aumenta il valore al valore attuale CV di 1.

Parametri

Ingresso

CU (BOOL)

conteggio avanti

il valore 1 viene sommato a CV per ogni fronte di salita in CU, eccetto quanto viene impostato R

R (BOOL)

Reset

Un fronte di salita su R reimposta il valore attuale CV a zero e il conteggio si arresta. L'uscita Q viene impostata su FALSE.

Il successivo fronte di discesa a R riavvia il conteggio.

PV (INT)

Valore preimpostato

se CV è maggiore di/uguale a PV, Q viene impostata su TRUE

Se non è stato impostato un valore preimpostato o se il valore preimpostato è zero, l'uscita Q viene impostata su TRUE subito dopo l'avvio del conteggio.

Uscita

Q (BOOL)

uscita segnale

viene impostata su TRUE se CV è maggiore di/uguale a PV

viene impostata su FALSE se viene rilevato un fronte di salita su R.

CV (INT)

Valore attuale

  • Contiene il risultato della somma

  • Se CV raggiunge il valore preimpostato PV, l'uscita Q viene impostata su TRUE, ma il conteggio continua fino a quando il limite massimo di 32767 viene raggiunto.

  • Il valore può essere modificato durante l'operazione di conteggio scrivendo sulla variabile dall'editor di programmazione.

Diagramma tempi

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	VAR
		CTU1: CTU;
		bReset: BOOL:=FALSE;
			(*sets CV to zero if TRUE*)
		iPresetValue: INT:=3;
			(*if CV reaches this value,
output Q is set*)
		bUpCounting_PV_reached: BOOL:=FALSE;
			(*is set, if CV reaches PV*)
		iCurrentValue: INT:=0;
			(*contains the current value*)
	END_VAR

Corpo del POU

Se bReset viene impostato (stato = TRUE), iCurrentValue (CV) verrà resettato. Se viene rilevato un fronte di salita in CU, il valore 1 verrà sommato a iCurrentValue. Se viene rilevato un fronte di salita in CU, questa procedura verrà ripetuta finché iCurrentValue è maggiore di/uguale a iPresetValue. Dopo di che verrà impostato bUpCounting_PV_reached su TRUE.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_CONTACT,,sys_bPulse1s,5,2,7,4,);
B(B_FB,CTU!,CTU1,12,1,17,6,,?BCU?BR?BPV?AQ?ACV);
B(B_COIL,,bUpCounting_PV_reached,23,2,25,4,);
B(B_CONTACT,,bReset,5,4,7,6,);
B(B_VAROUT,,iCurrentValue,18,4,20,6,);
B(B_VARIN,,iPresetValue,7,6,9,8,);
L(1,0,1,8);
L(1,3,5,3);
L(7,3,12,3);
L(17,3,23,3);
L(9,4,12,4);
L(9,4,9,5);
L(17,4,17,5);
L(1,5,5,5);
L(7,5,9,5);
L(10,5,12,5);
L(17,5,18,5);
L(10,5,10,7);
L(9,7,10,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

CTU1(CU := sys_bPulse1s, R := bReset, PV := iPresetValue,
     Q => bUpCounting_PV_reached, 
	 CV => iCurrentValue);

Corpo IL

L'ultima revisione: 2021-09-27Feedback su questa paginaPanasonic hotline