Persistencia de una posición del eje
Un eje que tenga un codificador absoluto puede guardar una posición para que conserve su posición anterior después de reiniciar el controlador. La localización no es necesaria. El SMC3_PersistPosition
y SMC3_PersistPositionLogical
bloques de funciones proporcionan la funcionalidad para la operación de guardar. Los datos necesarios se guardan en SMC3_PersistPosition_Data
y SMC3_PersistPositionLogical_Data
.
El bPositionStored
la salida indica si el contenido de PersistentData
han cambiado. Esto ocurre en diferentes momentos según el tipo de persistencia.
El rango de valores que conserva el codificador debe configurarse en SMC_PersistPosition.maxPersistedValue
entrada. Para los codificadores de varias vueltas, el valor se establece 16#FFFFFFFFFF
. Para un codificador de 12 bits de una sola vuelta, por ejemplo, el valor se establece en 2^12 = 4096
Para más información, ver: Persistencia de datos
Sugerencia
La instancia se hace persistente por medio de una declaración como VAR_PERSISTENT
o el administrador de persistencia del compositor de la aplicación.
Persistencia de la posición del eje de un encoder absoluto multivuelta con eje físico
Requisito: El eje dispone de un encóder absoluto multivueltas.
Utilizar el SMC3_PersistPosition
FB para hacer persistente la posición del eje físico. El programa respectivo se ejecuta en la tarea de movimiento.
Crea una instancia del
SMC3_PersistPosition
bloque de funciones para el eje.pp: SM3_BASIC.SMC3_PersistPosition;
Instanciar una estructura de datos persistente de la
SMC3_PersistPosition_Data
escribe.pp_Data: SM3_BASIC.SMC3_PersistPosition_Data1;
Amplíe el programa de la tarea de movimiento para que una llamada del
SMC3_PersistPosition
instancia se implementa allí.Llamada implementada en CFC:
El bloque de funciones se llama en ciclos con la tarea de movimiento. El
SMC3_PersistPosition
instancia realiza la restauración de la posición guardada durante la operación de inicio. En el funcionamiento normal, el FB guarda la posición actual en la estructura de datos respectiva.
Persistencia de la posición del eje del codificador absoluto monovuelta con eje físico
Requisito: El eje físico tiene un encoder absoluto monovuelta.
Usa el SMC3_PersistPosition
bloque de funciones para que la posición del eje sea persistente. El programa correspondiente se ejecuta en la tarea de movimiento. La posición se muestra correctamente solo si el eje no ha recorrido ninguna distancia o solo ha recorrido una distancia corta (como máximo la mitad de la distancia de un solo giro) entre la desconexión y el encendido del mando. Para ello, puede utilizar un freno mecánico, por ejemplo. Si el eje hace un gran movimiento cuando el controlador está apagado, entonces recibe una posición incorrecta. No es posible comprobarlo mediante el FB
Crea una instancia del
SMC3_PersistPosition
bloque de funciones para el eje.ppst_X: SM3_BASIC.SMC3_PersistPositionSinglturn;
Cree una instancia de una estructura de datos persistente del
SMC3_PersistPosition_Data
tipo.ppst_Data_X: SMC3_PersistPositionSingleturn_Data;
Amplíe el programa de la tarea de movimiento para que una llamada del
SMC3_PersistPosition
la instancia está implementada y la estructura de datos persistente delSMC_PersistPosition_Data
se le pasa el tipo.
Persistencia de la posición del eje de un eje lógico
Requisito: El eje es lógico.
Usa el SMC3_PersistPositionLogical
bloque de función para hacer que la posición del eje lógico sea persistente. Esto solo funciona si la posición del eje físico superior se hizo persistente. La posición de un eje virtual no se puede hacer persistente mediante estos FB
Crea una instancia del
SMC3_PersistPositionLogical
bloque de funciones para el eje.ppl: SM3_BASIC.SMC3_PersistPositionLogical;
Instanciar una estructura de datos persistente de la
SMC3_PersistPositionLogical_Data
escribe.ppl_Data: SMC3_PersistPositionLogical_Data;
Amplíe el programa de la tarea de movimiento para que una llamada del
SMC3_PersistPositionLogical
se implementa la instancia y los datos persistentes de tipoSMC3_PersistPositionLogical_Data
se le pasa.