uaPLUS Reference
Server with HDA Functionality
Send comments on this topic.

Glossary Item Box

The Historian plug-in for the uaPLUS and HDANSrv OPC HDA server toolkit consists of two parts:
    - The generic OPC HDA V1.2 compliant COM server
    - The .NET assemblies with the application specific database access handling

The customization is split into two layers:

  • Base layer with the basic data handling that fits most applications
    A default implementation is within uaPLUS.Net4.exe
    UaPLUS can be configured to use instead the implementation in the provided HDAPlugin.dll
  • HDAPluginDBA.dll
    This layer does the actual database access

 

Historical data is organized in a historical data branch node structure that is independent of DA (current data) nodes the UA server may have. Reading the current value of these nodes returns the newest value from the database.

 

 

The HDA handling can be combined with DA.

uaPLUS works in this mode if the DA and HDA root node names are defined with identical names.

For this mode the DA and HDA application handlers are to be implemented in NSPlugin.dll.
All or some of the DA items may have historical read/write access rights defined.

Reading the current value of any node returns the current device value.
To read the newest value in the database a history read must be executed with the appropriate time range.

 

Look at the  DAwithHDA  sample application for details.

The two customization .Net assemblies are supplied as a C# and VB.Net code for a database with the data in text files, a file for each item.
The sample implementation is tested for OPC HDA V1.2 compliance and can be used as the base for custom servers.

More complex implementation and performance optimizations may require changes in the HDA base layer code. The source code of the HDAPlugin.dll is provided with the uaPLUS HDA license. It may be adapted to application specific needs. Such changes must be done in a way to maintain the standard compliancy.
To disable the internal HDA base add the following line to the AppSettings section in the application configuration file:
                  <add key="useInternalHDAbase" value="false"/>

 

UA Mapping

The HDA items managed by the plug-in are mapped to UA objects.
The HDAPlugin is represented as the root object with the default name    HDAplugin
The name can be changed with a definition in the AppSettings section of the application configuration file (uaPLUS.Net4.exe.config)
      <add key="HDArootName" value="myName"/>
 The HDA branch structure is mirrored under this UA object.

 Servers with an application specific main program can instead define the root name in the static property  uaPLUS.hdaRootName

 

Assembly Versions

The uaPLUS generic server V6.0 is compiled with a reference to the HDAPlugin.dll V6.0

An AssemblyBinding definition is required if the Configuration section of the uaPLUS application configuration file:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="HDAPluginNet4" publicKeyToken="9e4d4836f3da8b2d" />
        <bindingRedirect oldVersion="6.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="HDAPluginUserNet4" publicKeyToken="43f57eba0dcf329a" />
        <bindingRedirect oldVersion="2.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
  </runtime>

The definition must be in the <Configuration> section. The 'newVersion'  numbers must correspond to the actual DLL Assembly version.

 

 

© 2010-2018 Copyright Advosol Inc. All Rights Reserved.