Skip to main content

Rilevamento della posizione iniziale di un asse Modulo

La posizione effettiva di un convertitore o encoder viene trasmessa come DWORD al controller.

Per un asse modulo, il periodo P è definito in incrementi dal valore modulo e dalla scala. Il periodo P specifica il numero esatto di incrementi in una rotazione. Ciò significa che i valori posizionali X, X+1*P, X+2*P, ecc. descrivono la stessa posizione fisica. La posizione X+n*P supera il limite di DWORD quando n è sufficientemente grande. Ciò accade alla posizione 0x1 00 00 00 00. Quindi il primo posto viene tagliato e il valore inizia a 0. Se P non è un fattore di 0x1 00 00 00 00, la posizione X non descrive più la stessa posizione fisica prima e dopo l'interruzione.

Se i rapporti di trasmissione sono impostati in modo che il periodo non sia un fattore di 0x1 0000 0000, dopo l'attivazione è possibile spostare la posizione di un asse di rotazione.

Esempio 1. Esempio

L'asse inizia in posizione 0x0. È a 0°. Un periodo è 360°. La scalatura è selezionata in modo che corrisponda a 3600000 = 0x36 EE80 incrementi. Dopo 1193 rotazioni, l'asse si ferma a 0xFFFD 7280=1193*3600000. Dopo un'altra rotazione completa, l'asse raggiunge la posizione 0x10034 6100. All'interruzione, l'1 iniziale viene tagliato e la posizione 0x34 6100 è formato. Se si riporta l'asse in posizione 0x0, quindi l'asse si ferma alla posizione 16.7296°. Pertanto, la posizione 0x0 corrisponde alla posizione 0°, 16.7296°, ecc., a seconda dell'effettiva interruzione.



Suggerimento

Se hai selezionato la scalatura in modo che si possa verificare l'effetto di cui sopra, e se l'homing non è possibile o richiesto all'inizio del programma, puoi recuperare la posizione prima dell'ultima disattivazione tramite il SMC3_Posizione persistente blocco funzione. Qui si utilizza un encoder assoluto.