Post Processori

I Post Processori sono un passaggio chiave nella Programmazione Offline perchè permettono flessibilità nel supporto di ogni controllore robot. Un Post Processore robot definisce come i programmi robot sono generati per uno specifico controllore robot.

La conversione dalla simulazione RoboDK in uno specifico programma robot è fatta da un Post Processore, Ogni robot ha un post processore assegnatoli di default. Il post processore è utilizzato quando il programma è generato offline, come mostrato nella sezione Genera Programma (tasto destro sul programma, poi, seleziona Genera Programma Robot)

RoboDK fornisce molti post processori che supportanto più controller robot, elencati nella sezione Post Processori Disponibili. In alternativa, è possibile creare un post processore personalizzato o modificare un post processore esistente. Tutti i post processori sono nella cartella:

C:/RoboDK/Posts/

Un post processore è un file PY (ogni post processore è definito da uno script Python). È possibile aggiungere manualmente, modificare, o cancellare i file nella cartella Posts di RoboDK. Se ti viene fornito un post processore RoboDK (fiel PY) deve essere posizionato nella cartella Post in modo da poter essere selezionato da RoboDK.

Questa sezione mostra come selezionare, modificare o creare un post processore ed utilizzarlo con il tuo robot in RoboDK. Una breve introduzione è disponibile nel seguente video: https://www.robodk.com/help#PostProcessor


Seleziona un Post Processore

Per selezionare uno specifico post processore per un robot:

1.Tasto destro sul robot o programma

2.Seleziona Seleziona Post Processore

3.Scegli il post processore dalla lista

4.Seleziona OK

Post Processors - Figura 1Post Processors - Figura 2

La modifica è ora applicata e il programma può essere generato nuovamente per vedere il risultato.

In alternativa, è anche possibile selezionare post processori seguendo i passaggi:

1.Apri il pannello robot

2.Seleziona Parametri

3.Seleziona il tuo post processore nella casella produttore Robot, come mostrato nella seguente immagine.

Post Processors - Figura 3


Modificare un Post Processore

È possibile modificare post processori esistenti o crearne di nuovi. Post processori devono essere posizionati nella cartella C:/RoboDK/Posts/ in modo che possano essere selezionati in RoboDK. La sezione precedente descrive come collegare un robot specifico ad un post processore.

Ogni post processore è un file PY. È possibile rinominare il file o copiare file da/in C:/RoboDK/Posts/ per condividere differenti post processori. Per cancellare un post processore esistente, cancella semplicemente il file PY corrispondente nella cartella Post.

Post processori posson esser modificati utilizzando un editor di testo o un editor Python (Python IDLE). Utilizzando un editor Python è possibile fare il debug velocemente e verificare un programma esempio alla fine del file.

Python deve essere installato per testare ed utilizzare i post processori correttamente (python è installato di default con RoboDK).

Per modificare un post processore esistente:

1.Seleziona ProgrammaAggiungi/Modifica Post Processori

2.Seleziona un post processore esistente

3.Seleziona OK. Un editor di testo aprirà il programma.

4.Seleziona IniziaInizia modulo (F5) per vedere l'anteprima del risultato. Effettuare modifiche se necessario.

Post Processors - Figura 4

In alternativa, è possibile modificare un post processore manualmente:

1.Vai nella cartella del post processore: C:/RoboDK/Posts/

2.Apri un file PY con l'IDLE Python (tasto destro Modifica con IDLE) o un altro editor di testo

3.Effettuare le modifiche desiderate

4.Aprire il file per testare il risultato: Selezionare IniziaInizia modulo (F5 di default) dal IDLE Python.

In alternativa, è possibile modificare il file utilizzando un editor di testo e aprirlo con Python facendo doppio click.

Post Processors - Figura 5


Esempio Modifiche

Questa sezione mostra come fare piccole modifiche ad un post processore esistente.

Ad esempio, le prossime 3 modifiche saranno fatte ad un post processor esistente KUKA KRC4:

Sovrascrivere la massima velocità a 500 mm/s. Anche se il robot è programmato per muoversi più velocemente la velocità sarà limitata a 500 mm/s nel post processore.

Genera ogni programma come un file separato e forzare i programmi ad avere al massimo 3000 linee di codice per programma. Programmi grandi saranno divisi in programmi più piccoli e chiamati in sequenza.

La sezione precedente mostra come aprire post processori esistenti:

1.Seleziona ProgrammaAggiungi/Modifica Post Processore

2.Seleziona KUKA_KRC4

3.Seleziona OK. Il post processore sarà mostrato nell'editor IDLE Python.

Le prossime sezioni mostrano come fare modifiche nell'editor testo.

Forzare limite velocità

Segui questi passaggi per impostare un limite velocità a 500 mm/s ed evitare di impostare velocità maggiori usando RoboDK:

1.Localizzare la funzione setSpeed (def setSpeed)

2.Aggiungi la seguente linea prima di generare l'output $VEL.CP che modifica la velocità in m/s:
speed_mms = min(speed_mms, 500)

Post Processors - Figura 6

Generare un programma per file

Fai le seguenti modifiche per evitare di aggiungere più di un programma per file e generare programmi con più di 3000 linee di codice:

1.Imposta la variabile MAX_LINES_X_PROG a 3000

2.Imposta la variabile INCLUDE_SUB_PROGRAMS in False

Post Processors - Figura 7


Post Processori disponibili

Di default, i seguenti post processori sono disponibili in RoboDK:

ABB_RAPID_IRC5: per controller robot ABB IRC5

ABB_RAPID_S4C: per controller robot ABB S4C

Adept_Vplus: per linguaggio di programmazione Adept V+

Allen_Bradley_Logix5000: per PLC Allen Bradley Logix5000

Comau_C5G: per controller robot Comau C5G

Denso_PAC: per controller robot Denso RC7 (e più vecchi) (linguaggio di programmazione PAC)

Denso_RC8: per controller robot Denso RC8 (e più recenti) (linguaggio di programmazione PacScript)

Dobot: per robot educational Dobot

Fanuc_R30iA: per controller robot Fanuc R30iA e R30iB

Fanuc_R30iA_Arc: per controller robot Fanuc Arc welding

Fanuc_RJ3: per controller robot Fanuc RJ3

GCode_BnR: per controller robot B&R

GSK: per controller robot GSK

HIWIN_HRSS: per controller robot HIWIN

KAIRO: per controller robot Keba Kairo

KUKA_IIWA: per controller robot KUKA IIWA sunrise in Java

KUKA_KRC2: per controller robot KUKA KRC2

KUKA_KRC2_CamRob: per controller robot KUKA CamRob

KUKA_KRC2_DAT: per controller robot KUKA KRC2 inclusi DAT files

KUKA_KRC4: per controller robot KUKA KRC4

KUKA_KRC4_Config: per controller robot KUKA KRC4 con configurazioni in ogni linea

KUKA_KRC4_DAT: per controller robot KUKA KRC4 inclusi DAT files

Kawasaki: per controller robot Kawasaki AS

Mecademic: per controller robot Mecademic Meca500

Mitsubishi: per controller robot Mitsubishi

Motoman: per controller robot Motoman che utilizzano Inform II e Inform III

Nachi_AX_FD: per controller robot Nachi AX e FD

OTC: per controller robot Daihen OTC

Panasonic: per controller robot Panasonic PRG

Precise: per controller robot Precise Scara

Siemens_Sinumerik: per controller robot Siemens Sinumerik ROBX

Staubli_VAL3: per controller robot Staubli VAL3 (controller CS8 e nuovi)

Staubli_VAL3_InlineMove: per generare programmi Staubli con movimenti in linea

Staubli_S6: per controller robot Staubli S6

Toshiba: per controller robot Toshiba

Universal_Robots: per controller robot UR, genera movimenti lineari come bersagli pose

Universal_Robots_RobotiQ: per controller robot UR incluso supporto per gripper RobotiQ

Universal_Robots_joints: per controller robot UR genera movimenti lineari come bersagli giunti

Yamaha: per controller robot Yamaha


Riferimento

Il seguente video mostra una panoramica di un Post Processore in RoboDK:

https://robodk.com/help#PostProcessor

La documentazione di riferimento per ogni metodo nel post processore è disponibile online:

http://robodk.com/doc/en/PythonAPI/postprocessor.html

Tutti i post processori utilizzano il modulo robodk.py:

http://robodk.com/doc/en/PythonAPI/robodk.html#robodk.Mat

Il modulo robodk.py fornisce strumenti per operazioni di pose (moltiplicazioni, inverso, ...) e conversioni tra pose ed anglori di eulero in formati diversi.

La documentazione è disponibile online per imparare la programmazione in Python:

https://docs.python.org/3/

Quando un programma è generato, un programma pre-processato/universale in Python viene generato e salvato in una cartella temporanea. Il programma pre-processato è collegato al post processore corretto (selezionato dall'utente in RoboDK). Il post processore definisce una classe RoboPost che genera il codice generato.

I programmi precompilati sono eseguiti con Python.