D = Device(camming3, camming4)
C = Funzioni di Calcolo
La funzione DC10DinHFlyC esegue i calcoli necessari per poter cambiare al volo la lunghezza pezzo in esecuzione senza avere necessariamente lo spazio per poter tornare in posizione di Home.
In particolare, durante un normale taglio al volo a lunghezza fissa, la funzione consente di eseguire un pezzo di lunghezza pari al valore passatogli e di tornare poi automaticamente alla lunghezza pezzo precedentemente in uso (nel caso nel frattempo non sia stato richiesto una altro taglio).
Alla funzione si devono passare i valori di: Lunghezza pezzo da tagliare, Tempo di accelerazione, Tempo di decelerazione, velocità massima di ritorno Slave (espressa come percentuale della massima assoluta), Tipo di rampe (trapezoidali o epicicloidali) e, infine, il massimo spazio consentito per la corsa del carro. La funzione scrive direttamente sul device CAMMING3 (o 4) i settori.
E' importante che la funzione venga “richiamata” ad ogni giro logico del Qmove anche se il carro è fermo; quando si vuole eseguire un taglio si deve impostare la variabile gbStartTag al valore 1.
DC10DinHFlyC (cmCam,gbStartTag,aslParam,sbWarning,sbError)
Parametri:
IN/OUT | TIPO VARIABILE | NOME DI ESEMPIO | DIM | |
---|---|---|---|---|
IN | CAMMING3 CAMMING4 | Cam | Tipo di device a cui si può applicare la funzione | |
IN | SYSTEM | gbStartTag | B | Variabile che quando viene impostata a 1 segnala di eseguire un nuovo taglio a misura “Lunghezza Pezzo”. La Variabile viene azzerata dalla funzione. |
IN | ARRSYS | aslParam[1] | L | Lunghezza Pezzo (UM) |
IN | ARRSYS | aslParam[2] | L | Tempo di accelerazione in ritorno carro. Tempo che il carro impiega per portarsi alla velocità massima (s/100) |
IN | ARRSYS | aslParam[3] | L | Tempo di decelerazione in ritorno carro. Tempo che il carro impiega per portarsi da velocità massima a 0 (s/100) |
IN | ARRSYS | aslParam[4] | L | Velocità max di ritorno Carro (% della vel max Carro) |
IN | ARRSYS | aslParam[5] | L | Tipo di rampe di acc/dec (0=rampe trapezoidali / 1=rampe epicicloidali) |
IN | ARRSYS | aslParam[6] | L | Spazio massimo consentito per il taglio (massima corsa totale del carro ammissibile dal punto di Home in avanti) |
OUT | ARRSYS | sbWarning | B | Variabile che segnala un warning nel sistema |
OUT | SYSTEM | sbError | B | Errore dalla funzione |
0:nessun warning
1:Taglio non consentito
Una volta richiamata la funzione la variabile di errore può assumere determinati valori, il significato di tali valori è riassunto di seguito:
0: calcolo eseguito senza errori
1: Velocità massima Slave = 0
2: Lunghezza pezzo = 0
3:Tempo di accelerazione = 0
4:Tempo di decelerazione = 0
5:Risoluzione errata
... IF gfRilDifetto ;Rilevato difetto su materiale da tagliare gfRilDifetto = 0 aslParam[1] = glLungPezzo ;Nuova lunghezza (lunghezza del difetto rilevato) (UM) aslParam[2] = 50 ;Tempo di accelerazione (s/100) aslParam[3] = 50 ;Tempo di decelerazione (s/100) aslParam[4] = 80 ;Velocità di ritorno carro (% vmax) aslParam[5] = 0 ;Rampe trapezoidali aslParam[6] = 30000 ;Massimo spazio consentito per il carro (UM) gbStartTag = 1 ;Attiva il taglio ENDIF DC10DinHFlyC (cmCam,gbStartTag,aslParam,sbWarning,sbErrore) IF sbWarning sbWarning = 0 slMessaggio = 5 ;Variabile di messaggio "taglio non eseguibile" ENDIF ...