software:qview:qview_6:qcl_library:dc10dinhflyc

DC10DinHFlyC

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/OUTTIPO VARIABILENOME DI ESEMPIODIM
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

Note

  • La funzione deve essere richiamata ad ogni giro logico dell'applicativo. E' necessario, quindi, inserirla in un task che viene eseguito completamente ad ogni giro logico (che non contenga wait di attesa eventi al suo interno, dunque).
  • La funzione può essere usata solo se per la costruzione della camma di taglio al volo si è utilizzato la funzione DC20FlyCut oppure la DC30FlyCut .
  • Se si vuole dare il via ad un taglio di lunghezza diversa si deve porre al valore 1 la variabile “gbStartTag”. Questo deve essere fatto prima del taglio in corso (prima, cioè, dell'attivazione dell'uscita di taglio) in modo che la funzione abbia il tempo di modificare la camma per un ritorno del carro atto a tagliare la nuova misura impostata. Il pezzo di misura diversa sarà, quindi, sempre il pezzo successivo a quello che ci si appresta a tagliare nel momento in cui viene impostato il valore 1 sulla variabile “gbStartTag”. Se il comando viene, invece, dato durante o dopo il taglio, il pezzo di nuova lunghezza sarà eseguito dopo il successivo taglio.
  • Il tempo necessario per eseguire i calcoli della camma va da 10msec a 20 msec circa, e varia in base al tempo di giro logico della Cpu.

Esempio di utilizzo

...
 
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
 
...
  • Ultima modifica: 2019/08/29 17:01