Configurazione di un offset utensile
È possibile impostare l'offset tra il sistema di coordinate della flangia della cinematica (XYZ) e il sistema di coordinate TCP della cinematica (X'Y'Z') mediante la progettazione di una correzione utensile. Questo correttore utensile agisce su tutti i movimenti successivi.

TCP: punto centrale dell'utensile
La correzione utensile è specificata da uno spostamento v=(x,y,z)
e una rotazione r=(A,B,C)
negli angoli di Eulero ZYZ. Lo spostamento e la rotazione sono espressi rispetto al sistema di coordinate della flangia della cinematica.
Quando si configura un correttore utensile, questo può essere incompatibile con la cinematica attuale. Di conseguenza, un offset utensile può impedire alla cinematica di raggiungere l'orientamento. In questa situazione, viene emesso un errore e l'offset utensile viene ignorato. È possibile progettare ad esempio una correzione utensile in direzione Z per la cinematica Kin_Scara2_Z
. D'altro canto, un offset con parti nella direzione X o Y genera un errore. Quando la cinematica presenta questo tipo di restrizioni, queste vengono descritte con il cinematica.
Blocco funzione: SMC_GroupSetTool
Il blocco funzione configura la correzione utensile specificata all'ingresso ToolOffset
(genere MC_COORD_REF
) per un gruppo di assi. Tuttavia, finché il gruppo di assi è nello stato GroupDisabled
o GroupErrorStop
, no è possibile configurare la correzione utensile.
Se l'utensile non è compatibile con la cinematica attuale, la POU emette l'errore SMC_AXIS_GROUP_TOOL_OFFSET_INCOMPATIBLE_WITH_KINEMATICS
. Questo errore viene emesso anche se l'interfaccia ISMKinematicsWithOrientationImage
non è stato implementato per la descrizione della cinematica.
Blocco funzione: SMC_GroupReadTool
Questo blocco funzione legge la correzione utensile: output ToolOffset
(genere MC_COORD_REF
). In questo processo, l'input ReadMode
determina se deve essere letto l'utensile del movimento attivo, l'ultimo movimento comandato o l'utensile attualmente impostato nel gruppo di assi.
Cinematica compatibile
Non tutte le cinematiche supportano ogni correzione utensile. L'elenco seguente mostra quali utensili sono adatti per quale cinematica.
Cinematica | Strumento compatibile |
---|---|
Cinematica SCARA 2 | Utensili con offset di posizione nella direzione Z e offset nell'orientamento |
Cinematica SCARA 3 | Tutti gli strumenti |
Cinematica polare | Utensili con offset di posizione nella direzione Z e offset nell'orientamento |
Robot articolato a 3 assi | Strumenti con un offset nell'orientamento |
Robot articolato a 6 assi | Tutti gli strumenti |
Palettizzatore a 4 assi | Tutti gli strumenti |
Bipiede | Tutti gli strumenti |
Portale a 5 assi | Tutti gli strumenti |
Sistemi a portale | Tutti gli strumenti |
Sistema a portale H | Tutti gli strumenti |
Sistema a portale a T | Tutti gli strumenti |
Treppiede rotativo o lineare | Tutti gli strumenti |
Suggerimento
Se un sistema cinematico non dispone di 3 gradi di libertà per l'orientamento, è possibile che non tutte le correzioni utensile siano compatibili.
Per cinematica personalizzata
Per utilizzare la cinematica personalizzata con un offset utensile, è necessario implementare il file ISMKinematicsWithOrientationImage
interfaccia. Per aggiungere un offset utensile per la cinematica della posizione personalizzata, devi prima implementare l'interfaccia ISMPositionKinematics2
.
Interfaccia: ISMKinematicsWithOrientationImage
L'interfaccia cinematica fornisce il metodo GetFlangeOrientationImage
con la variabile mR_Flange
di tipo di dati SMC_Matrix3
, che contiene l'orientamento comandato della flangia. Di conseguenza, il metodo restituisce possibili orientamenti risultanti oriInfo
come tipo di dati OrientationSpace
.
Comportamento dell'interfaccia
In particolare, quando è noto l'orientamento della flangia nell'orientamento comandato,
dof = zero
viene restituito emOriZero
è impostato sull'orientamento noto.Se l'orientamento
R
della flangia è noto solo parzialmente nella formaR*vU = vRot
(dovevU
evRot
sono noti vettori unitari), quindidof = one
viene restituito.mOriZero
è impostato su un orientamento nello spazio raggiungibile.Altrimenti,
dof = three
viene restituito.
Una correzione utensile specificata è compatibile con la cinematica se la posizione della flangia può essere calcolata in modo univoco tenendo conto dell'orientamento calcolato. Questo è sempre il caso quando l'orientamento calcolato può essere raggiunto dalla cinematica. La correzione utensile può essere incompatibile solo se non è possibile raggiungere tutti gli orientamenti. Inoltre, se il metodo GetFlangeOrientationImage
ritorna dof = zero
, allora ogni correttore utensile è compatibile. Se il metodo ritorna dof = one
, quindi solo l'offset posizione utensile v_off
parallela al vettore unitario vU
è compatibile. In questo caso, R*v_off = R*vU*x = vRot*x
non dipende dalle parti sconosciute della matrice di orientamento R
. Ciò include anche una correzione utensile con v_off = 0
(dove x = 0). Se dof = three
viene restituito, sono compatibili solo gli spostamenti di posizione senza un offset in x/y/z.
Note di attuazione
Implementare l'interfaccia
ISMOrientationKinematicsWithOriImage2
per la cinematica di orientamento. Quindi è possibile utilizzare una correzione utensile per accoppiare la cinematica di orientamento con la cinematica di posizione. L'interfaccia ha il metodoGetOrientationImage2
con la variabileVAR_IN_OUT CONSTANT mR_Flange
di tipo di datiSMC_Matrix3
, che contiene l'orientamento comandato della flangia.Il metodo ritorna
csTool
eoriinfo
con il tipo di datiOrientationSpace
nel sistema di coordinate di base della cinematica di orientamento.Inoltre, il metodo ritorna
bActive
se i gradi di libertà daorinfo
sono attivi (TRUE
) o passivo (FALSE
).
Esempio di gradi di libertà attivi: Kin_CAxis
. La rotazione attorno all'asse z è controllata dall'asse della cinematica di orientamento.
Esempio di gradi di libertà passivi: Kin_Wrist2
. Il restante grado di libertà è la rotazione di X/Y attorno all'asse Z, che punta nella direzione programmata dall'utente.
Importante
Quando sia l'ultimo movimento comandato che il nuovo movimento sono movimenti CP (sia movimenti lineari che rotativi) durante un cambio utensile, la modalità buffer del movimento successivo viene modificata da Blending
o Aborting
a Buffered
.
Importante
Se si configura un nuovo correttore utensile dopo MC_GroupInterrupt
e prima MC_GroupContinue
, per i movimenti interrotti viene utilizzata la vecchia correzione utensile. Il nuovo correttore utensile viene utilizzato solo per i movimenti che vengono comandati in seguito.
Importante
Quando si cambia la cinematica (MC_SetKinTransform
), il correttore utensile viene ripristinato (nessuno spostamento, nessuna rotazione).