Sie sind auf Seite 1von 18

torque control

13
Para mantener la torsión o la fuerza constante, el sensor que devuelve la realimentación al controlador de
movimiento debe devolver un valor proporcional a la torsión o la fuerza. El controlador de movimiento opera
sistemas de control de posición de par-control y de la misma manera. La diferencia principal es que la
realimentación en los sistemas de control de posición devuelve la posición actual, mientras que la
realimentación en los sistemas de control de torque devuelve una tensión proporcional a la fuerza o par de
torsión actual.

Se puede aplicar la fuerza de respuesta en los controladores de movimiento de NI utilizando ya sea analógica o

retroalimentación mediante el control de la fuerza.

Nota El controlador NI SoftMotion no es compatible con realimentación analógica.

Comentarios analógico

En este modo, el sensor de par o de fuerza está conectado a una de las entradas analógicas en el controlador

de movimiento NI. Ese canal analógico se utiliza como el sensor de retroalimentación.

Figura 13-1. Torque Control mediante realimentación Diagrama de flujo analógico

© National Instruments Corporation 13-1 Manual del usuario NI-Motion


capítulo 13 torque control

Ajuste del bucle de control con un sensor de fuerza, que es un sensor de retroalimentación analógica, produce los mismos

resultados que con un sensor de realimentación de posición. Dependiendo de la resolución que está utilizando, el sistema

puede requerir mayores ganancias para asegurar una respuesta más rápida. controladores de movimiento de NI tienen 12

bits o de 16 bits entradas analógicas, cuyas áreas de distribución se puede ajustar entre 0 V a 5 V, -5 V a

+ 5 V, 0 V a 10 V, y -10 V a 10 V. Cuando se utiliza el recuento para la introducción de los valores de


posición, velocidad, aceleración y deceleración, que no es necesario para introducir el valor cuentas /
revolución para el eje .

Consulte el manual de usuario del controlador de movimiento para obtener información sobre rangos de entrada

analógicas.

Manual del usuario NI-Motion 13-2 ni.com


capítulo 13 torque control

Torque Control mediante realimentación algoritmo analógico

constante

mantener un par de torsión o fuerza

posición
principal de destino
para de carga
el eje que en términos de
es para
voltios. Si desea mantener 5 V, carga de 2047
conteos. Esto se aplica a un rango de ± 5 V
analógica como realimentación

por ADC del canal y ADC de 12 bits


voltios en el mapa los sensor

máxima, y ​la deceleración max en

modo de carga absolutos:


velocidad max, la aceleración

de operación
Establecer limitaciones a mover

iniciar el movimiento

Bucle de espera de movimiento completa

Actualización
(Opcional) Ajustar modo
posición de destino (opcional)

Iniciar el movimiento

Figura 13-2. Torque Control mediante realimentación algoritmo analógico

© National Instruments Corporation 13-3 Manual del usuario NI-Motion


capítulo 13 torque control

Código de LabVIEW

21 3 4 5 6 7 8

1 Cargar Velocity 4 Ajuste del modo de funcionamiento de 7 Lea por Estado del eje 8 Propuesta
2 de carga de aceleración / deceleración 3 de carga 5 6 Posición objetivo de inicio de controlador de errores
carga de aceleración / deceleración movimiento

La Figura 13-3. Torque Control mediante realimentación analógica utilizando LabVIEW

Manual del usuario NI-Motion 13-4 ni.com


capítulo 13 torque control

C / C ++ Code

El siguiente código de ejemplo no es necesariamente completa, y no puede compilar si se copia


exactamente. Referirse a ejemplos carpeta en el CD NI-Motion para los archivos que estén
fabricados y compilan como es.

// Función principal void


main (void) {

U8 BoardID; // número de identificación Junta


U8 eje;// número de eje
u16 csr = 0; // registro de estado de la comunicación
u16 AXISSTATUS; // estado del eje
u16 MoveComplete; // Variables para el tratamiento de

errores modal
u16 CommandID; // El CommandID de la función
u16 de resourceID; // El ID de recurso
i32 código de error;// Código de error

/////////////////////////////// // Establecer el identificador de


tablero
BoardID = 1; // Establecer el número
de eje
eje = NIMC_AXIS1;
////////////////////////////////

// ------------------------------------------------ // Se se supone que el eje se mueva tiene un


canal ADC mapeada // como su retroalimentación primaria. Posición se trata como
voltios binarios. // Por lo tanto la velocidad se carga en binario voltios / seg y la
aceleración como // voltios binarios / seg ^ 2.

// ------------------------------------------------ // Establecer la velocidad para el movimiento


(en binario voltios / sec)

err = flex_load_velocity ( BoardID, eje, 10000, 0xFF); CheckError; // Establecer


la aceleración para el movimiento (en voltios binarios / sec ^ 2)

err = flex_load_acceleration ( BoardID, eje, NIMC_ACCELERATION, 100000,


0xFF); CheckError; // Establecer la desaceleración para el movimiento (en
voltios binarios / sec ^ 2)

© National Instruments Corporation 13-5 Manual del usuario NI-Motion


capítulo 13 torque control

err = flex_load_acceleration ( BoardID, eje, NIMC_DECELERATION, 100000,


0xFF); CheckError; // Establecer el tirón - tiempo de s-curva (en períodos de
muestra)

err = flex_load_scurve_time ( BoardID, eje, 1000, 0xFF); CheckError; // Ajuste el


modo de operación

err = flex_set_op_mode ( BoardID, eje, NIMC_ABSOLUTE_POSITION); CheckError; // Posición


de carga correspondiente a la tensión que se desea que el motor para mantener //
(2047 ~ 5 V en este ejemplo)

err = (flex_load_target_pos BoardID, eje, 2047, 0xFF); CheckError; // Iniciar el


movimiento

err = flex_start ( BoardID, eje, 0); CheckError;

hacer

{
AXISSTATUS = 0; // Comprobar el estado de movimiento

completo
err = flex_check_move_complete_status ( BoardID, eje, 0, y MoveComplete);
CheckError; // Compruebe el error / eje arrastrado fuera de estado para el eje 1

err = flex_read_axis_status_rtn ( BoardID, eje, y AXISSTATUS); CheckError; // Leer


el registro de estado de la comunicación y comprobar el modal // errores

err = flex_read_csr_rtn ( BoardID, y RSE); CheckError; // Comprobar


los errores modales

Si ( RSE y NIMC_MODAL_ERROR_MSG) {

err = CSR y NIMC_MODAL_ERROR_MSG; CheckError;

Manual del usuario NI-Motion 13-6 ni.com


capítulo 13 torque control

}} mientras (! ! MoveComplete && (AXISSTATUS y


NIMC_FOLLOWING_ERROR_BIT) && (AXISSTATUS y NIMC_AXIS_OFF_BIT)!);
// Salir en la jugada completa / siguiente error / fuera del eje

regreso;// Salir de la aplicación

////////////////////////////////////////////////// / // Manejo de errores

//
nimcHandleError; // NIMCCATCHTHIS:

// Comprobar para ver si hubo algún error modales


Si ( RSE y NIMC_MODAL_ERROR_MSG) {

hacer{

// Obtener el identificador de comando, identificador de recursos, y


el código de error de la // error modal de la pila de error en el
dispositivo
flex_read_error_msg_rtn ( BoardID, y commandI
D, y de resourceID, y errorCode); nimcDisplayError (errorCode,
CommandID, res ourceID); // Leer el registro de estado de la
comunicación

flex_read_csr_rtn ( BoardID, y RSE); } mientras( RSE y


NIMC_MODAL_ERROR_MSG); }

más// Muestra el error habitual


nimcDisplayError (err, 0,0);
regreso;// Salir de la aplicación
}

© National Instruments Corporation 13-7 Manual del usuario NI-Motion


capítulo 13 torque control

Fuerza de monitoreo

Puede utilizar este segundo modo de retroalimentación de fuerza si tiene un sensor de posición del motor,
además del sensor de par. El bucle de control en el controlador de movimiento cierra la posición y bucles
como de costumbre velocidad. MAX utilizar para mapear el codificador como el dispositivo de captación del
eje.

La Figura 13-4. Torque Control mediante realimentación Diagrama de flujo analógico

Para el seguimiento de la fuerza, crear un bucle exterior para controlar el sensor de par, y mover el
motor basado en el valor leído del sensor de par.

Manual del usuario NI-Motion 13-8 ni.com


capítulo 13 torque control

Control de par utilizando un monitor de fuerza Algoritmo

que es
para mantener una constante
torsión o la fuerza
realimentación principal para el eje

sensor de posición
restricciones (encoder)
de carga se mueven: como
velocidad max, la
aceleración máxima, y ​max
deceleración Mapa el

Configurar el modo de operación


Ajuste de modo relativo

Loop leer el canal analógico que está conectado


al sensor de fuerza o par

Leer sensor analógico

Cotejar con el
valor requerido

Actualización
(Opcional)
posición de destino (opcional)

Iniciar el movimiento

Figura 13-5. Control de par utilizando un monitor de fuerza Algoritmo

© National Instruments Corporation 13-9 Manual del usuario NI-Motion


capítulo 13 torque control

Código de LabVIEW

1 2 3 4 5 76 8 9

1 Cargar Velocity 4 Ajuste Modo de operación 5 Leer 7 Puesta en Movimiento 8 Lea por Estado
2 de carga de aceleración / deceleración 3 de ADC 6 Carga de posición de del eje 9 de movimiento controlador de
carga de aceleración / deceleración destino errores

La Figura 13-6. Control de par utilizando fuerza de vigilancia en LabVIEW

Manual del usuario NI-Motion 13-10 ni.com


capítulo 13 torque control

C / C ++ Code

El siguiente código de ejemplo no es necesariamente completa, y no puede compilar si se copia


exactamente. Referirse a ejemplos carpeta en el CD NI-Motion para los archivos que estén
fabricados y compilan como es.

// Función principal
void main (void) {

U8 BoardID; // número de identificación Junta


U8 eje;// número de ejes
u16 csr = 0; // registro de estado de la comunicación
u16 AXISSTATUS; // estado del eje
i32 constante;// fuerza constante
i16 adcValue; // valor ADC leer
// Variables para el tratamiento de errores modal
u16 CommandID; // El CommandID de la función
u16 de resourceID; // El ID de recurso
i32 código de error;// Código de error

/////////////////////////////// // Establecer el identificador


de tablero
BoardID = 1; // Establecer el número
de eje
eje = NIMC_AXIS1; // fuerza constante necesaria para mantenerse

// corresponde a 5V +/- 5 V durante la configuración del ADC


= Constante de 2047;
////////////////////////////////

// ------------------------------------------------ // Se se supone que el eje se mueva tiene


asignada un codificador como // su retroalimentación primaria

// ------------------------------------------------ // Establecer la velocidad para el movimiento

(en cuentas / seg)


err = flex_load_velocity ( BoardID, eje, 10000, 0xFF); CheckError; // Establecer
la aceleración para el movimiento (en cuentas / s ^ 2)

err = flex_load_acceleration ( BoardID, eje, NIMC_ACCELERATION,


100000, 0xFF); CheckError; // Establecer la desaceleración para el
movimiento (en cuentas / s ^ 2)

© National Instruments Corporation 13-11 Manual del usuario NI-Motion


capítulo 13 torque control

err = flex_load_acceleration ( BoardID, eje, NIMC_DECELERATION, 100000,


0xFF); CheckError; // Establecer el tirón (valor de s-curva) para el traslado (en
períodos de muestra)

err = flex_load_scurve_time ( BoardID, eje, 100, 0xFF); CheckError; // Ajuste el


modo de funcionamiento a la velocidad

err = flex_set_op_mode ( BoardID, eje,


NIMC_RELATIVE_POSITION); CheckError;

hacer

{
// Leer el número de canal ADC 1 y calcular la posición de //estar actualizado

err = flex_read_adc16_rtn ( BoardID, NIMC_ADC1, y adcValue); CheckError;

Si( ( constante - adcValue) = 0) {


err = (flex_load_target_pos BoardID, eje, (constante - adcValue),
0xFF); CheckError; // Mover sobre la base de la fuerza de delta

err = flex_start ( BoardID, eje, 0); CheckError; } // Controlar el


movimiento completo del estado / error de seguimiento / fuera del
eje // estado

err = flex_read_axis_status_rtn ( BoardID, eje, y AXISSTATUS); CheckError; // Leer


el registro de estado de la comunicación y comprobar el modal // errores

err = flex_read_csr_rtn ( BoardID, y RSE); CheckError; // Comprobar


los errores modales

Si ( RSE y NIMC_MODAL_ERROR_MSG) {

err = CSR y NIMC_MODAL_ERROR_MSG; CheckError;

Manual del usuario NI-Motion 13-12 ni.com


capítulo 13 torque control

Sleep (50); // Compruebe cada 50 ms


} mientras (!( AXISSTATUS y NIMC_AXIS_OFF_BIT)); // Salir en fuera de eje

regreso;// Salir de la aplicación

////////////////////////////////////////////////// / // Manejo de errores

//
nimcHandleError; // NIMCCATCHTHIS:

// Comprobar para ver si hubo algún error modales


Si ( RSE y NIMC_MODAL_ERROR_MSG) {
hacer{

// Obtener el identificador de comando, identificador de recursos, y


el código de error de la // error modal de la pila de error en el
dispositivo
flex_read_error_msg_rtn ( BoardID, y commandI
D, y de resourceID, y errorCode); nimcDisplayError (errorCode,
CommandID, res ourceID); // Leer el registro de estado de la
comunicación

flex_read_csr_rtn ( BoardID, y RSE); } mientras( RSE y


NIMC_MODAL_ERROR_MSG); }

más// Muestra el error habitual


nimcDisplayError (err, 0,0);
regreso;// Salir de la aplicación
}

© National Instruments Corporation 13-13 Manual del usuario NI-Motion


capítulo 13 torque control

Control de velocidad basado en el valor analógico

En un sistema donde un rodillo de alimentación debe funcionar a velocidades en base a una tensión de entrada,

el algoritmo para mantener la velocidad consiste en leer el voltaje analógico conectado a uno de los canales

analógicos en el controlador de movimiento, y la actualización de la velocidad del eje basado en el valor de la

tensión de leer. En este sistema, la regeneración es un sensor de posición normal, tal como un codificador.

Control de velocidad basado en la retroalimentación algoritmo analógico

movimiento de carga de entrada analógicas

Configurar el modo de operación


Ajuste a modo de velocidad

iniciar el movimiento

espera de movimiento completa

Lea las restricciones de

Calcule nueva velocidad basado en


la entrada analógica

Cargar nuevo lazo de velocidad a la

Figura 13-7. Control de velocidad basado en la retroalimentación algoritmo analógico

La entrada analógica podría estar conectado a un sensor de fuerza, que asegura que la tensión de una
banda que se alimenta se mantiene.

Manual del usuario NI-Motion 13-14 ni.com


capítulo 13 torque control

Código de LabVIEW

1 2 3 4 5 876 9 10

1 Cargar Velocity 5 Puesta en Movimiento 6 8 Inicio de movimiento 9 Lea por Estado


2 de carga de aceleración / deceleración 3 de Leer ADC 7 Carga de del eje 10 Propuesta controlador de
carga de aceleración / deceleración 4 Set Modo velocidad errores
de operación

La Figura 13-8. Control de velocidad basado en la retroalimentación analógica utilizando LabVIEW

© National Instruments Corporation 13-15 Manual del usuario NI-Motion


capítulo 13 torque control

C / C ++ Code

El siguiente código de ejemplo no es necesariamente completa, y no puede compilar si se copia


exactamente. Referirse a ejemplos carpeta en el CD NI-Motion para los archivos que estén
fabricados y compilan como es.

// Función principal
void main (void) {

U8 BoardID; // número de identificación Junta


U8 eje;// número de ejes
u16 csr = 0; // registro de estado de la comunicación
u16 AXISSTATUS; // estado del eje
i32 constante;// multiplicador constante
i16 adcValue; // valor ADC leer
// Variables para el tratamiento de errores modal
u16 CommandID; // El CommandID de la función
u16 de resourceID; // El ID de recurso
i32 código de error;// Código de error

/////////////////////////////// // Establecer el identificador


de tablero
BoardID = 1; // Establecer el número
de eje
eje = NIMC_AXIS1; // constante para multiplicar el valor ADC leer para
calcular la velocidad requerida //

= Constante de 10;
//////////////////////////////// // Establecer la velocidad para el movimiento (en

cuentas / seg)
err = flex_load_velocity ( BoardID, eje, 10000, 0xFF); CheckError; // Establecer
la aceleración para el movimiento (en cuentas / s ^ 2)

err = flex_load_acceleration ( BoardID, eje, NIMC_ACCELERATION,


100000, 0xFF); CheckError; // Establecer la desaceleración para el
movimiento (en cuentas / s ^ 2)

err = flex_load_acceleration ( BoardID, eje, NIMC_DECELERATION,


100000, 0xFF); CheckError;

Manual del usuario NI-Motion 13-16 ni.com


capítulo 13 torque control

// Establecer el tirón (valor de s-curva) para el traslado (en períodos de


muestra)
err = flex_load_scurve_time ( BoardID, eje, 100, 0xFF); CheckError; // Ajuste el
modo de funcionamiento a la velocidad

err = flex_set_op_mode ( BoardID, eje, NIMC_VELOCITY);


CheckError; // Iniciar el movimiento

err = flex_start ( BoardID, eje, 0); CheckError;

hacer

{
// Leer el número de canal ADC 1 y calcular la velocidad de //estar actualizado

err = flex_read_adc16_rtn ( BoardID, NIMC_ADC1, y adcValue); CheckError; // Establecer


la velocidad en función del valor ADC leer

err = flex_load_velocity ( BoardID, eje, (adcValue


* constante), 0xFF); CheckError; // Actualización
de la velocidad

err = flex_start ( BoardID, eje, 0); CheckError; // Controlar el movimiento


completo del estado / error de seguimiento / fuera del eje // estado

err = flex_read_axis_status_rtn ( BoardID, eje, y AXISSTATUS); CheckError; // Leer


el registro de estado de la comunicación y comprobar el modal // errores

err = flex_read_csr_rtn ( BoardID, y RSE); CheckError; // Comprobar


los errores modales

Si ( RSE y NIMC_MODAL_ERROR_MSG) {

err = CSR y NIMC_MODAL_ERROR_MSG; CheckError; }

© National Instruments Corporation 13-17 Manual del usuario NI-Motion


capítulo 13 torque control

Sleep (50); // Compruebe cada 50 ms


} mientras (!( AXISSTATUS y NIMC_AXIS_OFF_BIT)); // Salir en fuera de eje

regreso;// Salir de la aplicación

////////////////////////////////////////////////// / // Manejo de errores

//
nimcHandleError; // NIMCCATCHTHIS:

// Comprobar para ver si hubo algún error modales

Si ( RSE y NIMC_MODAL_ERROR_MSG) {
hacer{

// Obtener el identificador de comando, identificador de recursos, y


el código de error de la // error modal de la pila de error en el
dispositivo
flex_read_error_msg_rtn ( BoardID, y commandI
D, y de resourceID, y errorCode); nimcDisplayError (errorCode,
CommandID, res ourceID); // Leer el registro de estado de la
comunicación

flex_read_csr_rtn ( BoardID, y RSE); } mientras( RSE y


NIMC_MODAL_ERROR_MSG); }

más// Muestra el error habitual


nimcDisplayError (err, 0,0);
regreso;// Salir de la aplicación
}

Manual del usuario NI-Motion 13-18 ni.com

Das könnte Ihnen auch gefallen