Tipi di dati specifici della libreria

Tipo di dati Axis_Ref

Il tipo di dati Axis_Ref è un alias dell'interfaccia IF_Axis della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_AxisDirection

Il tipo di dati MC_AxisDirection è un alias dell'enumerazione ET_AxisDirection della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_Buffer_Mode

Il tipo dati definisce il metodo per l'avvio di un movimento nuovo/nel buffer rispetto al movimento continuo.

Nome

Valore

Descrizione

Aborting

0

Il movimento continuo viene interrotto e il nuovo movimento viene eseguito immediatamente nel successivo ciclo in tempo reale possibile.

Buffered

1

Il movimento nuovo/nel buffer viene eseguito non appena il movimento continuo raggiunge lo stato fisso, corrispondente all'uscita del blocco funzione Done, InVelocity, InSync o EndOfProfile, in base al movimento continuo. Il job nel buffer si attiva immediatamente nel ciclo in tempo reale quando il job precedente raggiunge lo stato fisso. Non attende che le uscite diventino TRUE poi nel successivo ciclo del task dell'applicazione.

BlendingLow(1)

2

Il movimento nuovo/nel buffer viene eseguito non appena il movimento continuo termina, ma senza fermo nel mezzo. La transizione avviene con il valore delle due velocità più basso del movimento continuo e del movimento nuovo/nel buffer.

BlendingPrevious(1)

3

Il movimento nuovo/nel buffer viene eseguito non appena il movimento continuo termina, ma senza fermo nel mezzo. La transizione avviene con il valore di velocità del movimento continuo.

BlendingNext(1)

4

Il movimento nuovo/nel buffer viene eseguito non appena il movimento continuo termina, ma senza fermo nel mezzo. La transizione avviene con il valore di velocità del movimento nuovo/nel buffer.

BlendingHigh(1)

5

Il movimento nuovo/nel buffer viene eseguito non appena il movimento continuo termina, ma senza fermo nel mezzo. La transizione avviene con il valore delle due velocità più alto del movimento continuo e del movimento nuovo/nel buffer.

StartAtMasterposition(1)

6

Fornito per buffering di una camma da avviare a una posizione specificata del master tramite MC_CamIn.

(1) Solo per blocchi funzione MC_MoveVelocity, MC_MoveAbsolute, MC_MoveAdditive e MC_MoveRelative

La tabella seguente fornisce dettagli sul funzionamento del buffering (MC_BufferMode.Buffered) per diversi blocchi funzione:

Blocco funzione

Il movimento del blocco funzione può essere specificato come movimento bufferizzato

Il movimento del blocco funzione può essere seguito da un movimento bufferizzato

Condizione affinché il comando in buffer diventi attivo

MC_Power

No

No(1)

-

MC_Power non è un blocco funzione di movimento.

MC_MoveVelocity

InVelocity

MC_MoveAbsolute

Done

MC_MoveAdditive

Done

MC_MoveRelative

Done

MC_Home

No

No

Nessuno

MC_Stop

No

Done e ingresso Execute impostati a FALSE

MC_Halt

Done

MC_CamIn

(1)

EndOfProfile indipendentemente dall'impostazione dell'ingresso Periodic a TRUE o FALSE

MC_GearIn

No

InGear

MC_PhasingAbsolute

No

No

-

MC_MoveSuperImposed

No

No

-

MC_CustomJob

InSteadyState

(1) Differisce dalle specifiche secondo PLCopen Motion Control Part 1, Version 2.0.

Il controller esegue il task dell'applicazione utente (in cui vengono chiamati i blocchi funzione di controllo movimento) in un task separato dal processo di movimento in tempo reale (in cui sono calcolati i valori di destinazione e riferimento ciclici, ad esempio). Per avviare un blocco funzione nello stesso ciclo Sercos in cui il blocco funzione attivo raggiunge lo stato fisso (Done, inVelocity, EndOfProfile, InGear), il blocco funzione deve essere bufferizzato in anticipo. Se si attiva l'avvio (Execute) del successivo blocco funzione tramite, ad esempio, il segnale EndOfProfile del blocco funzione precedente invece di inserirlo nel buffer, può verificarsi uno o più cicli di ritardo in cui nessun blocco funzione è attivo e l'asse rimane fermo. Per informazioni, vedere Concetto di task.

Tipo di dati MC_CamSwitch

Il tipo di dati MC_CamSwitch è un alias della struttura ST_CamSwitch della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_CamSwitchMode

Il tipo di dati MC_CamSwitchMode è un alias dell'enumerazione ET_CamSwitchMode della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_CamSwitch_Ref

Il tipo di dati MC_CamSwitch_Ref è un alias della struttura ST_CamSwitch_Ref della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_CAM_ID

Il tipo di dati MC_CAM_ID è un alias della struttura ST_MultiCam della libreria CommonMotionTypes. Per informazioni dettagliate, vedere la libreria CommonMotionTypes.

Tipo di dati MC_Direction

Il tipo di dati definisce la direzione di movimento.

Per MC_MoveVelocity e MC_MoveRelative, la direzione del movimento si inverte (invertendo il segno della velocità o distanza). Ciò è indipendente dal tipo di asse (modulo o lineare).

Per MC_MoveAbsolute e la funzionalità di salita in rampa di MC_CamIn, l'ingresso di direzione specifica la direzione di approccio della posizione di destinazione assoluta. Per questi blocchi funzione, la direzione viene considerata solo per assi modulo. È ignorata per assi lineari (in quanto le posizioni assolute sugli assi lineari vengono raggiunte nella direzione possibile solo matematicamente).

Nome

Valore

Descrizione

PositiveDirection

0

Senso di movimento positivo

NegativeDirection

1

Senso di movimento negativo

ShortestWay(1)

2

La direzione di movimento dipende dalla distanza più breve alla posizione di destinazione risultante dalla direzione positiva o negativa del movimento.

(1) Solo per blocchi funzione MC_MoveAbsolute e MC_CamIn.

Tipo di dati MC_Interpolation_Mode

Il tipo di dati MC_Interpolation_Mode è un alias dell'enumerazione ET_InterpolationMode della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_Interpolation_Parameter

Il tipo di dati MC_Interpolation_Parameter è un alias della struttura ST_Interpolation_Parameter della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_Master_Start_Mode

Nome

Valore

Descrizione

Absolute

0

La camma inizia alla coordinata X uguale alla posizione dell'asse master assoluta al momento di inizio.

Relative

1

La camma inizia alla coordinata X uguale alla X del primo punto camma, che si presume sia correlato alla posizione dell'asse master al momento di inizio.

NOTA: In PLCopen Motion Control Part 1, Version 2.0, vi è un tipo di dati MC_Start_Mode, oltre a due flag booleani MasterAbsolute e SlaveAbsolute. Per maggiore chiarezza, questa libreria implementa invece due tipi di dati MC_Master_Start_Mode (una combinazione di MC_Start_Mode e MasterAbsolute) e MC_Slave_Start_Mode (una combinazione di MC_Start_Mode e SlaveAbsolute). L'ultimo contiene inoltre la modalità RampIn.

Tipo di dati MC_OperationMode

Il tipo dati MC_OperationMode specifica il modo operativo per il blocco funzione MC_MoveVelocity tramite l'ingresso OperationMode.

Nome

Valore

Descrizione

Position

0

Controllo velocità con il loop di controllo posizione attivo nell'azionamento (Cyclic Synchronous Position, Posizione di sincronizzazione ciclica).

Velocity

1

Cyclic Synchronous Velocity (Velocità di sincronizzazione ciclica), controllo velocità puro.

Il valore Position esegue un movimento alla velocità impostata all'ingresso Velocity del blocco funzione MC_MoveVelocity. In questo modo operativo, il loop di controllo posizione dell'azionamento resta attivo (Cyclic Synchronous Position). Modo operativo predefinito del blocco funzione MC_MoveVelocity.

Il valore Velocity attiva il modo operativo Cyclic Synchronous Velocity. In questo modo operativo, il loop di controllo posizione dell'azionamento non è attivo (controllo velocità puro).

Il modo operativo Cyclic Synchronous Velocity viene avviato quando il valore all'ingresso OperationMode del blocco funzione MC_MoveVelocity è Velocity e il valore all'ingresso Execute cambia da FALSE a TRUE.

La casella di controllo VelocityOperationMode nella scheda Configurazione delle funzionalità deve essere selezionata per attivare il modo operativo Cyclic Synchronous Velocity.

L'esecuzione di MC_MoveVelocity con il modo operativo Cyclic Synchronous Velocity per un asse il cui azionamento non supporta questo modo operativo o per cui non è stato attivato determina un errore rilevato di MC_MoveVelocity senza influire sul comportamento dell'asse.

Se il modo operativo attivo è Cyclic Synchronous Velocity e vengono eseguiti i blocchi funzione MC_Stop o MC_Halt oppure se viene rilevato un errore determinando una transizione allo stato operativo ErrorStop, il modo operativo Cyclic Synchronous Velocity rimane attivo.

Se si tenta di avviare un blocco funzione di movimento (ad esempio, MC_MoveAbsolute) mentre MC_MoveVelocity viene eseguito nel modo operativo Cyclic Synchronous Velocity, tale blocco funzione di movimento non viene eseguito e l'uscita Error viene impostata su TRUE. MC_MoveVelocity continua l'esecuzione nel modo operativo Cyclic Synchronous Velocity.

Per passare dal modo operativo Cyclic Synchronous Velocity a un altro, arrestare l'asse con il blocco funzione MC_Stop o MC_Halt. L'esecuzione di un blocco funzione qualsiasi diverso da MC_MoveVelocity determina il passaggio del modo operativo da Cyclic Synchronous Velocity al modo operativo utilizzato da tale blocco funzione. Ad esempio, se si desidera passare dal modo operativo Cyclic Synchronous Velocity al modo operativo Cyclic Synchronous Position senza avviare un movimento, è possibile eseguire il blocco funzione MC_MoveRelative con una distanza di 0. Se si desidera cambiare il modo operativo Cyclic Synchronous Velocity senza eseguire un blocco funzione di movimento, disattivare e riattivare lo stadio finale dell'azionamento tramite il blocco funzione MC_Power.

Se il modo operativo richiesto non è confermato dall'azionamento entro 30 cicli Sercos, viene rilevato un errore (uscita Error del blocco funzione corrispondente impostata a TRUE).

Tipo di dati MC_Slave_Start_Mode

Nome

Valore

Descrizione

Absolute

0

Per avviare la camma, la posizione dell'asse slave è impostata direttamente al primo valore Y calcolato. La posizione dell'asse slave viene calcolata sulla base della definizione di camma e del “master visto dallo slave”. Rispetto alle modalità di avvio slave Relative e RampIn, non vi sono offset e movimenti sovraimposti. Accelerazione e velocità di riferimento sono calcolate in base alla definizione di camma.

In caso di differenza tra la posizione dello slave e la relativa posizione di avvio calcolata (valore Y) per la camma e se non è possibile raggiungere tale posizione di avvio in un task di scansione, viene rilevato un errore. Tuttavia, se è possibile raggiungere questa posizione di avvio malgrado la differenza di posizione, tale movimento può avvenire nella forma di un improvviso salto di posizione.

Relative

1

La camma inizia alla coordinata Y definita da f(X start), dove f() è la funzione camma e l'avvio X è determinato dalla modalità di avvio del master (MC_Master_Start_Mode). Tale Y è correlato alla posizione dell'asse slave corrente.

RampIn

2

Si presume che la posizione dell'asse slave assoluta sia uguale alla coordinata Y della camma, affinché la camma sia sincronizzata.

All'inizio, la camma si avvia come relativa allo slave, ossia f(X start) è correlato alla posizione assoluta dell'asse slave quando si avvia la camma. Viene quindi eseguito un movimento di salita in rampa che sposta l'asse dello slave per allinearsi al sistema di coordinate della posizione dell'asse con il sistema di coordinate di Y.

 AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Verificare la posizione fisica dell'asse slave all'avvio della camma e che corrisponda alla posizione nella definizione della camma.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
NOTA: In PLCopen Motion Control Part 1, Version 2.0, vi è un tipo di dati MC_Start_Mode, oltre a due flag booleani MasterAbsolute e SlaveAbsolute. Per maggiore chiarezza, questa libreria implementa invece due tipi di dati MC_Master_Start_Mode (una combinazione di MC_Start_Mode e MasterAbsolute) e MC_Slave_Start_Mode (una combinazione di MC_Start_Mode e SlaveAbsolute). L'ultimo contiene inoltre la modalità RampIn.

Tipo di dati MC_Track_Ref

Il tipo di dati MC_Track_Ref è un alias della struttura ST_Track_Ref della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.

Tipo di dati MC_Trigger_Ref

MC_Trigger_Ref è un alias di DAL.IF_Trigger. Si tratta di un tipo di ingresso per MC_TouchProbe e MC_AbortTrigger per collegare i blocchi funzione ai corrispondenti ingressi TouchProbe, analogo a Axis_Ref.

L'interfaccia MC_Trigger_Ref/DAL.IF_Trigger fornisce una proprietà CaptureEdge di tipo UINT che può avere un valore da 0 a 2.

Nome

Valore

Descrizione

FallingEdge

0

Fronte di discesa

RisingEdge

1

Fronte di salita

BothEdges

2

Entrambi i fronti di salita e discesa

VAR
fb_MC_TriggerRef: PLCO.MC_Trigger_Ref;
fb_MC_Touchprobe : PLCO.MC_TouchProbe;
END_VAR

fb_MC_TriggerRef := DRV_Lexium32S.triggerCap1;
fb_MC_TriggerRef.CaptureEdge := MOIN.ET_CaptureEdge.RisingEdge;
fb_MC_Touchprobe(Axis := DRV_Lexium32S.Axis, ifTrigger := fb_MC_TriggerRef);