Introduction
OPC United Architechture Architecture (OPC UA) protocol is widely used industrial communications protocol. The ICD-007 OPC Server integration plugin instantiates an OPC UA Server within the Witness system, allowing 3rd party OPC UA clients to connect and obtain data from. The OPC UA Specifications come in multiple parts and can be obtained from the OPC Foundation website.
...
Status Codes for the health value of the Radar/s, Management Server/s and Track Engine/s:
Contents
...
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
...
The data is transmitted as the events occur, leading to near-real time reporting.
Installing the OPC Server Plugin
The Witness system supports integration with many different types of external systems through the use of plugins. These are stand-alone software libraries which are dynamically loaded by the Integration Manager and contain code which knows how to convert the Witness data into the required format for the external system. Navtech Radar can easily develop bespoke plugins to interface with a specific type of equipment or application. The OPC Server plugin has been developed to provide integration to the common OPC UA standard used in highway systems.
The OPC Server
...
Plugin
...
The
...
When installing Witness, in the Choose Components page of the Witness Setup wizard, open Integration Plugin options and select ICD007:
...
The OPC Server Plugin
The Witness system supports integration with many different types of external systems through the use of plugins. These are stand-alone software libraries which are dynamically loaded by the Integration Manager and contain code which knows how to convert the Witness data into the required format for the external system. Navtech Radar can easily develop bespoke plugins to interface with a specific type of equipment or application. The OPC Server plugin has been developed to provide integration to the common OPC UA standard used in highway systems.The
OPC
...
UA Client Prerequisites
The OPC UA client used to connect to the OPC server must login through a Username and Password channel. Other authentication methods are not supported.
...
Configuring the OPC Server Plugin
When the plugin is installed and licensed, a plugin configuration with default settings is automatically generatedThe ICD-007 Plugin will appear as a node under the Integration Configurations folder within the Configuration Tree. The settings can be viewed and edited by enabling the Config Function, then selecting the plugin in Integration Configurations, within the Configuration Tree. Configuration settings will then be available in the Configuration Panel.
...
Windows: Default - tries to read the certificate from in Windows Certificate Store. Certificate path must be a valid windows certificate store path e.g. "CurrentUser\My" or "LocalMachine\TrustedPublisher".
Directory: This tries to read the certificate from the file storage.
The subject name of the certificate must match the DNS name of the machine the OPC Server is run on.
Certificate Path: Location to store the server certificate. This can be a file location e.g. "C:\OpcCertificate\" if using Directory certificate type or Certificate Store path e.g. "CurrentUser\My"
...
Carriageways: This section indicates the carriageways that we want to track in the OPC server. When a highway alarm is received, only an alarm matching a configured Carriageway will be processed.
Select | Carriageway Name |
---|---|
Select this to track carriageway the OPC server. | The carriageway you wish to track. |
Warning |
---|
If Certificate Type is "Directory", auto create certificate can only create new certificates if OPC Foundation Redistributable is installed. If the specified certificate does not exist and new certificate cannot be created (e.g. due to the above or if Auto create Certificate is not selected), the plugin will not be able to start up. |
...
Each node is listed first with Display Name, DataType and namespace : relative browse name. Child nodes are indented relative to their parent.
Witness | Folder | 1:Witness | |||||
Heartbeat | Int32 | 1:Heartbeat | |||||
ManagementServerHealth | Int32 | 1:ManagementServerHealth | |||||
TrackEngineHealth | Int32 | 1:TrackEngineHealth | |||||
DatabaseHealth | Int32 | 1:DatabaseHealth | |||||
CarriagewayCount | Int32 | 1:CarriagewayCount | |||||
RadarCount | Int32 | 1:RadarCount | |||||
CarriageWays | Folder | 1:CarriageWays | |||||
Carriageway 1 | Folder | 1:Carriageway1 | |||||
SectionCount | Int32 | 1:SectionCount | |||||
Section 1 | Folder | 1:Section1 | |||||
SectionId | Int32 | 1:SectionId | |||||
Mode | Int32 | 1:Mode | |||||
RadarId | Int32 | 1:RadarId | |||||
TrafficData | Boolean | 1:TrafficData | |||||
AverageSpeed | Double | 1:AverageSpeed | |||||
AverageCount | Int32 | 1:AverageCount | |||||
Reversing Rule | Folder | 1:Rule1 | |||||
Description | String | 1:Description | |||||
Active | Boolean | 1:Active | |||||
Raised | DateTime | 1:Raised | |||||
LocationX | Double | 1:LocationX | |||||
LocationY | Double | 1:LocationY | |||||
Lane | Int32 | 1:Lane | |||||
Speed Rule | Folder | 1:Rule2 | |||||
Description | String | 1:Description | |||||
Active | Boolean | 1:Active | |||||
Raised | DateTime | 1:Raised | |||||
LocationX | Double | 1:LocationX | |||||
LocationY | Double | 1:LocationY | |||||
Lane | Int32 | 1:Lane | |||||
Section 2 | Folder | 1:Section2 | |||||
SectionId | Int32 | 1:SectionId | |||||
Mode | Int32 | 1:Mode | |||||
RadarId | Int32 | 1:RadarId | |||||
TrafficData | Boolean | 1:TrafficData | |||||
AverageSpeed | Double | 1:AverageSpeed | |||||
AverageCount | Int32 | 1:AverageCount | |||||
Reversing Rule | Folder | 1:Rule1 | |||||
Description | String | 1:Description | |||||
Active | Boolean | 1:Active | |||||
Raised | DateTime | 1:Raised | |||||
LocationX | Double | 1:LocationX | |||||
LocationY | Double | 1:LocationY | |||||
Lane | Int32 | 1:Lane | |||||
Speed Rule | Folder | 1:Rule2 | |||||
Description | String | 1:Description | |||||
Active | Boolean | 1:Active | |||||
Raised | DateTime | 1:Raised | |||||
LocationX | Double | 1:LocationX | |||||
LocationY | Double | 1:LocationY | |||||
Lane | Int32 | 1:Lane | |||||
Person Rule | Folder | 1:Rule3 | |||||
Description | String | 1:Description | |||||
Active | Boolean | 1:Active | |||||
Raised | DateTime | 1:Raised | |||||
LocationX | Double | 1:LocationX | |||||
LocationY | Double | 1:LocationY | |||||
Lane | Int32 | 1:Lane | |||||
Sensors | Folder | 1:Sensors | |||||
Radar 1 | Folder | 1:Sensor7083798e-329d-4eb6-a4bc-4dee3553faea | |||||
LastHealth | Int32 | 1:LastHealth | |||||
LastTime | DateTime | 1:LastTime | |||||
RadarId | Int32 | 1:RadarId | |||||
Radar 2 | Folder | 1:Sensord8aec3b1-4f71-41c1-8d90-0bb0387340b0 | |||||
LastHealth | Int32 | 1:LastHealth | |||||
LastTime | DateTime | 1:LastTime | |||||
RadarId | Int32 | 1:RadarId | |||||
README | String | 1:README |
OPC Login Credentials
...
To log in to the OPC server with an OPC client, you can use the credential of any System user. If none exist, an admin level user may create a new one.
...