public CCCOutput(string outputName, int countPerPeriod, double alpha, double yeildTarget, double yeildLimit, int defectLimit, bool TurnOnTicDefect, bool TurnOnCrdlDefect) { _outputName = Name; _isCalculateTicDefect = TurnOnTicDefect; _isCalculateCrdlDefect = TurnOnCrdlDefect; _cccDefect = new CCCResult("TIC_Defect", countPerPeriod, alpha, yeildTarget, yeildLimit, defectLimit); }
public CCCOutput(CCCParameter setting, CCCCounterInfo counterInfo, bool TurnOnTicDefect, bool TurnOnCrdlDefect) { _outputName = Name; _isCalculateTicDefect = TurnOnTicDefect; _isCalculateCrdlDefect = TurnOnCrdlDefect; _cccDefect = new CCCResult("TIC_Defect", setting.TestRunGroup, setting.Alpha, setting.YeildTarget, setting.YeildLimit, setting.DefectCounterLimit); _cccDefect.OutputCounter = counterInfo.CCCCounterForHst; }
public CCCOutput(string outputName) { _outputName = Name; _cccDefect = new CCCResult("TIC_Defect"); }
public CCCOutput(CCCParameter setting) { _outputName = Name; _cccDefect = new CCCResult("TIC_Defect", setting.TestRunGroup, setting.Alpha, setting.YeildTarget, setting.YeildLimit, setting.DefectCounterLimit); }
public void UpdateData(CCCResult result) { //Mar-2020 change triggering count var TotalMCDownTrigger = HSTMachine.Workcell.TICCccControl.CCCControlTicMc1.CccResult.OutputCounter.MCDownTriggering + HSTMachine.Workcell.TICCccControl.CCCControlTicMc2.CccResult.OutputCounter.MCDownTriggering; var TotalTICTrigger = HSTMachine.Workcell.TICCccControl.CCCControlTicMc1.CccResult.OutputCounter.TicDefactCounter + HSTMachine.Workcell.TICCccControl.CCCControlTicMc2.CccResult.OutputCounter.TicDefactCounter; string triggerType = string.Empty; triggerType = result.OutputCounter.McTriggerType == Trigger_Type.CRDL ? "HIGH_PERCENT_CRDL" : "HIGH_PERCENT_TIC"; decimal mc1FailPartCounter = decimal.Parse(HSTMachine.Workcell.TICCccControl.CCCControlTicMc1.CccResult.OutputCounter.AdaptiveDefectCounter.ToString()); decimal totalParts = decimal.Parse(result.AdaptivePartCounter.ToString()); decimal mc2FailPartCounter = decimal.Parse(HSTMachine.Workcell.TICCccControl.CCCControlTicMc2.CccResult.OutputCounter.AdaptiveDefectCounter.ToString()); decimal currentYield = 0; var totalcount = (totalParts - mc1FailPartCounter) * 100; try { if (totalParts != 0) { currentYield = decimal.Divide(totalcount, totalParts); } } catch (Exception) { } result.SetAdaptiveNumber(); if (result.OutputCounter.LastCCCOutputUTICtime == null) { result.OutputCounter.LastCCCOutputUTICtime = ""; } CCCDataLogger dataUpdate = new CCCDataLogger { DateTime = DateTime.Now.ToString(), TEST_RUN_COUNT = HSTMachine.Workcell.HSTSettings.CccParameterSetting.TestRunGroup.ToString(), YIELD_TARGET = HSTMachine.Workcell.HSTSettings.CccParameterSetting.YeildTarget.ToString(), YIELD_LIMIT = HSTMachine.Workcell.HSTSettings.CccParameterSetting.YeildLimit.ToString(), DEFECT_LIMIT = HSTMachine.Workcell.HSTSettings.CccParameterSetting.DefectCounterLimit.ToString(), LCL = HSTMachine.Workcell.HSTSettings.CccParameterSetting.Alpha.ToString(), PART_COUNT = ((result.OutputCounter.LastRunGoodCounter == 0) ? 0 : result.OutputCounter.LastRunGoodCounter - 1).ToString(), PART_LIMIT_YIELD = result.YieldTest.ToString(), // not define yet PART_TRIGGER = result.AdaptiveNumber.ToString(), // not define yet DEFECT_COUNTER = result.OutputCounter.AdaptiveDefectCounter.ToString(), //not define yet CCC_TRIGGERING = result.OutputCounter.InternalTriggerCounter.ToString(), // not define yet TIC_TRIGGERING_COUNT = result.OutputCounter.TicDefactCounter.ToString(), HIGH_CRDL_PERCENT_TRIGGERING_COUNT = result.OutputCounter.HstHighPercentTriggeringCounter.ToString(), CRDL_TRIGGERING_COUNT = result.OutputCounter.HstDefactCounter.ToString(), MC_TRIGGERING_COUNT = result.OutputCounter.MCDownTriggering.ToString(), MC_TRIGGER_TYPE = result.OutputCounter.McTriggerType.ToString(), TRIGERING_TYPE = triggerType, FAILURE_TYPE = result.OutputCounter.TriggerFailureType.ToString(), ALL_MC_TRIGGER = TotalMCDownTrigger.ToString(), PART_RUNNING = result.AdaptivePartCounter.ToString(), TotalParts = totalParts.ToString(), FailM1PartCounter = mc1FailPartCounter.ToString(), FailM2PartCounter = mc2FailPartCounter.ToString(), CurrentYield = currentYield.ToString(), ALL_TIC_TRIGGERING = TotalTICTrigger.ToString(), uTICdate = result.OutputCounter.LastCCCOutputUTICtime.ToString() }; result.CCCDataLogger = dataUpdate; CccResult.CCCDataLogger = dataUpdate; }