MC_CustomJob

Descrizione funzionale

Questo blocco funzione consente di controllare un asse da un algoritmo personalizzato che calcola posizione, velocità e accelerazione dell'asse impostate ciclicamente.

Il blocco funzione creato per programmare un profilo di movimento deve estendere FB_CustomJobBase della libreria MotionInterface. Il blocco funzione viene quindi fornito all'ingresso CustomJob.

Rappresentazione grafica

Ingressi

Ingresso

Tipo di dati

Descrizione

Master

Axis_Ref

Riferimento all'asse per cui deve essere eseguito il blocco funzione.

Può essere lasciato non assegnato se il job personalizzato (fornito all'ingresso CustomJob) non utilizza un asse master.

Se viene assegnato un asse, il callback al blocco funzione utente per definire il profilo di movimento ottiene i valori di movimento dell'asse master. In alternativa, i valori di movimento dell'asse master vengono forniti come zero.

Axis

Axis_Ref

Riferimento all'asse per cui deve essere eseguito il blocco funzione.

Execute

BOOL

Campo valori: FALSE, TRUE.

Valore predefinito: FALSE.

Un fronte di salita dell'ingresso Execute avvia il blocco funzione. Il blocco funzione continua a essere eseguito e l'uscita Busy è impostata a TRUE.

È possibile riavviare questo blocco funzione durante l'esecuzione. I valori di destinazione vengono sovrascritti dai nuovi valori nel momento in cui si verifica il fronte di salita.

BufferMode

MC_Buffer_Mode

I valori di destinazione (posizione, velocità, accelerazione) dell'asse vengono sovrascritti dai nuovi valori nel ciclo del task di movimento quando il blocco funzione diventa attivo sull'asse.

Valore predefinito: Aborting

Modo buffer.

Valori possibili:

  • Valore Aborting

  • Valore Buffered

Per una descrizione dei valori, vedere MC_Buffer_Mode.

OperationMode

MC_OperationMode

Modo operativo per blocco funzione

Valore predefinito: Position

CustomJob

MOIN.FB_CustomJobBase

Un'istanza di un tipo di blocco funzione creato dall'utente che deve essere derivata da FB_CustomJobBase. L'istanza del blocco funzione può essere configurata con parametri aggiuntivi (ad esempio,. posizione di destinazione, velocità, accelerazione, jerk, ecc.) in base ai requisiti dell'algoritmo utilizzato dal job personalizzato.

Sostituire i metodi seguenti:

  • CalculateMovement

  • Prepare

  • ResetJob

Non sostituire gli altri metodi di questo blocco funzione.

Uscite

Uscita

Tipo di dati

Descrizione

InSteadyState

BOOL

Campo valori: FALSE, TRUE.

Valore predefinito: FALSE, come segnalato dal job personalizzato

  • FALSE: lo stato costante non è ancora stato raggiunto o è stato rilevato un errore.

  • TRUE: stato costante raggiunto. In questo modo, il job personalizzato segnala che un job nel buffer può diventare attivo.

Busy

BOOL

Campo valori: FALSE, TRUE.

Valore predefinito: FALSE, come segnalato dal job personalizzato

  • FALSE: il blocco funzione non è in fase di esecuzione.

  • TRUE: il blocco funzione è in fase di esecuzione.

Active

BOOL

Campo valori: FALSE, TRUE.

Valore predefinito: FALSE.

  • FALSE: il blocco funzione non controlla il movimento dell'asse.

  • TRUE: il blocco funzione controlla il movimento dell'asse.

CommandAborted

BOOL

Campo valori: FALSE, TRUE.

Valore predefinito: FALSE.

  • FALSE: l'esecuzione non è stata interrotta.

  • TRUE: l'esecuzione è stata interrotta da un altro blocco funzione.

Error

BOOL

Campo valori: FALSE, TRUE.

Valore predefinito: FALSE.

  • FALSE: il blocco funzione è in esecuzione, nessun errore è stato rilevato durante l'esecuzione.

  • TRUE: è stato rilevato un errore nell'esecuzione del blocco funzione.

ErrorID

ET_Result

Questa enumerazione fornisce informazioni diagnostiche.

Se si utilizza il blocco funzione MC_SetPosition con un blocco funzione MC_CustomJob, si possono verificare salti di posizione se non si considera la posizione di offset nel calcolo della posizione.

 AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Non utilizzare il blocco funzione MC_SetPosition con un blocco funzione MC_CustomJob senza regolare la posizione di offset
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.

Per evitare potenziali salti di posizione, basare il calcolo della posizione dell'asse per il ciclo successivo sull'ultima posizione fisica (secondo Axis.lrPosition) dell'asse, oppure verificare che la posizione di offset sia considerata correttamente nel calcolo della posizione.

Se si utilizza il blocco funzione MC_CustomJob con un asse modulo, la posizione generata tramite il metodo CalculateMovement viene corretta tramite modulo se si verifica un overflow del modulo. Questa correzione si basa sul salvataggio dell'offset modulo in MC_CustomJob. Ciò implica che se il calcolo è basato sull'ultima posizione di riferimento (come per Axis.lrPosition), la posizione per il ciclo successivo deriva della grandezza del salto modulo.

 AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Verificare che tutti gli effetti dei salti modulo siano considerati correttamente nel calcolo della posizione se si utilizza il blocco funzione MC_CustomJob con un asse modulo.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.

Note

Se viene fornito un asse per l'ingresso Master, i nuovi valori di destinazione o di riferimento per l'asse master per il ciclo in tempo reale in esecuzione vengono calcolati prima dell'attivazione di MC_CustomJob. Pertanto, l'implementazione del job personalizzato ottiene valori aggiornati (appena calcolati dal ciclo in tempo reale) dall'asse master quando viene chiamato a calcolare i propri valori per l'asse subordinato.

Se il modo operativo è impostato su Velocity tramite l'ingresso OperationMode e se l'azionamento non è in grado di funzionare nel modo operativo Cyclic Synchronous Velocity, il blocco funzione MC_CustomJob rileva un errore. L'asse non viene interessato.