Discussion

Left ArrowBack to discussions page
Tim_SmithTim_Smith Posts: 37 Apprentice
edited October 2016 in Robot Safety
Hi DoF Community,

I am working on a project using Universal Robots, and the customer is very worried about safety. In this case, the customer is worried about the robot having to hit someone for it to stop. So I proposed using a light curtain or an area scanner to slow down the robot when a person comes within 3 meters and have the robot stop when someone is within 1 meter of the robot. Has anyone used a light curtain or an area scanner for increased safety on a Universal Robots cell? How easily can I interface the light curtain with the robot's controller? How can I communicate with the robot when the light curtain's signal is triggered?

Thanks,
Tim

Comments

  • BeachChEBeachChE Posts: 17Founding Pro Handy
    Tim,

    I have used a light curtain to slow down a UR3. The output of the light curtain is an input to the robot. Then using that input as a trigger for a thread to slow the UR3 down from 100% to 10%. You can do the same thing with a safety mat or a safety scanner.
  • matthewd92matthewd92 Posts: 477Founding Pro, Tactile Sensor Beta Testers Handy
    You can also have these input directly into the safety controller using the configurable inputs, then you can use reduced mode and set lower speeds, forces, moments, etc that are activated when the safety system is active.  You can also plug directly into the safety system and have the robot physically stop moving when the safety system is active and then resume as soon as the signal is returned to normal.  We have used this with safety mats to stop motion while someone is walking through the area and then automatically return to work once they have passed through.

    To do the auto stop/start you just wire the safety output into the safeguard stop of the controller



    If you want to use the thread route realize that this is technically not safety rated as there is no redundancy to the method and there is no guarantee that it would work every time unlike using the safety controller built in to the robot.   You will need to call the speed slider using a TCP socket but here is the instruction on how to do that.
  • Tim_SmithTim_Smith Posts: 37 Apprentice
    @BeachChE Thanks for the information. The light curtain's output would be interfaced to a digital input on the UR's controller?

    @matthewd92 Thanks for mentioning the option of using the safety controller. I hadn't thought of this option, and the fact that this option covers the redundancy is really great! So in my program I will have to monitor both the rising edge and the falling edge of the light curtain's. Could you share a snippet of code that explains how to use the logic signal from the light curtain or the safety mat to change the robot's speed?

    Thanks a lot for the information!
  • matthewd92matthewd92 Posts: 477Founding Pro, Tactile Sensor Beta Testers Handy
    @Tim_Smith you won't have to monitor anything, it will handle it for you if you use the safety controller.  If you use the safeguard stop the robot will pause movement whenever the safety system is breached, someone breaks a light curtain or steps on a mat.  If you use the configurable inputs you will need to tell the system what function you want it to have such as reduced power mode.  Either way, the system will handle the functionality for you.

    If you want to use the speed slider you would just have an event running that is looking for the digital input to change (either go low or high depending on if you are using the NC or NO output of the light curtain).  Once it changed you would send to the local host at port 29999 the speed slider percentage that you want it set at.

    Something like this:
     
        Event input=True #Set the speed slow
            socket_open("127.0.0.1",30002)
            socket_send_string("set speed")
            socket_send_string(.10)
            socket_send_byte(10)
            socket_close()

        Event input=False #Set the speed back to normal
            socket_open("127.0.0.1",30002)
            socket_send_string("set speed")
            socket_send_string(1.0)
            socket_send_byte(10)
            socket_close()
  • BeachChEBeachChE Posts: 17Founding Pro Handy
    Tim, Matthew is right that using the safety loop is better in that it will stop all motion, But I choose to slow down everything instead of stopping it. Here is the code that I use in a thread.

     Thread_1
         ok≔socket_open("127.0.0.1", 30002)
         speed_low≔0.03 (equals 3% on the slider)
         speed_high≔1.0  (equals 100% on the slider)
         Loop
           If LightCurtain≟ False   (LightCurtain is the name of my Input)
             speed≔speed_low
           Else
             speed≔speed_high
           socket_send_string("set speed")
           socket_send_string(speed)
           socket_send_byte(10)
           btnState≔LightCurtain
           Wait btnState≠LightCurtain


    As you can see in the last two statements, I set "btnState:=LightCurtain", then the wait statement holds the speed until the wait state is not equal to LightCurtain. Basically, while the input is on, the thread waits at the last statement.
    This works great if you want to have a two stage process, first slowing down the robot say at the 3 meters away, then go the safety circuit at 1 meter. We use the safety circuit with safety mats on some of our robots, not because of the robot, but because we are running a small press being fed by the robot. I choose the speed control because I am driving screws and a complete stop causes problems. Whereas the slow down is still fast enough to drive the screw most of the way into the part.
  • matthewd92matthewd92 Posts: 477Founding Pro, Tactile Sensor Beta Testers Handy
    @BeachChE have you tried just using the reduced mode with the safety curtain?  My understanding is you would be able to accomplish the same result by just reducing the allowable speed in the reduced mode.  I like what you have done there, my only concern is if its for true safety where someone could get hurt and therefore part of the Risk Assesment what would OSHA say about this approach since its not safety rated technically.  I know we had them in a while back on a different issue than the robot but they were very interested in how we doing safety and making sure that we were using safety rated parts in the safety circuit.
  • BeachChEBeachChE Posts: 17Founding Pro Handy
    Matthew, since in mu application, safety wasn't the issue (gap was small enough). The issue was moving at speed in a small area was the issue. Slowing down while an object was desired to reduce the chance of having a finer or hand pinched. We have had a couple of hands pinched at speed, but the robot did it's job and not harm was done to the hands. This particular robot works in a small area, less than 50 square inches.
  • SebastienSebastien Posts: 205 Handy
    @Tim_Smith
    We recently tested some light curtains for a client. So we decided to try the reduce mode of the UR. The setup was so easy. The light curtains that the client had were Reer Light Curtains. They have a way that you can wire them out such that they are in AUTO RESET mode. This is what we used in the video below. Then we hooked up the light curtains output to inputs of a safety relay. We then wired the output of the safety relays to the safety inputs of the UR controller. Then in the SAFETY setting of the UR we simply assigned the values of the plugged inputs to reduced mode. So in the video you see the robot going at roughly 3000mm/s and then switching to about 450mm/s when the operator moves his arms across the curtains. 


  • matthewd92matthewd92 Posts: 477Founding Pro, Tactile Sensor Beta Testers Handy
    @Sebastien could you have bypassed the safety relay and wired directly into the safety controller of the robot?  The only light curtains we have done were used to prevent a machine from being turned on by the robot if anything was breaking the beam so we used a safety relay to go into the machine.  We are about to deploy laser area scanners on a project and will post up some video once that is done.
  • SebastienSebastien Posts: 205 Handy
    @matthewd92
    I believe we could have bypassed our safety relay. However the light curtains are not the only safety devices in the robot cell. The way we manage our safety for E-stop and fences are through loops that if are open when a Estop or fence is open. Our light curtains are giving 0 or 24VDC depending on the state (broken or not) they are in. So to fit this in our usual loop we kept the relay.

    Does that make sense?

  • matthewd92matthewd92 Posts: 477Founding Pro, Tactile Sensor Beta Testers Handy
    Yep, our application with mats uses a mat controller which converts the mats into a safety relay which we then pull into the safeguard stop on the robot so that motion pauses when someone steps on the mat and resumes as soon as they are off the mat.


  • Tyler_BerrymanTyler_Berryman Posts: 114 Handy
    @Sebastien Nice video! What kind of accelerations did you use in both the reduced mode and the normal mode to get such a smooth transition? I used a safety scanner in the past and had trouble getting a smooth transition.

  • SebastienSebastien Posts: 205 Handy
    @Tyler_Berryman
    here is a picture for the values setup in the safety parameters. I did not save the program but my points in the program where linear points with 10mm blend radius, speed of 3000mm/s and accel of 2000mm/s2.


Sign In or Register to comment.
Left ArrowBack to discussions page