Kuka and directly connected sensors. Some hack ;)

  • The background is simple.


    I came across a robot without software, without a native USB-flash, with a hard drive with sharply growing bad blocks (black 0xc000000e error and then "black-death-screen" with dead OS).


    This is the used robot, but mechanically in excellent condition. And I saw him for the first time. But I am an old and experienced kamikaz... sorry, hacker. I restored the hard drive, emulated a virtual flash drive and uploaded the basic 8.3.5 software.


    The robot works in T1 and T2 modes w/o problems (AUTO needs some fixes). Hacking was successful, although I had to sweat :smiling_face:


    And now about the problem itself.


    I need to connect the simplest sensors to the robot directly, both binary, digital and analog.


    I would ideally need to fasten the LMS400-1000 to the robot, but for now I need to deal with the general possibility of communication between the sensor and the robot KRL-program.


    a/ For example, let it be a simple sensor that outputs a logical 0 or 1 (0 ... 5 volts) with three pins (V+, GND, Signal).


    b/ And let it be some simple classic Sharp rangefinder, which is used by children with Arduino. With corresponding pins and analog output.


    There are several questions:


    1. How can I directly connect both sensors directly to the connector of the KRC4 unit itself? X12? Which pin can I plug into, how to bind a physical contact with a variable in the KRL language, and, for example, write a code for moving forward on some axis if signal = 1, and backward if signal = 0.


    2. How to do the same with the Sharp analog sensor? I also want to connect this sensor directly. I do not believe that such a sophisticated technique does not allow you to make quick test connections.


    3. How can the same be done through Arduino? That is, the sensor is connected to Arduino, then Arduino via USB transfers data to the system unit of KRC4 (USB at Arduino emulate the classic COM/UART). How to bind a variable in the KRL-code with data (integer) on USB-COM from Arduino?


    4. Has anyone installed LMS400? I know that this must done through EthernetKRL, but how exactly?


    Since the fourth question cannot be solved in a couple of hours, so first at all I want to know a simple solution to the first three questions. I just need to make sure that the robot is fully in perfect order, before I get next headpain with the WVS-project and additional software for LMS400 :winking_face:


    Please, I need help :smiling_face: I carried out system hacking masterly, but now it’s better to do everything correctly, and not with the help of virtual hardware substitution :)))

  • 1. No direct connection possible. You need an Interface, on some cabinets of the KRC4 there are already mounted some interface devices.

    2. See 1.

    3. As far as I know: not possible, may be the old serial cread/cwrite works on KRC4, but I think it's not working, because there is no driver in VXworks for those USB serial adaptors.

    4. Those sensors send huge amount of data in very short time, think this will not work on a KRC4.


    As a universal solution for a hacker it may be possible to use a Raspberry PI with software PLC to do all those things. The soft PLC has Profinet, so you need that option on KRC too.

  • Ok.


    I have EtherCAT - Beckoff EK1100 and ProfiBus - Beckoff EL6731/BK3150


    As far i can see it may help :winking_face:


    But I havn't Rapsberry now, Arduino UNO only. But is seems ProfiBUS CAN help me without Arduino :winking_face:


    I just need send the signal throught EL6731/BK3150, isn't it?


    But how?


    I can share the photos now...

    ---


    BTW #1

    I can use the Arduino, laptop and Ethernet from laptop. More complex, but may be more effective?


    BTW #2

    Why not to use Arduino, connected via USB directly to KRC4 system block? It's strange to ignore a lot of USB connectors on the motherboard...

    Maybe there is a way to read the signal from the USB directly to KRL-language?

  • If you can share photos, do it.

    Have a look at Load cell feedback for some arduino stuff.

    BTW #1

    Ethernet is the one thing but you need the same protocol on both sides: Ethernet IP, Modus TCP, Profinet, Ethercat, OPC... Most of those protocols on PC side are expensive. Most of them on KRC side are options and also expensive, you didn't mention the options of your KRC.

    There exist the openshowvar component, have search for it in this forum, but it is not real time capable.


    BTW #2

    It's strange, but it is an industrial robot, in that case you have to live with the options the robot gives you. And as far as I know there is no possibility to use those Adapters in KRL because this runs under VXworks and not Windows.

  • openshowvar - it hasn't Kuka in supported list, but looooooks very taste :winking_face:


    And i don't need realtime operations - this robot is single and must work under timer or "start-button control". Nothing special :winking_face:


    I just found this discussion theme - looks logical!... 20 minutes :))))

  • So, the Beckhoff EK1100 is a "bus coupler." It basically acts as a bridge between two different, incompatible busses. The KRC4 runs on an internal EtherCat network, and the EK1100 is a device on that network. The EK1100 has it's own local backplane bus that additional Beckhoff I/O devices can be added to. Every add-on module is a "slice" added to the right of the previous slice.


    The BK3150 is another bus coupler -- it translates between the EK1100's backplane bus and a Profibus "network".


    Your two most direct options for getting I/O into this robot are:

    1. Buy some Profibus I/O modules, and connect them to the BK3150

    2. Buy some Beckhoff I/O "slices", like a Beckhoff EL1018, and add them to the EK1100's backplane. This is probably the easiest. The main caveat being that Beckhoff makes a huge number of different I/O slices that will work with the EK1100, but only a subset of those are supported by KUKA.

  • Exellent!


    I have (as seen at photo) 9 vertical slices. Last is fully free :smiling_face:


    Is far i understand i just need to connect to controller and turn ON the 9th slice if it disabled.


    And then i can use its contacts like classical IN (0...24V)?

  • Please don't use external shares, use instead the upload function of the forum. Those external links will disappear after a while, and other people with similar questions in the future will have problems to follow the thread.

  • Going by the photo, my best guess is that those last two Beckhoff slices are 8-channel Digital Input modules. They may already be in the KRC4's WorkVisual project, and mapped to particular program $INs.

  • But how associate and bind real phisical contacts with variables? How can i understand which physical connector is visible in a particular variable?


    And how bind them each other in WorkVisual?

  • you need to use WorkVisual to map physical I/O (like the specific input on EL1809 module) to a logical IO (such as $IN[4]).

    robot programs don't know about physical world and only interact with logical I/O. drivers connect those but drivers need to be configured and that is one of many functions of WoV.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • I'm understand that, but:


    I can select a variable, but how should I choose the second contact from the top right in the third slot? How are they physically numbered? Each slot has 8 clemmas. And some slots are input (KL1408), and some are output (KL2408) - are the physical contacts numbered simply in order for WV?


    The program simply goes through a list of slots in the order of 1-2-3 and so on.

Advertising from our partners