Descripción
La instrucción "Parametrizar e incrementar contador" permite incrementar 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. El valor de contaje actual se deposita en el parámetro CV. El valor de contaje sigue incrementando hasta alcanzar el límite de "999". Una vez alcanzado el valor límite, el valor de contaje no se incrementa más aunque se detecte un flanco de señal ascendente.
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 la entrada CU 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 estado lógico del parámetro R sea "1", un cambio en el estado lógico de los parámetros CU 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 |
|
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 |
|
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:
|
"Tag_Result" := S_CU(C_NO := "Counter_1", |
|
CU := "Tag_Start", |
|
S := "Tag_1", |
|
PV := "Tag_PresetValue", |
|
R := "Tag_Reset", |
|
Q => "Tag_Status", |
|
CV => "Tag_Value"); |
Cuando el estado lógico del parámetro "Tag_Start" cambia de "0" a "1" (flanco de señal ascendente) y el valor de contaje actual es menor que "999", este valor se incrementará en uno. Si el estado lógico de la entrada "Tag_1" cambia de "0" a "1", el valor de contaje en formato BCD se pone al valor del operando "Tag_PresetValue". 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 formato hexadecimal en el operando "Tag_Value".
La salida "Tag_Status" devuelve el estado lógico "1" mientras el valor de contaje actual sea diferente a "0". El valor actual de contaje se guarda en el operando "Tag_Value" y se devuelve como valor de función.