Descripción
La instrucción "Impulso" permite activar el parámetro Q durante el tiempo PT. La instrucción se inicia cuando el resultado lógico (RLO) del parámetro IN cambia de "0" a "1" (flanco de señal ascendente). El tiempo programado PT empieza a contar al iniciar la instrucción. El parámetro Q se activa por el tiempo PT, independientemente de cómo evolucione la señal en el parámetro IN. La detección de un nuevo flanco de señal ascendente tampoco influye en el estado lógico del parámetro Q mientras transcurre el tiempo PT.
El valor actual de tiempo se puede consultar en el parámetro ET. Este valor de tiempo empieza a partir de T#0s y termina al alcanzarse el valor del tiempo PT. Si cuando se alcanza el tiempo PT el estado lógico del parámetro IN es "0", se resetea el parámetro ET.
A cada llamada de la instrucción "Impulso" debe asignársele un temporizador CEI, en el que se guardan los datos de la instrucción. Un temporizador CEI se puede declarar como se indica a continuación:
-
Declaración de un bloque de datos del tipo TP (p. ej. "TP_DB")
-
Declaración como variable local del tipo TP en la sección "Static" de un bloque (p. ej., #MyTP_TIMER)
Al insertar la instrucción en el programa, el cuadro de diálogo "Opciones de llamada" se abre automáticamente; en él se puede determinar si el temporizador CEI se deposita en un bloque de datos propio (instancia individual) o bien como variable local (multiinstancia) en la interfaz del bloque. Si crea un bloque de datos propio, lo encontrará en el árbol del proyecto, en "Bloques de programa > Bloques de sistema", carpeta "Recursos de programa", . Encontrará más información al respecto en "Consulte también".
El sistema operativo inicializa las instancias de la instrucción "Impulso" cuando se efectúa un arranque en frío. Si alguna instancia de la instrucción debe estar inicializada tras un rearranque completo (en caliente), las instancias que se deben inicializar se deben llamar en un OB de arranque con el valor "0" en el parámetro PT. Si un bloque diferente contiene instancias de la instrucción "Impulso", estas pueden inicializarse p. ej. inicializando el bloque de nivel superior.
|
Nota Ignorar instrucción Si en el programa no se llama la instrucción porque, p. ej., esta es ignorada, la salida ET devuelve un valor de constante en cuanto ha transcurrido este tiempo. |
|
Nota Actualización de los datos de la instrucción Los datos de la instrucción se actualizan únicamente al llamar la instrucción. Al acceder a las salidas Q o ET, no se actualizan los datos. |
Temporizador CEI como bloque de datos de instancia del tipo de datos de sistema <Temporizador_CEI> (Shared DB)
Un temporizador CEI se puede declarar como bloque de datos del modo siguiente:
<DB_temporizador_CEI>.TP();
Temporizador CEI como variable local de la interfaz del bloque (multiinstancia)
El temporizador CEI se puede declarar como variable local del modo siguiente:
#myLocal_Timer();
Parámetros
La tabla siguiente muestra los parámetros de la instrucción:
|
Parámetro |
Declaración |
Tipo de datos |
Área de memoria |
Descripción |
|---|---|---|---|---|
|
IN |
Input |
BOOL |
I, Q, M, D, L |
Entrada de arranque |
|
PT |
Input |
TIME |
I, Q, M, D, L, P |
Duración del impulso. El valor del parámetro PT debe ser positivo. |
|
Q |
Output |
BOOL |
I, Q, M, D, L |
Operando que se activa por el tiempo PT. |
|
ET |
Output |
TIME |
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 figura siguiente muestra el cronograma de impulsos de la instrucción "Impulso":
Ejemplo
El siguiente ejemplo muestra el funcionamiento de la instrucción:
|
"TP_DB".TP(IN := "Tag_Start", PT := "Tag_PresetTime", Q => "Tag_Status", ET => "Tag_ElapsedTime"); |
Cuando el estado lógico del operando "Tag_Start" cambia de "0" a "1", el tiempo programado en el parámetro PT empieza a contar y el operando "Tag_Status" pasa a "1". El valor de tiempo actual se guarda en el operando "Tag_ElapsedTime".