software:qview:qview_6:qcl_library:dc10elgear

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:dc10elgear [2019/08/29 17:01] (versione attuale) – creata - modifica esterna 127.0.0.1
Linea 1: Linea 1:
 +====== DC10ElGear ======
 +
 +**D = **//Device(CAMMING2, CAMMING3)//
 +
 +**C = **//Funzioni di Calcolo//
 +
 +Lo scopo della funzione DC10ElGear è quello di __calcolare i settori di una camma elettronica per la gestione di uno slave di un Albero Elettrico__.\\
 +L'albero elettrico è un sistema che lega un asse Slave ad un asse Master tramite un rapporto di sincronismo impostabile.\\
 +Di seguito viene rappresentato un grafico che illustra l'andamento dello Slave rispetto al Master. Il punto zero del grafico rappresenta il momento in cui viene dato il comando di STARTCAM allo Slave. Il rapporto impostato nel grafico di esempio è di 1:2  (aslParam[1] = 500)\\
 +N.B.: Il tratto segnato come "tacc" può non esserci nel caso si imposti il tempo di accelerazione a zero. Con tempo di accelerazione a zero la partenza dello Slave è a "gradino", cioè raggiunge in 'tempo zero' la velocità del Master.
 +
 +{{.:dc10elgear:dc10elgear.png?nolink650|}}
 +
 +===== IMPLEMENTAZIONE =====
 +
 +**DC10ElGear (aslParam, codeG, codeM, codeQm, codeQs, codeQma, codeQsa,Errore)**
 +
 +Parametri:
 +
 +^IN/OUT^TIPO VARIABILE^NOME DI ESEMPIO^DIM^^
 +|  IN  |  ARRSYS  |  aslParam [1]  |  L  |Rapporto di sincronismo Slave/Master (1000=1:1) (possibilità di variazione minima dell'1‰)|
 +|  IN  |  ARRSYS  |  aslParam [2]  |  L  |Velocità massima Slave (UM/sec) [1÷999999]|
 +|  IN  |  ARRSYS  |  aslParam [3]  |  L  |Tempo di accelerazione Slave per portarsi da zero a velocità max. Impostando 0 si ha la partenza a "gradino". (s/100) [1÷999999]|
 +|  IN  |  ARRSYS  |  aslParam [4]  |  L  |Velocità Master di riferimento, utilizzata per il calcolo delle accelerazioni (UM/sec) [1÷999999]|
 +|  IN  |  ARRSYS  |  aslParam [5]  |  L  |Parametro "measure" del device utilizzato [1÷999999]|
 +|  IN  |  ARRSYS  |  aslParam [6]  |  L  |Parametro "pulse" del device utilizzato [1÷999999]|
 +|  OUT  |  ARRSYS  |  CodeG  |  L  |Array contenente Code G calcolato (40 elementi)  (OUT)|
 +|  OUT  |  ARRSYS  |  CodeM  |  L  |Array contenente Code M calcolato (40 elementi) (OUT)|
 +|  OUT  |  ARRSYS  |  CodeQm  |  L  |Array contenente CodeQm calcolato (40 elementi) (OUT)|
 +|  OUT  |  ARRSYS  |  CodeQs  |  L  |Array contenente CodeQs calcolato (40 elementi) (OUT)|
 +|  OUT  |  ARRSYS  |  CodeQma  |  L  |Array contenente CodeQma (40 elementi) (OUT)|
 +|  OUT  |  ARRSYS  |  CodeQsa  |  L  |Array contenente CodeQsa (40 elementi) (OUT)|
 +|  OUT  |  SYSTEM  |  Errore  |  B  |Var di errore intervenuto (OUT)|
 +
 +==== Errore ====
 +
 +Una volta richiamata la funzione la variabile di errore assume determinati valori, il significato di tali valori è riassunto di seguito:\\
 +0: calcolo eseguito senza errori\\
 +1: Rapporto di sincronismo uguale a 0\\
 +2: Velocità massima Slave minore o uguale a 0\\
 +3: Velocità Master minore o uguale a 0\\
 +4: Parametro "measure" minore o uguale a 0\\
 +5: Velocità Slave calcolata superiore alla velocità Slave massima
 +
 +=== Esempio ===
 +
 +Nell'esempio si vuole calcolare la camma per l'albero elettrico quando il flag gfCalcElGear va 1.  La scrittura sulla camma avviene mediante la funzione DW20WrCam.
 +
 +<code QCL>
 +MAIN:                  
 +     IF gfCalcElGear
 +             gfCalcElGear = 0
 +
 +             aslParam[1] = 2000 ;Rapporto Slave/Master (2:1)
 +             aslParam[2] = 4000 ;Velocità massima Slave
 +             aslParam[3] = 0 ;Tempo di accelerazione Slave (0=disabilitata:partenza senza rampe)
 +             aslParam[4] = 1500 ;Velocità Master di riferimento
 +             aslParam[5] = 1000 ;Parametro "measure" del device
 +             aslParam[6] = 4000 ;Parametro "pulse" del device
 +
 +             DC10ElGear (aslParam, codeG, codeM, codeQm, codeQs, codeQma, codeQsa,Errore)
 +             IF NOT Errore
 +                  SettIniz = 1
 +                  NumSet = 4
 +
 +             DW20WrCam(cmCamma,CodeG,CodeM,CodeQm,CodeQs,CodeQma,CodeQsa,SettIniz,SettFine,NumSet,Errore)
 +             ENDIF
 +     ENDIF
 +</code>
 +
 +=== Note di funzionamento ===
 +
 +  *Il rapporto di sincronismo (aslParam[1]) può essere impostato anche negativo, in tal caso lo Slave segue il rapporto di sincronismo impostato ma andando nella direzione di indietro
 +  *Il tempo di accelerazione impostato serve per decidere la rampa con cui lo Slave, al momento del comando di aggancio in camma (STARTCAM), deve agganciarsi in sincronismo con il Master. Se il tempo è impostato a zero lo Slave fa un gradino per raggiungere immediatamente la velocità del Master
 +  *Il numero di settori utilizzati è sempre 4
 +  *Nel caso si voglia cambiare "al volo" il rapporto di sincronismo, questo è possibile farlo solo utilizzando la funzione **DC10ChGear**
  
  • Ultima modifica: 2019/08/29 17:01