ad1) to consider when running zenon Service Engine as a service:
When the zenon Service Engine is configured to run as a service through zenStartupMgr.exe, the Service Engine is running in Session 0, normally in the SYSTEM user context.
An OPC DA client that attempts to connect to the zenon OPC DA server will launch a zenOPCSrv.exe server in its own interactive session (usually session 1) in its own user context. The zenOPCSrv.exe requires access to the zenrt32.exe process. This is not possible when the zenrt32.exe process is running in a different user context or different session. The zenOPCSrv will therefore not find the Service Engine, that in fact is running.
In order for the zenOPCSrv to access the Service Engine, it must also be started in Session 0 and the SYSTEM user context. This can be done by explicitly starting also the zenOPCSrv.exe application through zenStartupMgr, however in this case when a OPC client connects and disconnects (and it is the last client) the zenOPCSrv.exe server will also close automatically (intended behaviour). A workaround exists by creating a OPC client driver in the zenon project that connects to the local zenOPCSrv server, to 1) start the server and 2) keep the server running.
OPC Tunneling software, (Matrikon OPC Tunneller or Softing Data Suite) can overcome the issue that a OPC Client does not normally run in session 0 in the SYSTEM context, as the OPC Client side of the OPC tunnel by default is implemented as a service.
One thing needs to be explicitly taken into account. If the zenStartupMgr.exe service is configured to "allow interaction with desktop", also the OPC Tunneler service must be configured with the same option set to TRUE. If this is not done, a OPC Client that attempts to connect through the tunnel will create a new instance of the zenOPCSrv.exe server that will not be able to connect to the Service Engine, rather than find and use the existing one.