Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

OPC United Architechture (OPC UA) protocol is widely used industrial communications protocol. The Canary OPC Server plugin instantiates an OPC UA Server within Witness Canary, allowing 3rd party OPC UA clients to connect and obtain data from the Witness system. The OPC UA Specifications come in multiple parts and can be obtained from the OPC Foundation website.

For customers and integrators intending to use OPC Server plugin, the documents assume a reasonable working knowledge of network communication. They are targeted at technical teams, typically with software development skills, who are integrating the output from Witness into external systems.

Technical Overview

When Witness processes alarms and health statuses, it passes all this information to Witness Canary. Witness Canary then converts this information into a suitable data format to send to external systems.

The data is transmitted as the events occur, leading to near-real time reporting.

On this page:

The OPC Server Plugin

Witness Canary 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 Canary 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 file is entitled Witness.Plugin.OpcServer.dll and must be present in the Witness Plugin folder which is inside the main application folder. The plugin depends on OPC Foundation's liberaries Opc.Ua.Core.dll and Opc.Ua.Server.dll which must be present in the same folder.

The plugin can be selected during setup and required files will automatically be installed in the correct location.

Configuring the OPC Server Plugin

When the plugin is installed and Canary starts, the plugin configuration settings are saved to the PluginConfiguration.xml file. This file is located in the Witness main application folder. To change the settings this file should be opened in a text editor, such as Notepad, however we would recommend an editor which is XML aware, such as Notepad++.

Once the file is open, locate the OpcServer section, as illustrated below:

Example of CAT-10 Plugin Configuration
<?xml version="1.0" encoding="utf-8"?>
<Config>
  <Plugins>
    <OpcServer>
      <PluginConfig>
        <ApplicationName>Tungsten.IntegrationPlugins.OPCServer</ApplicationName>
        <ApplicationUri>http://navtechradar.com/OpcServerPlugin</ApplicationUri>
        <BaseUri>opc.tcp://localhost:51210/WitnessOpcServer</BaseUri>
        <Carriageways>
          <Carriageway Id="2" Name="Carriageway 1">
            <Sections>
              <Section RadarId="1" Id="28" Name="Section 11">
                <Rules>
                  <Rule Id="1" Name="Reversing Rule" />
                  <Rule Id="2" Name="Speed Rule" />
                  <Rule Id="3" Name="Person Rule" />
                  <Rule Id="4" Name="ERA Stopped Vehicle Rule" />
                </Rules>
              </Section>
              <Section RadarId="2" Id="29" Name="Section 12">
                <Rules>
                  <Rule Id="1" Name="Reversing Rule" />
                  <Rule Id="2" Name="Speed Rule" />
                  <Rule Id="3" Name="Person Rule" />
                  <Rule Id="4" Name="ERA Stopped Vehicle Rule" />
                </Rules>
              </Section>
              <Section RadarId="3" Id="30" Name="Section 13">
                <Rules>
                  <Rule Id="1" Name="Reversing Rule" />
                  <Rule Id="2" Name="Speed Rule" />
                  <Rule Id="3" Name="Person Rule" />
                  <Rule Id="4" Name="ERA Stopped Vehicle Rule" />
                </Rules>
              </Section>
            </Sections>
          </Carriageway>
        </Carriageways>
        <NodeConfiguration>
          <DescriptionNode>Description</DescriptionNode>
          <RaisedNode>Raised</RaisedNode>
          <LocationXNode>LocationX</LocationXNode>
          <LocationYNode>LocationY</LocationYNode>
          <ActiveNode>Active</ActiveNode>
          <SensorHealth>LastHealth</SensorHealth>
          <SensorHealthTime>LastTime</SensorHealthTime>
          <LaneIdNode>Lane</LaneIdNode>
          <SectionIdNode>SectionId</SectionIdNode>
          <ModeNode>Mode</ModeNode>
          <SectionCountNode>SectionCount</SectionCountNode>
          <CarriagewayCountNode>CarriagewayCount</CarriagewayCountNode>
          <RadarCountNode>RadarCount</RadarCountNode>
          <ManagementServerHealthNode>ManagementServerHealth</ManagementServerHealthNode>
          <TrackEngineHealthNode>TrackEngineHealth</TrackEngineHealthNode>
          <DatabaseHealthNode>DatabaseHealth</DatabaseHealthNode>
          <RadarIdNode>RadarId</RadarIdNode>
          <TrafficDataNode>TrafficData</TrafficDataNode>
          <AveSpeedNode>AverageSpeed</AveSpeedNode>
          <AveCountNode>AverageCount</AveCountNode>
          <HeartbeatNode>Heartbeat</HeartbeatNode>
          <CountClassify>CountClassify</CountClassify>
        </NodeConfiguration>
        <GenerateCertificate>False</GenerateCertificate>
        <ServerCertificateType>Directory</ServerCertificateType>
        <ServerCertificatePath>C:\ProgramData\Navtech\CertificateStore</ServerCertificatePath>
        <ServerCertificateName>NoCertificate</ServerCertificateName>
        <UserName>admin</UserName>
        <Password>12345</Password>
        <HeartbeatInterval>5</HeartbeatInterval>
        <DisableTrafficData>False</DisableTrafficData>
      </PluginConfig>
    </OpcServer>
  </Plugins>
</Config>

Once you have made changes to the plugin configuration file then you must restart the Canary application / service for the new settings to be applied. No other modules need to be restarted.

The setting options are as follows:

HeartbeatInterval

Interval, in seconds, at which the heartbeat counter on the OPC Server will count up while it is connected to the Witness system. This can be used to monitor the overall health of the OPC Server plugin.

SystemIdentificationCode

Unique number identifying the Witness system in an Asterix network. SIC Must be smaller or equal to 255. Witness cannot share a SIC with another system.

UdpServer

  • Enabled - Should always be set to true
  • RemoteIPAddress - The IP address used for clients to access the UDP data. Only Multicast IPs (starting in range 224 to 239) are supported.
  • Port - The port used for the UDP communications.

SendCAT10

  • True - Sends all confirmed tracks in Witness as CAT-10 messages to the UdpServer address.
  • False - Tracks are not sent out.

ListenCAT10

  • True - Listens to CAT-10 messages on the udpserver address and port and inserts tracks detected as friendly tracks into Witness.
  • False - Does not listen to CAT-10 messages.

One or both of ListenCAT10 or SendCAT10 should be true.

CAT10SourcePositions

Source positions are used to configure displacements of origins between systems.

  • List of displacement locations based on system SIC and SAC for other systems.
  • SIC: System Identification Code - uniquely identifies each systems within the airport.
  • SAC: should normally be 0 for other systems in the same airport.
  • X: System origin is located east from witness origin by X meters.
  • Y: System origin is located north from witness origin by Y meters.

This does not need to be configured for systems who's origin coincides with Witness origin.

Examples

Example 1: A multilateration detection system has it's origin set at the airport control tower. Witness is configured with origion the control tower as well.

In this case, we do not need a SourcePosition record for the system.


Example 2: A single detector also sends CAT-10 messages relative to its own location - 150 meters north and 200 meters west from the control tower. This detector is assigned SIC153.

For this detector we will need a CAT10SourcePositions record of:

			<SourcePositions>
				<Sic>153</Sic>
				<Sac>0</Sac>
				<X>-200</X>
				<Y>150</Y>
			</SourcePositions>
 

External System tracks should be within Witness radar coverage to appear in Sentinel.

NodeConfiguration

  • Customize the name for each node. Each string must be different from the other string. It is recommended to stay with the defaults.

GenerateCertificate

  • Defaults to True. This indicates that a server certificate will be generated if the specified one is not available. This is the recommended option.
  • If a custom pregenerated certificate is used, the OPC Server must be configured to match the certified application name and URI.

ServerCertificateType

  • Indicates where the server certificate is stored. Uses "Directory" by default.
  • Otherwise the certificate will be stored in the Windows Certificate store.

ServerCertificatePath

  • File location to store the server certificate

ServerCertificateName

  • On on the server certificate file

UserName

  • Username for the OPC login. The OPC UA client should be set up to always use this.

Password

  • Password for OPC login. The OPC UA client should be set up to always use this.

HeartbeatInterval

  • Interval, in seconds, at which the heartbeat counter on the OPC Server will count up while it is connected to the Witness system. This can be used to monitor the overall health of the OPC Server plugin.

DisableTrafficData

  • Setting this to true will cause the plugin to ignore traffic data and will only output the more accurate Count Classify date

Generating OPC Node Structure

To assist development or configuration of the OPC UA Client, the OPC node structure will be output to the local program data folder for reference each time the plugin is started.

Connecting to the OPC UA Server

The OPC UA client used to connect to the OPC server must be able to login through a Username and Password channel.

Related information



  • No labels