private void MakeProcess() { FAExtendECPart.ECResult ecResult = new FAExtendECPart.ECResult(); var seq = Process; seq.Steps.Add("LoadJob", new StepInfo()); seq.Steps.Add("RequestLabelIssue", new StepInfo()); seq.Steps.Add("MovePusherToStandbyPos", new StepInfo()); seq.Steps.Add("AddWork", new StepInfo()); seq.AddItem( delegate(object obj) { if (ProductInfo.VT5080ProductInfo.IsEmptyBox == false) SmallBoxList.Add(ProductInfo.VT5080ProductInfo.SmallBoxID); }); seq.AddItem( delegate(object sender) { if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.DRY_RUN || Equipment.RunMode == FAFramework.Equipment.RunModeTypes.COLD_RUN) { ProductInfo.ECInfo.PackingMasterInfo.LOT_ID = "TEST LOT"; ProductInfo.ECInfo.PackingMasterInfo.PART_ID = "BRAND_BOX"; ProductInfo.ECInfo.PackingMasterInfo.S_BOX_MOQ = 10; ProductInfo.ECInfo.PackingMasterInfo.L_BOX_MOQ = 6; } }); seq.Steps["LoadJob"].StepIndex = //seq.AddItem(LoadJob); seq.AddItem( delegate(FASequence actor, TimeSpan time) { if (IsPreStackTerminated() == true) actor.NextStep(); else { SkipPassToNextMachine = true; actor.NextTerminate(); } }); seq.AddItem(PushSmallBoxes); seq.AddItem( delegate(object obj) { StackCount++; PreStackCount = 0; }); seq.AddItem(ConfirmStackCount); seq.AddItem( delegate(FASequence actor, TimeSpan time) { if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.HOT_RUN) actor.NextStep(); else actor.NextStep("AddWork"); }); seq.Steps["RequestLabelIssue"].StepIndex = seq.AddItem( delegate(object obj) { FAECInfo.LBOX_ISSUE_REQ command = new FAECInfo.LBOX_ISSUE_REQ(); string[] serials = null; if (SmallBoxList.Count > 0) serials = SmallBoxList.Select(x => x).Where(x => string.IsNullOrEmpty(x) == false).ToArray(); if (serials != null) command.S_BOX_LABEL_SERIAL = string.Join(",", serials); else command.S_BOX_LABEL_SERIAL = string.Empty; command.GATE = CurrentLotInfo.GATE; command.LOT_ID = CurrentLotInfo.LOT_ID; command.S_BOX_CNT = serials.Count(); TurnkeyBoxCount = command.S_BOX_CNT * CurrentLotInfo.S_BOX_MOQ; ecResult.Clear(); InterfaceUnit.ECPart.AddCommand(command, ecResult); }); seq.AddItem( delegate(FASequence actor, TimeSpan time) { if (ecResult.ReceiveOk) { if (ecResult.ParsingSuccess) { if (ecResult.ECInfo.LargeBoxIssue.RESULT == FAECInfo.FAECResult.PASS) { ecResult.ECInfo.LargeBoxIssue.CopyTo(ProductInfo.ECInfo.LargeBoxIssue); actor.NextStep(); } else { RaiseAlarm(actor, AlarmLargeBoxIssueFail, string.Format("LARGE BOX ISSUE RESULT FAIL. MSG = {0}, Fail Message = {1}", ecResult.ECInfo.LargeBoxIssue.MSG, ecResult.ParsingFailMessage)); actor.NextStep("RequestLabelIssue"); } } else { RaiseAlarm(actor, AlarmLargeBoxIssueFail, string.Format("LARGE BOX ISSUE RESULT FAIL. MSG = {0}, Fail Message = {1}", ecResult.ECInfo.LargeBoxIssue.MSG, ecResult.ParsingFailMessage)); actor.NextStep("RequestLabelIssue"); } } else if (ecResult.LastAlarmNo != 0) { RaiseAlarm(actor, AlarmLargeBoxIssueFail, string.Format("Data Not Received From EC Server")); actor.NextStep("RequestLabelIssue"); } }); seq.Steps["AddWork"].StepIndex = seq.AddItem( delegate(object obj) { if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.DRY_RUN || Equipment.RunMode == FAFramework.Equipment.RunModeTypes.COLD_RUN) { CuttingPrinterModule.AddWork( new FALabelPrinterModule.ActionInfo(false, ConfigClasses.GlobalConst.TEST_LABEL_FORMAT, LargeBoxIndex, ProductInfo.ECInfo.PackingMasterInfo.LOT_ID)); NormalPrinterModule.AddWork( new FALabelPrinterModule.ActionInfo(false, ConfigClasses.GlobalConst.TEST_LABEL_FORMAT, LargeBoxIndex, ProductInfo.ECInfo.PackingMasterInfo.LOT_ID)); } else if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.HOT_RUN) { bool cuttingLabelSkip = false; if (ProductInfo.ECInfo.LargeBoxIssue.LABEL_CNT == 1) cuttingLabelSkip = true; CuttingPrinterModule.AddWork( new FALabelPrinterModule.ActionInfo(cuttingLabelSkip, ProductInfo.ECInfo.LargeBoxIssue.FORMAT02, LargeBoxIndex, ProductInfo.ECInfo.PackingMasterInfo.LOT_ID)); NormalPrinterModule.AddWork( new FALabelPrinterModule.ActionInfo(false, ProductInfo.ECInfo.LargeBoxIssue.FORMAT01, LargeBoxIndex, ProductInfo.ECInfo.PackingMasterInfo.LOT_ID)); } }); seq.AddItem( delegate(object obj) { ProductInfo.VT5080ProductInfo.SmallBoxList.Clear(); foreach (var item in SmallBoxList) ProductInfo.VT5080ProductInfo.SmallBoxList.Add(item); }); seq.AddItem(Unloading); seq.Steps["MovePusherToStandbyPos"].StepIndex = seq.AddItem(SmallBoxPreStackUnit.SmallBoxPushServo.MoveStandbyPos.Sequence); }
public LBoxIssueControl() { Command = new FAECInfo.LBOX_ISSUE_REQ(); InitializeComponent(); }