Tipi di dati specifici della libreria
Tipi di dati specifici della libreria
Il tipo di dati Axis_Ref è un alias dell'interfaccia IF_Axis della libreria MotionInterface. Per informazioni dettagliate, vedere la libreria MotionInterface.
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 EndOfCycle, 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 vere 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. |
|
(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 |
|---|---|---|---|
|
No |
No(1) |
- |
|
|
Sì |
Sì |
InVelocity |
|
|
Sì |
Sì |
Done |
|
|
Sì |
Sì |
Done |
|
|
Sì |
Sì |
Done |
|
|
Sì |
Sì |
Done |
|
|
No |
Sì |
Done e ingresso Execute impostati a FALSE |
|
|
Sì |
Sì |
Done |
|
|
Sì |
Sì(1) |
EndOfProfile indipendentemente dall'impostazione dell'ingresso Periodic a TRUE o FALSE |
|
|
Sì |
Sì |
InGear |
|
|
Sì |
No |
- |
|
|
No |
No |
- |
|
|
(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.
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_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_Slave_Start_Mode
|
Nome |
Valore |
Descrizione |
|---|---|---|
|
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. |
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.
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 |