Persistenza di una posizione dell'asse
Un asse dotato di un encoder assoluto può salvare una posizione in modo che mantenga la posizione precedente dopo il riavvio del controller. L'homing non è richiesto. Il SMC3_PersistPosition
e SMC3_PersistPositionLogical
blocchi funzione forniscono la funzionalità per l'operazione di salvataggio. I dati necessari vengono salvati in SMC3_PersistPosition_Data
e SMC3_PersistPositionLogical_Data
.
Le bPositionStored
l'output indica se il contenuto di PersistentData
sono cambiati. Ciò si verifica in momenti diversi a seconda del tipo di persistenza.
L'intervallo di valori mantenuto dall'encoder deve essere configurato in SMC_PersistPosition.maxPersistedValue
ingresso. Per gli encoder multigiro, il valore è impostato 16#FFFFFFFFFF
. Per un encoder a giro singolo a 12 bit, ad esempio, il valore è impostato su 2^12 = 4096
Per ulteriori informazioni, vedere: Persistenza dei dati
Suggerimento
L'istanza è resa persistente mediante una dichiarazione come VAR_PERSISTENT
o il Persistence Manager dell'Application Composer.
Persistenza della posizione dell'asse di un encoder assoluto multigiro con un asse fisico
Presupposto: l'asse dispone di un encoder assoluto multigiro.
Utilizzare il SMC3_Posizione persistente
FB per rendere persistente la posizione dell'asse fisico. Il rispettivo programma viene eseguito nel task di movimento.
Crea un'istanza di
SMC3_PersistPosition
blocco funzionale per l'asse.pp: SM3_BASIC.SMC3_PersistPosition;
Istanziare una struttura dati persistente di
SMC3_PersistPosition_Data
genere.pp_Data: SM3_BASIC.SMC3_PersistPosition_Data1;
Estendere il programma del task di movimento in modo che una chiamata del
SMC3_PersistPosition
l'istanza è implementata lì.Call implementato in CFC:
Il blocco funzione viene richiamato in cicli con il task di movimento. Il
SMC3_PersistPosition
istanza esegue il ripristino della posizione salvata durante l'operazione di avvio. Nel funzionamento normale l'FB salva la posizione attuale nella rispettiva struttura dati.
Persistenza della posizione dell'asse dell'encoder assoluto monogiro con asse fisico
Presupposto: l'asse fisico dispone di un encoder assoluto a giro singolo.
Usa il SMC3_PersistPosition
blocco funzionale per rendere persistente la posizione dell'asse. Il rispettivo programma viene eseguito nel task motion. La posizione viene visualizzata correttamente solo se l'asse non ha percorso alcuna distanza o ha percorso solo una breve distanza (massimo la metà della distanza di un giro) tra lo spegnimento e l'accensione del controller. A tale scopo, ad esempio, è possibile utilizzare un freno meccanico. Se l'asse compie un movimento ampio quando il controller è spento, riceve una posizione errata. Non è possibile effettuare il controllo tramite l'FB
Crea un'istanza di
SMC3_PersistPosition
blocco funzionale per l'asse.ppst_X: SM3_BASIC.SMC3_PersistPositionSinglturn;
Istanziare una struttura dati persistente del
SMC3_PersistPosition_Data
tipo.ppst_Data_X: SMC3_PersistPositionSingleturn_Data;
Estendere il programma dell'attività di movimento in modo che una chiamata del
SMC3_PersistPosition
viene implementata l'istanza e la struttura dati persistente diSMC_PersistPosition_Data
gli viene passato il tipo.
Persistenza della posizione dell'asse di un asse logico
Presupposto: l'asse è logico.
Usa il SMC3_PersistPosition Logical
blocco funzionale per rendere persistente la posizione dell'asse logico. Funziona solo se la posizione dell'asse fisico sovraordinato è stata resa persistente. La posizione di un asse virtuale non può essere resa persistente mediante questi FB
Crea un'istanza di
SMC3_PersistPositionLogical
blocco funzionale per l'asse.ppl: SM3_BASIC.SMC3_PersistPositionLogical;
Istanziare una struttura dati persistente di
SMC3_PersistPositionLogical_Data
genere.ppl_Data: SMC3_PersistPositionLogical_Data;
Estendere il programma del task di movimento in modo che una chiamata del
SMC3_PersistPositionLogical
istanza è implementata e i dati persistenti di tipoSMC3_PersistPositionLogical_Data
gli viene passato.