OPC & DCOM Troubleshooting: Quick Start Guide: Author: Randy Kondor, B.Sc. in Computer Engineering January 2008
OPC & DCOM Troubleshooting: Quick Start Guide: Author: Randy Kondor, B.Sc. in Computer Engineering January 2008
After identifying the specific problem you are having, this whitepaper describes their typical
causes, and the required steps to solve them.
Page 2 of 8
To check the Startup Type for OpcEnum follow the steps below:
Click Start, and then click Control Panel. Click Performance and Maintenance, click
Administrative Tools, and then double-click Computer Management. The Computer
Management window for the local computer is displayed. "Computer Management
(Local)" is displayed at the root of the console tree.
Now that the Startup Type for OpcEnum is properly set, try
to browse the remote computer again. If it still doesnt
work, move to the next step.
Page 3 of 8
After authenticating an incoming User Account, the Operating System then checks whether
or not the User Account is allowed to Launch and/or Access the OPC Server. This is done
with the use of an Access Control List (ACL). The ACL for each application includes
information on the User Accounts that are permitted or denied from taking specific actions.
Thus, it is possible that the Operating System will deny access either because the ACL does
not include the necessary permissions for a User Account, or because that User Account is
explicitly denied from receiving launch/access rights. If either of these is the case, you
must change the ACL for the OPC Server. To learn more about how the ACL affects OPC
Servers and how to set it properly, refer to my whitepaper titled OPC and DCOM: 5 things
you need to know. Specifically, look for section 3.3 COM Security.
Page 4 of 8
Interactive User: The OPC Server Identity is set to Interactive User but there is no
Interactive User. In this case, the Operating System will be unable to launch the OPC
Server because no one is logged in the computer. If this setting is actually correct, you
must ensure that someone is logged in to Windows.
Launching User: The OPC Server Identity is set to Launching user and someone is
already connected to the OPC Server. If your server only supports a single instance at a
time, and someone is already connected to the OPC Server, then the second person will
be unable to establish a connection. Once the first person disconnects, the second
person will be able to connect. If
this setting is actually correct, you
must ensure that no one is
connected to the OPC Server.
Image 4: Use the Identity Tab to set the OPC Server's identity.
Typically, OPC Server Identity should be set to "The system
account (services only)".
In general, I do not recommend any of the settings above due to the problems that they
cause. Instead, I recommend that you use The system account (services only) setting,
unless your OPC vendor specifies otherwise.
Page 5 of 8
4.1 Firewall
If the OPC Client PC is behind a (hardware or software)
firewall, callbacks may fail to arrive at their destination. While
the OPC Client will be able to make outgoing OPC calls,
callbacks from the OPC Server may be blocked by the firewall.
To learn more about the Windows Firewall and how to disable
it, refer to my whitepaper titled OPC and DCOM: 5 things you
need to know. Specifically, look for section 1. Remove
Windows Security.
Page 6 of 8
Interactive User: The OPC Server Identity is set to Interactive User but the Interactive
User is not known to the OPC Client PC. In case, the OPC Client PC does not recognize
the User Account of the person who is currently logged on the OPC Server PC.
Consequently, the OPC Client PC rejects the callback because authentication fails. If this
setting is necessary, you will have to add the User Account of this person to the OPC
Client PC. It is also possible that this User Account does not have access rights to the
OPC Client PC, or that their User Account is explicitly denied access in the ACL of the
system-wide DCOM settings.
This User: The OPC Server Identity is set to This user and the OPC Client PC does not
recognize this specific User Account. To deal with this issue, refer to the Interactive
User setting above.
The system account (services only): The OPC Server Identity is set to the System
account, but System is denied remote access. In this case, simply follow the guidelines
I indicated in my whitepaper titled OPC and DCOM: 5 things you need to know.
Specifically, look for section 3. Configure System-Wide DCOM settings.
In general, I recommend that you use The system account (services only) setting, unless
your OPC vendor specifies otherwise.
OPC Client issues synchronous reads only: In this case, the OPC Client is negating any
optimization that the OPC Server might have, which will likely cause the OPC Server to
demand more CPU cycles from the PC than would be required otherwise. Find out how
to change these calls to asynchronous subscriptions instead. This change could
significantly reduce the load on your OPC Server PC because you will enable the OPC
Server to properly optimize its operation. Note that integrators often select synchronous
reading methods simply because they are unable to get asynchronous subscriptions to
work. This is often due to Windows security configuration. If this is indeed the case,
follow the steps I outlined in section 4. OPC Client doesnt receive data updates.
Page 7 of 8
OPC Client issues device reads: In this case, the OPC Client is constantly asking the OPC
Server to bypass its own built-in data exchange optimization and retrieve values directly
from the device/PLC. This can slow the OPC Server down significantly. If this is the
case, check into changing all reading calls to Cache instead of Device reads.
OPC Client issues asynchronous reads: In this case, you should suspect that the OPC
Server is not properly optimized and the cause likely has nothing to do with OPC
communication. Instead, you should suspect the communication between the OPC
Server and its data source. This deserves a call to the OPC Server vendor. Let them
know about your concern, and ask them for help in optimizing your communication.
6. Conclusion
OPC is powerful industrial communication standard. However, OPC relies on having DCOM
work properly. Luckily, DCOM problems can usually be overcome with relatively simple
configuration changes as documented in this whitepaper. To get a deeper understanding of
OPC, DCOM, and the diagnosis of all common problems OPCTI highly recommends that you
take time to get formal OPC training. This will enable you to structure your OPC knowledge
to help you reduce your short and long-term project costs.
OPCTI also encourages you to provide us with feedback. Let us know about new problems
and solutions that you found. We will pass these on to the rest of the OPC community, to
help everyone get connected.
Page 8 of 8