Skip to main content

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.

_sm_tool_and_flange_cooordinate_system.png

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 Kin_Scara2_Z

Utensili con offset di posizione nella direzione Z e offset nell'orientamento

Cinematica SCARA 3 Kin_Scara3_Z

Tutti gli strumenti

Cinematica polare Kin_Polar, Kin_Polar_Z

Utensili con offset di posizione nella direzione Z e offset nell'orientamento

Robot articolato a 3 assi Kin_Pos_RRR

Strumenti con un offset nell'orientamento

Robot articolato a 6 assi Kin_ArticulatedRobot_6DOF

Tutti gli strumenti

Palettizzatore a 4 assi Kin_4AxisPalletizer

Tutti gli strumenti

Bipiede Kin_Bipod_Rotary

Tutti gli strumenti

Portale a 5 assi Kin_5Axes

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 e mOriZero è impostato sull'orientamento noto.

  • Se l'orientamento R della flangia è noto solo parzialmente nella forma R*vU = vRot (dove vU e vRot sono noti vettori unitari), quindi dof = 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 metodo GetOrientationImage2 con la variabile VAR_IN_OUT CONSTANT mR_Flange di tipo di dati SMC_Matrix3, che contiene l'orientamento comandato della flangia.

  • Il metodo ritorna csTool e oriinfo con il tipo di dati OrientationSpace nel sistema di coordinate di base della cinematica di orientamento.

  • Inoltre, il metodo ritorna bActive se i gradi di libertà da orinfo 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).