A OFF cuando alcanza el valor de preselección (salida de pulsos)
Si el valor actual alcanza el valor de preselección diTargetValue del canal especificado en iChannel, la salida especificada en pYOutput pasa a FALSE.
Entrada
La función se activa en el flanco de subida; para evaluar la bandera de control de la salida de pulsos para el canal, utilizar la instrucción PulseInfo_IsTargetValueMatchActive
FPS: 0, 2
FP-X R: 0, 1
FP-X 16K C14T: 0, 1, 2
FP-X 32K C30T, C60T: 0, 1, 2, 3
FP0R: 0, 1, 2, 3
FP0: 0, 1
FP-e: 0, 1
Puntero que se obtiene como resultado de GetPointer a partir de una variable global que contiene el número de canal y la salida
Especificar un valor de 32 bits para el valor de preselección dentro del siguiente rango:
FP0, FP-e: -838808–+8388607
FPS, FP-X, FP0R: -2147483467–+2147483648
Salida
TRUE si la combinación de Channel%d
y pYOuput.iOffset
no es una combinación válida de número de canal y salida conforme se haya especificado en la variable global.
Esta instrucción forma parte de las instrucciones Tool de salida de pulsos. Para obtener información más detallada sobre las instrucciones que utiliza internamente, consultar la:F167_PulseOutput_Reset
Para validar la combinación del canal y salida Y, el compilador necesita el siguiente patrón de nombres para las variables globales: %sPulse_TargetValueMatch_Channel%d_Y%d_%s
Utilizar siempre este patrón para las variables globales de las instrucciones del contador de alta velocidad que comprueban si se alcanza el valor de preselección.
Channel%d debe ser un número de canal habilitado para la salida de pulsos en los registros del sistema
Y%d
debe ser una dirección explícita de una salida válida del PLC
FP-S, FP0, FP-e: |
Y0–Y7 |
FP-S (V3.1 o mayor), FP0R: |
Y0–Y1F |
FP-X: |
Y0–Y29F |
%s
es un descriptor opcional al inicio del patrón
_%s
es un descriptor opcional al final del patrón
Opcional | Patrón fijo | Opcional |
g_b |
Pulse_TargetValueMatch_ChannelA_Y11F |
_MotorOn |
Esta variable global genera el código para el canal A y la salida Y11F.
Resumen de las instrucciones Tool de salida de pulsos
F167_PulseOutput_Reset A OFF cuando alcanza el valor de preselección (salida de pulsos)
En la Lista de Variables Globales, se definen las variables a las que pueden acceder todas las POUs del proyecto.
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_EXTERNAL
g_bPulse_TargetValueMatch_Channel1_Y19_Motor1_On: BOOL:=FALSE;
END_VAR
VAR
iChannel1: INT:=1;
diTargetValue1: DINT:=22000;
bIsActive: BOOL:=FALSE;
bErrorReset: BOOL:=FALSE;
bReset: BOOL:=FALSE;
END_VAR
Utilizar PulseInfo_IsTargetValueMatchActive para comprobar si está activo el canal iChannel1 is active. La instrucción se ejecuta en el flanco de subida de bReset y si bIsActive no está a TRUE. La combinación del número de canal y el contacto de salida se valida en la variable global g_bPulse_TargetValueMatch_Channel1_Y19_Motor1_On. Si la salida de pulsos del canal 1 alcanza el valor de preselección diTargetValue1, la salida Y19 pasa a FALSE.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,26,1,28,3,);
B(B_F,PulseInfo_IsTargetValueMatchActive!,,9,0,26,3,,?DiChannel?C);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_CONTACT,,bReset,3,1,5,3,R);
B(B_CONTACT,,bIsActive,7,1,9,3,N);
B(B_VARIN,,iChannel1,32,2,34,4,);
B(B_VARIN,,diTargetValue1,32,4,34,6,);
B(B_VAROUT,,bErrorReset,52,1,54,3,);
B(B_F,GetPointer!,,27,3,34,5,,?D?C);
B(B_VARIN,,g_bPulse_TargetValueMatch_Channel1_Y19_Motor1_On,25,3,27,5,);
B(B_F,Pulse_TargetValueMatch_Reset!,,34,0,49,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(5,2,7,2);
L(1,2,3,2);
L(9,2,34,2);
L(49,2,52,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
bIsActive:=PulseInfo_IsTargetValueMatchActive(iChannel1);
Pulse_TargetValueMatch_Reset(bExecute := DF(bReset) AND NOT bIsActive,
iChannel := iChannel1,
pYOutput := GetPointer(g_bPulse_TargetValueMatch_Channel1_Y19_Motor1_On),
diTargetValue := diTargetValue1,
bError => bErrorReset);