OPC Classic Troubleshooting

There have been reports of the OPC core components being damaged during the installation of third-party OPC server. The usual symptom is slow connectivity.

The following two suggestions may help to alleviate the problem.

  • If slow connectivity is experienced while running the 64-bit installation of VTScada, try reinstalling with the 32-bit option selected. In testing, this was found to substantially reduce connection time.
  • Fast response times should be available with the 64-bit version of VTScada. The problem may be caused by OPC-related registry settings and components. To restore the settings:
  1. Stop VTScada
  2. From an Administrator command prompt, run the following files to remove the current installations of the OPC Core components:

OPC_Core_Components_Redistributable 3.00.101.0 (x64).msi
OPC_Core_Components_Redistributable 3.00.101.0 (x86).msi

  1. From the same command prompt, use the same MSIs to reinstall the OPC Core components.
  2. Restart VTScada and test your application.

The OPC server can produce error -1073479672 (0xC0040008) when referencing a tag that does not exist or is not available over OPC.

In large systems, clients may struggle to successfully subscribe to all tags being published

To streamline outgoing publishes in times of heavy interaction, use the setting OPCServerRequestRateThreshold to temporarily suppress outgoing publishes. The OPC Server request rate can be discovered using the API GetOPCServerRequestRate. When the value of OPCServerRequestRateThreshold is exceeded by GetOPCServerRequestRate, VTScada will hold onto the most recent Publish call from every tag and update the client after the request rate has normalized (becomes less than the threshold). The interval used to calculate GetOPCServerRequestRate is set by OPCServerRequestRefreshPeriod. The default is 5 seconds. This is the minimum period of time allowable for an accurate reading but frequent enough to return to normal publishing quickly after high engine activity subsides.

Note that GetOPCServerRequestRate applies across all running applications and OPCServerRequestRateThreshold is controlled at the application level. I.e. If one application has a heavy load all applications can respond independently according to the needs of the application.