IToolS Blog

IToolS SqlStoreServer Driver

by itools@albertoschiassi.it on venerdì 6 giugno 2014 10:55

Mediante il driver IToolS SqlStoreServer è possibile pubblicare i valori letti mediante uno tra i tanti protocolli disponibili nel framework IToolS su un database SqlServer. Infatti il driver SqlStoreServer oltre all’utilizzo tradizionale può essere utilizzato come driver di pubblicazione. Con driver di pubblicazione si intende un driver in grado di pubblicare le informazioni contenute nelle variabili utilizzate con un altro protocollo IToolS. Da punto di vista tecnico significa che IToolS da un lato utilizza le variabili per leggere e scrivere informazioni mediante un dato protocollo, ad esempio SIEMENS, dall’altro utilizza le stesse variabili per fornire le stesse informazioni mediante un altro sistema, in questo caso SqlServer, in questo modo è possibile creare un “Real-Time” database contente i valori puntuali letti mediante un qualsiasi protocollo disponibile.

Di seguito un esempio che mostra la configurazione di un driver in pubblicazione mediante SqlServer:


 

using System;
using System.Collections.Generic;
using System.Text;
 
namespace TestSqlStoreServer
{
   using IToolS.Components;
   using IToolS.Components.Communication;
   using IToolS.Components.IOServers;
   using IToolS.Data;
   using IToolS.Data.Base;
 
   class Program
   {
      static void Main(string[] args)
      {
         ComponentBase.RaiseEventsOnMainThread = false;
 
         IOServer ioserver1 = new IOServer() { Name = "Simulation" };
         IOServer ioserver2 = new IOServer() { Name = "SqlStoreServer" };
         ioserver2.AdvancedProperties.Add(new AdvancedProperty("ConnectionString", 
            "data source=.\\SQLEXPRESS;initial catalog=ITOOLS;persist security info=True;Integrated Security=SSPI;"));
         ioserver2.AdvancedProperties.Add(new AdvancedProperty("TableName""SqlStoreServer"));
         ioserver2.AdvancedProperties.Add(new AdvancedProperty("SchemaName""dbo"));
 
         Group group = new Group() { IOServer = ioserver2 };
         
         Variable variable = new Variable() { Address = "10", Area = "HR", VariableName = "variable1" };
         variable.Changed += delegate(Object sender, ChangedEventArgs e)
         {
            Console.WriteLine("value: {0}", e.NewValue);
         };
 
         group.Add(variable);
 
         Client client = new Client() { Group = group, IOServer = ioserver1 };
 
         client.Start();
 
         group.StartIOServer();
 
         Console.WriteLine("Press ENTER to exit");
         Console.ReadLine();
 
      }
   }
}

Blogs Parent Separator IToolS Blog
Author

Tags