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: ●
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
Se escribe el valor inicial 3000 (valor actual) en el canal 0 del contador de alta velocidad.
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
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
Se lee el valor actual del canal 0 del contador de alta velocidad desde y se copia en la variable diElapsedValue.
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
if DF(bReadElapsedValue) then
diElapsedValue:=sys_diHscChannel0ElapsedValue;
end_if;