Thank you for all answers!
At the bottom of the robot, on X12 and X14 connectors, there are pins with around 27V current. Is it safe to supply CombiCon 24V pin from these 27V pins?
Thank you for all answers!
At the bottom of the robot, on X12 and X14 connectors, there are pins with around 27V current. Is it safe to supply CombiCon 24V pin from these 27V pins?
Thanks for your reply. To clear this out and in order to not damage any equipment, let me clarify for another time my setup.
I have an MFC card connected on my robot controller box. There, I connect a cable, which I fabricated, in order to interface the MFC card, with the Arduino CAN-bus shield. The Arduino Board, on which the CAN-Bus shield board sits on, is already supplied externally by a 5V power supply.
The cable which I constructed has a CombiCon port (5 pin socket, 0V, CAN_L, SHIELD, CAN_H, 24v) and on the other end has an RJ45 socket (Ethernet cable). The pins that are connected between the two sides are 0V, CAN_H, CAN_L, SHIELD, and GND.
The CombiCon socket I connect to the MFC card, and the RJ45 socket I connect to the Arduino CAN-Bus Shield board.
I attach a picture where you can see the CombiCon socket (green color), the RJ45 (red) and the cable (white color). Please, see device_net_setup.JPG.
According to your earlier posts you mention that I should also connect external 24V to the CombiCon Socket. Why do I need this? Isn't the CAN-bus line operational without this? I mean that I don't have to supply any device with 24 V in my architecture. My Arduino side is powered. My MFC card side is powered via the PCI slot. All I need is to be able to send a simple "on", "off" signal type via the CAN bus triggered from the MFC card side, in order to "enable", "disable" a single output (0, 5V) on the Arduino GPIO on the other end.
Do you mean that the MFC CombiCon is a voltage consumer, not a supplier? The CAN Bus Shield is powered from Arduino, 5V. In this case I need to power MFC Combicon 24V pin with an external power supply?
I will install this resistor, thanks.
Quote
0V and Shield should not be connected to each other, under most circumstances. However, if you leave the 24VDC line floating at the CANBus shield, you may need to connect 0V to the CANBus "ground" in order to achieve reference voltage. I would make first attempt without connecting 0V or 24VDC at the Arduino end.
I am sorry, I am not sure if I understood this correctly. Do you mean here Shield as a pin at the CombiCon port? I have connected Shield at the MFC CombiCon to the Shield at CAN Bus Shield, the same did with GND. They are not connected to each other.
And do you mean here again, that MFC CombiCon will be supplied from some external power source, by saying that the 24V line on CAN Bus Shield will be floating?
Thanks for the reply!
Yes, I've read DeviceNet manual.
I didn't connect 24V, it will be my next step then. I am afraid that if I will connect 24V then it will burn the shield. How do you think, should I use a voltage divider in this case?
I should not connect 0V and Shield at the same time?
Does termination resistor (between Can H and Can L in 121 Oms) need to applied right to the CombiCon connector to the MFC card, right at the place where I plugin wires into the connector? There is a resistor embedded into the CAN Bus shield, I though that this is enough.
So, I have connected a CAN Bus Arduino shield to the DeviceNet by connecting CAN H, CAN L, GND and Shield pins of the DeviceNet CombiCon port to the corresponding pins on CAN Bus shield.
I have tuned iosys.ini and devnet.ini according to the info that was posted in the forum earlier.
However, when I trigger dnWho in Telnet it displays an error: "DNDRV ERROR: receive error Interrupt". In addition, when I try to trigger outputs manually from monitor > I/O > digital outputs then after the enabling one output, this output gets enabled, but the system responses: "error on writing, driver: DN2DRV" and after that I can not switch on/off any outputs until I make reconfiguration of I/O. These errors are received in both cases: when CAN Bus shield connected and when it is not.
Could you, please, explain me what should be the proper wiring for connection of any devices to DeviceNet CombiCon port at MFC and what might be my problem?
So, in another words, if I am not going to do a real DeviceNet bus communication but just CAN bus one, it still might work but you are not sure that Arduino CAN bus shield will still receive correct protocols?
I have found couple mentions of this method as a suggestion to connect the DeviceNet from an ABB robot to an Arduino, therefore, as somebody did it before, probably, there should be a way to make it work.
Thanks!
QuoteDon't forget that the Krc needs 24v supply voltage on the combicon connector too.
What exactly do you mean under that? I thought if I will connect CAN-Hign and CAN-Low directly to corresponding pins at the shield, WITHOUT using 24V DeviceNet pin, than it won't be 24V, rather standard CAN bus voltages, with which this shield can work. Is it not so?
Thank you for the replays!
For the setting up an Arduino as a DeviceNet slave module, there is a CAN-bus Arduino shield. It has CAN-high and CAN-low pins at the CAN Terminal.
You can see more info in the following link: http://www.seeedstudio.com/wiki/CAN-BUS_Shield
I plan to connect CAN-high, CAN-low and GND pins of the CombiCon DeviceNet connector at KRC2 correspondingly to the CAN-high, CAN-low and GND pins of the shield.
How do you think, will that work?
Thanks for the response!
We have a Powerlolu Stepper Motor Driver, which is currently controlled by Arduino.
Do you have experience in connecting this driver directly to DeviceNet on KRC2? Or would you suggest to use Arduino and trigger it through the CAN High/Low signal in DeviceNet?
I have KRC2 and the following stepper motor: http://www.bzt-cnc.de/en/shop/electr…tor-fl60-42a-3n
Which steps would you suggest to connect it to the CombiCon DeviceNet port at the MFC card?
Ok Thanks,
so it looks we can straightforwardly build a DeviceNet Cable to hook up the MFC card on the robot controller (via the CombiCon), with a servo motor we wanna actuate on the otherside.
I would like to get your opinion on something written as a remark in the DeviceNet manual for the KR C2. On page 18 on the bottom (link for manual can be see below) it is stated that "The power supply in the DeviceNet cable may only be used for the bus interface in the I/O module. The outputs must be supplied with power separately." Does this mean that we need additional power supply for our servo, i.e. can't it be directly powered by the DeviceNet cable?
Thanks
Alright, good that we figured that out!
What should be my next steps in order to set outputs up?
PS: In attachments are photos of the MFC.
Thank you!
Please, find attached:
1) devnet.ini, iosys.ini;
2) pictures of the cabinet open with the special emphasis on the area below servo motors;
3) top side of MFC with X801 connector. As you see, there is nothing plugged into this connector;
4) several picture of MFC installed into the computer. My colleague was working on the robot, therefore I wasn't able to detach it at this time. However, if you need more detailed pictures with MFC card detached, I will take them.
Alright, no panic, gentlemen!
I understand that by doing something wrong I can burn this robot, therefore I am trying to do everything as safe as possible. From the other side, if I don't know something yet then this is not a reason for me not to try to figure it out. As I said before, manuals were not much of the help so far. Only combination of theory and practice brought some fruits as of right now.
Back to the topic:
I decided to do the following: by using voltmeter check voltage on connectors' pins when all outputs are off then switch on all outputs and check voltage again. Pins that would show change in voltage would be considered as ones that I can control and then I would figure out their numbers in the system
Today I've tried that and, unfortunately, I wasn't able to find any changes in voltage on any pins.
Here is the code that I used for switching pins on:
&ACCESS RVP
&REL 5
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF outputson( )
INT I
INT N
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
I=0
FOR I=1 TO 136 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
FOR I=141 TO 146 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
FOR I=148 TO 149 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
FOR I=153 TO 852 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
FOR I=856 TO 976 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
FOR I=982 TO 992 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
FOR I=998 TO 999 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
FOR I=1004 TO 1009 STEP 1
$OUT[I]=TRUE
WAIT SEC 0.01
ENDFOR
$OUT[1002]=TRUE
$OUT[1014]=TRUE
END
Display More
This one was for switching off:
&ACCESS RVP
&REL 5
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF outputsoff( )
INT I
INT N
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
I=0
FOR I=1 TO 136 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
FOR I=141 TO 146 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
FOR I=148 TO 149 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
FOR I=153 TO 852 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
FOR I=856 TO 976 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
FOR I=982 TO 992 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
FOR I=998 TO 999 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
FOR I=1004 TO 1009 STEP 1
$OUT[I]=FALSE
WAIT SEC 0.01
ENDFOR
$OUT[1002]=FALSE
$OUT[1014]=FALSE
END
Display More
I excluded some pins because they are system ones.
Both program worked as I monitored the status of pins by going to Monitor -> I/O -> Digital Outputs... While executing programs I saw how pins were either switched on or switched off.
I tested all connectors that I have at the bottom of the cabinet: X12, X11, X13 and X14. In addition, I've found that some pins on connectors X12 and X14 were under current load. For example, at the connector X12 pins 5,6,7,8 and 13,14 have voltage around 27V (figure pins_from_x12_connector.jpg. ).
My question is what am I doing wrong and is my method generally right?
tommylight, thank you for advice!
I have one friend here who helps me and who is in fact an electrical engineer, however, unfortunately, he doesn't have an experience with KUKA robots and KRL.
Therefore, I don't worry about connecting something wrong, the only concern is how to figure out pins.
After your first advice, I examined KRL and MFC card thoroughly and I've found out that actually I have VKRC 2 model. In addition, on X12 connector there are already 4 pins are in use, see photo X12_connector.JPG. At the photo X12_connector_without_cables. JPG you can see X12 connector without additional cables.
Today we tried to figure out where cables from four used at X12 connector pins go. First, they go to the distributor, displayed at the picture distributor.JPG. Pins 1,2,3,4 at X12 connected accordingly to pins 31, 32, 34 and 35 at the distributor. We figure that after distributor at least 2 wires go to the connector, which is marked X12, at the bottom of the cabinet. Pictures of this connector are backside_of_pins_from_x12_connector.JPG and pins_from_x12_connector.JPG. However, we weren't able to figure yet out where two others cables go.
We went through a number of manuals that I've found in the "Manuals, Software and Tools" sub-forum here. However, I don't feel that we are close to the solution.
My main question now is how to control these 10 pins at MFC on X12 connector, or at least some of them through the program, just by assigning TRUE or FALSE states to them.
tommylight, thank you for the response as well!
You can use the built in MFC card outputs for that, they are wired to the X11 connector on standard KR150 but they are on the X12 on VKRC models, some (4) outputs can handle 2A of current through them, others only 100mA, but you need an external power supply for driving those outputs, i would not recommend using the internal PS (also wired to X11 for safety circuit supply).
I think that I have KRC2 model, not VKRC2, but I am not sure. I have a picture of MFC card, please, see below.
How could I find these built in outputs on MFC? Are there any manuals about it?
panic mode, thank you for the response! I have several questions:
your pictures show that there is nothing on your connectors, all wires are cut off.
According to what I see, there are jumper cables on the X11 connector. I might be wrong, but I assume that they imitate a safety circuit.
also it is unclear which edition of KRC2 you have or if this was customized to one of automotive companies.
According to the cover sheet that I have for this robot, it is "Upgrade KRC2". I don't know what exactly upgrade means, maybe the fact that this robot has an additional axis, which gives the robot an opportunity to move on rails along a line.
In addition, I have a photo of the robot model. See robot_model.JPEG. It indicates that this robot was taken from the BMW factory. I don't know if this fact influenced the robot.
In addition, what I see inside the KRC2, matches what the description of KRC2 in "KRC2 edition2005 Specification; Version: Spez KR C2 ed05 V5 en".
Here is the link to this manual: http://www.kuka-robotics.com/res/sps/94de4d…_C2_ed05_en.pdf
if this is your only controller, you can make the pinout anything you like. if you have others you can probe or trace signals.
Our team only will be working on this KUKA, therefore we can configure it how we like.
what are your devicenet i/o and are they configured correctly (do they work)?
you have correct idea of interfacing to digital i/o but if this is not just couple of signals, i would rather connect them through RS232.
That's the problem: I don't know where I/O even located. I don't have any info where they are and where to find them. Therefore, I don't know if they work.
And how could one connect I/O to RS232?
Hello, everyone!
I'm new with KUKA, I have KR150L110, 2002 year, with KRC2.
The robot that I have was a welding robot.
My current problem is that I don't know how to figure out the layout of I/O pins.
There are slots at the bottom of the KRC2 cabinet. You can see them on photos slots_1_frontview and slots_2_upsideview.
From these slots cables go to the DeviceNet.
As you can see at the picture slot_x11, I assume that on the Slot X11 there is a circuit that imitates a safety circuit.
I need to connect an extruder pared with Arduino to KUKA. For that, I need to figure out how to find 24V and Ground pins that I will be able to trigger through the code simply by writing, for example, $OUT[33]=TRUE. For the connection of Arduino to the 24V circuit I plan to use an optocoupler or a voltage-divider.