Protocol to Error Message Output

More
13 May 2024 19:40 - 13 May 2024 19:41 #300520 by Ritterchen
Hi together,
is there a way to display incoming error messages from RS485/ Ethercat in a meaningful and easy way?
Aka take the error IDs each device sends into one pin each and convert them into a user-readable message.

E.g. Spindle Error Output sends error 21 (or 70 other errors)
It gets taken and looked up into a table what the ID stands for and displays the corresponding Message:
"Drive over-load (oL)"

Classic approach to my understanding would be to split up the int into bits, combine it together with ands and then create 70 pins that trigger the message display in the Interface. (Gmoccapy in my case)

Is there an easier way to do that?
In programming I would just create a file that gets fed into an array and then a loop that goes through that and spits out the message.

Just want to check before writing something that is already existing?

All the best
Fritz
Last edit: 13 May 2024 19:41 by Ritterchen.

Please Log in or Create an account to join the conversation.

More
18 May 2024 08:45 #300899 by andypugh
I don't think that there is anything existing other than the "message" component and that would require the tangle of HAL that you describe.

This seems like a job for a Python userspace component.

If you do write it, consider submitting it to the project for inclusion.

Please Log in or Create an account to join the conversation.

More
18 May 2024 13:00 #300912 by cmorley
Qtvcp/QtDragon and Gmoccapy have most of what you need:
linuxcnc.org/docs/stable/html/gui/qtvcp-...#_code_messages_code
linuxcnc.org/docs/stable/html/gui/gmocca...ration-user-messages

Sounds like you need one that uses a S32 HAL pin to select the message.
Is it just the change in the S32 that would change the messages or would there be a trigger but pin?

Chris

Please Log in or Create an account to join the conversation.

More
10 Oct 2024 07:29 #311706 by Ritterchen
I created a quick draft about how I imagine an error I-O component would work.
If anyone has feedback about the intended function I would love to hear and adjust if necessary.

It sounds a bit complex to write myself, so I am looking also for help. If anyone is up to the job I would like to hire someone for it.


General:
Currently there is no error management implemented in LinuxCNC. I would like to have a component that simplifies that and makes it easy to react on a number of error signals from modern drives.

Example of the general function:
A servo drives sends out the error integer "2" via Modbus = Current overload. The components reads this error message in error stream 4 (One device= One Stream). Integer 2 is available as an error and will be processed in the component and therefore there is an output pin: ES4.2 (this output pin can trigger a message of the GUI e.g. "Drive A current overload").
Furthermore this error under this error stream is connected to a reaction pin e.g. "machine stop"
The reaction pins can be shared for various errors all connected via or.

One input is the number of error streams e.g. 0-32
One input is the range of each error stream e.g. 0-1000
One input should mask the available errors e.g. 1,2,3,10,111 (from the range above 0-1000), these numbers will be available as output pins (of the same number)
One input should define the number of "reaction-outputs" e.g. 0-2 (machine stop, motion-inhibit, pause)
One input should assign the errors (1,2,3,10,111) a "reaction-output" e.g. 2,1,1,1,0

Would love to hear feedback on that or PM me if you are interested in the job.

Please Log in or Create an account to join the conversation.

Time to create page: 0.079 seconds
Powered by Kunena Forum