Sottoprogrammi con Heidenhein 530

Rispondi
pastrank
Newbie
Newbie
Messaggi: 7
Iscritto il: lunedì 31 maggio 2010, 1:07
Località: Firenze

Sottoprogrammi con Heidenhein 530

Messaggio da pastrank » martedì 26 luglio 2016, 10:18

Mi vergogno quasi a chiedere (e mi scuso anticipatamente per la prolissita'), dato che sono 30 anni che uso i cnc (ma il 530 di solito solo con il cam), ma non riesco a trovare il modo di fare una cosa probabilmente semplicissima. Supponiamo che abbia un programma, con piu' utensili all'interno, che viene ripetuto su piu' pezzi, richiamandolo da un altro programma. Il programma con gli utensili puo' averne anche molti, i pezzi possono essere tanti, e quindi mi conviene fare lavori utensile per utensile, per esempio prima il centrino, poi la punta di 2, poi quella di 2.1, poi l'alesatore, etc etc etc. Mi e' complicato dividere in piu' file (se ho 24 utensili meglio un cerca e sostituisci alla fine del ciclo, piuttosto che avere 24 file diversi).
Ho messo due file, molto ridotti, di esempio sotto.
Il mio problema e' che non trovo sui manuali, e sicuramente esistera' la possibilita', il modo di mantenere nel file richiamato piu' utensili, ma eseguire solo il primo: nell'esempio, solo l'utensile 1. Questo perche' alcuni utensili vanno controllati, altri li faccio mentre sono presente, molti li lascio andare di notte, e in ogni caso, se ho mettiamo 12 pezzi, non posso aspettare un'ora per vedere passare tutto il magazzino.
Per dire: su di un controllo Selca, posso creare un generale fatto tipo cosi'

Codice: Seleziona tutto

O1
LG:XYZ;
O2
G54
LG:XYZ;
M30
perche' M30 non ferma lo scorrimento dei programmi anche nel programma XYZ, ma sul 530 si'. La domanda quindi, precisamente, sarebbe: esiste un codice M che, messo all'interno del programma richiamato sul 530, mi faccia tornare al programma chiamante, senza interrompere tutto come farebbe M30?

Faccio un esempio semplificato di dove dovrebbe stare (ho segnato dove dovrei tornare indietro):

Codice: Seleziona tutto

0  BEGIN PGM gen MM 
1  Q1 = 196 ;LATO GREZZO
2  BLK FORM 0.1 Z  X-Q1  Y-Q1  Z-60
3  BLK FORM 0.2  X+Q1  Y+Q1  Z+0
4  M104
5  CYCL DEF 32.0 TOLERANZA
6  CYCL DEF 32.1 T0.02
7  CYCL DEF 247 DEF. ZERO PEZZO ~
    Q339=+1    ;NUMERO ORIGINE
8  CALL PGM xyz
9  CYCL DEF 247 DEF. ZERO PEZZO ~
    Q339=+2    ;NUMERO ORIGINE
12 CYCL DEF 8.0 SPECULARITA
13 CYCL DEF 8.1 X
14 CALL PGM xyz
19 CYCL DEF 8.0 SPECULARITA
20 CYCL DEF 8.1
21 CYCL DEF 10.0 ROTAZIONE
22 CYCL DEF 10.1  ROT+0
23 M104
24 M30
25 END PGM gen MM 
E il programma richiamato:

Codice: Seleziona tutto

0  BEGIN PGM xyz MM 
1  BLK FORM 0.1 Z  X-100  Y-100  Z-10
2  BLK FORM 0.2  X+100  Y+100  Z+10
3  ; ##################################################
16 ;  HELIC D = 5
17 TOOL CALL 1 Z S7003
18 CYCL DEF 32.0 TOLERANZA
19 CYCL DEF 32.1 T0.01
20 L  Z+100 R0 FMAX M13
21 CYCL DEF 200 FORATURA ~
    Q200=+2    ;DISTANZA SICUREZZA ~
    Q201=-54.375 ;PROFONDITA ~
    Q206=+182  ;AVANZ. INCREMENTO ~
    Q202=+54.375 ;PROF. INCREMENTO ~
    Q210=+0    ;TEMPO ATTESA SOPRA ~
    Q203=+0    ;COORD. SUPERFICIE ~
    Q204=+100  ;2. DIST. SICUREZZA ~
    Q211=+0    ;TEMPO ATTESA SOTTO
22 L  X-0.505  Y+7.996 FMAX M99
24 L FMAX
25 M30          ;<<<<< ----------- qui il motivo della mia domanda: M30 non va bene
26 ; ##################################################
27 ;  ALESATORE DIAMETRO FISSO D = 6
28 TOOL CALL 21 Z S6897
29 CYCL DEF 32.0 TOLERANZA
30 CYCL DEF 32.1 T0.01
31 L  Z+100 R0 FMAX M13
32 CYCL DEF 201 ALESATURA ~
    Q200=+2    ;DISTANZA SICUREZZA ~
    Q201=-49.932 ;PROFONDITA ~
    Q206=+437  ;AVANZ. INCREMENTO ~
    Q211=+0    ;TEMPO ATTESA SOTTO ~
    Q208=+30000 ;INVERS. AVANZAMENTO ~
    Q203=+0    ;COORD. SUPERFICIE ~
    Q204=+100  ;2. DIST. SICUREZZA
33 L  X-0.505  Y+7.996 FMAX M99
35 L FMAX
38 M30
39 END PGM xyz MM 

safe60
Senior
Senior
Messaggi: 730
Iscritto il: venerdì 29 maggio 2009, 8:43
Località: Ferrara
Contatta:

Re: Sottoprogrammi con Heidenhein 530

Messaggio da safe60 » martedì 26 luglio 2016, 11:48

Il manuale Heidenhain riferisce che in un sottoprogramma richiamato non ci deve essere M30 o M2. Questo spiega il comportamento che hai rilevato.
Se ho capito bene, il sottoprogramma che richiami sarebbe un programma completamente autonomo che potresti tranquillamente far partire da solo. Non e', diciamo, progettato per essere richiamato da un programma principale.

Forse si potrebbe tentate di "ingannare" il controllo mettendo al posto di M30 l'istruzione END PGM. Se funziona, quando la incontra il controllo ritorna al chiamante e ignora tutte le righe che seguono.

Nota : non ho mai provato e non so se puo' funzionare...
More Maiorum

pastrank
Newbie
Newbie
Messaggi: 7
Iscritto il: lunedì 31 maggio 2010, 1:07
Località: Firenze

Re: Sottoprogrammi con Heidenhein 530

Messaggio da pastrank » martedì 26 luglio 2016, 13:27

safe60 ha scritto: Se ho capito bene, il sottoprogramma che richiami sarebbe un programma completamente autonomo che potresti tranquillamente far partire da solo. Non e', diciamo, progettato per essere richiamato da un programma principale..
Infatti, e' un programma generato da Visi MFR, per le forature. Non saprei come farlo comunque nemmeno modificandolo a mano, nel senso che se sapessi cosa mettere in mezzo agli utensili la potrei mettere anche modificando il postprocessore o con un po' di Python. Tra l'altro la cosa mi sembra anche una limitazione del controllo...
safe60 ha scritto: Forse si potrebbe tentate di "ingannare" il controllo mettendo al posto di M30 l'istruzione END PGM. Se funziona, quando la incontra il controllo ritorna al chiamante e ignora tutte le righe che seguono.
L'idea era buona, ma quando mando, via rete, i file dal pc alla macchina, il controllo pensa che dopo END PGM si debba troncare il file :-(

safe60
Senior
Senior
Messaggi: 730
Iscritto il: venerdì 29 maggio 2009, 8:43
Località: Ferrara
Contatta:

Re: Sottoprogrammi con Heidenhein 530

Messaggio da safe60 » martedì 26 luglio 2016, 13:42

Se tronca il programma e' comprensibile. Peccato. Si potrebbe provare a commentare tutte le righe dopo il blocco END PGM. Con un editor che supporti le regular expression e' un attimo. Solo che poi comincia a diventare complicato. Vabbe', ci abbiamo provato.
More Maiorum

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: Sottoprogrammi con Heidenhein 530

Messaggio da gino » martedì 26 luglio 2016, 13:47

in un programma Heidenhain
ce anche il comando CALL PGM
che puo chiamare in attivo un altro programma esistente in direttorio..

pastrank
Newbie
Newbie
Messaggi: 7
Iscritto il: lunedì 31 maggio 2010, 1:07
Località: Firenze

Re: Sottoprogrammi con Heidenhein 530

Messaggio da pastrank » martedì 26 luglio 2016, 13:56

safe60 ha scritto:Se tronca il programma e' comprensibile. Peccato. Si potrebbe provare a commentare tutte le righe dopo il blocco END PGM. Con un editor che supporti le regular expression e' un attimo. Solo che poi comincia a diventare complicato. Vabbe', ci abbiamo provato.
:-)
Si complicherebbero le cose in effetti: fai conto che su certi lavori monitoro la cartella dove genero i file, e ogni volta che salvo un file me lo va a modificare, splittare, etc etc. Il fatto e' che, come con i pezzi adesso, ottengo 27 file...

ps: tra le altre cose, usando generalmente la macchina per forme fresate, di solito mi limito ad avere un programma alla volta, generandolo dal cam, quindi neanche sono esperto del linguaggio del 530.

pastrank
Newbie
Newbie
Messaggi: 7
Iscritto il: lunedì 31 maggio 2010, 1:07
Località: Firenze

Re: Sottoprogrammi con Heidenhein 530

Messaggio da pastrank » martedì 26 luglio 2016, 13:57

gino ha scritto:in un programma Heidenhain
ce anche il comando CALL PGM
che puo chiamare in attivo un altro programma esistente in direttorio..
Appunto, dal principale lo richiamo e questo ok, pero' poi me lo esegue tutto! Io vorrei fare solo il primo utensile.

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: Sottoprogrammi con Heidenhein 530

Messaggio da gino » martedì 26 luglio 2016, 14:31

ho ancora un vecchio programma Heidenhain dove richiama
svariati sotto_programmi
e un programma per realizzare scritte (ora i tnc 530 Hanno il programma piu semplice integrato)
ma 20 anni fa non esisteva .ci sono tutte le lettere alfabetiche e Numeri.
nel CALL "Numero" si richiamava una certa lettera (avevamo una tabella)
te lo allego forse ci puoi trarre qualcosa come esempio
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

pastrank
Newbie
Newbie
Messaggi: 7
Iscritto il: lunedì 31 maggio 2010, 1:07
Località: Firenze

Re: Sottoprogrammi con Heidenhein 530

Messaggio da pastrank » martedì 26 luglio 2016, 15:20

gino ha scritto:te lo allego forse ci puoi trarre qualcosa come esempio
Grazie, gli do' un'occhiata!

francesco1982
Newbie
Newbie
Messaggi: 2
Iscritto il: sabato 18 gennaio 2020, 8:33

Re: Sottoprogrammi con Heidenhein 530

Messaggio da francesco1982 » martedì 22 giugno 2021, 13:41

Buongiorno mi permetto di rispondere anche se il topic è vecchio. Si può facilmente ovviare al problema o con utilizzo appropriato di lbl oppure più semplice con funzione IF 0 equal 0 go to LBL

Rispondi

Torna a “Heidenhain”