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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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(); } } } |
Come si vede da codice riportato sopra gli IOServer utilizzati sono due, uno in simulazione che rappresenta un ipotetico accesso ad un dispositivo di campo ed un impostato sul driver Sql di pubblicazione che utilizza una tabella per contenere le informazioni di ciascuna variabile.
Tra le variabili avanzate presenti nel driver SqlStoreServer troviamo: