コード例 #1
0
ファイル: MariniRestService.svc.cs プロジェクト: wbguitar/oms
        /// <summary>
        /// Initialize the service.
        /// </summary>
        /// <remarks>
        /// It's launched by the class in the folder App_Code with the method AppInitialize().
        /// </remarks>
        public static void Initialize()
        {
            // This will get called on startup

            Logger.Info("***********************************");
            Logger.Info("       WCF SERVICE STARTED");
            Logger.Info("***********************************");

            MariniImpiantoTree.InitializeFromXmlFile(@"Q:\VARIE\ael\new-project\doc\analisi\impianto.xml");
            MariniImpiantoTree mariniImpiantoTree = MariniImpiantoTree.Instance;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: wbguitar/oms
        static void Main(string[] args)
        {
            if (true)
            {
                Logger.Info("***********************************");
                Logger.Info("          TEST STARTED");
                Logger.Info("***********************************");

                //MariniImpiantoTree.InitializeFromXmlFile(@"Q:\VARIE\ael\new-project\doc\analisi\impianto.xml");
                //MariniImpiantoTree.InitializeFromXmlFile(@"C:\Users\uts.MARINI\Documents\projects\new-project\oms\MariniImpianto\impianto-test.xml");
                MariniImpiantoTree.InitializeFromXmlFile(@"E:\AeL\GIT_Projects\oms\MariniImpianto\impianto-test.xml");
                //MariniImpiantoTree.InitializeFromXmlFile(@"E:\AeL\GIT_Projects\oms\MariniImpianto\impianto-plctag1.xml");
                MariniImpiantoTree mariniImpiantoTree = MariniImpiantoTree.Instance;


                //*****************************************
                // Inizio Vecchia parte con GetObjectById
                //*****************************************



                ////Console.WriteLine("Ecco una descrizione ricorsiva 2 fatta mediante ToPlainTextRecursive()");
                ////mariniImpiantoTree.MariniImpianto.ToPlainTextRecursive();
                ////Console.WriteLine("\n\n\n");
                ////Console.WriteLine("Ecco un xml di MOTORE_02");
                ////string sMotore02XML=mariniImpiantoTree.SerializeObject("MOTORE_02");
                ////Console.WriteLine("{0}", sMotore02XML);

                //Console.WriteLine("\n\n\n");
                //Console.WriteLine("Provo a cambiare il nome di IMPIANTO");
                //mariniImpiantoTree.GetObjectById("IMPIANTO").name = "nuovonome";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("IMPIANTO").id, mariniImpiantoTree.GetObjectById("IMPIANTO").name);
                //mariniImpiantoTree.GetObjectById("IMPIANTO").name = "nuovonome2";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("IMPIANTO").id, mariniImpiantoTree.GetObjectById("IMPIANTO").name);
                //mariniImpiantoTree.GetObjectById("IMPIANTO").name = "nuovonome2";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("IMPIANTO").id, mariniImpiantoTree.GetObjectById("IMPIANTO").name);
                //mariniImpiantoTree.GetObjectById("MOTORE_02").name = "nuovonome3";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_02").id, mariniImpiantoTree.GetObjectById("MOTORE_02").name);
                //mariniImpiantoTree.GetObjectById("MOTORE_02").name = "nuovonome3";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_02").id, mariniImpiantoTree.GetObjectById("MOTORE_02").name);
                //mariniImpiantoTree.GetObjectById("MOTORE_02").description = "nuovadescr1";
                //Console.WriteLine("la nuova descrizione di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_02").id, mariniImpiantoTree.GetObjectById("MOTORE_02").description);
                //mariniImpiantoTree.GetObjectById("MOTORE_02").description = "nuovadescr2";
                //Console.WriteLine("la nuova descrizione di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_02").id, mariniImpiantoTree.GetObjectById("MOTORE_02").description);
                //mariniImpiantoTree.GetObjectById("MOTORE_02").description = "nuovadescr2";
                //Console.WriteLine("la nuova descrizione di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_02").id, mariniImpiantoTree.GetObjectById("MOTORE_02").description);
                //mariniImpiantoTree.GetObjectById("MOTORE_01").description = "NUOVA_descrizione_motore_01";
                //Console.WriteLine("la nuova descrizione di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_01").id, mariniImpiantoTree.GetObjectById("MOTORE_01").description);
                //mariniImpiantoTree.GetObjectById("MOTORE_01").description = "NUOVISSIMA_descrizione_motore_01";
                //Console.WriteLine("la nuova descrizione di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_01").id, mariniImpiantoTree.GetObjectById("MOTORE_01").description);
                //Console.WriteLine("Prova a cambiare il nome di MOTORE_02 con le web API");
                //Console.WriteLine("Quando hai finito premi invio");
                //Console.ReadLine();
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("MOTORE_02").id, mariniImpiantoTree.GetObjectById("MOTORE_02").name);
                //Console.ReadLine();

                ////Console.WriteLine("\n\n\n");
                ////Console.WriteLine("Ecco una descrizione ricorsiva 2 fatta mediante ToPlainTextRecursive()");
                ////mariniImpiantoTree.MariniImpianto.ToPlainTextRecursive();
                ////Console.ReadLine();

                //Console.WriteLine("Provo a cambiare il nome di IMPIANTO con mariniImpiantoTree");
                //mariniImpiantoTree.GetObjectById("IMPIANTO").name = "AHAhahaha";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("IMPIANTO").id, mariniImpiantoTree.GetObjectById("IMPIANTO").name);

                //Console.ReadLine();

                //Console.WriteLine("Provo a cambiare il nome di IMPIANTO con Dict indexer");
                //mariniImpiantoTree.MariniImpiantoObjectsDictionary["IMPIANTO"].name = "Buhuhuhuhhu";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.MariniImpiantoObjectsDictionary["IMPIANTO"].id, mariniImpiantoTree.MariniImpiantoObjectsDictionary["IMPIANTO"].name);

                //Console.ReadLine();

                //Console.WriteLine("Provo a cambiare il nome di MOTORE_02 con Dict indexer");
                //mariniImpiantoTree.MariniImpiantoObjectsDictionary["MOTORE_02"].name = "MOTORE_02namechanged";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.MariniImpiantoObjectsDictionary["MOTORE_02"].id, mariniImpiantoTree.MariniImpiantoObjectsDictionary["MOTORE_02"].name);

                //Console.ReadLine();

                //Console.WriteLine("Provo a cambiare la descrizione di MOTORE_02 con Dict indexer");
                //mariniImpiantoTree.MariniImpiantoObjectsDictionary["MOTORE_02"].description = "MOTORE_02descrchanged";
                //Console.WriteLine("La nuova descrizione di {0} e' {1}", mariniImpiantoTree.MariniImpiantoObjectsDictionary["MOTORE_02"].id, mariniImpiantoTree.MariniImpiantoObjectsDictionary["MOTORE_02"].description);

                //Console.ReadLine();


                //Console.WriteLine("\n\n\n");
                //Console.WriteLine("Creo una lista di oggetti PlcTags di MOTORE_02");
                //List<MariniGenericObject> mgoList = null;
                //mgoList = mariniImpiantoTree.GetObjectById("MOTORE_02").GetObjectListByType(typeof(MariniPlctag));
                //foreach (MariniGenericObject mgo in mgoList)
                //{
                //    mgo.ToPlainText();
                //}

                //Console.WriteLine("\n\n\n");
                //Console.WriteLine("Ecco una descrizione fatta mediante ToPlainText()");
                //mariniImpiantoTree.MariniImpianto.ToPlainText();
                //Console.ReadLine();

                //******************************************
                //  Fine vecchia parte con GetObjectById
                //******************************************
                //******************************************
                //  Inizio Nuova parte con GetObjectByPath
                //******************************************

                Console.WriteLine("\n");
                Console.WriteLine("Provo a cambiare il nome di {0} che attualmente e' {0}", mariniImpiantoTree.GetObjectByPath("~Impianto").path, mariniImpiantoTree.GetObjectByPath("~Impianto").name);
                Console.ReadKey();

                Console.WriteLine("\n");
                mariniImpiantoTree.GetObjectByPath("~Impianto").name = "nuovonomeimpianto1";
                Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectByPath("~Impianto").path, mariniImpiantoTree.GetObjectByPath("~Impianto").name);
                Console.ReadKey();

                Console.WriteLine("\n");
                mariniImpiantoTree.GetObjectByPath("~Impianto").name = "nuovonomeimpianto1";
                Console.WriteLine("il nome di {0} e' ancora {1} e non dovrebbe essere scattato alcun handler", mariniImpiantoTree.GetObjectByPath("~Impianto").path, mariniImpiantoTree.GetObjectByPath("~Impianto").name);
                Console.ReadKey();

                Console.WriteLine("Ecco un xml di IMPIANTO");
                string sXML = mariniImpiantoTree.SerializeObjectByPath("~Impianto");
                Console.WriteLine("{0}", sXML);
                Console.ReadKey();

                Console.WriteLine("\n");
                Console.WriteLine("Provo a cambiare la MariniProperty {0} di {1} che attualmente e' {2}",
                                  (mariniImpiantoTree.GetObjectByPath("~Impianto~ZonaPredosaggio~Predosatore1~Stato") as MariniProperty).name,
                                  (mariniImpiantoTree.GetObjectByPath("~Impianto~ZonaPredosaggio~Predosatore1~Stato") as MariniProperty).path,
                                  (mariniImpiantoTree.GetObjectByPath("~Impianto~ZonaPredosaggio~Predosatore1~Stato") as MariniProperty).value);
                Console.ReadKey();

                (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Valore") as MariniProperty).value = "20";
                Console.WriteLine("Il nuovo valore della proprieta' {0} di {1} e' {2}",
                                  (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Valore") as MariniProperty).name,
                                  (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Valore") as MariniProperty).path,
                                  (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Valore") as MariniProperty).value);
                Console.ReadKey();



                //Console.WriteLine("\n");
                //Console.WriteLine("Provo a cambiare la proprieta' {0} di {1} che attualmente e' {2}", (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Amp_value") as MariniPlctag).name, (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Amp_value") as MariniPlctag).path, (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Amp_value") as MariniPlctag).value);
                //Console.ReadKey();

                //(mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Amp_value") as MariniPlctag).value = "20";
                //Console.WriteLine("Il nuovo valore della proprieta' {0} di {1} e' {2}",
                //    (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Amp_value") as MariniPlctag).name,
                //    (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Amp_value") as MariniPlctag).path,
                //    (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01~Amp_value") as MariniPlctag).value);
                //Console.ReadKey();

                //Console.WriteLine("\n");
                //Console.WriteLine("Provo a cambiare la proprieta' valore di {0} che attualmente e' {1}",(mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01") as MariniAmperometro).path, (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01") as MariniAmperometro).valore);
                //Console.ReadKey();

                //(mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01") as MariniAmperometro).valore = 40;
                //Console.WriteLine("Il nuovo valore della proprieta' valore di {0} e' {1}",
                //    (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01") as MariniAmperometro).path,
                //    (mariniImpiantoTree.GetObjectByPath("~Impianto~Predosatori~Nastro~Motore_01~Amperometro_motore_predosatore_01") as MariniAmperometro).valore);
                //Console.ReadKey();

                //mariniImpiantoTree.GetObjectById("IMPIANTO").name = "nuovonome2";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("IMPIANTO").id, mariniImpiantoTree.GetObjectById("IMPIANTO").name);
                //mariniImpiantoTree.GetObjectById("IMPIANTO").name = "nuovonome2";
                //Console.WriteLine("il nuovo nome di {0} e' {1}", mariniImpiantoTree.GetObjectById("IMPIANTO").id, mariniImpiantoTree.GetObjectById("IMPIANTO").name);
                //mariniImpiantoTree.GetObjectById("MOTORE_02").name = "nuovonome3";

                //Console.ReadKey();

                //XmlSerializer x;
                //x = new XmlSerializer(mariniImpiantoTree.MariniImpianto.GetType());
                //using (TextWriter writer = new StreamWriter(@"Q:\VARIE\ael\new-project\doc\analisi\impiantoMariniSerializzato.xml"))
                //{
                //    Console.WriteLine("Serializzo impiantoMarini");
                //    x.Serialize(Console.Out, mariniImpiantoTree.MariniImpianto);
                //    Console.ReadKey();
                //    Console.WriteLine("Inizio Serializzazione su file temporaneo");
                //    x.Serialize(writer, mariniImpiantoTree.MariniImpianto);
                //    Console.WriteLine("Fine Serializzazione su file temporaneo");
                //    Console.ReadKey();
                //}

                //Console.ReadKey();
                //using (var sr = new StreamReader(@"Q:\VARIE\ael\new-project\doc\analisi\impiantoMariniSerializzato.xml "))
                //{
                //    Console.WriteLine("DeSerializzo impiantoMarini.xml in impiantoMarini2");
                //    MariniImpianto impiantoMarini2;
                //    impiantoMarini2 = (MariniImpianto)x.Deserialize(sr);
                //    Console.WriteLine("Fine DeSerializzazione");
                //    Console.WriteLine("Ecco una descrizione ricorsiva fatta mediante AutoManageAll()");
                //    impiantoMarini2.ToPlainTextRecursive();
                //    Console.ReadKey();
                //}

                Logger.Info("***********************************");
                Logger.Info("          TEST FINISHED");
                Logger.Info("***********************************");
            }
            Console.ReadKey();
        }
コード例 #3
0
        public Manager(int loopTime, string applicationName, string plcserverApplicationName)
        {
            ApplicationName          = applicationName;
            PLCServerApplicationName = plcserverApplicationName;

            Logger.InfoFormat("{0} application ready", ApplicationName);

            // Create MDSClient object to connect to DotNetMQ
            // Name of this application: PLCServer
            mdsClient = new MDSClient(ApplicationName);
            mdsClient.AutoAcknowledgeMessages = true;

            // Connect to DotNetMQ server
            try
            {
                mdsClient.Connect();
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                // esco
                this.Exit();
            }

            // configurazione

            // data path
            // xml file name
            // opctags filename
            // lista plc connessi  copn plcname,ipaddress

            // lettura del dominio dei tags
            LoadOPCTags(@"C:\Users\uts.MARINI\Documents\projects\cyb500n\Versione 9.6.x\Exe\OPCTags.xls", "plc4");
            LoadOPCTags(@"C:\Users\uts.MARINI\Documents\projects\cyb500n\Versione 9.6.x\Exe\OPCTags.xls", "plc4cist");
            LoadOPCTags(@"C:\Users\uts.MARINI\Documents\projects\cyb500n\Versione 9.6.x\Exe\OPCTags.xls", "plc5");
            LoadOPCTags(@"C:\Users\uts.MARINI\Documents\projects\cyb500n\Versione 9.6.x\Exe\OPCTags.xls", "plc2");
            LoadOPCTags(@"C:\Users\uts.MARINI\Documents\projects\cyb500n\Versione 9.6.x\Exe\OPCTags.xls", "WamFoam");

            // Register to MessageReceived event to get messages.
            mdsClient.MessageReceived += Manager_MessageReceived;

            PLCServerConnect();

            // spostare su plcserver
            PLCAdd("plc4", "213.131.0.161");
            PLCAdd("plc4cist", "213.131.0.161");
            PLCAdd("plc5", "213.131.0.161");
            PLCAdd("plc2", "213.131.0.161");
            PLCAdd("WamFoam", "213.131.0.161");


            // configurazione

            // lettura del dominio degli oggetti
            MariniImpiantoTree.InitializeFromXmlFile(@"C:\Users\uts.MARINI\Documents\projects\new-project\oms\MariniImpianto\impianto-test.xml");

            mariniImpiantoTree = MariniImpiantoTree.Instance;


            SubscribePLCTags(mariniImpiantoTree);

            LoopTime       = loopTime;
            timer.Elapsed += timer_Elapsed;
            timer.Enabled  = true;

            Logger.InfoFormat("{0} application ready", ApplicationName);
        }