Temporizador de retardo a la desconexión con restablecimiento (TOFR)
La instrucción TOFR es un temporizador no retentivo que acumula tiempo cuando TimerEnable está borrado.
Detalles de soporte de arquitectura y seguridad
En esta tabla se especifican los controladores y las aplicaciones compatibles con esta instrucción.
Arquitectura | Aplicaciones estándar | Aplicaciones de seguridad |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, GuardLogix 5570 | Sí | No |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580, ControlLogix 5590 | Sí | Sí |
Idiomas disponibles
Diagrama de lógica de escalera
Esta instrucción no está disponible en el diagrama de escalera.
Bloque de funciones

Texto estructurado
TOFR(TOFR_tag)
Operandos
Texto estructurado
Variable | Tipo | Formato | Descripción |
|---|---|---|---|
Etiqueta TOFR | FBD_TIMER | Estructura | Estructura TOFR |
Consulte Sintaxis de texto estructurado para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Bloque de funciones
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
TOFR tag | FBD_TIMER | Estructura | Estructura TOFR |
Estructura de FBD_TIMER
Parámetros de entrada | Tipo de datos | Descripción |
|---|---|---|
EnableIn | BOOL | Si no está activada, la instrucción no se ejecuta y las salidas no se actualizan. Si está establecida, la instrucción se ejecuta. Está establecido de forma predeterminada. |
TimerEnable | BOOL | Si se borra, permite que el temporizador funcione y acumule tiempo. Está borrado de forma predeterminada. |
PRE | DINT | Valor preestablecido del temporizador. Es el valor en unidades de 1 msec al que ACC debe llegar antes de que acabe el temporizador. Si no es válido, la instrucción establece el bit correspondiente en Status y el temporizador no se ejecuta. Válido = de 0 al número entero positivo máximo |
Reset | BOOL | Petición para restablecer el temporizador. Cuando se establece, se restablece el temporizador. Está borrado de forma predeterminada. Cuando se activa el parámetro de entrada Reset, la instrucción borra EN, TT y DN, y establece ACC = PRE. Nota: esto es diferente a usar una instrucción RES en una instrucción TOF. |
Parámetros de salida | Tipo de datos | Descripción |
|---|---|---|
EnableOut | BOOL | La instrucción ha producido un resultado válido. |
ACC | BOOL | Tiempo acumulado en milisegundos. |
EN | BOOL | Salida del temporizador habilitada Indica que la instrucción del temporizador está habilitada. |
TT | BOOL | Salida de temporización del temporizador. Cuando se establece, una operación de temporización está en proceso. |
DN | BOOL | Salida de temporización finalizada. Indica cuándo el tiempo acumulado es mayor o igual al preestablecido. |
Status | DINT | Estado del bloque de funciones. |
InstructFault (Status.0) | BOOL | La instrucción detectó uno de los siguientes errores de ejecución. No se trata de un error mayor o menor del controlador. Se comprueban los bits de estado restantes para determinar lo que ha ocurrido. |
PresetInv (Status.1) | BOOL | El valor preestablecido no es válido. |
Descripción
Cuando sea verdadero, la instrucción TOFR acumula tiempo hasta que:
- La instrucción TOFR está deshabilitada.
- ACC es mayor o igual que PRE
La base de tiempo es siempre 1 msec. Por ejemplo, para poner un temporizador de 2 segundos, hay que introducir 2000 en el valor PRE.

Establece el parámetro de entrada Reset para restablecer la instrucción. Si TimerEnable es falso cuando Reset es verdadero, la instrucción TOFR no comenzará una temporización de nuevo cuando Reset se establezca en falso.
Cómo se ejecuta un temporizador
Un temporizador funciona restando el tiempo del último escaneado desde el tiempo actual:
ACC = ACC + (current_time - last_time_scanned)
Tras actualizar el ACC, el temporizador establece last_time_scanned = current_time. Esto hace que el temporizador se prepare para el siguiente escaneado.
IMPORTANTE:
Asegúrese de escanear el temporizador al menos una vez cada 69 minutos mientras esté en marcha. En caso contrario, el valor ACC no será correcto.
El valor de last_time_scanned alcanza hasta los 69 minutos. El cálculo del temporizador se reinvierte si no se escanea el temporizador en 69 minutos. El valor ACC no será correcto si esto ocurre.
Cuando el temporizador esté en marcha, hay que escanearlo en 69 minutos si lo ha puesto en:
- Subrutina
- Sección de código que está entre las instrucciones JMP y LBL
- Diagrama de funciones secuenciales (SFC)
- Evento o tarea periódica
- Estado de rutina de una fase
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. Consulte para ver fallos relacionados con operandos.
Ejecución
Bloque de funciones
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Tag. EnableIn es falso | Los bits EnableIn y EnableOut se establecen en falsos. |
Tag. EnableIn es verdadero | Los bits EnableIn y EnableOut se establecen en verdaderos. El algoritmo principal de la instrucción se ejecutará y las salidas se actualizarán. |
Primera ejecución de instrucción | N/A |
Primer escaneado de instrucción | Se borran EN, TT y DN. No se modifica el valor ACC. |
Restablecer | Cuando se activa el parámetro de entrada Reset, la instrucción borra EN, TT y DN, y establece ACC = PRE. (Esto es diferente a usar una instrucción RES en una instrucción TOF.) |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Texto estructurado
En Texto estructurado, EnableIn siempre es Verdadero durante un escaneado normal. Si la instrucción se encuentra en la ruta de control activada por la lógica, se ejecutará.
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | Consulte Pre-escaneado en la tabla Bloque de funciones. |
Ejecución normal | Consultar Tag.EnableIn es verdadero en la tabla Bloque de funciones. |
Post-escaneado | Consulte Post-escaneado en la tabla Bloque de funciones. |
Ejemplo
En cada escaneado que se borra limit_switch1, la instrucción TOFR aumenta el valor ACC según el tiempo que haya pasado hasta que el valor ACC alcance el valor PRE. Cuando ACC
PRE, se borra el parámetro DN y se establece timer_state2.
PRE, se borra el parámetro DN y se establece timer_state2.Bloque de funciones

Texto estructurado
TOFR_01.PRE := 500;
TOFR_01.Reset := Reset;
TOFR_01.TimerEnable := Input;
TOFR(TOFR_01);
timer_state := TOFR_01.DN;
Entregue su opinión