123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using BaseLibRWFile;
- namespace BaseLibRWFile
- {
- public class DataStatistics
- {
- public static Excel newExcel = new Excel();
- public static YieldStatistics DataS = new YieldStatistics();
- public static YieldStatistics DataTotal = new YieldStatistics();
- public static Stopwatch[] stopWatchRunTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- public static Stopwatch[] stopWatchIdleTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- public static Stopwatch[] stopWatchDownTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- public static Stopwatch[] stopWatchStoppedTimeTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- public static int[] Index = new int[24];
- public static int iTimeCout = 0;
- private static void InitData()
- {
- DataS.StationOKCount = new double[GlobalPara.StationCount];
- DataS.StationNGCount = new double[GlobalPara.StationCount];
- DataS.StationTossCount = new double[GlobalPara.StationCount];
- DataS.TimeSpanCount = new string[24];
- DataS.RunTime = new double[24];
- DataS.DownTime = new double[24];
- DataS.IdleTime = new double[24];
- DataS.StoppedTime = new double[24];
- DataS.TimeOK = new double[24];
- DataS.TimeNG = new double[24];
- DataS.TimeToss = new double[24];
- DataS.SumTimeCT = new double[24];
- DataS.SumRunTime = 0;
- DataS.SumDownTime = 0;
- DataS.SumIdleTime = 0;
- DataS.SumStoppedTime = 0;
- for (int i = 0; i < DataS.StationOKCount.Length; i++)
- {
- DataS.StationOKCount[i] = 0;
- DataS.StationNGCount[i] = 0;
- DataS.StationTossCount[i] = 0;
- }
- for (int i = 0; i < DataS.TimeSpanCount.Length; i++)
- {
- DataS.TimeSpanCount[i] = "0-0-0-0-0-0-0-0-0";
- }
- for (int i = 0; i < DataS.RunTime.Length; i++)
- {
- DataS.TimeOK[i] = 0;
- DataS.TimeNG[i] = 0;
- DataS.TimeToss[i] = 0;
- DataS.RunTime[i] = 0;
- DataS.DownTime[i] = 0;
- DataS.IdleTime[i] = 0;
- DataS.StoppedTime[i] = 0;
- DataS.SumTimeCT[i] = 0;
- }
- }
- private static void InitDataTotal()
- {
- DataTotal.StationOKCount = new double[GlobalPara.StationCount];
- DataTotal.StationNGCount = new double[GlobalPara.StationCount];
- DataTotal.StationTossCount = new double[GlobalPara.StationCount];
- DataTotal.TimeSpanCount = new string[24];
- DataTotal.RunTime = new double[24];
- DataTotal.DownTime = new double[24];
- DataTotal.IdleTime = new double[24];
- DataTotal.StoppedTime = new double[24];
- DataTotal.TimeOK = new double[24];
- DataTotal.TimeNG = new double[24];
- DataTotal.TimeToss = new double[24];
- DataTotal.SumTimeCT = new double[24];
- DataTotal.SumRunTime = 0;
- DataTotal.SumDownTime = 0;
- DataTotal.SumIdleTime = 0;
- DataTotal.SumStoppedTime = 0;
- for (int i = 0; i < DataTotal.StationOKCount.Length; i++)
- {
- DataTotal.StationOKCount[i] = 0;
- DataTotal.StationNGCount[i] = 0;
- DataTotal.StationTossCount[i] = 0;
- }
- for (int i = 0; i < DataTotal.TimeSpanCount.Length; i++)
- {
- DataTotal.TimeSpanCount[i] = "0-0-0-0-0-0-0-0-0";
- }
- for (int i = 0; i < DataTotal.RunTime.Length; i++)
- {
- DataTotal.TimeOK[i] = 0;
- DataTotal.TimeNG[i] = 0;
- DataTotal.TimeToss[i] = 0;
- DataTotal.RunTime[i] = 0;
- DataTotal.DownTime[i] = 0;
- DataTotal.IdleTime[i] = 0;
- DataTotal.StoppedTime[i] = 0;
- DataTotal.SumTimeCT[i] = 0;
- }
- }
- public static void InitialCT()
- {
- stopWatchRunTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- stopWatchIdleTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- stopWatchDownTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- stopWatchStoppedTimeTimeCT = new Stopwatch[24] { new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
- Index = new int[24];
- iTimeCout = 0;
- }
- public static bool ReadDataStatistics(bool bIsToday = false)
- {
- try
- {
- DateTime dateTime = DateTime.Now.Date;
- if (!GlobalPara.DictDataStatistics.ContainsKey(dateTime))
- {
- if (DateTime.Now.Hour >= 8)
- {
- InitData();
- InitDataTotal();
- InitialCT();
- }
- }
- //if (DataS.StationOKCount == null)
- //{
- // InitData();
- // InitDataTotal();
- // InitialCT();
- //}
- GlobalPara.DictDataStatistics.Clear();
- string[] StrSheetNameArray = new string[1] { "Data" };
- string FilePath = $"{GlobalPara.ProDataFilePath}\\DataLog\\DataStatistics{ DateTime.Now.ToString("yyyyMM")}.xlsx";
- if (!File.Exists(FilePath))
- {
- if (DateTime.Now.Hour >= 8)
- {
- string Header = $"Date,InputSumCount,";
- for (int i = 0; i < GlobalPara.StationCount; i++)
- {
- Header += $"StationOKCount[{i}],StationNGCount[{i}],StationTossCount[{i}],";
- }
- for (int i = 0; i < 24; i++)
- {
- Header += $"TimeSpanCount[{i}],";
- }
- Header += $"RunTime,DownTime,StoppedTime,IdleTime";
- newExcel.CreatExcel(FilePath, StrSheetNameArray);
- newExcel.SetCellValue(FilePath, StrSheetNameArray[0], 0, 0, Header);
- }
- else
- {
- FilePath = $"{GlobalPara.ProDataFilePath}\\DataLog\\DataStatistics{ DateTime.Now.AddDays(-1).ToString("yyyyMM")}.xlsx";
- }
- }
- string[,] strData = newExcel.ReadSheetData(FilePath, StrSheetNameArray[0]);
- for (int i = 1; i < strData.GetLongLength(0); i++)
- {
- DataS.Date = Convert.ToDateTime(strData[i, 0]);
- DataS.InputSumCount = Convert.ToUInt16(strData[i, 1]);
- for (int j = 0; j < GlobalPara.StationCount; j++)
- {
- DataTotal.StationOKCount[j] += DataS.StationOKCount[j] = Convert.ToUInt16(strData[i, 2 + j * 3]);
- DataTotal.StationNGCount[j] += DataS.StationNGCount[j] = Convert.ToUInt16(strData[i, 3 + j * 3]);
- DataTotal.StationTossCount[j] += DataS.StationTossCount[j] = Convert.ToUInt16(strData[i, 4 + j * 3]);
- }
- for (int k = 0; k < 24; k++)
- {
- DataTotal.TimeSpanCount[k] += DataS.TimeSpanCount[k] = strData[i, 5 + k].Split('-')[0];
- DataTotal.TimeOK[k] += DataS.TimeOK[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[1]);
- DataTotal.TimeNG[k] += DataS.TimeNG[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[2]);
- DataTotal.TimeToss[k] += DataS.TimeToss[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[3]);
- DataTotal.RunTime[k] += DataS.RunTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[4]);
- DataTotal.DownTime[k] += DataS.DownTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[5]);
- DataTotal.StoppedTime[k] += DataS.StoppedTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[6]);
- DataTotal.IdleTime[k] += DataS.IdleTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[7]);
- DataTotal.SumTimeCT[k] += DataS.SumTimeCT[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[8]);
- DataS.TimeSpanCount[k] = DataS.TimeSpanCount[k] + "-" + DataS.TimeOK[k] + "-" + DataS.TimeNG[k] + "-" + DataS.TimeToss[k] + "-" + DataS.RunTime[k] + "-" + DataS.DownTime[k] + "-" + DataS.StoppedTime[k] + "-" + DataS.IdleTime[k] + "-" + DataS.SumTimeCT[k];
- DataTotal.TimeSpanCount[k] = DataS.TimeSpanCount[k];
- //DataTotal.TimeSpanCount[k] = DataTotal.TimeSpanCount[k] + "-" + DataTotal.TimeOK[k] + "-" + DataTotal.TimeNG[k] + "-" + DataTotal.TimeToss[k] + "-" + DataTotal.RunTime[k] + "-" + DataTotal.DownTime[k] + "-" + DataTotal.StoppedTime[k] + "-" + DataTotal.IdleTime[k] + "-" + DataTotal.SumTimeCT[k];
- }
- DataTotal.SumRunTime += DataS.SumRunTime = Convert.ToDouble(strData[i, 29]);
- DataTotal.SumDownTime += DataS.SumDownTime = Convert.ToDouble(strData[i, 30]);
- DataTotal.SumStoppedTime += DataS.SumStoppedTime = Convert.ToDouble(strData[i, 31]);
- DataTotal.SumIdleTime += DataS.SumIdleTime = Convert.ToDouble(strData[i, 32]);
- GlobalPara.DictDataStatistics.Add(DataS.Date, DataS);
- if (bIsToday)
- {
- break;
- }
- DataTotal = DataS;
- }
- return true;
- }
- catch (Exception ex)
- {
- MessageBox.Show($"读取ErrorCode文件出错\r\nError reading ErrorCode file\r\n{ex.Message}", "Warning");
- return false;
- }
- }
- public static bool ReadDataTotalStatistics(bool bIsToday = false, string strStartTime = "", string strEndTime = "", int iDays = 0)
- {
- try
- {
- InitDataTotal();
- int iCout = 1;
- if (strStartTime != strEndTime)
- {
- iCout = 2;
- }
- for (int q = 0; q < iCout; q++)
- {
- string[] StrSheetNameArray = new string[1] { "Data" };
- string FilePath = $"{GlobalPara.ProDataFilePath}\\DataLog\\DataStatistics{strStartTime}.xlsx";
- if (q == 1)
- {
- FilePath = $"{GlobalPara.ProDataFilePath}\\DataLog\\DataStatistics{strEndTime}.xlsx";
- }
- if (!File.Exists(FilePath))
- {
- string Header = $"Date,InputSumCount,";
- for (int i = 0; i < GlobalPara.StationCount; i++)
- {
- Header += $"StationOKCount[{i}],StationNGCount[{i}],StationTossCount[{i}],";
- }
- for (int i = 0; i < 24; i++)
- {
- Header += $"TimeSpanCount[{i}],";
- }
- Header += $"RunTime,DownTime,StoppedTime,IdleTime";
- newExcel.CreatExcel(FilePath, StrSheetNameArray);
- newExcel.SetCellValue(FilePath, StrSheetNameArray[0], 0, 0, Header);
- }
- string[,] strData = newExcel.ReadSheetData(FilePath, StrSheetNameArray[0]);
- //if (iDays >= strData.GetLongLength(0))
- //{
- // MessageBox.Show("查询日期文本数量大于表格数量,请检查");
- // return false;
- //}
- for (int i = 1; i < strData.GetLongLength(0); i++)
- {
- DataTotal.Date = Convert.ToDateTime(strData[i, 0]);
- DataTotal.InputSumCount = Convert.ToUInt16(strData[i, 1]);
- for (int j = 0; j < GlobalPara.StationCount; j++)
- {
- DataTotal.StationOKCount[j] += DataTotal.StationOKCount[j] = Convert.ToUInt16(strData[i, 2 + j * 3]);
- DataTotal.StationNGCount[j] += DataTotal.StationNGCount[j] = Convert.ToUInt16(strData[i, 3 + j * 3]);
- DataTotal.StationTossCount[j] += DataTotal.StationTossCount[j] = Convert.ToUInt16(strData[i, 4 + j * 3]);
- }
- for (int k = 0; k < 24; k++)
- {
- DataTotal.TimeSpanCount[k] = (int.Parse(strData[i, 5 + k].Split('-')[0]) + int.Parse(DataTotal.TimeSpanCount[k].Split('-')[0])).ToString();
- DataTotal.TimeOK[k] += DataTotal.TimeOK[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[1]);
- DataTotal.TimeNG[k] += DataTotal.TimeNG[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[2]);
- DataTotal.TimeToss[k] += DataTotal.TimeToss[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[3]);
- DataTotal.RunTime[k] += DataTotal.RunTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[4]);
- DataTotal.DownTime[k] += DataTotal.DownTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[5]);
- DataTotal.StoppedTime[k] += DataTotal.StoppedTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[6]);
- DataTotal.IdleTime[k] += DataTotal.IdleTime[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[7]);
- DataTotal.SumTimeCT[k] += DataTotal.SumTimeCT[k] = Convert.ToDouble(strData[i, 5 + k].Split('-')[8]);
- DataTotal.TimeSpanCount[k] = DataTotal.TimeSpanCount[k] + "-" + DataTotal.TimeOK[k] + "-" + DataTotal.TimeNG[k] + "-" + DataTotal.TimeToss[k] + "-" + DataTotal.RunTime[k] + "-" + DataTotal.DownTime[k] + "-" + DataTotal.StoppedTime[k] + "-" + DataTotal.IdleTime[k] + "-" + DataTotal.SumTimeCT[k];
- }
- DataTotal.SumRunTime += DataTotal.SumRunTime = Convert.ToDouble(strData[i, 29]);
- DataTotal.SumDownTime += DataTotal.SumDownTime = Convert.ToDouble(strData[i, 30]);
- DataTotal.SumStoppedTime += DataTotal.SumStoppedTime = Convert.ToDouble(strData[i, 31]);
- DataTotal.SumIdleTime += DataTotal.SumIdleTime = Convert.ToDouble(strData[i, 32]);
- if (iDays == 0)
- {
- break;
- }
- }
- }
- return true;
- }
- catch (Exception ex)
- {
- MessageBox.Show($"读取ErrorCode文件出错\r\nError reading ErrorCode file\r\n{ex.Message}", "Warning");
- return false;
- }
- }
- public static object objLock = new object();
- public static bool SaveDataStatistics()
- {
- lock(objLock)
- {
- try
- {
- //if (DataS.StationOKCount == null)
- //{
- // InitData();
- // InitDataTotal();
- //}
- DateTime dateTime = DateTime.Now.Date;
- if (!GlobalPara.DictDataStatistics.ContainsKey(dateTime))
- {
- if (DateTime.Now.Hour >= 8)
- {
- InitData();
- InitDataTotal();
- InitialCT();
- }
- ReadDataStatistics(true);
- }
- string[] StrSheetNameArray = new string[1] { "Data" };
- string FilePath = $"{GlobalPara.ProDataFilePath}\\DataLog\\DataStatistics{DateTime.Now.ToString("yyyyMM")}.xlsx";
- string Value = $"{dateTime},{DataS.InputSumCount},";
- for (int i = 0; i < GlobalPara.StationCount; i++)
- {
- Value += $"{DataS.StationOKCount[i]},{DataS.StationNGCount[i]}," +
- $"{DataS.StationTossCount[i]},";
- }
- for (int i = 0; i < 24; i++)
- {
- if (GlobalPara.DictDataStatistics.ContainsKey(dateTime))
- {
- Value += $"{DataS.TimeSpanCount[i].Split('-')[0] + "-" + DataS.TimeOK[i] + "-" + DataS.TimeNG[i] + "-" + DataS.TimeToss[i] + "-" + DataS.RunTime[i] + "-" + DataS.DownTime[i] + "-" + DataS.StoppedTime[i] + "-" + DataS.IdleTime[i] + "-" + DataS.SumTimeCT[i]},";
- }
- else
- {
- Value += $"{DataS.TimeSpanCount[i]},";
- }
- }
- Value += $"{DataS.SumRunTime},{DataS.SumDownTime},{DataS.SumStoppedTime},{DataS.SumIdleTime}";
- if (!File.Exists(FilePath))
- {
- if (DateTime.Now.Hour >= 8)
- {
- string Header = $"Date,InputSumCount,";
- for (int i = 0; i < GlobalPara.StationCount; i++)
- {
- Header += $"StationOKCount[{i}],StationNGCount[{i}],StationTossCount[{i}],";
- }
- for (int i = 0; i < 24; i++)
- {
- Header += $"TimeSpanCount[{i}],";
- }
- Header += $"RunTime,DownTime,StoppedTime,IdleTime";
- newExcel.CreatExcel(FilePath, StrSheetNameArray);
- newExcel.SetCellValue(FilePath, StrSheetNameArray[0], 0, 0, Header);
- }
- else
- {
- FilePath = $"{GlobalPara.ProDataFilePath}\\DataLog\\DataStatistics{DateTime.Now.AddDays(-1).ToString("yyyyMM")}.xlsx";
- }
- }
- if (GlobalPara.DictDataStatistics.ContainsKey(dateTime))
- {
- newExcel.WriteRow(FilePath, 1, Value, StrSheetNameArray[0]);
- }
- else
- {
- if (!newExcel.InsertRow(FilePath, 1, Value, StrSheetNameArray[0]))
- {
- return false;
- }
- }
- return true;
- }
- catch (Exception ex)
- {
- string str = $"保存统计数据出错:";
- Msg.Show($"{str}\r\n{ex}", $"{str}\r\nError saving statistics:\r\n{ex}",
- $"{str}\r\nLỗi khi lưu thống kê:\r\n{ex}", "Error", msgicon: MessageBoxIcon.Error);
- return false;
- }
- }
- }
- public static void SaveTimeData(OEE数据类型 DataType, double dTimeCT = 0)
- {
- dTimeCT = 0;
- if (DateTime.Now.Hour >= 8)
- {
- switch (DataType)
- {
- case OEE数据类型.TimeOK:
- DataS.TimeOK[DateTime.Now.Hour - 8]++;
- break;
- case OEE数据类型.TimeNG:
- DataS.TimeNG[DateTime.Now.Hour - 8]++;
- break;
- case OEE数据类型.TimeToss:
- DataS.TimeToss[DateTime.Now.Hour - 8]++;
- break;
- case OEE数据类型.SumTimeCT:
- DataS.SumTimeCT[DateTime.Now.Hour - 8]++;
- break;
- case OEE数据类型.RunTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour - 8].Start();
- stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchDownTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Stop();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.RunTime[DateTime.Now.Hour - 8];
- }
- DataS.RunTime[DateTime.Now.Hour - 8] = dTimeCT + stopWatchRunTimeCT[DateTime.Now.Hour - 8].Elapsed.Hours * 3600 + stopWatchRunTimeCT[DateTime.Now.Hour - 8].Elapsed.Minutes * 60 + stopWatchRunTimeCT[DateTime.Now.Hour - 8].Elapsed.Seconds + stopWatchRunTimeCT[DateTime.Now.Hour - 8].Elapsed.Milliseconds / 1000; ;
- break;
- case OEE数据类型.IdleTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Start();
- stopWatchDownTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Stop();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.IdleTime[DateTime.Now.Hour - 8];
- }
- DataS.IdleTime[DateTime.Now.Hour - 8] = dTimeCT + stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Elapsed.Hours * 3600 + stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Elapsed.Minutes * 60 + stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Elapsed.Seconds + stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Elapsed.Milliseconds / 1000;
- break;
- case OEE数据类型.DownTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchDownTimeCT[DateTime.Now.Hour - 8].Start();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Stop();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.DownTime[DateTime.Now.Hour - 8];
- }
- DataS.DownTime[DateTime.Now.Hour - 8] = dTimeCT + stopWatchDownTimeCT[DateTime.Now.Hour - 8].Elapsed.Hours * 3600 + stopWatchDownTimeCT[DateTime.Now.Hour - 8].Elapsed.Minutes * 60 + stopWatchDownTimeCT[DateTime.Now.Hour - 8].Elapsed.Seconds + stopWatchDownTimeCT[DateTime.Now.Hour - 8].Elapsed.Milliseconds / 1000;
- break;
- case OEE数据类型.StoppedTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchIdleTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchDownTimeCT[DateTime.Now.Hour - 8].Stop();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Start();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.StoppedTime[DateTime.Now.Hour - 8];
- }
- DataS.StoppedTime[DateTime.Now.Hour - 8] = dTimeCT + stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Elapsed.Hours * 3600 + stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Elapsed.Minutes * 60 + stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Elapsed.Seconds + stopWatchStoppedTimeTimeCT[DateTime.Now.Hour - 8].Elapsed.Milliseconds / 1000;
- break;
- }
- }
- else
- {
- switch (DataType)
- {
- case OEE数据类型.TimeOK:
- DataS.TimeOK[DateTime.Now.Hour + 16]++;
- break;
- case OEE数据类型.TimeNG:
- DataS.TimeNG[DateTime.Now.Hour + 16]++;
- break;
- case OEE数据类型.TimeToss:
- DataS.TimeToss[DateTime.Now.Hour + 16]++;
- break;
- case OEE数据类型.SumTimeCT:
- DataS.SumTimeCT[DateTime.Now.Hour + 16]++;
- break;
- case OEE数据类型.RunTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour + 16].Start();
- stopWatchIdleTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchDownTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour + 16].Stop();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.RunTime[DateTime.Now.Hour + 16];
- }
- DataS.RunTime[DateTime.Now.Hour + 16] = dTimeCT + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Hours * 3600 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Minutes * 60 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Seconds + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Milliseconds / 1000; ;
- break;
- case OEE数据类型.IdleTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchIdleTimeCT[DateTime.Now.Hour + 16].Start();
- stopWatchDownTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour + 16].Stop();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.IdleTime[DateTime.Now.Hour + 16];
- }
- DataS.IdleTime[DateTime.Now.Hour + 16] = dTimeCT + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Hours * 3600 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Minutes * 60 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Seconds + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Milliseconds / 1000; ;
- break;
- case OEE数据类型.DownTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchIdleTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchDownTimeCT[DateTime.Now.Hour + 16].Start();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour + 16].Stop();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.DownTime[DateTime.Now.Hour + 16];
- }
- DataS.DownTime[DateTime.Now.Hour + 16] = dTimeCT + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Hours * 3600 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Minutes * 60 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Seconds + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Milliseconds / 1000; ;
- break;
- case OEE数据类型.StoppedTime:
- iTimeCout = 0;
- if (DateTime.Now.Hour >= 8)
- {
- iTimeCout = Index[DateTime.Now.Hour - 8]++;
- }
- else
- {
- iTimeCout = Index[DateTime.Now.Hour + 16]++;
- }
- stopWatchRunTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchIdleTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchDownTimeCT[DateTime.Now.Hour + 16].Stop();
- stopWatchStoppedTimeTimeCT[DateTime.Now.Hour + 16].Start();
- if (iTimeCout == 1)
- {
- dTimeCT = DataS.StoppedTime[DateTime.Now.Hour + 16];
- }
- DataS.StoppedTime[DateTime.Now.Hour + 16] = dTimeCT + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Hours * 3600 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Minutes * 60 + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Seconds + stopWatchRunTimeCT[DateTime.Now.Hour + 16].Elapsed.Milliseconds / 1000; ;
- break;
- }
- }
- }
- public enum OEE数据类型
- {
- RunTime,
- DownTime,
- StoppedTime,
- IdleTime,
- TimeOK,
- TimeNG,
- TimeToss,
- SumTimeCT
- }
- }
- public struct YieldStatistics
- {
- public DateTime Date;
- public double InputSumCount;
- public double[] StationOKCount;
- public double[] StationNGCount;
- public double[] StationTossCount;
- public string[] TimeSpanCount;
- public double SumTime;
- public double[] RunTime;
- public double[] DownTime;
- public double[] StoppedTime;
- public double[] IdleTime;
- public double[] TimeOK;
- public double[] TimeNG;
- public double[] TimeToss;
- public double SumRunTime;
- public double SumDownTime;
- public double SumStoppedTime;
- public double SumIdleTime;
- public double[] SumTimeCT;
- }
- }
|