TCP/IP connection between R30iB and Labview

  • Hello Robot-Forum,


    Since the start of the month i'm doing a project which involves a TCP/IP connection between a labview program and the R30iB robot controller.
    The controller is connected to a LR Mate_200iD/7L.


    The labview program has a vision function. It derives the coordinates from the product i need to pick up.
    Now the trick is to let the robot move to the coordinates derived by labview.
    My client prefers to use a TCP/IP connection for the communication.


    My questions now are:
    1) Is it even possible to make a connection between labview and the controller?
    2) Is TPC/IP a valid protocol to communicate between labview and the controller?
    3) Where can i find the information about the commands that need to be send by labview to make the robot move?


    Already big tnx for any reply.


    Greetings,


    Emiel Nijssen

  • My questions now are:
    1) Is it even possible to make a connection between labview and the controller?


    I know nothing about labview but if it can communicate with a PLC, then the PLC can communicate with the controller.


    2) Is TPC/IP a valid protocol to communicate between labview and the controller?
    Yes if #1 is true


    3) Where can i find the information about the commands that need to be send by labview to make the robot move?


    I can only assume labview will send positional data/offsets to the controller, the rest is tp programming.

  • We use TCP\IP connection all the time back to a PC and write or read files from the PC.
    You may want to make a Karel program that would read the vision data from your Labview program and use this to position the robot. As an example we will calculate where we want to pick a part. We write this position out to a text file (*.DT), then the Karel file will read the coordinate and store it as a position register. The robot is then programmed to go to the position register.
    Hope this helps.

  • Both big thanks for your answers!


    So just to make things clear:



    We use TCP\IP connection all the time back to a PC and write or read files from the PC.
    You may want to make a Karel program that would read the vision data from your Labview program and use this to position the robot. As an example we will calculate where we want to pick a part. We write this position out to a text file (*.DT), then the Karel file will read the coordinate and store it as a position register. The robot is then programmed to go to the position register.
    Hope this helps.


    We already have the whole vision program in labview, it recognizes the parts we want to pick up and it gives out the coordinates. So your suggestion is to make a karel program that writes those coordinates into the position register of the robot.
    (Is there no other way to write into the position register of the robot then Karel?)



    1) I know the PLC is an option if you want to control the I/O of the controller. This is something we try to avoid. The preferred method is when we use the position register.


    3) Ofcourse the best thing is to let the robot controller to as much of the controlling part as possible, I’m thinking about toolframes and offset of tools etc. The ideal situation is when our labview program only need to give out the X, Y,Z and W,P,R values of the required position of the tool, and the controller does the rest.


    As suggested by cph5140 we should use Karel for that. Do you think it’s possible with the TP as well?


    Im still open for all other suggestions at the moment :toothy9:


    But once again thanks for the help already


    Greetings,


    Emiel Nijssen

  • I've personally used a couple of methods for read/writing data to Fanuc robots. One is an EtherNet/IP connection, where the Robot has to be a scanner (master) or adapter (slave). If LabView doesn't natively read-write EtherNet/IP, then it is likely that a Kepware OPC server is the missing link between LabView and EtherNet/IP on the robot. With this method, you have to map an integer into a Group IO, and then process that into a decimal number, for the sub-millimeter accuracy. Then you can copy that into an element of a Position Register which would be used as the point you move to, or as an offset PR that is applied to a base PR. For example, in vision you inspect a part at a zero-offset position, and then train the robot's base pick point to that part. Then the next part that is inspected might be off center by X: +10.1, and Y: -5.5, and have a rotation of 2.5 degrees. You would send 101 and -55 and 25 to the robot, divide by 10, and store in a register or directly in a PR X and Y and R elements, and then use that PR as the offset that is applied to the base PR. Then the robot will go to the correct offset of the position. That's a simple example. Your vision setup may be more complicated, or have a different way of relating the robot coordinates to the vision system coordinates. (Ethernet Global Data, EGD, would be another protocol I've used that would work in a similar manner to EIP.)


    The other method I've used is the Fanuc HMI Option. The Fanuc Robot, with this option, emulates a GE Fanuc Series 90 PLC. Anything that can talk SNPX can poke numbers right into PR elements directly, so again, Kepware OPC server might be used, if not native in Labview.


    I've used the above options because they are cheaper in direct cost and development time for me. There's a PC Interface option, too, but I've never used that. Karel TCP comms is an option, too, as mentioned. All of these things are Fanuc options you have to buy. There is a different Fanuc manual for each of these options.


    As I say above, and was previously mentioned, these methods are for getting the X,Y,R coordinate offsets into the robot. The easiest thing to do is use them within a PR that is used as an Offset PR. The Offset PR would be blank except for the X and Y and R elements, and possibly Z if there is a height variation that is derived from vision. It's typical to write teach pendant programs for all robot motion, and trigger the programs from the PLC or PC after the new vision data has been communicated to the robot. That program might have to use Group Inputs to first build the new Offset PR. Or with the HMI Option, the Offset PR might already be ready to use.

    - Jay

    Edited once, last by Jaycephus ().

  • Hello Jaycephus,


    Thx for your reply.
    Labview doe supply Ethernet/IP so we wont need any OPC servers. Also the EIP protocol is explained very clearly in the Fanuc manuals.


    After discussing our problems with Fanuc, and sharing our positive thoughts about the EIP solution for communication. They said it was indeed a good solution although we might want to take a look into socket messaging.
    Socket messaging gives us more flexibility but it is also a lot harder to get started with since it uses Karel.


    SO together with our project manager we made the decision to go with EIP over the socket messaging option.


    I would like to thank all of you once again with all the help. :beerchug: :beerchug:

  • Hello Emiel,


    we are trying to do almost the same thing, but instead of using vision control, we are trying to control the robot with LabView with the data provided by the FS-15iA force sensor. We are using R-30iA controller. Can you update me on your progress, so we don't have to discover hot water twice :icon_wink:

    Two things are infinite: the universe and human stupidity, and I’m not sure about the universe!

  • You may need to look at the user manual ---- FANUC Robot series R-30iA/R-30iA Mate/R30iB/R-30iB Mate CONTROLLER Ethernet Function.pdf. You can find the method which can be used to communication with other device using TCP/IP. But labview should support Socket and the robot should order the Socket MSG.

  • Today i just got --- FANUC R-30iA Internet Options Setup & Operation manual [7.70], and we will see what option would be the best.

    Two things are infinite: the universe and human stupidity, and I’m not sure about the universe!

  • The fanuc manual is crystal clear to me. It gives me the Class,Instance and Attribute for each operation i want to do.
    But labview is my problem now, i got the impression that we could communicate by Ethernet/IP without extra hardware.
    I had the impression that if i downloaded the Ethernet/IP drives (which i did because im a student that has access to all NI software), i would be able to setup a communication.


    But now i miss the labview information. I miss their Classes,Instances and Attributes to make the communicaton work.


    I know this is a bit off forum because its not fanuc information im asking for. But i still hope people can help me with this information.


    Greetings,


    Emiel Nijssen

  • I want to know something that is it possible to make a connection between labview and the controller?
    Is it able to communicate with a PLC, then the PLC can communicate with the controller.
    Is TPC/IP a necessary protocol to communicate between labview and the controller?

  • Hi,


    I am doing a similar work with an R-30iB FANUC robot controller. As a first step, I am trying to connect to the robot but I keep getting the following error:


    "Automation Open: Object specified is not creatable in Establish_Connection.vi"



    I tried to register .ocx and .dll files manually but that did not help. I was wondering if you ever had this issue, and if yes, how did you fix it?


    Many thanks

  • What port are you using to connect?

    How is Ethernet connection setup made?

  • What port are you using to connect?

    How is Ethernet connection setup made?

    I finally fixed the issue by using LabVIEW 32-bit version. The LabVIEW version I was using was 64 -bit and the robot controller has 32-bit dual processor architect. I am using the third port on the robot controller and I use the IP address on the teach pendant. You need to have Robot Server and PCDK installed on your pc. The communication between the host computer and robot is done through the Robot Server.

Advertising from our partners