Modalità Buffer

Descrizione

Alcuni dei blocchi funzione di movimento hanno un ingresso chiamato BufferMode. Con questo ingresso, il blocco funzione può avviarsi immediatamente, avviarsi in occasione di un evento Probe, oppure essere bufferizzato.

Le opzioni disponibili sono definite nella enumerazione di tipo MC_BUFFER_MODE:

oUn movimento di interruzione in corso (mcAborting) si avvia immediatamente, interrompendo ogni movimento in esecuzione e cancellando la coda dei movimenti.

oUn movimento bufferizzato (mcBuffered, mcBlendingPrevious, seBufferedDelay) viene messo in coda, ossia aggiunto a qualsiasi movimento in fase di esecuzione o in attesa di esecuzione, e si avvia non appena viene completato il movimento precedente.

oUn movimento di evento (seTrigger) è un movimento bufferizzato che si avvia all'evento Probe.

Diagramma della coda di movimenti

La figura mostra il diagramma della coda di movimenti:

G-SE-0028311.1.gif-high.gif

 

 

Il buffer può contenere soltanto un blocco funzione di movimento.

La condizione di esecuzione del blocco funzione di movimento presente nel buffer è la seguente:

omcBuffered: quando il movimento continuo corrente è InVelocity, risp. quando il movimento discreto corrente si arresta.

oseBufferedDelay: quando il ritardo specificato è trascorso o il movimento continuo corrente è InVelocity, o il movimento discreto corrente si arresta.

omcBlendingPrevious: quando vengono raggiunte le destinazioni di posizione e velocità del blocco funzione corrente.

oseTrigger: quando viene rilevato un evento valido sull'ingresso Probe.

La coda dei movimenti viene cancellata (tutti i movimenti bufferizzati vengono eliminati):

oQuando viene attivato un movimento di interruzione in corso (mcAborting): il pin CommandAborted è impostato sui blocchi funzione bufferizzati.

oQuando viene eseguita una funzione MC_Stop_PTO: il pin Error viene impostato sui blocchi funzione bufferizzati cancellati, con ErrorId=StoppingActive.

oQuando viene rilevata una transizione allo stato ErrorStop: il pin Error viene impostato sui blocchi funzione bufferizzati, con ErrorId=ErrorStopActive.

NOTA:

oÈ possibile mettere in coda solo un movimento valido. Se l'esecuzione del blocco funzione termina con l'uscita Error impostata, il movimento non viene messo in coda, nessun movimento in esecuzione ne viene influenzato e la coda non viene cancellata.

oSe la coda è già piena, l'uscita Error viene impostata sul blocco funzione appropriato e l'uscita ErrorId restituisce l'errore MotionQueueFull.