Universal Robots Forum

Safety Checksum

Hello, I’m looking for a way to check the safety checksum from a server. Does anyone know a way to get the checksum off of the UR? Right now the only way I know to check the checksum is through the teach pendant.

It is not possible, to read the checksum, as it is displayed in the GUI, e.g. CCCC.
However in the configurations folder, the file safety.conf and the installation file e.g. default.installation containg the safety parameters, as well as a checksum.
However this checksum is not consistent with the 4-digit alphanumeric checksum, as this is solely numeric, e.g. crc = 2588156642.

The value in the installation represents the safety configuration for that specific installation (and is compressed), whereas the value in safety.conf represents the currently applied settings, and is non-compressed.

Please note, that reading this value will not be safety rated.

Also note, that if the value in safety.conf is not corresponding to the values actually loaded in the Safety Control Board, this will cause an error, reporting a conflict between actual and to be applied safety settings.

1 Like

It is also available on secondary client interface:
https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/remote-control-via-tcpip-16496/ in SAFETY_DATA sub package 10 that is unfortunately not documented yet.
It’s in first 4 bytes of sub package.
This subpackage will be sent only if safety settings are actually applied to internal controller.


Thank you for the feedback. Is there a way to open the safety.conf file with a URCap?

Will be readable using generic Java IO classes for reading files.
However remember to only open the file as readable, as making changes may cause a corrupted file or changes may cause error messages towards the user.

Okay that’s what I thought. What is the best way for getting the root directory and to configuration folder?

This is preferred way in C (similar code can be used in java):
string safety_conf_filename = string(getenv("HOME")) + "/.urcontrol/safety.conf";


Thank you for the help!