strumenti:qmoveplus:j1p20:p1p20f-023:mdo_p1p20f-023

Differenze

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

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
strumenti:qmoveplus:j1p20:p1p20f-023:mdo_p1p20f-023 [2021/06/11 15:33] – [9.1 Esempio 1: Generico] qem201strumenti:qmoveplus:j1p20:p1p20f-023:mdo_p1p20f-023 [2021/06/11 16:53] (versione attuale) – [9.4 Esempio 4: JMPSUB] qem201
Linea 542: Linea 542:
 |  20   | END                   | Fine sequenza | |  20   | END                   | Fine sequenza |
 \\ \\
-<WRAP center 30%> + 
-{{:strumenti:qmoveplus:j1p20:p1p20f-023:es_prg_1.png?400|}} +{{:strumenti:qmoveplus:j1p20:p1p20f-023:es_prg_1.png?600|}} 
-</WRAP>+ 
 +\\ 
 +<html><pagebreak /></html> 
 + 
 +===== - Esempio 2: Registri ===== 
 + 
 +Questo esempio esegue sempre dei posizionamenti, ma utilizzando i registri per gli assi X e Y. 
 + 
 +^ Passo ^ Istruzione ^ Argomenti     ^ Commenti ^ 
 +|  1    | ASSV       | 1,          0 | V1 = 0 | 
 +|  2    | ASSQX      | 1,     4000.0 | RX[1] = 4000 , registro delle X con indice 1 | 
 +|  3    | ASSV       | 2,          1 | V2 = 1 , salvo su V2 l'indice del registro asse X | 
 +|  4    | ASSQY      | 2,     2000.0 | RX[2] = 2000 , registro delle Y con indice 2 | 
 +|  5    | ASSV       | 3,          2 | V3 = 2 , salvo su V3 l'indice del registro asse Y | 
 +|  6    | ASSV       | 4,      -2000 | V4 = -2000 | 
 +|  7    | ASSV       | 5,      -1000 | V5 = -1000 | 
 +|  8    | VELXYI     | 100000        | Imposta la velocità per movimenti interpolati a 100000 | 
 +|  9    | XYI        | 0.0,      0.0 | Start di X e Y a 0, 0 in modo interpolato | 
 +|  10   | TON        | 1,       1000 | Attiva uscita 1 dopo un secondo | 
 +|  11   | XN         | 2             | Start di X a registro asse X con indice V2 (RX[V2]) | 
 +|  12   | YN         | 3             | Start di Y a registro asse Y con indice V3 (RY[V3]) | 
 +|  13   | TOFF       | 1,        500 | Disattiva uscita 1 dopo 500 ms | 
 +|  14   | SOMMA      | 1,          1 | Incrementa di 1 il valore in V1 | 
 +|  15   | SOMMAVX    | 4,          1 | Somma il valore in V4 (-200.0) al registro asse X con indice 1 (RX[1]). \\ Decrementa ogni volta di 200 la quota obiettivo. | 
 +|  16   | SOMMAVY    | 5,          2 | Somma il valore in V5 (-100.0) al registro asse Y con indice 2 (RX[2]). \\ Decrementa ogni volta di 100 la quota obiettivo. | 
 +|  17   | WAITIT     | 5000          | Attende un tempo di 5 | 
 +|  18   | IFEQ       | 1,    5,   20 | Se V1 è uguale a 5 salta al passo 20 | 
 +|  19   | GOTO       | 9             | altrimenti salta al passo 9 | 
 +|  20   | END        |               | Fine sequenza | 
 +\\ 
 + 
 +Il vantaggio di usare i registri, è dato dal fatto che è possibile compilare una serie di quote obiettivo al loro interno e scorrere queste attraverso il semplice incremento di variabili locali, usate in questo caso come indice di registro. 
 + 
 +\\ 
 +<html><pagebreak /></html> 
 + 
 +===== - Esempio 3: Attesa posizionamenti ===== 
 + 
 +In questo esempio viene riproposto il funzionamento delle attese dei posizionamenti. 
 + 
 +^ Passo ^ Istruzione ^ Argomenti     ^ Commenti ^ 
 +|  1    | VELX%      | 20            | Imposta la velocità dell'asse X al 20% | 
 +|  2    | VELY%      | 20            | Imposta la velocità dell'asse Y al 20% | 
 +|  3    | XY         | 0.0,      0.0 | Start di X e Y a 0, 0 | 
 +|  4    | NOWAITSXY  |               | Disabilita attesa posizionamenti | 
 +|  5    | X          | 5000.0        | Start di X a 5000 | 
 +|  6    | WAITX>     | 2000.0        | Attesa quota di X > 2000 | 
 +|  7    | Y          | 3000.0        | Start di Y a 3000 | 
 +|  8    | WAITY      |               | Attende che Y sia arrivato a 3000 | 
 +|  9    | Y          | -2000.0       | Start di Y a -2000 | 
 +|  10   | WAITY<     | 1000          | Attesa quota di Y < 1000 | 
 +|  11   | WAITSX                   | Abilita attesa posizionamenti per asse X | 
 +|  12   | X          | -1000         | Start di X a -1000 | 
 +|  13   | WAITSY                   | Abilita attesa posizionamenti per asse Y | 
 +|  14   | GOTO       | 3             | Salta al passo 3 | 
 + 
 +\\ 
 + 
 +Da notare che se abbiamo disattivato l'attesa del posizionamento, e vogliamo che un posizionamento sia invece completato abbiamo 2 modalità per farlo: 
 +  - Inserire WAITX o WAITY, nell'istruzione successiva al posizionamento. \\ In questo caso l'attesa viene controllata solo per questa istruzione. 
 +  - Inserire WAITSX, WAITSY o WAITSXY, nell'istruzione precedente al posizionamento. \\ Questa modalità invece disattiva l'attesa anche per le istruzioni a seguire. 
 + 
 +\\ 
 +<html><pagebreak /></html> 
 + 
 +===== - Esempio 4: JMPSUB ===== 
 + 
 +Questo ultimo esempio vuole infine dare una descrizione della istruzione di JMPSUB. 
 + 
 +**PROGRAMMA 10** 
 + 
 +^ Passo ^ Istruzione ^ Argomenti     ^ Commenti ^ 
 +|  1    | VELX%      | 50            | Imposta la velocità dell'asse X al 50% | 
 +|  2    | VELY%      | 50            | Imposta la velocità dell'asse Y al 50% | 
 +|  3    | VELXYI     | 60000         | Imposta la velocità per movimenti interpolati a 60000 | 
 +|  4    | WAITSXY    |               | Abilita attesa posizionamenti | 
 +|  5    | JMPSUB     | 12            | Salta al programma 12 | 
 +|  6    | GOTO       | 4             | Salta al passo 4 | 
 + 
 +\\ 
 + 
 +**PROGRAMMA 11** 
 + 
 +^ Passo ^ Istruzione ^ Argomenti     ^ Commenti ^ 
 +|  1    | NOWAITSXY                | Disabilita attesa posizionamenti | 
 +|  2    | JMPSUB      | 13           | Salta al programma 13 | 
 + 
 +\\ 
 + 
 +**PROGRAMMA 12** 
 + 
 +^ Passo ^ Istruzione ^ Argomenti     ^ Commenti ^ 
 +|  1    | XYI         | 0.0,     0.0 | Start di X e Y a 0, 0 in modo interpolato | 
 +|  2    | X           | 1000.0       | Start di X a 1000 | 
 +|  3    | Y           | 1000.0       | Start di Y a 1000 | 
 +|  4    | JMPSUB      | 11           | Salta al programma 11 | 
 + 
 +\\ 
 + 
 +**PROGRAMMA 13** 
 + 
 +^ Passo ^ Istruzione ^ Argomenti     ^ Commenti ^ 
 +|  1    | X           | 5000.0       | Start di X a 5000 | 
 +|  2    | WAITX>      | 3000.0       | Attesa quota di X > 3000 | 
 +|  3    | Y           | 5000.0       | Start di Y a 5000 | 
 +|  4    | WAITY                    | Attende che Y sia arrivato a 5000 | 
 + 
 +\\ 
 + 
 +Il programma 10 è quello principale e viene utilizzato per inizializzare le velocità e per l'attivazione dell'attesa posizionamenti. 
 +\\ \\ Il programma 10 va poi a chiamare il programma 12, il quale esegue una serie di posizionamenti con attesa. 
 +\\ \\ Il programma 12 va poi a chiamare il programma 11, il quale disattiva l'attesa posizionamenti. 
 +\\ \\ Il programma 11 va poi a chiamare il programma 13, il quale esegue dei posizionamenti senza attesa e attende che Y sia fermo. 
 +\\ \\ A questo punto il programma 13 termina e torna sul 11 e poi 12, i quali terminano a loro volta. Si ritorna infine al programma 10 il quale esegue un salto a un passo precedente (di riattivazione attesa posizionamenti) e tutto riparte nuovamente. 
 \\ \\
 <html><pagebreak /></html> <html><pagebreak /></html>
  • Ultima modifica: 2021/06/11 15:33