software:devices:joint

DEVICE JOINT

1. Introduzione

Il device interno JOINT è stato realizzato per gestire più assi, fino ad un massimo di tre, in interpolazione lineare raccordata. L'interpolazione avviene attraverso movimenti molto piccoli determinati dai punti programmati. Un asse è un sistema elettromeccanico composto da un motore elettrico opportunamente collegato ad una parte meccanica.
È possibile anche movimentare gli assi singolarmente ed eseguire una procedura di homing. Il posizionamento degli assi viene eseguito con un controllo di reazione P.I.D. che garantisce la precisione riducendo l'errore d'inseguimento.

Nella unit di configurazione, la sezione BUS deve essere dichiarata in modo tale che siano presenti le risorse hardware necessarie all'utilizzo del device JOINT.
Devono essere presenti almeno un contatore bidirezionale ed una uscita analogica implementata con DAC con risoluzione 16 bit. Il device può utilizzare anche un ingresso digitale ed un ingresso digitale per interruzione per le funzioni di homing.
Nella sezione INTDEVICE della unit di configurazione deve essere aggiunta la seguente definizione:

;---------------------------------
;  Dichiarazione device interni
;---------------------------------
INTDEVICE
..
<nome_device> JOINT TCamp  NAxis Buffer 
                    IContX IntLX IAZeroX IoutAX
                    IContY IntLY IAZeroY IoutAY
                    IContZ IntLZ IAZeroZ IoutAZ
                    IOut1  IOut2 IOut3 IOut4

Dove:

<nome_device>nome assegnato al device
JOINTparola chiave che identifica il device,
TCamptempo di campionamento device (1÷255 ms)
NAxisnumero degli assi abilitati all'interpolazione (2÷3)
Nota: il numero di assi va ad influire sia sulle prestazioni che sulla quantità di memoria utilizzata
Buffernumero di passi (step) disponibili nel buffer (3÷30000)
Asse X
IContXingresso contatore bidirezionale (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
IntLXnumero dell'ingresso digitale per interruzione dedicata per l'impulso di zero dell'encoder durante la fase di ricerca di preset. (Per evitare che il device utilizzi questa risorsa, inserire il carattere X)
IAZeroXingresso di abilitazione per l'acquisizione dell'impulso di zero del trasduttore durante la fase di ricerca di homing (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
IoutAXindirizzo hardware dell'uscita analogica (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
Asse Y
IContYingresso contatore bidirezionale (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
IntLYnumero dell'ingresso digitale per interruzione dedicata per l'impulso di zero dell'encoder durante la fase di ricerca di preset. (Per evitare che il device utilizzi questa risorsa, inserire il carattere X)
IAZeroYingresso di abilitazione per l'acquisizione dell'impulso di zero del trasduttore durante la fase di ricerca di homing (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
IoutAYindirizzo hardware dell'uscita analogica (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
Asse Z
IContZingresso contatore bidirezionale (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
IntLZnumero dell'ingresso digitale per interruzione dedicata per l'impulso di zero dell'encoder durante la fase di ricerca di preset. (Per evitare che il device utilizzi questa risorsa, inserire il carattere X)
IAZeroZingresso di abilitazione per l'acquisizione dell'impulso di zero del trasduttore durante la fase di ricerca di homing (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
IoutAZindirizzo hardware dell'uscita analogica (per evitare che il device utilizzi questa risorsa inserire i caratteri X.X)
Uscite digitali
IOut1indirizzo hardware dell'uscita digitale OUT1
IOut2indirizzo hardware dell'uscita digitale OUT2
IOut3indirizzo hardware dell'uscita digitale OUT3
IOut4indirizzo hardware dell'uscita digitale OUT4
:important:Attenzione:
È necessario che tutte le voci di definizione siano presenti sulla stessa linea.
Nel caso in cui non si desideri associare una risorsa, ad esempio IAZeroX, si deve comunque inserire nel relativo campo la stringa X.X.

Il device JOINT aggiunge alle funzionalità del posizionatore analogico EANPOS (vd. la documentazione relativa per maggiori informazioni) la possibilità di effettuare un movimento interpolato di assi (fino ad un massimo di tre). Con questo si intende che si ha la possibilità, utilizzando degli assi, di effettuare un movimento da un certo punto nello spazio (tre dimensioni) ad un altro seguendo una linea (non necessariamente retta) o un percorso preimpostato.
Inoltre il device può calcolare un raccordo tra due rette con pendenze diverse secondo secondo alcune modalità programmabili.

Il device include una funzione di generazione traiettoria (anche detta profilo di velocità). Questa genera una informazione che viene opportunamente convertita in un segnale di tensione proporzionale tramite l'uscita analogica per comandare il motore e perciò l'asse collegato per portarlo alla posizione desiderata.
Se il sistema motore fosse ideale seguirebbe perfettamente il profilo di velocità generato e si porterebbe nella posizione data dall'integrale del profilo di velocità. In realtà questo non accade ed è necessario completare il tutto con una catena di retroazione. Il trasduttore che rileva la posizione dell'asse è in genere digitale, tipicamente un encoder (che chiameremo sempre contatore bidirezionale).

L'informazione fornita dal trasduttore viene utilizzata per eseguire un confronto tra la posizione attuale e la posizione teorica. Questo confronto permette di conoscere l'errore attuale ed il regolatore PID può utilizzare questa informazione per modificare opportunamente l'uscita ed ottenere la condizione di errore nullo. Il regolatore utilizzato implementa quattro tipi di azioni. Lo schema a blocchi del regolatore è il seguente:

:info:L'uscita del regolatore PID + FF è un valore compreso tra -32768 e 32767. Questo viene utilizzato dall'uscita analogica per generare la tensione di regolazione. In genere l'uscita analogica è implementata da un dispositivo DAC che converte l'informazione digitale in un valore di tensione compreso tra -10 Volt e +10 Volt. Per ogni azione il regolatore calcola un coefficiente interno in modo da assicurare che il valore generato abbia un significativo per l'uscita analogica.

1.2.1.1 Azione proporzionale

Questa azione di controllo stabilisce una relazione di proporzionalità diretta tra l'errore di inseguimento (follerr) ed il valore in uscita dal regolatore. Il parametro guadagno proporzionale pgain (impostabile dall'utente) definisce l'entità dell'azione proporzionale; esso è espresso in millesimi per cui per impostare un guadagno pari a 0.5 si deve inserire il valore 500.
La regola che stabilisce il valore di uscita (propreg) stabilisce che: con guadagno (pgain) unitario, l'uscita di regolazione sarà massima quando l'errore di inseguimento è pari allo spazio che esegue l'asse alla velocità massima in un tempo di campionamento del device. È importante sottolineare che, a causa della regola appena descritta, esiste un legame tra la regolazione proporzionale ed il tempo di campionamento del device. Inoltre si nota che quando l'errore è nullo anche l'uscita del controllo proporzionale è nulla.

1.2.1.2 Azione integrale

L'azione integrale del controllore PID calcola l'integrale dell'errore di posizione su un intervallo di tempo impostabile dall'utente tramite il parametro integt (espresso in ms). Il segnale di uscita viene aggiornato in modo particolare: ogni volta che l'integratore da un valore in uscita questo è sommato al valore che si trova sul registro, quindi esso continuerà ad incrementarsi o decrementarsi (a seconda del segno dell'errore). Il valore di uscita è calcolato così: con guadagno proporzionale unitario, il tempo di integrazione (integt) è il tempo necessario affinché l'uscita (intreg) raggiunga il valore dell'uscita proporzionale (propreg). Da quest'ultima affermazione si deduce che l'azione integrale è legata all'azione proporzionale.

1.2.1.3 Azione derivativa

L'azione derivativa cerca in un certo senso di “anticipare” il comportamento del sistema che si sta controllando. L'uscita prodotta è proporzionale alla variazione del segnale di ingresso (cioè l'errore di posizione). L'entità dell'effetto derivativo è impostabile tramite il parametro tempo derivativo derivt. Il calcolo dell'azione derivativa si basa sulla seguente convenzione: il tempo derivativo è il tempo necessario affinché, con variazione di errore costante, l'uscita derivativa (parametro derreg) raggiunga un valore pari all'uscita proporzionale. Come per l'azione integrale si evince che anche per l'azione derivativa c'è un legame con l'azione proporzionale. Più alto è il tempo di derivazione dell'errore e più veloce è il sistema nel recupero dell'errore nei transitori. E' evidente comunque che l'azione derivativa non può mai essere utilizzata da sola perché in presenza di errori costanti il suo effetto sarebbe nullo.

Riassumendo: l'azione proporzionale ha l'effetto di aumentare la velocità di reazione del sistema, inoltre riduce, ma non elimina completamente, l'errore. L'azione integrale conduce ad eliminare l'errore, ma allunga i tempi di transitorio. Il controllo derivativo aumenta la stabilità del sistema, riducendo gli overshoot e riducendo i tempi di transitorio.

1.2.1.4 Azione feed-forward

In aggiunta al regolatore PID è presente anche l'azione feed-forward: essa genera una uscita proporzionale al valore di velocità teorica stabilita dal generatore di traiettoria (come si può dedurre dal nome non sfrutta alcuna retroazione dell'errore di inseguimento). La sua funzione è di ridurre il tempo di risposta del sistema fornendo una uscita già vicina a quella che prevede il generatore di profilo di velocità. Il contributo di questa azione è regolabile mediante il parametro feedfw: questo parametro è espresso come porzione millesimale della velocità teorica (quindi per introdurre, ad esempio, 98.5% è necessario impostare il valore 985).

Questo capitolo descrive il metodo con il quale il device ricerca la posizione di home (anche chiamata zero asse o punto di riferimento). Ci sono vari modi per eseguire questa ricerca e questi utilizzano movimenti e risorse hardware diversi.

La funzione di homing deve essere opportunamente configurata prima di essere utilizzata. In particolare il parametro prsmode definisce il modo con il quale il device ricerca la posizione di home. Questo parametro inoltre definisce le risorse hardware necessarie per eseguire la ricerca e le modalità di movimento. Bisogna poi parametrizzare la velocità di ricerca. Tipicamente una velocità elevata (espressa dal parametro prsvel) viene utilizzata per ricercare l'attivazione dell'ingresso digitale di abilitazione ed una velocità inferiore (espressa dal parametro sprsvel) è utilizzata per ricercare la posizione di home. Quest'ultima può essere ricavata dall'ingresso di zero del contatore bidirezionale oppure dalla disattivazione dell'ingresso digitale di abilitazione.

Illustriamo ora i vari modi di ricerca della posizione di home:

1.2.2.1 Modo 0, senza ingresso di zero del contatore bidirezionale

Questa modalità prevede la movimentazione dell'asse e l'utilizzo del solo ingresso digitale di abilitazione. Alla disattivazione dell'ingresso digitale la posizione dell'asse assume il valore presente nel parametro prspos. Successivamente si disattiva lo stato st_prson e si attiva lo stato st_prsok per segnalare la conclusione della ricerca. Questo stato rimane attivo fino all'avviamento di una nuova procedura di ricerca.

Nella figura è stato schematizzato il principio di funzionamento evidenziando le differenze nel caso di opposte direzioni di movimento.

1.2.2.2 Modo 1, con ingresso di zero del contatore bidirezionale

Questa modalità prevede la movimentazione dell'asse e l'utilizzo aggiuntivo dell'ingresso di zero del contatore bidirezionale. Alla disattivazione dell'ingresso digitale di abilitazione viene abilitata la lettura della prima attivazione dell'ingresso di zero e su questo segnale la posizione dell'asse assume il valore presente nel parametro prspos. Successivamente si disattiva lo stato st_prson e si attiva lo stato st_prsok per segnalare la conclusione della ricerca. Questo stato rimane attivo fino all'avviamento di una nuova procedura di ricerca.

Nella figura è stato schematizzato il principio di funzionamento evidenziando le differenze nel caso di opposte direzioni di movimento

1.2.2.3 Modo 2, homing nella posizione attuale

Questa modalità non prevede la movimentazione dell'asse e utilizza solo l'ingresso digitale di abilitazione. All'attivazione dell'ingresso la posizione dell'asse assume il valore presente nel parametro prspos.

:info: - Quando si imposta la velocità di ricerca dello zero (parametro sprsvel) bisogna considerare che nel modo 0 l'ingresso ha un filtro hardware che ne ritarda l'acquisizione e quindi questo ritardo influenza la precisione del caricamento. Nel modo 1 invece l'acquisizione viene eseguita su ingresso digitale per interruzione e la velocità del movimento non è determinante. Bisogna però assicurare che il tempo di durata dell'impulso di zero sia sufficiente per essere acquisito dall'ingresso. Per conoscere i tempi di acquisizione degli ingressi digitali ed il tempo minimo del segnale impulso di zero fare riferimento alla documentazione tecnica delle schede utilizzate.
- Se durante il primo movimento di ricerca dell'ingresso di abilitazione (effettuato alla velocità prsvel) viene dato nuovamente il comando PRESET, la direzione di movimento viene invertita.
- Dopo aver effettuato il caricamento dell'homing offset nella posizione attuale, viene automaticamente comandato un posizionamento alla quota di homing offset.
:important:Durante i movimenti di ricerca posizione di home i limiti software maxpos e minpos non sono abilitati.

I comandi PRESET e RSPRSOK gestiscono la funzione di homing. Il primo deve essere utilizzato per avviare una ricerca della posizione di home oppure per invertire la direzione di ricerca durante il primo movimento a velocità prsvel. Il secondo comando deve essere utilizzato invece per azzerare lo stato st_prsok. Questo stato può essere utilizzato dall'applicativo per conoscere se una funzione di homing è stata conclusa correttamente. Il comando RSPRSOK può essere utilizzato nel caso in cui intervengano degli eventi che invalidano il valore della posizione attuale (per esempio una rottura del contatore bidirezionale, introduzione manuale di un valore nella posizione attuale). L'applicativo (che monitorizza lo stato st_prsok) richiederà quindi una nuova ricerca di homing.
Lo stato st_prson deve essere utilizzato per determinare se la funzione di homing è attiva. Non può infatti essere utilizzato lo stato st_still perché la movimentazione è composta da più posizionamenti e questo stato indicherebbe asse fermo ad ogni fine movimento.

Vediamo un grafico degli stati:

Il parametro prspos deve essere utilizzato per esprimere la distanza tra la posizione di home e la posizione dove termina la funzione di homing. Se queste coincidono allora il parametro va impostato a zero. Vediamo un grafico:

Normalmente i parametri posit ed encoder rappresentano la posizione assoluta dell'asse. Vi sono dei casi applicativi in cui questi parametri devono rappresentare una informazione relativa. Questi possono essere ad esempio assi circolari (per cui posit deve esprimere una grandezza angolare) oppure un posizionatore a quote relative. Per rendere posit un'informazione relativa è necessario modificarne il valore; nonostante esista la possibilità di scrittura su tale parametro, l'operazione non è consigliabile per due motivi:

  • perché la posizione attuale dell'asse è sempre influenzata dall'errore inseguimento
  • perché la posizione attuale può essere una delle tante posizioni intermedie tra un'unità di misura e la successiva

A tale scopo esiste invece il comando DELCNT che permette di modificare il posit di un valore impostabile tramite il parametro delcnt.
Per esempio supponiamo di aver configurato pulse e measure in modo che la posizione sia espressa in decimi di grado. Se posit esprime la posizione angolare e vogliamo che questa sia sempre compresa tra zero e 360 gradi dovremmo aggiungere il seguente codice:

IF Asse:posit GE 3600
  Asse:delcnt = -3600
  DELCNT Asse
ENDIF

E' errato invece utilizzare il seguente codice:

IF Asse:posit GE 3600
  Asse:posit = Asse:posit - 3600
ENDIF

Per le condizioni di esecuzione del comando vedere la descrizione dello stesso.
Il funzionamento del comando DELCNT è assicurato anche nel caso in cui una unità di misura non sia esprimibile in un numero finito di impulsi primari. Per esempio con i parametri measure = 1000 e pulse = 1024, il valore 3600 dell'esempio precedente corrisponde a 3686,4 impulsi. Grazie ad un sofisticato algoritmo interno il device riesce a considerare la parte frazionaria di questo valore e tramite degli accumulatori interni essa diventa parte dell'informazione utilizzata per modificare il valore di posit.

1.2.3.1 Esempio:

Si supponga la seguente impostazione: pulse = 10, measure = 1. Si supponga inoltre che la lettura della posizione dell'asse risulti essere 2 e si trovi nel punto A. Si vogliono sommare alla posizione posit due unità di misura.
Con le istruzioni:

Asse:posit = Asse:posit + 2

l'asse assume la nuova posizione B.
Con le istruzioni:

Asse:delta = 2
DELCNT Asse

viene raggiunta la posizione C.

Si noti che se viene modificato direttamente posit senza utilizzare la funzione delta (come nel primo esempio) è introdotto un errore.

:info:Se si devono inviare comandi DELCNT in successione, è conveniente calcolare la grandezza da sommare ed inviare una sola volta il comando. Se ciò non fosse possibile bisogna prestare attenzione a non inviare comandi successivi senza interporre una istruzione di lettura su parametro device.
Esempio:
Asse:delta = 3
DELCNT Asse
WAIT Asse:delta
Asse:delta = 40
DELCNT Asse

Il device consente di effettuare un posizionamento collegando coppie di punti con delle rette ed effettuando il raccordo modificando gradualmente la pendenza della prima retta per raggiungere la pendenza della seconda retta. Agendo in questo modo si calcolerà una curva che unisca senza spostamenti bruschi le traiettorie di due rette. Un esempio è mostrato in figura.

Il device in questa situazione genera due traiettorie che si fonderanno insieme tra una retta e l'altro. Per ottenere una maggior omogeneità del movimento risultante è stato scelto di mantenere i tempi di accelerazione e decelerazione uguali tra gli assi in gioco, programmabili con un'unica variabile. In caso contrario potrebbe accadere che la traiettoria risultante non sia quella desiderata.
Nel caso le coordinate superino le quote massime e minime impostate come limite degli assi, il sistema si posizionerà su tali limiti.
Se si eseguono dei raccordi in modo da ottenere delle figure circolari, è bene impostare le variabili mxlrvelASSE uguali in modo da evitare che la velocità d'interpolazione vari tra i limiti delle mxlrvel di ogni asse.

Nota: ciò che è stato descritto risulta valido anche per il movimento di tre assi.

1.2.4.1 Cambio velocità di interpolazione

Durante il posizionamento è possibile variare la velocità d'interpolazione senza influenzare la posizione da raggiungere. Questa operazione può determinare un aumento o una diminuzione della velocità di ogni asse: se un asse raggiunge il suo limite massimo, allora la velocità globale d'interpolazione non potrà essere superiore.
L'operazione di cambio di velocità non è detto avvenga immediatamente, ma solamente quando tutte le condizioni necessarie sono soddisfatte.

Anche il tempo di accelerazione/decelerazione dell'interpolazione (tacci) è soggetto ai limiti imposti dai diversi assi: esso dev'essere uguale o maggiore del massimo tempo di accelerazione e decelerazione di tutti gli assi.

1.2.4.2 Utilizzo dei codici passo in interpolazione

II device, quando attiva effettua un movimento in interpolazione mediante il comando STARTPRG, prevede l'utilizzo del Buffer di programma contenente le coordinate degli assi relative ai punti che devono essere raccordati.
L'introduzione delle quote può avvenire sia in forma assoluta che incrementale, rispetto alla posizione precedente (setposASSE), in base alla scelta del parametro prgmode.

Per ogni passo di programma è anche disponibile una variabile code i cui valori sono compresi tra 0 e 65536.
Il significato della variabile code è riportato nella seguente tabella:

ValoreDescrizione
0Nessuna operazione
1÷1000Override di velocità (espresso in decimi di punti percentuali rispetto setveli)
2000÷6999Esegue un arresto del posizionamento (utilizzando una rampa di decelerazione) quindi attende un intevallo di tempo (espresso in millisecondi) pari al valore del campo code - 2000, quindi riprende il posizionamento con una rampa di accelerazione verso il punto successivo.
10000÷100015Riporta lo stato delle uscite OUT1, OUT2, OUT3, OUT4
Il valore risultante della sottrazione di 10000 alla variabile code è un valore compreso tra 0 e 15 che indica lo stato delle 4 uscite secondo il seguente schema:
OUT4 OUT3 OUT2 OUT1 code- 10000 code
0 0 0 0 0 10000
0 0 0 1 1 10001
0 0 1 0 2 10002
0 0 1 1 3 10003
0 1 0 0 4 10004
0 1 0 1 5 10005
0 1 1 0 6 10006
0 1 1 1 7 10007
1 0 0 0 8 10008
1 0 0 1 9 10009
1 0 1 0 10 10010
1 0 1 1 11 10011
1 1 0 0 12 10012
1 1 0 1 13 10013
1 1 1 0 14 10014
1 1 1 1 15 10015

1.2.4.3 Condizioni per l'esecuzione di un'interpolazione

Perché un'interpolazione possa iniziare, mediante i comandi STARTI o STARTPRG, è necessario che vengano rispettate le seguenti condizioni di partenza:

  • i parametri unitvelASSE e decptASSE degli assi da interpolare devono essere uguali
  • gli assi non devono essere in emergenza: st_emrgASSE = 0
  • gli assi devono essere fermi: st_stillASSE = 1
  • gli assi non devono essere in calibrazione: st_calASSE = 0
  • gli assi non devono essere in ricerca di homing: st_prsonASSE = 0
NomeDimensioneValore di defaultTipo di accessoUnità di misuraRange validoCondizioni di scritturaDescrizione
prgmodeByteRitentivoRW-0÷1st_ipolar=0Modo di setup delle quote di programma
Definisce il modo di setup della memoria programmi:
0: le quote vengono indicate come valore assoluto,
1: le quote vengono indicate come valore incrementale.
maxveliLong0RUv0÷999999-Velocità massima in interpolazione
Definisce la massima velocità di interpolazione nell'unità di misura della velocità impostata. Il valore è calcolato automaticamente in funzione delle velocità massime degli assi X, Y e Z.
tacciWordRitentivoRWcentesimi di secondo0÷999st_ipolar=0Tempo di accelerazione e decelerazione in interpolazione
Definisce il tempo impiegato dagli assi interpolati per portarsi da fermi alla velocità massima e da velocità massima a zero (condizione di asse fermo).
Viene utilizzato solamente durante i movimenti interpolati.
setveliLongRitentivoRWUv1÷maxveli-Impostazione della velocità in interpolazione
Definisce la velocità d'interpolazione e può essere variato anche durante l'interpolazione. Il valore non deve superare maxvelx o maxvely o maxvelz.
Se duranti i calcoli una componente supera il valore massimo ricalcolabile (mxrlvelx o mxrlvely o mxrlvelz), viene eseguita la riduzione della velocità d'interpolazione in modo da soddisfare tale condizione.
minspINTLong0RUm--Spazio minimo in interpolazione a velocità costante (parte intera)
Indica la spazio minimo che può essere effettuato in interpolazione, tale valore è calcolato in funzione della velocità (setveli) e dei tempi di accelerazione e decelerazione (tacci) dell'interpolazione. Il valore è espresso nella variabile minspINT (parte intera) e minspFRAC (parte frazionaria).
minspFRACWord0R---Spazio minimo in interpolazione a velocità costante (parte frazionaria)
Rappresenta la parte frazionaria del parametro minspINT, è espressa come parte frazionaria * 65535.
mxrlvelxLongRitentivoRWUv0÷maxvelxst_ipolar = 0Massima velocità asse X per spostamenti con interpolazione
Nel caso di spostamenti con interpolazione definisce la velocità massima raggiungibile dall'asse X.
Nel caso in cui la velocità dell'asse superi questo valore è applicata una riduzione della velocità di interpolazione segnalata con l'attivazione dello stato st_rvel.
mxrlvelyLongRitentivoRWUv0÷maxvelxst_ipolar = 0Massima velocità asse Y per spostamenti con interpolazione
Nel caso di spostamenti con interpolazione definisce la velocità massima raggiungibile dall'asse Y.
mxrlvelzLongRitentivoRWUv0÷maxvelxst_ipolar = 0Massima velocità asse Z per spostamenti con interpolazione
Nel caso di spostamenti con interpolazione definisce la velocità massima raggiungibile dall'asse Z.
stepbegWord0RW-0÷30000-Numero del passo di inizio programma di interpolazione
Indica il numero di passo da cui inizierà il programma di interpolazione con il comando STARTPRG.
Se viene posto a 0, il device eseguirà un ciclo continuo da 1 a stepend. Modificando da 0 a 1 il valore durante l'interpolazione l'interpolazione terminerà quando stepexe raggiungerà stepend.
stependWord0RW-1÷30000-Numero del passo di fine programma di interpolazione
Indica il numero di passo a cui terminerà il programma di interpolazione iniziato con il comando STARTPRG.
stepexeWord0R-1÷30000-Numero del passo in esecuzione del programma di interpolazione
Indica il numero del passo in esecuzione durante l'interpolazione iniziata con il comando STARTPRG.
stepinWord0RW-1÷30000-Numero del passo da memorizzare
Indica il numero del passo da memorizzare con il comando WRITESTEP o leggere con il comando READSTEP.
stepoutWord0RW-1÷30000-Esito della procedura di lettura o scrittura passo
Quando l'esecuzione del comando WRITESTEP o READSTEP ha avuto buon esito stepout avrà lo stesso valore di stepin.
stepnumWord0RW-1÷4-Numero di passi presi in considerazione da READSTEP o WRITESTEP
Indica il numero di passi che vengono letti o scritti dai comandi READSTEP o WRITESTEP.
codexILong0RW-0÷10015-Codice asse X per il passo I
Indica la coordinata dell'asse X nel passo in lettura o scrittura numero I (I = 1÷8).
codeyILong0RW-0÷10015-Codice asse Y per il passo I
Indica la coordinata dell'asse Y nel passo in lettura o scrittura numero I (I = 1÷8).
codezILong0RW-0÷10015-Codice asse Z per il passo I
Indica la coordinata dell'asse Z nel passo in lettura o scrittura numero I (I = 1÷8).
codestpIWord0RW-0÷10015-Codice passo numero I
Indica il valore relativo al codice passo numero I (I = 1÷8).
Se zero, il valore viene ignorato.
errcodeByte0RW-0÷100-Codice di identificazione errore
Indica il tipo di errore intervenuto nel sistema. Quando st_error = 1 si trova presente sulla variabile errcode il tipo di errore intervenuto e nella variabile errvalue una indicazione sulla causa dell'errore. Se il device va in errore, per riprendere la lavorazione bisogna cancellare lo stato st_error attraverso il comando RSERR.
La seguente tabella specifica i valori assunti dalla variabile errcode:
CodiceDescrizione
1È stato rilevato un errore nei calcoli durante l'interpolazione.
Quando si verifica questa condizione, l'interpolazione viene immediatamente interrotta.
errvalueByte0RW-0÷100-Codice di identificazione della causa dell'errore
Per mezzo della variabile errvalue è possibile ottenere informazioni più dettagliate riguardo l'errore segnalato.
La seguente tabella specifica i valori assunti dalla variabile errvalue:
CodiceDescrizione
1Questo errore è segnalato quando per 5 passi consecutivi lo spostamento del punto di interpolazione è risultato 0.
2È stata richiesta un'operazione non valida.
3Durante il calcolo dello spostamento del punto di interpolazione è avvenuto un overflow.
10Superamento quota massima asse X. La quota di posizionamento calcolata, è maggiore della quota massima impostata.
11Superamento quota massima asse Y. La quota di posizionamento calcolata, è maggiore della quota massima impostata.
12Superamento quota massima asse Z. La quota di posizionamento calcolata, è maggiore della quota massima impostata.
13Superamento quota minima asse X. La quota di posizionamento calcolata, è minore della quota minima impostata.
14Superamento quota minima asse Y. La quota di posizionamento calcolata, è minore della quota minima impostata.
15Superamento quota minima asse Z. La quota di posizionamento calcolata, è minore della quota minima impostata.
wrncodeByte0RW-0÷100-Codice di identificazione warning
Indica il tipo di warning intervenuto nel sistema. Lo stato st_warning indica un evento non grave che garantisce comunque il funzionamento del device.
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. Per cancellare lo stato st_warning bisogna inviare il comando RSWRN.
La seguente tabella specifica i valori assunti dalla variabile wrncode:
CodiceDescrizione
1Comando non eseguito
2Non è possibile eseguire la scrittura del parametro perché è attiva l'interpolazione.
16÷31Codice riferito ad asse X
32÷47Codice riferito ad asse Y
48÷63Codice riferito ad asse Z
wrnvalueByte0RW-0÷100-Codice di identificazione della causa del warning
Per mezzo della variabile wrnvalue è possibile ottenere informazioni più dettagliate riguardo l'errore.
NomeDimensioneValore di defaultTipo di accessoUnità di misuraRange validoCondizioni di scritturaDescrizione
measurexLongRitentivoRWUm1÷999999st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Misura di riferimento per il calcolo del fattore di conversione tra impulsi primari ed unità di misura per l'asse X
Indica lo spazio, in unità di misura, percorso dall'asse X per ottenere gli impulsi primari impostati nel parametro pulsex. Questo parametro è utilizzato per il calcolo del fattore di conversione tra impulsi primari ed unità di misura.
positx = encoderx * measurex / pulsex
Il rapporto measurex/pulsex deve avere un valore compreso tra 0.00935 e 1.
pulsexLongRitentivoRW-1÷999999st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Numero di impulsi primari per il calcolo del fattore di conversione tra impulsi primari e unità di misura per l'asse X
Indica il numero di impulsi primari che genererà il trasduttore bidirezionale per ottenere un movimento pari a measurex. Questo parametro è utilizzato per il calcolo del fattore di conversione tra impulsi primari ed unità di misura.
positx = encoderx * measurex / pulsex
Il rapporto measurex/pulsex deve avere un valore compreso tra 0.00935 e 1.
decptxByteRitentivoRW-0÷3st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Scelta dell'unità di misura della velocità dell'asse X
L'unità di misura della velocità dipende dai parametri unitvelx e decptx. Tramite decptx si stabilisce se impostare i valori di velocità in multipli dell'unità di misura fondamentale Um.
Ad esempio, se l'unità di misura fondamentale Um=mm, ed unitvel=1 si ottiene la visualizzazione della velocità nella variabile vel in:
mm/s (con decpt = 0),
cm/s (con decpt = 1),
dm/s (con decpt = 2),
m/s (con decpt = 3).
unitvelxByteRitentivoRW-0÷1st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Unità di tempo per il calcolo della velocità
Definisce l'unità di misura della velocità:
0: Um/min,
1: Um/sec.
maxposxLongRitentivoRWUm-999999÷999999st_stillx=1Quota massima raggiungibile dall'asse X
Definisce la massima quota raggiungibile dall'asse X: il valore impostato è da considerarsi anche come limite massimo per l'introduzione delle quote di programma.
minposxLongRitentivoRWUm-999999÷999999st_stillx=1Quota minima raggiungibile dall'asse X
Definisce la minima quota raggiungibile dall'asse X: il valore impostato è da considerarsi anche come limite minimo per l'introduzione delle quote di programma.
prsposxLongRitentivoRWUmminpos÷maxposst_stillx=1,
st_prsonx=0
Homing offset asse X
Rappresenta l'homing offset cioè la distanza tra la posizione di home e la posizione dove termina la funzione di homing per l'asse X.
maxvelxLongRitentivoRWUv0÷999999st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Velocità massima asse X
Definisce la massima velocità dell'asse X, ovvero la velocità assunta quando la tensione erogata è pari a ± 10V. Il valore introdotto è nell'unità di misura impostata tramite il parametro unitvelx.
prsvelxLongRitentivoRWUv0÷maxvelxst_stillx=1,
st_prsonx=0
Velocità per la ricerca dell'attivazione ingresso digitale di abilitazione per l'asse X
Velocità per ricercare l'attivazione dell'ingresso digitale di abilitazione. Il valore introdotto è nell'unità di misura impostata tramite il parametro unitvel.
sprsvelxLongRitentivoRWUv0÷maxvelxst_stillx=1,
st_prsonx=0
Velocità utilizzata per la ricerca della posizione di home per l'asse X
Definisce la velocità utilizzata per la ricerca della posizione di home. Questa può essere data dall'ingresso di zero del contatore bidirezionale oppure dalla disattivazione dell'ingresso digitale di abilitazione (dipende dal valore del parametro prsmodex). Il valore introdotto è nell'unità di misura impostata tramite il parametro unitvelx.
tollxLongRitentivoRWUm-999999÷999999-Tolleranza asse X
Definisce una fascia di tolleranza intorno alle quote di posizionamento. Quando il posizionamento si conclude entro tale fascia allora viene posto a 1 lo stato st_tollx. Esiste un tempo di verifica per assicurare che l'asse abbia assunto una posizione stabile all'interno della fascia. Questo tempo è espresso dal parametro toldlyx.
maxfollerrxLongRitentivoRWImpulsi primari0÷2147483648-Massimo errore d'inseguimento per l'asse X
Definisce il massimo scostamento accettabile tra la posizione teorica e la posizione attuale dell'asse X. E' utilizzato per la gestione di st_follerx.
mxrlvelxLongRitentivoRWUv0÷maxvelx-Massima velocità asse X in interpolazione
Nel caso di posizionamenti con interpolazione, definisce la massima velocità raggiungibile dall'asse X.
rampmodexByteRitentivoRW-0÷1-Scelta differenziazione tra rampe di accelerazione e decelerazione per l'asse X
Utilizzato per la scelta tra rampe d'accelerazione e decelerazione uguali (utilizzo del parametro taccdecx) o differenziate (utilizzo dei due parametri taccx e tdecx).
0: rampe uguali,
1: rampe differenziate.
:info::Nota:
se st_stillx=1 la scrittura è sempre abilitata, altrimenti il valore viene processato solamente se i nuovi tempi di accelerazione e decelerazione permettono di raggiungere la quota preimpostata.
ramptypexByteRitentivoRW-0÷3st_stillx=1Tipo di rampa asse X
Definisce il tipo di rampa da eseguire per l'asse X:
0: accelerazione e decelerazione di tipo trapezoidale,
1: accelerazione e decelerazione di tipo epicicloidale,
2: accelerazione di tipo trapezoidale e decelerazione di tipo epicicloidale,
3: accelerazione di tipo epicicloidale e decelerazione di tipo trapezoidale.
Descrizione del movimento epicicloidale
Il movimento epicicloidale (ramptypex=1) viene utilizzato per movimentare gli assi senza brusche variazioni di velocità. Naturalmente il tempo di posizionamento di un asse movimentato con le rampe trapezoidali sarà inferiore, ma l'usura meccanica aumenta.
Per confronto è mostrata la differenza del tempo d'accelerazione nei due casi mantenendo costante il gradiente massimo d'accelerazione (il comportamento per le rampe di decelerazione è lo stesso).

Il movimento epicicloidale ha la possibilità di comportarsi in modi diversi nel caso di riduzione di profilo (rtypex) e nel caso di stop durante la rampa di accelerazione (stoptx).
taccdecxWordRitentivoRWcentesimi di secondo0÷999st_ipolar = 0,
st_prsonx = 0,
st_stillx = 1
Tempo di accelerazione e decelerazione asse X
È il tempo necessario per passare da velocità 0 a velocità massima (maxvelx) e viceversa; il parametro è utilizzato se rampmodex = 0.
Cambio tempo di rampa in movimento
Durante il posizionamento possono essere variati i tempi di accelerazione e decelerazione. Per esempio il device può avviare un posizionamento con una rampa molto lunga e, una volta raggiunta la velocità impostata, viene variato il tempo di decelerazione ed eseguito un cambio di velocità con una rampa molto lunga.
Per applicazioni particolari e alla presenza di rampe trapezoidali, il tempo può essere modificato anche durante una variazione di velocità, in tal caso il nuovo tempo è utilizzato immediatamente.
La scrittura nei parametri di accelerazione e decelerazione è sempre abilitata ma il nuovo valore verrà utilizzato solo se il generatore profilo può raggiungere la posizione impostata. In caso contrario il nuovo valore verrà messo in esecuzione al successivo posizionamento.
taccxWordRitentivoRWcentesimi di secondo0÷999-Tempo di accelerazione asse X
È il tempo necessario per passare da velocità 0 a velocità massima. Viene utilizzato quando rampmodex=1.
Cambio tempo di rampa in movimento
Durante il posizionamento possono essere variati i tempi di accelerazione e decelerazione. Per esempio il device può avviare un posizionamento con una rampa molto lunga e, una volta raggiunta la velocità impostata, viene variato il tempo di decelerazione ed eseguito un cambio di velocità con una rampa molto lunga.
Per applicazioni particolari e alla presenza di rampe trapezoidali, il tempo può essere modificato anche durante una variazione di velocità, in tal caso il nuovo tempo è utilizzato immediatamente.
La scrittura nei parametri di accelerazione e decelerazione è sempre abilitata ma il nuovo valore verrà utilizzato solo se il generatore profilo può raggiungere la posizione impostata. In caso contrario il nuovo valore verrà messo in esecuzione al successivo posizionamento.
tdecxWordRitentivoRWcentesimi di secondo0÷999-Tempo di decelerazione asse X
È il tempo necessario per passare dalla massima velocità a velocità 0. Viene utilizzato quando rampmodex=1.
Cambio tempo di rampa in movimento
Durante il posizionamento possono essere variati i tempi di accelerazione e decelerazione. Per esempio il device può avviare un posizionamento con una rampa molto lunga e, una volta raggiunta la velocità impostata, viene variato il tempo di decelerazione ed eseguito un cambio di velocità con una rampa molto lunga.
Per applicazioni particolari e alla presenza di rampe trapezoidali, il tempo può essere modificato anche durante una variazione di velocità, in tal caso il nuovo tempo è utilizzato immediatamente.
La scrittura nei parametri di accelerazione e decelerazione è sempre abilitata ma il nuovo valore verrà utilizzato solo se il generatore profilo può raggiungere la posizione impostata. In caso contrario il nuovo valore verrà messo in esecuzione al successivo posizionamento.
rtypexByteRitentivoRW-0÷1ramptypex=1Tipo di riduzione di profilo asse X
Questo parametro indica il comportamento del generatore profilo nel caso di posizionamento con rampe epicicloidali in condizioni di non raggiungimento della velocità costante. Il comportamento sarà:
0: i tempi di accelerazione e decelerazione restano quelli già calcolati e viene diminuita proporzionalmente la velocità,
1: vengono diminuiti i tempi di accelerazione e decelerazione e anche la velocità.


Con il parametro rtypex = 0 si allungano notevolmente i tempi necessari ai posizionamenti piccoli. Se invece il parametro è impostato a 1 si hanno tempi ridotti nel caso di posizionamenti brevi, ma mantenendo il gradiente costante si perdono i benefici di utilizzare una rampa epicicloidale.
stoptxByteRitentivoRW-0÷1ramptypex=1Modalità di stop asse X
Nel caso in cui si utilizzino rampe epicicloidali e si debba frenare l'asse X durante la rampa di accelerazione con il comando STOPX si può scegliere se far completare la rampa oppure se interromperla. Questa scelta viene fatta modificando il parametro stoptx:
0: la rampa di accelerazione viene conclusa e quindi si inizia la rampa di decelerazione,
1: la rampa di accelerazione viene interrotta ed inizia subito la rampa di decelerazione di tipo epicicloidale.

tinvxWordRitentivoRWcentesimi di secondo0÷999-Ritardo per inversione della direzione asse X
È un tempo di ritardo introdotto nel caso di inversioni della direzione. Viene utilizzato per evitare stress meccanici dovuti ad inversioni troppo rapide.
toldlyxWordRitentivoRWcentesimi di secondo0÷999-Ritardo segnalazione di tolleranza asse X
Definisce il tempo che intercorre tra l'arrivo dell'asse nella fascia di tolleranza e la relativa segnalazione di stato (st_tollx).
pgainxWordRitentivoRW-0÷32767-Guadagno proporzionale asse X
È il coefficiente che permette di modificare l'entità dell'azione proporzionale nel regolatore PID. Viene inserito in millesimi (perciò inserendo 1000 il coefficiente sarà pari a 1).
feedfwxWordRitentivoRW-0÷32767-Coefficiente di feed forward asse X
È il coefficiente percentuale che, moltiplicato per la velocità teorica, genera la parte feed forward dell'uscita di regolazione. Il valore è inserito in decimi (perciò inserendo 1000 la percentuale sarà del 100.0%).
integtxWordRitentivoRWmillesimi di secondo0÷32767-Tempo di integrazione dell' errore di inseguimento asse X
È il parametro che permette di modificare l'entità dell'azione integrale nel regolatore PID.
derivtxWordRitentivoRWmillesimi di secondo0÷32767-Tempo per il calcolo del coefficiente derivativo dell'errore di inseguimento asse X
È il parametro che permette di modificare l'entità dell'azione derivativa nel regolatore PID.
prsmodexByteRitentivoRW-0÷2st_ipolar = 0,
st_prsonx=0,
st_stillx=1
Modo di ricerca della posizione di home asse X
Seleziona il modo di ricerca della posizione di home. I valori possibili sono:
0: senza ingresso di zero del contatore bidirezionale,
1: con ingresso di zero del contatore bidirezionale,
2: homing nella posizione attuale senza movimentazione.
prsdirxByteRitentivoRW-0÷1st_prsonx=0Direzione di movimento per la ricerca della posizione di home asse X
Definisce la direzione del primo movimento durante la ricerca della posizione di home:
0: direzione avanti,
1: direzione indietro.
offsetxWordRitentivoRWbit-32768÷32767-Offset uscita analogica asse X
Definisce il valore in bit della correzione relativa all'uscita analogica in modo da compensare l'eventuale deriva del sistema.
setposxLongRitentivoRWUmminposx÷maxposx-Quota di posizionamento asse X
Definisce la quota di posizionamento da raggiungere alla velocità setvelx.
Cambio setposx in movimento
In alcune applicazioni viene richiesto di definire la quota di destinazione durante il posizionamento, in base a determinati eventi. Questa caratteristica si traduce nella possibilità di scrittura nel parametro setposx anche con posizionamento in corso.
Il cambio della quota viene accettato solamente se la nuova posizione è raggiungibile con la direzione di movimento attuale. Nel caso di utilizzo di rampe epicicloidali il cambio quota non viene accettato se st_decx=1 (ovvero se l'asse sta decelerando).
setvelxLongRitentivoRWUv0÷maxvelx-Velocità di posizionamento asse X
Stabilisce il valore della velocità di posizionamento.
Cambio setvelx in movimento
Durante il posizionamento è possibile variare la velocità dell'asse senza influenzare la posizione da raggiungere. Questa operazione può essere fatta anche in più punti dello stesso posizionamento semplicemente modificando il parametro setvelx. Il cambio di velocità è sempre disponibile tranne durante la rampa di decelerazione segnalata da un apposito stato (st_decx = 1).

:important::Attenzione:
il valore viene alterato se si comanda una funzione di ricerca di homing con prsmodex = 0 o 1
voutxByte0RWdecimi di Volt-100÷100st_init=1,
st_calx=1,
st_emrgx = 0
Tensione di uscita asse X
Indica normalmente il valore della tensione fornita dall'uscita analogica, in fase di calibrazione può essere modificato per impostare un valore fisso all'uscita.
velxLong0RUv0÷maxvelx-Velocità asse X
È il valore della velocità istantanea dell'asse X. L'aggiornamento è eseguito ogni 250 ms.
L'unità di misura della velocità dipende dai parametri unitvelx e decptx.
frqxLong0RWHz--Frequenza dei segnali di ingresso asse X
È il valore della frequenza dei segnali in ingresso al contatore bidirezionale. L'aggiornamento è eseguito ogni 250 ms.
positLongRitentivoRWUmminpos÷maxposst_init=1Posizione attuale in unità di misura
È il valore della posizione istantanea dell'asse.
positx = encoderx * measurex / pulsex
Cambio posizione attuale in movimento
Durante il posizionamento è possibile modificare il valore della posizione attuale positx. Questa funzione è utilizzata solitamente quando un device deve, in particolari condizioni, continuare un profilo di velocità per un tempo molto lungo, superiore al tempo che l'asse impiega per raggiungere la quota limite (maxposx o minposx).
encoderxLongRitentivoRWImpulsi primarist_init=1-Posizione attuale asse X in impulsi primari
Esprime la posizione attuale in impulsi primari.
follerrxLong0RImpulsi primari--Errore d'inseguimento asse X
È il valore istantaneo dell'errore d'inseguimento.
ffwdregxLong0Rbit--Valore dell'uscita feed forward asse X
È il valore istantaneo dell'uscita feed forward nel regolatore PID.
propregxLong0Rbit--Valore dell' uscita proporzionale asse X
È il valore istantaneo dell'uscita proporzionale nel regolatore PID.
intregxLong0Rbit--Valore dell' uscita integrale asse X
È il valore istantaneo dell'uscita integrale nel regolatore PID.
derregxLong0Rbit--Valore dell' uscita derivativa asse X
È il valore istantaneo dell'uscita derivativa nel regolatore PID.
deltaxLong0RWUm-999999÷999999-Variazione della posizione attuale dell'asse X per l'utilizzo del comando DELCNT
È il valore che viene sommato alla posizione attuale quando viene inviato un comando DELCNTX.
errcodexByte0R-0÷100-Codice di identificazione errore asse X
Indica il tipo di errore intervenuto nel sistema. Quando st_errorx = 1 si trova presente sulla variabile errcodex il tipo di errore intervenuto e nella variabile errvaluex una indicazione sulla causa dell'errore. Se il device va in errore, per riprendere la lavorazione bisogna cancellare lo stato st_errorx attraverso il comando RSERRX.
errvaluexByte0R-0÷100-Codice di identificazione della causa dell'errore asse X
Indica la causa dell'errore intervenuto nel sistema. Il codice è valido solo se st_error = 1.
wrncodexByte0R-0÷100-Codice di identificazione warning asse X
Indica il tipo di warning intervenuto nel sistema. Lo stato st_warningx indica un evento non grave che garantisce comunque il funzionamento del device.
Quando st_warningx è uguale a 1, troviamo presente sulla variabile wrncodex il tipo di warning intervenuto e nella variabile wrnvaluex una indicazione sulla causa che ha provocato il warning. Per cancellare lo stato st_warningx bisogna inviare il comando RSWRNX.
wrnvaluexByte0R-0÷100-Codice di identificazione della causa del warning asse X
Indica la causa del warning intervenuto nel sistema.

ATTENZIONE: L'ultima lettera del nome della variabile, prende il valore del nome dell'asse.

Vedi paragrafo Parametri asse X

Vedi paragrafo Parametri asse X

NomeValore di defaultDescrizione
st_init0Stato di inizializzazione
Segnalazione di device inizializzato:
0: device non inizializzato,
1: device inizializzato
st_ipolar0Stato di interpolazione in corso
Interpolazione in corso:
0: interpolazione non in corso,
1: interpolazione in corso
st_rvel0Stato di riduzione della velocità in interpolazione
Quando questo flag vale 1, indica che è avvenuta una riduzione di velocità d'interpolazione per fare rientrare le velocità degli assi entro i limiti stabiliti dai parametri mxrlvelASSE. Lo stato rimane attivo almeno per un tempo di 200 msec.
st_undsp0Tratto in interpolazione eseguito senza raggiungere la velocità impostata
Quando questo flag è a 1, indica che il tratto è stato eseguito senza raggiungere la velocità impostata.
st_error0Presenza di un errore
Indica lo stato di errore del device, per riconoscere il tipo di errore si deve far riferimento alle variabili errcode ed errvalue:
0: errore non presente,
1: errore presente
st_warning0Presenza di un warning
Indica lo stato di warning del device, per riconoscere il tipo di warning si deve far riferimento alle variabili wrncode e wrnalue:
0: warning non presente,
1: warning presente
st_out0X0Stato dell'uscita OUT0X
Segnala lo stato dell'uscita OUT0X (dove X=1÷4):
0: uscita disattiva,
1: uscita attiva.
NomeValore di defaultDescrizione
st_emrgx0Stato di emergenza asse X
Segnalazione di asse X in emergenza:
0: asse X non in emergenza,
1: asse X in emergenza
st_tollx0Stato di tolleranza asse X
Segnalazione di asse X in tolleranza rispetto alla quota di posizionamento impostata. La segnalazione di asse in tolleranza può essere ritardata tramite il parametro toldlyx
0: asse X non in tolleranza,
1: asse X in tolleranza
st_prsokx0Esito della funzione di homing asse X
Questo stato indica se la funzione di homing per l'asse X è stata conclusa correttamente. I valori sono:
0: funzione non effettuata o non conclusa correttamente,
1: funzione effettuata e conclusa correttamente.
st_stillx1Stato di movimento asse X
Segnalazione di asse X fermo:
0: asse in movimento,
1: asse fermo
st_prsonx0Stato della funzione di homing asse X
Segnalazione di funzione di homing asse X in corso:
0: funzione non in corso,
1: funzione in corso
st_movdirx0Direzione di movimento asse X
Segnalazione della direzione di movimento asse X:
0: avanti,
1: indietro
:info::Nota:
Quando l'asse è fermo lo stato indica la direzione dell'ultimo movimento effettuato.
st_looponx0Attivazione reazione di spazio asse X
Segnalazione di asse X in reazione di spazio:
0: asse non in reazione di spazio,
1: asse in reazione di spazio
st_follerx0Stato di errore d'inseguimento asse X
Segnalazione di asse X in errore d'inseguimento. Questo stato quando commuta da 0 a 1, rimane tale per un periodo minimo di 500 ms.
0: asse non in errore d'inseguimento,
1: asse in errore d'inseguimento
st_regoffx0Disattivazione aggiornamento uscita analogica asse X
Stato che segnala se l'aggiornamento dell'uscita analogica è disabilitato
0: la regolazione è attivata,
1: la regolazione è disattivata.
st_calx0Stato di calibrazione
Segnalazione di device in calibrazione dell'asse X (può essere regolata la tensione in uscita):
0: generatore di tensione disattivo,
1: generatore di tensione attivo
st_cntlockxRitentivoStato di aggiornamento posizione asse X disabilitato
Segnalazione di aggiornamento posizione asse X bloccato:
0: aggiornamento posizione abilitato,
1: aggiornamento posizione disabilitato
st_cntrevxRitentivoStato di inversione aggiornamento posizione asse X
Segnalazione di aggiornamento posizione asse X invertito:
0: aggiornamento posizione non invertito,
1: aggiornamento posizione invertito
st_accx0Stato di accelerazione asse X
Segnalazione di asse X in fase di accelerazione:
0: asse non in accelerazione,
1: asse in accelerazione
st_decx0Stato di decelerazione asse X
Segnalazione di asse X in fase di decelerazione:
0: asse non in decelerazione,
1: asse in decelerazione
st_vconstx0Stato di velocità costante asse X
Segnala che il generatore di profilo velocità sta eseguendo un movimento a velocità costante:
0: asse non in velocità costante,
1: asse in velocità costante
st_intx0Attivazione di un ingresso digitale per interruzione asse X
Indica lo stato dell'ingresso digitale per interruzione:
0: ingresso digitale per interruzione disattivo,
1: ingresso digitale per interruzione attivo
st_errorx0Presenza di un errore asse X
Indica lo stato di errore del device, per riconoscere il tipo di errore si deve far riferimento alle variabili errcodex ed errvaluex:
0: errore non presente,
1: errore presente
st_warningx0Presenza di un warning asse X
Indica lo stato di warning del device, per riconoscere il tipo di warning si deve far riferimento alle variabili wrncodex e wrnaluex:
0: warning non presente,
1: warning presente

ATTENZIONE: L'ultima lettera del nome della variabile, prende il valore del nome dell'asse.

Vedi paragrafo Stati Asse X

Vedi paragrafo Stati Asse X

NomeCondizioneDescrizione
INITst_init=0Inizializzazione del device
Comando di inizializzazione del device.
Se il device non è inizializzato non vengono eseguiti i calcoli relativi all'asse e quindi rimane inattivo. Attiva lo stato st_init.
RSERR-Reset dello stato di errore
Azzera lo stato st_error.
RSWRN-Reset dello stato di warning
Azzera lo stato st_warning.
READSTEP-Lettura dei passi
Consente la lettura dei passi numstep a partire dal passo selezionato in stepin.
:info::Nota:
La memoria passi non è ritentiva
WRITESTEP-
  • Ultima modifica: 2020/07/13 15:14