Monitor I/O Window Tab

Also checkout the new CB3 forum

The Monitor I/O tab view.

The Universal-Robot is ideal to use in a small cell for automation because the control besides the robot programming environment also comprises of inputs and outputs which also is easy to program from the onscreen programming environment.

The robot has a standard 8 digital inputs and 8 digital outputs on the controller board inside the cabinet along with 2 analogue inputs and 2 analogue outputs inside the cabinet.

Additional there are also 2 digital inputs and 2 digital outputs and 2 analogue inputs on the tool head itself. This is very elegant because the cabling for these interfaces is routed inside the robot and therefore no external cabling is necessary for these interfaces.

This means that external equipment that is connected to these I/O interfaces like conveyor belts or actuators can be controlled and program from the robot.

If you need more input and outputs then is also easy to extend the number of I/Os by using MODBUD nodes connected via IP network. See later in the manual how to connect and configure a MODBUS node.

To monitor the status of the I/O signals the I/O tab is very useful. Each I/O is represented by a box that is “off” is the signal is “low” or the box is dark if the signal is high.

The out puts can also be manipulated i.e. overruled during commissioning and testing phase in order to check the connected external equipment.


Overall status of I/O.                                        Input 8 and 9 on the tool head is both “high” in this case.


Toggle output on/off by pressing the box at                 Output 8 is “On”. And it is 24V. The “meter” shows

the output.                                                                   The device on output 8 is dragging 56 mA.

Digital Outputs are Open collector type. Open collector means that the outputs are implemented to ”sink” and we can say they are ”Active low” because connecting an actuator can be done by applying the supply voltage at the ”far” end of the actuator connections and the other connection to the output terminal – and then when the output is driven low by the programmer – the external device turns on.

If you prefer to have an ”Active high” output – it is also possible – then just apply a ”pull up resistor”. So now the ”far” end of the external device is connected to GND and the other end is connected to the output and a pull up resistor. The pull up resistor is connected to the supply voltage. Now when the output is driven ”high” by the programmer the external device turns on.

Open collector is actually an advantage because it gives the implementation more choices.


The output is not current limited, but if the output is short circuited it will result in a security stop and error messages because of over current detected on an output.

Press “Enable Robot” to restart.


Notice that after an Over current Security stops the voltage is reset to 0V. This has to manually be set back at the desired output voltage 24 V in this case by pulling the bar after the short circuit condition has been removed.

The voltage for the I/O on the tool head can be adjusted to 0 or 12V or 24V from this I/O Tab Screen.

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.

By Zacobria Lars Skovsgaard
Accredited 2015-2018 Universal Robots support Centre and Forum.

Also check out the CB3 forum


9 thoughts on “Monitor I/O Window Tab

  1. Sanketh Ramachandra

    Hello Lars,
    I was trying out the reduced speed mode via Safety Planes and by configuring the Config_in Inputs on the UR robot. Is it possible to control these Inputs by software signals, like data sent through Server-Client model? For example, on Fanuc robots, there is a possibility of assigning the state of a digital output to an Input without the need for actual physical connection between the terminals. Could this be done?

    1. zacopressadmin Post author

      Hello Sanketh

      Thankes for the question.

      I am not aware of a method to set the inputs from another controller.

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

  2. Elvis

    Hi Lars,
    New to UR Robots. Currently looking at an application to dispense Loctite. One important factor of the application is to be able to stop dispensing if the robot motion is interrupted in any way (e-stop, protective stop, program pause from pendant). The program would need to continuously monitor program states, such as running, aborted, paused, faulted and turn off an output if the program state changes from running to anything else. How can this be achieved within the UR Programming environment?


    1. zacopressadmin Post author

      Hi Elvis

      Thanks for your question.

      There are different ways to achieve something like this depending on the intention.

      Under the menu Installation – I/O Setup – it is possible to choose an output and configure the I/O action to “Low when program is not running” – then the first thing to do in the program is to set the chosen output high when the program starts – and if the program stops – this output go low – which is an indication the program stopped.

      You can also via the Ethernet port 29999 access the dashboard server where it is possible to ask the robot status – more information at this link

      It is also possible to program a self made “hearthbeat” when the program is running. By using a thread (which is a parallel program) and make an output go high-low-high-low (pulsing) at an interval e.g. every 100mSec (0.1 Sec wait) – then from external it is possible to monitor that particular output – and if this output stops pulsing – then it means the program stopped.

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

      Also check out the CB3 forum

  3. Jere


    Is there any specification available about the speed of I/Os?
    I’m about to use the encoder pulse counter functionality explained in the Script Manual 1.8, but for component selection I’d need to know fast controller can read the pulses?

    1. zacopressadmin Post author

      Hi Jere

      I have not seen such data, but in the script manual section 1.72 is given some timing – although it is in another relation.

      I have not tried the Conveyor tracking function myself, but an encoder Wachendorff WDG 40A-100-ABN-H24-K2 together with disc radius of 65 mm providing 490 tick pr. Meter has been mentioned.

      Maybe others have tried this.


  4. shane


    I am new to the UR and writing a program using an IF statement . So when it is false I want the program to loop to the top of the program how can I do this .



    1. zacopressadmin Post author

      Hi Shane

      Thanks for your question.

      A UR program runs sequentially from top to down and then starts again.

      So they way I would approach this is the check on a variable at the top of the program and then in the IF statement under Else I would set this variable to the desired value – and then make sure command below is under a IF statement that is not true then.

      In this way the program will check all commands below, but since they are not true they will not be true and then when the robot program comes back to the top the variable is checked again.



Leave a 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>