Multi-Client for Multi-screen

We plan to replace with Ignition an existing Siemens WinCC application.

Some PC have 3 screens. The same WinCC application is launched 3 times, 1 instance is dedicated for 1 screen.

For example, user can have :

  • view 1 on screen 1
  • view 2 on screen 2
  • alarm view on screen 3

or :

  • view 1 on screen 1
  • alarm view on screen 2
  • alarm view on screen 3

or anything else…

To Achive it with ignition, I plan to launch 3 vision client on the same PC.
but i see 3 problems :

    1. how to force each client to go in the right place (on the corresponding screen)
    1. can we lock the application on a screen (or lock on a position, and remove Close/recuce icon)
    1. user want to log/delog only one time, not logging in each application ! script client + gateway to auto log on the 2 other vision client when logging in the fisrt one ???

All the solution are welcome !
Adding some features to facilitate Multi-Client to manage Multi-screen would be insteresting !

It is possible to solve all 3 of your problems. Let’s start with the first one.

Ignition is usually set to open certain windows on startup by marking the windows (setting the flag) “Open on Startup”. Of course that is a static list and is not dynamic. In your case you want to uncheck the “Open on Startup” flag for all of your windows. That way you can open certain ones on startup based on who is logged in or where they are logged in. You can create a script on the Event Script Client > Startup script like this:[code]hostname = system.tag.read("[System]Client/Network/Hostname").value

if hostname == “192.168.1.10”:
system.nav.openWindow(“Path/To/Window”)
else:
system.nav.openWindow(“Path/To/Different/Window”)[/code]As you can see you can be in charge of which window opens on which client.

To tackle the second problem you can launch the client in full-screen mode which removes the X in the top right and will lock its position. The only problem is it will launch full-screen on one of your monitors. You will have to use a program to move it to other monitors.

The last problem is a bit harder to solve but there is a way. You can make your project auto-login for everyone. On a startup script you can check to see if there are any other sessions already opened on the same client machine and if so go right to the appropriate window. If only one session is open you can open a login window that you create. You can make your own login window that is customized where you can use:\

system.security. validateUser

to validate the username and password or

system.security.switchUser

to switch the user on the fly. The startup script will look something like this:[code]ip = system.tag.read("[System]Client/Network/IPAddress").value
sessions = system.util.getSessionInfo()
numSessions = 0
for session in sessions:
if session[1] == “MyProjectName” and session[3] == 0 and session[2] == ip:
numSessions += 1

if numSessions == 1:
system.nav.openWindow(“LoginWindow”)
else:
system.nav.openWindow(“RegularWindow”)[/code]Hope this helps.

Thanks a lot Travis. Lots of elements to achieve what I need !