IRC5 to control stepper motor for 3d printing

Irham
✭
Hello everybody,
i was new at this robotic arm world, especially at rapid programing. I want to use the robot to control stepper motor for 3d printing extruder, we had irc 5 controller, with rw 5.x on it, with dsqc652 as the i/o card. we had a concept with the rapid program to send Analog Output (E_Value) Signal and will accept by another controller, maybe Arduino or PLC , but dsqc652 in data sheet didn't have Analog output, so how I'm supposed to control the stepper without Analog Output, or can i control it with Digital output or need to buy additional hardware? any suggestion how to do it? maybe some rapid example and reference will be grateful. sorry for my newbie question, Thanks
Regards,
Irham
0
Best Answers
-
You don't actually have to have the analog output. You can map a group output but tell the robot to treat it as if it were an analog signal. I know that more than one time I have posted examples, a search should turn up those and more.Lee Justice0
-
Look here:
https://forums.robotstudio.com/discussion/comment/33768#Comment_33768
You can manually edit the eio file or change it with robotstudio. When using robotstudio you are effectively editing the eio, as well.Lee Justice0
Answers
-
So, the output still use dsqc 652 then will be received by plc/ Arduino? what was the ABB manual instruction explain about it?
Irham0 -
So i was read more post about i/o group on abb forum , if i want send the 0-255 data value, so i use 8 bit grouping "0-7" ,so in dsqc652 i will set 8 digital output ,maybe D0_0 to D0_7 to represents that unit 0 to 7. then the group output (all 7 output pin) will be send to plc /arduino and will be read as binary value. Then will change the binary to decimal again in plc/arduino, so it would control the stepper with that value, am i at the right path or there more simple solution? pls correct me if wrong .
And to set that group i/o to robot controller, am i had to set it in EIO.cfg or can set via RobotStudio? Thanks
Irham0 -
I Was succeeded to use Group Output to send extruder Value to PLC/Arduino. But There is one problem, when i pressed the pause button the "GO" not change to 0. Then i use trap with system output "Mechanical Unit Not Moving" , i already can change the digital output value that attach with system output, but GO not changed too. GO supposed to be 0 when paused was pressed , and continue the last value before pause .PROC Main()ConfJ \On;ConfL \Off;IDelete tryProgram;CONNECT tryProgram WITH stopValue;ISignalDO do_Stop,1,tryProgram;.........ENDPROCTRAP stopValueIDelete tryProgram;CONNECT tryProgram WITH stopValue;ISignalDO do_Stop,1,tryProgram;SetGO Group_D,0;ENDTRAPThat was my trap routine, is there something wrong that my GO no change the value when paused ?
Are that will be same trap when using Emergency Stop /stop button so the GO reset to 0?regards,Irham0 -
There are going to be several ways you might deal with this. First, set up an event routine instead of the trap. The problem with the trap is that the program is no longer executing. Use both the Stop and Quickstop events to set the group value to zero.
Alternatively, you might consider using the system output for TCP reference speed. You would have to play around with the scaling to get it to behave like you want. You would then not even have to use the SetGO instructions in your program. The values automatically rise and fall based on the tcp velocity. AND, if it stops or e-stops, the value automatically goes to zero.
Latly, you could add a relay to your output power for the IO board such that when there is an e-stop, the power is deenergized, causing the outputs to not be ON.Lee Justice0 -
I Was used the system input for qstop and stop. How to use it in rapid program especially in Virtual Teach Pendant, are they act same with the real one? And in i/o simulation there was the system input , when i click the stop and qstop the robot was stop, but the GO not be "0" . I Think there is something missing, because im not declare it on program or not in stop or qstop program routine below? how to program to trigger the routine when stop button was pressed? can you give me a little examplePROC STOP() ;SetGo Group_D,0;ENDPROCPROC QSTOP()SetGo Group_D,0;ENDPROC
are the event routine look like that? i was copying from this post https://forums.robotstudio.com/discussion/2475/reset-output-values-to-zero
sorry for my newbie question. Thanks for your help before.
the easiest one was the last solution you mentioned before, using a relay, or read digital output signal to enable and disable the stepper program.0 -
The event routines look fine. You just have to set the parameters to run those on the specified events. They are under the controller topic.Lee Justice0
Categories
- All Categories
- 5.4K RobotStudio
- 375 UpFeed
- 15 Tutorials
- 12 RobotApps
- 286 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 241 ScreenMaker
- 2.7K Robot Controller
- 266 IRC5
- 40 OmniCore
- 6 RCS (Realistic Controller Simulation)
- 3 RobotStudio AR Viewer
- 721 RAPID Programming
- 15 Wizard Easy Programming
- 107 Collaborative Robots
- 3 Job listings