public PreBuffer(int _iPartId = 0) { m_sPartName = this.GetType().Name; m_tmMain = new CDelayTimer(); m_tmCycle = new CDelayTimer(); m_tmHome = new CDelayTimer(); m_tmToStop = new CDelayTimer(); m_tmToStart = new CDelayTimer(); m_tmDelay = new CDelayTimer(); m_CycleTime = new CTimer[(int)sc.MAX_SEQ_CYCLE]; for (int i = 0; i < (int)sc.MAX_SEQ_CYCLE; i++) { m_CycleTime [i] = new CTimer(); } m_iPartId = _iPartId; Reset(); }
public bool Init(EN_LAN_SEL _eLanSel, string _sParaFolderPath, EN_MTR_SEL [] _eMotrSels, Enum _eMtr, CDioMan _Dio) { m_eLangSel = _eLanSel; m_sParaFolderPath = _sParaFolderPath; Dio = _Dio; Type type = _eMtr.GetType(); Array arrayTemp = Enum.GetValues(type); m_iMaxMotr = arrayTemp.Length - 1; if (m_iMaxMotr < 0) { m_iMaxMotr = 0; } Para = new CParaMotr [m_iMaxMotr]; Stat = new CStatMotr [m_iMaxMotr]; RptTimer = new CDelayTimer[m_iMaxMotr]; CclTimer = new CCycleTimer[m_iMaxMotr]; HomeDone = new bool[m_iMaxMotr]; Homming = new bool[m_iMaxMotr]; //ParaSub = new object[_iMaxMtrCnt]; Mtr = new IMotor[m_iMaxMotr]; for (int i = 0; i < m_iMaxMotr; i++) { Para [i] = new CParaMotr(); Stat [i] = new CStatMotr(); RptTimer[i] = new CDelayTimer(); CclTimer[i] = new CCycleTimer(); HomeDone[i] = false; Homming [i] = false; if (_eMotrSels[i] == EN_MTR_SEL.AXL) { Mtr[i] = new MotionAXL.CMotor(); } else if (_eMotrSels[i] == EN_MTR_SEL.NMC2) { Mtr[i] = new MotionNMC2.CMotor(); } //else if (_eMotrSels[i] == EN_MOTR_SEL.EMCL) //{ //Mtr[i] = new MotionEmcl.CMotor(); //} else { Log.ShowMessage("Err", "_eMotrSel is not defined"); return(false); } Mtr[i].Init(); } LoadSaveAll(true); ApplyParaAll(); return(true); }
//public EN_SEQ_STAT m_iSeqStat; public FormOperation(Panel _pnBase) { InitializeComponent(); this.TopLevel = false; this.Parent = _pnBase; //DispDayList(); DispLotInfo(); tmUpdate.Enabled = true; //btStart.Enabled = LOT.GetLotOpen(); m_tmStartBt = new CDelayTimer(); DM.ARAY[ri.SPLR].SetParent(pnSPLR); DM.ARAY[ri.SPLR].Name = "SPLR"; DM.ARAY[ri.IDXR].SetParent(pnIDXR); DM.ARAY[ri.IDXR].Name = "IDXR"; DM.ARAY[ri.IDXF].SetParent(pnIDXF); DM.ARAY[ri.IDXF].Name = "IDXF"; DM.ARAY[ri.PCKR].SetParent(pnPCKR); DM.ARAY[ri.PCKR].Name = "PCKR"; DM.ARAY[ri.TRYF].SetParent(pnTRYF); DM.ARAY[ri.TRYF].Name = "TRYF"; DM.ARAY[ri.TRYG].SetParent(pnTRYG); DM.ARAY[ri.TRYG].Name = "TRYG"; DM.ARAY[ri.OUTZ].SetParent(pnOUTZ); DM.ARAY[ri.OUTZ].Name = "OUTZ"; DM.ARAY[ri.STCK].SetParent(pnSTCK); DM.ARAY[ri.STCK].Name = "STCK"; DM.ARAY[ri.BARZ].SetParent(pnBARC); DM.ARAY[ri.BARZ].Name = "BARC"; DM.ARAY[ri.INSP].SetParent(pnINSP); DM.ARAY[ri.INSP].Name = "INSP"; DM.ARAY[ri.PSTC].SetParent(pnPSTC); DM.ARAY[ri.PSTC].Name = "PSTC"; //DM.ARAY[ri.MASK].SetParent(pnSTCK); DM.ARAY[ri.PSTC].Name = "PSTC"; //Loader DM.ARAY[ri.SPLR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.SPLR].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.SPLR].SetDisp(cs.Empty, "Empty", Color.Silver); //Index Rear DM.ARAY[ri.IDXR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.IDXR].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.IDXR].SetDisp(cs.Empty, "Empty", Color.Silver); DM.ARAY[ri.IDXR].SetDisp(cs.Vision, "Vision", Color.Yellow); DM.ARAY[ri.IDXR].SetDisp(cs.Good, "Good", Color.Green); DM.ARAY[ri.IDXR].SetDisp(cs.NG0, "V_Empty", Color.Orange); DM.ARAY[ri.IDXR].SetDisp(cs.NG1, "V_MixDevice", Color.Coral); DM.ARAY[ri.IDXR].SetDisp(cs.NG2, "V_UnitID", Color.DarkOrchid); DM.ARAY[ri.IDXR].SetDisp(cs.NG3, "V_UnitDMC1", Color.DarkTurquoise); DM.ARAY[ri.IDXR].SetDisp(cs.NG4, "V_UnitDMC2", Color.Olive); DM.ARAY[ri.IDXR].SetDisp(cs.NG5, "V_GlobtopLeft", Color.DeepSkyBlue); DM.ARAY[ri.IDXR].SetDisp(cs.NG6, "V_GlobtopTop", Color.Crimson); DM.ARAY[ri.IDXR].SetDisp(cs.NG7, "V_GlobtopRight", Color.SlateBlue); DM.ARAY[ri.IDXR].SetDisp(cs.NG8, "V_GlobtopBottom", Color.DarkCyan); DM.ARAY[ri.IDXR].SetDisp(cs.NG9, "V_MatchingError", Color.DarkKhaki); DM.ARAY[ri.IDXR].SetDisp(cs.NG10, "V_UserDefine", Color.DarkGoldenrod); //Index Front DM.ARAY[ri.IDXF].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.IDXF].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.IDXF].SetDisp(cs.Empty, "Empty", Color.Silver); DM.ARAY[ri.IDXF].SetDisp(cs.Vision, "Vision", Color.Yellow); DM.ARAY[ri.IDXF].SetDisp(cs.Good, "Good", Color.Green); DM.ARAY[ri.IDXF].SetDisp(cs.NG0, "V_Empty", Color.Orange); DM.ARAY[ri.IDXF].SetDisp(cs.NG1, "V_MixDevice", Color.Coral); DM.ARAY[ri.IDXF].SetDisp(cs.NG2, "V_UnitID", Color.DarkOrchid); DM.ARAY[ri.IDXF].SetDisp(cs.NG3, "V_UnitDMC1", Color.DarkTurquoise); DM.ARAY[ri.IDXF].SetDisp(cs.NG4, "V_UnitDMC2", Color.Olive); DM.ARAY[ri.IDXF].SetDisp(cs.NG5, "V_GlobtopLeft", Color.DeepSkyBlue); DM.ARAY[ri.IDXF].SetDisp(cs.NG6, "V_GlobtopTop", Color.Crimson); DM.ARAY[ri.IDXF].SetDisp(cs.NG7, "V_GlobtopRight", Color.SlateBlue); DM.ARAY[ri.IDXF].SetDisp(cs.NG8, "V_GlobtopBottom", Color.DarkCyan); DM.ARAY[ri.IDXF].SetDisp(cs.NG9, "V_MatchingError", Color.DarkKhaki); DM.ARAY[ri.IDXF].SetDisp(cs.NG10, "V_UserDefine", Color.DarkGoldenrod); //Picker DM.ARAY[ri.PCKR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.PCKR].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.PCKR].SetDisp(cs.Empty, "Empty", Color.Silver); DM.ARAY[ri.PCKR].SetDisp(cs.Good, "Good", Color.Green); DM.ARAY[ri.PCKR].SetDisp(cs.NG0, "V_Empty", Color.Orange); DM.ARAY[ri.PCKR].SetDisp(cs.NG1, "V_MixDevice", Color.Coral); DM.ARAY[ri.PCKR].SetDisp(cs.NG2, "V_UnitID", Color.DarkOrchid); DM.ARAY[ri.PCKR].SetDisp(cs.NG3, "V_UnitDMC1", Color.DarkTurquoise); DM.ARAY[ri.PCKR].SetDisp(cs.NG4, "V_UnitDMC2", Color.Olive); DM.ARAY[ri.PCKR].SetDisp(cs.NG5, "V_GlobtopLeft", Color.DeepSkyBlue); DM.ARAY[ri.PCKR].SetDisp(cs.NG6, "V_GlobtopTop", Color.Crimson); DM.ARAY[ri.PCKR].SetDisp(cs.NG7, "V_GlobtopRight", Color.SlateBlue); DM.ARAY[ri.PCKR].SetDisp(cs.NG8, "V_GlobtopBottom", Color.DarkCyan); DM.ARAY[ri.PCKR].SetDisp(cs.NG9, "V_MatchingError", Color.DarkKhaki); DM.ARAY[ri.PCKR].SetDisp(cs.NG10, "V_UserDefine", Color.DarkGoldenrod); //Fail Tray DM.ARAY[ri.TRYF].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TRYF].SetDisp(cs.Empty, "Empty", Color.Silver); DM.ARAY[ri.TRYF].SetDisp(cs.NG0, "V_Empty", Color.Orange); DM.ARAY[ri.TRYF].SetDisp(cs.NG1, "V_MixDevice", Color.Coral); DM.ARAY[ri.TRYF].SetDisp(cs.NG2, "V_UnitID", Color.DarkOrchid); DM.ARAY[ri.TRYF].SetDisp(cs.NG3, "V_UnitDMC1", Color.DarkTurquoise); DM.ARAY[ri.TRYF].SetDisp(cs.NG4, "V_UnitDMC2", Color.Olive); DM.ARAY[ri.TRYF].SetDisp(cs.NG5, "V_GlobtopLeft", Color.DeepSkyBlue); DM.ARAY[ri.TRYF].SetDisp(cs.NG6, "V_GlobtopTop", Color.Crimson); DM.ARAY[ri.TRYF].SetDisp(cs.NG7, "V_GlobtopRight", Color.SlateBlue); DM.ARAY[ri.TRYF].SetDisp(cs.NG8, "V_GlobtopBottom", Color.DarkCyan); DM.ARAY[ri.TRYF].SetDisp(cs.NG9, "V_MatchingError", Color.DarkKhaki); DM.ARAY[ri.TRYF].SetDisp(cs.NG10, "V_UserDefine", Color.DarkGoldenrod); //Good Tray DM.ARAY[ri.TRYG].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TRYG].SetDisp(cs.Empty, "Empty", Color.Silver); DM.ARAY[ri.TRYG].SetDisp(cs.Good, "Good", Color.Green); //Out Zone DM.ARAY[ri.OUTZ].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.OUTZ].SetDisp(cs.Good, "Good", Color.Green); //Pre Stack Zone DM.ARAY[ri.PSTC].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.PSTC].SetDisp(cs.Good, "Good", Color.Green); //Stack Zone DM.ARAY[ri.STCK].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.STCK].SetDisp(cs.Empty, "Empty", Color.Silver); DM.ARAY[ri.STCK].SetDisp(cs.Good, "Good", Color.Green); //Barcode Zone DM.ARAY[ri.BARZ].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.BARZ].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.BARZ].SetDisp(cs.Barcode, "Barcode", Color.Tan); DM.ARAY[ri.BARZ].SetDisp(cs.BarRead, "BarRead", Color.Fuchsia); DM.ARAY[ri.BARZ].SetDisp(cs.WorkEnd, "WorkEnd", Color.Blue); DM.ARAY[ri.INSP].SetDisp(cs.NG0, "V_Empty", Color.Orange); DM.ARAY[ri.INSP].SetDisp(cs.NG1, "V_MixDevice", Color.Coral); DM.ARAY[ri.INSP].SetDisp(cs.NG2, "V_UnitID", Color.DarkOrchid); DM.ARAY[ri.INSP].SetDisp(cs.NG3, "V_UnitDMC1", Color.DarkTurquoise); DM.ARAY[ri.INSP].SetDisp(cs.NG4, "V_UnitDMC2", Color.Olive); DM.ARAY[ri.INSP].SetDisp(cs.NG5, "V_GlobtopLeft", Color.DeepSkyBlue); DM.ARAY[ri.INSP].SetDisp(cs.NG6, "V_GlobtopTop", Color.Crimson); DM.ARAY[ri.INSP].SetDisp(cs.NG7, "V_GlobtopRight", Color.SlateBlue); DM.ARAY[ri.INSP].SetDisp(cs.NG8, "V_GlobtopBottom", Color.DarkCyan); DM.ARAY[ri.INSP].SetDisp(cs.NG9, "V_MatchingError", Color.DarkKhaki); DM.ARAY[ri.INSP].SetDisp(cs.NG10, "V_UserDefine", Color.DarkGoldenrod); DM.ARAY[ri.INSP].SetDisp(cs.Good, "Good", Color.Green); DM.ARAY[ri.SPLR].SetMaxColRow(1, 1); DM.ARAY[ri.IDXR].SetMaxColRow(OM.DevInfo.iTRAY_PcktCntX, OM.DevInfo.iTRAY_PcktCntY); DM.ARAY[ri.IDXF].SetMaxColRow(OM.DevInfo.iTRAY_PcktCntX, OM.DevInfo.iTRAY_PcktCntY); DM.ARAY[ri.PCKR].SetMaxColRow(1, 1); DM.ARAY[ri.TRYF].SetMaxColRow(OM.DevInfo.iTRAY_PcktCntX, OM.DevInfo.iTRAY_PcktCntY); DM.ARAY[ri.TRYG].SetMaxColRow(OM.DevInfo.iTRAY_PcktCntX, OM.DevInfo.iTRAY_PcktCntY); DM.ARAY[ri.OUTZ].SetMaxColRow(1, 1); DM.ARAY[ri.PSTC].SetMaxColRow(1, 1); DM.ARAY[ri.STCK].SetMaxColRow(1, OM.DevInfo.iTRAY_StackingCnt); DM.ARAY[ri.BARZ].SetMaxColRow(1, 1); DM.ARAY[ri.INSP].SetMaxColRow(1, OM.DevInfo.iTRAY_PcktCntY); DM.ARAY[ri.PSTC].SetMaxColRow(1, 1); DM.ARAY[ri.MASK].SetMaxColRow(OM.DevInfo.iTRAY_PcktCntX, OM.DevInfo.iTRAY_PcktCntY); DM.ARAY[ri.IDXR].SetMask(DM.ARAY[ri.MASK]); DM.ARAY[ri.IDXF].SetMask(DM.ARAY[ri.MASK]); DM.ARAY[ri.TRYF].SetMask(DM.ARAY[ri.MASK]); DM.ARAY[ri.TRYG].SetMask(DM.ARAY[ri.MASK]); FrmPrint = new FormPrint(); //FrmOracle = new FormOracle(); SEQ.Oracle.SetSendMsgFunc(SendListMsg); DM.LoadMap(); }
public static void Init(int _iWidth, int _iHeight) { Log.StartLogMan(); //Common SM.TPara Para; Para.sParaFolderPath = Directory.GetCurrentDirectory() + "\\Util\\"; //Para.iWidth = 1280; //Para.iHeight = 863; Para.iWidth = _iWidth; Para.iHeight = _iHeight; Para.bTabHides = new bool[6]; switch (Eqp.sLanguage) { default: CLanguage.ChangeLanguage("en"); Para.eLanSel = EN_LAN_SEL.English; break; case "English": CLanguage.ChangeLanguage("en"); Para.eLanSel = EN_LAN_SEL.English; break; case "Korean": CLanguage.ChangeLanguage("ko"); Para.eLanSel = EN_LAN_SEL.Korean; break; case "Chinese": CLanguage.ChangeLanguage("zh-Hans"); Para.eLanSel = EN_LAN_SEL.Chinese; break; } //Error SM.TParaErr Err; Para.Err.bUseErrPic = true; Para.Err.eErr = new ei(); Para.bTabHides[0] = false; //D IO SM.TParaDio Dio; Para.Dio.eDioSel = EN_DIO_SEL.AXL; Para.Dio.eX = new xi(); Para.Dio.eY = new yi(); Para.bTabHides[1] = false; //A IO SM.TParaAio Aio; Para.Aio.eAioSel = EN_AIO_SEL.AXL; Para.Aio.eX = new ax(); Para.Aio.eY = new ay(); Para.Aio.iRangeAMin = 0; Para.Aio.iRangeAMax = 0; Para.bTabHides[2] = false; //TowerLamp Para.bTabHides[3] = false; //Cylinder SM.TParaCyl Cyl; Para.Cyl.eCyl = new ci(); Para.bTabHides[4] = false; //Motor SM.TParaMtr Mtr; Para.Mtr.eMtrSel = new EN_MTR_SEL[(int)mi.MAX_MOTR]; for (int i = 0; i < (int)mi.MAX_MOTR; i++) { Para.Mtr.eMtrSel[i] = EN_MTR_SEL.AXL; } Para.Mtr.eMtr = new mi(); Para.bTabHides[5] = false; SM.Init(Para); OM.Init(); DM.Init(); LOT.Init(); SPC.Init(); PM.Init(Pstn.Cnt); ArrayPos.TPara PosPara; //= new ArrayPos.TPara(); PosPara.dColGrGap = OM.DevInfo.dColGrGap; PosPara.iColCnt = OM.DevInfo.iColCnt; PosPara.iRowCnt = OM.DevInfo.iRowCnt; PosPara.dColPitch = OM.DevInfo.dColPitch; PosPara.dRowPitch = OM.DevInfo.dRowPitch; PosPara.iColGrCnt = OM.DevInfo.iColGrCnt; PosPara.iRowGrCnt = OM.DevInfo.iRowGrCnt; PosPara.dColGrGap = OM.DevInfo.dColGrGap; PosPara.dRowGrGap = OM.DevInfo.dRowGrGap; PosPara.iColSbGrCnt = OM.DevInfo.iColSbGrCnt; PosPara.iRowSbGrCnt = OM.DevInfo.iRowSbGrCnt; PosPara.dRowSbGrGap = OM.DevInfo.dRowSbGrGap; PosPara.dColSbGrGap = OM.DevInfo.dColSbGrGap; if (!OM.StripPos.SetPara(PosPara)) { Log.ShowMessage("Strip Position Err", OM.StripPos.Error); } ML.IO_SetY(yi.ETC_MainAirOnOff, true); //WinApi.TimeBeginPeriod(1); Process.GetCurrentProcess().PriorityBoostEnabled = true; Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime; MainThread.Priority = ThreadPriority.Highest; MainThread.Start(); m_tmToStop = new CDelayTimer(); m_tmToStrt = new CDelayTimer(); m_tmFlickOn = new CDelayTimer(); m_tmFlickOff = new CDelayTimer(); m_tmCloseDoor = new CDelayTimer(); m_tmTemp = new CDelayTimer(); m_cyWorktime = new CCycleTimer(); m_bBtnReset = false; m_bBtnStart = false; m_bBtnStop = false; m_bBtnAir = false; m_bRun = false; m_bRunEdge = false; m_bFlick = false; m_iStep = EN_SEQ_STEP.Idle; m_iSeqStat = EN_SEQ_STAT.Stop; //Run End Buzzer. m_bRunEnd = false; m_Part[(int)pi.LODR] = LODR; m_Part[(int)pi.PREB] = PREB; m_Part[(int)pi.VSNZ] = VSNZ; m_Part[(int)pi.PSTB] = PSTB; m_Part[(int)pi.ULDR] = ULDR; }
private void btLotOpen_Click(object sender, EventArgs e) { if (tbLotNo.Text == "") { Log.ShowMessage("Error", "Lot No is Empty"); return;// tbLotId.Text = DateTime.Now.ToString("HHmmss"); } if (tbMaterialNo.Text == "") { Log.ShowMessage("Error", "Material No is Empty"); return;// tbLotId.Text = DateTime.Now.ToString("HHmmss"); } if (tbLotAlias.Text == "") { Log.ShowMessage("Error", "Lot Alias is Empty"); return;// tbLotId.Text = DateTime.Now.ToString("HHmmss"); } if (tbEmployeeID.Text == "") { Log.ShowMessage("Error", "EmployeeID is Empty"); return;// tbLotId.Text = DateTime.Now.ToString("HHmmss"); } if (!SM.IO_GetX(xi.VISN_Ready)) { Log.ShowMessage("Vision", SM.IO_GetXName(xi.VISN_Ready) + "Vision Ready IO is not On"); return; } OM.EqpStat.bWrapingEnd = false; Log.Trace("LotOpen", "Try"); string LotNo = tbLotNo.Text.Trim(); string Device = tbSelDevice.Text.Trim(); CDelayTimer TimeOut = new CDelayTimer(); TimeOut.Clear(); SEQ.Visn.SendLotStart(LotNo); while (!SEQ.Visn.GetSendCycleEnd(VisnCom.vs.LotStart)) { Thread.Sleep(1); if (TimeOut.OnDelay(5000)) { Log.ShowMessage("Vision", "Lot Start TimeOut"); return; } } OM.EqpStat.iWorkBundle = 0; LOT.TLot Lot; Lot.sEmployeeID = tbEmployeeID.Text.Trim(); Lot.sLotNo = tbLotNo.Text.Trim(); Lot.sMaterialNo = tbMaterialNo.Text.Trim(); Lot.sLotAlias = tbLotAlias.Text.Trim(); LOT.LotOpen(Lot); OM.EqpStat.sLotSttTime = DateTime.Now.ToString("HH:mm:ss"); if (!OM.CmnOptn.bOracleNotUse && !OM.CmnOptn.bIdleRun) { if (SEQ.Oracle.ProcessLotOpen(Lot.sLotNo, Lot.sMaterialNo, Lot.sLotAlias)) { if (!DeviceChange(SEQ.Oracle.Stat.sVisionRecipe_RecipeName)) { Log.ShowMessage("Device", "'" + SEQ.Oracle.Stat.sVisionRecipe_RecipeName + "'" + "dosn't exist!"); } } else { Log.ShowMessage("Oracle", SEQ.Oracle.GetLastMsg()); return; } //유닛아이디 리스트 만들기 시간 오래 걸려서 //별도 스레드 만듬. SEQ.Oracle.ThreadMakeUnitIDDMC1List(); } else { //Device Change에서 함. DM.ARAY[ri.SPLR].SetStat(cs.None); DM.ARAY[ri.IDXR].SetStat(cs.None); DM.ARAY[ri.IDXF].SetStat(cs.None); DM.ARAY[ri.PCKR].SetStat(cs.None); DM.ARAY[ri.TRYF].SetStat(cs.None); DM.ARAY[ri.TRYG].SetStat(cs.Good); DM.ARAY[ri.OUTZ].SetStat(cs.None); DM.ARAY[ri.STCK].SetStat(cs.Empty); DM.ARAY[ri.BARZ].SetStat(cs.None); DM.ARAY[ri.INSP].SetStat(cs.Good); DM.ARAY[ri.PSTC].SetStat(cs.None); Close(); } //if (Log.ShowMessageModal("Confirm", "Do you want to All Homming?") != DialogResult.Yes) ; //20180305 오스람 요청... 랏오픈시에 올홈. MM.SetManCycle(mc.AllHome); }
private void btDownload_Click(object sender, EventArgs e) //HRM-930B 참고 { string sText = ((Button)sender).Text; Log.Trace(sFormText + sText + " Button Clicked", ForContext.Frm); if (tbFromName.Text == "") { return; } //Check Running Status // bool bAllArayNone = DM.ARAY[(int)ri.SLD].CheckAllStat(cs.None); //if (LOT.GetLotOpen()) //{ // //Log.ShowMessage("Error", "자재나 메거진이 남아 있으면 잡파일을 바꿀수 없습니다."); // Log.ShowMessage("Error", "Please check the status of the Lot(Need to Lot End)."); // return; //} //if(OM.DevInfo.sMrkData != "")SEQ.Com[0].SendMsg(OM.DevInfo.sMrkData); if (lvDevice.SelectedIndices.Count <= 0) { return; } int iDeviceSel = lvDevice.SelectedIndices[0]; string sName = lvDevice.Items[iDeviceSel].SubItems[1].Text; string sTemp = "DOWNLOAD JOB FILE. (" + lbSelDevice.Text + ")"; if (OM.GetCrntDev() == sName) { //Log.ShowMessage( "ERROR", "현재 잡파일과 같은 잡파일 입니다."); Log.ShowMessage("ERROR", "This is the current file with the same file."); return; } if (Log.ShowMessageModal("Confirm", "Are you Sure?") != DialogResult.Yes) { return; } SaveDeviceLog(0, OM.GetCrntDev(), sName); //FrmMain.FrmDeviceSet. OM.LoadJobFile(sName); pbStatus.Minimum = 0; //SEQ.Visn.SendJobChange(sName); pbStatus.Minimum = 30; PM.Load(sName); pbStatus.Value = 70; CConfig Config = new CConfig(); //string sExeFolder = System.AppDomain.CurrentDomain.BaseDirectory; //string sDevOptnPath = sExeFolder + "JobFile\\" + sName + "\\TrayMask.ini"; //Config.Load(sDevOptnPath, CConfig.EN_CONFIG_FILE_TYPE.ftIni); //ArrayPos.TPara PosPara ;//= new ArrayPos.TPara(); //PosPara.dColGrGap = OM.DevInfo.dColGrGap ; //PosPara.iColCnt = OM.DevInfo.iColCnt ; //PosPara.iRowCnt = OM.DevInfo.iRowCnt ; //PosPara.dColPitch = OM.DevInfo.dColPitch ; //PosPara.dRowPitch = OM.DevInfo.dRowPitch ; //PosPara.iColGrCnt = OM.DevInfo.iColGrCnt ; //PosPara.iRowGrCnt = OM.DevInfo.iRowGrCnt ; //PosPara.dColGrGap = OM.DevInfo.dColGrGap ; //PosPara.dRowGrGap = OM.DevInfo.dRowGrGap ; //PosPara.iColSbGrCnt= OM.DevInfo.iColSbGrCnt; //PosPara.iRowSbGrCnt= OM.DevInfo.iRowSbGrCnt; //PosPara.dRowSbGrGap= OM.DevInfo.dRowSbGrGap; //PosPara.dColSbGrGap= OM.DevInfo.dColSbGrGap; //if(!OM .StripPos.SetPara(PosPara)) //{ // Log.ShowMessage("Strip Position Err" , OM .StripPos.Error); //} pbStatus.Value = 100; CDelayTimer TimeOut = new CDelayTimer(); TimeOut.Clear(); //while (!SEQ.Visn.GetSendCycleEnd(VisnCom.vs.JobChange)) //{ // Thread.Sleep(1); // if (TimeOut.OnDelay(5000)) // { // ML.ER_SetErr(ei.VSN_ComErr, "JobFile Change TimeOut"); // break; // } //} lbSelDevice.Text = ""; tbFromName.Text = ""; lbCrntDevice.Text = sName; PM.UpdatePstn(true); ////Loader. //DM.ARAY[ri.LODR].SetMaxColRow(1 , OM.DevInfo.iMgzSlotCnt); // ////Prebuffer //DM.ARAY[ri.PREB].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); // ////Vision1 //DM.ARAY[ri.VSN1].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); //DM.ARAY[ri.RLT1].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); //DM.ARAY[ri.WRK1].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); // ////Vision2 //DM.ARAY[ri.VSN2].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); //DM.ARAY[ri.RLT2].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); //DM.ARAY[ri.WRK2].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); // ////Vision3 //DM.ARAY[ri.VSN3].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); //DM.ARAY[ri.RLT3].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); //DM.ARAY[ri.WRK3].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); // ////PostBuffer //DM.ARAY[ri.PSTB].SetMaxColRow(OM.DevInfo.iColCnt, OM.DevInfo.iRowCnt ); // ////Unloader //DM.ARAY[ri.ULDR].SetMaxColRow(1 , OM.DevInfo.iMgzSlotCnt); // //SEQ.VSNZ.JobChange(); //SEQ.VisnRB.SendJobChange(sName); //CDelayTimer TimeOut = new CDelayTimer(); //TimeOut.Clear(); //while(!SEQ.VisnRB.GetSendCycleEnd(VisnCom.vs.JobChange )){ // Thread.Sleep(1); // if(TimeOut.OnDelay(5000)) { // SM.ER_SetErr(ei.VSN_ComErr,"잡체인지 비전 통신 타임아웃"); // break; // } //} //프로그램 강제 종료할때 셋팅 안되서 강제 종료 후 다시 켰을때 종료 이전에 다운로드한 디바이스로 //다시 로딩되서 집어 넣음. 진섭 OM.SaveLastInfo(); }
//Serial통신 //static public RS232_3310g Barcord = new RS232_3310g (4, "Barcord" ); public static void Init() { SM.TPara Para; Para.sParaFolderPath = Directory.GetCurrentDirectory() + "\\Util\\"; Para.iWidth = 1280; Para.iHeight = 863; Para.bTabHides = new bool[6]; Para.bUseErrPic = true; Para.iCntErr = 60; Para.iCntDIn = (int)xi.MAX_INPUT; Para.iCntDOut = (int)yi.MAX_OUTPUT; Para.iCntCylinder = (int)ci.MAX_ACTR; Para.iCntMotr = (int)mi.MAX_MOTR; Para.eLanSel = EN_LAN_SEL.English; Para.eDio = EN_DIO_SEL.AXL; Para.eMotors = new EN_MOTR_SEL[Para.iCntMotr]; Para.eMotors[0] = EN_MOTR_SEL.AXL; Para.eMotors[1] = EN_MOTR_SEL.AXL; Para.eMotors[2] = EN_MOTR_SEL.AXL; Para.eMotors[3] = EN_MOTR_SEL.AXL; Para.eMotors[4] = EN_MOTR_SEL.AXL; Para.eMotors[5] = EN_MOTR_SEL.AXL; Para.eMotors[6] = EN_MOTR_SEL.AXL; Para.eMotors[7] = EN_MOTR_SEL.AXL; Para.eMotors[8] = EN_MOTR_SEL.AXL; //AI TAB 2 Para.eAio = EN_AIO_SEL.AXL; Para.iCntAIn = 0; Para.iCntAOut = 0; Para.iRangeAMin = 0; Para.iRangeAMax = 0; SM.Init(Para); OM.Init(); DM.Init(); LOT.Init(); SPC.Init(); uint[] uaPstnCnt = { (uint)pv.MAX_PSTN_MOTR0, (uint)pv.MAX_PSTN_MOTR1, (uint)pv.MAX_PSTN_MOTR2, (uint)pv.MAX_PSTN_MOTR3, (uint)pv.MAX_PSTN_MOTR4, (uint)pv.MAX_PSTN_MOTR5, (uint)pv.MAX_PSTN_MOTR6, (uint)pv.MAX_PSTN_MOTR7, (uint)pv.MAX_PSTN_MOTR8 }; PM.Init(uaPstnCnt); m_tmToStop = new CDelayTimer(); m_tmToStrt = new CDelayTimer(); m_tmFlickOn = new CDelayTimer(); m_tmFlickOff = new CDelayTimer(); m_tmCloseDoor = new CDelayTimer(); m_tmTemp = new CDelayTimer(); m_tmMotor1 = new CDelayTimer(); m_tmMotor2 = new CDelayTimer(); m_tmMotor3 = new CDelayTimer(); m_bBtnReset = false; m_bBtnStart = false; m_bBtnStop = false; m_bBtnAir = false; m_bRun = false; m_bRunEdge = false; m_bFlick = false; m_iStep = EN_SEQ_STEP.Idle; m_iSeqStat = EN_SEQ_STAT.Stop; //Run End Buzzer. m_bRunEnd = false; m_Part[(int)pi.WRK] = WRK; m_Part[(int)pi.OUT] = OUT; //Temp .PortOpen(); MainThread.Priority = ThreadPriority.Highest; MainThread.Start(); }
//public EN_SEQ_STAT m_iSeqStat; public FormOperation(Panel _pnBase) { InitializeComponent(); //sFormText = this.GetType().Name; this.TopLevel = false; this.Parent = _pnBase; //DispDayList(); DispLotInfo(); MakeDoubleBuffered(pnULDR, true); MakeDoubleBuffered(pnPSHR, true); MakeDoubleBuffered(pnPICK, true); MakeDoubleBuffered(pnPULD, true); MakeDoubleBuffered(pnTULD, true); MakeDoubleBuffered(pnTMRK, true); MakeDoubleBuffered(pnTRJM, true); MakeDoubleBuffered(pnTVSN, true); MakeDoubleBuffered(pnTLDR, true); MakeDoubleBuffered(pnTRJV, true); MakeDoubleBuffered(pnPLDR, true); MakeDoubleBuffered(pnLODR, true); //tmUpdate.Enabled = true; //btStart.Enabled = LOT.GetLotOpen(); m_tmStartBt = new CDelayTimer(); DM.ARAY[ri.LODR].SetParent(pnLODR); DM.ARAY[ri.LODR].Name = "LODR"; DM.ARAY[ri.PLDR].SetParent(pnPLDR); DM.ARAY[ri.PLDR].Name = "PLDR"; DM.ARAY[ri.TLDR].SetParent(pnTLDR); DM.ARAY[ri.TLDR].Name = "TLDR"; DM.ARAY[ri.TVSN].SetParent(pnTVSN); DM.ARAY[ri.TVSN].Name = "TVSN"; DM.ARAY[ri.TMRK].SetParent(pnTMRK); DM.ARAY[ri.TMRK].Name = "TMRK"; DM.ARAY[ri.TULD].SetParent(pnTULD); DM.ARAY[ri.TULD].Name = "TULD"; DM.ARAY[ri.TRJM].SetParent(pnTRJM); DM.ARAY[ri.TRJM].Name = "TRJM"; DM.ARAY[ri.TRJV].SetParent(pnTRJV); DM.ARAY[ri.TRJV].Name = "TRJV"; DM.ARAY[ri.PULD].SetParent(pnPULD); DM.ARAY[ri.PULD].Name = "PULD"; DM.ARAY[ri.ULDR].SetParent(pnULDR); DM.ARAY[ri.ULDR].Name = "ULDR"; DM.ARAY[ri.PICK].SetParent(pnPICK); DM.ARAY[ri.PICK].Name = "PICK"; DM.ARAY[ri.PSHR].SetParent(pnPSHR); DM.ARAY[ri.PSHR].Name = "PSHR"; //DM.ARAY[ri.MASK].SetParent(pnSTCK); DM.ARAY[ri.PSTC].Name = "PSTC"; //Loader DM.ARAY[ri.LODR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.LODR].SetDisp(cs.Work, "Work", Color.Yellow); DM.ARAY[ri.LODR].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.LODR].SetDisp(cs.Empty, "Empty", Color.Silver); //Index Rear DM.ARAY[ri.PLDR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.PLDR].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); //Index Rear DM.ARAY[ri.TLDR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TLDR].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); //Index Front DM.ARAY[ri.TVSN].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TVSN].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.TVSN].SetDisp(cs.Good, "Good", Color.Green); DM.ARAY[ri.TVSN].SetDisp(cs.NGVisn, "Visn Fail", Color.Coral); //Picker DM.ARAY[ri.TMRK].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TMRK].SetDisp(cs.Unknown, "UnKnown", Color.Aqua); DM.ARAY[ri.TMRK].SetDisp(cs.Good, "Good", Color.Green); DM.ARAY[ri.TMRK].SetDisp(cs.NGVisn, "Visn Fail", Color.Coral); DM.ARAY[ri.TMRK].SetDisp(cs.NGMark, "Mark Fail", Color.Red); //Fail Tray DM.ARAY[ri.TULD].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TULD].SetDisp(cs.Good, "Good", Color.Lime); DM.ARAY[ri.TULD].SetDisp(cs.NGVisn, "Visn Fail", Color.Coral); DM.ARAY[ri.TULD].SetDisp(cs.NGMark, "Mark Fail", Color.Red); //Good Tray DM.ARAY[ri.TRJM].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TRJM].SetDisp(cs.NGVisn, "Visn Fail", Color.Coral); DM.ARAY[ri.TRJM].SetDisp(cs.NGMark, "Mark Fail", Color.Red); //Out Zone DM.ARAY[ri.TRJV].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.TRJV].SetDisp(cs.NGVisn, "Visn Fail", Color.Coral); //Out Zone DM.ARAY[ri.PULD].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.PULD].SetDisp(cs.Good, "Good", Color.Lime); //Pre Stack Zone DM.ARAY[ri.ULDR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.ULDR].SetDisp(cs.Work, "Work", Color.Yellow); DM.ARAY[ri.ULDR].SetDisp(cs.WorkEnd, "WorkEnd", Color.Blue); DM.ARAY[ri.ULDR].SetDisp(cs.Empty, "Empty ", Color.Silver); DM.ARAY[ri.PICK].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.PICK].SetDisp(cs.Empty, "Empty ", Color.Silver); DM.ARAY[ri.PICK].SetDisp(cs.Unknown, "Unknown ", Color.Aqua); DM.ARAY[ri.PSHR].SetDisp(cs.None, "None", Color.White); DM.ARAY[ri.PSHR].SetDisp(cs.Good, "Good ", Color.Lime); DM.LoadMap(); var path = new System.Drawing.Drawing2D.GraphicsPath(); path.AddEllipse(0, 0, pnTMRK.Width, pnTMRK.Height); pnTMRK.Region = new Region(path); pnTULD.Region = new Region(path); pnTRJM.Region = new Region(path); pnTVSN.Region = new Region(path); pnTLDR.Region = new Region(path); pnTRJV.Region = new Region(path); pnPLDR.Region = new Region(path); pnPSHR.Region = new Region(path); pnPICK.Region = new Region(path); pnPULD.Region = new Region(path); }
static public MD_X1000 LaserMarking; //= new MD_X1000 (0, "LaserMarking" ); //static public RS232_3310g BarcordLODR = new RS232_3310g (1, "BarcordLODR" ); //static public RS232_3310g BarcordBARZ = new RS232_3310g (2, "BarcordBARZ" ); //static public DispensePattern DispPtrn = new DispensePattern(); //static public HeightPattern HghtPtrn = new HeightPattern (); //static public CSerialPort[] Com = new CSerialPort[(int)si.MAX_RS232]; public static void Init() { //Common SM.TPara Para; Para.sParaFolderPath = Directory.GetCurrentDirectory() + "\\Util\\"; Para.iWidth = 1280; Para.iHeight = 863; Para.bTabHides = new bool[6]; //Para.eLanSel = EN_LAN_SEL.Chinese; //Para.eLanSel = EN_LAN_SEL.Korean; switch (Eqp.sLanguage) { default: CLanguage.ChangeLanguage("en"); Para.eLanSel = EN_LAN_SEL.English; break; case "English": CLanguage.ChangeLanguage("en"); Para.eLanSel = EN_LAN_SEL.English; break; case "Korean": CLanguage.ChangeLanguage("ko"); Para.eLanSel = EN_LAN_SEL.Korean; break; case "Chinese": CLanguage.ChangeLanguage("zh-Hans"); Para.eLanSel = EN_LAN_SEL.Chinese; break; } //Error SM.TParaErr Err; Para.Err.bUseErrPic = true; Para.Err.eErr = new ei(); Para.bTabHides[0] = false; //D IO SM.TParaDio Dio; Para.Dio.eDioSel = EN_DIO_SEL.AXL; Para.Dio.eX = new xi(); Para.Dio.eY = new yi(); Para.bTabHides[1] = false; //A IO SM.TParaAio Aio; Para.Aio.eAioSel = EN_AIO_SEL.AXL; Para.Aio.eX = new ax(); Para.Aio.eY = new ay(); Para.Aio.iRangeAMin = 0; Para.Aio.iRangeAMax = 0; Para.bTabHides[2] = false; //TowerLamp Para.bTabHides[3] = false; //Cylinder SM.TParaCyl Cyl; Para.Cyl.eCyl = new ci(); Para.bTabHides[4] = false; //Motor SM.TParaMtr Mtr; Para.Mtr.eMtrSel = new EN_MTR_SEL[(int)mi.MAX_MOTR]; for (int i = 0; i < (int)mi.MAX_MOTR; i++) { Para.Mtr.eMtrSel[i] = EN_MTR_SEL.AXL; } Para.Mtr.eMtr = new mi(); Para.bTabHides[5] = false; // //SM.InitErr(Para,Err); //SM.InitDio(Para,Dio); //SM.InitAio(Para,Aio); //SM.InitCyl(Para,Cyl); //SM.InitMtr(Para,Mtr); SM.Init(Para); OM.Init(); DM.Init(); LOT.Init(); SPC.Init(); PM.Init(PM.PstnCnt); LaserMarking = new MD_X1000(2, xi.LSR_Error, xi.LSR_Warning, xi.LSR_TrgReady, xi.LSR_InPrint, xi.LSR_PrintEnd, xi.LSR_CheckOk, xi.LSR_CheckNg, yi.LSR_Triger, yi.LSR_Check); EmbededExe.CameraInit(); //public MD_X1000(int _iPortId , // xi _xError , // xi _xWarning, // xi _xReady , // xi _xWorking, // xi _xWorkEnd, // xi _xCheckOk, // xi _xCheckNg, // yi _yTrigger, // yi _yCheck ) //VisnComm.TPara VisnPara = new VisnComm.TPara(); //VisnPara.sVisnPcName = "Visn" ; //파일저장시에 파일명에 삽입. //VisnPara.sVisnFolder = "c:\\Data" ; //파일저장 하는 폴더. //VisnPara.xVisn_Ready = xi.VISN_Ready ; //VisnPara.xVisn_Busy = xi.VISN_Busy ; //VisnPara.yVisn_Command = yi.VISN_Command ; //VisnPara.yVisn_JobChange = yi.VISN_Change ; //VisnPara.yVisn_Reset = yi.VISN_Reset ; //VisnPara.yVisn_ManMode = yi.VISN_ManMode ; //VisnPara.yVisn_ManInsp = yi.VISN_ManInsp ; //Visn.Init(ref VisnPara); MainThread.Priority = ThreadPriority.Highest; //MainThread.Priority = ThreadPriority.Normal; MainThread.Start(); m_tmToStop = new CDelayTimer(); m_tmToStrt = new CDelayTimer(); m_tmFlickOn = new CDelayTimer(); m_tmFlickOff = new CDelayTimer(); m_tmCloseDoor = new CDelayTimer(); m_tmTemp = new CDelayTimer(); m_cyWorktime = new CCycleTimer(); VC.Init(); m_bBtnReset = false; m_bBtnStart = false; m_bBtnStop = false; m_bBtnAir = false; m_bRun = false; m_bRunEdge = false; m_bFlick = false; m_iStep = EN_SEQ_STEP.Idle; m_iSeqStat = EN_SEQ_STAT.Stop; //Run End Buzzer. m_bRunEnd = false; m_Part[(int)pi.LODR] = LODR; //m_Part[(int)pi.LODR].SetPartId((int)pi.LODR + ti.Max); m_Part[(int)pi.PLDR] = PLDR; //m_Part[(int)pi.LODR].SetPartId((int)pi.LODR + ti.Max); m_Part[(int)pi.MARK] = MARK; //m_Part[(int)pi.IDXR].SetPartId((int)pi.IDXR + ti.Max); m_Part[(int)pi.VISN] = VISN; //m_Part[(int)pi.IDXF].SetPartId((int)pi.IDXF + ti.Max); m_Part[(int)pi.TBLE] = TTBL; //m_Part[(int)pi.TOOL].SetPartId((int)pi.TOOL + ti.Max); m_Part[(int)pi.PULD] = PULD; //m_Part[(int)pi.IDXF].SetPartId((int)pi.IDXF + ti.Max); m_Part[(int)pi.ULDR] = ULDR; //m_Part[(int)pi.STCK].SetPartId((int)pi.STCK + ti.Max); m_Part[(int)pi.REJM] = REJM; //m_Part[(int)pi.STCK].SetPartId((int)pi.STCK + ti.Max); m_Part[(int)pi.REJV] = REJV; //m_Part[(int)pi.STCK].SetPartId((int)pi.STCK + ti.Max); //m_Part[(int)pi.] = BARZ; //m_Part[(int)pi.BARZ].SetPartId((int)pi.BARZ + ti.Max); //LoadCell .PortOpen(); //Dispr .PortOpen(); //HeightSnsr .PortOpen(); //BarcordLODR.PortOpen(); //BarcordBARZ.PortOpen(); //Temp .PortOpen(); //ML.IO_SetY(yi.SSTG_HeaterOn,true); //DateTime Time = DateTime.Now ; //bool bConnect = SEQ.Oracle.OpenDB(OM.CmnOptn.sOracleIP , OM.CmnOptn.sOraclePort , OM.CmnOptn.sOracleID , OM.CmnOptn.sOraclePassword);//"192.168.1.77" , "1521" , "hr","hr" //TimeSpan Span = DateTime.Now - Time ; //double dVal = Span.TotalMilliseconds ; //if(!OM.CmnOptn.bOracleNotUse && !bConnect) Log.ShowMessage("Oracle","DB Connection Error"); }
private void btDownload_Click(object sender, EventArgs e) //HRM-930B 참고 { string sText = ((Button)sender).Text; Log.Trace(sFormText + sText + " Button Clicked", ti.Frm); if (tbFromName.Text == "") { return; } //Check Running Status // bool bAllArayNone = DM.ARAY[(int)ri.SLD].CheckAllStat(cs.None); if (LOT.GetLotOpen()) { Log.ShowMessage("Error", "자재나 메거진이 남아 있으면 잡파일을 바꿀수 없습니다."); //Log.ShowMessage("Error", "Cannot change the working files."); return; } //if(OM.DevInfo.sMrkData != "")SEQ.Com[0].SendMsg(OM.DevInfo.sMrkData); if (lvDevice.SelectedIndices.Count <= 0) { return; } int iDeviceSel = lvDevice.SelectedIndices[0]; string sName = lvDevice.Items[iDeviceSel].SubItems[1].Text; string sTemp = "DOWNLOAD JOB FILE. (" + lbSelDevice.Text + ")"; if (OM.GetCrntDev() == sName) { Log.ShowMessage("ERROR", "현재 잡파일과 같은 잡파일 입니다."); //Log.ShowMessage("ERROR", "This is the current file with the same file."); return; } if (Log.ShowMessageModal("Confirm", "Are you Sure?") != DialogResult.Yes) { return; } SaveDeviceLog(0, OM.GetCrntDev(), sName); //FrmMain.FrmDeviceSet. OM.LoadJobFile(sName); pbStatus.Minimum = 0; //SEQ.Visn.SendJobChange(sName); pbStatus.Minimum = 30; PM.Load(sName); pbStatus.Value = 70; CConfig Config = new CConfig(); //string sExeFolder = System.AppDomain.CurrentDomain.BaseDirectory; //string sDevOptnPath = sExeFolder + "JobFile\\" + sName + "\\TrayMask.ini"; //Config.Load(sDevOptnPath, CConfig.EN_CONFIG_FILE_TYPE.ftIni); //DM.ARAY[ri.MASK].Load(Config, true); pbStatus.Value = 100; CDelayTimer TimeOut = new CDelayTimer(); TimeOut.Clear(); //while (!SEQ.Visn.GetSendCycleEnd(VisnCom.vs.JobChange)) //{ // Thread.Sleep(1); // if (TimeOut.OnDelay(5000)) // { // ML.ER_SetErr(ei.VSN_ComErr, "JobFile Change TimeOut"); // break; // } //} lbSelDevice.Text = ""; tbFromName.Text = ""; lbCrntDevice.Text = sName; PM.UpdatePstn(true); //OM.TrayMask.SetMaxColRow(OM.DevInfo.iTRAY_PcktCntX, OM.DevInfo.iTRAY_PcktCntY); //OM.TrayMask.SetMaxColRow(OM.DevInfo.iTRAY_PcktCntX, OM.DevInfo.iTRAY_PcktCntY); //OM.SaveTrayMask(); //SEQ.VisnRB.SendJobChange(sName); //CDelayTimer TimeOut = new CDelayTimer(); //TimeOut.Clear(); //while(!SEQ.VisnRB.GetSendCycleEnd(VisnCom.vs.JobChange )){ // Thread.Sleep(1); // if(TimeOut.OnDelay(5000)) { // SM.ER_SetErr(ei.VSN_ComErr,"잡체인지 비전 통신 타임아웃"); // break; // } //} }
public static void Init() { SML.TPara Para; Para.sParaFolderPath = Directory.GetCurrentDirectory() + "\\Util\\"; Para.iWidth = 1280; Para.iHeight = 863; Para.bTabHides = new bool[6]; Para.bUseErrPic = true; Para.iCntErr = 60; Para.iCntDIn = 96; Para.iCntDOut = 64; Para.iCntCylinder = (int)ci.MAX_ACTR; Para.iCntMotr = (int)mi.MAX_MOTR; Para.eLanSel = EN_LAN_SEL.English; Para.eDio = EN_DIO_SEL.AXL; Para.eMotors = new EN_MOTR_SEL[Para.iCntMotr]; Para.eMotors[0] = EN_MOTR_SEL.AXL; Para.eMotors[1] = EN_MOTR_SEL.AXL; Para.eMotors[2] = EN_MOTR_SEL.AXL; Para.eMotors[3] = EN_MOTR_SEL.AXL; Para.eMotors[4] = EN_MOTR_SEL.AXL; Para.eMotors[5] = EN_MOTR_SEL.AXL; Para.eMotors[6] = EN_MOTR_SEL.AXL; Para.eMotors[7] = EN_MOTR_SEL.AXL; Para.eMotors[8] = EN_MOTR_SEL.AXL; Para.eMotors[9] = EN_MOTR_SEL.AXL; SML.Init(Para); OM.Init(); DM.Init(); LOT.Init(); SPC.Init(); PM.Init(PM.PstnCnt); VisnCom.TPara VisnPara = new VisnCom.TPara(); VisnPara.sVisnPcName = "Visn"; //파일저장시에 파일명에 삽입. VisnPara.sVisnFolder = "c:\\Data"; //파일저장 하는 폴더. Visn.Init(ref VisnPara); MainThread.Priority = ThreadPriority.Highest; MainThread.Start(); m_tmToStop = new CDelayTimer(); m_tmToStrt = new CDelayTimer(); m_tmFlickOn = new CDelayTimer(); m_tmFlickOff = new CDelayTimer(); m_tmCloseDoor = new CDelayTimer(); m_tmTemp = new CDelayTimer(); m_cyTrayWorktime = new CCycleTimer(); m_bBtnReset = false; m_bBtnStart = false; m_bBtnStop = false; m_bBtnAir = false; m_bRun = false; m_bRunEdge = false; m_bFlick = false; m_iStep = EN_SEQ_STEP.Idle; m_iSeqStat = EN_SEQ_STAT.Stop; //Run End Buzzer. m_bRunEnd = false; m_Part[(int)pi.LODR] = LODR; m_Part[(int)pi.IDXR] = IDXR; m_Part[(int)pi.IDXF] = IDXF; m_Part[(int)pi.TOOL] = TOOL; m_Part[(int)pi.STCK] = STCK; m_Part[(int)pi.BARZ] = BARZ; BarcordLODR.PortOpen(); BarcordBARZ.PortOpen(); DateTime Time = DateTime.Now; bool bConnect = SEQ.Oracle.Init(OM.CmnOptn.sOracleIP, OM.CmnOptn.sOraclePort, OM.CmnOptn.sOracleID, OM.CmnOptn.sOraclePassword, OM.CmnOptn.sOracleSID); //SEQ.Oracle.OpenDB();//"192.168.1.77" , "1521" , "hr","hr" if (!bConnect) { Log.ShowMessage("Oracle Open Failed!", SEQ.Oracle.GetLastMsg()); } TimeSpan Span = DateTime.Now - Time; double dVal = Span.TotalMilliseconds; }