示例#1
0
        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();
        }
示例#2
0
        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);
        }
示例#3
0
        //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();
        }
示例#4
0
        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;
        }
示例#5
0
        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);
        }
示例#6
0
        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();
        }
示例#7
0
        //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();
        }
示例#8
0
        //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);
        }
示例#9
0
        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");
        }
示例#10
0
        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;
            //    }
            //}
        }
示例#11
0
        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;
        }