F174_PulseOutput_DataTable

Control por tabla de datos

Esta instrucción realiza un control de posicionamiento según los parámetros especificados en la DUT con un número arbitrario de diferentes pasos y valores de preselección. 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 (ANY_DUT)

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

Ejemplo: F174_PulseOutput_DataTable_8_Values_DUT

n_iPulseOutputChannel* (constante decimal)

Canal de salida de pulsos:

FP-XH C30 T/P: 0–3

FP-XH C60 T/P: 0–5

FPS: 0,2

FP-X R: 0,1

FP-XC14T: 0,1,2

FP-X C30T/C60T: 0,1,2,3

FP0R: 0,1,2,3

Observaciones

Crear su propia DUT utilizando la siguiente DUT como ejemplo: F174_PulseOutput_DataTable_8_Values_DUT

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

  • Código de control

  • Frecuencia 1

  • Valor de preselección: 1

  • Frecuencia 2

  • Valor de preselección: 2

  • ...

  • Frecuencia n

  • Valor de preselección: n

  • Detención de la salida de pulsos

Diagrama de la salida de pulsos

  1.  (1) Condición de ejecución
  2.  (2) Bandera de control de la salida de pulsos

x Valor actual del contador de alta velocidad (cantidad de movimiento)

  • Se envían pulsos a una frecuencia especificada hasta que se alcanza el valor de preselección. Después la frecuencia cambia al segundo valor y la salida de pulsos continúa hasta que se alcanza el segundo valor de preselección, y así sucesivamente.

  • La salida de pulsos se detiene cuando se alcanza el último valor de preselección.

  • Una frecuencia de 0 significa que es la frecuencia final y detiene la salida de pulsos.

Información de programación general
  • FP-X, FP0R: Durante la salida de pulsos, la bandera de control (por ejemplo sys_bIsPulseChannel0Active) del canal correspondiente está a TRUE. No se puede ejecutar ninguna otra instrucción de salida de pulsos mientras esta bandera sea TRUE

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

  • Si el valor de la primera frecuencia especificada está fuera de rango, se produce un error de operación. (Si el valor de la primera frecuencia es 0, se detiene la operación sin enviar ningún pulso.)

  • Si el valor de la segunda frecuencia especificada está fuera de rango o es 0, se detiene la salida de pulsos.

  • Si el valor de preselección está fuera del rango permisible, el número de pulsos de salida puede diferir del valor especificado.

  • FP0R: Si uno de los valores de preselección no está en la dirección de desplazamiento, se detiene la salida de pulsos.

  • FPS, FP-X: Si uno de los valores de preselección no está en la dirección de desplazamiento, continua el contaje infinitamente.

  • FPS: Al ejecutar la instrucción de interpolación circular F176_PulseOutput_Center la bandera de control de interpolación circular (sys_bIsCircularInterpolationActive) pasa a TRUE. Se mantiene el estado de la bandera hasta que se alcanza el valor de preselección (incluso si la condición de ejecución ya no es TRUE). En este intervalo, no se puede ejecutar otra función de salida de pulsos.

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

  • FPS, FP-X: Si se está ejecutando al mismo tiempo una interrupción periódica o un programa de interrupción, una instrucción del contador de alta velocidad o una función de enlace a PLC, se debería usar una frecuencia de 80kHz o menor.

  • FP-X: Seleccionar en los registros del sistema, "Salida de pulsos " para el canal deseado.

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

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

Ejemplo

Variables Globales

En la Lista de Variables Globales, se definen las variables a las que pueden acceder todas las POUs del proyecto.

DUT

La DUT F174_PulseOutput_DataTable_8_Values_DUT está predefinida en la librería FP library y se puede tomar como 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 
		dutDataTable4: F174_DUT:=ControlCode := 16#1200,
Frequency1 := 1000,
TargetValue1 := 1000,
Frequency2 := 2500,
TargetValue2 := 2000,
Frequency3 := 5000,
TargetValue3 := 5000,
Frequency4 := 1000,
TargetValue4 := 2000,
Termination := 0;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 2=Frequency range 48Hz-100kHz
Digit 1: 0=Relative value control
Digit 0: 0=CW*)
		@'': @'';
	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 := 6 ;
        NETWORK_BODY
B(B_F,F174_PulseOutput_DataTable!,Instance,13,0,27,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutDataTable4,11,2,13,4,);
B(B_VARIN,,0,11,3,13,5,);
B(B_CONTACT,,X0_bMotorSwitch,5,1,7,3,R);
L(1,2,5,2);
L(7,2,13,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

IF DF(X0_bMotorSwitch) then
  F174_PulseOutput_DataTable(s_dutDataTable := dutDataTable4, 4);
END_IF;
Temas relacionados

Modificado el: 2023-03-15Comentarios sobre esta páginaLínea directa de Panasonic