private void AggiornaStoricoAllarmi() { int?formato = null; DateTime inizio = dtDataInizio.Value.Date; DateTime fine = dtDataFine.Value.Date.AddDays(1); if (!(cmbFormati.SelectedValue == null || (int)cmbFormati.SelectedValue < 0)) { formato = (int)cmbFormati.SelectedValue; } DBL.StatisticheManager dbm = new DBL.StatisticheManager(Properties.Settings.Default.ConnectionStringStatistiche); List <DigitalControl.DataType.StatisticheAllarme> allarmi = null; if (formato == null) { allarmi = dbm.ReadStoricoAllarmi(inizio, fine); } else { allarmi = dbm.ReadStoricoAllarmi(formato.Value, inizio, fine); } for (int i = 0; i < allarmi.Count; i++) { allarmi[i].DescrizioneAllarme = linguaMngr.GetTranslation(allarmi[i].DescrizioneAllarme); } statisticheAllarmeBindingSource.DataSource = allarmi; }
private void timerAggiornaStatoPLC_Tick(object sender, EventArgs e) { if (plcMacchinaManager.SpegniTutto) { if (Properties.Settings.Default.SpegniPC_da_PLC) { Process.Start("shutdown", "/f /s /t 10"); } Application.Exit(); } if (plcMacchinaManager.CodiceAllarme != Class.PlcMacchinaManager.Allarmi.NO_ALLARMI || allarmeLicenza) { DBL.StatisticheManager dbmStatistiche = new DBL.StatisticheManager(Properties.Settings.Default.ConnectionStringStatistiche); GestioneStoricoAllarmi(0, Class.PlcMacchinaManager.Allarmi.RAGGIUNTO_NUMERO_DI_SCARTI_CONSECUTIVI, dbmStatistiche); GestioneStoricoAllarmi(1, Class.PlcMacchinaManager.Allarmi.EMERGENZA_PREMUTA, dbmStatistiche); GestioneStoricoAllarmi(2, Class.PlcMacchinaManager.Allarmi.AVARIA_BATTERIE_UPS, dbmStatistiche); GestioneStoricoAllarmi(3, Class.PlcMacchinaManager.Allarmi.AVARIA_TENSIONE_UPS, dbmStatistiche); GestioneStoricoAllarmi(4, Class.PlcMacchinaManager.Allarmi.DISALLINEAMENTO, dbmStatistiche); PopolaSchermataErrore(this.plcMacchinaManager, this.linguaMngr); } else { timerAggiornaStatoPLC.Enabled = false; this.Close(); } }
private void GetProduzioneOraria(int?formato, DateTime inizio, DateTime fine, out List <SerieBaseProduzioneOraria> serie) { DBL.StatisticheManager dbm = new DBL.StatisticheManager(Properties.Settings.Default.ConnectionStringStatistiche); List <DigitalControl.DataType.StatisticheProduzione> produzioneList = null; if (formato == null) { produzioneList = dbm.ReadProduzioneGiornaliera(-1, inizio, fine); } else { produzioneList = dbm.ReadProduzioneGiornaliera(formato.Value, -1, inizio, fine); } serie = new List <SerieBaseProduzioneOraria>(); if (produzioneList != null && produzioneList.Count > 0) { DateTime datatPrima = produzioneList[0].Data; for (int i = 0; i < produzioneList.Count; i++) { DigitalControl.DataType.StatisticheProduzione prodObj = produzioneList[i]; if ((prodObj.Data - datatPrima).TotalSeconds > 10) { serie.Add(new SerieBaseProduzioneOraria(datatPrima.AddSeconds(5), 0)); serie.Add(new SerieBaseProduzioneOraria(prodObj.Data.AddSeconds(-5), 0)); } datatPrima = prodObj.Data; serie.Add(new SerieBaseProduzioneOraria(prodObj.Data, prodObj.ProdOraria)); } } }
private void GetProduzionePerFormato(int?formato, DateTime inizio, DateTime fine, out List <SerieBaseProduzionePerFormato> serie) { DBL.StatisticheManager dbmStatistiche = new DBL.StatisticheManager(Properties.Settings.Default.ConnectionStringStatistiche); DBL.FormatoManager dbmFormati = new DBL.FormatoManager(Properties.Settings.Default.ConnectionStringFormati); List <DigitalControl.DataType.StatisticheProduzione> produzioneList = null; if (formato == null) { produzioneList = dbmStatistiche.ReadProduzionePerFormato(-1, inizio, fine); } else { produzioneList = dbmStatistiche.ReadProduzionePerFormato(formato.Value, -1, inizio, fine); } serie = new List <SerieBaseProduzionePerFormato>(); if (produzioneList != null && produzioneList.Count > 0) { DigitalControl.DataType.StatisticheProduzione prodObj = produzioneList[0]; int prevPzBuoni = prodObj.PzBuoni; int pzBuoni = prevPzBuoni; int prevPzScarto = prodObj.Scarto; int pzScarto = prevPzScarto; int prevFormato = prodObj.IdFormato; int currFormato = prodObj.IdFormato; DateTime prevdata = prodObj.Data; DateTime currdata = prodObj.Data; string formatoDescr = string.Empty; for (int i = 1; i < produzioneList.Count; i++) { prodObj = produzioneList[i]; // calcola il delta dei pezzi prodotti int currPzBuoni = prodObj.PzBuoni; int currPzScarto = prodObj.Scarto; currFormato = prodObj.IdFormato; currdata = prodObj.Data; if (prevdata.Date != currdata.Date) { prevdata = currdata; } if (currFormato > prevFormato) { formatoDescr = dbmFormati.GetDescrizioneFormato(prevFormato); serie.Add(new SerieBaseProduzionePerFormato(formatoDescr, pzBuoni, pzScarto)); if (currPzBuoni >= prevPzBuoni) { pzBuoni = currPzBuoni - prevPzBuoni; } else { pzBuoni = currPzBuoni; } if (currPzScarto >= prevPzScarto) { pzScarto = currPzScarto - prevPzScarto; } else { pzScarto = currPzScarto; } } else { if (currPzBuoni >= prevPzBuoni) { pzBuoni += currPzBuoni - prevPzBuoni; } else { pzBuoni += currPzBuoni; } if (currPzScarto >= prevPzScarto) { pzScarto += currPzScarto - prevPzScarto; } else { pzScarto += currPzScarto; } } prevPzBuoni = currPzBuoni; prevPzScarto = currPzScarto; prevFormato = currFormato; prevdata = currdata; } formatoDescr = dbmFormati.GetDescrizioneFormato(currFormato); serie.Add(new SerieBaseProduzionePerFormato(formatoDescr, pzBuoni, pzScarto)); } }
private void GetProduzioneGiornaliera(int?formato, DateTime inizio, DateTime fine, out List <SerieBaseProduzioneGiornaliera> serie) { DBL.StatisticheManager dbm = new DBL.StatisticheManager(Properties.Settings.Default.ConnectionStringStatistiche); List <DigitalControl.DataType.StatisticheProduzione> produzioneList = null; if (formato == null) { produzioneList = dbm.ReadProduzioneGiornaliera(-1, inizio, fine); } else { produzioneList = dbm.ReadProduzioneGiornaliera(formato.Value, -1, inizio, fine); } serie = new List <SerieBaseProduzioneGiornaliera>(); //if (produzioneList != null && produzioneList.Count > 0) if (produzioneList != null) // |MP 23-1-19 { // |MP 23-1-19 modificate x far vedere la pg con qualcosa anche se non c'è scritto nulla int prevPzBuoni = 0; int pzBuoni = 0; int prevPzScarto = 0; int pzScarto = 0; DateTime prevData = System.DateTime.Now; if (produzioneList.Count > 0) // |MP 23-1-19 { DigitalControl.DataType.StatisticheProduzione prodObj = produzioneList[0]; prevPzBuoni = prodObj.PzBuoni; pzBuoni = prevPzBuoni; prevPzScarto = prodObj.Scarto; pzScarto = prevPzScarto; DateTime currData = prodObj.Data.Date; prevData = prodObj.Data.Date; for (int i = 1; i < produzioneList.Count; i++) { prodObj = produzioneList[i]; int currPzBuoni = prodObj.PzBuoni; int currPzScarto = prodObj.Scarto; currData = prodObj.Data.Date; if (currData > prevData) { serie.Add(new SerieBaseProduzioneGiornaliera(prevData, pzBuoni, pzScarto)); if (currPzBuoni >= prevPzBuoni) { pzBuoni = (currPzBuoni - prevPzBuoni); } else { pzBuoni = currPzBuoni; } if (currPzScarto >= prevPzScarto) { pzScarto = (currPzScarto - prevPzScarto); } else { pzScarto = currPzScarto; } } else { if (currPzBuoni >= prevPzBuoni) { pzBuoni += (currPzBuoni - prevPzBuoni); } else { pzBuoni += currPzBuoni; } if (currPzScarto >= prevPzScarto) { pzScarto += (currPzScarto - prevPzScarto); } else { pzScarto += currPzScarto; } } prevPzBuoni = currPzBuoni; prevPzScarto = currPzScarto; prevData = currData; } } serie.Add(new SerieBaseProduzioneGiornaliera(prevData, pzBuoni, pzScarto)); } }
private void GestioneStoricoAllarmi(int indiceErrore, Class.PlcMacchinaManager.Allarmi flagAllarme, DBL.StatisticheManager dbmStatistiche) { if (errori[indiceErrore] == false && plcMacchinaManager.CodiceAllarme.HasFlag(flagAllarme)) { errori[indiceErrore] = true; DigitalControl.DataType.StatisticheAllarme allarme = new DigitalControl.DataType.StatisticheAllarme(); allarme.Nodo = 0; allarme.IdAllarme = indiceErrore; allarme.Data = DateTime.Now; dbmStatistiche.WriteStoricoAllarmi(allarme); } else if (errori[indiceErrore] == true && !plcMacchinaManager.CodiceAllarme.HasFlag(flagAllarme)) { errori[indiceErrore] = false; } }