Regole generali per i blocchi funzione di controllo movimento
Le regole generali per i Istruzioni movimento configurazione Micro800 seguono le specifiche di controllo movimento PLCopen.
La regola si applica a | Regola |
|---|---|
Parametri di ingresso | Con Execute: i parametri vengono utilizzati con il fronte di salita dell'input di esecuzione. Per modificare i parametri, cambiare i parametri di input e attivare o disattivare il movimento. se un'istanza di un blocco funzione riceve un nuovo comando Esegui prima del completamento (con una serie di comandi sulla stessa istanza), il nuovo comando Esegui viene ignorato e continua l'esecuzione dell'istruzione precedente. Con Enable: i parametri vengono utilizzati con il fronte di salita dell'input di abilitazione e possono essere modificati continuamente. |
Parametri di input mancanti | Gli input mancanti verranno catturati durante la compilazione dell'applicazione utente. A livello di controllore la gestione degli errori di input mancanti non avviene. |
Input che superano i limiti dell'applicazione | Se un blocco funzione riceve i comandi mediante parametri che provocano la violazione dei limiti dell'applicazione, l'istanza del blocco funzione genera un errore. In tal caso, viene contrassegnata la presenza di un errore, le cui informazioni verranno indicate dall'ID dell'errore di uscita. Nella gran parte dei casi il controllore rimane in modalità esecuzione e non vengono riportati errori gravi per il controllore. |
Regole del segno per gli input | Gli input di accelerazione, decelerazione e strappo sono sempre valori positivi. Input di velocità, posizione e distanza possono avere valori positivi e negativi. |
Posizione e distanza | Il valore di posizione è definito in un sistema di coordinate. La distanza è una misura relativa rapportata alle unità tecniche. La distanza è la differenza tra due posizioni. |
Input di posizione/distanza | I controllori Micro800 supportano solo il movimento lineare. Per il blocco funzione MC_MoveAbsolute, l'input di posizione rappresenta la posizione assoluta per i comandi sugli assi. Per MC_MoveRelative, l'input di distanza rappresenta la collocazione relativa (considerando la posizione attuale dell'asse come 0) rispetto alla posizione attuale. |
Input di velocità | La velocità può essere un valore con segno, tuttavia è possibile utilizzare l'input di direzione per definire il segno della velocità (velocità negativa x direzione negativa = velocità positiva). La "direzione" del parametro E si riferisce all'ingresso e all'uscita di velocità per motivi di compatibilità. |
Input di direzione | Per il movimento di distanza (posizione), per cui è definita la posizione di destinazione (assoluta o relativa), la direzione di movimento è univoca. L'input di direzione per il movimento di distanza viene ignorato. Per il movimento di velocità, il valore dell'ingresso di direzione può essere 1 (direzione positiva), 0 (direzione attuale) o -1 (direzione negativa). Per gli altri valori, viene preso in considerazione solo il segno. Ad esempio, -3 indica una direzione negativa, +2 una direzione positiva e così via. Per il movimento di velocità (MC_MoveVelocity), il segno (velocità x direzione) determina la direzione effettiva del movimento se il valore è diverso da 0. Ad esempio, se velocità x direzione = +300, la direzione è positiva. |
Input di accelerazione, decelerazione e Jerk |
|
Esclusività dell'output | Con Execute: quando Execute è TRUE, anche uno degli output Busy, Done, Error o CommandAborted deve essere TRUE. Le uscite si escludono a vicenda: su un blocco funzione solo una di esse può essere TRUE. È impostata solo uno degli output Active, Error, Done e CommandAborted per volta. Con Enable: gli output Valid ed Error si escludono a vicenda: su un blocco funzione solo una di esse può essere TRUE. |
Stato output | Con Execute: gli output Done, Error, ErrorID e CommandAborted sono reimpostati con il fronte di discesa dell'istruzione Execute. Tuttavia, il fronte di discesa di Execute non arresta né influisce sull'esecuzione del blocco funzione effettivo. Anche se Execute viene reimpostata prima che il blocco funzione sia completato, gli output corrispondenti sono impostati per almeno un ciclo. Se un'istanza di un blocco funzione riceve un nuovo comando Execute prima del completamento (con una serie di comandi sulla stessa istanza), il nuovo comando Execute viene ignorato e continua l'esecuzione dell'istruzione precedente. Con Enable: gli output Valid, Enabled, Busy, Error ed ErrorID vengono reimpostati appena possibile con il fronte di discesa di Enable. |
Comportamento con l'output Done | L'output Done viene impostato quando viene completata l'azione comandata. Quando sono in funzione più blocchi funzione in sequenza sullo stesso asse, si verifica quanto segue: Quando un movimento su un asse viene interrotto con un altro movimento sullo stesso asse, senza aver raggiunto l'obiettivo finale, sul primo blocco funzione non viene impostato Done. |
Comportamento dell'uscita Busy | Ciascun blocco funzione può avere un output Busy, che indica che il blocco funzione non è ancora terminato (per i blocchi funzione con un input Execute) o che non è in funzione ed è possibile aspettarsi nuovi valori di output (nel caso di input Enable). L'output Busy è impostato sul fronte di salita di Execute e viene reimpostato quando si imposta uno degli output Done, Aborted o Error. Si consiglia di tenere questo blocco funzione nel loop attivo del programma dell'applicazione almeno finché Busy è TRUE, dato che le uscite possono ancora cambiare. I blocchi funzione con la stessa istanza di quelli busy non possono essere eseguiti finché sono busy. I blocchi funzione con istanze diverse possono eseguire l'override del blocco funzione in esecuzione. |
Comportamento dell'uscita CommandAborted | L'output CommandAborted viene impostato quando un movimento impartito viene interrotto da un altro comando di movimento. Il comportamento di reimpostazione di CommandAborted è simile a quello dell'output Done. Quando si verifica un CommandAborted, gli altri segnali di output quali InVelocity vengono reimpostati. |
Output Active | L'output Active è necessario per i blocchi funzione in buffer, e viene impostato nel momento in cui il blocco funzione prende il controllo movimento dell'asse corrispondente. Per la modalità senza buffer, gli output Active e Busy possono avere lo stesso valore. |
Stati Enable e Valid | L'input Enable è associato a un output Valid. Enable è sensibile al livello, Valid invece mostra che è disponibile un gruppo di output validi sul blocco funzione. L'output Valid è TRUE finché è disponibile un valore di output valido e l'input Enable è TRUE. Il relativo valore di output può essere aggiornato fino a quando l'input Enable è TRUE. Se si verifica un errore del blocco funzione, l'uscita non è valida (Valid impostato su FALSE). Quando la condizione di errore scompare, i valori ricompaiono e l'uscita Valid viene impostata di nuovo. |
Gestione errori di uscita | Uscite utilizzate per definire gli errori: Tutti i blocchi hanno le due uscite descritte di seguito, le quali gestiscono gli errori che potrebbero verificarsi durante l'esecuzione:
gli output Done e InVelocity servono per il completamento senza errori, pertanto dal punto di vista logico escludono Error. Gli errori delle istanze non sempre danno luogo a errori di assi (causando un Arresto errore dell'asse). |
Come ripristinare le uscite degli errori:
| |
Tipi di errori:
| |
Convenzioni per la denominazione dei tipi ENUM | A causa dei limiti nella denominazione previsti dallo standard IEC relativo alla univocità dei nomi delle variabili, per gli ENUM viene utilizzato il riferimento 'mc' allo spazio dei nomi per il controllo movimento PLCopen. In tal modo si evita il conflitto derivante dall'utilizzo dei tipi ENUM "positive" e "negative" per istanze con variabili con tali nomi per tutto il resto del progetto, dato che vengono denominate rispettivamente mcPositive e mcNegative. |
Fornire un feedback