A ON cuando alcanza el valor de preselección (contador de alta velocidad)
Si el valor actual alcanza el valor de preselección diTargetValue del canal especificado en iChannel, la salida especificada en pYOutput pasa a TRUE.
Entrada
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
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
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 del contador de alta velocidad. Para obtener información más detallada sobre las instrucciones que utiliza internamente, consultar la: F167_HighSpeedCounter_Reset F166_HighSpeedCounter_Set
Para validar la combinación del canal y salida Y, el compilador necesita el siguiente patrón de nombres para las variables globales:%sHsc_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 del contador de alta velocidad 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 |
Hsc_TargetValueMatch_ChannelA_Y11F |
_MotorOn |
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
VAR
bExecute: BOOL:=0;
iChannel1: INT:=1;
diTargetValue0: DINT:=15000;
bIsActive: BOOL:=FALSE;
diElapsedValue: DINT:=0;
bSet: BOOL:=FALSE;
bErrorSet: BOOL:=FALSE;
END_VAR
Utilizar HscInfo_IsActive para evaluar el estado del canal especificado por iChannel1. La instrucción se ejecuta en el flanco de subida de bSet 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_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On. Si el canal 1 del contador de alta velocidad alcanza el valor de preselección diTargetValue0, la salida Y1 pasa a TRUE.
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_F,HscInfo_IsActive!,,9,0,18,3,,?DiChannel?C);
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,18,1,20,3,);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_VAROUT,,bErrorSet,46,1,48,3,);
B(B_CONTACT,,bSet,2,1,4,3,R);
B(B_CONTACT,,bIsActive,6,1,8,3,N);
B(B_VARIN,,iChannel1,31,2,33,4,);
B(B_VARIN,,diTargetValue0,31,4,33,6,);
B(B_F,GetPointer!,,26,3,33,5,,?D?C);
B(B_VARIN,,g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On,24,3,26,5,);
B(B_F,Hsc_TargetValueMatch_Set!,,33,0,46,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(1,2,2,2);
L(4,2,6,2);
L(8,2,33,2);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
bIsActive:=HscInfo_IsActive(iChannel1);
Hsc_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
iChannel := iChannel1,
pYOutput := GetPointer(g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On),
diTargetValue := diTargetValue0,
bError => bErrorSet);