Salida de Pulsos: leer y modificar el valor actual

El valor actual se almacena en una doble palabra en los registros especiales. Acceder al registro especial de datos utilizando la variable del sistema sys_diPulseChannelxElapsedValue (donde x=número de canal).

Variables del sistema y áreas de memoria utilizadas

Salida de pulsos: valor actual para el canal

Variable del Sistema

Tipos de PLCs

FPS

FP-X, Modelos a transistor

FP0

FP-X, Modelos a relé

FP0R

0

sys_diPulseChannel0ElapsedValue

1

sys_diPulseChannel1ElapsedValue

 

2

sys_diPulseChannel2ElapsedValue

 

3

sys_diPulseChannel3ElapsedValue

 

 

Canal disponible:

Ejemplo: escribir el valor actual en el 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 
		bChangeElapsedValue: BOOL:=FALSE;
			(*Changes the elapsed value*)
	END_VAR

Cuerpo de la POU

Se escribe el valor inicial 3000 (valor actual) en el canal 0 del contador de alta velocidad.

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

Ejemplo: leer el valor actual del canal 0 de la salida de pulsos

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.

	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 := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bReadElapsedValue,7,1,9,3,R);
B(B_F,E_MOVE!,,18,0,24,4,,?DEN?D?AENO?C);
B(B_VAROUT,,diElapsedValue,24,2,26,4,);
B(B_VARIN,,sys_diPulseChannel0ElapsedValue,16,2,18,4,);
L(9,2,18,2);
L(1,2,7,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

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

Modificado el: 2021-11-10Comentarios sobre esta páginaPanasonic hotline