Permette di definire gli assi non presenti. Caso tipico è la macchina con varie opzioni (opzioni costituite da assi) dove il programmatore vuole realizzare un unico applicativo in piena configurazione per poi, in funzione della macchina in consegna, configurare gli assi presenti e quelli assenti.
Sintassi |
NOT_PRESENT_AXES mask NOT_PRESENT_AXES = mask (da RTE>34.19.4) |
---|---|
mask |
Maschera degli assi non presenti |
Note |
Da RTE>34.19.4 aggiunta informazione in report dell'uso di NOT_PRESENT_AXES anche in RTE.CFG |
Comportamento di RTE per un asse definito non presente
•Non conteggia l'asse ai fini della conta del totale degli assi licenziati
•Non tiene conto dell'asse nella gestione del Power Set (abilitazioni, feedback)
•Non genera allarme se da programma vengono imposte le variabili cinematiche (ip, iv, ia)
•Non genera allarme se da programma si accede alle variabili di asse (pro_gai, ser_thr ...)
Metodi per dichiarare un asse non presente
Un asse può essere dichiarato non presente in tre modi:
•Da Configuratore di progetto --> Asse --> Generale mettendo FLAG su "non presente". In generazione del file RTE.CFG verrà quindi inserita la keyword not_present_axes con il bit relativo in uno (vedi immagine)
•Tramite il file presente sulla CF e precisamente /fa/override.cfg
•Tramite file presente sulla CF e precisamente /fa/not_present_axes.def
Funzionamento keyword NOT_PRESENT_AXES:
Per stabilire gli assi non presenti e darne informazione attraverso la variabile predefinita a sola lettura MASK_NOP_AX, RTE all'accensione legge dalla CF i files nel seguente ordine:
•override.cfg
•not_present_axe.def
•rte.cfg
Il primo presente è quello utilizzato per inizializzare la MASK_NOP_AX.
In caso di applicazioni canOpen l'utente dovrà:
•Gestire l'assenza di eventuali assi anche dal file di configurazione della rete can (file .coc) togliendo l'attributo di "Il nodo deve essere sempre presente". In questo modo si eliminano i controlli in accensione da parte di RTE
•All'inizio del task 1 (entry point del programma) controllare da applicativo che gli assi che devono essere presenti siano effettivamente presenti sulla linea can utilizzando, ad esempio, la funzione CO_RNMT() e testando lo stato operativo OPERATIONAL in accordo con la variabile MASK_NOP_AX
Esempio
NOT_PRESENT_AXES 0xC ; gli assi 3 e 4 non ci sono |