Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Question on I/O for RoboDK (3D printing with ABB 6700)

Hi Guys, 
I am trying to get an ABB 6700 robot to 3D print with some concrete. (Beginner here ;) )

I found that ROBODK would be the Best software for the job with its already well documented 3D printing project. 

However, in terms of I/O for the robot, I know how to hook up the hardware (primarily a high torque motor driving a single screw style extruder and a PID controller for temperature). 

And I know, to an extent, how to configure the I/O with ABB software. 

But I don't know where I should specify things as simple as 'turn the motor on here to extrude' or 'supply this many volts to the temperature controller', etc. Are those a part of the ROBODK software?

In other words, does the RoboDK software directly communicate with and allow control of the I/O ports on the ABB 6700 robot? Or would that need to be done somewhere else? 
(If you happen to know where it would be helpful LOL)

Thank you so much, guys! I appreciate any help!
Yes, you can convert the extruder commands to digital outputs.

When you prepare your project for 3D printing, the slicer algorithm automatically generates an E command in your G-code to drive the extruder. This command is meant to provoke the material deposition while the robot is moving. By default, in RoboDK, this E command provokes a program call such as Extruder(0). The value 0 triggers the start of a new extruder path and it keeps increasing as the robot moves along the path. Then this value is negative before a retract/approach movement.

These extruder commands are parsed automatically by the ABB post processor called ABB_RAPID_IRC5 in RoboDK. However, you need to make a small change to save this variable and use it for your linear movements. Take a look at RunCode and how the Extruder call can be parsed if you remove the return command when Extruder is detected.

The most simple integration with your extruder would be using one single digital output. This output can be Off when the extruder length is negative. You can activate it otherwise. To do so, you can add the following code inside the MoveL command of your post processor:
    def MoveL(self, pose, joints, conf_RLF=None):
        """Add a linear movement"""

        if self.NEW_E_LENGTH < 0:
            self.addline('SetDO D_OUT_Extruder, 1;')
            self.addline('SetDO D_OUT_Extruder, 1;')

Users browsing this thread:
1 Guest(s)