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.
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.