Secondary full screen monitor window randomly closing

We have a customer that has multimonitor clients running in the control room that run under one executable on two monitors. Randomly the full screen window on the second monitor screen closes completely. It has happened while the room was empty and no processes are running on the equipment. All the stations are ThinClients using RDP connections to ThinManager servers.

I've not seen it happen while monitoring the system, but can replicated the problem by adding a button to run the close window function(only will close secondary screen when button is pressed on that screen, button on primary screen does nothing. I can reopen the second screen using WinNewAt (not sure the exact name) and giving a position on the second monitor.

This is PlantSCADA 2023 with update 14 installed. We have many other independent systems there running different versions of Citect/PS(2016, 2018, 2020) with the same basic application that has been upgraded to the latest version at installation without seeing this issue.

We are considering a combination of options. Update to latest version(20), use screen profiles instead of setting the number of monitors in citect.ini for multimonitor, changing the cicode 'window' functions to use the multimonitor versions, or just compiling a new version incase something screwy happened with the deployed application.

Those are probably the best practices to operate the system and should be implemented anyway, but that doesn't explain the root cause. This customer is doing work with a process that can't have a production break and are hesitant to run production in case there is an issue.

Has anyone experienced something similar or have something else we should look into?

Parents
  • If you're using the MultiMonitor parameters to open a window on each monitor on startup then if the window closes, it should close the entire runtime. However, if you use WinNewAt() to open the 2nd window, and set the mode argument to Child mode, then the child window will close whenever you open a different page in the other (parent) window, and it will close if you call WinFree(). Also, when you log out or use auto-logout (LogoutIdle function), child windows will automatically close as the main window(s) reload to apply security changes.

Reply
  • If you're using the MultiMonitor parameters to open a window on each monitor on startup then if the window closes, it should close the entire runtime. However, if you use WinNewAt() to open the 2nd window, and set the mode argument to Child mode, then the child window will close whenever you open a different page in the other (parent) window, and it will close if you call WinFree(). Also, when you log out or use auto-logout (LogoutIdle function), child windows will automatically close as the main window(s) reload to apply security changes.

Children
No Data