Boolean values go high when logging into Ignition

I am working with version 7.9.13 Vision software.
I am running into an issue where whenever you have to log back into Ignition one of my bits in the plc gets activated and essentially acts as a button press when no one ever actually pressed the button.

In the plc the button is based on an AOI with bits for ReqEnable, Req, Ind, and Pulse. With the ReqEnable active, when the button is pressed the Req bit goes high and activates a pulse like a one shot. Based on the pulse the Ind bit will change state from 1 to 0 or 0 to 1. With the Ind bit high you are in SCADA mode and when the Ind bit is low you are in Local mode.

It works fine whenever you actually press the button, however if you logout and then log back in, when the client gets past the precanned initial log in screen and the main scada screen comes up the Pulse bit was activated and changes the state of the Ind bit even though no one pressed the button. If you use the Switch User button you are still in the client and this issue doesn't exist, unless you close and open the client again requiring log in again.

One, is this common for Ignition to do this? Im assuming it happens when the client reestablishs with the plc. Two, can something be done with Ignition to prevent this bit from going high even for a split second when logging into the client again?

Ignition isn't "doing this".

You have a binding or script firing that is doing this. You'll have to investigate your project a little more.

I checked and there is no scripting on the button. Its a standard Vision One-Shot button with bindings Enabled (tied to ReqEnable bit of AOI), Value (tied to Req bit of AOI), and a custom property called Indicate (tied to Ind bit of AOI) used for changing color or button and text of script. I checked the scripting on the button and there is nothing.

You might be able to make that tag read only, set the Designer or Client into read only mode (system.util.setConnectionMode | Ignition User Manual), disable the device, etc...

and then open that client and see if anything errors out and what the error and stack trace is.

1 Like

Just checked the client Startup script and you were correct in that the Req bit for the two buttons is set to go high every time the client is started. Is it possible to edit the startup script to say something like:

ScadaMode = system.tag.read('xxx.Ind')
If ScadaMode = 0, system.tag.write('xxx.Request',1)

This feels like a workaround for a different problem. I would remove this script entirely, then troubleshoot why the client / script / tag system isn't able to synchronize with the PLC.

The startup script was definitely changing states fo the buttons everytime a client started. I added the additional logic to say if its in local mode then send a request to switch it to scada mode. If its already in scada mode then do nothing becuase you are good already.