F168_PulseOutput_Home

Vuelta al origen

Esta instrucción ejecuta una vuelta al origen según los parámetros especificados en la DUT. Se envían pulsos desde el canal especificado si la bandera de control para ese canal es FALSE y la condición de ejecución es TRUE.

Parámetros

Entrada

s_dutDataTable (F168_PulseOutput_Home_DUT)

Dirección de inicio del área que contiene la tabla de datos

n_iPulseOutputChannel (constante decimal)

Salida de pulsos: 0 o 1

Observaciones

Cuando se arranca un servomotor, existe una diferencia, que no se puede predeterminar, entre el valor de la posición inicial (valor actual) y la posición mecánica real del eje. Este valor interno se debe sincronizar con el valor de la posición real del eje. Esto se realiza por medio de una vuelta al origen, de forma que se registre la posición de un punto de referencia conocido (origen). Durante la ejecución de la instrucción de vuelta al origen, se envían pulsos continuamente hasta que se activa la entrada de vuelta al origen. El mapa de E/S está determinado por el canal utilizado. Para decelerar el movimiento cerca de la posición de origen, seleccionar una entrada de proximidad al origen y cambiar el bit 4 del registro de datos especial que almacena el código de control (sys_wHscOrPulseControlCode) a TRUE y de nuevo a FALSE. Durante la vuelta al origen, el contenido del área del valor actual puede diferir del valor real. Cuando se ha completado la vuelta al origen, el valor actual pasa a 0.

Seleccionar uno de los dos modos de operación:

  • Tipo 1: La entrada de vuelta al origen tiene efecto con independencia de si existe una entrada de proximidad al origen, de si está decelerando o de si ha finalizado la deceleración.

    • Sin entrada de proximidad al origen:

    • Con entrada de proximidad al origen:

      1.  (1) Velocidad inicial y final
      2.  (2) Velocidad máxima
      3.  (3) Entrada de proximidad al origen: TRUE
      4.  (4) Entrada de vuelta al origen: TRUE
      5.  (5) La entrada de vuelta al origen es efectiva en cualquier momento.
  • Tipo 2: La entrada de vuelta al origen solo tiene efecto una vez finalizada la deceleración.

    1.  (1) Velocidad inicial y final
    2.  (2) Velocidad máxima
    3.  (3) Entrada de proximidad al origen: TRUE
    4.  (4) Entrada de vuelta al origen: TRUE
    5.  (5) La entrada de vuelta al origen solo es efectiva después de la desaceleración

Utilizar la siguiente DUT predefinida:

Se pueden especificar los siguientes parámetros en la DUT: F168_PulseOutput_Home_DUT

  • Código de control

  • Velocidad inicial y final

  • Velocidad máxima

  • Tiempo de aceleración/deceleración

  • Detención de la salida de pulsos (fijo)

Diagrama de la salida de pulsos

  • La frecuencia de salida de pulsos pasa desde la velocidad inicial a la velocidad final según el tiempo de aceleración/deceleración.

  • La diferencia entre la velocidad de preselección y la velocidad actual determina la pendiente de la rampa..

Información de programación general

  • En los registros del sistema seleccionar como "No usado" cualquier contador de alta velocidad asignado a un canal de salida de pulsos.

  • Si se edita en modo RUN durante la salida de pulsos, se detiene la salida de pulsos una vez descargados los cambio del programa.

  • La bandera de control del contador de alta velocidad (por ejemplo sys_bIsHscChannel0ControlActive) y la bandera de control de la salida de pulsos (por ejemplo sys_bIsPulseChannel0Active) están asignadas al mismo relé interno especial (R903A). Por lo tanto, cuando se ejecuta una instrucción del contador de alta velocidad o de salida de pulsos, tanto la bandera de control de contador de alta velocidad (por ejemplo sys_bIsHscChannel0ControlActive) como la bandera de control de la salida de pulsos (por ejemplo sys_bIsPulseChannel0Active) para el canal especificado, están a TRUE. No se puede ejecutar ninguna otra instrucción del contador de alta velocidad o de salida de pulsos mientras que está bandera esté a TRUE.

  • Incluso cuando se ha activado la entrada de vuelta al origen, al ejecutar esta instrucción se inicia la salida de pulsos.

  • Si la entrada de proximidad al origen se habilita durante la aceleración, comienza una deceleración.

  • 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.

Utilizando el modo de compatibilidad con el FP0 del FP0R

Para utilizar el FP0R en modo compatibilidad con el FP0, se puede descargar un programa del FP0 al FP0R. Tener en cuenta las siguientes restricciones:

  • El FP0R soporta datos de 32-bits con signo para el valor actual y para el valor de preselección, el FP0 soporta datos de 24-bits con signo. En el modo de compatibilidad con el FP0, tanto el contaje como la salida de pulsos continúan si los datos exceden el rango del FP0.

  • El factor de trabajo es siempre del 25% independientemente de los parámetros de la instrucción. Con el método de salida de pulsos "pulso/dirección", los pulsos se envía aproximadamente 300ms después de enviar la señal de dirección, donde se tienen en cuenta la curva característica del driver del motor.

  • El FP0R no soporta la opción "sin contaje". En este caso, se ejecutará un contaje incremental si las instrucciones de la salida de pulsos del FP0 están configuradas como "sin contaje".

  • La frecuencia máxima de la salida de pulsos es 10000Hz.

  • Comprobar que la instrucción de salida de pulsos no usa una salida que se use también como salida normal.

  • Para ejecutar un programa del FP0 en modo compatibilidad con el FP0, los tipos de PLC (C10, C14, C16, C32 y T32) deben coincidir exactamente. El modo compatibilidad con el FP0 no está disponible para el FP0R tipo F32.

Salidas y variables del sistema para el FP0, FP-e

Canal y número de salida de pulsos

Canal N° Salida de pulsos Método salida de pulsos

0

Y0

Pulso

Y2

Sentido

1

Y1

Pulso

Y3

Sentido

Variables del sistema y áreas de memoria utilizadas. Los valores entre paréntesis son válidos para FP0 T32.

Descripción

Variable del Sistema

Salida de pulsos: bandera de control para el canal

0

sys_bIsPulseChannel0Active

1

sys_bIsPulseChannel1Active

Salida de pulsos: valor actual para el canal

0

sys_diPulseChannel0ElapsedValue

1

sys_diPulseChannel1ElapsedValue

Salida de pulsos: valor de preselección para el canal

0

sys_diPulseChannel0TargetValue

1

sys_diPulseChannel1TargetValue

Código de control del contador de alta velocidad o salida de pulsos

sys_wHscOrPulseControlCode

Entrada de origen para el FP0, FP-e

Canal N° Entrada de origen

0

X0

1

X1

Ejemplo

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_EXTERNAL
		X0_bMotorSwitch: BOOL:=FALSE;
			(*at X0*)
	END_VAR
	VAR 
		dutHome: F168_PulseOutput_Home_DUT:=wControlCode := 16#102,
iInitialAndFinalSpeed := 0,
iTargetSpeed := 0,
iAccelerationAndDecelerationTime := 0;
		iInitialAndFinalSpeed: INT:=3000;
		iTargetSpeed: INT:=7000;
		iAccelerationTime: INT:=300;
		@'': @'';
	END_VAR

Cuerpo LD

	BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 13 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,4,2,6,4,R);
B(B_F,E_MOVE!,Instance,17,1,23,5,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.iAccelerationAndDecelerationTime,23,3,25,5,);
B(B_F,E_MOVE!,Instance,17,5,23,9,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.iInitialAndFinalSpeed,23,7,25,9,);
B(B_F,E_MOVE!,Instance,17,9,23,13,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.iTargetSpeed,23,11,25,13,);
B(B_VARIN,,iAccelerationTime,15,3,17,5,);
B(B_VARIN,,iInitialAndFinalSpeed,15,7,17,9,);
B(B_VARIN,,iTargetSpeed,15,11,17,13,);
L(1,3,4,3);
L(6,3,17,3);
L(8,3,8,11);
L(8,11,17,11);
L(8,7,17,7);
L(1,0,1,13);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,4,1,6,3,R);
B(B_F,F168_PulseOutput_Home!,Instance,11,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutHome,9,2,11,4,);
B(B_VARIN,,0,9,3,11,5,);
L(1,2,4,2);
L(6,2,11,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

IF DF(X0_bMotorSwitch) then
    dutHome.iInitialAndFinalSpeed:=iInitialAndFinalSpeed
    dutHome.iTargetSpeed:=iTargetSpeed
    dutHome.iAccelerationAndDecelerationTime:=iAccelerationTime
END_IF;
IF DF(X0_bMotorSwitch) then
F168_PulseOutput_Home(s_dutDataTable := dutHome,
    n_iPulseOutputChannel :=0);
END_IF;

Modificado el: 2022-06-28Comentarios sobre esta páginaPanasonic hotline