FB_PersistPositionSingleTurn - Información general

Descripción general

Tipo:

Bloque de funciones

Disponible desde:

V2.4.1.0

Hereda de:

-

Implementa:

-

Tarea

Este bloque de funciones permite restaurar la posición inicial de un eje durante el aumento de fase de Sercos sin tener que pasar por el procedimiento de devolución al punto de referencia. El bloque de funciones admite variadores que controlan motores aprobados con encoders Singleturn con una resolución de 8 a 32 bits.

NOTA: Para obtener más información sobre los motores aprobados, póngase en contacto con el representante de servicio local de Schneider Electric.

Descripción

Este bloque de funciones permite restaurar la posición inicial de un eje a partir de un valor de posición del eje y el correspondiente valor de incremento del encóder previamente almacenado en la memoria permanente. Esta restauración se ejecuta durante el aumento de fase de Sercos para que el eje no tenga que ser devuelto de nuevo al punto de referencia.

El eje se devolverá al punto de referencia si se conoce la relación entre la posición del eje X (LXM32.Axis.lrPosition) y su posición mecánica Y (determinada por los incrementos del encóder del motor). Esta relación se establece devolviendo el eje a su punto de referencia.

En el caso de un eje que ya se haya devuelto a su punto de referencia, la relación del valor de posición de un determinado eje puede calcularse a partir del valor conocido de posición del eje y el valor de incremento del encóder siempre que ambos valores provengan de un mismo ciclo Realtime Process (RTP). La relación seguirá siendo fija mientras los valores de X e Y no superen los límites de sus rangos de posición (eje de módulo para X, desbordamiento o subdesbordamiento del encóder para Y). Esta relación fija se mantiene además aunque se retire la alimentación y se reinicie el controlador, siempre que el eje no se haya movido, por ejemplo por la acción de fuerzas externas, cuando la alimentación estaba desconectada. Esto significa que la relación de devolución al punto de referencia entre el valor de posición X_1 de un eje devuelto al punto de referencia y el valor de incremento del encóder Y_1 puede utilizarse para determinar la relación entre el valor leído de incremento del encóder Y_2 y el correspondiente valor de posición del eje X_2.

El bloque de funciones almacena, en una variable persistente, la relación de devolución al punto de referencia de un eje mediante la tupla de valores de la posición del eje y el incremento del encóder. Tras el aumento de fase de Sercos, la posición inicial del eje podrá ajustarse sin tener que realizar el procedimiento de devolución al punto de referencia, a partir de la relación guardada, el valor leído de incremento del encóder y el valor calculado de posición del eje.

 ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Compruebe que la configuración de la resolución del encoder sea correcta mediante la entrada i_uiNumberOfAbsoluteBits.
Si no se siguen estas instrucciones, pueden producirse lesiones graves, muerte o daños en el equipo.

Para utilizar el bloque de funciones:

Paso

Acción

1

Cree una estructura de tipo ST_PersistPositionData en un área de la memoria persistente que se utilice exclusivamente para este bloque de funciones. Esta estructura se utiliza para el valor de posición del eje y el correspondiente valor de incremento del motor.

2

Cree un bloque de funciones FB_PersistPosition.

3

Conecte la estructura ST_PersistPositionData a la entrada o salida iq_stHomedData del bloque de funciones.

5

Proporcione un eje para la entrada i_ifAxis.

6

Establezca el valor de la entrada i_uiNumberOfAbsoluteBits en la resolución del encoder Singleturn que se utiliza con el motor.

El escalado entre los variadores LXM32S y M262 para Singleturn está fijado en 131 072 por revolución, lo que corresponde a 17 bits.

BMH y BMH ofrecen la opción de utilizar encoders Multiturn. Las opciones disponibles son con 4096 vueltas, lo que corresponde a 12 bits. Establezca el valor de i_uiNumberOfAbsoluteBits en 29 (17 bits más 12 bits).

Si utiliza un motor de otro fabricante o un encoder de la máquina, añada el valor fijo de 17 bits al rango del encoder Multiturn para obtener el valor de i_uiNumberOfAbsoluteBits.

7

Devuelva el eje al punto de referencia mediante el bloque de funciones MC_HOME.

8

Establezca el estado de funcionamiento del variador utilizado con el eje en Operational ( DRV_Lexium32s.SercosDiagnostics.ConnectionState == S3M.ET_SlaveCommunicationState.Operational).

9

Invoque el bloque de funciones ajustando el valor de su entrada i_xEnable en TRUE.

NOTA: Si la entrada i_xEnable se establece en TRUE, pero el estado de funcionamiento del variador no es Operational:
  • El valor de la salida q_xPositionStored es FALSE.

  • El valor de la salida q_xPositionRestored es FALSE.

  • El valor de la salida q_xError es FALSE.

    .
  • El valor de la salida q_etResult es OK.

    .

Si es necesario restaurar la posición inicial tras un arranque del controlador, compruebe que el eje esté ajustado con los valores originales antes de que se invoque el bloque de funciones en la aplicación.

Si el eje se ha devuelto correctamente al punto de referencia, cada vez que se vuelva a invocar el bloque de funciones FB_PersistPosition, se almacenarán el valor de posición del eje y el correspondiente valor de incremento del encóder del motor en la estructura ST_PersistPositionData. El valor de la salida q_xPositionStored es TRUE y el de la salida q_etResult es OK.

NOTA: Si el eje en cuestión no se ha devuelto al punto de referencia al invocar el bloque de funciones:
  • El valor de la salida q_xPositionStored es FALSE.

  • El valor de la salida q_etResult es AxisNotHomed.

  • El valor de la salida q_xError es FALSE, es decir, no se ha detectado ningún error.

Si el eje en cuestión no es válido (por ejemplo, en el caso del eje de un variador que no es compatible):
  • El valor de la salida q_xPositionStored es FALSE.

  • El valor de la salida q_etResult es DeviceNotSupported.

  • El valor de la salida q_xError es TRUE, es decir, se ha detectado un error.

Si el bloque de funciones se utiliza con un eje virtual, se detecta un error (la salida q_xError se establece en TRUE) y la salida q_etResult se establece en AxisInvalid.

Si el bloque de funciones se utiliza con la modalidad de funcionamiento Simulated, no se detectará ningún error (la salida q_xError permanece en FALSE) y la salida q_etResult se establece en SimulatedWorkingModeNotSupported.

Una vez que el bloque de funciones FB_PersistPosition guarde los datos en ST_PersistPositionData y se vuelva a aumentar la fase de Sercos (por ejemplo, tras el reinicio de un controlador), al invocar un bloque de funciones FB_PersistPosition habilitado, se leerá el valor de incremento del encóder. La relación guardada de devolución al punto de referencia se utiliza para calcular la posición inicial del eje correspondiente al valor de incremento del encóder que se ha leído. Esta posición inicial se ajusta para el eje, mientras que el valor de la salida q_xPositionRestored se ajusta en TRUE. No es necesario realizar ningún procedimiento de devolución al punto de referencia.

Además del valor de posición del eje y el valor de incremento del encóder, el bloque de funciones almacena la suma de comprobación de ambos valores para cada ciclo. Cuando se restaura la posición inicial durante el aumento de fase de Sercos, el bloque de funciones verifica la coherencia de los dos valores en función de la suma de comprobación. Si se detecta un error de la suma de comprobación durante la restauración de la posición inicial (q_xError es TRUE), la salida q_etResult se ajusta en ChecksumInvalid. En este caso, no se guardará ni restaurará ningún valor. Ajuste los datos de la estructura ST_PersistPositionData en 0. Devuelva el eje al punto de referencia. Intente ejecutar de nuevo el bloque de funciones FB_PersistPosition. Si el problema persiste, póngase en contacto con su representante de servicio local de Schneider Electric.

La suma de comprobación no se verificará si los valores de la estructura ST_PersistPositionData son iguales a cero.

Puede llamar el bloque de funciones cíclicamente en segundo plano.

Requisitos y limitaciones

Se aplican los siguientes requisitos y limitaciones al uso del bloque de funciones FB_PersistPositionSingleturn:

  • El bloque de funciones admite encoders Singleturn.

  • El bloque de funciones no es compatible con encóders de máquinas.

  • Durante la ejecución del bloque de funciones, no podrán modificarse los valores de los parámetros del eje.

  • Si se sustituye el motor o si se realiza cualquier otro tipo de desacoplamiento del motor respecto del sistema mecánico (por ejemplo, durante el mantenimiento), el eje deberá devolverse de nuevo al punto de referencia para que se pueda volver a utilizar el bloque de funciones.

  • Es necesario que el área de la memoria de datos persistentes se utilice de manera exclusiva para este bloque de funciones.

Interfaz

Input

Tipo de datos

Descripción

i_xEnable

BOOL

Inicia (valor TRUE) o finaliza (valor FALSE) la ejecución del bloque de funciones.

i_ifAxis

MOIN.IF_Axis

Referencia al eje para el que se ejecutará el bloque de funciones.

i_uiNumberOfAbsoluteBits

UINT

Resolución del encoder Singleturn en bits.

Salida

Tipo de datos

Descripción

q_xPositionStored

BOOL

Indica si se almacenó correctamente (valor TRUE) o no (valor FALSE) la posición inicial.

q_xPositionRestored

BOOL

Indica si se restauró correctamente (valor TRUE) o no (valor FALSE) la posición inicial.

q_xError

BOOL

Indica si la última ejecución del bloque de funciones fue correcta (valor FALSE = no error detected) o no (valor TRUE = error detectado).

q_etResult

ET_Result

Incluye información sobre la ejecución del bloque de funciones.

Entrada/salida

Tipo de datos

Descripción

iq_stHomedData

ST_PersistPositionData

Estructura utilizada para el valor de posición del eje y el correspondiente valor de incremento del motor.

Métodos

Nombre

Descripción

readAxisAndEncoderPosition

Lee las posiciones del eje y del encoder.