Detección de posición inicial de un eje Modulo
La posición real de una unidad o codificador se transmite como DWORD al controlador.
Para un eje de módulo, el período P se define en incrementos por el valor de módulo y la escala. El período P especifica el número exacto de incrementos en una rotación. Esto significa que los valores posicionales X, X+1*P, X+2*P, etc. describen la misma posición física. La posición X+n*P excede el límite de DWORD cuando n es lo suficientemente grande. Esto sucede en la posición 0x1 00 00 00 00. Luego se corta el lugar inicial y el valor comienza en 0
. Si P no es un factor de 0x1 00 00 00 00
, entonces la posición X ya no describe la misma posición física antes y después de la interrupción.
Si las relaciones de transmisión se establecen de modo que el período no sea un factor de 0x1 0000 0000
, entonces la posición de un eje de rotación se puede mover después de la activación.
El eje comienza en la posición 0x0
. Está a 0°. Un período es de 360°. La escala se selecciona de modo que corresponda a 3600000 = 0x36 EE80
incrementos Después de 1193 rotaciones, el eje se detiene en 0xFFFD 7280=1193*3600000
. Después de otra rotación completa, el eje alcanza la posición 0x10034 6100
. En la interrupción, se corta el 1 inicial y la posición 0x34 6100
se forma Si mueve el eje de nuevo a la posición 0x0
, luego el eje se detiene en la posición 16.7296°. Por lo tanto, la posición 0x0
corresponde a la posición 0°, 16.7296°, etc., dependiendo de la interrupción real.
Sugerencia
Si ha seleccionado la escala para que se produzca el efecto anterior, y si no es posible o no es necesario realizar un recorrido de referencia al inicio del programa, puede recuperar la posición anterior a la última desactivación mediante el SMC3_PersistPosition
bloque de funciones Aquí se utiliza un codificador de valor absoluto.