Jump to: navigation, search

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


 
(19 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 standard [[Injection Management]] supported since Version 2.4.
+
[[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.
  
Since Version 2.5 UBIK supports to integrate UBIK Live Value Server as well.
+
=== Available Live Value Server Plugins ===
 
+
== Provided Live Value Server ==
+
 
{| 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 =
You need to implement the IUBIKLiveValueServer Interface:
+
=== 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 53: 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 73:
 
</source>
 
</source>
  
[[Category:Injecting|Live Value Server Plugin]]
+
<headertabs/>
[[Category:Version 2.5|Live Value Server Plugin]]
+
 
 +
== See also ==
 +
* [[Live_Value_MetaProperty]]
 +
 
 +
{{Category/Version|2.5.0}}
 +
 
 +
[[Category:2.5.0|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