Window Permissions Based on IP Address

I have a piece of equipment that has 3 Ignition Clients running on it. Only one of the screens is the “Master” screen for safety reasons. That screen needs full funtionality. The other 2 screens only need to display what is happenning on Master screen and be able to use a recipe search function. The clients are all on 3 different PC’s with different IP addresses. My initial thought is to create 3 projects and have them access the same information but only allow the “Master” Project to have full functionality. The master selection will be based on the IP address of that PC. I am very new to the Ignition/Python world so my design pallette is very small. Is there a better/faster way to implement this design?


Multiple projects is one approach. There isn’t just one solution. I would create an “Operator” role and an “Observer” role, with corresponding user accounts. Then I would have just one project, and have it auto-log-in one of the observer accounts. Create a boolean client tag in the project that represents “write access” and only show/enable buttons or allow value entries when it is true. It would be an expression that checks for the “Operator” role.

In the project’s startup event script, check the IP address of the client, and automatically switch to an operator account when it matches the master computer.

This approach would work if you don’t need anyone to log in or out of the nodes - if you do this could get complicated.

What we’ve done before is run a script on client startup to check the node’s IP address. If it matches the Master IP address, we set a Client tag and then use this to hide or block all controls and restrict access to screens.

You can place a string tag in PLC which you can store master PC name in. Then compare to allow features or deny.