Programmazione Offline (o Programmazione Off-Line) significa poter programmare i robot al di fuori del loro ambiente di lavoro. La Programmazione Offline elimina i tempi di fermo macchina causati dalla programmazione in auto-apprendimento. La simulazione e la Programmazione Offline permettono di studiare i molteplici scenari di una cella di lavoro prima di organizzarne la produzione. Gli errori comuni durante la progettazione di una cella di lavoro possono essere previsti ed evitati in tempo utile.
La Programmazione Offline è la scela migliore per massimizzare il ritorno dell'investimento sui sistemi robotici e richiede strumenti di simulazione adeguati. Il tempo necessario all'adozione di nuovi programmi può essere ridotto da settimane ad un singolo giorno, permettendo la robotizzazione di produzioni a breve termine.
La Programmazione Offline non ha limiti con RoboDK. RoboDK fornisce un'interfaccia grafica intuitiva per simulare e programmare robot industriali. RoboDK ti aiuta ad evitare le singolarità ed i limiti assi. Non è necessaria alcuna esperienza di programmazione. Maggiori informazioni sono disponibili nella sezione Programmazione Offline della documentazione.
Con l'API di RoboDK per Python puoi anche simulare e programmare robot utilizzando Python. Python è un linguaggio di programmazione che ti permette di lavorare velocemente e di integrare i tuoi sistemi in maniera più efficente. Python permette di esprimersi utilizzando meno righe di codice, in confronto ad altri linguaggi di programmazione, rendendolo intuitivo e più facile da imparare.
Maggiori informazioni sono disponibili nella sezione API per Python della documentazione. L'API di RoboDK è anche disponibile per C# e Matlab.
from robolink import * # RoboDK's API from robodk import * # Math toolbox for robots # Start the RoboDK API: RDK = Robolink() # Get the robot (first robot found): robot = RDK.Item('', ITEM_TYPE_ROBOT) # Get the reference target by name: target = RDK.Item('Target 1') target_pose = target.Pose() xyz_ref = target_pose.Pos() # Move the robot to the reference point: robot.MoveJ(target) # Draw a hexagon around the reference target: for i in range(7): ang = i*2*pi/6 #ang = 0, 60, 120, ..., 360 # Calculate the new position around the reference: x = xyz_ref[0] + R*cos(ang) # new X coordinate y = xyz_ref[1] + R*sin(ang) # new Y coordinate z = xyz_ref[2] # new Z coordinate target_pos.setPos([x,y,z]) # Move to the new target: robot.MoveL(target_pos) # Trigger a program call at the end of the movement robot.RunCode('Program_Done') # Move back to the reference target: robot.MoveL(target)
Una volta che la simulazione ha prodotto gli effetti desiderati è molto semplice generare offline il programma robot (Programmazione Offline). Ad esempio, questo programma sarà generato per un robot ABB.
MODULE MOD_HexagonPath PROC HexagonPath() !Program generated by RoboDK for ABB IRB 1600ID-4/1.5 on 29/11/2014 17:42:31 ConfJ \On; ConfL \On; rdkTool.tframe:=[-4,0,371.3],[0.92387953,0,0.38268343,0]; MoveJ [[1010.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; MoveL [[810.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; MoveL [[910.634,58.715,662.29],[0,0,1,0],[0,-1,0,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; MoveL [[1110.634,58.715,662.29],[0,0,1,0],[0,-1,0,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; MoveL [[1210.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; MoveL [[1110.634,-287.696,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; MoveL [[910.634,-287.696,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; MoveL [[810.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; Program_Done; MoveL [[1010.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj; ConfJ \On; ConfL \On; ENDPROC ENDMODULE
Il Post Processor definisce come deve essere generato il programma robot. La conversione dei movimenti del simulatore in istruzioni robot specifiche è fatta dal Post Processor. Il Post Processor fornisce una completa flessibilità in modo da soddisfare esigenze specifiche.
RoboDK fornisce dei Post Processor per molteplici produttori di robot. I Post Processors possono essere facilmente creati o modificati. Maggiori informazioni sono disponibili nella sezione Post Processor della documentazione.