We are currently working on an HMI solution for an automation cell we have created.
The screen we are using is an Industrial All in One Beckhoff PC and we are encountering a single issue with it as of now.
We have multiple momentary buttons on this HMI for manual control functions and have ran into an issue of needing to double tap in order for the mousePressed event to trigger. I’m not sure if it’s a problem that can be solved through Ignition or would it be better to try to reach a solution with Beckhoff instead?
We’ve noticed that when we tap on the buttons they don’t register that they are pressed until the user has moved their finger as well. Thanks for the help!
The mousePressed Event can behave strangely sometimes.
Have you tried using the actionPerformed event instead?
This should trigger reliably every time the button is pressed.
Take a look at settings in the touch driver. You may find something there helps it behave as expected.
Also note momentary control via HMI with non-deterministic communication has issues. Search this forum for “momentary button” and you’ll find some good discussions of the issue and potential workarounds.
It unfortunately needs to be a momentary press, it’s used to control a VFD jog signal and the user needs to be able to let go of the button and have the VFD stop the motor. If we could handle it in the PLC we definitely would have.
I have the same problem with touch screen devices. I try to setup a simple timer on my button.
define a timer on custom property of button.
bind it to now(1000)
add transform script.
In script increment timer and check if value pass your Limit, if so use system.tag.write to reset your tag.
return the new timer value.
In button click event script reset self.custom.timer each time.
in script check the value timer if it is
You absolutely need PLC code to handle lost releases for any momentary button. If you are using Perspective, I don't think there is a solid solution yet. If you are using Vision, you probably should start here:
For a more detailed (and heated) discussion, this old thread might be helpful:
Why use the mousePressed event? Bind to control value.
Your issue and "stuck bits" to me are not the same issue. Yes, you need to have something on the PLC side as a watchdog so you don't have commands stuck on. But, needing to touch the button twice is something else.
We are binding to control value. Momentary buttons trigger on mousePressed and turn off on mouseReleased. Our bits don’t get stuck, they straight up don’t trigger on for a long enough period for the manual controls to work.
This is a problem that people have been having with Windows 10 OS for touchscreens so we’re trying to see if maybe Beckhoff has a solution to offer, I’ll post an update if I hear anything back.
I understand, that was my point, some of the comments in this thread are not on point. I have used several win 10 touch panels and they all worked great, with mom. PBs. As stated, try a different driver.
We have come up with a weird solution for the problem that I am not a huge fan of but it works. We installed a single-touch driver from Elo Touch and set the visibility of the cursor to 0 when in the program. It’s a strange solution but it worked for us. Make sure click lock is disabled when using this solution. If anyone can think of a less strange way to get this done, please feel free to post your thoughts.
Yeah, I don’t remember all the details, but we are using Elo Touch drivers and had to tweak some settings to get things working as desired as well (Beckhoff Windows 10 Embedded PC with Hope Industrial panels). Elo Touch driver version mattered.