Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction to EdgeGateway for Universal Robots 

 The following document contains a description of how to install and use the MQTTspB Client URCap on real Universal Robots or Universal Robots Simulator applications (URSim). This includes information on URCap, MQTTspB, and RTDE Clients.

Overview:

The Universal Robots MQTTspB integration (UR MQTTspB) allows you to add a MQTT SparkplugB publisher directly into the Universal Robots using URCap. This guide providers instructions to installing and using the UR MQTTspB and general information about tURCap, MQTT, SparkplugB and RTDE clients.

Image Added

On this page:

Table of Contents
maxLevel3
stylenone


System Requirements

To make use of this feature, the following system requirements need to be met:

  • Universal Robots Physical robot with PolyScope version 5.11andPhysicalRobot. 
  • URCap file (*.urcap)

Functionality Overview

TheURCapapplicationconsists of threeseparateprocessesrunninginparallel.
  • Graphical User Interface: This is the main URCap application. It runs within the robot (PolyScope), handles communication parameters, and can start/stop the client connections.
  • RTDE Client: This is a client implementation for the RTDE protocol, running on an independent thread. It reads real-time data from the robot and forwards it to the main program so it can be published to an MQTT Broker.
  • MQTTspB Client: This is a client implementation for the MQTTspB protocol, running on an independent thread. It receives data from the RTDE (through the main program) and publishes it to the broker.
MQTTandRTDEdefinitionsareavailableintheendofthissection. This program behavior is illustrated as per image below.

Image Removed

The RTDE protocol generates messages every 8ms (125Hz). However, the MQTT client does not publish at the same rate. It only publishes new data if any variable has changed its value since the last reading.

MQTT: A lightweight, publish-subscribe network protocol that transports messages between devices. SparkPlugB includes additional control and standards, allowing for information about birth, death, and better data exchange control. For more information on the SparkplugB specification,pleasereferto the official documentation

RTDE: An interface that provides a way to synchronize external applications with the UR controller over a standard TCP/IP connection, without breaking any real-time properties of the UR Controller. For more information, please refer to the official documentation.

Installation

Create an "MQTTspB URCaps" folder inside the programsFolder (/Programs/). This can be done in the Settings → UrCaps (plus) → New (plus) button.
Image Removed Image Removed
Image Removed Image RemovedDownload andCopythe*.urcapfileintothePolyScopeprogramsFolder (/Programs/MQTTspB URCaps). OpenyourProgrammingEnvironment(PolyScope).GotoProgramSettings(1) System(2) URCaps(3). Clickontheplus (+)buttonand search for your *.urcap file.
Image RemovedRestartthePolyScopetofinalizetheimportprocedure.
Image Removed

Using the URCap

Thisnewtoolwillbeavailableafterimportingthe*.urcap fileandrestartingthesimulator.GotoInstallationTab(1) URCaps(2) MQTTspBPublisher(3).Clickonittoopentheconfigurationwindow intherightpanel.

Image Removed

Therearethreetabs:MQTTBrokerInfo,CommunicationManagerandLicense.InMQTTBrokerInfo, enter theinformationfortheMQTTspBClient(similartowhatisdoneat your Project).
  • In Communication Manager, enter the MQTTspB Topic/Address, Robot IP Address (for RTDE connection), and command buttons.
  • URSim URCap Communications ManagerImage Removed

    LicensewillcontaininformationaboutyourURCaplicensestatus.

    URSim URCap LicenseImage Removed

    Configuration Tab

    BrokerURL:MQTT Broker(Server)URL.Port:MQTT Broker port.ItmustbethesameportthatisconfiguredintheBrokertobelistening.ClientId: Indicatestheclientidentificationusedfor connecting to the MQTT Broker. If empty,one will be auto generated.
  • UserName: Username defined in MQTT Broker. This will be requested if the Broker needs this configuration (if necessary).
  • Password: Password defined in MQTT Broker. This will be requested if the Broker needs this configuration (if necessary).
  • Server Certificate: Path of the .pem file for the server. This is required if the MQTT Broker uses a server-side certificate for
    authentication. The complete path of the .pem file on the client computer must be provided.
  • Client Certificate: Path of .pem Client Certificate. If using server-side only certificate this field does not need to be configured. This must be the complete path of .pem certificate in the client computer. Also, the certificate must be installed.
  • Client Certificate Key: Path of the .pem key file of the Client Certificate. This key file is used to authenticate the client-side certificate and establish a secure connection with the MQTT Broker.
  • CertificatePassword: Password created when Certificate was exported (if necessary).
  • NetworkSecurity: This field is mandatoryif MQTT Broker works using a certificate, and must be the same that was configured in MQTT Broker (if necessary). The options are None and TLS.
  • QoS: Quality of Service (QoS) is an agreement between sender and receiver of a message regarding the guarantees of delivering a message. The QoS levels are:
  • AtMostOnce: This service level guarantees a best-effort delivery. However, there is no guaranteeofdelivery,duetotherecipientnotacknowledgingthereceiptofthemessage.AtLeastOnce:This service guarantees that a message is delivered at least once to thereceiver.
    • . 
    • SSL Certificates (Optional: only if TLS is to be implemented). 
    • Basic understanding of the use and operation of the MQTT protocol. If you are not familiar with MQTT, we suggest you review the appropriate resources to gain a fundamental understanding. 
    • Familiarity with the Linux system to access the license files and other robot information. If you're using a Windows system, an SFTP or SCP software (e.g. WinSCP) might be required for transferring files. 

    Concepts Review

    URCap Overview

    The URCap application consists of three separate processes running in parallel. 

    • Graphical User Interface: This is the main URCap application. It runs within the robot (PolyScope), handles communication parameters, and can start/stop the client connections. 
    • RTDE Client: This is a client implementation for the RTDE protocol, running on an independent thread. It reads real-time data from the robot and forwards it to the main program so it can be published to an MQTT Broker. 
    • MQTTspB Client: This is a client implementation for the MQTTspB protocol, running on an independent thread. It receives data from the RTDE (through the main program) and publishes it to the broker.


    MQTT and RTDE definitions are available in the end of this section. This program behavior is illustrated as per image below. 

    The RTDE protocol generates messages every 8ms (125Hz). However, the MQTT client does not publish at the same rate. It only publishes new data if any variable has changed its value since the last reading. 

    MQTT: A lightweight, publish-subscribe network protocol that transports messages between devices. SparkPlugB includes additional control and standards, allowing for information about birth, death, and better data exchange control. The MQTT client can connect to an MQTT broker located on any accessible network, not being restricted to the same local network as the robot.

    RTDE: An interface that provides a way to synchronize external applications with the UR controller over a standard TCP/IP connection, without breaking any real-time properties of the UR Controller. For more information, please refer to the official documentation.


    MQTT Broker 

    An MQTT broker is a lightweight, efficient messaging middleware used in the Internet of Things (IoT) and other connected applications. It acts as an intermediary between devices and applications, facilitating the exchange of data in a publish-subscribe model. Clients, such as sensors or smart devices, publish messages to specific topics on the broker, which then disseminates these messages to interested subscribers. The broker ensures reliable message delivery, minimal bandwidth usage, and low latency, making it ideal for resource-constrained environments. Its simplicity, scalability, and support for real-time communication make it a popular choice for securely managing and orchestrating communication in decentralized networks. 

    For the purpose of this guide, it is assumed that you already have an MQTT broker up and running. If you do not have one in place, please consult the relevant documentation or your system administrator for assistance in setting one up.

    SSL Certificates 

    Security is a crucial part of any automation system. MQTTspB Client URCap supports using TLS/SSL secure connections to protect your MQTT communications. To utilize this feature, you should acquire certificates in the PEM format from the MQTT broker administrator. 

    Please note that to establish a secure connection, you would need several certificate files, including a Server Certificate, a Client Certificate, a Client Certificate Key, and the Private Key Password. Make sure to supply the paths to these .pem files to the publisher when setting up. 


    Installation 

    This section walks you through the process of installing and configuring MQTTspB URCaps on Universal Robots products: UR20, UR10e, UR3e, UR5e, UR16e, which have the Polyscope software embedded on them. 

    Anchor
    #step1
    #step1
    Step 1: URCap Installation

    1.1. Ensure that your Universal Robots product is running at least Polyscope version 5.11.0. 

    1.2. Download the *.urcap file on your computer. 

     Image Added


    1.3. Use WinSCP (or a similar SFTP/SCP software) to connect to your robot. 

    Expand
    titleClick here to expand on how to install WinSCP in output

    Using WinSCP for File Transfer

    If you are not familiar with accessing the filesystem of your Universal Robots (UR) device, we recommend using a tool like WinSCP. 

      • Download and install WinSCP on your computer. 
      • Connect your computer to the same network as your UR device. 

     You will need the IP address of the robot for this. The default user is "ur" and the password is "easybot" 

    Expand
    titleClick here to expand on how to find the IP of the Robot
    1. Finding the IP of the Robot :  

      •  Find the IP address of your UR device. This is usually found on the UR's interface under the 'Network' settings:
      • Image Added

    Open WinSCP and create a new session

    Image Added

    Image Added

    1.4. Once connected, navigate to the Programs folder (/Programs/) on the robot's system and create a new folder named "MQTTspB URCaps". 

     Image Added

    1.5. Copy the downloaded *.urcap file (or just drag and drop) into the newly created PolyScope Programs Folder (/Programs/MQTTspB URCaps). 

    1.6. On your Universal Robots product, navigate to Program Settings → System → UR Caps. Click on the plus (+) button and browse for your *.urcap file. 

    Image AddedImage Added

     Image AddedImage Added

    1.7. To complete the installation, restart Polyscope. 

    Step 2: URCap Configuration

    Connecting to the MQTT Broker and Setting up Configuration 

    2.1. To begin configuration, navigate to Installation Tab → UR Caps → MQTTspB Publisher. 

    2.2. Open the configuration window and select the MQTT Broker Info tab. Fill in the necessary information for the MQTTspB Client. 

    Configuration Tab 

      Image Added

    • Broker URL: MQTT Broker(Server) URL. 
    • Port : This is the port number of the MQTT Broker. The default for MQTT is port 1883 for unencrypted connections and port 8883 for SSL/TLS secure connections. Ensure that the corresponding port is open on any firewalls that may be in place to allow proper communication between the client and server. Communication failures may occur if the specified port is closed by the firewall. Therefore, it is recommended that you check your firewall settings or contact your network administrator if you encounter connection problems. 
    • ClientId: Indicates the client identification usedfor connecting to the MQTT Broker. If empty, one will be auto generated. 
    • UserName: Username defined in MQTT Broker. This will be requested if the Broker needs this configuration (if necessary). 
    • Password: Password defined in MQTT Broker. This will be requested if the Broker needs this configuration (if necessary). 
    • Server Certificate: Path of the .pem file for the server. This is required if the MQTT Broker uses a server-side certificate forauthentication. The complete path of the .pem file on the client computer must be provided. 
    • Client Certificate: Path of .pem Client Certificate. If using server-side only certificate this field does not need to be configured. This must be the complete path of .pem certificate in the client computer. Also, the certificate must be installed. 
    • Client Certificate Key: Path of the .pem key file of the Client Certificate. This key file is used to authenticate the client-side certificate and establish a secure connection with the MQTT Broker. 
    • CertificatePassword: Password created when Certificate was exported (if necessary). 
    • NetworkSecurity: This field indicates the type of network security used in communication with the broker. The options are "None" and "TLS". If you are using TLS, ensure to provide the appropriate certificates. Otherwise, this feature can be bypassed. 
    • QoS: Quality of Service (QoS) is an agreement between sender and receiver of a message regarding the guarantees of delivering a message. The QoS levels are: 
    • AtMostOnce: This service level guarantees a best-effort delivery. However, there is no guarantee of delivery, due to the recipient not acknowledging the receipt of the message. 
    • AtLeastOnce: This service guarantees that a message is delivered at least once to the receiver. 
    • ExactlyOnce: Highest level of service. It is safer, but slower when compared to the others. When the message flow is complete, all parties involved in the communication are sure the message was sent and delivered with success. 
    • KeepAlive: Ensures that the connection between the Broker and Client is open and both parties are aware of the connection. Default value is 10 seconds. 
    • Publish Rate: Indicates the time for publishing in ms. The messages to be published are grouped and sent using this period. Default value is 500 milliseconds. 

    2.3. Switch to the Communication Manager tab.

    Image Added

    Enter the following information:

    • Robot Name: Defines the name of the robot, which represents the main element in the Data Structure. 
    • MQTT Topic: Topic into which the payload will be published. The syntax is: <GroupId>/<NodeId>/<DeviceId>. To fully understand the meaning of these terms, refer to the MQTTspB specification. 
    • Robot IP: IP address for the RTDE connection. This will be the same IP of your UR device since Polyscope is embedded into the UR. Note: The "Robot IP Address" field accepts only valid IP addresses. Make sure to enter a valid IP address, no other strings are accepted. 
    • Frequency: Reading frequency for the RTDE Protocol. Should be a value in the range of 125 to 500Hz. 
    • AutoRun: Flag indicating if the client should start automatically. This value will be stored in ConfigFile.xml for next program execution. (Default = false). 

    The Robot IP address was previously defined on the System Configuration:

    Image Added

     

    Step 3: Running the MQTTspB URCaps 

    3.1. In the Communication Manager tab also contains Start/Stop buttons for both MQTTspB and RTDE Client connections.  

    Step 4: Obtaining the License 

    4.1. Navigate to the 'License' tab. 

    Image Added

    4.2. Click on the 'Get SiteCode' button. This action will generate a .txt file in the /root/GUI folder. 

    4.3. Transfer the generated file to our support team at support@tatsoft.com. If you're transferring the file to a Windows system, you can use WinSCP or a similar SFTP program. 

    4.4. Transfer the Site code that our support team sends back to you, to the Universal Robots product. 

    4.5. In Polyscope, navigate to 'MQTT Publisher' -> 'License Tab' -> 'Load License Key'. Then select the file and click 'Open'. 

    Image Added


    MQTTspB and RTDE Client Connections Status

    You can verify the status of modules in the Communication Manager tab, near the Start/Stop buttons.

    URSim URCap Communications ManagerImage Added

    There is also a module status available on the toolbar where the UR+ option exists. This is an easy way to verify the current status.

    Image Added



    Importing Configuration Parameters

    In addition to manually entering configuration parameters in the PolyScope Installation Tab, you can also import the parameters through a *.xml file.

    Thesyntaxforthisfileisasfollows:

    Code Block
    languageyml
    <?xml version="1.0"?>
    <Configuration>
    	<Robot>
    		<Name>My_Robot_Name</Name>
    	</Robot>
    	<MQTT_Client>
    		<BrokerURL>127.0.0.1</BrokerURL>
    			<Port>1883</Port>
    			<ClientId></ClientId>
    			<UserName></UserName>
    			<Password></Password>
    			<x509Certificate></x509Certificate>
    			<CertificatePassword></CertificatePassword>
    			<NetworkSecurity>None</NetworkSecurity> <!-- None / SSL -->
    			<QoS>AtLeastOnce</QoS>
    			<!-- AtMostOnce / AtLeastOnce / ExactlyOnce -->
    			<KeepAlive>10</KeepAlive>
    			<PublishRate>500</PublishRate>
    			<Topic>GroupId/NodeId/DeviceId_01</Topic>
    	<AutoRun>false</AutoRun>
    	<Variables>
    <!--
    <Joint_Control_Currents RBE_DeadBand="Absolute;0.1" 
    Enable_Publish="true"></Joint_Control_Currents>
    <Actual_Tcp_Position RBE_OutOfRange="-2;2" 
    Enable_Publish="true"></Actual_Tcp_Position>
    <Target_Joint_Accelerations RBE="" 
    Enable_Publish="false"></Target_Joint_Accelerations>
    <Controller_Info RBE_DeadBand="Percentual;5" 
    Enable_Publish="true"></Controller_Info>
    -->
    	</Variables>
    	</MQTT_Client>
    	<RTDE_Client>
    		<IpAddress>127.0.0.1</IpAddress>
    		<Port>30004</Port>
    		<Frequency>125</Frequency>
    		<AutoRun>false</AutoRun>
    	</RTDE_Client>
    </Configuration>

    Configuration Parameters Guide 

    <Robot>

    <Name>: 

    • Description: The unique name assigned to the robot. 
    • Format: String. 

    <MQTT_Client>

    <BrokerURL>: 

    • Description: The URL of the MQTT broker to which the client should connect. 
    • Format: String with URL format (e.g.: mqtt://broker.example.com). 

    <Port>: 

    • Description: The port number for the MQTT connection. 
    • Format: Integer (e.g. 1883). 

    <ClientId>: 

    • Description: Unique identifier for the client in the MQTT broker. 
    • Format: String. 

    <UserName> and <Password>: 

    • Description: Credentials for authentication to the MQTT broker, if required. 
    • Format: String. 

    <x509Certificate>: 

    • Description: Path to the x509 certificate, used when SSL is enabled. 
    • Format: Path to the file. 

    <CertificatePassword>: 

    • Description: Password of the x509 certificate. 
    • Format: String. 

    <NetworkSecurity>: 

    • Description: Specifies the network security type for the MQTT connection. 
    • Options: None, SSL. 

    <QoS>: 

    • Description: Quality of service for MQTT messages. 
    • Options: AtMostOnce, AtLeastOnce, ExactlyOnce. 

    <KeepAlive>: 

    • Description: Time interval (in seconds) that the client must wait between sending control packets. 
    • Format: Integer. 

    <PublishRate>: 

    •  Description: rate at which MQTT messages are published. 
    • Format: Integer, in milliseconds. 

    <Topic>: 

    • Description: The MQTT topic in which the messages are published. 
    • Format: String with the topic structure (e.g. GroupId/NodeId/DeviceId_01). 

    <AutoRun>: 

    • Description: If true, starts MQTT communication automatically upon initialization. 
    • Options: true, false. 

    <Variables>: 

    •  Description: List of variables with additional settings. 
    • Format: Commented in XML, by default. Can be uncommented and configured as needed.

    <RTDE_Client>

    <IpAddress>: 

    • Description: The IP address of the RTDE client. 
    • Format: String with IP address format (e.g. 192.168.1.1). 

    <Port>: 

    • Description: The port number for the RTDE connection. 
    • Format: Integer (e.g. 30004). 

    <Frequency>: 

    • Description: Communication frequency in Hz. 
    • Format: Integer. 

    <AutoRun>: 

    • Description: If true, starts RTDE communication automatically on initialization. 
    • Options: true, false.

    For the application to accurately read the file, certain criteria MUST be fulfilled: 

    • FileName: The document should be named ConfigFile.xml.
    • FilePath: The document should be positioned within the /Programs/MQTTspB URCaps directory.
    • PolyScope will interpret this file each time it's initiated (provided the URCap has been installed). Modifying its content while the software operates is NOT permitted.
    • In scenarios where the file is absent during PolyScope's boot-up, the configuration fields will be populated with standard settings. Each time a Client is activated or halted, the file is refreshed to mirror the configured parameters. Moreover, if absent, a new file is generated.
    • The Variables entry permits users to activate or deactivate DataModel branches and also modify a branch's Change Event Definition. This configuration dictates when an event should be communicated to the MQTT Broker. By default, or if the entry is devoid of data, all alterations will be documented. 
    ExactlyOnce: Highestlevelofservice. It issafer,butslowerwhencomparedtotheothers. When themessageflowiscomplete, allpartiesinvolvedinthecommunicationaresurethemessage was sent and delivered with success.KeepAlive:Ensures that the connection between the Broker and Client is open and both parties are aware of the connection. Default value is 10 seconds.PublishRate: Indicatesthetimeforpublishinginms. Themessagestobepublishedaregrouped and sent using this period. Default value is 500 milliseconds.

    Communication Manager Tab

  • Robot Name: Defines the name of the robot, which represents the main element in the Data Structure.
  • MqttTopic:Topicintowhichthepayloadwillbepublished.Thesyntaxwillbe: <GroupId>/<NodeId>/<DeviceId>.RobotIp:IP addressfortheRTDEconnection.
  • Frequency: Reading frequency for the RTDE Protocol. Should be a value in the range of 125 to 500Hz.
  • AutoRun:Flagindicatingif the clientshouldstartautomatically.Thisvaluewillbestoredin ConfigFile.xmlfornextprogramexecution.(Default=false). NoteThis tabalsocontainsStart/StopbuttonsforbothMQTTspBandRTDEClientconnections.

    License Tab

    When you first install this URCap, the default license is called Express.It allows you to run your application for two hours straight.After this time, all clients are stopped automatically.You can run the application without limitations once it is licensed.

    Licensing Methods

    Tolicenseyourapplication,youneedtocreateasoftkeylicensewhichisgeneratedbytheequipment

    SiteCode.

    GotoInstallation  MQTTspBPublisher  LicenseandclickGetSiteCode.
  • Send the generated file to one of our employees, and they will generate a license key.
  • ClicktheLoad License KeybuttonontheLicensetabtoloadthereceivedkey.

    If you want to load the license key using a USB, follow these steps:

    a. Save the license key file to a USB drive.

    b. Insert the USB drive into the robot controller.

    c. Open the "MQTTspB URCaps" folder inside the "Programs" folder on the robot controller.

    d. Copy the license key file from the USB drive into the "MQTTspB URCaps" folder.

    e. Go to the License tab in the URCaps and click on the "Load License Key" button.

    f. Select the license key file from the "MQTTspB URCaps" folder to load it into the URCaps.

    InfoMorelicensingmethodswillbeaddedinthefuture.

    License - Product Model and Protocol

    The Product Model refers to the amount of communication points allowed.As the Data Structure has a fixed max size, all URCap licenses are ”unlimited”.TheprotocolavailableforthisapplicationisRTDE.

    Importing Configuration Parameters

    In addition to manually entering configuration parameters in the PolyScope Installation Tab, you can also import the parameters through a *.xml file.

    Thesyntaxforthisfileisasfollows:
    Code Block
    languageyml
    collapsetrue
    <?xml version="1.0"?>
    <Configuration>
    	<Robot>
    		<Name>My_Robot_Name</Name>
    	</Robot>
    	<MQTT_Client>
    		<BrokerURL>127.0.0.1</BrokerURL>
    			<Port>1883</Port>
    			<ClientId></ClientId>
    			<UserName></UserName>
    			<Password></Password>
    			<x509Certificate></x509Certificate>
    			<CertificatePassword></CertificatePassword>
    			<NetworkSecurity>None</NetworkSecurity> <!-- None / SSL -->
    			<QoS>AtLeastOnce</QoS>
    			<!-- AtMostOnce / AtLeastOnce / ExactlyOnce -->
    			<KeepAlive>10</KeepAlive>
    			<PublishRate>500</PublishRate>
    			<Topic>GroupId/NodeId/DeviceId_01</Topic>
    	<AutoRun>false</AutoRun>
    	<Variables>
    <!--
    <Joint_Control_Currents RBE_DeadBand="Absolute;0.1" 
    Enable_Publish="true"></Joint_Control_Currents>
    <Actual_Tcp_Position RBE_OutOfRange="-2;2" 
    Enable_Publish="true"></Actual_Tcp_Position>
    <Target_Joint_Accelerations RBE="" 
    Enable_Publish="false"></Target_Joint_Accelerations>
    <Controller_Info RBE_DeadBand="Percentual;5" 
    Enable_Publish="true"></Controller_Info>
    -->
    	</Variables>
    	</MQTT_Client>
    	<RTDE_Client>
    		<IpAddress>127.0.0.1</IpAddress>
    		<Port>30004</Port>
    		<Frequency>125</Frequency>
    		<AutoRun>false</AutoRun>
    	</RTDE_Client>
    </Configuration>
    To ensure the file is loaded by the program, certain requirements MUSTbe met:FileName:ThefilemustbenamedConfigFile.xml.FilePath:Thefilemustbelocatedeitherinsidethe (/Programs/MQTTspB URCaps) folder.The file will be parsed every time PolyScope is launched (as long as the URCapis already installed). You CANNOT alter its information while the program is running.

    Asampleconfigurationfilecanbedownloaded here.

    Note

    If no file is found when loading up the PolyScope, the configuration fields will be completed with default settings. The file is updated with the configured parameters every time a Client is started or stopped. Also, a new file is created if it does not exist.

    VariablesentryallowsyoutoEnable/DisableDataModelbranchesandcustomizeabranch’sChange Event Definition.This definition determines when an event occurs to be published to the MQTT Broker. By default — or when entry is empty/blank —, all value changes will be reported.

    The syntax to be

    used

    utilized is detailed as

    follows

    : 

    Where:

    • [VariableName]isapathnamein thetree: Represents the data model;forexample's path name; such as Joint Control Currents. 
    • [RBE DeadBand=<RBEOptions>;<Value>]isareporttypewhereuserscandefine<RBE Options>;<Value>: A report type enabling users to designate either an ”Absolute” or ”Percentual” deadband for each Branch—itwillbeappliedtoallvariablesbellowthatbranch. ValueChangesexceedingthedeadbandwillbeconsideredanevent.Thedeadbandparameters are separated by a semicolon (;).[RBEOutOfRange=<Min>;<Max>]branch. 
    • RBE OutOfRange=<Min>;<Max>: This report type allows users to set is a report type where users can define a Min/Max threshold boundary for each Branch — it will be applied to all variables below that branch. A value change outsidethe threshold interval will be considered an event.The deadband parameters are separated by a semicolon (;).branch. 
    • [Enable Publish=”true” or ”false”]willenableordisablethepublishingdataofalltreebellowthis tree point.: Regulates the data publication for the specified tree. 

    Example

    Code Block
    <Joint_Control_Currents 
    	RBE_DeadBand="Absolute;0.1" Enable_Publish="true">
    </Joint_Control_Currents>

    There are two possible RBE DeadBand options: 

    • Absolute: Deadband value is absolute value. 
    • Percentual: Deadband is calculated based on percentual values. 

    It is important to know variable customizations will be applied to the specified Branch and all its children, unless they have their own customization. 

    This entry can be customized ONLY through the .xml file. 


    Robot Runtime DataModel

    TheDataModelpublishedtotheMQTTBrokerispre-definedbasedonvariousUDTs(User-Defined Types). Click here to download an example *.html file.

    When the MQTTspB Client is started, if connected to the Broker, you should be able to see the Robot data model using a different Client. The images below illustrate the model with FRAMEWORXclient.Image RemovedMQTT Client. 

    Implemented Robot Variables

    ThissectionwilldetailhowtheDataStructureismodeled.

    Robot Name

    CanbecustomizedwiththeXMLfileonly.

    Arm Info

    Axis:

    Target JointPositions:RTDEParametertarget q.TargetJoint Velocities:RTDEParametertarget qd.TargetJointAccelerations:RTDEParametertargetqdd.TargetJointCurrents:RTDEParametertargetcurrent.TargetJointMoments:RTDEParametertargetmoment.JointControlCurrents:RTDEParameterjointcontroloutput.Joint Temperatures:Temperature of each joint in degrees Celsius.RTDE Parameter joint temperatures.

    XMLfileonly.

    Arm Info

    Axis:

    1. Target JointPositions:RTDEParametertarget q.
    2. TargetJoint Velocities:RTDEParametertarget qd.
    3. TargetJointAccelerations:RTDEParametertargetqdd.
    4. TargetJointCurrents:RTDEParametertargetcurrent.
    5. TargetJointMoments:RTDEParametertargetmoment.
    6. JointControlCurrents:RTDEParameterjointcontroloutput.
    7. Joint Temperatures:Temperature of each joint in degrees Celsius.RTDE Parameter joint temperatures.
    8. JointVoltages: Actualjointvoltages. RTDEParameteractualjointvoltage.
    9. Joint Position:Actualjointposition.RTDEParameteractual q.

    Tool Center Point:

    1. ActualTCPForce:GeneralizedforcesintheTCP.Itcompensatesthemeasurementfor forces and torques generated by the payload. RTDE Parameter actual TCP force.
    2. Actual TCP Position:Actual Cartesian coordinates of the tool:(x,y,z,rx,ry,rz), where rx, ryandrzisarotationvector representation ofthetoolorientation.RTDEParameter actual TCP pose.
    3. Actual TCP Speed: ActualspeedofthetoolgiveninCartesiancoordinates. Thespeed isgivenin[m/s]andtherotationalpartoftheTCPspeed(rx,ry,rz)istheangulargiven in [rad/s]. RTDE Parameter actual TCP speed.
    4. Payload:
      1. Mass:Payloadmass in kg.RTDEParameterpayload.
      2. PayloadCoG:PayloadCenterofGravity(CoGx,CoGy,CoGz) in mm.RTDEParameter payload cog.
      3. PayloadInertia:Payloadinertiamatrixelements(Ixx,Iyy,Izz,Ixy,Ixz,Iyz]expressedin kg.mm2.RTDEParameterpayloadinertia.
    5. Tool:
      1. ToolMode:Toolmode.RTDEParametertool mode.
      2. ToolAnalogInput0:Toolanaloginput0[mAorV].RTDEParametertoolanaloginput0.
      3. ToolAnalogInput1:Toolanaloginput1[mAorV].RTDEParametertoolanaloginput1.
      4. Tool OutputVoltage:Tooloutputvoltage[V].RTDEParametertooloutput voltage.
      5. ToolOutputCurrent: Toolcurrent[mA].RTDEParametertooloutputcurrent.
      6. Tool Temperature:TooltemperatureindegreesCelsius.RTDEParametertooltemperature.
      7. ToolForceScalar:TCPforcescalar[N].RTDEParametertcpforcescalar.
      8. Wrist3:RTDEParameteractualTCPpose.

    Controller Info

    1. Timestamp: Timeelapsedsincethecontrollerwasstarted[s]. RTDEParametertimestamp. Controller Temp: TooltemperatureindegreesCelsius. RTDEParametertool temperature. Main Voltage: Safety Control Board: Main voltage. RTDE Parameter actual main voltage.
    2. Current: SafetyControlBoard: Robotcurrent. RTDEParameteractual robot current. eAvg Robot Power: givenbytheexpression(Σ(ActualRobotCurrentActualRobotVoltage))
    3. IOCurrent:I/Ocurrent[mA].RTDEParameteriocurrent.
    4. Tool
    JointVoltages: Actualjointvoltages. RTDEParameteractualjointvoltage.Joint Position:Actualjointposition.RTDEParameteractual q.

    Tool Center Point:

    1. ActualTCPForce:GeneralizedforcesintheTCP.Itcompensatesthemeasurementfor forces and torques generated by the payload. RTDE Parameter actual TCP force.Actual TCP Position:Actual Cartesian coordinates of the tool:(x,y,z,rx,ry,rz), where rx, ryandrzisarotationvector representation ofthetoolorientation.RTDEParameter actual TCP pose.Actual TCP Speed: ActualspeedofthetoolgiveninCartesiancoordinates. Thespeed isgivenin[m/s]andtherotationalpartoftheTCPspeed(rx,ry,rz)istheangulargiven in [rad/s]. RTDE Parameter actual TCP speed.Payload:Mass:Payloadmass in kg.RTDEParameterpayload.PayloadCoG:PayloadCenterofGravity(CoGx,CoGy,CoGz) in mm.RTDEParameter payload cog.PayloadInertia:Payloadinertiamatrixelements(Ixx,Iyy,Izz,Ixy,Ixz,Iyz]expressedin kg.mm2.RTDEParameterpayloadinertia.Tool:ToolMode:Toolmode.RTDEParametertool mode.ToolAnalogInput0:Toolanaloginput0[mAorV].RTDEParametertoolanaloginput0.ToolAnalogInput1:Toolanaloginput1[mAorV].RTDEParametertoolanaloginput1.Tool OutputVoltage:Tooloutputvoltage[V].RTDEParametertooloutput voltage.ToolOutputCurrent:Toolcurrent[mA].RTDEParametertooloutputcurrent.Tool Temperature:TooltemperatureindegreesCelsius.RTDEParametertooltemperature.ToolForceScalar:TCPforcescalar[N].RTDEParametertcpforcescalar.Wrist3:RTDEParameteractualTCPpose.

    Controler Info

    Timestamp: Timeelapsedsincethecontrollerwasstarted[s]. RTDEParametertimestamp. Controller Temp: TooltemperatureindegreesCelsius. RTDEParametertool temperature. Main Voltage: Safety Control Board: Main voltage. RTDE Parameter actual main voltage.Current: SafetyControlBoard: Robotcurrent. RTDEParameteractual robot current. eAvg Robot Power: givenbytheexpression(Σ(ActualRobotCurrentActualRobotVoltage))

    Metadata

    UNS

    Stringvariables thatdo notexistinRTDEcontext:

    1. Area.
    2. Cell.
    3. Line
    4. Site.

    Control

    1. Speed Slider Mask: 0 = do not change the speed slider with this input. 1 = use the speed slider fraction to set the speed slider value. RTDE Parameter: speed slider mask.
    2. SpeedSliderFraction:Newspeedslidervalue.RTDEParameter : speedsliderfraction.
    3. StandardDigitalOutput:Standarddigitaloutputs.RTDEParameter :standarddigitaloutput.
    4. Configurable Digital Output:Configurabledigitaloutputs.RTDEParameter :configurable digital output.
    5. Standard Analog Output 0:Standard analog output 0 (ratio) [0..1].RTDE Parameter : standard analog output 0.
    6. Standard Analog Output 1:Standard analog output 1 (ratio) [0..1].RTDE Parameter : standard analog output 1.
    7. Input Bit Registers 0 to 31:This range of the boolean input registers is reserved for FieldBus/PLC interface usage. RTDE Parameter  : input bit registers0 to 31.
    8. Input Bit Register X:X:[64..127]-Theupperrangeofthebooleaninputregisterscan be used by external RTDE clients. RTDE Parameter :  input bit register X.
    9. Input IntRegister X: X: [0..23] - The lower range of the integer input registers is reservedforFieldBus/PLCinterfaceusage. X:[24..47]-TheupperrangeoftheintegerinputregisterscanbeusedbyexternalRTDEclients.RTDEParameter : inputintregisterX.
    10. Input Double Register X:X:[0..23]-Thelowerrangeofthedouble
    IOCurrent:I/Ocurrent[mA].RTDEParameteriocurrent.ToolCurrent:Toolcurrent[mA].RTDEParametertooloutputcurrent.

    Metadata

    UNS

    Stringvariables thatdo notexistinRTDEcontext:
    1. Area.
    2. Cell.
    3. Line
    4. Site.

    Control

    1. Speed Slider Mask: 0 = do not change the speed slider with this input. 1 = use the speed slider fraction to set the speed slider value. RTDE Parameter: speed slider mask.
    2. SpeedSliderFraction:Newspeedslidervalue.RTDEParameter : speedsliderfraction.StandardDigitalOutput:Standarddigitaloutputs.RTDEParameter :standarddigitaloutput.Configurable Digital Output:Configurabledigitaloutputs.RTDEParameter :configurable digital output.Standard Analog Output 0:Standard analog output 0 (ratio) [0..1].RTDE Parameter : standard analog output 0.Standard Analog Output 1:Standard analog output 1 (ratio) [0..1].RTDE Parameter : standard analog output 1.Input Bit Registers 0 to 31:This range of the boolean inputregisters is reserved for FieldBus/PLC interface usage.RTDE Parameter  : input bit registers0 to 31.Input Bit Register X: X: [6424..12747] - The upper range of the booleandouble input registers can be used by external RTDE clientsRTDE clients .RTDE Parameter  : input double register X.
    3. ExternalForceTorque:InputexternalwrenchwhenusingftRTDEinputenablebuilt-in. RTDEParameter :externalforcetorque.

    Status:

    1. RobotMode:Robotmode.RTDEParameter:  input bit register Xrobotmode.Input IntRegister X: X: [0..23] - The lower range of the integer input registers is reservedforFieldBus/PLCinterfaceusage. X:[24..47]-TheupperrangeoftheintegerinputregisterscanbeusedbyexternalRTDEclients.RTDEParameter : inputintregisterX.Input Double Register X:X:[0..23]-Thelowerrangeofthedoubleinputregisters is reserved for FieldBus/PLC interface usage.X: [24..47] - The upper range of the double input registers can be used by external RTDE clients .RTDE Parameter  : input double register X.ExternalForceTorque:Inputexternalwrenchwhenusingftrtdeinputenablebuiltin. RTDEParameter :externalforcetorque.

    Status:

    RobotMode:Robotmode.RTDEParameter: robotmode.RobotPowerOn: Poweron.RTDEParameter:robotstatusbits.SecurityStopped: Stoppedduetosafety.RTDEParameter:safetystatusbits.
    1. RobotPowerOn: Poweron.RTDEParameter:robotstatusbits.
    2. SecurityStopped: Stoppedduetosafety.RTDEParameter:safetystatusbits.
    3. Emergency Stopped: Emergencystopped.RTDEParameter:safetystatusbits.
    4. TeachButtonPressed: Teach buttonpressed.RTDEParameter:robotstatusbits.
    5. PowerButtonPressed: Powerbuttonpressed.RTDEParameter:robotstatusbits.
    6. ProgramState:Programstate.RTDEParameter:runtimestate.

    IO:

    1. ToolOutputMode:Thecurrentoutputmode.RTDEParameter:tooloutputmode.
    2. Tool Digital Output 0 Mode:The current mode of digital output 0.RTDE Parameter: tool digital output0 mode.
    3. Tool Digital Output 1 Mode:The current mode of digital output 1.RTDE Parameter: tool digital output1 mode.
    4. IOCurrent:I/Ocurrent[mA].RTDEParameter:iocurrent.
    5. AnalogIn0:Standardanaloginput0[mAorV].RTDEParameter:standardanaloginput0.
    6. AnalogIn1:Standardanaloginput0[mAorV].RTDEParameter:standardanaloginput1.
    7. AnalogOut1:Standardanalogoutput1[mAorV].RTDEParameter:standardanalogoutput1.
    8. EuroMap67:
      1. Current:Euromap24Vcurrent[mA].RTDEParameter:euromap6724Vcurrent.
      2. Voltage:Euromap24Vvoltage[V].RTDEParameter: euromap6724Vvoltage.
      3. InputStatus:Euromap67inputbits.RTDEParameter: euromap67inputbits.
      4. OutputStatus:Euromap67outputbits.RTDEParameter: euromap67outputbits.
    9. Registers:
      1. Output Bit Register X: X: [64..127] - The upper range of the boolean output registers can be used by external RTDE clients. RTDE Parameter: output bit register X.
      2. Output Int Register X: X: [0..23] - The lower range of the integer output registersis reserved for FieldBus/PLC interface usage.X: [24..47] - The upper range of the integer output registers can be used by external RTDE clients.RTDE Parameter output int register X.
      3. Output Double Register X:X:[0..23]-Thelowerrangeofthedoubleoutputregisters is reserved for FieldBus/PLC interface usage.X: [24..47] - The upper range of thedoubleoutputregisterscanbeusedbyexternalRTDEclients. RTDEParameter: output double register X.
      4. Input Bit Registers 0 to 31: Thisrangeoftheboolean input registersisreserved for FieldBus/PLC interface usage. RTDE Parameter: input bit registers0 to 31.
      5. InputBit Registers 32 to 63: Thisrangeoftheboolean input registersisreserved for FieldBus/PLC interface usage. RTDE Parameter: input bit registers 32 to 63.
      6. Input
    Emergency Stopped: Emergencystopped.RTDEParameter:safetystatusbits.TeachButtonPressed: Teach buttonpressed.RTDEParameter:robotstatusbits.PowerButtonPressed: Powerbuttonpressed.RTDEParameter:robotstatusbits.ProgramState:Programstate.RTDEParameter:runtimestate.

    IO:

    1. ToolOutputMode:Thecurrentoutputmode.RTDEParameter:tooloutputmode.Tool Digital Output 0 Mode:The current mode of digital output 0.RTDE Parameter: tool digital output0 mode.Tool Digital Output 1 Mode:The current mode of digital output 1.RTDE Parameter: tool digital output1 mode.IOCurrent:I/Ocurrent[mA].RTDEParameter:iocurrent.AnalogIn0:Standardanaloginput0[mAorV].RTDEParameter:standardanaloginput0.AnalogIn1:Standardanaloginput0[mAorV].RTDEParameter:standardanaloginput1.AnalogOut1:Standardanalogoutput1[mAorV].RTDEParameter:standardanalogoutput1.EuroMap67:Current:Euromap24Vcurrent[mA].RTDEParameter:euromap6724Vcurrent.Voltage:Euromap24Vvoltage[V].RTDEParameter: euromap6724Vvoltage.InputStatus:Euromap67inputbits.RTDEParameter: euromap67inputbits.OutputStatus:Euromap67outputbits.RTDEParameter: euromap67outputbits.Registers:
      1. Output Bit Register X:X:[64..127]-Theupperrangeoftheboolean output input registers can be used by external RTDE clients. RTDE Parameter: output input bit register X.
      2. Output Input Int Register X: X: [0..23] - The lower range of the integer output input registers is reserved for FieldBus/PLC interface usage.X: [24..47] - The upper range of the integer output input registers can be used by external RTDE clients.RTDE Parameter output : input int register X.
      3. Output Input Double Register X:X:[0..23]-Thelowerrangeofthedoubleoutputinputregisters is reserved for FieldBus/PLC interface usage.X: [24..47] - The upper range of the double outputinput registers can be used by external RTDE clients .RTDE Parameter: output double register X.Input Bit Registers 0 to 31: Thisrangeoftheboolean input registersisreserved for FieldBus/PLC interface usage. RTDE Parameter: input bit registers0 to 31.InputBit Registers 32 to 63: Thisrangeoftheboolean input registersisreserved for FieldBus/PLC interface usage. RTDE Parameter: input bit registers 32 to 63.Input Bit Register X:X:[64..127]-Theupperrangeoftheboolean input registers can be used by external RTDE clients. RTDE Parameter: input bit register X.Input Int Register X: X: [0..23] - The lower range of the integer input registers is reserved for FieldBus/PLC interface usage.X: [24..47] - The upper range of the integer input registers can be used by external RTDE clients.RTDE Parameter: input int register X.Input Double Register X:X:[0..23]-Thelowerrangeofthedoubleinputregisters is reserved for FieldBus/PLC interface usage.X: [24..47] - The upper range of the double input registers can be used by external RTDE clients .RTDE Parameter: input double register X.

    Safety:

    SafetyMode: Safetymode. RTDEParameter:safetymode.SafetyStatus:Safetystatus. RTDEParameter:safetystatus.UnlockProtectiveStop:Notimplementedyet.CloseSafetyPopup:Notimplementedyet.

    Control:

    PowerOn:Notimplementedyet.PowerOff:Notimplementedyet.BrakeRelease:Notimplementedyet. Alarms Level:EXCEPTIONMESSAGE,ERRORMESSAGE,WARNINGMESSAGE,INFO MESSAGE.Message:Alarmmessage.Source:Sourcethatgeneratedthealarm.

    OEE:

    Stringvariablesthatdo notexistinRTDEcontext.AvailabilityInfoAvailableTime.MachineRuntime.PerformanceInfoPartsCouldBeProduced.PartsProducedinTotal.QualityInfoGoodPartsProduced.GoodPartsProducedinTotal.Productivity:Stringvariablesthatdo notexistinRTDEcontext.
      1. : input double register X.

    Safety:

    1. SafetyMode: Safetymode. RTDEParameter:safetymode.
    2. SafetyStatus:Safetystatus. RTDEParameter:safetystatus.
    3. UnlockProtectiveStop:Notimplementedyet.
    4. CloseSafetyPopup:Notimplementedyet.

    Control:

    1. PowerOn:Notimplementedyet.
    2. PowerOff:Notimplementedyet.
    3. BrakeRelease:Notimplementedyet. 
    4. Alarms Level:EXCEPTIONMESSAGE,ERRORMESSAGE,WARNINGMESSAGE,INFO MESSAGE.
    5. Message:Alarmmessage.
    6. Source:Sourcethatgeneratedthealarm.

    OEE:

    Stringvariablesthatdo notexistinRTDEcontext.

    1. AvailabilityInfo
      1. AvailableTime.
      2. MachineRuntime.
    2. PerformanceInfo
      1. PartsCouldBeProduced.
      2. PartsProducedinTotal.
    3. QualityInfo
      1. GoodPartsProduced.
      2. GoodPartsProducedinTotal.

    Productivity:

    Stringvariablesthatdo notexistinRTDEcontext.

    1. Personnel
      1. Operator.
      2. Supervisor.
    2. WorkOrder
      1. FamilyInfo.
      2. NumberofParts.

    System Monitor:

    1. AvgCPULoad.
    2. SystemCPU.
    3. ProcessCPU.
    4. MemoryLoad.
    5. Total Memory.
    6. UsedMemory.

    Troubleshooting 

    This section provides guidance on how to solve some common issues you may encounter while using the MQTTspB Client URCap. 

    WinSCP Errors: 

    WinSCP is commonly utilized to transfer files and access the robot. Here are some frequent issues and their fixes: 

    • Connection Timeout or Refused: Ensure you're using the correct IP address and port for the robot. Check if the robot is powered on and reachable on the network. Sometimes, restarting both the robot and the computer can help. 
    • Authentication Failed: This error can arise if you enter the wrong username or password. Verify your credentials and try again. 
    • Unable to Transfer Files: If you're having problems transferring files, check the available storage on the robot. Additionally, verify the file's format and size are supported by the robot's system. 
    • Permission Denied: You might not have the required permissions to access specific directories or files on the robot. Ensure you're logged in with the right user privileges. 
    • Host has not answered for more than 15 seconds: This could be due to a temporary network glitch or the robot being busy. Click "Retry" a couple of times. If it continues, check your network connection. 

    Connection Errors: 

    If you're having difficulty connecting to the MQTT Broker, ensure you've entered the Broker's details accurately in the MQTT Broker Info tab. Validate the Server and Client Certificates, Client Certificate Key, and the Certificate Password. Ensure the .pem files are accessible and correctly linked in the publisher.  

    Data Transmission Issues: 

    If data isn't being sent as anticipated, confirm that the topics/addresses and command buttons in the Communication Manager tab are set up correctly. 

    URCap Installation Problems: 

    For any issues encountered during URCap installation, ensure you've followed the installation procedures correctly. The *.urcap file should be in the right directory, and PolyScope must be rebooted post-installation. 

    Certificate Errors: 

    For certificate-related errors, ensure all essential certificate files are available and appropriately linked. Verify the files are in the correct .pem format and that the paths in the publisher are set accurately. 


    In this section:

    Page Tree
    root@parent

  • Personnel
    1. Operator.
    2. Supervisor.
    WorkOrderFamilyInfo.NumberofParts.

    System Monitor:

    AvgCPULoad.SystemCPU.ProcessCPU.MemoryLoad.
  • Total Memory.
  • UsedMemory.

    Revision History

    URCaps Revision HistoryVersion Notes1.0.1.0Initial release on new documentation standards.

    In this section...

    Page Tree
    spacesV10