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
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
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.
È 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 Programma➔Aggiungi/Modifica Post Processori
2.Seleziona un post processore esistente
3.Seleziona OK. Un editor di testo aprirà il programma.
4.Seleziona Inizia➔Inizia modulo (F5) per vedere l'anteprima del risultato. Effettuare modifiche se necessario.
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 Inizia➔Inizia 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.
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 Programma➔Aggiungi/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.
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)
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
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
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:
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.