S_CUD: Parametrizar e incrementar/decrementar contador (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_CUD: Parametrizar e incrementar/decrementar contador

Descripción

La instrucción "Parametrizar e incrementar/decrementar contador" permite incrementar y decrementar el valor de un contador. Si el estado lógico del parámetro CU cambia de "0" a "1" (flanco de señal ascendente), el valor de contaje actual se incrementa en uno. Si el estado lógico del parámetro CD cambia de "0" a "1" (flanco de señal ascendente), el valor de contaje se decrementa en uno. El valor de contaje actual se deposita en el parámetro CV. Si en un ciclo del programa se detecta un flanco de señal ascendente en los parámetros CU y CD el valor de contaje permanece invariable.

El valor de contaje sigue incrementando hasta alcanzar el límite superior "999". Una vez alcanzado el valor límite superior, el valor de contaje no se incrementa más aunque se detecte un flanco de señal ascendente. Cuando se alcanza el valor límite inferior "0", no se decrementa más el valor de contaje.

Cuando el estado lógico del parámetro S cambia de "0" a "1", el valor de contaje adopta el valor del parámetro PV. Si el contador se activa y el resultado lógico (RLO) de los parámetros CU y CD es "1", el contador cuenta una única vez en el ciclo siguiente aunque no se detecte ningún cambio de flanco.

El valor de contaje se pone a cero cuando el estado lógico del parámetro R cambia a "1". Mientras el parámetro R tenga el estado lógico "1", el estado lógico de los parámetros CU, CD y S no tiene ningún efecto sobre el valor de contaje.

El estado lógico del parámetro Q es "1" si el valor de contaje es mayor que cero. Si el valor de contaje es igual a cero, el parámetro Q devuelve el estado lógico "0".

Nota

Utilice el contador en una sola posición del programa para evitar fallos de contaje.

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

C_NO

Input

COUNTER, INT

C

Contadores

La cantidad de contadores depende de la CPU

CU

Input

BOOL

I, Q, M, D, L

Entrada de contaje ascendente

CD

Input

BOOL

I, Q, M, D, L

Entrada de contaje descendente

S

Input

BOOL

I, Q, M, D, L

Entrada para preajustar el contador

PV

Input

WORD

I, Q, M, D, L, P

Valor de contaje predeterminado (C#0 a C#999) en formato BCD

R

Input

BOOL

I, Q, M, D, L

Entrada de reset

Q

Output

BOOL

I, Q, M, D, L

Estado del contador

CV

Output

WORD

I, Q, M, D, L, P

Valor de contaje actual (hexadecimal)

Valor de función

WORD

I, Q, M, D, L, P

Valor de contaje actual en formato BCD

Encontrará más información sobre los tipos de datos válidos en "Consulte también".

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_CUD(C_NO := "Counter_1",

                      CU := "Tag_CU",

                      CD := "Tag_CD",

                      S := "Tag_1",

                      PV := "Tag_PresetValue",

                      R := "Tag_Reset",

                      Q => "Tag_Status",

                      CV => "Tag_Value");

Cuando se detecta un flanco de señal ascendente en el estado lógico del operando "Tag_CU" y el valor de contaje actual es menor que "999", el valor de contaje se incrementa en uno. Cuando se detecta un flanco de señal ascendente en el estado lógico del operando "Tag_CD" y el valor de contaje actual es mayor que "0", el valor de contaje se decrementa en uno.

Cuando el estado lógico del operando "Tag_1" cambia de "0" a "1", el valor de contaje adopta el valor del operando "Tag_PresetValue" en formato BCD. El valor de contaje se pone a "0" si el operando "Tag_Reset" tiene el estado lógico "1".

El valor de contaje actual se almacena en el operando "Tag_Value".

El operando "Tag_Status" devuelve el estado lógico "1" mientras el valor de contaje actual sea distinto de "0". El valor actual de contaje se guarda en el operando "Tag_Value" y se devuelve como valor de función.