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
software:devices:interp [2019/02/05 16:07] – [2.1 Dichiarazione] qem202software:devices:interp [2022/06/24 14:11] (versione attuale) – [1.6.2 Warnings] qem202
Linea 1: Linea 1:
 +
 +PRELIMINARE/
 +
 +====== DEVICE INTERP  ======
 +
 +====== - Introduzione ======
 +
 +
 +Il device interno INTERP gestisce la movimentazione di un numero massimo di 4 assi in interpolazione.\\
 +Le principali caratteristiche del device sono:
 +
 +  *Interpolazione lineare e circolare
 +  *Modalità di interpolazione continua con raccordo tramite B-Spline
 +  *Feed rate programmabile per ogni tratto
 +  *Look Ahead con profondità fino a 30000 tratti per la massimazzazione della velocità
 +  *Gestione di device di gruppo
 +  *Funzionalità di comando uscite digitali
 +  *Funzionalità di pausa per un tempo programmato
 +
 +
 +===== - Dichiarazione del device =====
 +==== - Dichiarazione ====
 +
 +Per poter usufruire del device è necessario eseguirne la dichiarazione nell'apposita sezione INTDEVICE della unit di configurazione.
 +
 +<code QCL>
 +;--------------------------------- 
 +; Dichiarazione device interni 
 +;--------------------------------- 
 +INTDEVICE 
 +...
 +<nome>  INTERP  TCamp  BSize REF_ANPOS2(AxeX) REF_ANPOS2(AxeY) REF_ANPOS2(AxeZ) REF_ANPOS2(AxeA) REF_ANPOS2(AxeB) REF_ANPOS2(AxeC) IOutD1 IOutD2 IOutD3 IOutD4
 +</code>
 +
 +Dove:
 +
 +^Nome campo ^ Descrizione ^ Esempio ^ Altro ^
 +| <nome> | Nome assegnato al device | interp | - |
 +| INTERP | Parola chiave che identifica il device INTERP | - | - |
 +| TCamp | Tempo di campionamnto del device espresso in millisecondi | 4 | - | 
 +| BSize | Dimensione del buffer dei blocchi | 100 | - |
 +| REF_ANPOS2(AxeX) | Riferimento al device ANPOS2 per l'asse X | AxeX | Vedi nota (1) |
 +| REF_ANPOS2(AxeY) | Riferimento al device ANPOS2 per l'asse Y | AxeY | Vedi nota (1) |
 +| REF_ANPOS2(AxeZ) | Riferimento al device ANPOS2 per l'asse Z | AxeZ | Vedi nota (1) |
 +| REF_ANPOS2(AxeA) | Riferimento al device ANPOS2 per l'asse A | AxeA | Vedi nota (1) |
 +| REF_ANPOS2(AxeB) | Riferimento al device ANPOS2 per l'asse B | AxeB | Vedi nota (1) |
 +| REF_ANPOS2(AxeC) | Riferimento al device ANPOS2 per l'asse C | AxeC | Vedi nota (1) |
 +| REF_ANPOS2(AxeU) | Riferimento al device ANPOS2 per l'asse U | AxeU | Vedi nota (1) |
 +| REF_ANPOS2(AxeV) | Riferimento al device ANPOS2 per l'asse V | AxeV | Vedi nota (1) |
 +| REF_ANPOS2(AxeW) | Riferimento al device ANPOS2 per l'asse W | AxeW | Vedi nota (1) |
 +| COUNT                 | Riferimento al contatore per volantino    | HWCn |  |
 +| IOutD1 | Indirizzo uscita programmabile 1 | 3.OUT01 | Impostando X.X il campo viene ignorato |
 +| IOutD2 | Indirizzo uscita programmabile 2 | 3.OUT02 | Impostando X.X il campo viene ignorato |
 +| IOutD3 | Indirizzo uscita programmabile 3 | 3.OUT03 | Impostando X.X il campo viene ignorato |
 +| IOutD4 | Indirizzo uscita programmabile 4 | 3.OUT04 | Impostando X.X il campo viene ignorato |
 +| Dac           | Indirizzo uscita analogica       | 3.AN01  | Impostando X.X il campo viene ignorato |
 +| Intline       | Indirizzo interrupt              | 1       | Impostando X il campo viene ignorato   |
 +| ArrDbl | ArrayDouble                      |         | Impostando X il campo viene ignorato   |
 +
 +
 +(1) Il nome dei riferimenti agli assi (AxeX,AxeY,AxeZ,AxeA,AxeB,AxeC) sono una convenzione adottata nella nomenclatura del device e non hanno nessun riferimento agli assi fisici della macchina. Nulla vieta
 +di impostare nel riferimento all'asse X l'anpos che regola il movimento dell'asse fisico della macchina. Se la nostra applicazione interpola solo con gli assi Y e Z sarà valida sia la dichiarazione
 +
 +Interp  INTERP  4  200 X AxeY AxeZ X X X X.X X.X X.X X.X \\
 +
 +che la dichiarazione\\
 +
 +Interp  INTERP  4  200 AxeY AxeZ X X X X X.X X.X X.X X.X \\
 +ponendo attenzione nella programmazione del device ad utilizzare i parametri relativi all'asse X per i movimenti dell'asse Y fisico.
 +
 +
 +===== - Descrizione del funzionamento =====
 +
 +==== - Funzionamento ====
 +
 +Il funzionamento del device INTERP può venire distinto in due fasi separate: programmazione ed esecuzione, la prima serve ad alimentare il buffer dei blocchi mentre la seconda lo svuota comandando i movimenti attraverso
 +i device ANPOS2 collegati 
 +
 +
 +=== - Programmazione ===
 +Il funzionamento del device in programmazione consente l'inserimento di nuovi blocchi all'interno del buffer dei blocchi, durante queste operazioni vengono calcolate tutte le informazioni che saranno utilizzate durante la fase di esecuzione.
 +Nel caso di funzionamento in modalità continua vengono inoltre inseriti i blocchi di blending. Calcolate tutte le informazioni i blocchi vengono poi elaborati dal blocco Lookahead che permette di massimizzare le velocità di esecuzione degli stessi.
 +
 +{{:software:devices:interp:programmation.png?600|}}
 +
 +
 +=== - Esecuzione ===
 +Durante l'esecuzione, il Block Manager preleva le informazioni dei blocchi dal buffer e procede alle operazioni necessarie all'esecuzione previste dalle loro funzionalità. Nel caso di blocchi di movimento viene calcolata la velocità
 +del punto virtuale per poi essere convertita nei movimenti dei singoli assi secondo il tipo di interpolazione programmata (Lineare, Circolare, Bezier). Ad Interp è assegnato solo il compito di generazione della posizione virtuale degli assi demandando ai loop di posizione dei singoli ANPOS2 le operazioni 
 +per seguire fisicamente il profilo virtuale.
 +
 +{{:software:devices:interp:execution.png?600|}}
 +
 +
 +===== - Elenco Parametri =====
 +
 +==== maxvelipx ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Velocità massima in interpolazione asse X|
 +|dim=Word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=%|
 +|id=01|
 +|range=1÷1000|
 +|wrcond= -|
 +|longdescr=E' la massima velocità, espressa in per mille rispetto alla massima velocità dell'asse, utilizzabile per i movimenti in interpolazione dell'asse X.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== maxvelipy ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Velocità massima in interpolazione asse Y|
 +|dim=Word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=%|
 +|id=02|
 +|range=1÷1000|
 +|wrcond= -|
 +|longdescr=E' la massima velocità, espressa in per mille rispetto alla massima velocità dell'asse, utilizzabile per i movimenti in interpolazione dell'asse Y.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== maxvelipz ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Velocità massima in interpolazione asse Z|
 +|dim=Word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=%|
 +|id=03|
 +|range=1÷1000|
 +|wrcond= -|
 +|longdescr=E' la massima velocità, espressa in per mille rispetto alla massima velocità dell'asse, utilizzabile per i movimenti in interpolazione dell'asse Z.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== maxvelipa ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Velocità massima in interpolazione asse A|
 +|dim=Word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=%|
 +|id=04|
 +|range=1÷1000|
 +|wrcond= -|
 +|longdescr=E' la massima velocità, espressa in per mille rispetto alla massima velocità dell'asse, utilizzabile per i movimenti in interpolazione dell'asse A.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== maxvelipb ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Velocità massima in interpolazione asse B|
 +|dim=Word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=%|
 +|id=05|
 +|range=1÷1000|
 +|wrcond= -|
 +|longdescr=E' la massima velocità, espressa in per mille rispetto alla massima velocità dell'asse, utilizzabile per i movimenti in interpolazione dell'asse B.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== maxvelipc ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Velocità massima in interpolazione asse C|
 +|dim=Word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=%|
 +|id=06|
 +|range=1÷1000|
 +|wrcond= -|
 +|longdescr=E' la massima velocità, espressa in per mille rispetto alla massima velocità dell'asse, utilizzabile per i movimenti in interpolazione dell'asse C.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== axexgrouped ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Asse X in gruppo|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=%|
 +|id=07|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se l'asse X appartiene, e ne imposta l'appartenenza o meno, al gruppo di assi in interpolazione.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== axeygrouped ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Asse Y in gruppo|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=08|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se l'asse Y appartiene, e ne imposta l'appartenenza o meno, al gruppo di assi in interpolazione.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== axezgrouped ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Asse Z in gruppo|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=09|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se l'asse Z appartiene, e ne imposta l'appartenenza o meno, al gruppo di assi in interpolazione.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== axeagrouped ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Asse A in gruppo|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=10|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se l'asse A appartiene, e ne imposta l'appartenenza o meno, al gruppo di assi in interpolazione.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== axebgrouped ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Asse B in gruppo|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=11|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se l'asse B appartiene, e ne imposta l'appartenenza o meno, al gruppo di assi in interpolazione.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== axecgrouped ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Asse C in gruppo|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=12|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se l'asse C appartiene, e ne imposta l'appartenenza o meno, al gruppo di assi in interpolazione.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== overmode ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Modalità override|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=13|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se l'override viene applicato a tutti i movimenti o solamente a quelli con specificazione del feed rate. \\
 +  * 0: l'override è applicato a tutti i movimenti
 +  * 1: l'override è applicato solo ai movimenti con specificazione del feed}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +
 +==== axeatype ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Tipologia asse A|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=14|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se la tipologia dell'asse A. \\
 +  * 0: Asse di tipo lineare
 +  * 1: Asse di tipo rotativo}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== axebtype ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Tipologia asse B|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=15|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se la tipologia dell'asse B. \\
 +  * 0: Asse di tipo lineare
 +  * 1: Asse di tipo rotativo}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== axectype ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Tipologia asse C|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=16|
 +|range=0÷1|
 +|wrcond= -|
 +|longdescr=Indica se la tipologia dell'asse C. \\
 +  * 0: Asse di tipo lineare
 +  * 1: Asse di tipo rotativo}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blocktype ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Tipologia blocco|
 +|dim=Byte|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=17|
 +|range=1÷13|
 +|wrcond= -|
 +|longdescr=Indica il tipo di blocco da introdurre nel buffer di blocchi con il comando ADDBLOCK. \\
 +  * 1 SetMotionControlMode
 +  * 2 Select Plane
 +  * 3 Dwell
 +  * 4 ArcFeed
 +  * 5 ArcFeed1
 +  * 6 StraightFeed
 +  * 7 StraightTraverse
 +  * 8 SetOut
 +  * 9 ClrOut
 +  * 10 WriteOut
 +  * 11 End
 +  * 12 Bezier
 +  * 13 Simulation}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockposx ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Posizione asse X fine blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=18|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica la posizione dell'asse X al termine del blocco. Significativa solamente se la tipologia del blocco è di movimento.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== blockposy ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Posizione asse Y fine blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=19|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica la posizione dell'asse Y al termine del blocco. Significativa solamente se la tipologia del blocco è di movimento.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockposz ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Posizione asse Z fine blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=20|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica la posizione dell'asse Z al termine del blocco. Significativa solamente se la tipologia del blocco è di movimento.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockposa ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Posizione asse A fine blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=21|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica la posizione dell'asse A al termine del blocco. Significativa solamente se la tipologia del blocco è di movimento.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockposb ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Posizione asse B fine blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=22|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica la posizione dell'asse B al termine del blocco. Significativa solamente se la tipologia del blocco è di movimento.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockposc ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Posizione asse C fine blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=23|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica la posizione dell'asse C al termine del blocco. Significativa solamente se la tipologia del blocco è di movimento.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== blockctrl1x ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 1 di controllo blocco per asse X|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=24|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 1 del blocco per l'asse X. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl1y ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 1 di controllo blocco per asse Y|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=25|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 1 del blocco per l'asse Y. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl1z ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 1 di controllo blocco per asse Z|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=26|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 1 del blocco per l'asse Z. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl1a ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 1 di controllo blocco per asse A|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=27|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 1 del blocco per l'asse A. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl1b ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 1 di controllo blocco per asse B|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=28|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 1 del blocco per l'asse B. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl1c ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 1 di controllo blocco per asse C|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=29|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 1 del blocco per l'asse C. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== blockctrl2x ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 2 di controllo blocco per asse X|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=30|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 2 del blocco per l'asse X. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl2y ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 2 di controllo blocco per asse Y|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=31|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 2 del blocco per l'asse Y. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl2z ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 2 di controllo blocco per asse Z|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=32|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 2 del blocco per l'asse Z. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl2a ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 2 di controllo blocco per asse A|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=33|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 2 del blocco per l'asse A. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl2b ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 2 di controllo blocco per asse B|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=34|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 2 del blocco per l'asse B. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockctrl2c ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Parametro 2 di controllo blocco per asse C|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=35|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica il parametro di controllo 2 del blocco per l'asse C. Il suo significato dipende dal tipo di blocco.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +
 +==== blocksetfeed ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Velocità di interpolazione del blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=36|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=Indica la velocità di movimento in interpolazione del blocco. Significativa solamente se la tipologia del blocco è di movimento.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockm1 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= valore m1 blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=37|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockm2 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= valore m2 blocco|
 +|dim=word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=38|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockm3 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= valore m3 blocco|
 +|dim=word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=39|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockpar1 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= parametro 1 del blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=40|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= E' il valore del parametro 1 del blocco. Il suo significato dipende dalla tipologia del blocco. }}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockpar2 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= parametro 2 del blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=41|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= E' il valore del parametro 2 del blocco. Il suo significato dipende dalla tipologia del blocco. }}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== blockpar3 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= parametro 3 del blocco|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=42|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= E' il valore del parametro3 del blocco. Il suo significato dipende dalla tipologia del blocco. }}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== override ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= override di velocità|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=43|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= E' la velocità, espressa in per mille rispetto alla velocità di movimento impostata, con cui vengono eseguiti i movimenti di interpolazione. }}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== numfreeblocks====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= numero blocchi liberi|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=44|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= Indica il numero di blocchi liberi nel buffer. Se il valore è 0 non è possibile aggiungere nuovi blocchi con il comando ADDBLOCK.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +
 +==== actfeed ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Velocità attuale di interpolazione|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=45|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= Indica la velocità attuale di interpolazione.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +
 +==== actsetfeed ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= Velocità di set di interpolazione|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=46|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= Indica la velocità di interpolazione impostata.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== actm1 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= valore m1 blocco in esecuzione|
 +|dim=long|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=47|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== actm2 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= valore m2 blocco in esecuzione|
 +|dim=word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=48|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +
 +==== actm3 ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= valore m3 blocco in esecuzione|
 +|dim=word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=49|
 +|range=÷|
 +|wrcond= -|
 +|longdescr=.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== outstatus ====
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr= stato delle uscite |
 +|dim=word|
 +|default=-|
 +|accesstype=Read - Write|
 +|um=-|
 +|id=50|
 +|range=÷|
 +|wrcond= -|
 +|longdescr= Indica lo stato delle uscite digitali.}}
 +
 +---- 
 +<html><pagebreak /></html>
 +
 +==== wrncode ====
 +
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Codice di identificazione warning|
 +|dim = Byte |
 +|default= 0 |
 +|accesstype= Read |
 +|um= - |
 +|id= 53 |
 +|range= |
 +|wrcond= - |
 +|longdescr=Indica il tipo di warning rilevato dal device. Per ulteriori informazioni consultare il capitolo dedicato.}}
 +
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== wrnpar ====
 +
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=ID del parametro che ha provocato il warning.|
 +|dim = Byte |
 +|default= 0 |
 +|accesstype= Read |
 +|um= - |
 +|id= 54 |
 +|range= |
 +|wrcond= - |
 +|longdescr=Indica quale parametro ha provocato il warning rilevato dal device. Per ulteriori informazioni consultare il capitolo dedicato.}}
 +
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== wrnvalue ====
 +
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Codice di identificazione della causa del warning|
 +|dim = Byte |
 +|default= 0 |
 +|accesstype= Read |
 +|um= - |
 +|id= 55 |
 +|range= - |
 +|wrcond= - |
 +|longdescr=Indica la causa del warning rilevato dal device. Per ulteriori informazioni consultare il capitolo dedicato.}}
 +
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== errcode ====
 +
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Codice di identificazione dell'errore.|
 +|dim = Byte |
 +|default= 0 |
 +|accesstype= Read |
 +|um= - |
 +|id= 56 |
 +|range= - |
 +|wrcond= - |
 +|longdescr=Indica il tipo di errore rilevato dal device. Per ulteriori informazioni consultare il capitolo dedicato.}}
 +
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== errpar ====
 +
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=ID del parametro che ha provocato l'errore.|
 +|dim = Byte |
 +|default= 0 |
 +|accesstype= Read |
 +|um= - |
 +|id= 57 |
 +|range= - |
 +|wrcond= - |
 +|longdescr=Indica il parametro che ha provocato l'errore rilevato dal device. Per ulteriori informazioni consultare il capitolo dedicato.}}
 +
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== errvalue ====
 +
 +{{template>lib:tpl:tpl-s-tapardev-010
 +|shortdescr=Codice di identificazione della causa dell'errore |
 +|dim = Byte |
 +|default= 0 |
 +|accesstype= Read |
 +|um= - |
 +|id= 58 |
 +|range= - |
 +|wrcond= - |
 +|longdescr= Indica il tipo di causa dell'errore rilevato dal device. Per ulteriori informazioni consultare il capitolo dedicato. }}
 +
 +----
 +
 +<html><pagebreak /></html>
 +
 +
 +===== - Elenco Stati =====
 +
 +==== st_ipactive ====
 +{{template>lib:tpl:tpl-s-statedev-010
 +|shortdescr=Stato di interpolazione attiva|
 +|default= 0|
 +|id= 59 |
 +|longdescr=Indica che è in corso un movimento in interpolazione.
 +
 + * 0 = interpolazione non attiva
 + * 1 = interpolazione attiva
 +
 +}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +
 +==== st_empty ====
 +{{template>lib:tpl:tpl-s-statedev-010
 +|shortdescr=Stato di buffer vuoto|
 +|default= 0|
 +|id= 60 |
 +|longdescr=Indica che il buffer blocchi è vuoto.
 +
 + * 0 = buffer non vuoto
 + * 1 = buffer vuoto
 +
 +}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +
 +==== st_warning ====
 +{{template>lib:tpl:tpl-s-statedev-010
 +|shortdescr=Presenza di un warning.|
 +|default= 0|
 +|id= 61 |
 +|longdescr=Indica lo stato di warning del device, per riconoscere il tipo di warning si deve fare riferimento alle variabili //wrncode//,  //wrnvalue// e //wrnpar//.
 +
 +0 = warning non presente.\\
 +1 = warning presente.\\
 +
 +}}
 +---
 +
 +<html><pagebreak /></html>
 +
 +==== st_error ====
 +{{template>lib:tpl:tpl-s-statedev-010
 +|shortdescr=Presenza di un errore.|
 +|default= 0|
 +|id= 62 |
 +|longdescr=Indica lo stato di errore del device, per riconoscere il tipo di errore si deve far riferimento alle variabili //errcode// e //errvalue//.
 +
 +0 = errore non presente.\\
 +1 = errore presente.\\
 +
 +}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +===== - Elenco Comandi =====
 +
 +==== ADDBLOCK ====
 +{{template>lib:tpl:tpl-s-cmddevice-010
 +|cond=st_error=0, numfreeblocks>0 |
 +|shortdescr=Aggiunge blocco|
 +|id= 63 |
 +|longdescr=Inserisce il blocco nel buffer}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== FLUSH ====
 +{{template>lib:tpl:tpl-s-cmddevice-010
 +|cond=st_error=0, st_ipactive=0 |
 +|shortdescr=Svuota il buffer|
 +|id= 64 |
 +|longdescr=Cancella tutti i blocchi inseriti nel buffer}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +
 +==== STARTIP ====
 +{{template>lib:tpl:tpl-s-cmddevice-010
 +|cond=st_error=0, st_ipactive=0, st_empty=0 |
 +|shortdescr=Avvio interpolazione|
 +|id= 65 |
 +|longdescr=Attiva l'esecuzione dei blocchi inseriti nel buffer}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +
 +==== STOPIP ====
 +{{template>lib:tpl:tpl-s-cmddevice-010
 +|cond=st_error=0, st_ipactive=1, st_empty=0 |
 +|shortdescr=Stop interpolazione|
 +|id= 66 |
 +|longdescr=Interrompe l'esecuzione dei blocchi inseriti nel buffer}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== RSERR ====
 +{{template>lib:tpl:tpl-s-cmddevice-010
 +|cond= - |
 +|shortdescr= Reset dello stato di errore.|
 +|id= 67 |
 +|longdescr=Azzera lo stato di errore (//st_error//) nel caso non sia più presente la condizione di errore.}}
 +----
 +
 +<html><pagebreak /></html>
 +
 +==== RSWRN ====
 +{{template>lib:tpl:tpl-s-cmddevice-010
 +|cond= - |
 +|shortdescr= Reset dello stato di warning.|
 +|id= 68 |
 +|longdescr=Azzera lo stato //st_warning//. }}
 +----
 +
 +<html><pagebreak /></html>
 +
 +===== - Errori e Warnings =====
 +
 +==== - Errors ====
 +Quando il device non riesce ad eseguire le operazioni derivanti da una non corretta programmazione da parte dell'utente segnala questa condizione tramite l'attivazione dello stato //st_error//. Il device, inoltre, rende disponibili, tramite i valori sui parametri //errcode//, //errvalue// ed //errpar//, alcune informazioni per meglio comprendere il tipo di errore e quale condizione l'ha generato. Tali informazioni e lo stato di errore //st_error//, permangono finché non viene eseguito l'apposito comando //RSERR// che li cancella.\\
 +La seguente tabella specifica i valori assunti da //errcode//:\\
 +^//errcode// ^Descrizione ^
 +|0|Nessun errore.|
 +|1|Errore dati: Sono presenti valori fuori range nei parametri.|
 +|2|Errore di configurazione.|
 +
 +Per mezzo dei parametri //errvalue// e //errpar// è possibile ottenere informazioni più dettagliate riguardo l'errore.\\
 +Il parametro //errpar// indica sempre l'ID del parametro che ha causato l'errore. \\
 +Invece attualmente il parametro //errvalue// non è utilizzato e vale sempre 0.
 +
 +<html><pagebreak /></html>
 +
 +==== - Warnings ====
 +Quando l'impostazione di un parametro del device non viene accettata o quando non è possibile eseguire un comando il device segnala questa condizione tramite l'attivazione dello stato //st_warning//.
 +Il device, inoltre, rende disponibili, tramite i valori sui parametri //wrncode//, //wrnvalue// e //wrnpar//, alcune informazioni per meglio comprendere il tipo di warning e quale condizione l'ha generato. 
 +Tali  informazioni e lo stato di warning //st_warning//, permangono finché non viene eseguito l'apposito comando //RSWRN// che li cancella.\\
 +La seguente tabella specifica i valori assunti da //wrncode//:\\
 +
 +^//wrncode// ^Descrizione ^
 +|0|Nessun warning.|
 +|1|Impostazione dato fuori range.|
 +|2|Variazione parametro non accettata.|
 +|3|Comando non accettato: le condizioni di esecuzione non sono rispettate.|
 +|4|INTERP_WRN_CODE_QDO_FAILED|
 +|5|INTERP_WRN_CODE_CMD_CODE_ALREADY_RUNNING|
 +|6|INTERP_WRN_CODE_INTERPOLATION_ACTIVE|
 +|7|INTERP_WRN_CODE_AXIS_EMERGENCY|
 +
 +    
 +    
 +    
 +Per mezzo dei parametri //wrnvalue// e //wrnpar// è possibile ottenere informazioni più dettagliate riguardo il warning.\\
 +Il parametro //wrnpar// indica sempre l'ID del parametro che ha causato il warning.\\
 +Il parametro //wrnvalue// fornisce le seguenti informazioni:
 +
 +^ wnrpar ^ wrnvalue ^ descrizione ^
 +|  ADDBLOCK (49)  |  1  | Comandato movimento asse X che non è in gruppo |  
 +|:::|  2  | Comandato movimento asse Y che non è in gruppo |  
 +|:::|  3  | Comandato movimento asse Z che non è in gruppo |  
 +|:::|  4  | Comandato movimento asse A che non è in gruppo |  
 +|:::|  5  | Comandato movimento asse B che non è in gruppo |  
 +|:::|  6  | Comandato movimento asse C che non è in gruppo |  
 +|:::|  8  | Buffer pieno |  
 +|:::|  9  | Raggiunto limite blocchi consecutivi non di movimento |  
 +|:::|  10  | Raggio troppo corto |  
 +|:::|  11  | Superamento finecorsa software asse X |  
 +|:::|  12  | Superamento finecorsa software asse Y |  
 +|:::|  13  | Superamento finecorsa software asse Z |  
 +|:::|  14  | Superamento finecorsa software asse A |  
 +|:::|  15  | Superamento finecorsa software asse B |  
 +|:::|  16  | Superamento finecorsa software asse C |  
 +|:::|  17  | Spostamento angolo nullo |  
 +|:::|  18  | Spostamento nullo |
 +|:::|  19  | Buffer non valido |    
 +|:::|  21  | Aggiunti blocchi dopo un blocco di fine programma |
 +|:::|  22  | Errore tolleranza raggio arco |
 +|  STARTIP (51)  |  7  | Nessun asse in gruppo |  
 +|:::|  19  | Buffer non valido |  
 +|:::|  20  | Solo un asse in gruppo |
 +
 +
 +
 +
 +===== - Tipi di blocco =====
 +
 +^  blocktype            ^  Descrizione                                                                                            ^  setposx, setposy,...        ^  setfeed                blockpar1                                                                        ^ blockpar2                                                                        ^  blockpar3                                                            ^
 +| SetMotionControlMode  |  Seleziona modalità di esecuzione del moto interpolato                                                  |  -                           | -                      |  Modalità: \\ \\ 0=EXACT STOP \\ 1=EXACT STOP TOLL \\ 2=EXACT PATH \\ 3=CONTINOUS | tipo di smoothing (valido solo per modalità CONTINOUS): \\ \\ 0=Corner distance  | (valido solo per Corner distance) distanza dal vertice                |
 +| Select Plane          |  Seleziona il piano di esecuzione degli archi                                                            -                            -                     | Piano selezionato:\\ \\  0=XY \\ 1=YZ \\ 2=XZ                                      -                                                                                -                                                                    |
 +| Dwell                  Attiva una pausa                                                                                        -                            -                     | tempo di pausa espesso in centesimi di secondo                                    |  -                                                                                -                                                                    |
 +| ArcFeed                Movimento interpolazione circolare(arco di circonferenza) con definizione del raggio                   | coordinate del punto finale  | velocità di movimento  | Raggio espresso in um/10                                                          | selezione arco: \\ \\ 0=arco corto \\ 1=arco lungo                               | rotazione:\\ \\ >1 = rotazione antioraria \\ < -1 = rotazione oraria  |
 +| ArcFeed1              |  Movimento interpolazione circolare(arco di circonferenza) con definizione delle coordinate del centro  | coordinate del punto finale  | velocità di movimento  | Coordinata 1 centro                                                               | Coordinata 2 centro                                                              | rotazione:\\ \\ >1 = rotazione antioraria \\ < -1 = rotazione oraria  |
 +| StraightFeed          |  Movimento interpolazione lineare con override                                                          | coordinate del punto finale  | velocità di movimento  |  -                                                                                |  -                                                                                -                                                                    |
 +| StraightTraverse      |  Movimento interpolazione lineare senza override                                                        | coordinate del punto finale  | velocità di movimento  |                                                                                                                                                                    |                                                                       |
 +| SetOut                |  Attiva uscita digitale                                                                                  -                            -                     | Numero uscita 1-4                                                                  -                                                                                -                                                                    |
 +| ClrOut                |  Disattiva uscita digitale                                                                              |  -                            -                     | Numero uscita 1-4                                                                                                                                                  |                                                                       |
 +| WriteOut              |  Imposta lo stato delle uscite digitali                                                                  -                            -                     | stato uscite 0-15                                                                  -                                                                                -                                                                    |
 +| End                    Termina esecuzione                                                                                      -                            -                      -                                                                                |  -                                                                                -                                                                    |
 +| Bezier                |  Movimento interpolato curva di Bezièr quadratica                                                        NON ANCORA IMPLEMENTATO                                                                                                                                                                                                                                                                         |||||
 +| Simulation            |                                     Esegue la sola simulazione dell'esecuzione del contenuto del buffer |  -                            -                      -                                                                                |  -                                                                                -                                                                    |
 +
 +<WRAP center round important 60%>
 +documentation  under develop
 +</WRAP>
 +