Leer y modificar el valor actual del contador de alta velocidad

El valor actual se almacena en una doble palabra en los registros especiales.

  • Programación con instrucciones F: Acceder al registro especial de datos utilizando la variable del sistema sys_diHscChannelxElapsedValue (donde x=número de canal).

  • Cuando se programa con las instrucciones Tool: Utilizar las instrucciones del contador de alta velocidad y de salida de pulsos universales que se son válidas para todos los tipos de PLCs para leer y escribir el valor actual.

Variables del sistema y áreas de memoria utilizadas:

Tipo de PLC

Contador de alta velocidad: valor actual del canal

Variables del sistema

FP-Sigma, FP-e

0-3

sys_diHscChannel0ElapsedValue- sys_diHscChannel3ElapsedValue

FP-X, Modelos a transistor

0-7

sys_diHscChannel0ElapsedValue- sys_diHscChannel7ElapsedValue

FP-X, Modelos a relé

0-B

sys_diHscChannel0ElapsedValue- sys_diHscChannelBElapsedValue

FP0R

0-5

sys_diHscChannel0ElapsedValue- sys_diHscChannel5ElapsedValue

Ejemplo: Leer el valor actual del canal 0 del contador de alta velocidad

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 
		bReadElapsedValue: BOOL:=FALSE;
			(*Reads the elapsed value*)
		diElapsedValue: DINT:=0;
			(*Outputs elapsed value*)
	END_VAR

Cuerpo de la POU

Se lee el valor actual del canal 0 del contador de alta velocidad desde y se copia en la variable diElapsedValue.

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bChangeElapsedValue,5,1,7,3,R);
B(B_VARIN,,3000,9,2,11,4,);
B(B_F,E_MOVE!,Instance,11,0,17,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_diHscChannel0ElapsedValue,17,2,19,4,);
L(1,2,5,2);
L(1,0,1,4);
L(7,2,11,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

if DF(bReadElapsedValue) then
    diElapsedValue:=sys_diHscChannel0ElapsedValue;
end_if;

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