I read through some of the posts, and it looks like this is an issue with the Vision button component. I'm working strictly with Perspective and, unless I'm missing something, I don't really see a way to make a momentary button.
I have three types of buttons in my project, buttons that write a value on action (set button), buttons that set a value and then reset it, and toggles.
The set and reset buttons are what I was referring to as momentary. The way I do these can vary but, for the most part are one of the following:
Set value onClick, reset value onMouseUp
Set value onActionPerformed, wait, reset value
Do you see any issues with my understanding of buttons?
The discussions go back to the Vision-only days. The fundamental problems are not Vision-specific. And Vision has the tools (local code execution) with which to create robust work-arounds. (Not trivial, but possible.)
Perspective simply cannot do this reliably. The part that does the "reset value" cannot be guaranteed to happen on time, if at all. Do not try to Perspective perform two write operations, separated by time or user action, from one button. Full stop.
Hardly any UI on the market can do this truly reliably, but most are far more reliable than anything browser-based.
FWIW, I've personally had issues with momentary buttons on several platforms, In touch, FactoryTrash, C-More (see less) and Vision. So it's not just an Ignition thing, it's a thing thing.
As far as jog buttons, unless the HMI/OIT is right next to the equipment, jog buttons are bad practice regardless. For maintenance jog they should be hardwired as previously suggested.
For majority cases I let the PLC reset the HMI bit but, this jog case is the one thing that bothers me. The motion controllers have their own IDE which has a jog button that seems to work without fail. I want to put similar functionality into the HMI, locked behind an elevated user, for troubleshooting purposes. I do have some hardwired controls that I can use if there is no other way.