A ON cuando alcanza el valor de preselección (salida de pulsos)
La salida especificada pasa instantáneamente a TRUE, si el valor actual alcanza el valor de preselección en el canal de salida de pulsos seleccionado.
Entrada
Canal de salida de pulsos:0–3
especificar un valor de 32 bits para el valor de preselección dentro del siguiente rango:: de -2147483467 a +2147483648
Salida
salida que pasa a TRUE cuando el valor actual alcanza el valor de preselección:Y0–Y1F
Diagrama de la salida de pulsos
Valor de preselección:: 10000
Valor actual de la salida de pulsos
Condición de ejecución
Bandera de "Control de salida activo"
Salida del PLC
La salida del PLC pasa a TRUE cuando el valor actual alcanza el valor de preselección. Además, la bandera de "Control de salida activa" pasa a FALSE y se desactiva la instrucción.Si se especifica una salida que no está implementada, solo se pone a set o a reset, en la memoria interna, la dirección WY correspondiente.
Operación de interrupción
El programa de interrupción se ejecutará cuando el valor actual alcance el valor de preselección. Cualquier interrupción que se introduzca en la lista de Tareas se activa automáticamente. Se asigna un número de programa de interrupción para cada canal.
Canales utilizados por los programas de interrupción:
Interrupt8 |
Canal0 |
Interrupt9 |
Canal1 |
Interrupt10 |
Canal2 |
Interrupt11 |
Canal3 |
Seleccionar en los registros del sistema, "Salida de pulsos " para el canal deseado.
Cuando se ejecuta esta instrucción, la bandera "Control de salida activo" del canal utilizadosys_bIsPulseChannel0ControlActive pasa a TRUE. No se puede ejecutar otra instrucción con control de salida (F166_PulseOutput_Set o F167_PulseOutput_Reset) utilizando el mismo canal mientras que la bandera de control esté a TRUE.
Esta instrucción está disponible para todas las funciones de salida de pulsos excepto para F173_PulseOutput_PWM y se puede ejecutar antes o después de una instrucción de salida de pulsos.
El FPWIN Pro no verifica y por tanto no se detectará el uso de salidas duplicadas en otras instrucciones (OUT, SET, RST, KEEP y otras instrucciones F).
Para poner la salida del PLC a FALSE que se había puesto a TRUE al ejecutar la instrucción, utilizar una instrucción de RST o MOVE.
Para cancelar la ejecución de una instrucción de salida de pulsos, poner el bit 2 del registro de datos que almacena el código de control (sys_wHscOrPulseControlCode) a TRUE. La bandera de control de la salida de pulsos pasará a FALSE. Para habilitar la ejecución de esta instrucción, poner el bit 2 a FALSE.
Si tanto el programa principal como el programa de interrupción contienen código para el mismo canal, asegurarse de que no se ejecutan simultáneamente.
Se recomienda encarecidamente proporcionar la posibilidad de una parada forzada en cualquier programa de posicionamiento.
El estado de la bandera de control del contador de alta velocidad o de la bandera de control de la salida de pulsos puede cambiar dentro del ciclo de scan.
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
out_0: BOOL:=FALSE;
(*output Y0 of PLC*)
END_VAR
VAR
start: BOOL:=FALSE;
(*start condition*)
@'': @'';
END_VAR
Cuando la variable start está ajustada a TRUE, se ejecuta la función.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,F166_PulseOutput_Set!,Instance,12,1,26,6,,?DEN?Hn_diPulseOutputChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,3,12,5,);
B(B_VARIN,,10,10,4,12,6,);
B(B_VAROUT,,out_0,26,3,28,5,);
B(B_CONTACT,,start,5,2,7,4,R);
L(1,3,5,3);
L(7,3,12,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(start) then
F166_PulseOutput_Set(n_diPulseOutputChannel := 0,
s_diTargetValue := 10,
d_Y => out_0);
END_IF;