Modificar el código de control del contador de alta velocidad

Para acceder al registro especial de datos que almacena el código de control del contador de alta velocidad y la salida de pulsos utilizar la variable del sistema sys_wHscOrPulseControlCode. (La variable del sistema sys_wHscOrPulseControlCode se corresponde con el registro especial de datos DT90052.)

Operaciones que se realizan por medio del código de control del contador de alta velocidad

La configuración del código de control de cada canal se puede monitorizar utilizando las variables del sistema sys_wHscChannelxControlCode o sys_wPulseChannelxControlCode (donde x= número del canal). La configuración de esta variable del sistema no se modifica hasta que se ejecute otra operación de configuración.

Cancelación de las instrucciones del contador de alta velocidad (bit 3)

Para cancelar la ejecución de la instrucción, poner a TRUE el bit 3 del registro de datos que almacena el código de control del contador de alta velocidad (sys_wHscOrPulseControlCode). La bandera de control del contador de alta velocidad pasa a FALSE. Para habilitar la ejecución de la instrucción del contador de alta velocidad, poner el bit 3 a FALSE.

Habilitar/deshabilitar la entrada de reset (reset por hardware) del contador de alta velocidad (bit 2)

X0 Entrada del contador de alta velocidad

  1.  (1) Valor actual
  2.  (2) Bit 2 del código de control del contador de alta velocidad (habilitar/deshabilitar la entrada de reset)
  3.  (3) El valor actual se pone a 0
  4.  (4) No es posible un reset

Cuando el bit 2 del código de control se pone a TRUE, no es posible realizar un reset por hardware utilizando la entrada especificada en el registro del sistema. El contaje continuará incluso si la entrada de reset pasa a TRUE. El reset por hardware está deshabilitado hasta que el bit 2 se pone a 0.

Habilitar/deshabilitar las operaciones de contaje (bit 1)

Operación de control de la entrada de contaje

X0 Entrada del contador de alta velocidad

  1.  (1) Valor actual
  2.  (2) Bit 1 del código de control del contador de alta velocidad (contaje)

Cuando el bit 1 del código de control se pone a TRUE, se inhabilita el contaje y el valor actual mantiene su valor. El contaje continúa cuando el bit 1 se pone a FALSE.

Resetear el valor actual (reset por software) del contador de alta velocidad (bit 0)

X0 Entrada del contador de alta velocidad

  1.  (1) Valor actual
  2.  (2) Bit 0 del código de control del contador de alta velocidad (reset por software)

Cuando el bit 0 del código de control se pone a TRUE, se realiza un reset por software y el valor actual se pone a 0. El valor actual se mantiene a 0 hasta que el bit 0 se pone a FALSE.

Descripción para el FP-Sigma, FP-X, FP0R

Los bits del 0–15 del código de control se distribuyen en grupos de cuatro. El valor del bit en cada grupo, se representada por un número hexadecimal (por ejemplo 00020000 0000 1001 = 16#2009).

  1.  (1) Número de canal (canal n: 16#n)
  2.  (2) Cancelar la instrucción del contador de alta velocidad (bit 3)

    0: continuar/1: cancelar

  3.  (3) Entrada de reset (bit 2) (ver nota)

    0: habilitado/1: deshabilitado

  4.  (4) Contaje (bit 1)

    0: permitir/1: prohibir

  5.  (5) Resetear el valor actual. Poner a 0 (bit 0)

    0: no/1: si

Ejemplo: 16#2009

Grupo

Valor

Descripción

IV

2

Número de canal: 2

III

0

(fijo)

II

0

(fijo)

I

9

9 Hex corresponde a 1001 binario

Cancelar la instrucción del contador de alta velocidad: cancelar (bit 3)

1

Entrada de reset: habilitado (bit 2)

0

Contaje: permitir (bit 1)

0

Resetear el valor actual. Poner a 0: si (bit 0)

1

Descripción para el FP0, FP-e

Los bits del 0 al 15 del código de control se distribuyen en grupos de cuatro, cada grupo contiene la configuración de un canal. El valor del bit en cada grupo, se representada por un número hexadecimal (por ejemplo 0000 0000 1001 0000 = 16#90).

  1.  (1) Cancelar la instrucción del contador de alta velocidad (bit 3)

    0: continuar/1: cancelar

  2.  (2) Entrada de reset (bit 2) (ver nota)

    0: habilitado/1: deshabilitado

  3.  (3) Contaje (bit 1)

    0: permitir/1: prohibir

  4.  (4) Resetear el valor actual. Poner a 0 (bit 0)

    0: no/1: si

Grupo

IV

III

II

I

Canal

3

2

1

0

Ejemplo: 16#90

Grupo

Valor

Descripción

IV

0

III

0

II

9

Número de canal: 1

9 Hex corresponde a 1001 binario

Cancelar la instrucción del contador de alta velocidad: cancelar (bit 3)

1

Entrada de reset: habilitado (bit 2)

0

Contaje: permitir (bit 1)

0

Resetear el valor actual. Poner a 0: si (bit 0)

1

I

0

NOTA

Al poner la entrada de reset a TRUE, el valor actual pasa a 0. Utilizar la configuración de la entrada (bit 2) para deshabilitar la entrada en los registros del sistema.

Ejemplo: Reset por software para el canal 0

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

	VAR
		bSoftwareReset: BOOL:=FALSE;
			(*Activates the function*)
	END_VAR
	VAR CONSTANT 
		HSC_CH0_RESET_ELAPSED_VALUE: WORD:=16#0001;
			(*Resets elapsed value of channel 0*)
		HSC_CH0_CONTINUE: WORD:=16#0000;
			(*Continues counting in channel 0*)
	END_VAR
	VAR 
	END_VAR

Cuerpo de la POU

Para comenzar a contar, el reset se realiza en el paso 1, y se introduce un 0 inmediatamente después en el paso 2. Un reset simplemente no inicia el contaje.

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,HSC_CH0_RESET_ELAPSED_VALUE,22,2,24,4,);
B(B_CONTACT,,bSoftwareReset,5,1,7,3,R);
B(B_VARIN,,HSC_CH0_CONTINUE,22,6,24,8,);
B(B_F,E_MOVE!,Instance,24,0,30,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,30,2,32,4,);
B(B_F,E_MOVE!,Instance,24,4,30,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,30,6,32,8,);
L(1,2,5,2);
L(7,2,8,2);
L(8,2,24,2);
L(8,6,24,6);
L(8,2,8,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

if DF(bSoftwareReset) then
    sys_wHscOrPulseControlCode:=HSC_CH0_RESET_ELAPSED_VALUE;
    sys_wHscOrPulseControlCode:=HSC_CH0_CONTINUE;
end_if;

Ejemplo: Reset por software para el canal 1 (FP-SIGMA, FP-X, FP0R

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

	VAR
		bSoftwareReset: BOOL:=FALSE;
			(*Activates the function*)
	END_VAR
	VAR CONSTANT 
		HSC_CH1_RESET_ELAPSED_VALUE: WORD:=16#1001;
			(*Resets elapsed value of channel 1*)
		HSC_CH1_CONTINUE: WORD:=16#1000;
			(*Continues counting in channel 1*)
	END_VAR
	VAR 
	END_VAR

Cuerpo de la POU

Para comenzar a contar, el reset se realiza en el paso 1, y se introduce un 0 inmediatamente después en el paso 2. Un reset simplemente no inicia el contaje.

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,HSC_CH1_RESET_ELAPSED_VALUE,24,2,26,4,);
B(B_CONTACT,,bSoftwareReset,5,1,7,3,R);
B(B_VARIN,,HSC_CH1_CONTINUE,24,6,26,8,);
B(B_F,E_MOVE!,Instance,26,0,32,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,32,2,34,4,);
B(B_F,E_MOVE!,Instance,26,4,32,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,32,6,34,8,);
L(1,2,5,2);
L(7,2,8,2);
L(8,2,26,2);
L(1,0,1,8);
L(8,6,26,6);
L(8,2,8,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

if DF(bSoftwareReset) then
    sys_wHscOrPulseControlCode:=HSC_CH1_RESET_ELAPSED_VALUE;
    sys_wHscOrPulseControlCode:=HSC_CH1_CONTINUE;
end_if;

Modificado el: 2021-07-14Comentarios sobre esta páginaPanasonic hotline