//--------------------------------------------------------------------------- public void fn_LotEnd() { m_tEndTime = DateTime.Now; //Lot Data Save... fn_WriteLog(string.Format($"[Lot End] Recipe : {m_sRecipeName} / LOT : {m_sLotNo}"), EN_LOG_TYPE.ltLot); m_dLotEndTime = TICK._GetTickTime(); double dRunTotal = (double)TICK.ConvTimetoSec(m_dLotEndTime - m_dLotStartTime); m_sLogMsg = string.Format($"[Lot Run Time] {TICK.ConvTimeTickToStr(m_dLotEndTime - m_dLotStartTime)} / {dRunTotal} sec"); fn_WriteLog(m_sLogMsg, EN_LOG_TYPE.ltLot); Console.WriteLine(m_sLogMsg); m_sLogMsg = string.Format($" -------------- UPH : {SPC.CalUPH(dRunTotal, 1).ToString("0.0000")} -------------- "); fn_WriteLog(m_sLogMsg, EN_LOG_TYPE.ltLot); Console.WriteLine(m_sLogMsg); //Clear Lot info m_bLotOpen = false; m_sRecipeName = string.Empty; //m_sLotNo = string.Empty; }
//--------------------------------------------------------------------------- public void fn_Update(EN_SEQ_STATE iSeqStat) { //if(SEQ._bRun) return; bool bLotOpen = LOT._bLotOpen; bool bDoorOpen = SEQ.fn_IsAnyDoorOpen(true); //Set Start. m_dSeqSrtTime = TICK._GetTickTime(); //Get During Seq Time. m_dDrngSeqTime = m_dSeqSrtTime - m_dSeqEndTime; EN_ERR_KIND iLastErrKind = (EN_ERR_KIND)EPU.fn_GetKind(EPU._nLastErr); //Clear. //86400000 == 24:00:00 //Day Sequence 별 시간 증가. //dPMTime : PM Time / dDownTime : 비가동 / dRunTime : 가동 switch (iSeqStat) { case EN_SEQ_STATE.RUNNING: case EN_SEQ_STATE.RUNWARN: DAILY_DATA.dRunTime += m_dDrngSeqTime; DAILY_DATA.dTotalTime += m_dDrngSeqTime; break; case EN_SEQ_STATE.INIT: case EN_SEQ_STATE.WARNING: case EN_SEQ_STATE.STOP: case EN_SEQ_STATE.IDLE: if (bLotOpen) { DAILY_DATA.dPMTime += m_dDrngSeqTime; } else { if (bDoorOpen) { DAILY_DATA.dPMTime += m_dDrngSeqTime; } else { DAILY_DATA.dDownTime += m_dDrngSeqTime; } } DAILY_DATA.dTotalTime += m_dDrngSeqTime; break; case EN_SEQ_STATE.ERROR: if (bLotOpen) { DAILY_DATA.dPMTime += m_dDrngSeqTime; } else { if (bDoorOpen) { DAILY_DATA.dPMTime += m_dDrngSeqTime; } else { DAILY_DATA.dDownTime += m_dDrngSeqTime; } } DAILY_DATA.dErrorTime += m_dDrngSeqTime; DAILY_DATA.dTotalTime += m_dDrngSeqTime; break; default: if (bLotOpen) { DAILY_DATA.dPMTime += m_dDrngSeqTime; } else { if (bDoorOpen) { DAILY_DATA.dPMTime += m_dDrngSeqTime; } else { DAILY_DATA.dDownTime += m_dDrngSeqTime; } } DAILY_DATA.dTotalTime += m_dDrngSeqTime; break; } // //DAILY_DATA.dTotalTime += m_dDrngSeqTime; //Set End Time. m_dSeqEndTime = TICK._GetTickTime(); //Check Changing Time. if (!IsChangedDay()) { return; } string sLog = string.Empty; //string sLog = string.Format($"Day Change : MTBI= {CalMTBI(DAILY_DATA.dRunTime, DAILY_DATA.iJamQty)})"); //fn_WriteLog(sLog); sLog = string.Format($"TOTAL TIME : {TICK.ConvTimeTickToStr(SPC.DAILY_DATA.dTotalTime)} / RUN TIME : {TICK.ConvTimeTickToStr(SPC.DAILY_DATA.dRunTime)} / DOWN TIME : {TICK.ConvTimeTickToStr(SPC.DAILY_DATA.dDownTime)} / PM TIME : {TICK.ConvTimeTickToStr(SPC.DAILY_DATA.dPMTime)}"); fn_WriteLog(sLog); //Kill Past Log LOG.fn_DeleteOldFile(); SPC_EFF.ResetData(); DAILY_DATA.ResetData(); }