The Windows Active Directory provides central authentication and authorization services for Windows based computers. It also enables Network Administrators to assign policies, deploy software, and apply critical updates to an organization. Active Directory was designed to support hundreds of computers simultaneously.
When a users attempts to log on to a Windows computer that is on a Windows Domain, Windows automatically attempts to verify the user’s password with the Active Directory (which typically resides on a separate central computer).
OPC communication is based on DCOM, which uses the Microsoft Active Directory to authenticate users, when the computer is connected to a Windows Domain. In other words, the authentication is not done by the computer on which the user is logging on.
If the computer is connected to a Workgroup, Windows does not use the Active Directory. Instead, Windows authenticates users against User Name and Password combinations that Windows stores locally.
OPC uses the authentication capabilities that Windows provides. Thus, access to the Active Directory is very important for OPC applications to work properly.
See also: Authentication, DNS, Domain, Workgroup
ActiveX is Microsoft’s name for a set of object-oriented program technologies and tools. An ActiveX component (ActiveX control) is a self-sufficient software module that can execute in an ActiveX container application such as Internet Explorer, Outlook, Excel, and Word. Most HMIs and data analysis tools are also ActiveX containers, so it is possible to “plug-in” one vendor’s ActiveX control is another vendor’s ActiveX container application. ActiveX is Microsoft's answer to Sun Microsystems’ Java. Thus, an ActiveX control is roughly equivalent to a Java applet. ActiveX files typically have a file name suffix of OCX or VBX (Visual Basic Control). ActiveX components use COM/DCOM to exchange data with other software components.
There are commercial ActiveX components that enable programmers to quickly implement OPC communication capabilities within an application.
See also Applet, COM, and DCOM.
Address Resolution Protocol (ARP) maps an Internet Protocol address (IP address) to a Media Access Control address (MAC address) that is recognized on the local network. The Media Access Control address (MAC address) is the physical machine address, typically that of the network interface card (NIC).
See also: APIPA, MAC address
Founded in 1918, the American National Standards Institute (ANSI) is responsible for approving US standards in many areas, including computers and communications. Standards approved by this organization are often called ANSI standards. ANSI Standards include ANSI C (version of the C language approved by ANSI), ASCII, SQL, etc.
Application Programming Interface (API) is a set of software functions used by one application as a means for providing access to another application or operating system's capabilities.
An API often “wraps” around a protocol to make it easier for programmers to use that protocol. Common Microsoft APIs include COM/DCOM and .Net.
OPC communication uses the DCOM and .Net APIs
See also: Protocol
Windows uses Automatic Private IP Addressing (APIPA) when it is unable to obtain an IP address using DHCP. Typically, a DHCP server provides each computer with an IP address. However, sometimes Windows is unable to obtain an IP address from the DHCP server for a variety of reasons. Thus, when Windows detect a network connection, and it does not have a pre-assigned IP address, and it is unable to connect to the DHCP server, it will assign itself an APIPA address.
APIPA addresses fall in the range of 169.254.0.1 to 169.254.255.254. All devices use the default network mask 255.255.0.0 and all reside on the same subnet. When using APIPA, it is possible to ping other computers on the subnet, but it is not possible to ping computers that are external to the subnet.
Client applications can verify their address is unique on the LAN using Address Resolution Protocol (ARP). When Windows is finally able to communicate with the DHCP server, it will replace the APIPA address with the newly assigned IP address that Windows obtained from the DHCP server. APIPA is enabled by default on all DHCP clients in Windows. It is possible to modify the Windows Registry to disable APIPA.
If a computer has an APIPA address, it is unlikely that OPC will work as well. This is because the presence of an APIPA address usually indicates some kind of a network problem.
See also: ARP, DHCP, IP Address
An applet is a small application that executed inside a larger application, such as a web browser. On the Web, an applet is typically sent along with a Web page to a user. Applets are more limited than standard applications because they do not have access to some computer resources (such as a printer), nor network resources (such as other computers).
In the past, the term “applet” only referred to applications written with Java. But today, the term “applet” has no bearing on the language that was used to program it. For example, items in the Windows Control Panel are called Control Panel Applets. J# Browser Controls provide a way for developers to migrate their existing Java applet source code to run within the context of the .Net Framework.
American Standard Code for Information Interchange (ASCII) is a seven bit code used to represent alphanumeric characters. In an ASCII (ass-key) file, each character is represented with a 7-bit binary number and 128 possible characters are defined. ASCII was developed by the American National Standards Institute (ANSI).
ASCII is the most common format for text files in computers and on the Internet. Windows NT-based systems use a newer code, Unicode. Conversion programs allow different operating systems to change a file from one code to another.
See also: ANSI
Various OPC calls explicitly make use of asynchronous communication. When an OPC Client application issues an asynchronous call, the OPC Server acknowledges receipt of the call itself. The OPC Server then “calls” the OPC Client application back with the result using a callback. The OPC Client application does not know when it will receive the callback, and therefore the call is said to be asynchronous, or without time.
Developers and Integrators use asynchronous calls when they do not require a specific order of operations. Suppose that an operator must close two valves, but the order is not important. Furthermore, suppose that the first valve takes 5 seconds to close, and the second valve takes 1 second to close. Using an asynchronous call, the operator could issue both calls simultaneously, but the second call would actually complete first! However, if it is indeed necessary to complete the first action before the second begins, Developers and Integrators must ensure that they use Synchronous communication.
Asynchronous calls can provide a significant performance boost when an order of operations is not required. As well, developers use asynchronous calls to implement OPC Item subscription.
Using asynchronous communication, an OPC Server relies on callbacks to deliver data back to an OPC Client application. Integrators must configure the PC with the OPC Client application to accept the callbacks. Failure to do so will cause callbacks to fail and consequently any asynchronous communication will fail. This is a common cause for OPC Item Subscriptions to fail. Integrators often use synchronous communication to compensate for poor security configuration. However, this will have other undesirable affects.
See also: Callback, Subscription, Synchronous
The process of verifying the identity of a user, typically using a unique User Name and Password combination. In OPC, the Operating System performs the Authentication process while the OPC Server holds the Access Control List (ACL).
Bandwidth describes the information carrying capacity of a channel. Digital data transmission expresses bandwidth in bits per second (bps) such as kbps (1000 bps), Mbps (1000 kbps), or Gbps (1000 Mbps, a billion bits per second). Analog data transmission expresses bandwidth in Hertz (kHz or MHz).
Network bandwidth is important for OPC communication as it defines “how much” data can pass through the network. It is important to note that effective transmission rates are affected by both the available network bandwidth and the quality of transmission. That is, if the available bandwidth is high, but the quality of data transmission is poor, then a lot of errors will be transferred very quickly. However, this communication will rarely be useful for any industrial applications.
See also: Quality of Service (QoS)
Boot (bootstrapping) is the process of initializing the computer and loading the operating system. This usually occurs when the computer is powered up or reset.
Bootstrap Protocol (BOOTP) is a protocol that can automatically provide a network device with an IP address. BOOTP is the basis for a more advanced network management protocol, the Dynamic Host Configuration Protocol (DHCP).
See also: Boot, DHCP
A Browse is an OPC interface that enables an OPC client application to view all of the available OPC items that an OPC server contains.
A cache is a temporary storage place. Computers typically use a cache for frequently accessed information. Retrieval of the information is faster from the cache than from the original source. There are many types of cache, including RAM cache, secondary cache, and cache memory.
OPC Servers keep their most recently acquired process values in their cache.
See also: Cache Read
An OPC Client can issue a Cache Read from the OPC Server. The OPC Server will understand that it should reply with the value it already has in its memory, rather than fetch it from the original data source (as would be required by a Device Read), which could take far longer to complete. A Cache Read should take less time to complete than a Device Read.
In OPC, a Cache Read can only be a synchronous operation, and there is no asynchronous Cache Read. This is because a Cache Read retrieves data from memory, so a synchronous call will return as fast as an asynchronous call, but without the programming overhead.
See also: Cache, Device Read
Microsoft Windows uses a callback mechanism to implement asynchronous communication. When an OPC Client application issues an asynchronous call, the OPC Server acknowledges receipt of the call itself. The OPC Server then “calls” the OPC Client application back with the result using a callback. The OPC Client application does not know when it will receive the callback, and therefore the call is said to be asynchronous, or without time.
Using asynchronous communication, an OPC Server relies on callbacks to deliver data back to an OPC Client application. Integrators must configure the PC with the OPC Client application to accept the callbacks. Failure to do so will cause callbacks to fail and consequently any asynchronous communication will fail. This is a common cause for OPC Item Subscriptions to fail.
See also: Asynchronous, Subscription
An OPC Server can execute as a Windows service. The benefit of this operation is the OPC Server will start with the Operating System. It will even take the identity of the Operating System which is desirable in some cases.
Some OPC Servers cannot execute as a Windows Service. This will either require a user to be logged on to the PC, or some other application to initiate the operation of the OPC Server.
Many products can be used to as an OPC tunnel. Some people use an HMI or even their Historian to provide OPC Tunneling services. However, in most cases, an OPC tunnel provides a far easier way to transfer data since the OPC tunnels are typically preconfigured for the specific task of transferring data rather than visualizing or storing it.
Classic OPC was based solely on Microsoft’s DCOM for data transportation. Consequently, OPC applications typically reside on Windows. There are ports of DCOM to other operating systems (such as Linux). Consequently, OPC will work on those systems as well.
With OPC UA the OPC Foundation wrote its own services for the data transportation. The OPC Foundation is providing source code to developers who can then port the technology to any operating system.
Classic OPC (based on DCOM) works on any operating system that supports DCOM. Microsoft Vista supports DCOM (even in the 64 bit version), thus OPC will work on Windows Vista 64 bit. In addition, OPC also functions properly between 32 and 64 bit systems.
Central Processing Unit (CPU) is the main processing chip of a computer. The part of the computer or computer system which performs core processing functions.
Certified OPC Professional (COP) is a designation distributed by the OPC Training Institute to professionals who have successfully completed associated OPC courses. OPC courses are coordinated by the OPC Training Institute. People who have earned their Certified OPC Professional (COP) designation have demonstrated their proficiency with OPC technology, design, architecture and installation.
See also: OPC Training Institute
A Client is a software application that contacts and obtains data from a Server software application. A Client makes a request and the Server fulfills the request. An example of a Client would be an e-mail program connecting to a mail server or an Internet browser client connecting to a web server.
In the case of OPC, an HMI or Data Historian typically would typically use OPC to acquire automation data from an OPC Server.
See also: Client/Server, Server
Client/server describes the relationship between two computer applications in which one application, the client, makes a service request from another application, the server, which fulfills the request. OPC uses client/server architecture. Other technologies that use the client/server architecture include email, relational databases, web browsing, ftp, etc.
See also: Client, Server
Component Object Model (COM) is a Microsoft proprietary technology that enables Windows software components (DLLs) or executable applications (EXEs) to communicate with each other on the same User Account. When COM is used in a network with a directory and additional support, COM becomes the Distributed COM (DCOM). OPC communication depends on COM and DCOM.
See also: DCOM
Refers to a Commercial Off-The-Shelf (COTS) product. COTS products are purchased and integrated with little configuration. Typically COTS products reduce integration cost and time.
A Cyclic Redundancy Check (CRC) is an error detection mechanism to ensure that there are no errors in the data transmission. In other words, it is a test to ensure that the data sent is the same as the data received.
Data Acquisition (DAQ) is the collection and measurement of signals from sensors, transducers, and probes for processing.
A database is a collection of records, or pieces of information. A database contains multiple tables. Tables contain records (rows) and fields (columns). For example in a table containing personal information on people, each row might represent a person, while columns would be used to store the person’s name, address, phone number, etc.
A schema contains the structural description of the type of information that a database contains. The schema describes the objects that are represented in the database, and the relationships among them.
The database management system (DBMS) is the software that manages the database. The terms database and DBMS are often used interchangeably, but this is technically incorrect because a database is a file or concept, whereas the DBMS is the software used to modify the database.
A database model describes the way a schema is organized, such as hierarchical, network, or relational model. Industrial applications typically use the relational model, which makes a relational DBMS (RDBMS). Common RDBMS applications include Microsoft SQL, Microsoft Access, Oracle, Informix, Sybase, MySQL, etc.
In a relational database, tables are related to each other. For example, the table of equipment is related to the equipment maintenance table, which is related to the maintenance personnel table.
Corporations often use SQL (Structured Query Language) and/or ODBC to retrieve data from an RDBMS.
OPC can be used to enable an RDBMS to collect automation data for the purpose of data analysis, optimization, troubleshooting, regulatory compliance, inventory control, etc.
See also: ODBC, SQL
The Database Management System (DBMS) is the software that manages a database. The terms database and DBMS are often used interchangeably, but this is technically incorrect because a database is a file or concept, whereas the DBMS is the software used to modify the database.
See Database
Distributed Component Object Model (DCOM) is a Microsoft proprietary technology that enables Windows executable applications (EXEs) to communicate with each other between two User Accounts. OPC communication depends on COM and DCOM. DCOMCNFG enables Users to configure DCOM.
See also: COM
A Distributed Control System (DCS) is a control system method that is spread, or distributed, among several different unit processes. Controller elements are not central in location but are dispersed throughout the system with each component sub-system controlled by one or more controllers. The entire system of controllers is connected by a network for communication and monitoring.
A DCS is typically a single-vendor solution that includes multiple PLCs, an HMI, a Process Historian, and configuration software. Consequently, a DCS is very tightly integrated and is theoretically easier to configure than the multi-vendor combination of the above components.
See also: PLC, Historian, HMI
Dynamic Data Exchange (DDE) is a form of InterProcess Communication (IPC) in the Microsoft Windows operating environment. When two or more applications that support DDE are running simultaneously, they can exchange information, data and commands. DDE has been enhanced with Object Linking and Embedding (OLE) technology.
Dead-Band is the range through which the input may be varied without initiating a response.
OPC Client can issue a Device Read from the OPC Server. The OPC Server will understand that it should ignore the value it has in its cache (if any) and reply with a fresh value from its original data source. Consequently, a Device Read takes longer to complete than a Cache Read, but the value will be more recent. In OPC, a Device Read can either be a synchronous or asynchronous operation.
DHCP (Dynamic Host Configuration Protocol) is a protocol that enables Network Administrators to manage Internet Protocol (IP) addresses from a central location. Using TCP/IP, each machine that connects to the network requires a unique IP address. Typically, when a Windows computer connects to a network, it first looks for a DHCP server to obtain an IP address. If it does not find the DHCP server, Windows uses APIPA (Automatic Private IP Addressing) to assign the computer an IP address. OPC communication will rarely work using an APIPA address, so users typically have to manually assign an IP address.
DHCP is an alternative to BOOTP (Bootstrap Protocol), which is another network IP management protocol. While DHCP is a more advanced protocol, both configuration management protocols are commonly used. In some cases, organizations use both protocols.
See also: APIPA, BOOTP, Internet Protocol (IP)
Domain Names System (DNS) is used to locate and translate Internet domain names into Internet Protocol addresses (IP addresses). A domain name is a meaningful and easy-to-remember name for an Internet address. For example the domain name www.opcti.com is much easier to remember than 74.50.16.248. The translation tables for domain names are contained in Domain name servers.
See also: Domain, IP Address
OPC provides specifications that enable applications to communicate with each other. As vendors release their software, and apply patches and upgrades, they provide different executables (distributable packages). However, to ensure successful OPC communication, users do not need to ensure that all their applications have the same releases. While this may be a good practice in some situations, it is not necessary. OPC compliant applications that support the same release of an OPC specification will be able to communicate with each other regardless of their vendor’s release.
Antivirus software detects viruses and other malware (trojans, worms, etc). Anti virus applications protect your computer from unwanted activities. These applications should not catch OPC servers because the servers are not harming the computer. However, it is possible future automated updates may incorrectly flag your OPC applications.
Therefore, you should add your OPC clients and servers to the exception list so that they will not be accidentally stopped in the future.
Note: these anti-virus applications are only one part of a cyber security measures. To improve your protection, you should also deploy firewalls on each computer, and restrict user account access. For an automated solution, refer to OPC Rescue.
A group of computers that share a common directory database (Active Directory). The Active Directory (also called the Windows NT Directory Service, or NTDS, before Windows 2000) contains the User Accounts and security information for the resources in that domain. Each person who uses computers within a domain receives their own unique account, or user name. Users can assign resources to User Accounts within the domain.
See also: Active Directory, DNS
A Domain Forest refers to one or more domain trees that share common directory information.
A Domain Tree refers to one or more domains that share a contiguous namespace.
Problem: When trying to configure DCOM components within DCOMCNFG, Windows issues the following DCOM configuration warning:
The CLSID {1F87137D-0E7C-44d5-8C73-4EFFB68962F2}, item C:\WINDOWS\System32\wbem\wmiprvse.exe and title Microsoft WMI Provider Subsystem Secured Host has the named value AppID, but is not recorded under \\HKEY_CLASSES_ROOT\AppId. Do you wish to record it?
Cause: In Windows XP, the most common cause of this problem is the following Windows Update: Security Update for Windows XP (KB956572) Unfortunately, this update is only valid on Windows 2003 (as per Microsoft's documentation). Adding to the complexity, not all Windows XP installations are affected by this update.
Notes:
Suggested action: Uninstall "Security Update for Windows XP (KB956572)". However, if you are already in the process of reinstalling Windows, simply ensure you do not apply this update.
Ethernet (IEEE 802.3) is a standard communications protocol used to implement a communication network to enable computers to exchange data with each other. Computers use a Network Interface Card (NIC) to connect to an Ethernet network. This is sometimes called an Ethernet card. Ethernet networks can be wired or wireless.
An Ethernet LAN (Local Area Network) typically uses twisted-pair wires. The most commonly installed Ethernet systems are 10BASE-T (Ethernet), and 100BASE-T (Fast Ethernet), which provide transmission speeds up to 10 Mbps and 100 Mbps respectively. The newest version (Gigabit Ethernet) supports data rates of 1 Gbps (1000 megabits per second).
There are alternatives to using Ethernet to implement a network. Token Ring was one such alternative, as is ATM (Asynchronous Transfer Mode) technology. However, Ethernet is now the most widely implement LAN (Local Access Network) standard for industrial applications.
Ethernet was developed initially developed by Bob Metcalfe, who worked at Xerox Corporation, in 1973. In 1976, the Ethernet was proposed as a standard by Xerox Corporation, DEC (now HP), and Intel. The Ethernet specification served as the basis for the IEEE 802.3 standard. The IEEE (Institute of Electrical and Electronics Engineers) proposed a working group in February (second month) 1980, which accounts for the 802 designation.
Ethernet is commonly used as the backbone for TCP/IP communication. DCOM uses TCP/IP as its data transport layer. Thus, most OPC communication that occurs between computers actually uses Ethernet, and depends on a well-working Ethernet backbone. It is therefore critical to ensure that the Ethernet network infrastructure is working well for OPC to work well.
See also: Hub, Router, Switch, TCP/IP
Extensible Markup Language (XML) is a flexible way to create standard information formats and share both the format and the data on the World Wide Web and with disparate operating systems.
OPC XML-DA is based on XML communication. OPC UA can also use XML to transfer data between the OPC Clients and Servers.
Software application or sequences of instructions, that is hard-coded into non-volatile memory devices. Firmware is essentially software that is embedded in memory and does not change.
The computer BIOS (Basic Input/Output System) is an example of firmware.
Graphical User Interface (GUI) enables a user to interact with a software application through graphics instead of text. GUI rhymes with “buoy.”
OPC communication does not define a specific GUI. This is left to the implementation from each vendor.
A historian is a type of database designed to archive automation and process data. Historians are used to troubleshoot processes, optimize manufacturing, store data for regulatory compliance, etc. Due to the enormous amount of data that they store, some historians reduce the total size of their database using various compression algorithms, such as storage by exception (only when data actually changes), or the Boxcar algorithm.
Historian products include AspenTech InfoPlus.21 (www.aspentech.com), Canary Labs Trend Historian (www.canarylabs.com), OSIsoft PI (www.osisoft.com), etc.
Human Machine Interface (HMI) is a software application (typically a using Graphical User Interface or GUI) that present information to the operator about the state of a process, and to accept and implement the operators control instructions. It may also interpret the plant information and guide the interaction of the operator with the system. An HMI is often a part of a SCADA (Supervisory Control and Data Acquisition) system; nevertheless, the terms are often used synonymously.
HMI products include Iconics Genesis (www.iconics.com), InduSoft WebStudio (www.indusoft.com), Proficy iFIX (www.gefanuc.com), and Wonderware (www.wonderware.com).
An HMI is also known as a Man Machine Interface (MMI).
To configure OPC communication to pass through a firewall, you must open a port for DCOM communication and provide application exceptions.
Configuration Procedure for Windows firewall (see below for hardware firewalls):
DCOM will only require enabling the above ports to establish communication. DCOM will find these ports automatically. This method will only work with Win
DCOM can also be configured to pass information across static (or fixed) ports so it can work well with external or hardware firewalls. In this case, only 2 ports will be necessary.
OPCTI's Level 2: OPC Security and Level 4: Advanced OPC Projects cover this configuration extensively. For automated firewall configuration, refer to OPC Expert.
OPC works seamlessly through most routers. However, any router that provides NAT (Network Address Translation) services will stop DCOM from working. This is because the OPC Server PC must be able to address the OPC Client PC directly.
In practice, most routers that are internal to a site/company do not use NAT. However, Routers that provide communication to the Internet typically use NAT and will stop OPC communication. If your OPC applications are separated by a router that uses NAT, you will have to either use Tunneling technology or use OPC UA (which uses web-services to establish communication instead of DCOM).
In general, there are three ways to diagnose a failure in communication.
First, look at the log files of both OPC applications. Often they will indicate if the application failed to receive a request, or failed to receive a reply. The log files will also indicate whether or not the application sent a request for a reply. This will help you to isolate the cause of the problem and determine whether the source of the miscommunication was on the OPC Client or Server end. Note that the amount of information in a log file is controlled by that application’s vendor. OPC specifications do not specify the type of information to log. Nevertheless, logging any information that would help a person find the cause of problem is good practice.
Second, look at the Windows event log to find out if there were any errors logged by Windows. This will also help you to isolate the cause of the problem.
Third, use a third-party application to log the OPC communication between the OPC Client and OPC Server. These applications (often called "sniffers" or "loggers") simply capture the communication between the OPC Client and server and record all the calls in a log file. The integrator can then read through the file and determine the cause of the problem.
Additional resources:
OPC applications can communicate with each other even when they are on different Windows Domains. The trick to getting communication working is Windows Authentication on both the OPC Client and OPC Server PCs.
First, the OPC Server PC must recognize the User Account of the OPC Client PC. Therefore the User Account of the OPC Client must exist in the Active Directory (located on the Domain Controller) of the OPC Server PC. Alternatively, the OPC Server PC must have a local User Account setup for the OPC Client application.
Second, the OPC Client PC must recognize the User Account of the OPC Server PC. Therefore the User Account of the OPC Server must exist in the Active Directory (located on the Domain Controller) of the OPC Client PC. Alternatively, the OPC Client PC must have a local User Account setup for the OPC Server application.
All this can be made easier if the IS (Information Systems) or IT (Information Technology) staff setup a Trust between the two Windows Domains. This will ensure that all User Accounts will be automatically synchronized between the two Domains.
OPC Servers that lose communication with their data source (such as a PLC, DCS, Analyzer, etc), should indicate that the process values now have "Bad Quality". In addition, they should also indicate the reason for this "Bad Quality". For example, an OPC Server can indicate the Quality value is "Bad" because it lost communication with the data source, or the item in question is "out of range" or there was a "Sensor Failure", etc.
These quality values can clearly indicate that the loss of communication was due to a failure between the OPC Server and its data source, rather than a communication problem between the OPC Client and OPC Server. Vendors can choose to implement this type of diagnosis in their OPC Server or not. Therefore, some OPC Servers provide no diagnosis at all.
The ability to diagnose problems and pass the results in a Quality parameter is an important feature that will help you to differentiate between various vendors. OPC specifications provide a list of possible error values.
Computers on a Workgroup do not use an external PC (Domain Controller with the Active Directory) to help with the process of Authentication. Instead, they rely on their own information for Authentication.
Suppose an OPC Client application, which resides on a Workgroup, communicates with an OPC Server on a Domain. In this case, the OPC Client application’s User Account must either exist on the Domain Controller (of the OPC Server PC), or on the OPC Server PC itself. Furthermore, the User Account of the OPC Server must exist on the OPC Client application’s PC.
Suppose that an OPC Client application that resides on a Domain communicates with an OPC Server on a Workgroup. In this case, the OPC Client application’s User Account must exist on the OPC Server PC itself. Furthermore, the User Account of the OPC Server must either exist on the Domain Controller (of the OPC Client PC), or the OPC Client application’s PC.
An OPC Server provides data to an OPC Client application (such as an HMI, Historian, etc) using OPC. However, an OPC Server always uses a non-OPC method to exchange data with a PLC.
For example, suppose an OPC Server communicates with a PLC using the Modbus protocol. In this case, the OPC Server will ask the PLC for specific memory addresses that contain the data that the OPC Server requires. This is done using the Modbus protocol. The PLC provides all the responses to the OPC Server using Modbus as well. This way, the OPC Server can read data from, and write data to the PLC using Modbus. The OPC Server then converts the data it retrieves from the PLC (using Modbus), to OPC "format," and sends the data to an OPC Client application.
In every case, the OPC Server must know something very specific about the PLC to which it connects. At minimum, it needs to know the protocol/API spoken by the PLC. However, in most cases, the integrator needs to configure the OPC Server for the specific information the PLC contains, which will change from project to project. In every case, once the integrator configures the OPC Server properly, any OPC Client application can retrieve data from the OPC Server without having to know anything about the PLC or its configuration.
OPC can transfer tens of thousands of values per second. Some OPC Servers have been clocked at over 100,000 values per second. On the other hand, serial communication typically provides data transfer rates of around 300 values per second, or a little more. Thus, OPC does not add a new communication bottleneck. Typically bottlenecks are a result of non-OPC related factors such as external network limitations.
Initial tests with the binary data transportation for OPC UA show that Classic OPC (based on DCOM) is faster for small messages, while OPC UA is faster for large messages. Nevertheless, context is most important. Both Classic OPC and OPC UA can transfer tens of thousands of values per second, whereas most control systems are unable to keep up with a fraction of this data transfer rate. Consequently, OPC UA is not expected to add another bottleneck to the communication system; just as classic OPC (which was OPC before Unified Architecture) does not add a communication bottleneck today.
OPC can transfer tens of thousands of values per second. Some OPC Servers have been clocked at over 100,000 values per second.
The OPC specifications do not limit the number of OPC Clients that can connect to an OPC Server. However, vendors might set their own limits for various commercial, performance, security, and other reasons.
OPC specifications do not limit the number of OPC Servers to which a Client can connect. However, vendors might set their own limits for various commercial, performance, security, and other reasons.
The OPC specifications do not limit the number of OPC Servers that can be installed on a single PC. However, vendors might set their own limits for various commercial, performance, security, and other reasons.
The most popular OPC Specification today is OPC Data Access (DA). OPC HDA is a distant second, while OPC Alarms & Events (A&E) is a very distant third. Nevertheless, as more users demand standardized access to their historical process data, OPC HDA continues to gain ground. Already all the major historian vendors support OPC HDA.
There are many factors that affect computer resource usage. Nevertheless, consider the following. Applications that use DCOM abound in the world of IS (Information Systems). This is the reason the OPC Foundation selected DCOM as the platform of choice for OPC. Also DCOM is already loaded in Windows by default. Therefore, the amount extra resources used by OPC applications are minimal.
A network hub, like a switch, connects multiple network devices. The hub transmits all data to all the devices it connects. A hub typically sends a lot more data than a switch and often loads networks with far more traffic than would be required using a switch. However, a network hub is typically less expensive than a switch.
See also: Switch
The various OPC specifications state how an OPC Server should communicate with an OPC Client. However, the OPC specifications do not state how each product should be configured. To find out how to configure a specific OPC application (such as an OPC Server or a Client application), you must consult the specific product documentation.
There are many reasons an OPC Client application will fail to connect to an OPC Server. The single most common reason is a failure to pass the Windows authentication process. The OPC Training Institute’s website covers many of these reasons in detail. Our whitepapers (available for free) list various error conditions, their causes, and how to solve them using a step-by-step guide.
The IEEE (pronounced Eye-triple-E) is a non-profit, professional organization that develops international standards. The IEEE Standards Association has a portfolio of some 900 active standards and more than 400 standards in development. This includes the prominent IEEE 802 (Ethernet) standards for wireless networking.
The IEEE name was originally an acronym for the Institute of Electrical and Electronics Engineers, Inc. Today, the organization's scope of interest has expanded into so many related fields, that it is simply referred to by the letters IEEE, and has become an anacronym.
See also: Ethernet, IEEE 802.11
IEEE 802.11 (wireless Ethernet) is a family of standards for wireless LANs.
IEEE 802.11 enables users to establish a secure connection (including Authentication and Encryption) between the data source and destination. The number of companies that use IEEE 802.11 is quickly growing as cybersecurity issues associated with wireless communication are solved.
OPC communication can use Wireless Ethernet for its networking backbone. However, users must take special care to ensure that network reliability and Quality of Service (QoS) remain high, real-time data could be lost.
People often use the terms Wireless Ethernet and Wi-Fi interchangeably. However, this is technically incorrect because Wi-Fi is a brand name that the Wi-Fi Alliance owns.
See also: Ethernet, IEEE, Wi-Fi
There is no need to delay purchases of OPC DA to wait for OPC UA products. This is because OPC UA is backwards compatible with OPC DA. As well, Integrators and vendors will be able to retrofit any OPC DA product with an OPC UA wrapper that the OPC Foundation provides.
Inter-Process Communication (IPC) transfers information between Windows processes or between the Windows Kernel and a process.
The Internet Protocol (IP) defines the format of information transported over the Internet. Data to be sent is divided into individual and completely independent packets. The Internet Protocol also specifies how the packets are addressed for delivery. Each computer (or host) on the Internet has at least one IP address that uniquely identifies it from all others, and each data packet contains both the sender's address and the receiver's address.
DCOM communication typically uses TCP/IP to transfer information between the different modules.
See also: DCOM, IP Address, TCP
Interoperability Testing is a process whereby two applications are tested to ensure that they work with each other. In theory, two applications that comply to the same specification should be able to communicate. In practice, different vendors can interpret and implement a given specification differently; thus, their products will not be able to communicate. Interoperability Testing ensures that the two products are in fact able to communicate.
See also: OPC Interoperability Workshop
An OPC Interoperability Workshop provides OPC Foundation members with the opportunity to test their OPC products for their ability to communicate with other OPC products. OPC Server vendors setup their servers and enable OPC Client vendors to connect to them. Similarly, OPC Client vendors attempt to connect their software to every available OPC Server. When the two vendors (OPC Server and OPC Client vendors) complete their test successfully, their products are deemed to be interoperable.
Interoperability testing is not a requirement for OPC Compliance. However, to ensure the highest chance of success, the OPC Training Institute recommends that consumers ask their vendors about their participation in an OPC Interoperability Workshop and their results. The results are posted on the OPC Foundation’s website.
The OPC Foundation hosts three Interoperability (IOP) Workshops around the world each year. In the past, these workshops took place in North America (United States), Europe (Germany), and Asia Pacific (Japan). Each member of the OPC Foundation has the opportunity to participate in each workshop. These workshops help ensure that OPC products from different companies are able to communicate with each other.
See also: Interoperability Testing, OPC Compliance Testing
A computer’s Internet Protocol address (IP address) is the numerical address of that computer. The Internet Protocol (IP) recognizes a specific machine by this address. An IP address consists of four groups of decimal digits separated by periods, for example 74.50.16.248. Each of the four groups is an 8 bit number that ranges from 0 to 255.
To avoid conflicts, each IP address on any given network must be unique. An IP address can be assigned manually or automatically. Typically, IP addresses will be assigned by BOOTP or DHCP servers. However, if Windows is unable to detect either server, it will assign the computer an IP address using APIPA. In this case, OPC will not usually work.
Windows uses Address Resolution Protocol (ARP) to assign an IP address to a computers Media Access Control address (MAC address).
DNS (Domain Name System) Servers enable IP addresses to be “translated” to a human-friendly format, called a host name, such as www.opcti.com.
Most OPC applications will accept an IP address instead of a host name to specify the address of the remote computer. Since DCOM communication depends on a well working TCP/IP backbone, the IP address has in important role in ensuring proper communication.
See also ARP, BOOTP, DCOM, DHCP, DNS, Internet Protocol
The beauty of OPC is that once the OPC Server has information, any OPC Client can easily retrieve it without having to worry about the specific PLC format. However, configuring an OPC Server to communicate with a PLC takes some work. A common issue is what to do about data sources (PLCs or DCSs) that have a specific structure for the data. With OPC Data Access (DA), the most common mechanism to describe the data is to simply use a common naming convention. Thus, "FIC101.PV" provides the Process Variable, "FIC101.SP" provides the Setpoint, etc.
Some OPC Servers are aware of structures in the device to which they are supposed to connect. In this case, the OPC Server can configure itself automatically for the scenario above. Other OPC Servers do not have a predetermined structure and require Integrators to set these up repeatedly for each project. The ability for an OPC Server to automatically configure itself to a PLC, or do so with minimal integrator interaction is a key differentiator between OPC Servers. The OPC Training Institute encourages you to find out how a server handles configuration at the time project requirements are set.
During "normal" operations of a computer system, some portions of the Operating System (OS) remain in main memory to provide critical operations services, such as interrupt handling, dispatching, or (critical) resource management. These portions of the OS are collectively called the Operating System Kernel.
In effect, the Operating System Kernel is the entire operating system minus the Operating System components that are not always in memory.
A Local Area Network (LAN) is a computer network typically limited to a small geographic area, such as a home, office, building, or even a series of buildings as would be the case in a corporation with a large campus.
The MAC (Media Access Control) address is hardware address of a device connected to a network. The MAC address is a computer's unique hardware number for the network interface card (NIC). Note that the MAC address belongs to the NIC rather than to the computer itself. The MAC address contains 48 bits.
While the MAC address should be unique, it is possible to overwrite it manually by the Network Administrator, or by an intruder (MAC spoofing). IP addresses are assigned to MAC addresses usually using Address Resolution Protocol (ARP). Thus, IP addresses on a network should be unique. However, if two different computers have the same IP address, it is possible that they have the same MAC address erroneously. The most common cause for this is system administrators who might neglect to configure a specific setting in their virtual machines (such as VMware). If this is the case, the TCP/IP backbone required by DCOM will not work properly and thus OPC communication will likely fail.
Man Machine Interface (MMI) is a software application (typically a using Graphical User Interface or GUI) that present information to the operator about the state of a process, and to accept and implement the operators control instructions. It may also interpret the plant information and guide the interaction of the operator with the system. A MMI is often a part of a SCADA (Supervisory Control and Data Acquisition) system; nevertheless, the terms are often used synonymously.
MMI products include Iconics Genesis (www.iconics.com), InduSoft WebStudio (www.indusoft.com), Proficy iFIX (www.gefanuc.com), and Wonderware (www.wonderware.com).
An MMI is also known as a Human Machine Interface (HMI).
OPC and DCOM provide a highly reliable data communication base, which is suitable for critical 24X7 operations. Connections should never stop (drop) without explanation. Nevertheless, factors beyond DCOM's control may stop connections and include any of the following:
Each of failure condition is unique. To diagnose these problems in real-time, deploy any of the following:
In all these cases, OPC Rescue can be a valuable first-line of defense to help you diagnose real-time connectivity problems.
ODBC (pronounced as separate letters) is the acronym for Open Database Connectivity. ODBC is a standard database access method, which was developed by the SQL Access Group in 1992.
ODBC is to relational data what OPC is for real-time data.
The goal of ODBC is to make it possible for a software application to access data from any database, regardless of which database management system (DBMS) is handling the data. ODBC manages this by inserting a middle layer, called a database driver (akin to an OPC Server), between an application and the DBMS. The purpose of this layer is to translate the application's data queries into commands that the DBMS understands. For this to work, both the application and the database driver must be ODBC-compliant. That is, the application must be capable of issuing ODBC commands and the DBMS must be capable of responding to them.
Like OPC, ODBC is a function library which provides a common API (Application Programming Interface) for ODBC compliant database management systems.
ODBC drivers are available for most database management systems (DBMS) including Microsoft SQL, Microsoft Access, Oracle, Informix, Sybase, MySQL, etc.
OPC Client and Server applications are available to exchange data between OPC and ODBC compliant systems. This enables users to archive automation data in a database or retrieve data from a database as if it is a real-time data source.
See also: Database, SQL
OPC (pronounced as separate letters) is an industrial connectivity standard that enables the transfer of automation data between automation hardware and software. The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining all OPC specifications.
The goal of OPC is to make it possible for a software application to access automation data from any control and/or monitoring system, regardless of its vendor. OPC manages this by inserting a middle layer, called an OPC Server, between an application and its data source. The purpose of this layer is to translate the application's data queries into commands that the data source understands. For this to work, both the application and the Server must be OPC-compliant. That is, the application must be capable of issuing OPC commands and the data source must be capable of responding to them.
Common data sources include a PLC, DCS, IED (Intelligent Electronic Device), scale, transmitter, etc. However, data sources can also include software applications such as an HMI, Historian, Advanced Process Control (APC), etc.
OPC is based on client/server technology and has been implemented in almost every industry including Process Manufacturing (such as Oil & Gas, Pulp & Paper, Utilities, etc), Discrete Automation (Automotive, Packaging, Parts, etc), commercial operations (building automation, HVAC, equipment optimization, etc), and even municipal operations such as traffic control.
OPC is a function library which provides a common API (Application Programming Interface) for automation systems.
The OPC Alarms and Events (OPC A&E) specification is used to exchange process alarms and events. OPC A&E can be used by operations to notify them of alarms, obtain a sequence of events, perform alarm strategy audits, and optimize their operation. Maintenance personnel can use OPC A&E to implement time based maintenance, condition based maintenance, or even inform them impending equipment failure. The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC A&E specification.
OPC Batch is a specification carries the OPC philosophy to the specialized needs of batch processes. It provides interfaces for the exchange of equipment capabilities (corresponding to the S88.01 Physical Model) and current operating conditions. The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC Batch specification.
An OPC Client is a software module that enables applications to acquire data from an OPC Server or conduct supervisory control using an OPC Server. OPC is based on client/server architecture.
OPC Client applications can be used for data acquisition. In this scenario, they simply subscribe to data (or poll data) from an OPC Server and either display or archive the data, or even both. Software applications can then archive data from a PLC, DCS, process analyzer, etc.
OPC Client applications can also be used for supervisory control. HMI applications are typically programmed with OPC Clients. This enables the HMI to provide supervisory control setpoints in the OPC Server, which, in turn, sends the setpoints to the underlying control system (PLC or DCS).
When OPC Clients and Servers are used together, they can be used for supervisory control and data acquisition (SCADA).
OPC Clients can handle an unlimited number of OPC Server connections. In addition, OPC Clients can handle multiple OPC specifications simultaneously. For example, an OPC Client can support OPC DA (Data Access), OPC HDA (Historical Data Access), OPC A&E (Alarms & Events), and even OPC UA (Unified Architecture) inside the same software application.
See also: Client, OPC Server, SCADA
The OPC Commands specification defines a set of interfaces that enable OPC clients and servers to identify, send, and monitor control commands that execute on a device. The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC Commands specification.
OPC Complex Data is a companion specification to OPC Data Access and OPC XML-DA that allows servers to expose and describe more complicated data types such as binary structures and XML documents. The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC Complex Data specification.
The OPC Foundation offers certification tests to ensure that OPC products (Clients and Servers) meet the defined specification. OPC Foundation members can use the Automated tools to test their OPC products. OPC products that pass the battery of tests can be classified as OPC Compliant and display the OPC Compliance logo. The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC Compliance automated testing harness.
See also: OPC Compliant
An OPC product (such as an OPC Client or Server) that passed the OPC Compliance testing. OPC Products that pass can display the OPC Compliance logo.
See also: OPC Compliance testing, OPC Interoperability Workshop
OPC Data Access (OPC DA) provides access to real time automation data. Using OPC DA, software applications can retrieve real-time data to enable them to monitor a given process. In that scenario, OPC DA is used for data acquisition. OPC DA can also be used to enable a software application to write data to a control system. This enables OPC DA applications to handle supervisory control. Thus, OPC DA is well suited for Supervisory Control and Data Acquisition (SCADA) scenarios. OPC DA is typically used by almost all process control applications that are used as an HMI, Historian, Advanced Process Control (APC), Maintenance, ERP (Enterprise Resource Planning), Analysis, Optimization, etc.
OPC DA enables the exchange of real-time process data, in other words, the latest values. To get the previous values, applications must use OPC HDA (Historical Data Access). The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC Batch specification.
See also: OPC HDA
OPC Data eXchange (OPC DX) is a specification that defines how OPC servers exchange data with other OPC servers. While a small number of vendors incorporated this specification in their products, there are no commercial implementations of this technology. Instead, corporations are using various forms for OPC bridging products that transfer data between OPC Servers.
The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC DX specification.
The OPC Foundation is responsible for developing and maintaining the OPC Specifications and ensuring product interoperability and compliance. The OPC Foundation is made up of over 350 companies, organizations and individuals. Visit the OPC Foundation's website at www.opcfoundation.org.
OPC Historical Data Access (OPC HDA) is used to retrieve and analyze historical process data for the purpose of analysis, optimization, inventory control, regulatory compliance, etc. OPC HDA Servers typically retrieve data stored in a Process Data Historian, a relational database, or an RTU (Remote Terminal Unit).
Software applications can use OPC HDA to write historical data as well. This enables applications to write historical data back to a database. This occurs when users need to input manual meter readings (which have a timestamp that occurs in the past), laboratory readings, or even corrections of previously dated information.
OPC HDA can also be used for the automated transfer of data between historians. Corporations can use this to synchronize process historians, or to compensate for interruptions in the real-time transfer of process data. That is, an application can buffer data during a communication outage, and when the real-time connection is restored, the receiving application can use OPC HDA to recover the buffered information. The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC HDA specification.
See also: OPC DA
The OPC Security specification enables OPC applications to apply security that is over and above the security available in DCOM. DCOM security enables OPC Servers to allow or deny specific users or groups from launching or accessing an OPC Server. OPC Security enables the OPC Server administrator to further allow access to some items and deny access to others. This enables corporations to control client access to servers to protect sensitive information and guard against unauthorized modification of system parameters.
The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC Security specification.
An OPC Server is a software module that enables applications to provide their data to the outside world using OPC. OPC is based on client/server architecture.
Many OPC Servers are used strictly as “protocol converters.” In other words, they connect to an automation controller (such as a PLC, DCS, RTU, etc), using one communication protocol, and convert the data and calls to OPC. OPC Servers enable application to read and write data. They enable users to conduct supervisory control and data acquisition (SCADA).
Other OPC Servers are used to enable users to retrieve data from an HMI, Historian, Maintenance system, etc. In that sense, the OPC Server is used to expose the data from that application to the outside world in a standards-based manner.
OPC Servers can handle an unlimited number of OPC Client connections. In addition, OPC Servers can handle multiple OPC specifications simultaneously. An OPC Server can support OPC DA (Data Access), OPC HDA (Historical Data Access), OPC A&E (Alarms & Events), and even OPC UA (Unified Architecture) inside the same OPC Server.
See also: OPC Client, Server
An OPC Specification is a document for programmers. This document provides the description of exact mechanism by which two OPC products communicate with each other. The document also includes the necessary parameters and variables for each individual request. After reading an OPC Specification document, programmers are able to implement their communication algorithms to create an OPC Client or OPC Server.
The OPC Training Institute (OPCTI) is the largest OPC training company in the world. OPCTI offers hands-on classes both in-person and online. Unlike other companies that offer vendor-biased information, OPCTI focuses strictly on training and does not sell its own products. Currently, the OPC Training Institute is the only organization permitted to award the Certified OPC Professional (COP) designation to professionals.
See also: Certified OPC Professional
OPC Tunneling (sometimes spelled OPC Tunnelling), is a concept that enables OPC communication to bypass DCOM and use TCP/IP directly. This enables OPC communication to take place where DCOM would be inappropriate. This would be needed when the available network is highly unreliable (marked by a high number of communication disruptions), low bandwidth, or firewalls that block DCOM communication. OPC Tunneling also enables users to bypass most (and sometimes all) DCOM configuration. Therefore, OPC Tunneling might be easier to use for people who do not know how to configure DCOM.
OPC Unified Architecture (OPC UA) is the most recent of all OPC specifications and unifies them all into one. OPC UA provides all the capabilities of the current OPC specifications and is even backwards compatible with current specifications. OPC UA also adds various capabilities that were unavailable in previous specifications. OPC UA enables programmers to select various data transportation methods such as COM, DCOM, or .Net (using XML to enable communication with operating systems other than Windows, or binary encoding to gain significant speed).
OPC UA also enables users to take advantage of various information models to transfer data as simple as a temperature reading to as complex as a work order. OPC UA also enables vendors to specify their own custom information models.
The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC UA specification.
OPC Extensible Markup Language (OPC XML) encapsulates process control data making it available across all operating systems using XML. This specification had very few implementations and has largely been abandoned by corporations in favor of OPC DA (OPC Data Access) and OPC UA (OPC Unified Architecture).
The OPC Foundation (www.opcfoundation.org) is responsible for defining and maintaining the OPC XML specification.
See also: OPC DA, OPC UA
OpcEnum (OPC Enumerator) is a software application that provides information about each OPC Server that resides on a PC. OPC Client applications (such as HMIs, Historians, various automation/process control applications, etc) use OpcEnum to browse (discover) the OPC Server applications that are available on the target PC. This enables users to easily connect to various OPC Servers. OpcEnum retrieves its information from the Windows Registry. Consequently, OpcEnum can only reveal information about local OPC Servers (i.e. the OPC Servers and OpcEnum must reside on the same PC). The OpcEnum executable is opcenum.exe. OpcEnum provides the Program Identifier (ProgID) and Globally Unique Identifier (GUID) for each OPC Server on the PC. The OPC Foundation is responsible for the development of OpcEnum, and provides OpcEnum for free.
The Operating System (OS) is a computer resource manager that manages all resources including the computer processor, memory, and I/O devices (keyboard, mouse, monitor, printers, etc). The OS provides orderly and controlled sharing of the resources by users or applications that need them. The OS hides the complexity of the underlying hardware and provides users and applications a better view (an abstraction) of the computer.
Common Operating Systems include DOS, Macintosh OS X, VMS, UNIX, and Windows.
The Operating System (OS) is a computer resource manager that manages all resources including the computer processors, memory, and I/O devices (keyboard, mouse, monitor, printers, etc). The OS provides orderly and controlled sharing of the resources by users or applications that need them. The OS hides the complexity of the underlying hardware and provides users and applications a better view (an abstraction) of the computer.
A control device that employs the hardware architecture of a computer and relay ladder diagram language. Inputs to a PLC can originate from many sources including sensors and the outputs of other logic devices.
The term PLC was once used for a "Programmable Logic Controller,” but the word has become an anacronym as few people use its original meaning.
See also: DCS
A communications control method whereby a "master" station asks many devices attached to a common transmission medium whether they have information to send. Polling provides a very simple method to retrieve data from various control and monitoring systems. The Master or Host explicitly makes a request for data, and the Slave system replies. The process repeats for each data request. Data that changes between polling requests is lost. The alternative to polling is a report by exception mechanism whereby information is sent as soon as a change is detected.
A protocol is a set of rules governing the format of messages that are exchanged between computers, and enables them to communicate. Protocols are to computers what language is to people. To comprehend this text, you must understand English. Similarly, for two devices on a network to successfully communicate, they must both understand the same protocol. Applications or even computers that follow the same protocol can exchange data, even if they don't run the same operating system and are not made by the same vendor.
Protocols are often "layered" on top of other protocols, taking advantage of an existing communication infrastructure and adding additional capabilities.
Examples of protocols are: TCP/IP (Transmission Control Protocol/Internet Protocol), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), HTTP (Hypertext Transfer Protocol), etc.
OPC is not a protocol; rather it is based on the DCOM, or .Net APIs.
See also: API
Quality of Service (QoS) is the ability to control the characteristics of ongoing communication services. QoS encompasses guarantees of available network bandwidth, acceptable data loss (if any), transmission speed, latency, etc. QoS is an end-to-end responsibility that involves clients, switches, routers, and servers.
OPC installations are affected by QoS due to their reliance on acceptable network communication. There are various techniques to help guarantee a given Quality of Service. These depend on the factors that the Network Administrator decides to be most important. For instance, data loss issues can be handled by queuing. This might be acceptable for data archiving applications such Historians. However, this may not be desirable for HMI communication that depends on the ability to view the most recent data without care about old data. In this case, Network Administrators might select a prioritization strategy where the most important data is allowed to pass first. It is even possible to “drop” (lose) data altogether to ensure that significant data is not queued behind optional information.
See also: Bandwidth
Radio Frequency Identification (RFID) is a method of transmitting information using radio waves. RFID systems typically consist of a tag and a reader. The tag contains information identifying an item. A reader communicates with the tag and reads the information programmed in the tag’s memory. RFID is similar in theory to bar code identification. However, RFID systems do not need physical contact or line of sight between the tag and reader. RFID data can be read through the human body, clothing and non-metallic materials.
OPC can be used to transfer the data contained in an RFID tag, and either display it in an HMI or archive it in a Historian.
See also: Historian, 51
Relational Database Management System (RDBMS)
See also: Database
A Relational Database is a type of database that is organized and accessed according to the relationships between data values.
Remote Terminal Unit (RTU) is an industrial data collection and control device typically located at a remote location and communicates with a host system by using telemetry (such as radio, dial-up telephone, or leased lines).
RTUs are often used in applications where control/monitoring is required over a very large geographic areas and communication channels are often disconnected due to poor reliability, expense, or availability issues. These include remote oil wells, transmission and distribution systems, mining, etc.
RTUs are different from PLCs in that their operation assumes that communication with the host system is typically (or often) disconnected. In addition, an RTU frequently includes communication hardware whereas a PLC does not.
Many RTUs have an OPC Server to enable external applications to collect their data using a standards-based system.
See also: PLC, SCADA
See also: Historian, HMI
A router is a network device that connects two networks (specifically two subnets) together. For example, a router would connect a Local Area Network (LAN) to the Internet. A router is different from a switch. A switch transfers data between network devices on the same subnet, whereas a router transfers data between subnets. In this manner, a router often works in conjunction with a switch.
Network administrators can use routers to connect various LANs together to form a Wide Area Network (WAN).
A router sometimes contains a firewall to block unwanted network traffic; however, technically, a firewall and router are two distinct entities. Consumer “routers” often contain a router, firewall, and switch in one physical device.
Routers are important for OPC communication because automation data must often pass between two networks, such as an Operations Network and a Business Network, between two production units in a plant, or between different facilities altogether. It is therefore important to properly configure a router to enable this type of data exchange.
Single Board Computer
Supervisory Control and Data Acquisition (SCADA) is the process by which automation applications collect data and use it for supervisory control.
People sometimes use SCADA to refer to the combination of an HMI and a PLC. The HMI acquires data from the PLC and enables an operator to make supervisory control decisions. The operator can change setpoints, which enables them to handle supervisory control. This type of application is marked by a relatively small number of PLCs, with a relatively large number of I/O points, which are always connected to the SCADA host in a small geographic area (such as a plant).
Other people refer to SCADA for remote control with RTUs. This scenario is similar to the HMI/PLC combination, except that RTUs are used instead of PLCs, and telemetry is typically used for a central SCADA host to collect data. In this application of the technology, the RTUs are often disconnected from their host and have to provide autonomous control. SCADA is often used by utility corporations for their transmission and distribution requirements, by Oil & Gas producers for the extraction of oil and gas, by pipeline companies to manage long pipelines, etc. This type of application is marked by a relatively large number of RTUs, with a relatively small number of I/O points, which are typically disconnected from the SCADA host, in a large geographic area (such as city, state, or country).
OPC can be used for all SCADA applications. Special care must be taken to differentiate between OPC products that are aimed at a plant versus those aimed at telemetry SCADA installations.
See also: HMI, PLC, RTU
A software application that is contacted by a Client software application. A Server fulfills demands that a Client makes. An example of a Server would be an Email server, or Web Server that provides data to a web browser. In the case of OPC, a PLC or DCS would typically utilize an OPC Server to expose their data to the outside world.
See also: Client, Client/Server
A setpoint (SP) is represents the desired level for a process variable (PV). An acceptable alternative spelling is set-point. Control systems attempt correct the variable when it deviates from this setting.
In the case of a household thermostat, the setpoint (SP) represents the desired room temperature. The process variable (PV) is the actual temperature of the room, which may be different than the setpoint (SP) temperature.
SQL (Structured Query Language) is a standard language to exchange information with a database. SQL is pronounced by its individual letters, but is sometimes pronounced “Sequel.” Both pronunciations are acceptable. It is possible to use SQL in programs (for programmers), but end-users can also use SQL in an interactive mode, whereby there is no need to write programs.
SQL can be used to read and write data from multiple tables in a database.
SQL was developed in the early 1970s by IBM. It is now both an American National Standards Institute (ANSI) and an International Organization for Standardization (ISO) standard.
OPC can be used as a converter to connect to a database using SQL and to an automation application using OPC.
See also: Database, ODBC
The subscription mechanism enables OPC Client applications to receive multiple updates from OPC Servers. When an OPC Client application (HMI, Historian, etc) subscribes to OPC Items, it receives all updates as soon as the OPC Server detects the change.
To implement subscription, DCOM-based OPC servers use callbacks, and the call is thus asynchronous.
OPC UA Client applications implement subscription using a poll-report-by-exception mechanism. Thus, the OPC UA Client application polls the OPC Server once, and receives a result for all the item changes. This mechanism also enables OPC UA Client applications to implement a heartbeat, which enables them to know when they lose their client/server connection.
See also: Asynchronous, Callback
A network switch, like a hub, connects multiple network devices. Unlike the hub, the switch only transmits data to the device for which the user intended to send the information. Consequently, a switch sends far less data than a hub and therefore causes far less network traffic. However, a network switch is typically more expensive than a hub.
See also: Hub, Router
Various OPC calls explicitly require the use of synchronous communication. When an OPC Client application issues a synchronous call, it will wait for the OPC Server to provide the required result. This functionality makes it easier for developers to implement interlocks that necessitate a specific sequence of events. For example, when a specific operating procedure necessitates opening a valve before turning on a pump, developers can first use a synchronous call to open the valve, and then use a synchronous call to turn on the pump. The synchronous operation ensures that the first action (opening the valve) executes completely before the second action (turning on the pump). By contrast, an asynchronous call does not ensure that one action is complete before another action is taken. Integrators can also use synchronous communication when they must implement interlocks.
Synchronous calls can also cause OPC products to slow down. This is because synchronous calls will be implemented in sequence. Therefore, if applications use synchronous communications when End-Users do not require a specific order of operations, the associated products will perform unnecessarily slow.
Integrators often use synchronous communication to get around poor configuration of DCOM security. This will cause an unnecessarily high load on OPC Servers, as well as poor performance of OPC Client applications.
Transmission Control Protocol (TCP) represents the Transport Layer in the Open System Interconnection (OSI) model. The Transport Layer is responsible for end-to-end connectivity and reliability. Specifically, TCP ensures that the data is transferred and guarantees that the data is received in the same sequence in which it was sent. Hence, it is more reliable but slower than User Datagram Protocol (UDP). TCP is suitable for applications like file transfer, email and OPC.
TCP is typically used in combination with the Internet Protocol (IP). TCP simplifies the task of writing network applications.
OPC is based on DCOM, which typically uses TCP/IP for the transport layer.
See also: IP, TCP/IP, UDP
Transmission Control Protocol/Internet Protocol (TCP/IP) is the basic communication language or protocol of the Internet. The TCP protocol is responsible for an error free connection between two computers, while the IP protocol is responsible for the data packets sent over the network.
The TCP/IP Internet protocol suite developed by the US Department of Defense in the 1970s.
See also: IP, TCP
A Thick Client is a “traditional” application that implements client functionality in a client/server architecture. Unlike a Thin Client that are automatically downloaded from a web page, Thick Client applications must be installed on each individual computer and are typically larger than their Thin Client counterparts. The advantage of Thick Clients over Thin Clients is that they typically have more functionality and are tightly bound to the local system on which they execute. Consequently, they are typically faster too, but this is a practical observation, rather than a technical constraint.
See also: Client, Thin Client
A Thin Client is an applet that implements client functionality in a client/server architecture. In the past, the term “Thin Client” had a close relationship to its size and complexity, but today the term Thin Client mostly refers to applets that can be executed without a formal installation process. The advantage of such applications is the ease of support from a central administrative source. For example, IT personnel no longer have to inquire about the version of software being executed, because a simple refresh will retrieve the latest copy from the web page. In sharp contrast, a Thick Client must be formally installed, and is not automatically downloaded.
See also: Applet, Client, Thick Client
A connection that is established between two different domains that enables the rights and privileges of users and devices in one domain to be shared with another domain. Multiple domains are often used to separate security policies however when sharing needs to occur between domains, a trust can be established.
There are four types of trust relationships; one-way, two-way, transitive and non-transitive.
User Datagram Protocol (UDP) represents the Transport Layer in the Open System Interconnection (OSI) model. The Transport Layer is responsible for end-to-end connectivity and reliability.
Unlike Transmission Control Protocol (TCP), UDP is a connectionless protocol (there is acknowledgement that data was received), so it does not guarantee that data was received or that it was received in the order in which it was sent. Without having to ensure that each data packet arrives in the correct sequence, UDP is faster and more efficient. Thus, it is useful for situations in which time is an issue. UDP is often used with its typical Network Layer partner, Internet Protocol (IP), and thus has the combination of UDP/IP.
Universal Serial Bus (USB) is a serial bus standard to interface computer peripherals. USB is quickly replacing the need for serial and parallel ports to interface devices.
Unix is an Operating System (OS). There are many popular Unix flavors such as BSD Unix, Coherent Unix, Data General DGUX, Digital UNIX (formerly OSF/1), Linux, Hewlett Packard HP-UX, IBM AIX, QNX, SGI IRIX, SCO Unix, Sun Microsystems Solaris, etc. Most Unix flavors can be identified with their use of the letter 'X' in the Operating System name. Unix has been ported to almost every computing hardware platform.
Unix was invented by Ken Thompson of AT&T's Bell Laboratories in 1969, as a Digital PDP minicomputer alternative to the General Electric multi-user mainframe running MIT's Multics (Multiplexed Information and Computing Service). Originally spelled Unics, Unix is an acronym for UNiplexed Information and Computing System. Thus, Unix was originally a pun on its predecessor’s (Multics) name. The word 'Unix' has become an anacronym and is no longer an acronym.
Visual Basic (VB) is a Microsoft programming language used by developers to quickly build software applications with GUI capabilities.
There are commercial ActiveX components for Visual Basic that support OPC. These enable programmers to quickly exchange data with external applications using OPC with minimal programming knowledge.
VMS (Virtual Memory System) is an operating system that was developed by Digital Equipment Corporation (DEC) for use on their VAX minicomputers. Later ported to the Alpha 64-bit system (and renamed OpenVMS).
A virtual private network (VPN) is a communications network tunneled through another network, and dedicated for a specific network. In that sense, the network is “virtual” because it may span various physical networks. A VPN can take use of various security measures to ensure that communication is kept private and secure, even when the VPN uses a public network such as the Internet.
Using a VPN, a Network Administrator can enable a user to access a corporation’s computer resources from home. Users can establish a VPN connection using the Internet or a private phone line over a public exchange. Thus, one can retrieve their work email from home.
A VPN can also be used to separate the traffic of different user communities over an underlying network with strong security features. For instance, a factory that only has one network cable to connect all computers might use multiple VPNs to separate the different user types and resources.
A VPN is commonly used to enable OPC communication between users and remote data sources.
See also: WAN
Wide Area Network (WAN) is a computer network covering a relatively large geographical area, usually consisting of two or more LANs. Computers can connect to a WAN via a private LAN, or even through a public network such as a telephone system.
See also: LAN, VPN
OPC Specifications do not require applications to log any data specifically. Nevertheless, logging any information that would help a person find the cause of a problem is good practice. Most OPC applications provide some logging facilities. The OPC Training Institute recommends that Integrators base a part of their OPC product selection on the application’s error logging facilities, which help Integrators reduce their time to diagnose problems and improve project success.
Microsoft’s DCOM provides a highly secure and robust platform for applications to setup their communication. Classic OPC (before OPC UA) uses DCOM as its transportation platform. Therefore, an OPC application is, in essence, a DCOM application. OPC only requires the standard configuration that any other DCOM application requires. When properly configured, OPC applications do not open any new security vulnerabilities for DCOM.
Having noted the above, many people disable security to get their DCOM (and OPC applications) working for the first time. This is a valid practice; however, Integrators MUST remember to restore the security back when they are done. Failure to do this will cause a security hole. In this case, it would be the Integrators themselves that are the cause of the security hole and not OPC technology in and of itself.
Microsoft Windows defines the standard DCOM error messages. DCOM errors typically begin with a "0x800" code. Classic OPC (previous to OPC UA) uses DCOM as its transportation mechanism. Thus, OPC states what information must transfer, and DCOM handles the transfer itself. DCOM also handles security aspects such as authentication and encryption.
There are a multitude of reasons for an OPC Client application to fail to connect to an OPC Server due to DCOM problems. The OPC Training Institute’s website covers many of these reasons in detail. Our whitepapers (available for free) list various error conditions, their causes, and how to solve them using a step-by-step guide.
OPC specifications provide a list of possible error values and messages. Vendors can choose whether or not they want to implement these.
The ability to diagnose problems and pass the results in a Quality parameter is an important feature that will help you to differentiate between various vendors.
OPC applications can communicate with each other even when they are on different Windows Domains. The trick to getting communication working is Windows Authentication on both the OPC Client and Server PCs.
Windows reports error 0x80040002 as: Can't enumerate any more, because the associated data is missing. Programmers know this error as OLE_E_ENUM_NOMORE.
This error typically occurs when trying to establish an initial connection with OPC (DCOM) applications. During this error condition, DCOM was able to find the required (server) application on the target computer. However, this application uses interfaces (i.e. features) not registered on target computer. In other words, this problem occurs on the same computer as the server (not client) application.
For example, this could be caused when trying to browse computers (using OpcEnum), or connecting to OPC servers. This could happen when connecting either locally or to remote applications. In both cases, features are not registered on the computer running the target OPC server (or OpcEnum).
To automatically repair error 0x80040002, which occurs during browsing (i.e. using OpcEnum), download OPC Expert (www.OpcExpert.com), and run it on affected computers. OPC Expert will provide full repair instructions. OPC Expert also enables users to view OPC server data, connect OPC to Excel, trend values, and more.
If this problem occurs when connecting to OPC servers, reinstall said server.
In addition, consider OPCTI's training classes (physical and online) at http://www.opcti.com/Training-Schedule.aspx
If you are unable to find the right answer for your situation, please contact us and we will help you make the connection.
Windows reports error 0x80040153 as: Invalid value for registry. Programmers know this error as REGDB_E_INVALIDVALUE.
This error typically occurs when trying to establish an initial connection with OPC (or DCOM) applications. During this error condition, DCOM was able to find the required (server) application on the target computer, however, a Registry entry for said application is either missing or corrupt. This is not caused by DCOM permission problems.
For example, this could be caused when trying to browse computers (using OpcEnum), or connecting to OPC servers. This could happen when connecting either locally or to remote applications.
To automatically repair error 0x80040153, which occurs during browsing (i.e. using OpcEnum), download OPC Expert (www.OpcExpert.com), and run it on affected computers. OPC Expert will provide full repair instructions. OPC Expert also enables users to view OPC server data, connect OPC to Excel, trend values, and more.
Windows reports error 0x80040154 as: Class not registered. Programmers know this error as REGDB_E_CLASSNOTREG.
This error typically occurs when trying to establish an initial connection with OPC (or DCOM) applications. During this error condition, DCOM was not able to find the required (server) application on the target computer. This is not caused by DCOM permission problems.
To automatically repair error 0x80040154, download OPC Expert (www.OpcExpert.com), and run it on affected computers. OPC Expert will provide full repair instructions. OPC Expert also enables users to view OPC server data, connect OPC to Excel, trend values, and more.
To solve this problem manually reinstall your server application, or if this problem occurs during browsing, reinstall OpcEnum.
Windows reports error 0x80040155 as: Interface not registered. Programmers know this error as REGDB_E_IIDNOTREG.
This error typically occurs when trying to connect to remote applications. During this error condition, DCOM was able to find the required (server) application on the target computer. However, this application uses interfaces (i.e. features) not locally registered.
To automatically repair error 0x80040155, download OPC Expert (www.OpcExpert.com), and run it on affected computers. OPC Expert will provide full repair instructions. OPC Expert also enables users to view OPC server data, connect OPC to Excel, trend values, and more.
To solve this problem manually (not recommended), use RegSvr32.exe (included with Windows) to register specific OPC DLLs. OPC applications will begin working when you register these DLLs properly because DCOM will be able to find the interfaces.
Windows reports error 0x80040202 as: An event was delivered but there were no subscribers. Programmers know this error as EVENT_S_NOSUBSCRIBERS.
This error typically occurs when trying to establish a subscription (advise) call with an OPC server. This error occurs after establishing a connection with an OPC server. During this error condition, OPC client applications are able to establish an OPC server connection. However, callbacks do not reach the client computer. This could be caused by a variety of issues such as firewall, network connections, DCOM permissions, user accounts, etc. Windows Registry problems do not cause this error.
To automatically repair error 0x80040202, download OPC Expert (www.OpcExpert.com), and run it on affected computers. OPC Expert will provide full repair instructions. OPC Expert also enables users to view OPC server data, connect OPC to Excel, trend values, and more.
Windows reports error 0x80070005 as: General access denied error. Programmers know this error as E_ACCESSDENIED.
This error typically occurs when trying to establish an initial connection with OPC (or DCOM) applications. However, it also occurs while trying to subscribe (setting up OPC advise calls). During this error condition, DCOM was able to find the required (server) application on the target computer, but DCOM permissions prevent users from accessing specific client/server components.
OPC Expert (www.OpcExpert.com) is able to diagnose this problem, so we highly recommend you run it for a thorough check of your system. OPC Expert will provide full repair instructions. OPC Expert also enables users to view OPC server data, connect OPC to Excel, trend values, and more.
See also
Windows reports error 0x800706BA as: The RPC server is unavailable.
DCOM errors typically begin with a "0x800" code.
The following resources are available on OPC Training Institute's website:
The OPC Foundation provides a test harness for OPC Client and OPC Server applications. Vendors use this harness to ensure that their OPC applications can pass all the tests. If the OPC application passes all the tests, the Vendor can state that their application is OPC Compliant. They are also able to post the results of their tests on the OPC Foundation’s website.
You should ask all OPC vendors who state their applications are OPC compliant about the last time that they attended an OPC Interoperability session and the results of the test.
When an OPC Client application connects to a remote computer and attempts to browse for OPC Servers, it is actually connecting to a copy of OpcEnum on the remote PC. OpcEnum retrieves the list of OPC Servers on the computer on which it resides. The inability to connect to OpcEnum is typically a result of authentication failure. There are other causes for a failure to connect to OpcEnum. These reasons are listed on the OPC Training Institute’s website in the whitepaper titled "Troubleshooting OPC and DCOM: Quick Start Guide."
The basic distinction between a client and server is "control." Clients control servers. Clients tell servers what to do, while servers do as they are told.
The following factors will help you determine whether or not an application should be programmed as an OPC client or server:
In contrast to OPC client applications, OPC servers always do as they are told.
The OPC Interoperability session is an event the OPC Foundation hosts three times every year. During the event, OPC vendors gather to ensure their OPC Clients and OPC Servers can communicate with each other. Thus, Vendor X tries to connect their OPC Client application to vendor Y’s OPC Server and also the OPC Server by Vendor Z. The success and/or failure results are posted on the OPC Foundation’s web site.
You should ask all OPC vendors who state their applications are OPC compliant about the last time they attended an OPC Interoperability session and the results of the test.
Classic OPC relies on DCOM for data transportation. That is, OPC specifies the format of data that transfers between applications that use OPC. For example, each OPC Data Access application must transfer a timestamp, quality level and data value. It is not enough to simply pass along the data value itself. So while OPC states what information must transfer between applications, DCOM handles the transfer itself. DCOM also handles security aspects such as authentication and encryption.
DCOM uses Port 135 to establish communication. Once the OPC Client and Server are able to communicate, they will negotiate new port numbers for communication dynamically. OPC applications typically use 4 ports. Once, the OPC Client and OPC Server applications find the available ports, they use them and release traffic from port 135.
DCOM provides a versatile and secure platform for OPC communication. It is also freely available with Windows. However, there are instances where DCOM does not or cannot provide an acceptable solution, and Integrators prefer to pay money to install an OPC tunneling product from a vendor. The following lists the scenarios in which DCOM OPC tunneling technology is preferred over DCOM:
Whether you decide to use OPC Tunneling or DCOM, the OPC Training Institute hopes that you endeavor to learn DCOM before you make your decision. Most people find DCOM to be surprisingly logical once they understand how it works.
OPC Servers always send OPC Client applications information on the Value, Quality, and Timestamp of an item. But some control systems do not provide a timestamp. In this case, the OPC Server sends the PC timestamp, which is the only timestamp it has available.
When the OPC Server connects to control systems that have information on the timestamp, the OPC Server has a choice. It can either use the timestamp from the control system, or it can use the timestamp from the PC. Some OPC Servers even enable the integrator to make this choice.
The ability to use the timestamp from the control system and even to select the source of the timestamp is a differentiating feature amongst OPC Servers. The OPC Training Institute recommends that System Architects investigate the timestamp requirements. For example, a high-speed data acquisition to record a Sequence of Events (SOE) typically requires the timestamp to come from the control system. However, if the OPC Server is only used in conjunction with an HMI (Human Machine Interface), the control system timestamp may not be required.
There are many reasons an OPC Client application will fail to connect to an OPC Server. The OPC Training Institute’s website covers many of these reasons in detail. Our whitepapers (available for free) list various error conditions, their causes, and how to solve them using a step-by-step guide.
Wi-Fi (pronounced wye-fye, and rhymes with Hi-Fi) is a wireless technology brand owned by the Wi-Fi Alliance. The term Wi-Fi has become synonymous with Wireless Ethernet (IEEE 802.11); however, this is technically incorrect because Wi-Fi is a brand name and not a generic technology name.
The term Wi-Fi has alternative spellings of WiFi, Wi-fi, Wifi, or wifi.
See also: IEEE 802.11, Wi-Fi Alliance, Wireless Ethernet
The Wi-Fi Alliance is an organization that is intended to improve the interoperability of wireless local area network products based on the IEEE 802.11 standards. The Wi-Fi Alliance coined the term Wi-Fi (pronounced wye-fye, and rhymes with Hi-Fi). The term Wi-Fi has become synonymous with Wireless Ethernet (IEEE 802.11); however, this is technically incorrect because Wi-Fi is a brand name and not a generic technology name.
Like the OPC Foundation (www.opcfoundation.org) does for OPC, the Wi-Fi Alliance (www.wi-fi.org) certifies IEEE 802.11 products via a set of established test procedures to establish interoperability. Manufacturers that are members of Wi-Fi Alliance and whose products pass these interoperability tests can mark their products and product packaging with the Wi-Fi logo. However, unlike the OPC Foundation, the Wi-Fi Alliance does not define the IEEE 802.11 standard, which is left to the IEEE - Institute of Electrical and Electronics Engineers (www.ieee.org) organization.
The Wi-Fi Alliance was formed in 1999 when various companies gathered to form a non-profit organization with the goal of driving the adoption of a single worldwide-accepted standard for high-speed wireless local area networking (LAN). The Wi-Fi Alliance has over 300 members from more than 20 countries.
See also: IEEE 802.11, Wi-Fi, Wireless Ethernet
Making changes to DCOM configuration to accommodate OPC communication does not open any security holes or compromise security.
OPC applications can be configured to work across firewalls. Refer to How can I acquire data from an OPC Server through a firewall?
See Ethernet, IEEE 802.11, Wi-Fi
A group of computers that are connected on a network and share resources, such as printers and files. When you set up a network, Windows automatically creates a workgroup and gives it a name.