PLC to Robot Communication

  • Hello,


    This is my first post here, so I apologize if this topic has been covered beforehand or if I accidentally break any forum rules. I tried searching through the forums before this point, but I was unable to find what I was looking for. This is our first robotic cell that we are building by the way.


    To make a long story short, we currently have a LR Mate 200iD with a R-30iB Mate Plus controller. We have gone through and setup our VR Processes for our pick and place application. The robot is able to run by itself and we are now in the process of incorporating in our PLC to the system. We just have our PLC hardwired into the robot controller (ie, we are using the Terminal Converter Board). We are able to pass back and forth the necessary DO/DI for our system to work properly. At this point, we are manually starting the robot through the TP or by using the green start button on the front of the controller.


    The next step is for us to have the PLC tell the robot to start and stop. I can do that easy enough by means of a DI. What I really want to do is when the robot powers up, it will go to a default program (ie, let's call that program Main). In order to have the controller load this Main program, from what I can find online, it looks like I need to go into Menu -> Setup -> Program Select and change the Program Select Mode & Production Start Mode to Other. Is this the correct way to do this?


    I also saw that it looks like we potentially need to go into Menu -> Next -> System Config and have the following be done: Enable UI Signals set to True & Remote/Local Setup set to be Remote. In order for this to work, I also saw that we need to have UI1 -> UI3 & UI8 all set to ON for this to work. Do you need to have these particular UI set to be ON?


    At the end of the day, what I would ultimately like to do is have the robot boot to Main when turning on, wait for a particular DI turn on from the PLC/HMI, and then run Main. I am not sure if this is the easiest way to accomplish this task or not, which is why I have reached out to this forum.


    Thank you!

  • You are on the right track


    Do everything you stated, then:


    Set Production start method = UOP


    Use UI 18 to start the main program.


    Setup a UI for cstopi and set abort all by cstopi to true in the system config menu.


    Setup a UI for reset.

  • Thank you for that information. I will keep that in mind moving forward from this point.


    Before I move forward, I am having issues with my UI1 -> UI3 & UI8. I know that these values need to be ON. However, when I navigate to my UOP and I look at these UIs, I see that some of them are not turned on. From what I can see online, I think that they should all be turned on, correct? I started to look around at the CONFIGURE settings for the UI and I noticed that for the UI that is already ON, it has the following settings:

    • Rack: 35, Slot: 1, Start: 1

    For the UI that is set to OFF, it has the following settings:

    • Rack: 48, Slot: 1, Start: 21-25 (Start value depends on what UI I am looking at)

    Do I need to change the Rack/Slot/Start values to be the values shown above for the UI that is ON? I am still trying to learn what the different Rack/Slot/Start values correspond to.

  • When I set up my robot, I mapped UI[1-3] & UI[8] to the same physical input point, and let the PLC control all 4 at once with a single output.


    As far as what each rack is, this is a list that somebody posted on this forum a few years ago:

  • Thank you everyone for that information.


    I was able to use this information, along with other threads that I have found on this forum and I am now able to control our robot through our PLC (ie, stop/start). I was able to map the various UI to the necessary DI signals and everything seems to work like a charm.


    The only issue that my program only runs for one cycle. What I mean is that it goes through the Main program one time and after it finishes everything that it is supposed to do, it will sit there until I physically turn the TP to T1 mode. Turning the TP to T1 mode flags an alarm and I have to reset the alarm. Upon clearing the alarm and putting the TP back into Auto mode, the robot will run again for one cycle all over again.


    The robot is doing exactly what I want it to do, as in its overall movements and waiting for another start signal. What I would like it do is after finishing the first cycle, I would like the PLC to be able to command it when to start again. I am not sure what the best/easiest way to accomplish this would be, which is why I am reaching out. Not sure if I need to set something up in the TP itself or if there is a UOP that I can use to do what I would like to do.


    This is our first robotic cell that we are building and we are learning along the way. We appreciate all of your help. This forum is a great resource!

  • Looking back on what I initially typed up, I probably was not the most clear on what I am currently dealing with.


    What I am currently dealing with is the following situation (this is my Main program):

    1. UTOOL_NUM = 3
    2. UFRAME_NUM = 3
    3. OVERRIDE = 10%
    4. WAIT UI(18) = ON
    5. PR(90) = LPOS
    6. IF PR(90)'s Location Does Not Match PR(70)'s Location THEN
      1. I look at the individual XYZ, yaw, pitch, and roll at this step
    7. Call HOMING
      1. This is a subprogram that puts the robot back to PR(70)
    8. ENDIF
    9. L PR(70) 100 mm/sec CNT100 Offset, PR(31)
      1. PR(31) causes the robot to move in the +Y direction 100 mm
    10. END

    Basically what this program does is moves the robot from PR(90) -> PR(70) -> PR(70) with the PR(31) offset. I am able to go through and have this program start from Line #1 via PLC/UI(18) no problem whatsoever. Upon the program getting to Line #10 it jumps back to Line #1, like it should. In the Status Bar at the top of the TP, it shows the message shown below.








    At this point, I turn off UI(18) from the PLC and the TP program jumps to Line #4. The Status Bar at the top of the TP now says "MAIN LINE 4 AUTO RUNNING", RUN is highlighted in green, and BUSY is highlighted in green, as well. Once I turn back on UI(18), I figured that the program would move onto Line #5 and go through the rest of the program again. However, that is not the case. When I turn back on UI(18), I can see that the TP goes through the rest of the code extremely quick, but the robot does not move. The program goes back to Line #1 and the "MAIN LINE 0 AUTO ABORTED" message pops up again.


    I figured that the robot would just cycle through the program again and do its necessary movements again, but it is not doing that. At the end of the day, I would just like to be able to cycle UI(18) ON & OFF, which would then tell the robot to continue on from Line #4 when it is waiting for the UI(18) signal to turn back ON. I am sure that I am misunderstanding something, so any type of input would be appreciated!

  • You normally would not use UI[18] in your program. That is used in the background by the robots operating system to start your program as long as you have it setup correctly in the Prog Select menu. Set your program select to start your main program and set program start to UI.


    Also set your system config correctly.


    Then your PLC should just pulse the UI 18 signal on for a brief amount of time, not hold it on. The robot will start the main program from line 1 when that signal is pulsed. Generally holding it on doesn't work because it's supposed to be a falling edge.

  • You normally would not use UI[18] in your program. That is used in the background by the robots operating system to start your program as long as you have it setup correctly in the Prog Select menu. Set your program select to start your main program and set program start to UI.


    Also set your system config correctly.


    Then your PLC should just pulse the UI 18 signal on for a brief amount of time, not hold it on. The robot will start the main program from line 1 when that signal is pulsed. Generally holding it on doesn't work because it's supposed to be a falling edge.

    Thank you for that information. I will be sure to change my program to not have UI(18) in it. I am pretty sure that I have everything else set up correctly (ie, Prog Select settings & System Config settings) like we had previously mentioned above.

  • My issue ended up being something with how I had my HOMING program setup. I had to change a few things inside that subprogram, but it seems like I should be good to go. Thanks for all of the help!

  • I know this thread is dying, but I have the same bot and controller and I'm having issues getting my control logix PLC to work properly with r-30ib controller so than I can use panel view plus HMI to run program I've created...can anyone walk me through this from start to finish or should I create my own thread?

Advertising from our partners