Skip to main content
Version: 8.3 Beta 🚧

OPC COM

Connecting to OPC Classic (COM)​

note

OPC Classic is based on COM, which is a technology in Microsoft Windows. Therefore, the information in this section only applies to Ignition Gateways installed on Windows. Other operating systems must use OPC UA.

The OPC COM module provides the ability to connect to OPC servers that only communicate using the older COM based OPC-DA standard. If you have an OPC server that is not capable of accepting OPC UA connections and you need to talk to a PLC for which Ignition has no supported driver, you'll have to use the OPC-COM module to make your device data available in Ignition. Connections to OPC servers will be held open while the Ignition Gateway is running. All subscriptions to the server will use the same connection.

This section provides a brief walk-through of how to set up a new Local or Remote OPC-DA server connection using the COM module. Due to the complications that Windows DCOM security settings can cause, this guide is followed by the Troubleshooting OPC COM Connections section that deals with an overview of how to deal with a faulted server connection due to DCOM security settings, as well as other possibilities.

Install OPC Core Components​

  1. Register at www.opcfoundation.org.

    • The OPC-COM module relies on a .dll package provided by the OPC Foundation (www.opcfoundation.org) called the OPC Core Components. You can download the OPC Core Components Redistributable from the OPC Foundation's website under the downloads section. Registration with the OPC Foundation is required before you can download the package, but the registration process is free and painless.
  2. Download appropriate OPC Core Components Redistributable package.

    • There are two packages to choose from, the 32-bit (x86) and the 64-bit (x64), make sure you get the correct one for the version of Java and Ignition you are running. 64-bit Java and Ignition needs the 64-bit Core Components package and likewise 32-bit installations needs the 32-bit package. You may have to look around a bit for the redistributable. At last update of this page (2019), the download was listed under Resources → Samples and Tools → classic.
  3. Install Core Components on Ignition server.

    • It should be noted that if you are going to connect to an OPC server on a remote machine, you must also install the appropriate version of the Core Components on that server as well. The version type, 64-bit or 32-bit, does not need to be the same across the two servers. Just be sure to install the version that is appropriate for the OPC Server and Windows architecture.
  4. (Remote) Install Core Components on remote machine running the OPC-DA server.

    • Once you have the correct package downloaded you can extract the contents of the .zip file and then run the installer. With the core components installed you can now proceed to setting up your OPC-DA server connection in Ignition.

Connecting to OPC DA Server​

With the OPC Core Components now installed, the next step is creating a new OPC DA server connection.

Install OPC DA Server Connection​

  1. Go to the Ignition Gateway Connections section.

  2. Go to OPC > Connections, and then select Create OPC Connection.

  3. Choose the OPC-DA COM Connection and click Next.

  4. Enter the name for your connection.

  5. Under Server, select whether you want to make a Local connection, or a Remote connection if the OPC server resides on machine. For the most part, setting up a local or remote connection to an OPC DA server is the same. There are only a couple of differences for a remote connection.

    • Local: Selecting a local connection displays a dropdown selection with a list of the available and running OPC servers located on the local machine.
    • Remote: Selecting a remote connection additionally displays a Host Machine setting where you will specify the host name or IP address of the machine the OPC server resides on, which will update the server list under ProgId. Optionally, you can also enter the CLSID of the server. This id can be found in the registry of the machine hosting the server under: HKEY_CLASSES_ROOT\OPCServerName\CLSID.

  6. Select the OPC server you wish to connect to from the list. In the case where your server is not listed, you can manually enter the ProgId.

  7. When you are finished fine tuning the settings, click Create OPC Connection. You will be redirected to the OPC UA Connections page and your new server connection should be listed. The status of your connection will read Connected if Ignition was able to successfully connect to the third party OPC server.

Connection is Faulted​

In the case where your connection status is reporting Faulted, the troubleshooting process begins. As previously stated, configuring the DCOM settings on your machine can be a headache. The Troubleshooting OPC COM Connections section can help with determining why your connection is faulted and how to go about fixing the issue. If you are still having issues after exhausting these options, give our Inductive Automation tech support line a call and one of our representatives will be happy to assist you.

Troubleshooting OPC COM Connections​

This section describes possible OPC-COM connection problems with their solutions. If you do not see your problem listed and your connection status is faulted, try following the steps outlined in the Ignition Server DCOM Settings and OPC Server DCOM Settings sections.

Common Problems​

OPC Server is Not Listed in Choose OPC DA Server List when First Creating a Connection​

There are some cases where an installed OPC Server will not show up in the generated list. This list is generated by the OPC Server Enumerator which is part of the OPC Core Components. So, when a server you have installed on the machine does not appear in this list, it is likely due to the OPC Core Components not being installed correctly.

Try reinstalling the Core Components and going through the process of creating a new server connection in Ignition again. If the server still does not appear and you have the ProgId (or the CLSID for a remote connection) for the OPC server, you can enter the ProgId manually.

With all the correct information about the OPC server a valid connection to the OPC Server can be made. This however is rare. Most of the time when the server is not detected, connection attempts Ignition makes will fail.

Connection Status is Connected but Data Quality is Bad or the Connection Goes Faulted after Trying to Read Tag Data​

Usually this occurs when the DCOM settings for the machine on which Ignition is running are not correctly configured. DCOM connections go in both directions. Ignition must be able to send requests to the OPC server and the OPC server must also be able to callback to Ignition. If the DCOM settings on the Ignition server are not configured correctly those callbacks will fail and the server connection that initially had a status of Connected will either fault or all the tags that you have configured will come back with bad quality.

This is a problem that can affect both local and remote server connections.

Follow the steps outlined in the Ignition Server DCOM Settings section to ensure that you have correctly configured the DCOM security settings on the Ignition server machine.

Ignition Launches Second Instance of an Already Running OPC Server and is Unable to See Any Data​

It is important to note that Ignition runs as a service under the Windows System account. This can cause some issues with OPC servers that are meant to run interactively, meaning they run under the user account that is currently logged on. When Ignition attempts to make a connection to the OPC server, it will attempt to find an instance running under the same account and if it doesn't find one it will launch its own instance under the System account. Even if there are other instances running, Ignition will choose the one that was launched under the System account for its connection.

Many OPC servers maintain an instance running under the interactive user account that has been configured by the user and maintains all of the device connection information. When Ignition launches a new instance, this configuration information is lacking and none of the desired data can be seen or accessed. To get around this problem, you must specify in the DCOM settings for the OPC server that it always identify itself with the interactive user. Essentially this will force Ignition to use the currently running instance of the OPC server.

Set the OPC Server to Run as Interactive User​

  1. The DCOM settings are found in the Component Services manager. Right-click the entry for your OPC server under the DCOM Config folder and select properties from the popup menu.
  2. Select the Identity tab. Select the option that reads The interactive user, and click OK.
  3. Close out of component services and kill any extra instances of the OPC server you see running in the Task Manager.
  4. Go edit and save the OPC server connection in the Ignition Gateway.

Faulted Status with E_CLASSNOTREG Error Reported on OPC Connections Page​

This is almost always caused by the OPC Core Components not being installed correctly. Download and install the correct version for your system from the OPC Foundation. Remember, if you are making a remote connection you must install these components on both the Ignition server and the machine the OPC server is running on.

DCOM Settings​

Ignition Server DCOM Settings​

Follow these steps to open up the DCOM security settings on the machine that is running Ignition:

  1. Open the Windows Component Services, located in the Administrative Tools section of the Control Panel.
  2. Browse down through the Component Services tree until you see My Computer, right-click and select Properties.
  3. We want to focus on the COM Security tab. There are two sections, Access Permissions and Launch and Activation Permissions. Each section has an Edit Limits... and Edit Defaults... button. You must add the ANONYMOUS and Everyone accounts under each of the four areas making sure that the Allow option is checked for each of the permission settings. If you skip adding both of these to either the limits or defaults areas under either of the two sections there is a good chance your connection will not be successful.
  4. You can also try setting the Default Authentication Level to None and the Default Impersonation Level to Identify on the Default Properties tab. This isn't always necessary but it can sometimes help.

OPC Server DCOM Settings​

Follow these steps to open up the DCOM security settings on the machine that is running the OPC server:

  1. Open up Windows Component Services, located in the Administrative Tools section of the Control Panel.
  2. Browse down through the Component Services tree until get to the DCOM Config folder.
  3. Locate the entry for your OPC server that you wish to make a connection to, right-click and select properties.
  4. Click the Security tab and you will see three sections: Launch and Activation Permissions, Access Permissions, and Configuration Permissions. There are two options to choose from for each section. If you already added the ANONYMOUS and Everyone accounts to the COM Security section from the Ignition Server DCOM Settings section then you can go ahead and just select the Use Default option for each of the three areas. The second option is to edit each of the groups that have Customize selected. You will have to add both the ANONYMOUS and Everyone accounts with all privileges.
  5. Now select the Identity tab. You will notice that you can choose which account you want to run the OPC server under. Select the Interactive User option. This ensures that if Ignition launches an instance of the OPC server, it will run under whichever user is currently logged into the system.