IToolS Blog

Using IToolS StratonNG driver

by itools@albertoschiassi.it on sabato 2 gennaio 2016 04:54
Il driver T5 e' in grado di leggere variabili dal runtime straton. 

Nel campo address e' necessario inserire l'indirizzo che di trova nel file APPLI.SYB:

 

=K5SYB.V1
=LOGIC
=1534836188
=4
=1371717010
=1
=1
=0
0x01000001(0)[0]=bBOOL
0x0c000001(0)[0]=iINT16
...

Sopra e' riportato una stralcio del file APPLI.SYB dove e' presente la dichiarazione di due variabili:


 
0x01000001(0)[0]=bBOOL
0x0c000001(0)[0]=iINT16

Se vogliamo ad esempio interrogare la variabile "bBOOL", nel campo address dobbiamo inserire "01000001". Alla partenza il driver in base al valore inserito in Address si calcola l'indirizzo reale e il tipo di dato associato, in fase di progettazione non e' quindi necessario impostare la proprieta' "VariableType" in quanto e' il driver che in base al valore presente nel campo "Address" estrae il tipo e lo imposta.

 

using System;
using System.Collections.Generic;
using System.Text;
 
namespace TestStratonNG
{
   class Program
   {
      static void Main(string[] args)
      {
         IToolS.Components.ComponentBase.RaiseEventsOnMainThread = false;
 
         IToolS.Components.Communication.Variable s_variable1 = new IToolS.Components.Communication.Variable();
         IToolS.Components.Communication.Group s_group1 = new IToolS.Components.Communication.Group();
         IToolS.Components.IOServers.IOServer s_ioServer1 = new IToolS.Components.IOServers.IOServer();
         IToolS.Components.Communication.Client s_client1 = new IToolS.Components.Communication.Client();
 
 
         s_ioServer1.Name = "StratonNG";
         s_ioServer1.NetConfig.Port = 1100;
         s_ioServer1.NetConfig.Address = "172.17.250.183";
 
         s_variable1.VariableName = "sSTRING";
         s_variable1.Address = "08000001";
         s_variable1.Changed += s_variable1_Changed;
 
         s_group1.Items.Add(s_variable1);
 
         s_client1.Group = s_group1;
         s_client1.IOServer = s_ioServer1;
 
         s_client1.Start();
 
         Console.WriteLine("Press ENTER to exit");
         Console.ReadLine();
 
 
 
      }
 
      static void s_variable1_Changed(object sender, IToolS.Data.ChangedEventArgs e)
      {
         Console.WriteLine(String.Format("Variable: {0} type: {1} value: {2}", ((IToolS.Components.Communication.Variable)sender).VariableName, ((IToolS.Components.Communication.Variable)sender).VariableType, e.NewValue));
      }
   }
}

 

Blogs Parent Separator IToolS Blog
Author

Tags