Descripción
La instrucción "Acumulador de tiempo" acumula valores de tiempo dentro de un periodo definido con ayuda de la entrada PV. La instrucción se ejecuta cuando el estado lógico de la entrada de arranque TMR_EN cambia de "0" a "1". Simultáneamente, el temporizador cuenta el tiempo programado en la entrada PV. Mientras se ejecuta la instrucción, añade el valor de tiempo de la entrada DELTA_T al valor de tiempo de InOut ET.
Además, deben cumplirse las siguientes condiciones:
-
La entrada de arranque TMR_EN devuelve el estado lógico "1".
-
El valor de tiempo de InOut ET es menor que el valor de tiempo del parámetro PV.
-
La entrada RESET devuelve el estado lógico "0".
La instrucción se interrumpe cuando el estado lógico de la entrada de arranque TMR_EN cambia de "1" a "0". En cuanto el estado lógico cambia de nuevo a "1", la instrucción sigue ejecutándose.
La instrucción finaliza cuando el valor de tiempo de InOut ET alcanza el valor de tiempo de la entrada PV. Entonces, la salida Q devuelve el estado lógico "1".
Mientras la salida Q devuelva el estado lógico "1", el valor de tiempo de InOut ET no se modificará. El valor de tiempo y la salida Q vuelven a ponerse a "0" solo cuando la entrada RESET se pone al estado lógico "1".
Puesto que la instrucción "Acumulador de tiempo" utiliza el tiempo de ciclo (DELTA_T) del último ciclo del bloque de organización (OB), la instrucción solo puede llamarse en bloques de organización cíclicos.
|
Nota El tiempo de ciclo del bloque de organización debe desplazarse desde la información de arranque a la variable global del parámetro DELTA_T. |
Sintaxis
La tabla siguiente muestra los parámetros de la instrucción:
|
Parámetro |
Declaración |
Tipo de datos |
Área de memoria |
Descripción |
|---|---|---|---|---|
|
TMR_EN (Timer Enable) |
Input |
BOOL |
I, Q, M, D, L |
Entrada de arranque Arranca la instrucción y la temporización predeterminada en la entrada PV |
|
RESET |
Input |
BOOL |
I, Q, M, D, L |
Entrada de reset |
|
PV (Preset Value) |
Input |
DINT |
I, Q, M, D, L, P o constante |
Tiempo máximo de lectura del tiempo |
|
DELTA_T |
Input |
INT |
I, Q, M, D, L o constante |
Tiempo de ciclo del bloque de organización del ciclo anterior |
|
Q |
Output |
BOOL |
I, Q, M, D, L |
Salida que se establece al alcanzar el valor de tiempo predeterminado |
|
ET (Elapsed Time) |
InOut |
DINT |
I, Q, M, D, L |
Valor de tiempo acumulado (Valor de tiempo transcurrido actualmente + valor de tiempo de la entrada DELTA_T) |
|
Valor de función |
VOID |
Valor de función vacío |
||
Encontrará más información sobre los tipos de datos válidos en "Consulte también".
Cronograma de impulsos
La figura siguiente muestra el cronograma de impulsos de la instrucción "Acumulador de tiempo":
Ejemplo
El siguiente ejemplo muestra el funcionamiento de la instrucción:
|
"Tag_Result" := TONR_X(TMR_EN := "Tag_Start", |
|
RESET := "Tag_Reset", |
|
"PV := 10 |
|
DELTA_T := 2, |
|
Q => "Tag_Output", |
|
ET := "Tag_Elapsed_Time"); |
En cada cambio del estado lógico de "0" a "1" en la entrada TMR_EN, el tiempo de ciclo "2" de la entrada DELTA_T se añade al valor de tiempo actual de InOut ET, hasta que se alcanza el valor de tiempo máximo "10" de la entrada PV.