Hi, I’m wondering if there is a way of getting the safety message string from the Dashboard/Teach Pendant as it shows up as a safety message popup, through some form of communication; Either RTDE, urScript og RTC?
It would be really helpful to be able to read this message from afar, as our robot is working in conditions where the pendant is not connected or cannot be viewed.
Do you need the complete text of the message? If so I think it’s possible to get it from the primary client interface byte stream on port 30001, but it’s a bit of a hassle to process it.
If just knowing the current safety status is sufficient, you can check safety_status_bits through RTDE.
Is there a way to get error/ exception messages from RTDE interface? Can we use the RTDE_TEXT_MESSAGE package to retrieve any messages from the controller? If so can you share any code sample or any useful links? Thanks
Hi @roy.j, no unfortunately I think this is still not possible. Seems the text message package will only contain info on protocol related issues, not from the robot log. I can see two alternative approaches - either 1) filter the primary client interface to get relevant messages, or 2) monitor the safety status through RTDE, then when robot goes into error state, connect to dashboard server on port 29999 and send “save log\n” to update log_history.txt and then ssh/sftp in to get the tail end of that log file and see what’s going on (bit convoluted but pretty easy to do).
I want all error codes when fault occurs but I didn’t get that. Primary Connector is main class it redirect to relevant class like when receiving package 20 it sends to RobotMesssage. This was my case.Can you help me with check you can receive error code when fault occurs faults that we can check is In Teach Pendant go to Installation->safety->Hardware->Put password then Select No to Teach Pendant and apply it gives fault while receiving packets you get package 20 when fault occurs and unpack ythem check it gives any error code.
It seems you are basing your code on a sample previously posted on this forum. The primary interface datastream format sometimes changes between software versions, and that sample was written some time ago, so it’s likely that the code to address certain parts of the datastream needs to be updated. I would recommend referencing the below document to ensure your code is compatible with the current format:
I wrote a piece of code a month back that is up to date for 5.9+ as a test. It grabs the RobotCommMessage, KeyMessage, and TextMessage data and outputs it with some light formatting. Note that this is a very rough draft and is not coded very efficiently, but works to pull at least some of the data you’re looking for. Once it’s cleaned up, I’ll repost it as a separate topic as we get asked a decent amount for ways to parse the Primary/Secondary interface.
Note: This was written in Python 3.8.7 and may not function for lower versions. primary_parser.zip (1.3 KB)
I know UnderAutomation SDK allows to retrieve popup message / title, runtime exception, safety messages and logs. Anyway, in provided examples, they handle events each time a popup is opened.
It is also possible to close the popup or acknowledge the safety remotely.
Thanks for your code @krmi .It works but if i make fault the robot by disable teach pendant configuartion and not removing teach pendant i got error code of C303A2(Shutting Down) instead of C283A22 that was shown in TP. How to get that fault error code properly.