S_PULSE: Parametrizar y arrancar temporizador como impulso (S7-300, S7-400) - STEP 7

SCL (S7-300, S7-400)

ft:publication_title
SCL (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
es-ES
S_PULSE: Parametrizar y arrancar temporizador como impulso

Descripción

La instrucción "Parametrizar y arrancar temporizador como impulso" arranca el temporizador programado en el parámetro T_NO cuando se detecta un cambio del resultado lógico (RLO) de "0" a "1" (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 estado lógico del parámetro S cambia a "0" antes de que transcurra el tiempo programado, el temporizador se detiene y el parámetro "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 a "1", el valor actual de tiempo y la base de tiempo también se ponen a cero. Si el temporizador no está en marcha, el estado lógico "1" de la entrada R no provoca ningún efecto.

El parámetro Q devuelve el estado lógico "1" mientras el temporizador está contando y el estado lógico del parámetro S es "1". Si el estado lógico del parámetro S cambia a "0" antes de que transcurra el tiempo programado, el parámetro Q devuelve el estado lógico "0". Si el parámetro R resetea el temporizador o si el tiempo ha transcurrido, el parámetro Q también devuelve el estado lógico "0".

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 impulso":

Ejemplo

El siguiente ejemplo muestra el funcionamiento de la instrucción:

SCL Copia el código de programa siguiente en el portapapeles.

"Tag_Result" := S_PULSE(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 empieza a contar con el valor de tiempo del operando "Tag_Number" y sigue contando mientras el operando "Tag_1" devuelva el estado lógico "1".

Si el estado lógico del parámetro S cambia a "0" antes de que transcurra el tiempo programado, el operando "Tag_Status" adopta el estado lógico "0". Si el parámetro R resetea el temporizador o si el tiempo ha transcurrido, el operando "Tag_Status" también devuelve 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.