Descripción
La instrucción "Parametrizar y arrancar temporizador como retardo a la conexión" arranca el temporizador programado como retardo a la conexión cuando se detecta un flanco de señal ascendente en el parámetro S. El temporizador cuenta el tiempo programado TV mientras el estado lógico del parámetro S sea "1".
Si el tiempo ha transcurrido correctamente y el parámetro S sigue presentando el estado lógico "1", el parámetro Q devuelve el estado lógico "1". Si el estado lógico del parámetro S cambia de "1" a "0" mientras el temporizador está contando, este se detiene. En este caso, la salida Q adopta el estado lógico "0".
El tiempo se compone internamente de un valor de tiempo y una base de tiempo y se programa en el parámetro TV. Cuando se inicia la instrucción, el valor de tiempo programado se cuenta hacia atrás hasta cero. La base de tiempo indica con qué periodo de tiempo se modifica el valor de tiempo. El valor actual de tiempo se deposita en el parámetro BI.
Si el temporizador está contando y el estado lógico de la entrada R cambia de "0" a "1", el valor actual de tiempo y la base de tiempo también se ponen a cero. En este caso, el estado lógico del parámetro Q es "0". El temporizador se resetea si el parámetro R presenta el estado lógico "1", aunque el temporizador no esté en marcha y el resultado lógico (RLO) del parámetro S sea "1".
Los datos de la instrucción se actualizan con cada acceso. Por este motivo es posible que una consulta de datos al principio del ciclo devuelva valores diferentes en comparación con el fin del ciclo.
|
Nota En la célula de temporización, el sistema operativo reduce el valor de tiempo en una unidad respectivamente, y en un intervalo definido por la base de tiempo, hasta que el valor de tiempo sea "0". La reducción se realiza de modo asíncrono respecto al programa de usuario. De este modo el tiempo resultante es menor que el valor de tiempo deseado, como máximo hasta un intervalo de la base de tiempo. |
Encontrará un ejemplo de la estructura de una célula de temporización en: Consulte también "L: Cargar valor del temporizador".
Parámetro
La tabla siguiente muestra los parámetros de la instrucción:
|
Parámetros |
Declaración |
Tipo de datos |
Área de memoria |
Descripción |
|---|---|---|---|---|
|
T_NO |
Input |
TIMER, INT |
T |
Temporizador que arranca. El número de temporizadores depende de la CPU. |
|
S |
Input |
BOOL |
I, Q, M, D, L |
Entrada de arranque |
|
TV |
Input |
S5TIME, WORD |
I, Q, M, D, L |
Valor de tiempo predeterminado |
|
R |
Input |
BOOL |
I, Q, M, D, L, P |
Entrada de reset |
|
Q |
Output |
BOOL |
I, Q, M, D, L, P |
Estado del temporizador |
|
BI |
Output |
WORD |
I, Q, M, D, L, P |
Valor actual de tiempo en código dual |
|
Valor de función |
S5TIME |
I, Q, M, D, L |
Valor de tiempo actual |
|
Encontrará más información sobre los tipos de datos válidos en "Consulte también".
Cronograma de impulsos
La imagen siguiente muestra el cronograma de impulsos de la instrucción "Parametrizar y arrancar temporizador como retardo a la conexión":
Ejemplo
El siguiente ejemplo muestra el funcionamiento de la instrucción:
|
"Tag_Result" := S_ODT(T_NO := "Timer_1", S := "Tag_1", TV := "Tag_Number", R := "Tag_Reset", Q := "Tag_Status", BI := "Tag_Value"); |
Cuando el estado lógico del operando "Tag_1" cambia de "0" a "1", el temporizador "Timer_1" se pone en marcha. El temporizador cuenta el tiempo "Tag_Number" mientras el estado lógico del operando "Tag_1" sea "1".
Si el tiempo ha transcurrido correctamente y el operando "Tag_Status" presenta el estado lógico "1", el operando "Tag_Status" se pone a "1". Si el estado lógico del operando "Tag_1" cambia de "1" a "0" mientras el temporizador está contando, este se detiene. El operando "Tag_Status" devuelve en ese caso el estado lógico "0".
El valor actual de tiempo se guarda en código dual en el operando "Tag_Value" y se devuelve como valor de función.