Preface Universal-Robots CB2 Forum:

Also checkout the new CB3 forum

This forum provides some in depth help and how to use the Universal-Robots version CB2.

After reading this forum you will be able to use and program the Universal-Robot (UR).

Please help us to improve this forum and blog by contributing with your own experiences: Ask questions and help to answer questions yourself and network with other Universal-Robot users.

Templates and Knowledge Base Overview CB2:

Index:

Home

General FAQ

User

Programming

Zacobria home page

UR CB3 forum

Zacobria Webshop

Contact

Author:
By Zacobria Lars Skovsgaard
Accredited Universal Robots support Centre and Forum.

 

Disclaimer: While the Zacobria Pte. Ltd. believes that information and guidance provided is correct, parties must rely upon their skill and judgement when making use of them. Zacobria Pte. Ltd. assumes no liability for loss or damage caused by error or omission, whether such an error or omission is the result of negligence or any other cause. Where reference is made to legislation it is not to be considered as legal advice. Any and all such liability is disclaimed.

If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.

Author:
By Zacobria Lars Skovsgaard
Accredited Universal Robots support Centre and Forum.

Also check out the CB3 forum



211 thoughts on “Preface Universal-Robots CB2 Forum:

  1. Yingchen

    I currently use URScript to connect my program on my laptop to the UR robot. I don’t know how to determine if a movement is finished.

    When I send one movement command, say moveL, to the robotic arm. The moveL command will block until the movement is finished so that I can use UR script to send a socket message back to my laptop to know when the movement is finished, which is good.

    However, if I pass a ‘blend’ parameter to the moveL function, it will not block, because it expects me to send further moveL functions which enable it to blend the series of movement. Because of this feature, I could not know when the series of movement is finished. I tried to get the speed of the robot, but it seems like there is always some delay.

    Is it possible for me to get a notification or something after the robot finishes the movement?

    Thank you very much!

    Reply
    1. zacopressadmin Post author

      Hi Yingchen

      Thanks for the question.

      How are you sending the commands from the Laptop ?

      How are you receiving the feedback from the robot ?

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
      1. Yingchen

        Thank you for your reply

        * How are you sending the commands from the Laptop ?

        I made a socket connection to the robot and send messages to it, then I receive the message from the URScript.

        * How are you receiving the feedback from the robot ?

        I sent feedback from the URScript using the same socket connection.

        Reply
        1. zacopressadmin Post author

          Hi Yingchen

          Yes but what is the command send to the robot ?

          And what is the function that send the data back from the robot ?

          Is there a UR script running on the robot ?

          Maybe can show th code that does this communication ?

          Author:
          By Zacobria Lars Skovsgaard
          Accredited Universal Robots support Centre and Forum.

          Also check out the CB3 forum



          Reply
  2. Richard Budd

    Hello

    I have an issue I can’t currently resolve.

    I have a programme which contains a large number of variables. I want to change some of the variables from programme variables to installation variables, but cannot find a way of doing so, as even if I delete all references to an individual variable, Polyscope will still not allow me to create a new installation variable of the same name as a variable which has previously existed within the programme.

    How can I overcome this? Ultimately I want to write the pgorammes such that editing a variable common to a number of programmes at a later date is a straightforward process, rather than having to edit each programme individually.

    Thanks.

    Reply
  3. Richard Budd

    Hi all

    I am programming a UR10 and would like to configure a boolean assignment from the operator from a button on a control panel. I cannot see any obvious way of doing this within Polyscope. Is there a way I can configure Yes/No/Enter to a button/input?

    Thanks.

    Reply
    1. zacopressadmin Post author

      Hi Richard

      Thanks for the question.

      It is possible to assign variables from the panel. If Yes(No is choosen then the variable becomes boolean.

      More information for assigning variables from opperator control panel at this link

      http://www.zacobria.com/universal-robots-knowledge-base-tech-support-forum-hints-tips/knowledge-base/operator-input-variables/

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
      1. Richard Budd

        Thanks for the quick reply.

        I don’t think I explained myself very well sorry.

        I understand how to use variables and assignments, and I have an assignment set to operator input, and a yes/no input from the operator.

        At present, this brings up a popup on the teach pendant asking for a yes/no.

        I would like to be able to use I/O to answer this popup, i.e push a button for yes rather than having to touch the screen. Is this possible?

        Reply
        1. zacopressadmin Post author

          A popup can be also closed via the dashboard server at port 29999.

          More informations at this link for the dash board server.

          https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/dashboard-server-port-29999-15690/

          Author:
          By Zacobria Lars Skovsgaard
          Accredited Universal Robots support Centre and Forum.

          Also check out the CB3 forum



          Reply
    1. zacopressadmin Post author

      Hello Balazs

      Thanks for the question.

      There is no loadcell on the robot by default. Is it the force you are looking for ?

      Do you have a polyscope program where you get the value now ?

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
      1. Balázs Regele

        Hello Lars,

        Thanks for your fast reply.
        I would like ot get the same value as I set in the Installation/TCP configuration/Payload field.

        Regards,
        Balázs

        Reply
        1. zacopressadmin Post author

          Hello Balazs

          I have not seen how this value can be read – there is a “set_payload”.

          If there is a Polyscope program running on the robot – and there are ftp access to that Polyscope program – then the “set_payload” can be found in the .script file.

          Author:
          By Zacobria Lars Skovsgaard
          Accredited Universal Robots support Centre and Forum.

          Also check out the CB3 forum



          Reply
  4. Shan

    I’m trying to call waypoints from external computer. Program running in UR is looks like this.
    switch var_1
    case 1
    waypint1
    waypint2
    var_2 = 1 # verify robot is in waypoint2
    case 2
    waypint1
    waypint3
    var_2 = 2 # verify robot is in waypoint3

    I tried to set values to var_1 and read var_2 with python socket. It seems like user defined variables can’t be set with sockets. What is the best way to achieve this? Thanks.

    Reply
    1. zacopressadmin Post author

      Hi Shan

      Thanks or the question.

      It is possible to store a numeric value in a MODBUS register and then read the same MODBUS register from at external device.

      Some more informtions at this link

      http://www.zacobria.com/universal-robots-knowledge-base-tech-support-forum-hints-tips/knowledge-base/modbus-internal-registers-read-and-write/

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
      1. Shan

        Thank u for the reply.
        With sockets we can set digital outputs as , s.send (“set_digital_out(2,True)” + “\n”). If I have defined a variable as val_1 in robot, how can I set value of that variable via socket? can I use something like this? s.send (“val_1 = 1” + “\n”)

        Reply
        1. zacopressadmin Post author

          Shan

          Thanks for the question.

          If the variable “val_1″ is created and is part of a Polyscope program then it cannot be written to in this way because it is embedded inside Polyscope.

          It is possible to exchange variables values with an external device for example through a MODBUS register. Some more information about MODBUS at this link.

          http://www.zacobria.com/universal-robots-knowledge-base-tech-support-forum-hints-tips/knowledge-base/modbus-internal-registers-read-and-write/

          Also some more general information regarding socket connections at this link.

          https://www.zacobria.com/universal-robots-knowledge-base-tech-support-forum-hints-tips/universal-robots-script-programming/

          Author:
          By Zacobria Lars Skovsgaard
          Accredited Universal Robots support Centre and Forum.

          Also check out the CB3 forum



          Reply
  5. Maria

    Hello,

    I would like to Start, Stop and Change a UR10 through a Rockwell PLC. I have checked the connection between PLC (Allen bradley) and the robot controller. Is that possible to achieve these functionalities? Thank you.

    Reply
    1. zacopressadmin Post author

      Hello Maria

      Thanks for the question.

      I am not familiar with Rockwell PLC, but the robot has a “Dashboard” server running on TCP port 29999 where it is possible to start and stop the program.

      More informations at this link.

      https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/dashboard-server-port-29999-15690/

      I am not sure what you mean with “change” ?

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
  6. jingwei

    Dear Mr Lars
    Could you help me solve the robotic issues?
    1. Our ur10 cannot be initialized by the panel.
    2. When opening the display,it shows that configuring network interface (failed)
    3. Setup UR—->Initialize UR——> No controllers (including all joints).
    Thanks a lot for your help.
    Best regards
    Huixu

    Reply
    1. zacopressadmin Post author

      Dear Jingwei

      Thanks for the question.

      A miss configuration of the network.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
  7. Tasbolat Taunyazov

    Hello,

    Our institution bought several UR5, UR10 robots and I’m doing some tests on that robots.

    Currently we have CB2 controller and it has servoj() command to give some specific pose to the UR. We do this action frequently in real time, so we give the new pose before robot reaches the previous one. However, this transition is jittery (not smooth). The new version of the controller CB3 also has servoj() command, however with that robot moves smoothly. So, at this moment I have two questions:

    1. Is there any difference in the implementation between CB2 and CB3 for servoj() command? Can we achieve same result with CB2 if CB3′s servoj() is different?

    2. Is it possible to update CB2 controller with CB3 with replacement of hardware?

    Reply
    1. zacopressadmin Post author

      Hello Tasbolat

      Thanks for the question.

      Yes there are big differences in a CB2 compared to a CB3 robot and the hardware is also very different. The joints in the arm of a CB3 uses for example different encoders of absolute type and the master control board inside the controller unit is also very different.

      So to upgrade from a CB2 to CB3 would require to replace all the joints in the arm and change the controller unit as well which is virtually replacing the entire robot.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum



      Reply
  8. Troy Sun

    Hi,
    I have question about communicate between AB PLC and UR. I follow the step which provided by UR website but I couldn’t get a link up. I see the problem in UR Ethernet/IP LED indicates which change between yellow and green, it should be a solid green. We also changed the IP address of the UR robot. Can you help me with this?

    Reply
    1. zacopressadmin Post author

      Hi Troy

      Thanks for the question.

      Are you using the “Ethernet/IP” option in the UR – and did you enable it under Installation tab ?

      Are you using a direct (one cable) from PLC to UR robot – maybe consider to use a hub in between.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.


      Reply
        1. zacopressadmin Post author

          What is the
          IP address – Subnet mask – Default Gate way settings on the Robot ?
          IP address – Subnet mask – Default Gate way settings on the PLC ?

          Reply
          1. Troy Sun

            Robot is 172.20.2.254 255.255.255.0
            PLC is 172.20.2.107 255.255.255.0
            both without default gateways.

          2. zacopressadmin Post author

            Maybe consider to give the robot an address closer to the PLC e.g. 172.20.2.108 if it is free and configure that in the PLC part as well.
            Maybe also consider to configure the Default Gateway in both.

  9. sdow

    Hi i would like to use a commend script code .

    If some body can help me what is my error in this script :

    def GoDownLiToForce(forceZ ,z):

    local posa=get_actual_tcp_pose()

    while force() < forceZ

    local pose1=pose_sub(get_actual_tcp_pose(),p[0,0,z,0,0,0])

    movel (pose1,1,0.25,0,0)

    end
    end

    Reply
    1. zacopressadmin Post author

      Hi Miljan

      Thanks for the question.

      I tried the program on a real computer and there seems to be a missing : (colon) at the end of the while statement.

      while force() < forceZ:

      Also use a indent before the first "local posa...." statement (under the "def..." line.

      And then use 2 indent before the second "local pose1...." statement.

      And one indent before the second last "end" statement.

      Then I run the program slowly at 10% and call the script with parameters forceZ value of 100 and the z value of 0.2 and the program runs and the robot moves downwards from its current position.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
        1. zacopressadmin Post author

          Hi Miljan

          See the answer to your same question at

          http://www.zacobria.com/universal-robots-knowledge-base-tech-support-forum-hints-tips/knowledge-base/functions-1/#comment-1377

          Author:
          By Zacobria Lars Skovsgaard
          Accredited Universal Robots support Centre and Forum.

          Also check out the CB3 forum


          Reply
  10. Jens

    Hi Lars,

    we currently try to program a handguidance function on our ur10 (cb2) by using a Force-Torque-Sensor FT-300 by Robotiq. (Similar to the ActiveDrive-function on CB3.1+)
    We are using the speedl-comand in a loop in combination with a parallel updated speed-vector which is discribed by the measured force/torque. That works a little bit jumpy. Furthermore the transformation of the movement seams to be wrong. The speedl-command moves the robot in base-frame, but the speed-Vector based on the torque should move the robot in tcp-coordinates. A transformation of the speedl-vector doesn’t work. Do you have a solution for our Problem? Is this the right approach or should we use annother command to realize the handguidance?

    Best regards and many thanks for your help

    Jens

    Reply
    1. zacopressadmin Post author

      Hi Jens

      Thanks for the question.

      Yes the speedl moves the robot in the base frame – which might be fine in such an application because the direction of the pull on the force torque sensor can also be in the base frame and seems easier for the user to relate to.

      The bumby move might be because of acceleration/decelaration when a new speedl command is provieded – so therefore maybe consider to let the speedl command run as long as there is no change in force and direction (the force might be the desired speed) – by having a longer time for the speedl – and therefore only provied a new speedl command when there is change.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
      1. Jens

        Hi Lars,

        Thanks for the fast answer!

        For our application it is essential to move the an rotate the robot in toolspace. We realized it by transforming the speedvector with trans_pose(…) -> force and torque seperate. That works…we move the robot in toolspace.
        However the bumpy behaviour we couldn’t solve, although we modified the parameters (accelleration, decelleration, tolerance in Force/torque, time for next speedl-command…)
        Is maybe the movel-command the better way, because of the available blend-radius? Or has the version of our UR CB2 too less processing power for the “realtime” calculation?

        Greats

        Jens

        Reply
          1. Frederik

            Hi Lars,

            Great work you’re doing here!
            Jens and me work together and we bought a new UR10 with CB3 because we couldn’t get the movement smooth. The Active Drive Toolbar works just perfect but the new robot has the bumpy behaviour as well with our script.

            Therefore we wonder if one could access the Active Drive Toolbar through script-code so we can en-/disable it e.g. when a digital input changes.

            Regards and thanks again for your effort.
            Frederik

          2. zacopressadmin Post author

            Hi Frederik

            Thanks for the question.

            I have not seen such a function to disable the active drive via an input.

            Author:
            By Zacobria Lars Skovsgaard
            Accredited Universal Robots support Centre and Forum.

            Also check out the CB3 forum


  11. Dhanushka Chamara Liyanage

    I’m getting an error “C153A0 Protective Stop”. It happens even if I just press the safety release button on the back side of the teach pendant.

    Sometimes it may disappear without doing anything. Please can you help me to resolve this problem.

    PS: Is there a way to reset the robot system into factory settings or default setting?.

    Reply
    1. zacopressadmin Post author

      Hi Dhanushka

      The button on the back side of the teach pendant is the “teach” button – it is not for safety release ?

      When this messages appear is the robot meeting any obstacle – or running fast with changing direction ?

      Is there any other messages in the Log window related to this messages ?

      A restore from a backup will set the robot controller back to the state of the backup, but not the joint firmware in the arm which is best to update or downgrade by following the sequence of version updates one by one and not skip over updates or downgrades.

      The settings can be set to default by creating a new default file in the Installation – Load/Save menu.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
      1. Dhanushka Chamara Liyanage

        Thanks Lars,

        “When this messages appear is the robot meeting any obstacle – or running fast with changing direction ?”
        – It is not meeting any obstacle or I’m not moving it fast. I checked it by reducing the speed 10-15%. Still problem persists. I’m not commanding to change directions. Always tried to move in one direction to teach another waypoint. It seems error msg only occur when I try to move the “Base – J0″.

        No any other messages in the log.

        Reply
  12. Bukeikhan Omarali

    Hello everyone!

    Could you tell me if it is possible to read UR5 CB2 state data through 30001, 30002 or 30003 without having to run a custom urscript on the polyscope. I am trying to build a real time control and I am in desperate need of some feedback from UR. So far data that I listen from 30003 looks like meaningless hexs. Or am I parsing them wrong?

    Reply
    1. zacopressadmin Post author

      Hi Bukeikhan Omarali

      Thanks for your question.

      These data are Matlab data. I have not used them, but there are some informations at this link – where there is a file client_interfaces.xlsx that can be downloaded.

      http://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/remote-control-via-tcpip-16496/

      And I think some more informations at this link.

      http://www.mathworks.com/matlabcentral/fileexchange/50655-ur5-control-using-matlab?requestedDomain=www.mathworks.com

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
      1. Bukeikhan Omarali

        Thank you! It was very helpful. Our parsers are now up and running. However sometimes we get very strange readings from our UR5. During real time tests (that is we send motion commands through 30003 port get feedback adjust and send more motion commands etc) both actual and target joint angles deviates by up to 0.3rad from real ones. For instance the robot have just been in its rest position at [0, -pi/2, 0, -pi/2, 0,0] and it starts moving slowly and next iteration the feedback gives [0, -pi/2+0.3rad ...] although in reality it has only been moving for mere milliseconds. So far we have only seen this behavior during real time tests. Is the both ways communication the source of the error?

        Best regards
        Bukeikhan Omarali

        Reply
          1. Bukeikhan Omarali

            In terms of algorithm it goes like this:

            per iteration:
            solve IK for new tool position q
            receive ‘q actual’ through 30003
            set path from ‘q actual’ to q using speed
            send speedj to 30003

            So far I am running it at 10Hz. I have also made a version where I get the feedback from 30002 which works fine but I want to increase the frequency which I believe only possible using 30003

          2. Bukeikhan Omarali

            Also while I am at it. I believe ‘q target’ is same as ‘q actual’ just without noise. I have thought it would be same as send but tests proved me otherwise.

  13. Askhat

    Hi, dear all!

    We are trying to do some real time control of UR5 CB2 with 1.8 software. Can we use 30004 port? Do we need an upgrade of SW for it?

    Reply
    1. zacopressadmin Post author

      Hi Askhat

      Thanks for the question

      I notice that at this link below it says that the real time examples are valid from version 3.3.

      http://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/real-time-data-exchange-rtde-guide-22229/

      A CB2 robot cannot be upgrade with software version 3.3 because it is different hardware.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
  14. Faisal Saeed

    Hi,

    Can you upload and convert the program between CB3 to CB2 if you are working on offline simulator (Virtual Machine).

    Thanks,
    Faisal

    Reply
      1. GANESH P

        Hi Lars,
        Thanks for your reply,
        I have one more doubt, how reliable the UR10/ CB3 movement when moving with command(X,Y,Z,Rx,Ry,Rz) from GUI and when we the robot is teached to move by way-points , when the robot is lifting some weight.

        Best Regards
        GANESH P

        Reply
  15. GANESH P

    Hi Lars,

    We are doing the remote power on of the UR10 controller with out teach pendant, so because of the error message such as “Robot position verification” we find could not able to do brake release and proceed further with normal operation of the robot, is there any other way with out the help of teach pendant we can avoid those error messages.

    Best Regards
    GANESH P

    Reply
  16. Srinivasan

    Dear Mr.Lars,
    We have a problem in releasing the break.We could not able to release the break when the teach pendent is not connected. But we could able to power it on with the GUI even if teach pendent is not connected to UR-10. What might be the issue?

    Reply
  17. GANESH P

    Hi Lars,

    We have connected some configurable I/O to a safety sensor, is it possible to stop the UR10/CB3 arm movement automatically by hardware interlock when that particular I/O is triggered.

    Thanks & Regards
    GANESH P

    Reply
    1. zacopressadmin Post author

      Hi Ganesh

      Thanks for your question. The configuarable inputs can for example be used for Safeguard Reset or Emergency stop or Reduced mode.

      To stop the robot on an input the plug to the left named “Safety” and the terminals “Safe guard stop” can be used to stop the robot with a safety sensor.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
  18. GANESH P

    Hi Lars,

    How do i read configurable inputs in UR10/CB3 by a script command for e.g for digital inputs we have get_digital_in(n), like this is there any way to read a configurable I/O from script commands
    Thanks in advance.

    Thanks & Regards
    GANESH P

    Reply
  19. joonas

    Hi

    I have an issue with run program.
    Program will not start if i perform run program.
    RObot has been installed Robotique 2fg gripper. Gripper has been added into the code as subprogram and as call subprogram. So it would not be the case.
    If I play with modbus settings then finally it starts to work. Seems like it does not to understand that there is a gripper.
    Maybe to add some script into the program to call the gripper settings active or… ?
    Can you troubleshoot please? :)

    Reply
    1. zacopressadmin Post author

      Hi joonas

      Thanks for your question.

      Regarding “Play” – Are you using the Play symbol on the screen to start the program – or sending a command to start the program ?

      What is “it” you mean is not the case ?

      The “play” with MODBUS does that mean start the program or is the gripper working ?

      Are the gripper using serial and connected to the USB port – or using TCP connected via Ethernet ?

      Did you install the Robotiq driver onto the robot ?

      To troubleshoot a way can be to take out some code and see if the program can play – and then add line by line to find out which one is causing the issue.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
  20. Bill

    Hello Lars,
    we are attempting to change out a bad joint from a ur2 to ur3. When we try to change the software package to the newest version, we get a unable to unpack error. Do you have any suggestions? Thank you.

    Reply
    1. zacopressadmin Post author

      Hi Bill

      Thanks for your question.

      To my knowledge it is not possible to move joints from the older CB2 to newer CB3 robots.

      The other way is possible from CB3 to CB2 with a special kit that follows when a new CB3 replacement joint for CB2 is ordered.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
  21. GANESH P

    Hi Lars,
    I need to change the coordinate of the robot axis for ex: x to -x and y to -y is there any one time setting.

    Best Regards
    GANESH P

    Reply
      1. GANESH P

        Hi Lars,
        We have removed the controller from UR10 and mounted it at some other place, when we turn on the controller it is getting powered up but robot is not powering up but teach pendant is working fine we cannot able to solve the issue can you suggest us any solution.

        Thanks & Regards
        GANESH P

        Reply
          1. GANESH P

            Hi Lars,
            This is the error code which we are getting CODE_4A93 Packet Counter disagreement in packet from processor A to joints.

            Thanks & Regards
            GANESH P

          2. GANESH P

            Hi Lars,
            This is the error log which is printing in Teach Pendant:

            Polyscope 3.1.18213(Aug 10 2015) s/n: xxxxxxxxx
            Connecte to controller
            URControl 3.1.18213 (Aug 10 2015)
            Safey checksum changed to E156
            Safey checksum changed to E156
            C100A1: Robot changed mode: Conform Safety
            C101A0: Real Robot connected
            C100A1: Robot changed mode: Robot disconnected from the controller
            C100A1: Robot changed mode: Conform Safety
            C50A83: Robot power up issue: Last CPU reset caused by software reset
            C4A94 : Communication issue: packet counter disagreement in packet from A to B
            C101A0: Real robot connected
            C100A2: Robot changed mode booting
            Safety mode changed to normal mode
            C100A3: Robot changed mode :power off
            C4A93: Communication issue: packet counter disagreement in packet from A joints

            Thanks & Regards
            GANESH P

  22. Srinivasan

    Dear Mr.Lars,
    Is it possible to change the global coordinates of the universal robot.I need to change the sign of the coordinate axis.

    Reply
    1. zacopressadmin Post author

      Hi Srinivasan

      Thanks for your question.

      It is possible to create a new plane in the features menu and then use this plane as reference in the program.

      Or you might consider to create a pose variable and then do a trans_pose with a offset variable to create a desired variable with reference to the global cordinate.

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Also check out the CB3 forum

      Reply
        1. zacopressadmin Post author

          Hi Srinivasan

          No its to be part of each calculation when working with cordinates.

          Regards
          Lars

          Reply
          1. zacopressadmin Post author

            Hi Srinivasan

            I am not sure what you mean by “global coordinate” – when creating a plane – you need to reference to that plane in you program.

            Regards
            Lars

  23. GANESH P

    Hi Lars,
    When the base rotates I am getting the Protective Stop: as Sudden Change in Target Speed. Is there any way to avoid the issue.

    Thanks & Regards
    GANESH P

    Reply
  24. Adam Beachy

    Is it possible to use force to “probe” for 3 points in order to set up a plane during a program? I was hoping to be able use this as like a form of calibrating the robot periodically to keep the waypoints in the correct position to prevent a misstep.

    Reply
          1. Adam Beachy

            Here is my code. Program
            Init Variables
            BeforeStart
            Back_of_table_var≔Base
            Gripper_assignments
            Script: rq_before_start.script
            Script: rq_script.script
            rq_gripper_act≔0
            rq_obj_detect≔0
            rq_mov_complete≔0
            rq_pos≔0
            rq_force≔12
            rq_speed≔255
            Robot Program
            Folder
            MoveJ
            Waypoint_7
            Waypoint_3
            Loop force()<95
            MoveL
            Waypoint_1
            If force()≥95
            get_actual_tcp_pose()
            Point_9_var≔get_actual_tcp_pose()
            Point_9_var≔Point_9
            MoveL
            Waypoint_9
            Waypoint_4
            MoveJ
            Waypoint_5
            Waypoint_6
            Loop force()<95
            MoveL
            Waypoint_8
            If force()≥95
            get_actual_tcp_pose()
            Point_10_var≔get_actual_tcp_pose()
            Point_10_var≔Point_10
            MoveL
            Waypoint_2
            Waypoint_10
            Waypoint_13
            If Point_9_var≟Point_9 and Point_10_var≟Point_10
            Back_of_table_var≔Back_of_table
            x≔1
            If x≟1
            MoveL
            Waypoint_11
            Waypoint_12
            Waypoint_14
            Waypoint_15
            Halt
            Thread_1
            force_value≔force()
            Wait: 0.01
            I created a variable line feature and used the variable points in my program. The Move L at the end of the program is suppose to run the length of the table about an 1/8 inch away from the edge. I ran the program and when it was searching for the edge of the table I inserted a thick piece of metal to offset the points from the table in hopes that the Move L would adjust accordingly and be further away from the table, that did not work. Any feedback or advice would be appreciated. Thanks.

          2. zacopressadmin Post author

            Hi Adam

            Instead of using the build in feature and plane I meant to probe positions with the force function function similar as you have done here – and then offset to these points either static add X, Y, Z offset or maybe use pose_trans function.

            Author:
            By Zacobria Lars Skovsgaard
            Accredited Universal Robots support Centre and Forum.

            Also check out the CB3 forum

  25. Srinivasan

    Dear Mr.Lars,
    I am facing issue with trajectory path of ur-10 CB3 robot.So Can you please help us to define trajectory path.

    Foe Ex:
    I am defining one tcp of X,Y,Z the base should rotate in anticlock wise but its rotating in clockwise.Please help us to solve this issue.

    Reply
  26. Srinivasan

    Dear Mr.Lars,
    We are facing issues while robot lift up the load of 6kg and it gives protective stop. What might be the issue.

    Reply
  27. Sebastian

    Hi Lars,

    I’m trying to move the Robot on an anticlockwise circle.
    I’ve been trying it with:

    tpm:=2500
    track_conveyor_circular(tcp_center_new,tpm,false)

    (for tcp_center_new i move the tcp_pose 1100mm in x direction)
    It works fine, the robot does a circle aorund the the new tcp_center,
    but it moves clockwise, is there a method to let the robot move anticlockwise?

    If needed i can give you the complete code.

    Regards
    Sebastian

    Reply
      1. Sebastian Isenberg

        Program
        Init Variables
        Robot Program
        If digital_in[3] = True
        MoveJ
        Waypoint_1
        tcp_pose=get_actual_tcp_pose()
        tcp_change≔p[0,0.1100,0,0,0,0]
        center1=pose_trans(tcp_pose,tcp_change)
        //sets the TCP_pose 1100mm left
        tpm≔count+2500
        rotate_tool≔False
        track_conveyor_circular(center1, tpm, rotate_tool)
        Wait torques_1≥35
        //when the resistance gets to high the movement is stoped
        stop_conveyor_tracking()
        ElseIf digital_in[4] = True
        MoveJ
        Waypoint_1
        tcp_pose=get_actual_tcp_pose()
        tcp_change≔p[0,-0.1100,0,0,0,0]
        center1=pose_trans(tcp_pose,tcp_change)
        //sets the TCP_pose 1100mm right
        tpm≔count+2500
        rotate_tool≔False
        track_conveyor_circular(center1, tpm, rotate_tool)
        //in this case the Robot should move anticircular
        Wait torques_1≥35
        //when the resistance gets to high the movement is stoped
        stop_conveyor_tracking()
        Halt
        Thread_1
        count≔count+1
        set_conveyor_tick_count(count)
        Wait: 0.01
        Thread_2
        torques≔get_joint_torques()
        torques_1≔torques[1]
        Wait: 0.01

        This is my code to do the circular move. I check with a camera wich side is relevant and move the robot to a point, depending on which side the robot is it should make a circular move clockwise or anticlockwise. The clockwise move works well and the move is stoped when the torques is getting to high, but I don’t know how to make the robot do an anticircular move.

        Regards

        Sebastian

        Reply
  28. Prasath

    Hi Lars,

    I am trying to move UR10(CB3) robot with respect to TCP from current position to target position. while moving the robot, it move towards clock wise direction, but i want to move the robot counter clockwise direction. For that i need to define trajectory path, So please help me to define the path.

    ie., the robot arm should be in other direction instead of current direction

    Thanks and Regards,
    Prasath

    Reply
      1. Prasath

        Hi lars,

        No, With reference to base. TCP should be remains in the same position and base has to rotate in counter clockwise, without moving TCP?

        Reply
  29. PRASATH S

    Hi Lars,

    When we apply payload, we could able to lift up the object, but when we are trying to move from that location to some other waypoint, it is giving an error “Wirst 1 position deviated from path”. We are running the robot using script not using panal.

    Following is the script we used to set the payload, we are not sure about the COG, please suggest me what we are doing wrong..
    “setpayload(8)”

    Note: The same we tried with teachpendent, but there it is working fine, we could able to move the robot with the objects..

    Thanks and Regards
    Prasath

    Reply
    1. zacopressadmin Post author

      Hi Prasath

      Also check out the CB3 forum

      It is difficult to say when the code is not shown.

      There can be different reasons for this – maybe some parameter setting for speed and acceleration etc.

      If you have a similar program made in the pendant – then looking in the x.script file of that program might help to see how the robot settings are when made in GUI.

      Which robot type ? – and how heavy are the object ? and the X, Y, Z distance of the object from the TCP ?

      Here is an example of Payload of 2.0 Kg and COG CX ? 10.0mm, CY = 20.0 mm, CZ = 30.0 mm

      set_payload(2.0, [0.01, 0.02, 0.03])

      Author:
      By Zacobria Lars Skovsgaard
      Accredited Universal Robots support Centre and Forum.

      Reply
  30. GANESH P

    Hi Lars,

    We have tried to convert from TCP to Joint angle with “get_inverse_kin(x)” and move the robot with “movej” script command, But while running the code we are getting the error message as “getinverse:FUNCTION DIDNOT FIND A SOLUTION”.

    Thanks & regards
    Ganesh P

    Reply
      1. Ganesh

        Hi Lars,

        the Codes, i have tried follows

        Move_To_Joint_Temp = get_inverse_kin(Move_To_Pos)
        movej(Move_To_Joint_Temp,acc,velo)

        Also,
        movej(Move_To_Pos,acc,velo)

        Thanks & Regards

        Ganesh P

        Reply
  31. GANESH P

    Hi Lars,

    When I power on the UR10 robot, payload is by default at 10kg in UR10 CB3 controller, So how do i remove so that it remains at 0kg.

    Thanks & Regards
    GANESH P

    Reply
      1. GANESH P

        Hi Lars,

        I too tried with one client only i need to check with multiple clients if i got it working i will update you soon

        Best Regards
        GANESH P

        Reply
        1. Ganesh

          Hi Lars,

          i have tried multiple client communication in dashboard server, The multiple client communication is established and we can able to commands via those connections.

          Thanks & Regards
          Ganesh P

          Reply
  32. srini

    Hi Lars,
    After switch on the power button in UR10 CB3 controller we get the message as
    The Robot cannot Proceed with Normal Operation
    .Robot :No controller
    Go to initialization screen
    Is this the message we get after we switch on the power button

    Regards
    srini

    Reply
    1. Mal Ramis

      Hello Srini. Did you ever get this fixed? I am having the same issue… Really could use the help, pretty urgent.

      Thank you.

      Mal

      Reply
  33. GANESH P

    Hi Lars,
    QUES 1: REGARDING SINGULARITY
    If i move from random position to random position in UR10 robot i get singularity issues, is there any method to overcome the issue before i choose the coordinate values.
    QUES 2: REGARDING INTERMEDIATE POSITIONS
    How do i determine intermediate positions between two different positions.
    QUES 3: REGARDING PAYLOAD
    If i move the robot with 10 kg of payload but there is not load in the robot why the robot movement is behaving differently, is it necessary to take care of payload while loading and unloading .

    Best Regards
    GANESH P

    Reply
    1. zacopressadmin Post author

      Hi GANESH

      1.
      A way that can be considered is to have safe waypoint positions on the way from the current position cordinates to the target position cordinates.

      2.
      You can consider to choose some intermediate positions that is known to be safe and valid pose for example by testing and verifying the safe positions beforehand.
      By using get_actual_tcp_pose you can know which area (polarity of for example X – Y – Z) of a cordinate system the robot is currently located – and if your target if in another area where for example X or Y or Z has change polarity then consider to to a safe position or positions that is inbetween these from and to cordinates.

      It can help a lot to use the GUI programming because then it is easy to see where a valid safe position is on the way to next position.

      3.
      Yes in TCP configuration you can set the TCP payload and center of gravity. And you can also set payload together with a I/O activation for example when you pickup a load.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Support Forum.

      Reply
  34. Erik

    Hi everyone,

    I have a UR 10 with controller version 1.8.11281.

    I am trying to make it interact with a 3D sensor that gives me the x,y,z,w,p,r of the part and a gripper ID to grab the part in the coordinate system of the robot.

    The communication is working well ( communication through TCP/IP socket), I am able to place the info in a variable point with no problem.

    I have a transformation x,y,z,w,p,r to move my gripper from a common origin with the part to the position around the part corresponding to the ID number.

    I cannot find a way to apply my transformations and get the right angles at the end. Because the UR does not have multiple tools, i am using setTCP() and transpose() but it is sufficient here. Should i apply the transformation around the point or the tcp? How should i apply the transformation?

    How can i apply the transformation to place my gripper in the right orientation around the part? Am i missing something?

    Don’t hesitate to ask for more information. I am in deseparate need for help.

    Thanks

    Reply
      1. Erik

        Thank you Lars for your answer.

        I have digged deeper in my transformation steps and I realized that the pose_transis not working the way I thought. When I apply the pose_trans to the position I use to set the TCP, it only modifies the angles of the point and not the x,y,z translations like a transformation matrice is supposed to do.

        for example:
        tcp=p[0.15,-0.197,0.61,-2.87,0,0]
        rx=-14.78*pi/180
        tcp:=pose_trans(tcp,p[0,0,0,rx,0,0])
        returns tcp=p[0.15,-0.197,0.61,-3.13,0,0]

        I would like something like to get tcp= 0.15,-0.04387,0.639,-3.13,0,0
        Is there any formula that would let me apply a transformation matrice to a point?

        Thanks,

        Erik

        Reply
        1. zacopressadmin Post author

          Hi Eric

          There are some other functions like d2r etc. (more in the script manual) which I am not sure if they can help you ?

          Or maybe you can consider to do math on each indivuídual element like

          tcp=p[var_x,var_y,var_z,var_rx,var_ry,var_rz]
          var_rx=-14.78*pi/180
          var_ry= ………
          var_rz= ………
          tcp=p[var_x,var_y,var_z,var_rx,var_ry,var_rz]

          I do not know the math you are trying to acheive, but its the concept I show.

          Author:
          By Zacobria Lars Skovsgaard
          Authorised Universal-Robots Support Forum.

          Reply
    1. zacopressadmin Post author

      Hi Ganesh

      Thanks for your question.

      By normal international standards an Emergency stop should not be programmed, but be hardwired in order to avoid if the program has an error so the stop doesn’t work.

      In the program you can control output and set a relay that open a contact which can create a stop, but I wouldn’t call it an emergency stop.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Support Forum.

      Reply
  35. Prasath

    Hi lars,
    i have written a script program with implement client-server, PC as server and UR10 as client and tested it. its working fine.

    But i would send TCP positions or Joint positions, Acceleration and Velocity through socket and in the receiving side i have used movej and movel to move the robot, but i need some clarification, weather the robot speed depends on the Acceleration and Velocity which we send or the teach pendant speed or it takes both in to account if so then how it calculates.

    Reply
      1. Prasath

        Okay, Whether the robot speed depends speed which we send(movej(positions, acceleration and velocity)) or also depends on speed shown in teach pendant?

        Reply
          1. Prasath

            Hi Lars,
            If it depends on both of the speeds, then is there anyway to calculate the actual speed of the UR10 robot ?

            Example:
            i will give acceleration – 0.5 and velocity 1 and teach pendant speed 10%, Then how can we calculate the speed of the robot?

          2. zacopressadmin Post author

            Hi Prasath

            The speed slider is mainly for commissioning and troubleshooting purpose. During normal program run it can be at 100% and therefore is normally not to be factored in for the calculation of speed.

            Author:
            By Zacobria Lars Skovsgaard
            Authorised Universal-Robots Support Forum.

  36. Prasath A

    Hi Lars,

    Actually i try to achieve client server communication between PC and UR10. Here server should be PC and Client is UR10.

    Thanks & Regards
    Prasath A

    Reply
    1. zacopressadmin Post author

      Hi Prasath

      Yes thats what the “Client-Server” example on this forum acheive – the “client” socket_open is on the robot program side.

      Regards
      Lars

      Reply
  37. Prasath

    Dear Lars,

    I have some more doubts regards configuring the ESTOP finction. please clarify it

    1) What is the method to configure the configurable inputs and outputs as Safety inputs and outputs?

    2) Once the configurable I/O are configured as Safety I/O, are they programmable with scripts through the Ethernet link? Or does the UR-10 automatically connect these I/O to the internal Safety logic without user control ?

    3) When configured as Saftey inputs and outputs, do these operate as ESTOP input and output to halt the robot, or as Safety I/O that cause the robot to go into reduced mode ?

    4) What is the behavior of configurable outputs when configured as Safety Outputs?

    Reply
    1. zacopressadmin Post author

      Dear Prasath

      Thanks for your questions.

      1. There are many different functions and methods to configure the configurable I/O e.g. limiting speed and force or stop or set outputs when an input is triggered or setting of planes for imaginary boundaries. You might ask your robot provider to show you how to set.

      2. The functions are set via the Safety menu in the GUI on the robot.

      3. It is possible to configure both different functions so it is depending on how you choose to configure.

      4. It will perform the action you have chosen from the safety menu.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Support Forum.

      Reply
      1. Prasath

        Dear Lars,

        Thanks for your valuable help again and again.

        Here with am continue another queries sir, Now i am stuck with TCP configuration and calculation.
        1). Is there any formula for calculation of TCP?

        2). I am confusing with calculating the X,Y,Z and RX, RY,RZ co-ordinates. and how to find x,y,z axis at each movement of UR10.

        Reply
          1. Prasath A

            Hi Lars,

            I have written code for socket communication through TCP/IP and try to communicate with UR10 robot through TCP/IP socket in C++ programming. Initially i had configured PC as client and UR10 is server in port number 30002 and IP address 192.169.100.101 ( for PC), 192.169.100.100 ( for UR10) the communication was established. also i have initiated server in PC side port number 30000. Then i send this command “socket_open(192.169.100.101,30000)\n” from PC client socket(PORT 30002) to initiate the UR10 client connection to the PC. The commend was successfully sent, but client was not initiated from UR10.

            My idea here is to enable the client from UR10 using my own software. Request you to kindly suggest us to the way to implement this method.

            Thanks and Regards

            Prasath A

          2. zacopressadmin Post author

            Hi Prasath

            I have not heard about this odd combination before of sending a command to open a socket to where the command is already comming from or maybe send a command to a device to open a socket to another server. I am not sure this is intended. You might consider to have a program on the robot side where the socket open command reside like in the example on the forum shown at this link

            http://www.zacobria.com/universal-robots-zacobria-forum-hints-tips-how-to/script-client-server-example/

            What are you trying to acheive ?

            Regards
            Zacobria

  38. Prasath

    Hi,

    I am newer in programming of UR10 robot. Here i need to configure UR10 i/o with modbus using script. So Please suggest me some idea for doing the program.

    Reply
      1. Prasath

        Dear Lars,

        Thanks for your valuable suggestion. And is there any specific script function to read and write for configurable i/o, which are configured for i/o function.

        Reply
        1. zacopressadmin Post author

          Dear Prasath

          Once you have configured the I/O names as shown in the example you can use these names right away in the programming.

          Author:
          By Zacobria Lars Skovsgaard
          Authorised Universal-Robots Support Forum.

          Reply
          1. Prasath

            Dear Lars,

            i have saved ten different programs in polyscope GUI. here my doubt, Is there any possibilities to access those saved programs via socket programming?

  39. Peter

    Hi

    I have an error code, C153A1: Protective Stop: Position deviates from path: Shoulder.
    I have looked in the CB3 service manual and it is there but no description on how to rectify.

    Can you advise please?

    Regards

    Peter

    Reply
  40. Matt

    we have a new robotiq 2 finger 85 gripper and we would like to send scripting commands from a PC to control the robot as well as the gripper. We have tried sending the commands such as rq_activate_and_wait() but this does not work. Is there a way to do this?

    Reply
    1. zacopressadmin Post author

      Hi Matt

      Thanks for the question.

      Where did you find the command “rq_activate_and_wait()” ?

      Are you trying to send via port 30002 ? – or have you made a client server application ?

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
      1. Matt

        I am using port 30002. I found that activate command from the robotiq templates. That’s the name of the sub program that is called to activate the gripper.

        Reply
        1. zacopressadmin Post author

          Hi Matt

          Then I think you need a program running in the robot GUI that uses this command and then maybe you can consider to construct your program so it receives data from a socket connection that trigger the command in your GUI program.

          Author:
          By Zacobria Lars Skovsgaard
          Authorised Universal-Robots Distributor.

          Reply
  41. Kade

    I tried to find where i can block the program, but the only way i found is to block the programming part of the touch-screen panel by setting a password.

    Can you tell how can i do this please?

    Reply
    1. zacopressadmin Post author

      Hi Kade

      Yes thats correct you found it – use the password blocking.

      Then you make your program so the variables you want to change is Opperator input

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  42. Kade

    Hi,

    Do you know if we can block some part of the program on the panel, and just let some variables free to be modified?

    Thank you

    Reply
    1. zacopressadmin Post author

      Hi Kade

      Thanks for your question.

      It is possible to block the entire program – and then have user inputs for variables.

      A variable can be assigned as “Operator”.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
      1. Kade

        Thank you, so if i block the entire program, it’s impossible to do any modifications but it would be possible to change variables?
        If yes, can i choose which variables and let the others blocked?

        Reply
        1. zacopressadmin Post author

          Hi Kade

          Yes you can choose. It is done in the programming where you set each variable that you want to be operator input during program execution.

          Author:
          By Zacobria Lars Skovsgaard
          Authorised Universal-Robots Distributor.

          Reply
  43. Peter Tobin

    Hi Lars

    I need some info.

    Is there any way that an external axis can be added to a universal robot and run synchronously with the robot, i.e. as a waypoint and remembering the user frame so when the extarnal axis turns, so does the user frame? If, not do you know if there are any plans to do such a feature?

    Reply
    1. zacopressadmin Post author

      Hi Peter

      Thanks for your question.

      It is already possible to work with variable features – i.e. you can change the robots coordinate system (feature) during program execution – for example based on a variable you send to the robot over the socket connection or if it is only a few different external positions then maybe just select via a digital input.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  44. Ashfaq

    Hi,

    I had a question regarding the Robot software.
    Where can I find the changeLog for the robot software? I would like to know the differences between update-3.1.16828.urup and update-3.1.17336.urup

    Thank you.

    Reply
  45. zhijing

    Thanks very much, is there any manual about how to use a Linux OS that control the UR5? i can not find about it in the forum , i want it to help me use the OS to control the UR5, and i appriciate any this aspect information

    Reply
  46. zhijing

    I have question, can we use Linux OS on Industrial robot direct to cotrl UR5? if it can, what work should we do or steps to implemet?

    Reply
      1. zhijing

        Thanks very much, i noticed that ; i want to ask you a question further, i have not use the OS to do any test yet, the Linux OS your provid is have the same function to control the UR5, that is to say i can progamming in the Linux OS and down load to the controller to control the UR5 moving like in the screen teaching pendant did, not just be a simulator, thank you.

        Reply
  47. zihlmanm

    Hi Lars,

    just received our UR10 and starting to program it. As we would like to use it for deburring and additive manufacturing I wondered what approach you would take to automatically establish waypoints out of existing drawings. Is there a tool to convert gcode to urscript?

    Thanks very much in advance.

    Mike

    Reply
    1. zacopressadmin Post author

      Hi Mike

      Thanks for your question.

      I am not aware of such program – if you find it will be interesting.

      Maybe you can consider to use the cordinates in the Move screen to help making waypoints.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
      1. Peter Tobin

        Hi Lars

        I am currently developing such a process which will convert g-code to UR script, I am about 3-4 months from achieving this, so if you or any of your clients require this process, it will sonn be available, contact me privately for more info.

        Regards

        Peter

        Reply
  48. Brendan Fogarty

    Thanks very much, I’ll try that. Does that mean the output will stay off when the program restarts, and will have to be actively turned back on in the program?

    Cheers

    Brendan

    Reply
    1. zacopressadmin Post author

      Hi Brendan

      It depends which software version you are running – on the latest you can choose in the setting what the state should be at different condition.

      In earlier versions you might need to set it your self at the beginning of the program run.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  49. Brendan Fogarty

    Hello all,

    I am in need of help again. I am using a UR5 in an enclosed safety cell. When the cell safety circuit is broken by opening an access door, the UR5 program stops running. When the safety circuit is made good again, the program resumes running. Is there any way to recognise in the UR5 program that the robot program has stopped or restarted? If the access is breached by an operator, I need to perform some test moves when the program restarts. I cannot use the digital I/O for this, since it stops getting processed as soon as the safety is broken.

    Is there a system flag somewhere? How do i use it?

    Many thanks

    Brendan Fogarty

    Reply
    1. zacopressadmin Post author

      Hi Brendan

      Thanks for your question.

      I would think you can use a output port because under Installation tab and I/O setup – select an output port that is not used – then below you can set the port to a certain state when the program is running or not running which could be your flag.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  50. Karl

    Hi Lars,

    Thanks a lot for the answer. In fact, i dont really know for facts what the robot will do at the end since im currently in a school project with it. I have tried to put the if in a loop but it is not working. When i change the output from a true to false, the program stop even in the loop. The little exemple i gave you was just a test to help me understand how to do it. I would have then apply my understanding to the rest of my program to make the program I need.
    Thank you for your help.

    Reply
    1. Karl

      HI Lars,

      I have an other question. I am trying to make the UR communicate with an Allen-Bradley PLC. Is it possible?

      Thank you

      Reply
  51. Karl

    Hi Lars,

    I am having a little trouble with the programation. When i use the IF/ELSE instruction, is their a way for me to make the program loop from the beginning. I want to use the IF/ELSE instruction to be able to do two different moves.
    Ex : if digital_out(0)=true
    move waypoit 1
    move waypoint2
    Else
    move waypoint 3
    move waypoint 4

    What i want to do is after making the moves, if i change the state of digital_out(0), i want to start making the other moves without having to start my whole program again.

    Reply
    1. zacopressadmin Post author

      Hi Karl

      Thanks for your question.

      It depends what the rest of your program does ?

      I sounds for me like you wish to have this IF and the moves in a forever loop ? – so you can insert this into a loop – and the loop can have a condition also if it is not to be forever – but then the rest of the program does not have any use when the loop is active. Maybe I need to understand the rest of your program.

      There is also the feature “Check expression continuously.”
      Which has an explanation here

      http://www.zacobria.com/universal-robots-zacobria-forum-hints-tips-how-to/if-then-else-conditions/

      There are other ways to achieve change of position during program running, but I need to understand the overall flow in your program.

      Author:
      By Zacobria Lars Skovsgaard
      Authorised Universal-Robots Distributor.

      Reply
  52. bobrien

    Hi there,

    I have a question. I have been working with my UR5 for almost two weeks now and I am about ready to load a program that we have written onto the UR5. I received it from the developer in both a .txt format and .script. Is there a way to get one of these files to run on the UR5 once I have used a USB and a magic file to upload them to the device?

    Thanks,
    Bob

    Reply
    1. zacopressadmin Post author

      Hi Bob

      Tanks for your question.

      Well ya kind of, but it is much better to ask for the .urp file from the developer – then you can run it directly.

      The UR saves 3 files when a program is made

      a x.urp file which is the binary file that can be run directly on the UR.
      a x. script file that is a script representation for the same program.
      a x.txt file that is a text representation of the same program only for information.

      The x.script file contains some headers and comments that needs to be manually edited before it can run as an imported program on the UR.

      Try and read this

      http://www.zacobria.com/universal-robots-zacobria-forum-hints-tips-how-to/script-programming-from-the-teaching-pendant/

      Regards
      Zacobria

      Reply
  53. Kale

    I am new to robotics, but i am finding UR to be very user friendly. i have a background in AB plc’s, this helps when looking at stepping through a UR program. my problem is with the “if….elsif” command. i put an “if” command in that says “input 1 = true” run subprogram 1. below that i put “if” “input 1 = false” run subprogram 2. these statements are lines 1 and 2 in my program. they turn green after i enter them in, but when i hit the play button i get “syntax error line 1, (program name). why is this?

    Reply
    1. zacopressadmin Post author

      Hi Kale

      Thanks for your email.

      I need to see you program to be sure, but you need to have the Sub routine below the If statement i.e. in the Action field as Call Sub Routine.

      And then below that that another If… statement for next condition.

      Regards
      Lars

      Reply
        1. zacopressadmin Post author

          Hi RPB

          Thanks for your messages – not sure I understand your question – Else is there.

          Regards
          Lars

          Reply

Leave a Reply to Ashfaq Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>