Buckle up because this bug is a strange one… Back in November of 2014 I was out commissioning an HMI for our customer. I completed that job with no major issues to speak about. Fast forward to May of 2015 and here I am at the same customer site, commissioning some changes I’ve made to the HMI to reflect some hardware changes to their conveyor systems. When I opened up my screens I noticed that some photoeyes on an HMI screen were indicating that they were blocked. I went over to that area and physically checked them and flagged them with my hand. They were definitely not blocked, the PLC said that they weren’t blocked and even the HMI SQLTags were indicating that they were not blocked. So why did my screen show me that they were blocked? I was trying to show this to a coworker when I switched to another screen that shows the same template with those photoeyes. On that screen, some were blocked and some weren’t. I went back to the original screen and they kept changing! Every time I would change screens, the photoeyes were randomly changing states even though the PLC and SQLTags were always displaying the correct value.
I have tried everything that I can think to troubleshoot this. I have downgraded my Java from version 1.8.0_31 to 1.7.0_79, I have reinstalled the Gateway, I have restored from old gateway backups, but the problem persists. Then I realized a pattern that was happening. These randomly changing photoeye states were only happening to the ones I added since my November 2014 commissioning trip. Just now I created four photoeye objects and placed them in a 2x2 grid on a screen of my HMI. These objects have no tags bound to them and should all be in agreement with each other. However, every time I change from the screen with the 2x2 grid of photoeyes on it and come back, they randomly change states. I am going to upload a video I took with my phone to demonstrate this and will update this post when I am have a better wireless signal.
Ignition version: 7.6.6
Java version(s): 1.8.0_31 and 1.7.0_79