The OPC Standard
The OPC standard defines common interfaces for the data exchange between devices, PLC's and Windows applications.
The OPC standard has been introduced by a group of major USA companies, active in the PLC and visualization market. OPC defines an open industry-standard interface based on OLE and ActiveX technology that provides inter-operability between different field devices, automation/control and business systems.
The OPC specification defines a set of interfaces for easy to use objects including methods and properties to manipulate these objects.
The basic transport layer for OPC is DCOM and therefore, a Man-Machine Interface (MMI) or supervisory control and data acquisition (SCADA) software package can process and collect data from OPC servers that are running on different computers on the network.
The specification also defines a standard mechanism to access named data items contained in an OPC server. Hardware and software developers use the specification to build OPC servers and clients which can exchange information over a network between a wide range of system applications, including distributed control systems (DCS), SCADA systems, PLC's, distributed I/O systems and smart field devices.
The OPC Data Access Specification version 1.0 was released in August 1996. A corrected version 1.0A appeared in 1997. Version 2.0 followed in late 1998, with major changes in the Automation interface.
In the automation industry very often devices from different hardware suppliers and software packages like visualization systems and process-control software from several software suppliers have to be combined to build a complete system.
Within this system the different software components need to communicate.
The application software should communicate with I/O devices as well as other applications.
Getting the different software modules to work together is the biggest problem for process systems manufacturers.
These problems are due to missing or incompatible standards for data exchange interfaces. In the past vendors have developed proprietary hardware and software solutions. All process-control and information systems today have their own interface to access the information. Often a driver for one I/O device was written several times by different vendors. This can cause inconsistencies among different custom drivers or upgrades, and may also be impossible to use different software packages with one device at the same time because they use independent drivers and hardware features that are not supported by a custom driver.
In the past hardware vendors tried to solve some of these problems by delivering their own drivers. The solution today is having a standard plug-and-play software technology for process-control and automation.
Having such a standard makes it possible that different software packages can freely connect and communicate with different devices.
This results in a truly open and easy enterprise-wide communication between systems and devices on the field, process or business management hierarchy.
What is OPC?
OPC stands for OLE for Process Control (OLE = Object Linking and Embedding). OLE has been restructured in the past and renamed to ActiveX. OPC is an industry standard created by a number of worldwide leading hardware and software suppliers in cooperation with Microsoft. OPC is based on OLE (now ActiveX), COM (Component Object Model) and DCOM (Distributed Component Object Model) technology and is available for all 32-bit Windows Operating Systems from Microsoft. The port of DCOM to other OS makes it possible to integrate Linux und Unix systems as well. OPC defines a standardized set of interfaces, properties and methods for use in process-control and automation software applications.
The primary goal of OPC is to deliver specifications to the industry. Currently the following specifications are available:
Data Access V2.0
Alarms and Events Custom Interface V1.0
Historical Data Access V1.0.
What is COM?
The 'Component Object Model' provides interfaces and inter-component communication. Through COM, an application may use features of any other application object. COM is the core of DCOM, ActiveX and OLE.
What is OLE?
Object Linking and Embedding is used to provide integration among applications and allows the development of reusable objects that are interoperable between multiple applications. It also provides reusable, component-based software solutions, where as the software-components can be written in any language.
What is DCOM?
The Distributed Component Object Model extends COM to work over a network. It is a protocol where remote components appear to be local.
What is ActiveX?
ActiveX is an open, integrated platform for portable applications and interactive content for the World Wide Web.
GuardPoint Pro OPC General Information
The goal is to integrate GuardPoint Pro into SCADA architecture for management and Access Control through the OPC standard. OPC Client can get the following information:
- Communication status of controller (Com OK or Comm. Error)
- Logical status of all inputs. Open/Close but depending NO/NC.
- Physical status of all relays. Open/Close.
All GuardPoint Pro events such as:
- Access Granted, Denied, Granted with duress code, Denied too much trials
- Start of Alarm / End of Alarm
- Technical alarms. Such as: power off, table error …
- Unknown badge
An OPC Client can operate the following operations in GuardPoint Pro:
- Open constant ON
- Constant OFF
- Open during x sec
- Return to normal mode
- Input deactivation
- Return to normal mode
- Execute GuardPoint Pro Processes
- Execute GuardPoint Pro Actions
- Open GuardPoint Pro Screens
How does it work?
OPC is workings with “tags”. On each tag, an alarm can be defined in OPC Clients to show a popup alarm a message, to play a sound, to send SMS. GuardPoint Pro creates OPC tags and publishes them. The tags values are available for all OPC Clients - they can modify some of the tags’ values.
When the GuardPoint Pro application starts running, OPC tags are created. When creating a new active controller, all the associated tags are also created. The tags are not updated when renaming an object or adding a description.
It is possible to create global and local reflexes by defining actions and processes in GuardPoint Pro and execute them using OPC tags.
It is also possible to create local reflexes in the OPC client and activate relays by OPC tags.
To enable the OPC Integration you need the following:
1) In the ‘Options’ screen select the “OPC Server activation”
2) Make sure the plug configuration includes the letter O.
Technical Tag names definitions:
The description field in GuardPoint Pro is used to allow users to define their own tag name.
Note: According to the OPC standard, a tag may have different properties. The first 6 properties are reserved by the OPC protocol. Therefore, we are always using tag property number 7 to give the tag description.
In most cases, the object name (controller, reader, input) that is used in the GuardPoint Pro application is also used as the OPC tag property. In order to get the description of the tag use the “ReadPropertyValue” function of the OPC Interface.
For further details, see your OPC Client documentation.
In the remaining of this document:
‘<IDc>’ represents the text in the field ‘Description’ of the controller. If this field is empty, the system will use an ID number.
‘<IDi>’ represents the text in the field ‘Description’ of the input. If this field is empty, the system will use the Input Number.
‘<IDo>’ represents the text in the field ‘Description’ of the output (relay). If this field is empty, the system will use the Output (relay) Number.
‘<IDr>’ represents the text in the field ‘Description’ of the reader. If this field is empty, the system will use the reader Number.
The ‘Type’ column shows if the tag is a ‘read only’ tag (‘R’) or a write only one (‘w’)
OPC Client demo
In the GuardPoint Pro installation directory you can find an OPC Client demo application: “OPC Client.exe”
How to use the OPC client demo:
When GuardPoint Pro is running, execute this tool. This screen appears:
Pressing “Get List of OPC Servers”, will display a list of all OPC servers running on the computer.
Click the “DDS.OPCServer” to get the OPC tags.
In order to get a tag value refreshed every second, click on one of the listed tags; the tag will be added to the “Selected Items” column. The tag values appear in the “Values” column.
A description of the tag is shown at the “Values of item property” right column.
For most tags the description is the name of the object in GuardPoint Pro application.
When a new active controller is created in the GuardPoint Pro application, the new tags are available when pressing on “Refresh List from Server”.
Note: the frequency of refreshing is defined by the customer himself in his OPC Client. In our demo this frequency is every second.
Input Status Example
In the following examples we have called the first controller “Controller Entrance” and we have given it a description: “Door Main Entrance”.
The first input name is “i1 / Controller Entrance” and has “Door Contact” as description.
The second input name is “Input 2 / Controller Entrance” and has no description.
The third input name is “i3 / Controller Entrance” and has no description.
In the example above, we have selected 3 inputs tags by clicking on each one of them in the tag list. Each tag is inserted in the “Selected Items” column. Every second, the OPC Client refreshes their value and publishes them in the “Values” column.
The “DDS_DoorMainEntrance_I_DoorContact” tag gives status of the first input on the first controller The “DDS_DoorMainEntrance_I_02” tag gives the status of the second input on the first controller The “DDS_DoorMainEntrance_I_03” tag gives status of the third input on first controller.
Note: in the “Values for Item Property” column you can see the input name as it is defined within the GuardPoint Pro application.
In the above screen example the value of “DDS_DoorMainEntrance_I_DoorContact” is ‘1’ this means that the state of the first input is now logical ON.
Relay Control Example
In the following screen we will show how to activate a relay for 5 seconds.
A single click on any tag selects it and inserts it to the “Selected Items” column.
In the example above, we have selected 3 outputs tags:
The “DDS_DoorMainEntrance_O_01” tag gives status of the first relay on the first controller
The “DDS_DoorMainEntrance_C_01” tag gives an option to send a command to activate the relay
The “DDS_DoorMainEntrance_D_01” tag gives an option to specify the duration time for relay activation.
(Relevant in case that “Activate during” type of command was selected. Default value: 5 seconds)
How to activate a relay:
In the “Selected Items” column, double-click the “DDS_ DoorMainEntrance_C_01” tag. The tag will be inserted in the “Tag Name” box on the left bottom of the screen. Put ‘3’ in the “Value” box and click “Modify Value in the Server”.
The following will happen as a result:
GuardPoint Pro application get the new value and will activate the relay for 5 seconds
The value of the tag “DDS_ DoorMainEntrance_O_01” changes from ‘0’ to ‘1’
After the 5 seconds duration time the value of “DDS_ DoorMainEntrance_O_01” goes back to ‘0’.
Access Grant Example
In the following example we will show how the OPC Client receives an event.
A cardholder named “John Gold” has been created in the GuardPoint Pro application. We have associated a badge to him.
When his badge passes on the reader named “Rdr2 / Controller Entrance” of the Main Entrance Door, the following information are available:
- Time and the Date of the event
- Reader name
- Name of the cardholder
Input Alarm Example
In the following example we show how an OPC Client receives an alarm event.
The second input named “Input 2 / Controller Entrance” has passed to logical ‘ON’ value. Therefore, the tag “DDS_DoorMainEntrance_I_02” has passed from ‘0’ to ‘1’.