Dato che non viene specificato il tipo di controllo non è possibile esaudire completamente la tua richiesta poiché se la logica è pressoché uguale sulle diverse cnc non lo è la configurazione! Posso rispondere per il Fanuc ma anche qui abbiamo diversità !
Un programma macro può essere richiamato in differenti modi:
- codice G (richiamo macro),
- codice M (richiamo macro),
- codice M (richiamo sottoprogramma)
- codice T (richiamo sottoprogramma)
La differenza tra un richiamo macro e un richiamo di sottoprogramma consiste nel fatto che questo ultimo non accetta argomenti. Attenzione, non sto parlando di sottoprogrammi comuni ma di richiami tramite codici specifici (G, M, T)
Ecco alcuni esempi
G183 X Y Z F R Q richiamo macro con codice G, la funzione G183 accetta gli argomenti elencati
M192 T4 richiamo macro con codice M, la funzione M192 accetta l'argomento T
M06 richiamo sottoprogramma con codice M, la funzione M06 non accetta argomenti, altri codici dopo M06 verranno trattati come codici cnc e non come argomenti
T5 richiamo sottoprogramma con codice T, vale quanto detto per M06
Come scegliere il tipo di richiamo?
Dobbiamo passare argomenti? Si! Allora scegliamo il richiamo macro, perché altrimenti non potremmo passarli! Possiamo scegliere tra G o M
Non dobbiamo passare argomenti? Allora scegliamo il richiamo sottoprogramma! M o T? Siete liberi di scegliere ciò che volete (sempre che ne abbiate l'opportunità )
Nel tuo caso, il codice M500 non richiede argomenti, quindi dovrai usare un richiamo ad un sottoprogramma. Il richiamo di sottoprogramma tramite codice M viene definito assegnandolo al parametro corrispondente (6071->6079) al quale corrisponde il relativo programma (O9001->O9009). Facciamo un esempio: M06 associato al programma O9001; ciò significa che nel parametro 6071 c'è il valore 6 ed ogni volta che si scrive M06 (M6) il cnc eseguirà il programma O9001.
Se decidi di usare il programma O9006, dovrai scrivere nel parametro 6076 il valore 500. Ogni volta che scrivi M500 verrà eseguito il tuo programma O9006.
Anzitutto devi verificare che il codice che vuoi usare non sia occupato: eseguilo in MDI e se ricevi un allarme di codice illegale o simile, significa che il codice M500 non esiste, altrimenti devi cambiarlo (avere un elenco completo dei docici M sarebbe preferibile, ma purtroppo i costruttori non li rilasciano, anche se dovrebbero!). Poi devi verificare di avere un posto libero nei parametri o nei programmi relativi altrimenti non potrai usare questo tipo di richiamo. Devi stare molto attento a quello che scrivi nel sottoprogramma, non basta dare uno spostamento ed ottenere il risultato voluto! Devi valutare attentamente ogni prevedibile condizione, prima fra tutte l'interferenza con oggetti presenti sulla tavola il che dovrebbe farti pensare di introdurre come primo spostamento quello in Z e poi gli altri. Il comportamento delle nostre cnc non è uguale, i movimenti interpolati non sempre vengono eseguiti (in determinate condizioni sicuramente no) e questo potrebbe essere causa di urti. Hai una cnc 3 assi? Possiedi assi rotativi o basculanti? E' la tavola che si muove o la testa? Considera per bene le diverse condizioni di lavoro al fine di scrivere il codice più appropriato alla tua cnc!