Beispiel #1
0
 public void RaiseMcDownEvent(CCCDataLogger data)
 {
     if (OnMcDownTrigger != null)
     {
         OnMcDownTrigger(this, new CCCMcDownTriggerEvent(data));
     }
 }
Beispiel #2
0
 public CCCFinalRunResult(CCCRunResult partRunData, CCCDataLogger runResult, CCCOutput.Trigger_Type type, TIC_BIN_DATA uticData)
 {
     PartUnitData = partRunData;
     RunResult    = runResult;
     TriggerType  = type;
     UticData     = uticData;
 }
Beispiel #3
0
        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;
        }
Beispiel #4
0
 public CCCMcDownTriggerEvent(CCCDataLogger data)
 {
     PartUnitData = data;
 }