At work I am trying to integrate a Rinco Ultrasonic Welding Generator with a KUKA industrial robot. I have some experience with integrating a sensor with this robot, so I'd like to use this project to increase my skills with ROS. For now I want to focus on controlling all functionality of the generator from ROS.
CANOpen
The generator supports communications based on RS485 and CANOpen. I have a detailed manuals of both communications options (easily found online) and the .EDS files for the CANOpen communication. For the project I'd like to get more into working with industrial field busses, so using CANOpen has my preference.
My questions
The questions I am currently trying to answer:
- Will I be able to use canopen_master for the communication with the power supply. I am not exactly clear which device profile my device falls under. I expect CiA301 but not sure. How can I find out? Is this part of the .EDS file?
- For hardware I'd like to use a Raspberry Pi in the controlbox (located near the toolplate) for the EEF. I already have ethernet and power running through the robot arm. Therefor I was looking at either a CANgineBerry or a PICAN board. For the last one I am not sure if it supports CANOpen or SocketCAN. Are they actually different? Does anyone have experience with either of these boards (or another) in combination with the canopen_master?
Thanks for your help.
Originally posted by RikTonnaer on ROS Answers with karma: 36 on 2018-07-12
Post score: 0
Original comments
Comment by gvdhoorn on 2018-07-20:
Just a comment: rs485 is also often considered a fieldbus. If you want to work message oriented (instead of dictionary based), I believe rs485 would make sense.
Comment by gvdhoorn on 2018-07-20:
As to the canopen profile: does the manual not state compliance with some profile?
Comment by RikTonnaer on 2018-07-22:
Message oriented would be my preference. However I expect to need to control the power supply in real-time in the future. The manual states that when using RS485 for this device gives a 5 ms delay.
I can send you the docs directly.
Comment by RikTonnaer on 2018-07-22:
On CANopen device profile the docs say:
Object 0x1000 Device Type
This object indicates the device type. As there is no device profile for ultrasonic generators, this object is set to 0 (no standard device).
Comment by gvdhoorn on 2018-07-23:
Pedantic, but:
However I expect to need to control the power supply in real-time in the future
As long as the delay is constant or has an upper-bound, it would still be real-time. But I understand you want minimum latency?
Comment by RikTonnaer on 2018-07-24:
For the first iteration of the system (spot welding and multiple spot welding in sequence) I see no strict requirements on latency.
The second iteration would involve contiuously welding in which the welding parameters need to be controlled. However I do not know (yet) what latency is acceptable.
Comment by RikTonnaer on 2018-07-24:
Do you have any pointers to RS485 based equipement drivers in ROS that I could use as template/inspiration?
Comment by gvdhoorn on 2018-07-24:
re: example: no, not directly. RS485 is basically a serial port, so unless you're doing something special (ie: multidrop) can be used as one. It also depends on a bit on what hw you're using in that case (ie: there are inexpensive USB<->RS485 converters, but also dedicated expansion boards).