software:qview:qview_6:qcl_library:dc10dinhflyc

no way to compare when less than two revisions

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.


software:qview:qview_6:qcl_library:dc10dinhflyc [2019/08/29 17:01] (versione attuale) – creata - modifica esterna 127.0.0.1
Linea 1: Linea 1:
 +====== 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.
 +
 +===== IMPLEMENTAZIONE =====
 +
 +**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|
 +
 +==== Warning ====
 +
 +0:nessun warning\\
 +1:Taglio non consentito
 +
 +==== Errore ====
 +
 +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 ===
 +
 +<code QCL>
 +...
 +
 +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
 +
 +...
 +</code>
  
  • Ultima modifica: 2019/08/29 17:01