MDO_P1P20F - 023 : Manuale dell'operatore
1. Informazioni
1.1 Release
Il presente documento è valido integralmente salvo errori od omissioni.
![]() |
|||
Documento: | mdo_p1p20f-023 | ||
---|---|---|---|
Descrizione: | Manuale operatore p1p20f-023 | ||
Redattore: | Omar Sbalchiero | ||
Approvatore | Gabriele Bazzi | ||
Link: | https://www.qem.eu/doku/doku.php/strumenti/qmoveplus/j1p20/p1p20f-023/mdo_p1p20f-023 | ||
Lingua: | Italiano | ||
Release documento | Descrizione | Note | Data |
01 | Nuovo manuale | 18/05/2021 |
1.1.1 Specificazioni
I diritti d'autore di questo manuale sono riservati. Nessuna parte di questo documento, può essere copiata o riprodotta in qualsiasi forma senza la preventiva autorizzazione scritta della QEM.
QEM non presenta assicurazioni o garanzie sui contenuti e specificatamente declina ogni responsabilità inerente alle garanzie di idoneità per qualsiasi scopo particolare. Le informazioni in questo documento sono soggette a modifica senza preavviso. QEM non si assume alcuna responsabilità per qualsiasi errore che può apparire in questo documento.
Marchi registrati :
-
QEM® è un marchio registrato.
2. Descrizione
La applicazione P1P20F - 023 è realizzata per permettere la programmazione di sequenze di posizionamenti di una coppia di assi.
Sono disponibili per la programmazione più di 50 istruzioni elementari e di facile comprensione. La composizione delle sequenze e la scelta delle istruzioni è realizzabile tramite il terminale operatore attraverso alcune pagine di selezione. Di seguito riportiamo le caratteristiche principali del software.
Tipi di comando:
-
Comandi relativi al posizionamento degli assi.
-
Comandi relativi al settaggio delle uscite.
-
Comandi relativi all'attesa del verificarsi di un evento.
-
Comandi relativi alla gestione dei passi della sequenza.
-
Comandi relativi ad operazioni su variabili.
3. Start-Up
3.1 Logo
3.2 Homing
Per avviare la procedura di homing è necessario :
-
che non ci siano allarmi,
-
che lo stato macchina sia in MANUALE
-
premendo il selettore di START.
4. Pagina Principale
4.1 Manuale
4.2 Automatico
4.3 Descrizione dei pulsanti
![]() | Sezione Pagina Allarmi |
![]() | Sezione di diagnostica I/O |
![]() | Sezione Programmi di Lavoro |
![]() | Sezione procedura di Homing |
![]() | Abilitazione sequenza a “Step” |
![]() | Sezione Dati Macchina |
5. Stati macchina
6. Tasti Funzione e Led
Tasto | Icona | Funzione | Led | Tasto | Icona | Funzione | Led |
---|---|---|---|---|---|---|---|
F1 | ![]() | Manuale | - | F6 | ![]() | Pagina allarmi | - |
F2 | ![]() | Automatico | - | F7 | ![]() | Pagina precedente | - |
F3 | ![]() | Homing | - | - | - | - | - |
7. Utilizzo
7.1 Programmazione
E' possibile accedere alla sezione dei programmi di lavoro solo se non è in esecuzione un programma.
Per accedere alla sezione dei programmi di lavoro, premere il tasto
Alla pagina di programmazione è possibile avere accesso solamente quando lo stato macchina non è in automatico ON.
La pagina di programmazione permette di compilare una sequenza di istruzioni e di salvarla in una determinata zona della memoria.
Descrizione dei vari campi:
Per i valori inseriti in sequenza esiste una procedura di verifica per controllare non ci siano errori in compilazione; questa procedura viene eseguita ogni volta che si utilizzano i tasti di scorrimento dei passi e ogni volta che una azione comporta il passaggio ad una diversa schermata sul display. Se la verifica rileva degli errori, viene visualizzata sulla barra in alto, a fianco del simbolo dello stato della macchina, una bandierina gialla . Toccando questo simbolo si ha accesso ad una pagina di messaggistica, la quale mostra l'errore che ha generato questa anomalia.
7.1.1 Libreria delle istruzioni
Tramite il tasto si accede a questa serie di pagine relative alla selezione del comando da inserire in sequenza sul passo selezionato.
Le istruzioni disponibili sono suddivise in 5 categorie. Tramite i tasti e
è possibile scorrere queste diverse schermate, e toccando su una istruzione si ritorna direttamente sulla pagina di programmazione, inserendo l'istruzione scelta sul passo corrente.
Il significato di tutte le istruzioni verrà descritto nel prossimo capitolo.
7.1.2 Copia di una sequenza
Tramite il tasto si accede alla pagina che permette di copiare interamente una sequenza da una zona di memoria ad un'altra.
Premendo si conferma la copia della sequenza.
Se l'indice selezionato come sequenza di destinazione rappresenta una sequenza già esistente in memoria, viene mostrato un messaggio di allerta riguardo a questa condizione.
7.1.3 Cancellazione di una sequenza
Tramite il tasto si accede alla pagina che permette di cancellare interamente una sequenza da una zona di memoria.
Premendo si conferma la cancellazione della sequenza.
7.1.4 Anomalie sulla sequenza
Tramite il simbolo si accede alla pagina che raccoglie tutti i messaggi riguardanti errori e segnalazioni sull'inserimento di istruzioni in una sequenza.
Per ogni anomalia viene assegnata una data e un'ora, un indice di errore e su par1 viene visualizzato l'eventuale passo dove si è verificato.
I messaggi visualizzati sono:
VELX:E' stata impostata una vel. nulla | Su comando VELX non è stata assegnata nessun valore di velocità. |
VELY:E' stata impostata una vel. nulla | Su comando VELY non è stata assegnata nessun valore di velocità. |
CALL: Funzione non esistente | Su comando CALL, il valore inserito non rappresenta nessuna funzione. |
GOTO: Passo non esistente | Su comando GOTO, il valore inserito è un indice rappresentante nessuna istruzione. |
JMPSUB: programma non esistente | Su comando JMPSUB, il valore inserito è un indice rappresentante una sequenza inesistente. |
JMPPRG: programma non esistente | Su comando JMPPRG, il valore inserito è un indice rappresentante una sequenza inesistente. |
Ingresso non programmabile | Su comando WAITIS, WAITID, WAITION, WAITIOFF, IFION, IFIOFF il valore inserito è un indice rappresentante un ingresso non programmabile. |
Uscita non programmabile | Su comando ON, OFF, TON, TOFF, BLINK il valore inserito è un indice rappresentante una uscita non programmabile. |
Registro inesistente | Su comando XN, YN, XYN, XYNI, ASSQX, ASSQY, SOMMAVX, SOMMAVY il valore inserito è un indice rappresentante un registro di variabili non esistente |
Variabile locale inesistente | Su comando IFEQ, ASSV, SOMMA, SOMMAVX, SOMMAVY il valore inserito è un indice rappresentante una variabile non esistente. |
Eseguire la procedura di HOMING | Questo messaggio non riguarda alcuna istruzione. Viene visualizzato quando si cerca di avviare una sequenza, senza aver fatto ancora la procedura di HOMING |
Le azioni possibili sono:
![]() | Se premuto per più di un secondo, questo tasto permette di eliminare tutte le segnalazioni registrate. |
![]() ![]() | Permettono di scorrere le anomalie registrate nelle diverse pagine. |
7.2 Dati macchina
In questa pagina vengono visualizzate tutte e 5 le variabili locali di appoggio alla sequenza in corso.
Il tasto permette di accedere all'area tecnica di configurazione della macchina tramite una password
7.3 Allarmi
Tramite il tasto , il simbolo
oppure il tasto funzione
si accede alla pagina che visualizza la lista di allarmi attuali.
Per ogni allarme viene assegnata una data e un'ora, un indice di errore e due parametri per eventualmente specificare nel dettaglio l'anomalia visualizzata.
Gli allarmi che si possono verificare sono:
Finecorsa HW massimo X | Superato il finecorsa hardware di corsa massima per l’asse X. |
Finecorsa HW minimo X | Superato il finecorsa hardware di corsa minima per l’asse X. |
Finecorsa HW massimo Y | Superato il finecorsa hardware di corsa massima per l’asse Y. |
Finecorsa HW minimo Y | Superato il finecorsa hardware di corsa minima per l’asse Y. |
Emergenza manuale | Mancanza dell'ingresso di emergenza. |
Errore di inseguimento X | L’asse X ha avuto un errore di inseguimento (foller) superiore al maxfoller. Possibile fuga dell’asse. |
Errore di inseguimento Y | L’asse Y ha avuto un errore di inseguimento (foller) superiore al maxfoller. Possibile fuga dell’asse. |
Passo non eseguibile | Tentativo di eseguire un passo non programmato correttamente. Su par1 viene visualizzato l'indice di sequenza in errore. Su par2 viene visualizzato l'indice del passo in errore. |
Le azioni possibili sono:
7.3.1 Storico degli allarmi
In questa pagina vengono archiviati tutti gli allarmi che si sono verificati nel funzionamento della macchina.
Le azioni possibili sono:
![]() | Se premuto per più di un secondo, elimina tutte le segnalazioni dallo storico. |
![]() ![]() | Permettono di scorrere le segnalazioni presenti nelle diverse pagine. |
7.4 Diagnostica
Per accedere alla diagnostica, dalla pagina di Principale premere il tasto
Viene visualizzata la seguente pagina:
Da questa pagina è possibile accedere alle varie sezioni di diagnostica presenti:
Per tornare alla Pagina Principale premere il tasto
7.4.1 Ingressi digitali
Per accedere alla pagina di diagnostica degli Ingressi Digitali, premere il tasto
Viene visualizzata la seguente pagina:
7.4.2 Uscite digitali
Per accedere alla pagina di diagnostica delle Uscite Digitali, premere il tasto
Viene visualizzata la seguente pagina:
Forzatura delle uscite
Per accedere alla funzione di forzatura delle uscite:
-
Premere sull'uscita per attivarla. Ripremere per disattivarla.
-
All'uscita dalla pagina la funzione si disattiva automaticamente.
7.4.3 Conteggi
Per accedere alla pagina di diagnostica dei Conteggi, premere il tasto
Viene visualizzata la seguente pagina:
Viene visualizzato per ogni asse il conteggio in impulsi encoder.
In piccolo viene inoltre visualizzato il valore del conteggio in unità di misura, e sulla destra vengono visualizzati i registri relativi ai valori istantanei di feed-forward, parte proporzionale, parte integrale ed errore di inseguimento.
7.4.4 Uscite analogiche
Per accedere alla pagina di diagnostica delle Uscite analogiche, premere il tasto
Viene visualizzata la seguente pagina:
Viene visualizzato per ogni asse il valore della tensione in uscita, espressa in decimi di Volts.
Per tornare al menù di DIAGNOSTICA premere il tasto
8. Istruzioni programmabili
A seguire vengono descritte tutte le istruzioni utilizzabili in sequenza.
La colonna T prende i seguenti significati:
-
M : istruzione di tipo “modale” (valida dal passo in cui è inserita per tutto il resto della sequenza).
-
S : istruzione di tipo “singolo” (valida nel solo passo in cui è inserita).
8.1 Posizionamento degli assi
I posizionamenti degli assi vengono eseguiti tramite un profilo trapezoidale con una fase di accelerazione lineare, una fase a velocità costante e una fase di decelerazione lineare.
Le istruzioni per il posizionamento degli assi si dividono in:
-
Posizionamenti singoli (X, XN, Y, YN).
-
Posizionamenti multipli (XY, XYN, XYI, XYIN).
8.1.1 Posizionamenti singoli
I posizionamenti singoli consistono nel posizionare un asse singolo (X o Y) alla quota specificata nel passo programmato oppure alla quota contenuta nel registro con indice specificato. La velocità di posizionamento per default è quella massima dell’asse in questione.
8.1.2 Posizionamenti multipli
I posizionamenti multipli si suddividono in:
-
Posizionamenti multipli contemporanei (XY, XYN);
-
Posizionamenti multipli interpolati (XYI, XYIN).
Nei posizionamenti multipli gli assi partono dalla posizione in cui si trovano e raggiungono la posizione con coordinate specificate come argomento. Tali coordinate possono essere espresse direttamente come valore oppure possono essere contenute in uno dei registri predisposti per ogni asse.
I posizionamenti multipli contemporanei vengono realizzati muovendo alla massima velocità l’asse che deve compiere più spazio, mentre l’asse che deve compiere meno spazio si adegua posizionandosi con una velocità inferiore. In tal modo il posizionamento dei due assi si conclude in modo quasi contemporaneo. Si dice “quasi” dato che non si tiene conto della parte di accelerazione e di decelerazione e quindi il posizionamento risultante può non risultare perfettamente rettilineo tra il punto di partenza e il punto di arrivo (vedi figura di esempio). La velocità di posizionamento per default è quella massima.
I posizionamenti multipli interpolati vengono realizzati calcolando le velocità da assegnare ai due assi in modo che la velocità di posizionamento risultante di un ipotetico utensile vincolato ai due assi sia quella specificata tramite l’istruzione VELXYI. Se non viene specificata la velocità di interpolazione, per default si utilizza la velocità minima tra le due velocità massime degli assi. In questo posizionamento viene tenuto conto anche delle fasi di accelerazione e di decelerazione del posizionamento.
Queste due fasi vengono modificate in modo che entrambi gli assi concludano la accelerazione (o decelerazione) nello stesso istante. In questo modo la traiettoria tra punto di partenza e punto di arrivo risulta essere rettilinea (vedi figura).
8.2 Settaggio delle uscite
8.3 Attese di eventi
8.4 Gestione sequenza passi
Nelle figure seguenti riportiamo una esemplificazione grafica delle due istruzioni “JMPSUB n” e “JMPPRG n”.
Una sequenza può essere richiamata con JMPSUB da un’altra sequenza ed essa a sua volta può richiamarne un’altra. Questo annidamento non è infinito ma può essere ripetuto per un massimo di 5 volte.
8.5 Gestione delle variabili
Per ogni asse sono disponibili 100 “registri”, cioè 100 celle di memoria utilizzate unicamente per contenere quote a cui posizionare gli assi. Ogni registro viene individuato nel passo attraverso il suo indice (da 1 a 100, quindi). Per ogni sequenza programmata inoltre sono disponibili 5 “variabili locali” utilizzate per contenere dei valori utili, tipo conta-pezzi. Si può far riferimento a una di queste variabili locali attraverso il suo indice (da 1 a 5).
Per assegnare un valore ad un registro si utilizzano le istruzioni:
-
ASSQX 1, 123.45 : che assegna il valore 123.45 al registro 1 per l’asse X
-
ASSQY 1, 123.45 : che assegna il valore 123.45 al registro 1 per l’asse Y
Per assegnare un valore ad una variabile locale si utilizza l’istruzione:
-
ASSV 1, 123 : che assegna il valore intero 123 alla prima variabile locale.
9. Esempi di programmazione
9.1 Esempio 1: Generico
Riportiamo una sequenza programmata in cui viene ripetuta una serie di posizionameni e di settaggi di uscite per un numero di 5 volte impostato nella prima variabile locale:
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | ASSV | 1, 4 | V1 = 4 |
2 | XY | 0.0, 0.0 | Start di X e Y a 0, 0 |
3 | XY | 100.0, 50.0 | Start di XY a 100, 50 |
4 | ON | 1 | Attiva uscita “scendipinza” |
5 | WAITIS | 1 | Attende fronte di salita ing. “pinza scesa” |
6 | ON | 2 | Attiva uscita “chiudipinza” |
7 | WAITIS | 2 | Attende fronte di salita ing. “pinza chiusa” |
8 | X | 50.0 | Start di X a 50 |
9 | NOWAITSXY | Disabilita attesa posizionamenti | |
10 | WAITX< | 75.0 | Attesa quota di X < 75 |
11 | Y | 90.0 | Start di Y a 90” |
12 | WAITSXY | Riabilita attesa posizionamenti | |
13 | OFF | 2 | Disattiva uscita “chiudipinza” |
14 | WAITIOFF | 2 | Attende stato OFF dell'ing. “pinza chiusa” |
15 | OFF | 1 | Disattiva uscita “scendipinza” |
16 | WAITOFF | 1 | Attende stato OFF dell'ing. “pinza scesa” |
17 | SOMMA | 1, -1 | Somma -1 a V1 (Sottrae 1 a V1) |
18 | IFEQ | 1, 1, 20 | Se V1 è uguale a 1 salta al passo 20 |
19 | GOTO | 2 | altrimenti salta al passo 2 |
20 | END | Fine sequenza |
9.2 Esempio 2: Registri
Questo esempio esegue sempre dei posizionamenti, ma utilizzando i registri per gli assi X e Y.
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | ASSV | 1, 0 | V1 = 0 |
2 | ASSQX | 1, 4000.0 | RX[1] = 4000 , registro delle X con indice 1 |
3 | ASSV | 2, 1 | V2 = 1 , salvo su V2 l'indice del registro asse X |
4 | ASSQY | 2, 2000.0 | RX[2] = 2000 , registro delle Y con indice 2 |
5 | ASSV | 3, 2 | V3 = 2 , salvo su V3 l'indice del registro asse Y |
6 | ASSV | 4, -2000 | V4 = -2000 |
7 | ASSV | 5, -1000 | V5 = -1000 |
8 | VELXYI | 100000 | Imposta la velocità per movimenti interpolati a 100000 |
9 | XYI | 0.0, 0.0 | Start di X e Y a 0, 0 in modo interpolato |
10 | TON | 1, 1000 | Attiva uscita 1 dopo un secondo |
11 | XN | 2 | Start di X a registro asse X con indice V2 (RX[V2]) |
12 | YN | 3 | Start di Y a registro asse Y con indice V3 (RY[V3]) |
13 | TOFF | 1, 500 | Disattiva uscita 1 dopo 500 ms |
14 | SOMMA | 1, 1 | Incrementa di 1 il valore in V1 |
15 | SOMMAVX | 4, 1 | Somma il valore in V4 (-200.0) al registro asse X con indice 1 (RX[1]). Decrementa ogni volta di 200 la quota obiettivo. |
16 | SOMMAVY | 5, 2 | Somma il valore in V5 (-100.0) al registro asse Y con indice 2 (RX[2]). Decrementa ogni volta di 100 la quota obiettivo. |
17 | WAITIT | 5000 | Attende un tempo di 5 |
18 | IFEQ | 1, 5, 20 | Se V1 è uguale a 5 salta al passo 20 |
19 | GOTO | 9 | altrimenti salta al passo 9 |
20 | END | Fine sequenza |
Il vantaggio di usare i registri, è dato dal fatto che è possibile compilare una serie di quote obiettivo al loro interno e scorrere queste attraverso il semplice incremento di variabili locali, usate in questo caso come indice di registro.
9.3 Esempio 3: Attesa posizionamenti
In questo esempio viene riproposto il funzionamento delle attese dei posizionamenti.
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | VELX% | 20 | Imposta la velocità dell'asse X al 20% |
2 | VELY% | 20 | Imposta la velocità dell'asse Y al 20% |
3 | XY | 0.0, 0.0 | Start di X e Y a 0, 0 |
4 | NOWAITSXY | Disabilita attesa posizionamenti | |
5 | X | 5000.0 | Start di X a 5000 |
6 | WAITX> | 2000.0 | Attesa quota di X > 2000 |
7 | Y | 3000.0 | Start di Y a 3000 |
8 | WAITY | Attende che Y sia arrivato a 3000 | |
9 | Y | -2000.0 | Start di Y a -2000 |
10 | WAITY< | 1000 | Attesa quota di Y < 1000 |
11 | WAITSX | Abilita attesa posizionamenti per asse X | |
12 | X | -1000 | Start di X a -1000 |
13 | WAITSY | Abilita attesa posizionamenti per asse Y | |
14 | GOTO | 3 | Salta al passo 3 |
Da notare che se abbiamo disattivato l'attesa del posizionamento, e vogliamo che un posizionamento sia invece completato abbiamo 2 modalità per farlo:
-
Inserire WAITX o WAITY, nell'istruzione successiva al posizionamento.
In questo caso l'attesa viene controllata solo per questa istruzione. -
Inserire WAITSX, WAITSY o WAITSXY, nell'istruzione precedente al posizionamento.
Questa modalità invece disattiva l'attesa anche per le istruzioni a seguire.
9.4 Esempio 4: JMPSUB
Questo ultimo esempio vuole infine dare una descrizione della istruzione di JMPSUB.
PROGRAMMA 10
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | VELX% | 50 | Imposta la velocità dell'asse X al 50% |
2 | VELY% | 50 | Imposta la velocità dell'asse Y al 50% |
3 | VELXYI | 60000 | Imposta la velocità per movimenti interpolati a 60000 |
4 | WAITSXY | Abilita attesa posizionamenti | |
5 | JMPSUB | 12 | Salta al programma 12 |
6 | GOTO | 4 | Salta al passo 4 |
PROGRAMMA 11
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | NOWAITSXY | Disabilita attesa posizionamenti | |
2 | JMPSUB | 13 | Salta al programma 13 |
PROGRAMMA 12
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | XYI | 0.0, 0.0 | Start di X e Y a 0, 0 in modo interpolato |
2 | X | 1000.0 | Start di X a 1000 |
3 | Y | 1000.0 | Start di Y a 1000 |
4 | JMPSUB | 11 | Salta al programma 11 |
PROGRAMMA 13
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | X | 5000.0 | Start di X a 5000 |
2 | WAITX> | 3000.0 | Attesa quota di X > 3000 |
3 | Y | 5000.0 | Start di Y a 5000 |
4 | WAITY | Attende che Y sia arrivato a 5000 |
Il programma 10 è quello principale e viene utilizzato per inizializzare le velocità e per l'attivazione dell'attesa posizionamenti.
Il programma 10 va poi a chiamare il programma 12, il quale esegue una serie di posizionamenti con attesa.
Il programma 12 va poi a chiamare il programma 11, il quale disattiva l'attesa posizionamenti.
Il programma 11 va poi a chiamare il programma 13, il quale esegue dei posizionamenti senza attesa e attende che Y sia fermo.
A questo punto il programma 13 termina e torna sul 11 e poi 12, i quali terminano a loro volta. Si ritorna infine al programma 10 il quale esegue un salto a un passo precedente (di riattivazione attesa posizionamenti) e tutto riparte nuovamente.
10. Assistenza
Per poterti fornire un servizio rapido, al minimo costo, abbiamo bisogno del tuo aiuto.
![]() | ![]() |
Segui tutte le istruzioni fornite nel manuale MIMAT | Se il problema persiste, compila il “Modulo richiesta assistenza” nella pagina Contatti del sito www.qem.it. I nostri tecnici otterranno gli elementi essenziali per comprendere il tuo problema. |
Riparazione
Per poterVi fornire un servizio efficente, Vi preghiamo di leggere e attenerVi alle indicazioni qui riportate
Spedizione
Si consiglia di imballare lo strumento con materiali in grado di assorbire eventuali cadute.
![]() | ![]() | ![]() |
Utilizzare l'imballo originale: deve proteggere lo strumento durante il trasporto. | Allega: 1. Una descrizione dell'anomalia; 2. Parte dello schema elettrico in cui è inserito lo strumento 3. Programmazione dello strumento (setup, quote di lavoro, parametri…). | Una descrizione approfondita del problema ci consentirà di identificare e risolvere rapidamente il tuo problema. Un accurato imballaggio eviterà ulteriori inconvenienti. |