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.
Regole generali per i blocchi funzione di controllo movimento
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
  • Gli ingressi di accelerazione e decelerazione devono avere un valore positivo. Se decelerazione o accelerazione sono impostati con un valore non positivo, il blocco funzione riporterà un errore (ID errore: MC_FB_ERR_RANGE).
  • L'ingresso del jerk deve avere un valore non negativo. Se lo strappo è impostato a un valore negativo, il blocco funzione riporterà un errore (ID errore: MC_FB_ERR_RANGE).
  • Se il jerk massimo è configurato su zero, tutti i parametri del jerk per il blocco funzione del controllo movimento, inclusa l'impostazione jerk per MC_Stop, devono essere configurati su 0. In caso contrario, il blocco funzione riporterà un errore (ID errore: MC_FB_ERR_RANGE).
  • Se il jerk è impostato su un valore diverso da zero, viene generato un profilo di formato curva a S, mentre se il jerk è impostato su 0, viene generato un profilo trapezoidale.
  • La configurazione di jerk iniziale non è limitata alla configurazione di jerk massimo.
  • Se il motore movimento non riesce a generare il profilo di movimento stabilito dai parametri di ingresso dinamici, il blocco funzione riporta un errore (ID errore: MC_FB_ERR_PROFILE).
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:
  • Errore: il fronte di salita di "Errore" informa che si è verificato un errore durante l'esecuzione del blocco funzione.
  • ErrorID: numero dell'errore.
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:
  • Le uscite degli errori che riguardano importanti blocchi funzione vengono reimpostate con fronte di discesa Execute ed Enable.
  • Le uscite degli errori dei blocchi funzione con Enable possono essere reimpostate durante il funzionamento, senza dover reimpostare Enable.
Tipi di errori:
  • Logica dei blocchi funzione (ad esempio, parametri fuori intervallo, tentativi di violazione dello stato e così via)
  • Limite HW o SW
  • Meccanismo/Motore
  • Convertitore
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
Hai domande o feedback su questa documentazione? invia il tuo feedback qui.
Normal