QTplasmac, Estop Mode 2 and estop-latch - a safety issue

More
28 Oct 2021 11:49 #224566 by rodw
If you have a larger table, you might want a number of estop buttons  (I have 3).
When you do this, you will likely use the estop-latch component. You will require a GUI estop button (or an external button) to issue the required reset signal to the estop-latch. I don't have an external switch and use the GUI estop button to reset the latch.

If you go all out and use a standards compliant safety switch to manage your estop, you will need to use estop-latch from my testing.

One of my estops (on the wireless pendant) needs to be cycled after the 7i76e is first powered up to close it. (We put this down as a safety feature by design).

When I used Gmocappy, the GUI estop button refused to enable and an error was raised if any estop switch was open. Axis does the same thing.

When I fire up QTplasmac with an estop enabled, pressing the GUI estop button will turn it from red to yellow and no error is raised. At this point it will not allow you to enable the power button. This can lead to confusion as there is no visual indicator as to why its not working.

I don't think this behaviour is standards compliant and it seems to be a significant safety issue to me. Also QTP is deviating from the normal LCNC paradigm here due to its unconventional (but clever) GUI handling.

I think the correct behaviour should be the estop button should stay red if power cannot be enabled (eg an external estop is enabled).
Also investigating why an estop error is not raised would seem warranted.

Sorry for the long winded post. I hope I made the issue clear.
For reference there is an estop-latch/external estop here forum.linuxcnc.org/47-hal-examples/25861-external-e-stop

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

More
28 Oct 2021 12:03 #224570 by phillc54
I don't think a GUI should have an Estop button.
 

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

More
28 Oct 2021 12:12 #224572 by rodw

I don't think a GUI should have an Estop button.

 

Technically it is an estop reset button.
It should not display an invalid state if the estop reset fails. It should stay red.

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

More
28 Oct 2021 12:19 #224574 by snowgoer540
I also think the ESTOP has no place on a GUI as well.

Also, this is not a QtPlasmaC thing, as QtPlasmaC just uses the QtVCP estop widget.

Anyways, this can be handled many different ways, one of them being via the hardware. I do not use the GUI estop button, and the GUI will simply not power on if the table is in estop. How do I know that's the problem? Because I also cant turn the cabinet on (which turns on power to the stepper drivers, and provides the estop signal to my 7i76) if the big red button is pushed.

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

More
28 Oct 2021 12:35 #224577 by rodw
I do agree that the estop should be external to the GUI but an estop reset button in the GUI should be supported. Axis handles that perfectly.

Yes  the machine will not turn on as you say but the estop reset button goes yellow which is inconsistent design. The user sees a yellow button for the estop reset and then can't understand why the power button won't turn on. If estop stayed red, he would know something was wrong on the stop circuit.

I don't think the colours applied to the buttons are locked in QtVCP as I'm sure the colour of the estop was not red in the first beta releases I tried.
I've had a couple of sessions with experts on safety circuits and came out bleeding.

Even if I was a volunteer developer, I don't think I'd like to knowingly allow a non standard safety circuit situation to develop in the GUI. The multiple fatalities at Dreamworld were just down the road so I'm more sensitive to this...

I can't add an external  reset to my HMI so I'm stuck with using the GUI.

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

More
28 Oct 2021 12:42 #224578 by rodw
I think the issue is there is a use case here that has  not been considered in the original design.
That is using the gui control as an estop-reset

I suspect the thought around the button was a stand alone element for sims and maybe quick and dirty builds/testing.

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

More
28 Oct 2021 12:54 - 28 Oct 2021 12:59 #224579 by snowgoer540

I do agree that the estop should be external to the GUI but an estop reset button in the GUI should be supported. Axis handles that perfectly.


Again, this is a QtVCP widget. I know Chris spent a fair amount of time on the widget, I seem to recall that it wasn't possible to exactly match Axis. This is when QtPlasmaC went the route of giving the user the option if they want to see the button, have it be an indicator, etc.

EDIT (my remembrance on this was pretty good): forum.linuxcnc.org/qtvcp/40981-estop-button-behavior?start=0

You could get rid of the estop in the ini file, and then add a custom user button to reset the hal pin necessary to reset your latch. That's possible on your own.

Yes  the machine will not turn on as you say but the estop reset button goes yellow which is inconsistent design. The user sees a yellow button for the estop reset and then can't understand why the power button won't turn on. If estop stayed red, he would know something was wrong on the stop circuit.

I don't think the colours applied to the buttons are locked in QtVCP as I'm sure the colour of the estop was not red in the first beta releases I tried.
I've had a couple of sessions with experts on safety circuits and came out bleeding.


You can change the color of almost anything on the GUI with a custom stylesheet. I am not at a linux PC, so I can't provide you an exact example, but this section will get you going:

linuxcnc.org/docs/devel/html/plasma/qtpl...mizing_qtplasmac_gui

You can look at the qtplasmac.qss for an idea of what is possible.

I'll also note that I find it easiest to just create a qtplasmac_custom.qss rather than the INI method described.

You can even now change the color and transparency of the plotter via stylesheets. I think it's pretty handy.

Even if I was a volunteer developer, I don't think I'd like to knowingly allow a non standard safety circuit situation to develop in the GUI. The multiple fatalities at Dreamworld were just down the road so I'm more sensitive to this...

The default is for the ESTOP to be an indicator only.

I can't add an external  reset to my HMI so I'm stuck with using the GUI.

I don't see why you couldn't add a custom button to do what you wish then.
Last edit: 28 Oct 2021 12:59 by snowgoer540.

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

More
28 Oct 2021 14:37 #224583 by tommylight
I very much think the E-Stop should be on the GUI and big enough to see from across the shop, that is a must especially in cases where there are more than one physical E-stop buttons on the machine.
That makes Rod happy, so now to disappoint him a bit:
I never ever use the e-stop latch, i wire all e-stop buttons as normally closed in series for small machines, or wire each one to separate inputs and logic gate them in hal so it warns the exact button pressed.
The latch is a nice feature for sure and maybe i will use it when i get to machines using more than 3 buttons! :)
Regarding QtPlasmaC, the E-Stop button on the GUI tends to remain red after clicking on it and enabling the machine so i have to press again and again to make it go green. I got used to it.
Also have not used QtPlasmaC for the last 2 or 3 months, so i am not current with the state now.
Waiting for some parts to finish the 3 new machines and finally dress them up.
The following user(s) said Thank You: rodw

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

More
28 Oct 2021 21:13 - 28 Oct 2021 21:23 #224613 by snowgoer540

I very much think the E-Stop should be on the GUI and big enough to see from across the shop, that is a must especially in cases where there are more than one physical E-stop buttons on the machine.

This sounds like an ESTOP indicator to me... I should clarify that I meant ESTOP button.

At any rate, to change the color of ESTOP (button or indicator):

Step 1. Create a file in your config folder called qtplasmac_custom.qss if it does not already exist.
Step 2. Enter the following code:
/****** ESTOP BUTTON ************/
#estop,
#estop:checked:pressed,
#estop:disabled {
color: #16160e;
background: green;
border-color: green }

#estop:pressed,
#estop:checked,
#estop:disabled:checked {
color: #16160e;
background: pink;
border-color: pink }

This would produce Rod a pink button/indicator with a pink border when the ESTOP is not active/tripped, and a green button/indicator with a green border when it is active/not-tripped.

A few notes:
1. "color" above is the color of the text, I left it as the default.
2. you can type in a color name for most of the primary colors, and some others. You'll get a message in terminal if it doesnt understand your color name. You can also use hex colors (the #16160e for "color" is an example of how to do that), there are a multitude of hex color wheels online to pick any color you'd like.
3. the contents of this file take precedent over the GUI defaults.
4. you dont have to restart QtPlasmaC every time you want to preview your change to the custom stylesheet file. You can simply go to the PARAMETERS tab, click a object to change the color, "Frames" for example, and then click the color that the Frames already are and click OK. This will cause QtPlasmaC to re-read the sytlesheets files, and apply your changes.
5. stylesheets are picky for syntax. You can view a myriad of examples in the qtplasmac.qss file. However, there are many more items that can be manipulated than what is shown in there.
6. some of this probably sounds confusing, but it will make more sense once you start messing with them. keeping #4 in mind is helpful.

Enjoy.... The rabbit hole here is deep. You've been warned :laugh:

EDIT: [sarcasm]editing on this forum is great and easy to use[/sarcasm]
Last edit: 28 Oct 2021 21:23 by snowgoer540.
The following user(s) said Thank You: tommylight

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

More
28 Oct 2021 21:59 #224617 by rodw
Thanks for the link Greg, I had a quick look at action_button.py There is a lot I need to understand first.

Tommy, estop-latch will allow each switch to be identified and is a more correct (safer) way. In fact, I think its the intended method for the LCNC paradigm to add external estops. But when you build an estop chain in LCNC with it, sadly its not compliant with  EN ISO 13849-1 2008

A simple compliant estop can be built by dropping mains power to the motors and enabling a low voltage signal to say its been triggered to go to a lcnc input. But if you use multiple estops and don't route mains power through them, you have to use a EN ISO 13849 compliant safety relay. Nobody wants to route mains power around the table as that is a safety issue so you are left with having to use a safety relay.

A safety relay comes out of estop when its given a momentary signal on an input. This signal can be applied by a physical external momentary switch or by using the reset signal from the HMI. Once the safety relay is enabled, it stays enabled until an estop is pressed or the machine is powered off. It would be reasonable for the HMI to have an indicator that correctly shows that the safety circuit is enabled. Currently QTvcp  does not do this.

I think the issue is that it was assumed that axis did it wrong and a different method was invented. But it was forgotten that there were years of development behind axis that correctly accounts for all use cases and estop-latch is an integral part of this. Maybe a mode 3  is required for a reset button but it seems Mode 2 almost gets it right and could be modified if there was a will.
The following user(s) said Thank You: tommylight

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

Moderators: snowgoer540
Time to create page: 0.145 seconds
Powered by Kunena Forum