Jump to: navigation, search

Difference between revisions of "Live Value Server (Plugin)"


m
 
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{UBIK}} Live Value Server Plugins can be injected to {{UBIK}} by using the [[Injection Management]].
+
[[File:IL_LiveValueServer_01.png|thumb|Live Value Server]]
 +
{{UBIK}} Live Value Servers read data from different types of server providing live data, for example from a process control system. This feature is provided by {{UBIK}} plugins injected to an existing system. Once configured accordingly the live value servers fetch the data from the external servers and publish the values directly to the clients, bypassing other {{UBIK}} web services or the customizing. Hence, all such values read and published to the clients are far more accurate and on time but not available in the {{UBIK}} customizing.
  
== Provided Live Value Server ==
+
=== Available Live Value Server Plugins ===
 
{| class="wikitable" width=50%
 
{| class="wikitable" width=50%
 
|-
 
|-
 
! width=30% | Name !! width=20% | Since Version !! width=50% | Comment
 
! width=30% | Name !! width=20% | Since Version !! width=50% | Comment
 
|-
 
|-
| OPCLiveValueServer|| 2.5|| Provided access to live values provided on a OPC UA Server
+
| OPCLiveValueServer|| 2.5 || Reads and publishes live values provided by an OPC UA Server
 +
|-
 +
| XHQLiveValueServer|| 2.5 || Reads and publishes live values provided by a XHQ Server
 
|}
 
|}
  
== Implementation ==
+
= Introduction =
The plugin must implement the '''UBIK.Injection.IUBIKLiveValueServer''' interface and has to be registered for MEF composition by defining the export contract via attributes.
+
=== Requirements ===
 +
The plugin must implement the <code>UBIK.Injection.IUBIKLiveValueServer</code>' interface and has to be registered for MEF composition by defining the export contract via attributes.
  
 
<source lang="csharp">
 
<source lang="csharp">
Line 51: Line 55:
 
</source>
 
</source>
  
 
+
= Example =
 
+
 
+
== Example ==
+
 
+
 
<source lang="csharp">
 
<source lang="csharp">
 
     [Export(typeof(UBIK.Injection.IUbikPlugin))]
 
     [Export(typeof(UBIK.Injection.IUbikPlugin))]
Line 72: Line 72:
 
     }
 
     }
 
</source>
 
</source>
 +
 +
<headertabs/>
  
 
== See also ==
 
== See also ==
Line 79: Line 81:
  
 
[[Category:2.5.0|Live Value Server Plugin]]
 
[[Category:2.5.0|Live Value Server Plugin]]
[[Category:Injecting|Live Value Server Plugin]]
+
[[Category:Plugin|Live Value Server (Plugin)]]

Latest revision as of 14:49, 28 May 2018

Live Value Server

UBIK® Live Value Servers read data from different types of server providing live data, for example from a process control system. This feature is provided by UBIK® plugins injected to an existing system. Once configured accordingly the live value servers fetch the data from the external servers and publish the values directly to the clients, bypassing other UBIK® web services or the customizing. Hence, all such values read and published to the clients are far more accurate and on time but not available in the UBIK® customizing.

Available Live Value Server Plugins

Name Since Version Comment
OPCLiveValueServer 2.5 Reads and publishes live values provided by an OPC UA Server
XHQLiveValueServer 2.5 Reads and publishes live values provided by a XHQ Server
[edit]

Introduction

Requirements

The plugin must implement the UBIK.Injection.IUBIKLiveValueServer' interface and has to be registered for MEF composition by defining the export contract via attributes.

namespace UBIK.Injection
{
    public interface IUBIKLiveValueServer
    {
        /// <summary>
        /// Initializes the opc live value server.
        /// </summary>
        /// <param name="environment">The environment.</param>
        void InitLiveValueServer(UBIKEnvironment environment);

        /// <summary>
        /// Starts the live value server and starts to read data from the 3rd party system
        /// </summary>
        void Startup();
       
        /// <summary>
        /// Stops the live value server.
        /// </summary>
        void Shutdown();
       
        /// <summary>
        /// Tries the get a live value specified by the given data point id.
        /// </summary>
        /// <param name="dataPointID">The data point identifier.</param>
        /// <param name="ILiveValueInformation">The i live value information.</param>
        /// <returns>true as a configured live value was found, false otherwise</returns>
        bool TryGetLiveValue(Guid dataPointID, out ILiveValueInformation value);
       
        /// <summary>
        /// Gets status information of the current live value server
        /// </summary>
        /// <returns>status information</returns>
        ILiveValueServerStatus GetStatus();
    }
}

Example

    [Export(typeof(UBIK.Injection.IUbikPlugin))]
    [ExportMetadata("ID", "4AD25939-C2F3-4E25-88F8-D1143E3D566B")]
    [ExportMetadata("Type", typeof(OPCLiveValueServer))]
    [ExportMetadata("Name", "OPCLiveValueServer")]
    [ExportMetadata("Description", "OPCUA Live Value Server")]
    [ExportMetadata("Version", 1)]
    [ExportMetadata("Company", "Augmensys GmbH")]
    [ExportMetadata("Copyright", "2015, Augmensys GmbH")]
    [ExportMetadata("MinimumKernelVersion", "2.5.0.0")]
    [ExportMetadata("TargetApplication", TargetApplication.UBIK_WebService)]
    public class OPCLiveValueServer : IUBIKLiveValueServer, UBIK.Injection.IUbikPlugin
    {
       ....
    }

See also