Пример #1
0
        private void BT_AutomaticAll_Click(object sender, RoutedEventArgs e)
        {
            inputDialog = new Utilidades.messageBox("Automático", "Deseja Passar os equipamentos para automático!", MaterialDesignThemes.Wpf.PackIconKind.Information, "Sim", "Não");

            if (inputDialog.ShowDialog() == true)
            {
                VariaveisGlobais.Buffer_PLC[0].Enable_Read = false;

                dummyAuxiliaresProcesso = Utilidades.VariaveisGlobais.auxiliaresBooleanos;


                dummyAuxiliaresProcesso.Automatico_Equips       = true;
                Utilidades.VariaveisGlobais.auxiliaresBooleanos = dummyAuxiliaresProcesso;


                Comunicacao.Sharp7.S7.SetDWordAt(VariaveisGlobais.Buffer_PLC[0].Buffer, 126, Move_Bits.AuxiliaresBooleanasToDword(Utilidades.VariaveisGlobais.auxiliaresBooleanos)); //Atualiza os Bits do command

                VariaveisGlobais.Buffer_PLC[0].Enable_Write = true;
            }
        }
Пример #2
0
        private void timer_Tick(object sender, EventArgs e)
        {
            lbAno.Content     = DateTime.Now.Year;
            lbDiaMes.Content  = DateTime.Now.Day + "/" + DateTime.Now.Month;
            lbHorario.Content = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;


            VariaveisGlobais.CommunicationPLC.readBuffersPLC(); //Chama a leitura no PLC

            //Verifica se esta lendo valor válido do CLP

            if (Comunicacao.Sharp7.S7.GetIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[0].Buffer, 0) == 1000)
            {
                //Verifica se está bloqueado ou não a balança.
                if (!VariaveisGlobais.balancaPrincipal.BloqueiaLeitura_GS)
                {
                    //Atualiza Balança
                    VariaveisGlobais.balancaPrincipal.LeituraModbus();

                    //Escreve o peso lido da balança
                    //Lembrando que -1 simboliza erro na leitura.
                    VariaveisGlobais.balancaPrincipal.EscritaCLP(2, 2);
                }

                ////Atualiza Dword Geral de auxiliares Processo.
                Utilidades.VariaveisGlobais.auxiliaresBooleanos = Move_Bits.DwordTocontroleAuxiliaresBooleanas(Comunicacao.Sharp7.S7.GetDWordAt(Utilidades.VariaveisGlobais.Buffer_PLC[0].Buffer, 126), Utilidades.VariaveisGlobais.auxiliaresBooleanos);

                //Atualzia SIlo
                VariaveisGlobais.Fluxo.AtualizaFluxo();

                //Atualização Equip
                VariaveisGlobais.Fluxo.BMP1_Designer.actualize_Equip = true;
                VariaveisGlobais.Fluxo.BMP2_Designer.actualize_Equip = true;
                VariaveisGlobais.Fluxo.TD1_Designer.actualize_Equip  = true;
                VariaveisGlobais.Fluxo.FM1_Designer.actualize_Equip  = true;


                VariaveisGlobais.Fluxo.RP1_Designer.actualize_Equip = true;
                VariaveisGlobais.Fluxo.RP2_Designer.actualize_Equip = true;
                VariaveisGlobais.Fluxo.RP3_Designer.actualize_Equip = true;
            }

            if (Comunicacao.Sharp7.S7.GetIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 0) == 1000)
            {
                if (Utilidades.VariaveisGlobais.Buffer_PLC[1].Enable_Read)
                {
                    VariaveisGlobais.controleProducao.Producao0 = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 2);
                    VariaveisGlobais.controleProducao.Producao1 = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 6);
                    VariaveisGlobais.controleProducao.Producao2 = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 10);
                    VariaveisGlobais.controleProducao.Producao3 = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 14);


                    VariaveisGlobais.controleProducao = Move_Bits.WordToControleProducao(Comunicacao.Sharp7.S7.GetWordAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 18), VariaveisGlobais.controleProducao);

                    VariaveisGlobais.controleProducao.StatusDosagem   = Comunicacao.Sharp7.S7.GetIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 20);
                    VariaveisGlobais.controleProducao.StatusMistura   = Comunicacao.Sharp7.S7.GetIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 22);
                    VariaveisGlobais.controleProducao.StatusExpedicao = Comunicacao.Sharp7.S7.GetIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 24);

                    VariaveisGlobais.controleProducao.PesoDosar      = Comunicacao.Sharp7.S7.GetRealAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 26);
                    VariaveisGlobais.controleProducao.PesoTolerancia = Comunicacao.Sharp7.S7.GetRealAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 30);

                    VariaveisGlobais.controleProducao.TempoMistura       = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 34);
                    VariaveisGlobais.controleProducao.TempoEstabilizacao = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 38);
                    VariaveisGlobais.controleProducao.TempoPulmaoVazio   = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 42);

                    VariaveisGlobais.controleProducao.Peso_Total_Produzindo   = Comunicacao.Sharp7.S7.GetRealAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 46);
                    VariaveisGlobais.controleProducao.Peso_Parcial_Produzindo = Comunicacao.Sharp7.S7.GetRealAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 50);

                    VariaveisGlobais.controleProducao.TempoLimpezaDosagem    = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 54);
                    VariaveisGlobais.controleProducao.TempoLimpezaMisturador = Comunicacao.Sharp7.S7.GetDIntAt(Utilidades.VariaveisGlobais.Buffer_PLC[1].Buffer, 58);
                }

                controleDosagemProdutos();

                controleFinalizaProducao();
            }

            VariaveisGlobais.CommunicationPLC.writeBufferPLC();//Chama a escrita no PLC
        }
Пример #3
0
        private void btEmergencia_Click(object sender, RoutedEventArgs e)
        {
            VariaveisGlobais.AuxiliaresBooleanas dummyAuxiliaresProcesso = Utilidades.VariaveisGlobais.auxiliaresBooleanos;

            if (dummyAuxiliaresProcesso.Emergencia)
            {
                inputDialog = new Utilidades.messageBox("Emergência", "Deseja retirar de emergência os equipamentos!", MaterialDesignThemes.Wpf.PackIconKind.Information, "Sim", "Não");

                if (inputDialog.ShowDialog() == true)
                {
                    VariaveisGlobais.Buffer_PLC[0].Enable_Read = false;

                    dummyAuxiliaresProcesso.Emergencia = false;
                    Utilidades.VariaveisGlobais.auxiliaresBooleanos = dummyAuxiliaresProcesso;

                    Comunicacao.Sharp7.S7.SetDWordAt(VariaveisGlobais.Buffer_PLC[0].Buffer, 126, Move_Bits.AuxiliaresBooleanasToDword(Utilidades.VariaveisGlobais.auxiliaresBooleanos)); //Atualiza os Bits do command

                    VariaveisGlobais.Buffer_PLC[0].Enable_Write = true;
                }
            }
            else
            {
                inputDialog = new Utilidades.messageBox("Emergência", "Deseja colocar em emergência os equipamentos!", MaterialDesignThemes.Wpf.PackIconKind.Information, "Sim", "Não");

                if (inputDialog.ShowDialog() == true)
                {
                    VariaveisGlobais.Buffer_PLC[0].Enable_Read = false;

                    dummyAuxiliaresProcesso.Emergencia = true;
                    Utilidades.VariaveisGlobais.auxiliaresBooleanos = dummyAuxiliaresProcesso;

                    Comunicacao.Sharp7.S7.SetDWordAt(VariaveisGlobais.Buffer_PLC[0].Buffer, 126, Move_Bits.AuxiliaresBooleanasToDword(Utilidades.VariaveisGlobais.auxiliaresBooleanos)); //Atualiza os Bits do command

                    VariaveisGlobais.Buffer_PLC[0].Enable_Write = true;
                }
            }
        }