Exemplo n.º 1
0
        public void Start()
        {
            if (TabellaComandi == null)
            {
                Console.WriteLine("La tabella dei comandi è vuota");
            }

            //Lettura stati da plc

            while (true)
            {
                Thread.Sleep(200);

                if (true)//<- azione richiesta dal plc
                {
                    //_robot.WriteCommand(Azioni.Prelievo, Pinza.Pinza_2, Stazioni.Carico, PosizioneSchedaForRobot.Posizione_2);
                    //_robot.WriteCommand(Azioni.Prelievo, Pinza.Pinza_2, Stazioni.Carico, PosizioneSchedaForRobot.Posizione_2);
                    //_robot.WriteCommand(Azioni.Deposito, Pinza.Pinza_2, Stazioni.Compact_2, PosizioneSchedaForRobot.Posizione_1);
                    //_robot.WriteCommand(Azioni.Deposito, Pinza.Pinza_2, Stazioni.Compact_2, PosizioneSchedaForRobot.Posizione_4);

                    //_robot.WriteCommand(Azioni.Prelievo, Pinza.Pinza_1, Stazioni.Home, PosizioneSchedaForRobot.Posizione_1);
                    //    _robot.WriteCommand(Azioni.Prelievo,Pinza.Pinza_2, Stazioni.Carico, PosizioneSchedaForRobot.Posizione_2);
                    //    _robot.WriteCommand(Azioni.Deposito, Pinza.Pinza_1, Stazioni.Compact_2, PosizioneSchedaForRobot.Posizione_3);
                    //    _robot.WriteCommand(Azioni.Deposito, Pinza.Pinza_2, Stazioni.Compact_2, PosizioneSchedaForRobot.Posizione_4);


                    int   stazione = 1;           //<- lettura da plc, stazione interessata
                    int[] stato    = { 4, 0, 0 }; // <- lettura stato stazione
                    if (stato.SequenceEqual(new int[] { 4, 0, 0 }))
                    {
                        _compact_2.GetTestResoultFromPLC();
                    }

                    Azione a = TabellaComandi.FirstOrDefault(i => i.Key.SequenceEqual(stato));

                    if (a == null)
                    {
                        Console.WriteLine($"Attenzione, nessun azione corrisponde alla sequenza {stato[0]}{stato[1]}{stato[2]}");
                    }


                    //passare come parametro la compact giusta
                    CommandExecuter(a, Stazioni.Compact_2, _compact_2);
                }
            }
        }
Exemplo n.º 2
0
        public Ciclo(Robot robot)
        {
            _robot     = robot;
            _compact_1 = new Compact(Stazioni.Compact_1);
            _compact_2 = new Compact(Stazioni.Compact_2);

            #region Comando tutto vuoto stazione test 1
            TabellaComandi.Add(new Azione
            {
                Comment = "Postazione test completamente vuota." +
                          "Verranno prese 4 schede dalla stazione di carico, e posate all interno della macchina di test.",
                Key     = new int[] { 0, 0, 0 },
                Comandi = new List <TableCommand>()
                {
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.In
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.In
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Place,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.None
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Place,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.None
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.In
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.In
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Place,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.None
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Place,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.None
                    },
                }
            });
            TabellaComandi.Add(new Azione
            {
                Comment = "La macchina di test ha completato il suo lavoro, e restituisce un informazione di 'Tutti Ok'," +
                          "ovvero tutte le schede possono essere prese e depositate nella zona di scarico Good.",
                Key     = new int[] { 4, 0, 0 },
                Comandi = new List <TableCommand>()
                {
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.G
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.G
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Good,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.None
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Good,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.None
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.G
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Pick,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.G
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Good,
                        Pinza     = Pinza.Pinza_1,
                        Parametro = ParametriTabella.None
                    },
                    new TableCommand()
                    {
                        Azione    = AzioneTabella.Good,
                        Pinza     = Pinza.Pinza_2,
                        Parametro = ParametriTabella.None
                    },
                }
            });
            #endregion
            XmlSerialize();
        }