Questa è una vecchia versione del documento!
DEVICE OOPOS3
0.1 Introduzione
Il device OOPOS3 consente di controllare la posizione di un asse movimentato fondamentalmente
da comandi digitali di avanti, indietro e rallentamento; la posizione dellasse è acquisita
tramite un trasduttore bidirezionale.
I comandi di movimentazione possono essere inviati direttamente al motore in AC tramite
teleruttori, oppure essere inviati ad un inverter.
Il device OOPOS3 include tutte le funzioni necessarie per lesecuzione di posizionamenti
ON/OFF, oltre a funzioni particolari quali il ricalcolo automatico dellinerzia, la gestione del
recupero dei giochi meccanici, la gestione del rallentamento proporzionale alla velocità e
una completa ricerca di preset per la sincronizzazione della posizione reale dellasse con il
valore interno del device.
0.2 Installazione
0.2.1 DICHIARAZIONE DEVICE NEL FILE DI CONFIGURAZIONE (.CNF)
Nel file di configurazione (.CNF), la sezione BUS deve essere dichiarata in modo tale che
siano presenti le risorse hardware necessarie all'implementazione del device OOPOS3.
Devono essere presenti almeno un contatore bidirezionale. Il device può utilizzare anche un
ingresso e una linea d'interrupt per le funzioni di ricerca di preset.
Nella sezione INTDEVICE del file .CNF deve essere aggiunta la seguente definizione:
È necessario che tutte le voci di definizione siano presenti sulla stessa linea. Nel caso in cui non si desideri associare una risorsa, ad esempio OutFre, si deve in ogni caso inserire nel relativo campo la stringa X.X. |
---|
;--------------------------------- ; Dichiarazione devices interni ;--------------------------------- INTDEVICE <nome device> OOPOS3 TCamp IQCTL ILine IAZero OutAva OutInd OutDir OutMov OutRal OutFre
dove:
<nome device> | Nome assegnato al device. |
OOPOS3 | Parola chiave che identifica il device posizionatore on/off. |
TCamp | Tempo campionamento device (1÷255 ms). |
IQCTL | Indirizzo del contatore bidirezionale incrementale. |
ILine | Linea di interrupt dedicata per l'impulso di zero. |
IAZero | Ingresso per l'abilitazione alla cattura dell'impulso di zero. |
OutAva | Indirizzo dell'uscita utilizzata come uscita avanti. |
OutInd | Indirizzo dell'uscita utilizzata come uscita indietro. |
OutDir | Indirizzo dell'uscita utilizzata come uscita direzione. |
OutMov | Indirizzo dell'uscita utilizzata come uscita movimento. |
OutRal | Indirizzo dell'uscita utilizzata come uscita rallentamento. |
OutFre | Indirizzo dell'uscita utilizzata come uscita freno. |
0.2.1.1 Esempio
;-------------------------------- ; Dichiarazione devices interni ;-------------------------------- INTDEVICE Asse OOPOS3 0004 2.CNT01 1 2.IN01 2.OUT01 2.OUT02 X.X X.X 2.OUT3 X.X
0.3 Funzionamento
0.3.1 NOZIONI PRELIMINARI SUL POSIZIONAMENTO ON/OFF
Le uscite digitali per la gestione del posizionamento sono eccitate/diseccitate in funzione
della posizione dellasse (conteggio), opportunamente controllata dal device in funzione delle
parametrizzazione.
Il posizionamento ON/OFF può essere eseguito in entrambe le direzioni (avanti/indietro) con
la possibilità di introdurre il recupero giochi, per leliminazione d'eventuali giochi meccanici.
0.3.1.1 Recupero giochi
La precisione con la qual è stata realizzata la meccanica è fondamentale per lesito dei posizionamenti.
È, infatti, impossibile ricercare, nei posizionamenti, la precisione del centesimo
se gli organi di movimento hanno dei laschi dellordine del decimo. Inoltre, nei posizionamenti
di assi verticali molto pesanti (ed esempio una pressa o una fresa verticale), linerzia
nei movimenti verso lalto è nettamente inferiore allinerzia nei movimenti verso il basso.
In queste ed altre situazioni limplementazione del recupero giochi nel posizionamento migliora
sensibilmente la precisione.
Il posizionamento è sempre concluso nella stessa direzione. Ad esempio, considerando i posizionamenti con recupero giochi avanti (vedi Figura 1), sia per il posizionamento in avanti che indietro, il movimento dellasse di conclude sempre spostandosi da sinistra verso destra (in avanti).
Figura 1: diagramma di posizionamento con recupero giochi. |
0.3.2 POSIZIONAMENTO IN AVANTI SENZA RECUPERO GIOCHI
Nel grafico di Figura 2 vengono illustrate le varie fasi di un posizionamento ON/OFF in
avanti senza limplementazione del recupero giochi.
Leccitazione delle uscite di movimento (in questo caso luscita di avanti) movimenta lasse;
lincremento del conteggio acquisito e lopportuna impostazione dei parametri del device
comportano leccitazione d'altre uscite dedicate alla gestione del movimento, fino ad arrivare
alla conclusione del posizionamento ed alleccitazione delluscita di tolleranza (segnalazione
di posizionamento concluso correttamente).
Figura 2: posizionamento in avanti senza recupero giochi. |
0.3.2.1 Condizioni iniziali
-
Lasse è fermo (st_still = 1).
-
Il conteggio è azzerato (posit = 0).
-
Tutte le uscite sono diseccitate (ad esclusione delluscita freno).
-
Sono state impostate sia la quota di posizionamento (setpos) che la quota di rallentamento (slowpos).
0.3.2.2 Fase 1
-
Il device OOPOS3 riceve il comando di START posizionamento.
-
Luscita freno si diseccita (st_brake = 0).
-
Il timer di anticipo sblocco freno viene impostato al valore definito dal parametro tbrake.
0.3.2.3 Fase 2
-
Termina il timer d'anticipo sblocco freno.
-
E' eccitata luscita di avanti (st_movfwd = 1).
-
Lasse inizia il movimento (vel) ed il conteggio (posit) s'incrementa.
-
Dopo una rampa d'accelerazione (definita dallinerzia della meccanica o dagli eventuali valori d'accelerazione impostati nellinverter), la velocità dellasse è costante.
0.3.2.4 Fase 3
-
Il posizionamento raggiunge la fascia di rallentamento (setpos - slowpos).
-
Luscita di avanti si diseccita (st_movfwd = 0).
-
Il timer di rallentamento viene impostato al valore definito dal parametro slowdly.
-
Quando il timer di rallentamento di trova a metà del valore impostato, viene attivata luscita di Rallentamento (st_movslow = 1): questo serve per evitare problemi con le commutazioni di particolari dispositivi elettromeccanici.
0.3.2.5 Fase 4
-
Termina il timer di rallentamento.
-
E' eccitata luscita di avanti (st_movfwd = 1).
-
Lasse si è stato movimentato con velocità lenta.
0.3.2.6 Fase 5
-
Luscita freno è eccitata (st_brake = 1).
-
Il posizionamento raggiunto la fascia d'inerzia (setpos - iner[ninert]).
-
Le uscite di avanti (st_movfwd = 0) e di rallentamento (st_movslow = 0) vengono diseccitate.
-
Il timer di ritardo attivazione tolleranza è impostata al valore di toldly ed inizia a contare.
-
Lasse continua a muoversi a causa della sua inerzia (variabile in funzione del suo peso, velocità, condizioni d'attrito).
0.3.2.7 Fase 6
-
Lasse si ferma.
-
È importante che lasse finisca il movimento prima del termine del timer di ritardo attivazione tolleranza.
0.3.2.8 Fase 7
-
Termina il timer di ritardo attivazione tolleranza.
-
Se abilitato, è eseguito il ricalcolo delle inerzie.
-
Se il posizionamento si conclude in tolleranza, è eccitata luscita di tolleranza (st_toll =1).
0.3.3 POSIZIONAMENTO IN AVANTI CON RECUPERO GIOCHI INDIETRO
Nel grafico di Figura 3 vengono illustrate le varie fasi di un posizionamento ON/OFF in
avanti con limplementazione del recupero giochi indietro.
Leccitazione delle uscite di movimento (avanti / indietro) movimenta lasse; lincremento del
conteggio acquisito e lopportuna impostazione dei parametri del device comportano
leccitazione di altre uscite dedicate alla gestione del movimento, fino ad arrivare alla conclusione
del posizionamento ed alleccitazione delluscita di tolleranza (segnalazione di posizionamento
concluso correttamente).
Figura 3: posizionamento in avanti con recupero giochi indietro. |
0.3.3.1 Premessa
Per la completa comprensione di questa descrizione è necessario avere letto il paragrafo precedente (posizionamento in avanti senza recupero giochi).
0.3.3.2 Condizioni iniziali
-
Lasse si muove alla velocità di posizionamento.
-
Conteggio maggiore di zero.
-
Tutte le uscite diseccitate ad esclusione delluscita di avanti.
0.3.3.3 Fase 1
-
Il conteggio raggiunge la fascia di rallentamento per l'Oltrequota recupero giochi (setpos + overpos - slowpos).
-
Luscita di avanti viene diseccitata (st_movfwd = 0).
-
Il timer di rallentamento è impostato al valore impostato con il parametro slowdly.
0.3.3.4 Fase 2
-
Termina il timer di anticipo sblocco freno.
-
E' eccitata luscita di avanti (st_movfwd = 1).
0.3.3.5 Fase 3
-
Termina il timer di rallentamento.
-
E' eccitata luscita di avanti (st_movfwd = 1).
-
Lasse si muove alla velocità lenta.
0.3.3.6 Fase 4
-
Il posizionamento raggiunge la fascia d'inerzia (setpos + overpos + iner[ninert]).
-
Le uscite da avanti (st_movfwd = 0) e di rallentamento (st_movslow = 0) vengono diseccitate.
-
Il timer d'inversione è impostato al valore di tinv.
0.3.3.7 Fase 5
-
Termina il timer d'inversione.
-
Il posizionamento riprende nella direzione indietro.
0.3.3.8 Fase 6÷8
-
Fasi di posizionamento normale come descritto in precedenza.
0.3.4 COLLEGAMENTO DELLHARDWARE
Il device OOPOS3 necessita d'alcune risorse hardware indispensabili, quali un ingresso di conteggio per trasduttore bidirezionale (CNTxx) e delle uscite digitali.
0.3.5 VERIFICA DEL FUNZIONAMENTO DELLA RISORSA CONTATORE
La seguente procedura serve per verificare il funzionamento dellingresso di conteggio.
-
Inizializzare il device Asse con il comando di INIT.
INIT Asse
-
Verificare lattivazione dello stato st_init.
WAIT Asse:st_init
-
Inserire la risoluzione del trasduttore a 1.
Asse:measure = 1000 Asse:pulse = 4000
-
Azzerare il valore del parametro posit.
Asse:posit = 0
-
Muovere lasse in avanti facendo muovere un giro completo allencoder: verificare che il valore della variabile Asse:posit sia positivo e corrisponda al numero di impulsi giro dellencoder.
-
Se il valore di Asse:posit è negativo, scambiare le fasi dellencoder o dare un CNTREV.
-
Se il valore di Asse:posit rimane a zero, controllare i collegamenti elettrici o il flag st_cntlock.
0.3.6 VERIFICA DEL FUNZIONAMENTO DELLE USCITE DIGITALI
Prima di movimentare lasse, verificare il corretto funzionamento dei dispositivi di emergenza e protezione.
La seguente procedura serve per verificare il funzionamento delle uscite digitali di avanti, indietro
e rallentamento movimentando lasse con i comandi manuali del device.
Per proseguire, verificare che il device Asse sia inizializzato e con il valore di risoluzione encoder
corretto.
-
Impostare al massimo valore i limiti software del device in modo da consentirne il movimento. Inserire il valore 999999 nel parametro maxpos ed il valore -999999 nel parametro minpos.
Asse:maxpos = 999999 Asse:minpos = -999999
-
Dare il comando MANFFW per fare attivare la sola uscita di avanti.
MANFFW Asse
-
Per verificare la corretta esecuzione del comando, controllare che lo stato st_still sia 0 e st_movfwd sia 1:
WAIT NOT Asse:st_still AND Asse:st_movfwd
-
Verificare che lasse si muova in avanti e che il conteggio visualizzato in Asse:posit si incrementi, quindi fermare il movimento con il comando STOP.
STOP Asse
-
Se luscita di avanti, corrispondente ad esempio alla risorsa 2.OUT01, non si attiva, verificare il collegamento elettrico.
-
Dare il comando MANFBW per eccitare la sola uscita d'Indietro.
MANFBW Asse
-
Per verificare la corretta esecuzione del comando, controllare che lo stato st_still sia 0 e st_movbwd sia 1:
WAIT NOT Asse:st_still AND Asse:st_movbwd
-
Verificare che lasse si muova in Indietro e che il conteggio visualizzato in Asse:posit si decrementi, quindi interrompere il movimento con il comando STOP.
STOP Asse
-
Se luscita di Indietro, corrispondente ad esempio alla risorsa 2.OUT02, non si attiva, verificare il collegamento elettrico.
-
Dare il comando MANSFW per fare eccitare le uscite di avanti e rallentamento.
MANSFW Asse
-
Per verificare la corretta esecuzione del comando, controllare che lo stato st_still sia 0, st_movfwd sia 1 e st_movslow sia 1:
WAIT NOT Asse:st_still AND Asse:st_movfwd AND Asse:st_movslow
-
Verificare che lasse si muova in avanti ad una velocità inferiore alla precedente e che il conteggio visualizzato in Asse:posit si incrementi, quindi interrompere il movimento con il comando STOP.
STOP Asse
-
Se luscita di rallentamento, corrispondente ad esempio alla risorsa 2.OUT03, non si attiva, verificare il collegamento elettrico.
0.3.7 IMPOSTAZIONE DEL PARAMETRO DI RISOLUZIONE DELLASSE
Il device OOPOS3 acquisisce la posizione dellasse tramite i segnali di un trasduttore bidirezionale; questi segnali sono utilizzati da un contatore interno. Il valore di questo contatore non esprime, in genere, direttamente la posizione dellasse nellunità di misura necessaria per lapplicazione. Il device non ha al suo interno il parametro cntratio, ma lascia allinstallatore la possibilità di lavorare con risoluzioni encoder non finite impostando i dati come spazio percorso in un giro encoder (measure) e numero di impulsi giro dellencoder (pulse). Il rapporto tra measure e pulse è la risoluzione dellencoder e deve avere valori compresi tra 1 e 0.000935.
0.3.7.1 Definizioni:
1) Il parametro measure è inserito in unità di misura senza punti decimali (ad esempio 100.0 millimetri sono inseriti 1000 decimi di millimetro). 2) Il parametro pulse è inserito in bit encoder per 4 (ad esempio se ho collegato un encoder da 1024 impulsi giro, è inserito 4096, se il parametro measure è calcolato su un giro d'encoder).
0.3.7.2 Esempio:
Si deve controllare una tavola rotante che abbia la precisione di 0,1° avente un encoder da 1024 impulsi giro calettato direttamente; si imposteranno i seguenti valori:
Asse:measure = 3600
Asse:pulse = 4096
Asse:decpt = 1
Per eseguire un posizionamento a 14.6 gradi bisogna inserire
Asse:setpos = 146
0.3.8 PARAMETRIZZAZIONI BASE
Per fare funzionare correttamente il device OOPOS3, è necessario inserire alcuni parametri base.
-
Determinare i limiti software da introdurre nei parametri maxpos e minpos.
Asse:minpos = xxx (xxx = valore minimo dellasse espresso in Um). Asse:maxpos = yyy (yyy = valore massimo dellasse espresso in Um).
-
Se si utilizza un sistema a due velocità, impostare lo spazio necessario allasse per passare dalla velocità alta alla velocità lenta alleccitazione delluscita di rallentamento; introdurre il dato nel parametro slowpos.
Asse:slowpos = zzz (zzz = valore di rallentamento dellasse espresso in Um).
-
Impostare il tempo di disattivazione delluscita di movimento quando lasse entra nella fascia di rallentamento in modo che leccitazione delluscita di rallentamento non provochi scompensi elettrici; introdurre il dato nel parametro slowdly.
Asse:slowdly = ttt (ttt = tempo di rallentamento espresso in s/100).
-
Impostare i limiti di tolleranza che si vuole ottenere durante il posizionamento nei parametri tollp e tolln. Come prima impostazione, introdurre dei valori superiori alle precisioni richieste.
Asse:tollp = tpx (tpx = valore di tolleranza positiva espresso in Um/10). Asse:tolln = tnx (tpn = valore di tolleranza negativa espresso in Um/10).
-
Impostare il tempo d'inversione dellasse nel parametro tinv.
Asse:tinv = tempo di inversione espresso in s/100
-
Considerare ununica fascia di inerzia per tutto lasse; impostare quindi il parametro ninert ad 1.
Asse:ninert = 1
-
Abilitare il ricalcolo dellinerzia quando il posizionamento si conclude fuori tolleranza; impostare quindi il parametro inertmode ad 1.
Asse:inertmode = 1
-
Impostare il tempo di ritardo attivazione tolleranza, considerando il tempo che impiega lasse per decelerare fino a fermarsi; impostare quindi il parametro toldly.
Asse:toldly = tdly (tdly = tempo di ritardo attivazione tolleranza espresso in ms).
0.3.9 IL RALLENTAMENTO
0.3.9.1 Introduzione
Nei posizionamenti ON/OFF lo spazio di rallentamento deve essere sufficientemente lungo per portare lasse alla velocità lenta (di fine posizionamento), con la quale entrare nella fascia d'inerzia e concludere il posizionamento in tolleranza. È fondamentale che la velocità al momento dellingresso nella fascia d'inerzia sia sempre uguale, in modo che linerzia sia ripetitiva e siano quindi evitati continui ricalcoli che provocherebbero unimprecisione nel posizionamento.
Quota di rallentamento troppo lunga: questo permette allasse di concludere il posizionamento muovendosi alla velocità lenta, però è mantenuta per uno spazio eccessivo, allungando notevolmente i tempi del posizionamento.
Quota di rallentamento troppo lunga: questo permette allasse di concludere il posizionamento muovendosi alla velocità lenta, però è mantenuta per uno spazio eccessivo, allungando notevolmente i tempi del posizionamento.
Quota di rallentamento troppo corta: lasse si avvicina alla quota di posizionamento con una velocità troppo alta per consentire alla meccanica un rapido arresto; la successione del sistema compromette quindi il posizionamento, fermando lasse fuori della fascia di tolleranza impostata.
In alcuni casi il device OOPOS3 deve gestire degli assi in cui la velocità di posizionamento è
variabile. Per questo motivo il device OOPOS3 è dotato di un sistema di calcolo automatico
della quota di rallentamento, in modo che la velocità di fine posizionamento ed il valore
dellinerzia siano ripetitivi, indipendentemente dalla velocità dellasse.
Il device OOPOS3 dispone di due metodi (selezionati dal parametro slowtype), per il calcolo
del rallentamento:
-
Con slowtype = 1, il rallentamento viene calcolato proporzionalmente alla velocità di posizionamento.
-
Con slowtype = 2, il rallentamento viene calcolato in funzione del quadrato della velocità di posizionamento.
0.3.9.2 Impostazione della variabile di velocità
Per il calcolo del valore di rallentamento è necessario parametrizzare il device per
lacquisizione della velocità dellasse.
Lunità di misura della velocità è in funzione delle seguenti variabili:
-
unitvel
-
decpt
0.3.9.3 Parametro unitvel
Definisce se i valori di velocità sono espressi in Um al minuto (unitvel = 0) o in Um il secondo (unitvel = 1).
0.3.9.4 Parametro decpt
Stabilisce se impostare i valori di velocità in multipli dellunità di misura fondamentale Um. Ad esempio, se lunità di misura fondamentale Um=mm, ed unitvel=1 si ottiene la visualizzazione della velocità nella variabile vel in:
-
con decpt = 0 in mm/s
-
con decpt = 1 in cm/s
-
con decpt = 2 in dm/s
-
con decpt = 3 in m/s
0.3.9.5 Calcolo velocità massima
Metodo teorico
Si deve applicare la formula:
Velocità = Frequenza * ….
Il metodo pratico
Si basa sulla lettura della velocità rilevata dal device nel parametro vel fornendo allazionamento una tensione nota. Se lazionamento lo permette, fornire allasse la tensione massima di lavoro e quindi leggere il valore nel parametro vel; se è fornita una tensione inferiore, la velocità massima sarà in proporzionale alla tensione fornita.
Introdurre il valore della velocità massima rilevato nel parametro maxvel.
0.3.9.6 Rallentamento proporzionale alla velocità
Il device calcola automaticamente il rallentamento basandosi sulla formula:
Rallentamento = (Rallentamento massimo x Velocità)/Velocità massima
Il calcolo del rallentamento, come evidenziato dal grafico, non può superare uno dei due limiti maxslow o minslow.
Dove:
Rallentamento massimo = corrisponde alla variabile maxslow.
Rallentamento minimo = corrisponde alla variabile minslow.
Rallentamento calcolato = corrisponde alla variabile exeslow.
Velocità massima = corrisponde alla variabile maxvel.
Velocità istantanea = corrisponde alla variabile vel.
0.3.9.7 Rallentamento proporzionale al quadrato della velocità
Il device calcola automaticamente il rallentamento basandosi sulla formula:
Rallentamento = (Rallentamento massimo x Velocità2)/Velocità massima
Dove:
Rallentamento massimo = corrisponde alla variabile maxslow.
Rallentamento minimo = corrisponde alla variabile minslow.
Rallentamento calcolato = corrisponde alla variabile exeslow.
Velocità massima = corrisponde alla variabile maxvel.
Velocità istantanea = corrisponde alla variabile vel.
0.3.10 RICALCOLO DELLINERZIA
I valori d'inerzia possono essere introdotti direttamente dalloperatore oppure calcolati automaticamente
dal device; la modalità è scelta con limpostazione del parametro inertmode.
Il device gestisce la suddivisione della corsa dellasse (compresa tra minpos e maxpos) in
più fasce uguali tra loro; il numero delle fasce è definito dal parametro ninert. In questo modo
si possono avere inerzie in funzione della fascia entro la quale si conclude il posizionamento.
Impostando il parametro dobiner = 0, il device gestisce un unico valore d'inerzia indipendentemente
dalla direzione del movimento (avanti o indietro).
Impostando il parametro dobiner = 1, il device gestisce due valori di inerzia per ogni fascia,
uno per la direzione avanti ed un altro per la direzione indietro. Questa modalità è applicabile,
per esempio, quando si movimentano assi verticali.
Per la memorizzazione delle inerzie, sono utilizzati i parametri iner01÷ iner08 (nel caso in cui
dobiner = 0) o i parametri iner01÷ iner16 (se dobiner = 1):
dobiner = 0 | dobiner = 1 | |
---|---|---|
iner01 | Inerzia Fascia 1 | Inerzia Avanti Fascia 1 |
iner02 | Inerzia Fascia 2 | Inerzia Indietro Fascia |
iner03 | Inerzia Fascia 3 | Inerzia Avanti Fascia 2 |
iner04 | Inerzia Fascia 4 | Inerzia Indietro Fascia 2 |
iner05 | Inerzia Fascia 5 | Inerzia Avanti Fascia 3 |
iner06 | Inerzia Fascia 6 | Inerzia Indietro Fascia 3 |
iner07 | Inerzia Fascia 7 | Inerzia Avanti Fascia 4 |
iner08 | Inerzia Fascia 8 | Inerzia Indietro Fascia 4 |
iner09 | n.u. | Inerzia Avanti Fascia 5 |
iner10 | n.u. | Inerzia Indietro Fascia 5 |
iner11 | n.u. | Inerzia Avanti Fascia 6 |
iner12 | n.u. | Inerzia Indietro Fascia 6 |
iner13 | n.u. | Inerzia Avanti Fascia 7 |
iner14 | n.u. | Inerzia Indietro Fascia 7 |
iner15 | n.u. | Inerzia Avanti Fascia 8 |
iner16 | n.u. | Inerzia Indietro Fascia 8 |
Per definizione, linerzia avanti è utilizzata solamente nei movimenti in avanti (uscita di avanti eccitata) mentre, linerzia indietro, è utilizzata solamente nei movimenti indietro (uscita di indietro eccitata).
0.3.11 GESTIONE RICALCOLO AUTOMATICO INERZIA
Il calcolo delle inerzie relative alle varie fasce può essere fatto automaticamente dal device;
alla conclusione d'ogni posizionamento, il device quantifica il valore dellinerzia da utilizzare
nei posizionamenti successivi che si concluderanno nella medesima fascia.
È possibile definire una serie di personalizzazioni relative al ricalcolo automatico delle inerzie.
0.3.11.1 Inertmode
Con limpostazione di questo parametro è possibile definire quando il device esegue il ricalcolo dellinerzia; sono disponibili due possibilità:
-
Il ricalcolo viene eseguito solamente se il posizionamento si conclude fuori dalla fascia di tolleranza.
-
Il ricalcolo viene eseguito alla conclusione di ogni posizionamento, indipendentemente dal fatto che sia concluso dentro o fuori dalla fascia di tolleranza.
0.3.11.2 Toldly
Il ricalcolo automatico dellinerzia è eseguito dal device OOPOS3 quando termina il tempo di ritardo attivazione tolleranza (toldly), allo scadere del quale lasse è considerato sicuramente fermo.
0.3.11.3 Maxiner
Se il valore dellinerzia ricalcolata si discosta oltre un certo valore dallinerzia in uso, è possibile avere una segnalazione (stato st_erin = 1); questa segnalazione può in ogni caso essere disabilitata.
0.3.12 LA RICERCA DI PRESET
La ricerca di preset é una procedura per sincronizzare il valore del parametro posit con la reale posizione dellasse. Consiste nel caricare sul conteggio un valore (precedentemente memorizzato) al momento dellacquisizione dellimpulso di zero del trasduttore; è in ogni modo possibile eseguire la ricerca di preset anche se si dispone di un trasduttore senza impulso di zero, ma è in ogni modo necessario un ingresso (camma o sensore) di abilitazione impulso di zero trasduttore.
Precedentemente alla ricerca di preset il conteggio acquisito può avere un qualsiasi valore e
lasse può trovarsi in qualsiasi punto. Per eseguire il caricamento della quota di preset,
lasse si deve dirigere verso lingresso di abilitazione impulso di zero trasduttore.
La direzione iniziale del movimento è definita dal parametro prsdir:
prsdir = 0 lasse partirà sempre in avanti.
prsdir = 1 lasse partirà sempre indietro.
Durante la ricerca preset i limiti software maxpos e minpos non sono abilitati.
Lavvio della ricerca di preset è dato dal comando PRESET.
Se durante la ricerca di preset è data nuovamente il comando PRESET, la direzione di movimento
dellasse è invertita, mantenendo inalterato il funzionamento della direzione ricerca
preset impostato.
È da rilevare che la quota di preset (prspos) deve essere sempre compresa tra la quota minima
e la quota massima e che, dopo il caricamento della quota di preset, lasse si posiziona
automaticamente alla quota di preset.
0.3.12.1 Modo 0: caricamento preset con procedura di movimentazione
Lingresso di abilitazione impulso di zero ha un filtro hardware che ritarda lacquisizione e quindi influenza la precisione del caricamento.
La velocità dellasse deve quindi essere sufficientemente bassa da permettere lacquisizione dellingresso.
Lasse si dirige verso il sensore collegato allingresso d'abilitazione impulso di zero con la
normale velocità di posizionamento. Lo stato st_prson segnala che la procedura di preset è
in corso. Quando, nella sua corsa, lasse incontra lingresso d'abilitazione impulso di zero
trasduttore, inverte la direzione ed assume la velocità lenta.
Alla disattivazione dellingresso d'abilitazione impulso di zero è caricata la quota di preset sul
conteggio (parametro posit).
Lasse si ferma, lo stato st_prson si disattiva e lo stato st_prsok si attiva per segnalare la
conclusione della ricerca. Questo stato rimane attivo fino allavviamento di una nuova procedura
di preset. Allaccensione del sistema questo stato é sempre a zero (Figura 1).
Figura 1: caricamento preset utilizzando la sola camma di abilitazione. |
0.3.12.2 Modo 1: caricamento preset con procedura di movimentazione
Lasse si dirige verso il sensore collegato allingresso d'abilitazione impulso di zero con la
normale velocità di posizionamento. Lo stato st_prson segnala che la procedura di preset è
in corso. Quando, nella sua corsa, lasse incontra lingresso d'abilitazione impulso di zero
trasduttore, inverte la direzione ed assume la velocità lenta.
Alla disattivazione dellingresso di abilitazione impulso di zero è abilitata la lettura del primo
impulso di zero fornito dal trasduttore e, al momento dellacquisizione di questo segnale, è
caricata la quota di preset nel conteggio (parametro posit).
Lasse si ferma, lo stato st_prson si disattiva e lo stato st_prsok si attiva per segnalare la
conclusione della ricerca. Questo stato rimane attivo fino allavviamento di una nuova procedura
di preset. Allaccensione del sistema questo stato é sempre a zero (Figura 2).
Figura 2: caricamento preset utilizzando camma di abilitazione ed impulso di zero trasduttore. |
0.3.12.3 Modo 2: caricamento con asse fermo
Con questa procedura la ricerca di preset non è abilitata. Il comando di caricamento della quota di preset è fornito dallattivazione dellingresso di abilitazione impulso di zero è attivato lo stato st_prsok.
-
Se lingresso rimane attivo il caricamento é continuo.
-
Se allaccensione lingresso é già attivo il primo caricamento è eseguito solo dopo una sua disattivazione.
0.3.13 DELTA CONTEGGIO
Il device visualizza sempre la posizione assoluta dellasse; per eseguire posizionamenti incrementali
é necessario disporre di uno strumento per sottrarre o sommare un determinato
valore al conteggio (posit) senza introdurre errori. Il cambio di conteggio può essere eseguito
anche con una scrittura diretta nel nuovo valore nel parametro posit.
Volendo sottrarre 100 unità di misura al conteggio è possibile:
Asse:posit = Asse:posit - 100
Questa operazione introduce un errore perché impone la posizione posit = -100, quando
lasse poteva avere una posizione intermedia tra una unità di misura e la successiva (es.
100.3). Questa frazione (0.3) è persa ed il ripetersi di queste operazioni provoca
laccumularsi di un errore non trascurabile.
Il comando DELCNT somma al conteggio una quantità pari al parametro delta senza perdere
la parte frazionaria della posizione:
Asse:delta = -100 DELCNT Asse
Il comando di DELCNT può essere inviato solamente con asse fermo (st_still=1)
0.3.13.1 Esempio
La lettura della posizione dellasse risulta essere di 2 unità e si trova nel punto A. Si vuole
sommare al conteggio posit tre unità di misura.
Con le istruzioni:
Asse:posit = Asse:posit + 2
lasse assume la nuova posizione B.
Con le istruzioni:
Asse:delta = 2 DELCNT Asse
E' raggiunta la posizione C.
Il comando è inviabile solamente se lasse è fermo, condizione di st_still = 1.
La modifica del valore di risoluzione (cntratio) o la scrittura della variabile posit, provoca lazzeramento dei resti della conversione.
Si noti che con le prime istruzioni lasse ha compiuto un delta inferiore a 3 unità e quindi è
stato introdotto un errore.
Se si devono inviare comandi DELCNT in successione, é conveniente calcolare la grandezza
da sommare ed inviare una sola volta il comando; in caso contrario prestare attenzione a
non inviare comandi successivi senza interporre una istruzione di lettura su parametro device.
Esempio:
Asse:delta = 3 DELCNT Asse WAIT Asse:st_init Asse:delta = 40 DELCNT Asse
Una scrittura del tipo:
Asse:posit = 1000 Asse:delta = - 100 DELCNT Asse DELCNT Asse ...
Non assicura che il valore di posit sia di 800, come ci si aspetterebbe da due sottrazioni consecutive, mentre è possibile che sia di 900 per la sovrapposizione dei due comandi. La scrittura diventa quindi:
Asse:posit = 1000 Asse:delta = - 100 DELCNT Asse WAIT Asse:st_init DELCNT Asse WAIT Asse:st_init ...
0.3.13.2 Comandi REGON e REGOFF
Con lutilizzo del device OOPOS3 le uscite di movimento sono ad uso esclusivo del device;
pertanto non possono essere utilizzate da altri device o dallapplicativo.
Il comando di REGOFF permette di mettere a disposizione tali risorse, disabilitandone
laggiornamento da parte del device OOPOS3. Questa condizione, verificata con lo stato
st_regoff = 1, pone il device in uno stato di attesa in cui comunque continua ad aggiornare la
posizione dellasse (conteggio acquisito).
Il comando di REGON ripristina le normali condizioni rassegnando al device laggiornamento
delle uscite.
Nelle applicazioni, in cui non è necessario movimentare contemporaneamente più assi, luso
dei comandi REGON/REGOFF permette di utilizzare sempre le stesse uscite di movimento
risparmiando risorse hardware.
Per evitare conflitti e malfunzionamenti, deve necessariamente essere attivo un solo device per ogni gruppo d'uscite di movimento.
0.3.14 MOVIMENTAZIONE
Le procedure fin qui descritte hanno permesso di completare le fasi di definizione delle risorse
hardware necessarie al device, di verifica dei collegamenti elettrici, di impostazione dei
parametri fondamentali del device.
Ora é possibile eseguire una semplice movimentazione dellasse.
-
Spostare lasse in una posizione tale per cui possa compiere un determinato spazio senza incontrare i finecorsa di quota massima.
-
Azzerare il conteggio (parametro posit = 0).
-
Impostare la quota di posizionamento (parametro setpos).
Asse:setpos = quota di posizionamento (in Um compresa tra minpos e maxpos).
-
Start posizionamento (comando di START).
START Asse
-
Per interrompere il posizionamento utilizzare il comando di STOP.
0.4 Funzioni speciali
0.4.1 SISTEMA DI POSIZIONAMENTO QPS (QEM POSITIONING SYSTEM)
Lintroduzione dei parametri relativi alle inerzie (iner01 ÷ iner16), alle tolleranze (tolp e toln)
ed allo spessore utensile (tool), è proposta con una cifra in più, in modo da poter introdurre il
dato con una precisione 10 volte maggiore.
Per un buon funzionamento del sistema QPS, la risoluzione dellencoder deve essere inferiore
a 40000; se il coefficiente moltiplicativo è compreso tra 40001 e 399999 linfluenza
dellultima cifra diminuirà gradatamente fino a cessare completamente quando tale coefficiente
è pari a 400000.
Il sistema QPS è introdotto anche in fase di lettura dei dati sopra descritti.
Questo sistema consente, se la risoluzione del trasduttore lo permette, di aggiustare e verificare il posizionamento di tipo On/Off con una risoluzione 10 volte superiore a quella impostata.
0.4.1.1 Esempio
-
Se una quota di posizionamento pari a 10 millimetri è normalmente inserita con il numero 10, per introdurre lo stesso valore di tolleranza (quindi con il QPS), sarà necessario introdurre il valore 100.
-
Una fascia di tolleranza pari a 10 millimetri sarà visualizzata con il numero 100.
Gli esempi sono riferiti ad un sistema di posizionamento con precisione del millimetro.
0.4.2 GESTIONE ERRORI DEVICE
La presenza di un errore nel device è segnalato dallo stato st_error.
Quando st_error è uguale a 1, troviamo presente sulla variabile errcode il tipo di errore intervenuto
(vedi tabella) e nella variabile errvalue una indicazione sulla causa dellerrore.
Se il device va in errore, per riprendere la lavorazione bisogna cancellare lo stato st_error attraverso il comando RSERR.3
0.4.3 GESTIONI WARNING DEVICE
La presenza di un warning nel sistema camming viene segnalato dallo stato st_warning.
Essendo causato da un evento non grave ed essendo garantita in questa situazione la gestione
dellasse slave, lasse slave continua il suo lavoro.
Quando st_warning è uguale a 1, troviamo presente sulla variabile wrncode il tipo di warning
intervenuto (vedi tabella) e nella variabile wrnvalue una indicazione sulla causa che ha provocato
il warning.
Codice | Priorità | Descrizione |
---|---|---|
1 | 0 | Comando non eseguito |
Per cancellare lo stato st_warning è necessario inviare il comando RSWRN.
0.5 Comandi e parametri
0.5.1 SIMBOLOGIA ADOTTATA
Il nome del parametro, stato o comando viene riportato alla sinistra della tabella.
R
Indica se il relativo parametro o stato è ritentivo (al momento dellinizializzazione del device
mantiene lo stato precedentemente definito), oppure lo stato che assume al momento
dellinizializzazione del device.
Se il device non necessita d'inizializzazione il campo R indica il valore che il parametro o
stato assume allaccensione della scheda.
R = Ritentivo
0 = Al momento dellinizializzazione del device il valore è forzato a zero.
1 = Al momento dellinizializzazione del device il valore è forzato a uno.
- = Al momento dellinizializzazione del device è presentato il valore significativo.
D
Indica la dimensione del parametro.
F = Flag
B = Byte
W = Word
L = Long
S = Single Float
0.5.1.1 Condizioni
Sono descritte tutte le condizioni necessarie affinché il parametro sia considerato corretto
o perché il comando venga accettato.
In alcuni casi sono specificati dei valori limite per laccettazione del parametro: se sono introdotti
dei valori esterni ai limiti impostati, il dato viene comunque accettato; pertanto devono
essere previsti opportuni controlli dellapplicativo tali da garantire il corretto funzionamento.
Per lesecuzione di un comando, tutte le relative condizioni devono necessariamente essere
soddisfatte; in caso contrario il comando non è inviato.
A
Indica il modo d'accesso.
R = Read (lettura).
W = Write (scrittura).
RW = Read / Write.
0.5.2 COMANDI
I comandi a disposizione per gestire il device sono elencati sotto l'ordine di priorità decrescente. Il device esegue tutti i comandi ricevuti entro lo stesso tempo di campionamento iniziando da quello con la priorità maggiore. Per esempio se il device riceve nello stesso tempo di campionamento i comandi CNTUNLOCK e CNTLOCK, per primo esegue il comando CNTLOCK e poi quello di CNTUNLOCK lasciando perciò il contatore libero di contare.
Nome | Condizioni | Descrizione |
---|---|---|
INIT | st_init = 0 | Initialization Comando d'inizializzazione device. Se il device non é inizializzato, non vengono eseguiti i calcoli relativi all'asse e quindi rimane inattivo. All'accensione è possibile scaricare tutti i parametri in DPR; successivamente, con comando INIT l'asse sarà inizializzato, eseguendo i calcoli una sola volta. Attiva lo stato st_init. |
STOP | st_init = 1 | Stop Eccita le uscite di movimento per comandare l'asse verso la quota impostata. |
START | st_init = 1 st_still = 1 st_regoff = 0 | Start Eccita le uscite di movimento per comandare l'asse verso la quota impostata. |
CNTLOCK | st_init = 1 | Counter lock Blocca l'acquisizione del conteggio asse anche se il trasduttore continua ad inviare i segnali. In questa fase l'eventuale spostamento dell'asse non è rilevato. Disabilita il caricamento della quota di preset sul conteggio. Attiva lo stato st_cntlock. |
CNTUNLOCK | st_init = 1 | Counter unlock Sblocca il conteggio dell'asse. E' ripresa la lettura dei segnali inviati dal trasduttore e l'aggiornamento del conteggio. Disattiva lo stato st_cntlock. |
CNTREV | st_init = 1 | Counter reverse Consente di invertire le fasi del trasduttore all'interno della scheda. E' quindi invertito il senso del conteggio (incremento/decremento). Attiva lo stato st_cntrev. |
CNTDIR | st_init = 1 st_regoff = 1 | Counter direct Il conteggio dell'asse non viene invertito. Disattiva lo stato st_cntrev. |
PRESET | st_init = 1 st_regoff = 0 | Preset Start ricerca preset asse. Viene dato inizio alla procedura di ricerca di preset con le modalità impostate con i parametri prsmode e prsdir. Se la ricerca di preset è già in esecuzione, il comando esegue l'inversione del senso di ricerca. Attiva lo stato st_prson e disattiva lo stato st_prsok |
MANSFW | st_init = 1 st_regoff = 0 posit < maxpos | Manual slow forward Posizionamento manuale avanti lento. Vengono eccitate le uscite di avanti e di rallentamento. |
MANSBW | st_init = 1 st_regoff = 0 posit > minpos | Manual slow backward Posizionamento manuale indietro lento. Vengono eccitate le uscite di indietro e di rallentamento. |
MANFFW | st_init = 1 st_regoff = 0 posit < maxpos | Manual forward Posizionamento manuale avanti. Viene eccitata l'uscita di avanti. |
MANFBW | st_init = 1 st_regoff = 0 posit > minpos | Manual backward Posizionamento manuale indietro. Viene eccitata l'uscita di indietro. |
REGON | st_init = 1 | Regulation ON Abilita la regolazione e l'aggiornamento delle uscite di movimento, nonché tutti i comandi di movimento. Disattiva lo stato st_regoff. |
REGOFF | st_init = 1 | Regulation OFF Disabilita la regolazione e l'aggiornamento delle uscite di movimento, nonché tutti i comandi di movimento. Solamente l'uscita di freno continua ad essere aggiornata. Attiva lo stato st_regoff. |
DELCNT | st_init = 1 st_still = 0 | Delta counter Questo comando è accettato solamente se l'asse è fermo; il conteggio (posizione dell'asse) è modificato sommandogli algebricamente il valore specificato nella variabile delta. |
RSERR | - | Reset error Azzera lo stato st_error. |
RSWRN | - | Reset warning Azzera lo stato st_warning. |
RSPRSOK | - | Reset preset OK Azzera lo stato st_prsok |
0.5.3 PARAMETRI
Nome | D | R | A | Condizioni Descrizione | |
---|---|---|---|---|---|
measure | L | R | R-W | - | Measure (1 ÷ 999999) Indica lo spazio, in unità di misura, percorso dall'asse per ottenere gli impulsi encoder * 4 impostati nel parametro pulse. Questo parametro è utilizzato per il calcolo della risoluzione dell'asse con la formula: Risoluzione = measure* 4 / pulse La risoluzione deve avere un valore compreso tra 0.00374 e 4.00000 |
pulse | L | R | R-W | - | Pulse encoder (1÷ 999999) Indica gli impulsi moltiplicato 4 forniti dallencoder slave per ottenere lo spazio impostato nel parametro measure. Questo parametro è utilizzato per il calcolo della risoluzione dellasse con la formula: Risoluzione = measure* 4 / pulse, La risoluzione deve avere un valore compreso tra 0.00374 e 4.00000 st_camex = 0, st_prson = 0. |
posit | L | R | R-W | - | Actual position (-999999 ÷ 999999) È il valore della posizione istantanea dell'asse in unità di misura definite dai parametri c measure e pulse. Valore espresso in unità di misura (Um). |
encoder | L | R | R | - | Encoder É il valore della posizione istantanea dell'asse. Valore espresso in bit encoder * 4. |
minpos | L | R | R-W | - | Minimum position (-999999 ÷ 999999) Definisce la minima quota raggiungibile dall'asse; il valore impostato è da considerarsi anche come limite minimo per l'introduzione delle quote di lavoro. Si tenga presente che, nel caso di utilizzo della funzionalità di recupero giochi in avanti (backlashmode = 1 e 3), la corsa minima dell'asse è pari a [minpos - overpos]. Valore espresso in unità di misura (Um). |
maxpos | L | R | R-W | - | Maximum position (-999999 ÷ 999999) Definisce la massima quota raggiungibile dall'asse; il valore impostato è da considerarsi anche come limite massimo per l'introduzione delle quote di lavoro. Si tenga presente che, nel caso di utilizzo della funzionalità di recupero giochi in indietro (backlashmode = 2 e 4), la corsa massima dell'asse è pari a [maxpos + overpos]. Valore espresso in unità di misura (Um). |
slowpos | W | R | R-W | - | Slow position (0 ÷ 9999) È la distanza dalla quota di posizionamento alla quale è eccitata l'uscita di rallentamento per concludere il posizionamento alla velocità lenta. Valore espresso in unità di misura (Um). |
tollp | W | R | R-W | - | Positive tolerance (0 ÷ 9999) È il limite di tolleranza positivo consentito al posizionamento (massimo errore per eccesso). Valore espresso in Um/10 (QPS). |
tolln | W | R | R-W | - | Negative tolerance (0 ÷ 9999) È il limite di tolleranza negativo consentito al posizionamento (massimo errore per difetto). Valore espresso in Um/10 (QPS). |
tinv | W | R | R-W | - | Direction inversion delay (0 ÷ 999) E' utilizzato per evitare stress meccanici dovuti a troppo rapide inversioni del senso di movimento. Valore introdotto è espresso in centesimi di secondo. |
slowdly | W | R | R-W | - | Slow delay (0 ÷ 999) Quando il posizionamento entra nella fascia di rallentamento, l'uscita di movimento è disattivata per un tempo determinato dal parametro slowpos. L'uscita di rallentamento è attivata con tempo slowpos/2 prima dell'uscita di movimento. Valore espresso in centesimi di secondo (s/100). |
tbrake | W | R | R-W | - | Brake time È il tempo che intercorre, allo start posizionamento, tra lo sblocco del freno (in funzione del parametro reaktype) e l'attivazione delle uscite di movimento. Viene espresso in centesimi di secondo (s/100). Range valido: 0 ÷ 999 |
overpos | W | R | R-W | - | Over position (0 ÷ 9999) Oltrequota per il recupero giochi e/o delta minimo di posizionamento. Se impostato a zero non è eseguito il recupero giochi. Valore espresso in unità di misura (Um). |
bklashmode | B | R | R-W | - | Backslash mode Seleziona il tipo di recupero giochi: 0 = posizionamento senza recupero giochi, 1 = posizionamento con recupero giochi avanti, 2 = posizionamento con recupero giochi indietro, 3 = posizionamento con recupero giochi avanti senza rallentamento, 4=posizionamento con recupero giochi indietro senza rallentamento. Se il parametro è fuori dai limiti ammessi, utilizza per default il modo 0. |
ninert | B | R | R-W | - | Inertia number (1 ÷ 8) È il numero di fasce d'inerzia in cui si vuole suddividere l'asse. Se è impostato il valore zero, si considera una sola fascia. |
maxiner | W | R | R-W | - | Maximum inertia (0 ÷ 9999) È il massimo valore di variazione dell'inerzia dopo ogni posizionamento. Se il valore calcolato supera tale parametro, è segnalato con l'attivazione dello stato st_erin. Se il valore è posto a zero, il controllo è inibito. Valore espresso in Um/10 (QPS). |
toldly | W | R | R-W | - | Tolerance delay (0 ÷ 9999) Definisce il tempo di ritardo attivazione tolleranza espresso in ms) allo scadere del quale lasse è considerato sicuramente fermo. |
inertmode | B | R | R-W | - | Inertia mode selection Indica il tipo di ricalcolo inerzia eseguito dal device al termine del posizionamento: 0 = ricalcolo inerzie disabilitato, 1 = ricalcolo inerzie eseguito solo se il posizionamento si conclude fuori tolleranza, 2 = ricalcolo inerzie eseguito ad ogni posizionamento. |
tool | L | R | R-W | - | Tool thickness (-999999 ÷ 999999) É il valore dello spessore utensile. Questo valore, espresso in Um/10 (QPS), è sommato alla quota di posizionamento setpos quando è comandato START. La quota finale dell'asse sarà quindi data da: setpos + tool. |
setpos | L | R | R-W | - | Setted position (-999999 ÷ 999999) É la quota di posizionamento impostata. Essa è posta in esecuzione dal comando START. Se essa è cambiata durante il posizionamento, l'asse si posiziona in ogni caso alla quota precedente. Valore espresso in unità di misura (Um). |
iner01 ÷ iner16 | W | R | R-W | - | Inertia 01 ÷ 16 value Sono le 16 memorie dei valori di inerzia. Se il parametro dobiner è 0, verranno utilizzate dal device solamente le prime otto (iner01 ÷ iner08). Valore espresso in Um/10 (QPS). |
dobiner | B | R | R-W | - | Double inertia Con questo parametro è possibile scegliere di ricalcolare un'inerzia unica per ogni fascia in cui è divisa l'asse oppure di averne due per ogni fascia: una per ogni direzione d'arrivo dell'asse. 0 =Memoria inerzia di fascia uguale per le due direzioni, 1 = Memoria inerzia di fascia distinta per ogni direzione. |
enstol | B | R | R-W | - | Enable start in tolerance Abilitazione start con asse in tolleranza: 0 = START in tolleranza disabilitato. Al comando di START, se la quota di posizionamento è fuori dalla tolleranza, viene eseguito il movimento e lo stato st_sttoll viene posto a 0, altrimenti, lo stato st_sttoll viene posto a 1 e l'asse rimane fermo.“ 1 = START in tolleranza abilitato. Al comando di START l'asse esegue un riPosizionamento alla quota in uso e lo stato st_sttoll è disabilitato. |
prsmode | B | R | R-W | - | Preset mode Definisce il tipo di ricerca di preset: 0 = Per la ricerca dell'abilitazione impulso di zero, l'asse inizia il movimento, incontra la camma di abilitazione, inverte la direzione ed in lento, sul fronte di discesa relativo al segnale di camma, carica la quota di preset, 1 = Per la ricerca dell'abilitazione impulso di zero, l'asse inizia il movimento, incontra la camma d'abilitazione, inverte la direzione ed in lento acquisisce il primo impulso di zero (dopo la disattivazione del segnale di camma), 2 = Non è attivata la procedura di ricerca preset con movimentazione dell'asse. Il conteggio è aggiornato alla quota di preset all'attivazione dell'abilitazione impulso di zero. |
prspos | L | R | R-W | - | Preset position (minpos ÷ maxpos) Definisce il valore che è caricato sul conteggio con la procedura di ricerca di preset. Valore espresso in unità di misura (Um). |
prsdir | B | R | R-W | - | Preset search direction Definisce la direzione del movimento asse per la ricerca della camma di abilitazione impulso di zero. 0 = L'asse esegue la ricerca in avanti, prima in rapido, poi in lento. 1 = L'asse esegue la ricerca indietro, prima in rapido, poi in lento. 2 = L'asse esegue la ricerca in avanti sempre in lento. 3 = L'asse esegue la ricerca indietro sempre in lento. |
actiner | B | R | R | - | Actual inertia (0 ÷ 7) Indica la fascia di inerzia in uso. |
delta | L | R | R-W | - | Delta counter (-999999 ÷ 999999) Variabile d'uso come operando dal comando DELCNT. Valore espresso in unità di misura (Um). |
decpt | B | R | R-W | - | Decimal point (0 ÷ 3) Definisce la precisione con la quale si intendono impostare le preselezioni e visualizzare i conteggi relativamente all'asse. |
unitvel | B | R | R-W | - | Velocity unit Definisce se l'unità di tempo della velocità è espressa in minuti o secondi. 0 = Um/min, 1 = Um/sec. |
frq | L | - | R | - | Actual frequency É il valore della frequenza istantanea dell'asse, considerando una fase dell'encoder. Valore espresso in Hz. |
vel | L | - | R | - | Actual velocity É il valore della velocità istantanea dell'asse. Il valore è espresso in Um/s o Um/min in base al parametro unitvel e dipende anche dal parametro decpt. |
breaktype | B | R | R-W | - | Brake type É il tipo di logica d'intervento dell'uscita freno. 0 = L'uscita viene eccitata per la frenata, 1 = L'uscita, normalmente eccitata, viene diseccitata per la frenata. Lo stato st_brake segue lo stato elettrico dell'uscita. |
slowtype | B | R | R-W | - | Slow type (0 ÷ 999999) É il tipo di calcolo del rallentamento 0 = fisso con parametro slowpos, 1 = proporzionale alla velocità rilevata, 2 = proporzionale al quadrato della velocità rilevata. |
maxvel | L | R | R-W | - | Maximum velocity Definisce la massima velocità dell'asse. Il valore introdotto è nell'unità di tempo della velocità impostata unitvel. Questo parametro è utilizzato se slowtype ? 0. |
maxslow | W | R | R-W | - | Maximum slowdown (0 ÷ 9999) É il valore di rallentamento calcolato alla massima velocità dell'asse definita dal parametro maxvel. Questo parametro viene utilizzato se slowtype ? 0. Valore espresso in unità di misura (Um). |
minslow | W | R | R-W | - | Minimum slowdown (0 ÷ 9999) É il minimo valore di rallentamento che può essere calcolato. Questo parametro viene utilizzato se slowtype ? 0. Valore espresso in unità di misura (Um). |
exeslow | W | - | R | - | Execution slowdown Se il parametro slowtype ? 0, indica il valore di rallentamento calcolato dal device in funzione della velocità dell'asse. Valore espresso in unità di misura (Um). |
errcode | B | 0 | R | - | Error code (0 ÷ 100) Indica il tipo d'errore intervenuto nel sistema. Il codice è valido solo se st_error = 1 (Vedi capitolo dedicato). |
errvalue | B | 0 | R | - | Error value (0 ÷ 100) Indica la causa dell'errore intervenuto nel sistema. Il codice è valido solo se st_error = 1 (Vedi capitolo dedicato). |
wrncode | B | 0 | R | - | Warning code (0 ÷ 100) Indica il tipo di warning intervenuto nel sistema. Il codice è valido solo se st_warning = 1 (Vedi capitolo dedicato). |
wrnvalue | B | 0 | R | - | Warning value (0 ÷ 100) Indica la causa del warning intervenuto nel sistema. Il codice è valido solo se st_warning = 1 (Vedi capitolo dedicato). |
st_init | F | - | R | - | Initialization Segnalazione di device inizializzato. 0 = Device non inizializzato, 1 = Device inizializzato. |
st_cntlock | F | R | R | - | Counter locked Segnalazione di conteggio asse bloccato. 0 = Conteggio asse sbloccato, 1 = Conteggio asse bloccato. |
st_cntrev | F | R | R | - | Counter reversed Segnalazione di conteggio asse invertito 0 = Conteggio asse non invertito, 1 = Conteggio asse invertito. |
st_movfwd | F | - | R | - | Forward movement Segnala l'eccitazione dell'uscita di movimento avanti. 0 = Uscita avanti non eccitata, 1 = Eccitazione uscita avanti. |
st_movbwd | F | - | R | - | Backward movement Segnala l'eccitazione dell'uscita di movimento indietro. 0 = Uscita indietro non eccitata, 1 = Eccitazione uscita indietro. |
st_movslow | F | - | R | - | Slowdown movement Segnala l'eccitazione dell'uscita di rallentamento. 0 = Uscita rallentamento non eccitata, 1 = Eccitazione uscita rallentamento. |
st_toll | F | - | R | - | Tolerance Segnalazione di asse in tolleranza rispetto alla quota posta in esecuzione dal comando di START. La segnalazione di asse in tolleranza può essere ritardata tramite il parametro toldly. 0 = Asse non in tolleranza, 1 = Asse in tolleranza. |
st_brake | F | - | R | - | Brake Segnala l'eccitazione dell'uscita di freno (per l'attivazione di freni o di dispositivi di bloccaggio dell'asse). 0 = Uscita freno non eccitata, 1 = Eccitazione uscita freno. |
st_movdir | F | - | R | - | Backward direction Segnalazione della direzione del movimento. 0 = Avanti, 1 = Indietro. |
st_still | F | 1 | R | - | Still Segnalazione di asse fermo. 0 = Asse in movimento, 1 = Asse fermo. |
st_erin | F | - | R | - | Inertia ricalculation error Segnala un errore di ricalcolo inerzia. L'indicazione si attiva se il ricalcolo dell'inerzia fornisce un valore maggiore del parametro maxiner. 0 = Ricalcolo inerzia corretto, 1 = Ricalcolo inerzia con valori maggiori di maxiner. |
st_sttoll | F | - | R | - | Start in tolerance Attivo segnala, se il parametro enstol = 0, che é stato dato un comando di movimento e l'asse era già in tolleranza sulla quota di traguardo. Lo stato rimane invariato fino al prossimo comando di movimento (START,MANSFW, MANFFW, MANSBW, MANFBW). 0 = Start con asse fuori tolleranza, 1 = Start con asse in tolleranza. |
st_prsok | F | - | R | - | Preset ok Segnalazione di ricerca di preset asse conclusa correttamente. 0 = Ricerca di preset non ancora conclusa o non eseguita, 1 = Ricerca di preset conclusa correttamente. |
st_prson | F | - | R | - | Preset Segnalazione di ricerca di preset asse in corso. 0 = Ricerca di preset non in corso, 1 = Ricerca di preset in corso. |
st_regoff | F | 1 | R | - | Regulation off Segnala lo stato di disabilitazione delle uscite e dei comandi di posizionamento. 0 = Uscite di movimento abilitate, 1 = Uscite di movimento disabilitate. |
st_error | F | - | R | - | Status of device error Indica lo stato d'errore nel device. Per la decodifica dell'errore si deve fare riferimento alla variabile errcode ed errvalue. 0 = Errore non presente, 1 = Errore presente, All'accensione per default è posto a zero. |
st_warning | F | - | R | - | Status of device warning Indica lo stato di warning nel device. Per la decodifica del warning si deve fare riferimento alla variabile wrncode e wrnvalue. 0 = Warning non presente, 1 = Warning presente, All'accensione per default è posto a zero. |
st_int | F | - | R | - | Status of interrupt line Indica lo stato della linea d'interrupt 0 = Ingresso in interrupt disattivo, 1 = Ingresso in interrupt attivo. All'accensione per default è posto a zero. |
0.6 Limitazioni
Nessuna limitazione.
0.7 Esempio applicativo
0.7.1 FILE DI CONFIGURAZIONE
;************************************************************************************* ; Nome Modulo: Ex_Oopos3.CNF Progetto: Ex_OOPOS3 ; Autore: QEM srl Data: 01/05/99 ; Sistema: QMove1 / QCL3 Libreria: 1LIB4001 ; Funzionalità: Esempio gestione OOPOS3 Release: 0 ;-------------------------------------- Note ----------------------------------------- ; [1] - Applicativo di esempio per utilizzo device OOPOS 3 ;************************************************************************************* ;------------------------------------------------------------------------------------- ; Definizione Costanti ;------------------------------------------------------------------------------------- CONST ;------------------------------------------------------------------------------------- ; Definizione Variabili SYSTEM ;------------------------------------------------------------------------------------- SYSTEM slQuotaPos L ;Variabile per quota di posizionamento ;------------------------------------------------------------------------------------- ; Definizione Variabili GLOBAL ;------------------------------------------------------------------------------------- GLOBAL gfMovMan F ;Flag segnalazione movimenti manuali in ;corso gfMovAuto F ;Flag segnalazione movimenti automatici ;in corso ;------------------------------------------------------------------------------------- ; Definizione Variabili TIMER ;------------------------------------------------------------------------------------- TIMER ;------------------------------------------------------------------------------------- ; Definizione DATAGROUP ;------------------------------------------------------------------------------------- ;DATAGROUP ;------------------------------------------------------------------------------------- ; Configurazione Bus ;------------------------------------------------------------------------------------- BUS 1 1CPUD 02 2 1MIXA 00 3 . 4 . ;------------------------------------------------------------------------------------- ; Definizione Variabili INPUT ;------------------------------------------------------------------------------------- INPUT ifAvMan F 2.INP01 ;Ingresso di avanti manuale ifInMan F 2.INP02 ;Ingresso di indietro manuale ifStart F 2.INP03 ;Ingresso di START asse ifStop F 2.INP04 ;Ingresso di STOP asse ;------------------------------------------------------------------------------------- ; Definizione Variabili OUTPUT ;------------------------------------------------------------------------------------- OUTPUT ofToll F 2.OUT04 ;Uscita di tolleranza asse ;------------------------------------------------------------------------------------- ; Dichiarazione device interni ;------------------------------------------------------------------------------------- INTDEVICE ;Nome Tipo TCamp Contatore Inter AbilZero OutAva OutInd OutDir OutMov Asse OOPOS3 0004 2.CNT01 1 2.INP01 2.OUT01 2.OUT 02 X.X X.X OutRal OutFre 2.OUT03 X.X END
0.7.2 GESTIONE OOPOS3
;------------------------------------------------------------------------------------- ; Nome File: TASK_00.MOD ; Progetto: EX_OOPOS3 ; Descrizione: Gestione Posizionamento ;------------------------------------------------------------------------------------- ;------------------------------------------------------------------------------------- ; Operazioni di Inizializzazione Asse ;------------------------------------------------------------------------------------- Asse:measure = 10000 ;Spazio in 1 giro encoder(Um) Asse:pulse = 4000 ;impulsi giro encoder Asse:maxpos = 999999 ;Quota massima Asse:minpos = -999999 ;Quota minima Asse:slowpos = 100 ;Quota di rallentamento Asse:tollp = 10 ;Tolleranza positiva Asse:tolln = 50 ;Tolleranza negativa Asse:tinv = 50 ;Tempo di inversione Asse:slowdly = 50 ;Tempo di rallentamento Asse:tbrake = 30 ;Tempo di intervento freno Asse:overpos = 0 ;Oltrequota recupero giochi Asse:bklashmode = 0 ;Tipo recupero giochi Asse:ninert = 1 ;Numero fasce di inerzia Asse:maxiner = 100 ;Massima inerzia ricalcolata Asse:toldly = 50 ;Tempo ritardo segnalazione tolleranza Asse:inertmode = 1 ;Tipo di ricalcolo inerzia Asse:tool = 0 ;Spessore lama Asse:dobiner = 0 ;Abilitazione inerzie sdoppiate ;(avanti e indietro) Asse:enstol = 0 ;Abilitazione START con l'asse in tolleranza Asse:prsmode = 0 ;Tipo di ricerca di preset Asse:prspos = 0 ;Quota di preset Asse:prsdir = 0 ;Direzione della ricerca di preset Asse:decpt = 1 ;Cifre decimali Asse:unitvel = 1 ;Unità di tempo della velocità Asse:breaktype = 0 ;Logica di intervento del freno Asse:slowtype = 0 ;Tipo di calcolo rallentamento Asse:maxvel = 1000 ;Velocità massima Asse:maxslow = 8 ;Rallentamento calcolato massimo Asse:minslow = 80 ;Rallentamento calcolato minimo INIT Asse ;Inizializza il device WAIT Asse:st_init ;Attendi che il device sia inizializzato CNTUNLOCK Asse ;Sblocca conteggio WAIT NOT Asse:st_cntlock ;Attendi che il conteggio sia sbloccato CNTDIR Asse ;Imposta il senso del conteggio WAIT NOT Asse:st_cntrev ;Attendi che sia impostato il senso del ;conteggio REGON Asse ;Abilita la regolazione WAIT NOT Asse:st_regoff ;Attendi l'abilitazione alla regolazione IF (slQuotaPos EQ 0) ;Nel caso in cui la quota di posizionamento ;dell'asse sia zero slQuotaPos = 2000 ;Imposta una quota di posizionamento ENDIF ;------------------------------------------------------------------------------------- ; Operazioni di Posizionamento ; ------------------------------ variabili utilizzate ------------------------------- ; slQuotaPos: Variabile impostabile che rappresenta la quota di posizionamento dell'asse ; -------------------------------- flag utilizzati ---------------------------------- ; gfMovMan: movimento manuale in corso ; gfMovAuto: Movimento automatico in corso ;------------------------------------------------------------------------------------- MAIN: ;------------------------------------------------------------------------------------- ; Gestione uscite ;------------------------------------------------------------------------------------- ofToll = Asse:st_toll ;Imposto l'uscita di tolleranza come lo ;stato di tolleranza ;------------------------------------------------------------------------------------- ; Gestione movimenti automatici ;------------------------------------------------------------------------------------- IF ifStart ;Attende l'ingresso di START IF NOT gfMovMan ;Controlla che non ci siano movimenti ;manuali IF Asse:st_still ;Controlla che l'asse sia fermo Asse:setpos = slQuotaPos ;Imposta la quota di posizionamento START Asse ;Esegue lo start dell'asse gfMovAuto = 1 ;Segnala movimento automatico in corso ENDIF ENDIF ENDIF IF ifStop ;Attende l'ingresso di STOP IF NOT Asse:st_still ;Controlla che l'asse NON sia fermo STOP Asse ;Esegue lo stop dell'asse ENDIF ENDIF IF gfMovAuto ;Controlla segnalazione movimento ;automatico in corso IF Asse:st_still ;Controlla che l'asse sia fermo gfMovAuto = 0 ;Resetta stato di movimento Automatico ENDIF ENDIF ;------------------------------------------------------------------------------------- ; Gestione movimenti manuali ;------------------------------------------------------------------------------------- IF ifAvMan ;Attende l'ingresso di movimento manuale IF NOT (gfMovAuto OR gfMovMan) ;Controlla che non ci siano movimenti ;automatici o manuali IF Asse:st_still ;Controlla che l'asse sia fermo MANFFW Asse ;Avanti asse in manuale gfMovMan = 1 ;Segnala movimento manuale in corso ENDIF ENDIF ENDIF IF ifInMan ;Attende l'ingresso di movimento manuale IF NOT (gfMovAuto OR gfMovMan) ;Controlla che non ci siano movimenti ;autometici o manuali IF Asse:st_still ;Controlla che l'asse sia fermo MANFBW Asse ;Avanti asse in manuale gfMovMan = 1 ;Segnala movimento manuale in corso ENDIF ENDIF ENDIF IF gfMovMan ;Se l'asse si muove in manuale IF NOT (ifAvMan OR ifInMan) ;Se gli ingressi di avanti e indietro ;manuale sono OFF STOP Asse ;Ferma l'asse gfMovMan = 0 ;Togli la segnalazione di asse in ;movimento manuale ENDIF ENDIF ;------------------------------------------------------------------------------------- ; Operazioni finali ;------------------------------------------------------------------------------------- WAIT 1 JUMP MAIN END