Very Concerning Read/Write Issues. Important information for all users

FactoryTalk is mentioned quite a bit here, it is a very ambiguous reference as it does not refer to any particular software or hardware. PanelView is also no longer an assumed platform. I assume in this case most often FactoryTalk View ME on a PanelView Plus 6 is what is being compared. A push is not possible on this platform, the project file is replaced over a network and the unit rebooted. With SE an update can be made, but it does not take effect until the applicable screen is reopened.

In any case HMI jogging (any platform) is for machine movements outside of the protected safety zone. Jogging inside the protected area should be performed with a safety dead-man switch in most cases. Or certainly with physical I/O in others. Properly configured local PLC code is also required - the HMI is not what is controlling movements.

I’m also going to go out on a limb and assume you’re not using some custom VBA tied to PanelView buttons to control movements in your comparison case. Why would you use custom scripting on the jog buttons in this case? When you do something like this you take it upon yourself to ensure you account for all possibilities.

Even in a properly designed motion control system it is bad practice to make updates
to HMI or PLC logic while personnel are inside of a risk area.

The fact that you did not originally design/build the equipment is no excuse for improperly implementing/modifying these controls.

5 Likes

Ignoring the safety system issues others have already covered, while the reset timers will indeed fix persistent 'sticky states', 4 seconds is a long time to still be doing potential damage if the button does indeed become stuck again. This is only a bandaid 'solution' applied to dirty skin. IMO, removing all momentary PLC actions from SCADA - where SCADA is setting and resetting PLC values - is a critical step forward. Momentary buttons are a terrible hangover that unfortunately made it into SCADA after hardwired push button panels started being replaced by intelligent HMI/SCADA control systems. This type of jogging action controlled by a SCADA system relying on a comms link is fraught with trouble...

Hi All,

I may be covering ground that has already been covered, but I very rarely if ever us momentary push buttons in any SCADA, HMI application.  I am no way an expert but have had experience with Allen Bradley RSLogix 500 / 5000, Panelview Plus, Panel Builder, DTAM's (for those old enough to remember), Omron and the NB / ND screens

Not sure why that message got sent, but I will continue it now.

Basically I have had some experience with Siemens, AB, Omron, Mitsubishi, Red Lion, Citect, Wonderware and others. In the majority of cases, I use a "Latch" Push Button and turn the bit off within the PLC code. The button is only on for 1 scan. This ensures that if 'communication' is lost between the PLC and the HMI / SCADA, the device will not stay on unless the PLC code allows it. I use this method even when jogging motors etc. The bit is turned on from the screen. it stays on for 1 scan and then it it is reset. If the Push Button is still pressed, it will immediately turn back on for another scan.
This will depend on the scan direction but the Push Button from the screen turns on Bit1 and resets the Push Button then on the line above the "normally Open" of bit1 unlatches / resets Bit1. Bit1 is on for 1 scan cycle and the button is turned off.
I hope I have had a chance to help someone with my method

4 Likes

Writing bits (or anything else) from two directions is inherently racy. After writing, SCADA systems like Ignition expect to see what was written come back on the next polling cycle. There are tweaks to minimize the impact of this (optimistic writes) but they really just open other races.

So, I strongly recommend you NOT set a bit from an HMI and reset that bit in the PLC. At least, not without a relatively long dwell time. That is an anti-pattern. Instead, increment a small integer, letting the change be the equivalent of the pulse from a bit. Keep incrementing (quickly) while the button is pressed. Use a Time-Delay-OFF timer in the PLC with a short timeout to hold the pulse between increments.

(I’m not sure there’s complete round-trip way to do this reliably in Perspective.)

3 Likes