private void bn_MoveVisn_Click(object sender, RoutedEventArgs e)
 {
     //Move Polishing Vision Position
     SEQ_SPIND.fn_ReqMoveMotr(EN_MOTR_ID.miSPD_X, EN_COMD_ID.User12);
     SEQ_POLIS.fn_ReqBathImagePos();
     //
     SEQ_SPIND.fn_MoveCylLensCvr(ccFwd);
     SEQ_SPIND.fn_MoveCylIR(tg_shutter.Button.IsChecked == true ? ccBwd : ccFwd);
 }
Esempio n. 2
0
        //---------------------------------------------------------------------------
        public void fn_CrntStateTrace(EN_SEQ_ID part, string title)
        {
            //Local Var.
            string sTemp     = string.Empty;
            string sMsg      = string.Empty;
            string sFileName = string.Format($"[{DateTime.Now:yyMMdd}]CRNT_STATE.log");
            string sPath     = m_sLogRoot + "CRNT_STATE\\" + sFileName;

            try
            {
                //File Open.
                using (Stream stream = new FileStream(sPath, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    StreamWriter sw = new StreamWriter(stream, Encoding.Unicode);
                    sw.BaseStream.Seek(0, SeekOrigin.End);

                    sMsg += string.Format($">>> {DateTime.Now:yyyy-MM-dd HH:mm:dd:ss} <<< \r\n");
                    sMsg += title + "\r\n";

                    sMsg += "----------------------------------------------------------- \r\n";
                    if (part == EN_SEQ_ID.SPINDLE || part == EN_SEQ_ID.ALL)
                    {
                        SEQ_SPIND.fn_SaveLog(ref sTemp); sMsg += sTemp;
                    }
                    if (part == EN_SEQ_ID.POLISH || part == EN_SEQ_ID.ALL)
                    {
                        SEQ_POLIS.fn_SaveLog(ref sTemp); sMsg += sTemp;
                    }
                    if (part == EN_SEQ_ID.CLEAN || part == EN_SEQ_ID.ALL)
                    {
                        SEQ_CLEAN.fn_SaveLog(ref sTemp); sMsg += sTemp;
                    }
                    if (part == EN_SEQ_ID.STORAGE || part == EN_SEQ_ID.ALL)
                    {
                        SEQ_STORG.fn_SaveLog(ref sTemp); sMsg += sTemp;
                    }
                    if (part == EN_SEQ_ID.TRANSFER || part == EN_SEQ_ID.ALL)
                    {
                        SEQ_TRANS.fn_SaveLog(ref sTemp); sMsg += sTemp;
                    }
                    sMsg += "----------------------------------------------------------- \r\n\r\n";

                    sw.Write(sMsg);
                    sw.Flush();
                    sw.Close();
                }
            }

            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(ex.Message);
                ExceptionTrace("<fn_CrntStateTrace>", ex);
            }
        }
        //---------------------------------------------------------------------------
        private void btReset1_Click(object sender, RoutedEventArgs e)
        {
            //
            if (SEQ._bRun)
            {
                MessageBox.Show("Can not use during run.", "WARNING", MessageBoxButton.OK, MessageBoxImage.Warning);
            }

            m_OnShotTimer.IsEnabled = false;

            //Reset
            Button selbtn = sender as Button;
            int    nTag   = Convert.ToInt32(selbtn.Tag);

            if (nTag < 0)
            {
                return;
            }

            switch ((EN_SEQ_ID)nTag)
            {
            case EN_SEQ_ID.SPINDLE:     //Spindle
                SEQ_SPIND.fn_Reset();
                break;

            case EN_SEQ_ID.POLISH:
                SEQ_POLIS.fn_Reset();
                break;

            case EN_SEQ_ID.CLEAN:
                SEQ_CLEAN.fn_Reset();
                break;

            case EN_SEQ_ID.STORAGE:
                SEQ_STORG.fn_Reset();
                break;

            case EN_SEQ_ID.TRANSFER:
                SEQ_TRANS.fn_Reset();
                break;

            case EN_SEQ_ID.ALL:
                SEQ_SPIND.fn_Reset();
                SEQ_POLIS.fn_Reset();
                SEQ_CLEAN.fn_Reset();
                SEQ_STORG.fn_Reset();
                SEQ_TRANS.fn_Reset();
                break;

            default:
                break;
            }
        }
        //---------------------------------------------------------------------------
        //Update Timer
        private void fn_tmUpdate(object sender, EventArgs e)
        {
            //
            m_UpdateTimer.Stop();

            SEQ_SPIND.fn_UpdateOneShot(ref gdOneShot01);
            SEQ_POLIS.fn_UpdateOneShot(ref gdOneShot02);
            SEQ_CLEAN.fn_UpdateOneShot(ref gdOneShot03);
            SEQ_STORG.fn_UpdateOneShot(ref gdOneShot04);
            SEQ_TRANS.fn_UpdateOneShot(ref gdOneShot05);

            //SEQ      .fn_UpdateOneShot(ref gdFlag06);

            //
            m_UpdateTimer.Start();
        }
        //---------------------------------------------------------------------------
        private void fn_tmOnShot(object sender, EventArgs e)
        {
            //
            if (SEQ._bRun)
            {
                m_nOneShotTag           = -1;
                m_OnShotTimer.IsEnabled = false;
                return;
            }

            //
            switch ((EN_SEQ_ID)m_nOneShotTag)
            {
            case EN_SEQ_ID.SPINDLE:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.SPINDLE])
                {
                    SEQ_SPIND.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.POLISH:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.POLISH])
                {
                    SEQ_POLIS.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.CLEAN:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.CLEAN])
                {
                    SEQ_CLEAN.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.STORAGE:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.STORAGE])
                {
                    SEQ_STORG.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.TRANSFER:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.TRANSFER])
                {
                    SEQ_TRANS.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.SYSTEM:
                break;

            case EN_SEQ_ID.ALL:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.SPINDLE])
                {
                    SEQ_SPIND.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.POLISH])
                {
                    SEQ_POLIS.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.CLEAN])
                {
                    SEQ_CLEAN.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.STORAGE])
                {
                    SEQ_STORG.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.TRANSFER])
                {
                    SEQ_TRANS.fn_AutoRun();
                }

                break;

            default:
                break;
            }

            m_nOneShotTag           = -1;
            m_OnShotTimer.IsEnabled = false;
        }
        //---------------------------------------------------------------------------
        private void btOnShot1_Click(object sender, MouseButtonEventArgs e)
        {
            //
            if (SEQ._bRun)
            {
                MessageBox.Show("Can not use during run.", "WARNING", MessageBoxButton.OK, MessageBoxImage.Warning);
            }

            //One Shot
            Button selbtn = sender as Button;
            int    nTag   = Convert.ToInt32(selbtn.Tag);

            if (nTag < 0)
            {
                return;
            }

            //m_nOneShotTag = nTag;
            //m_OnShotTimer.IsEnabled = true;

            //
            switch ((EN_SEQ_ID)nTag)
            {
            case EN_SEQ_ID.SPINDLE:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.SPINDLE])
                {
                    SEQ_SPIND.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.POLISH:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.POLISH])
                {
                    SEQ_POLIS.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.CLEAN:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.CLEAN])
                {
                    SEQ_CLEAN.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.STORAGE:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.STORAGE])
                {
                    SEQ_STORG.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.TRANSFER:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.TRANSFER])
                {
                    SEQ_TRANS.fn_AutoRun();
                }
                break;

            case EN_SEQ_ID.SYSTEM:
                SEQ.fn_CheckRunCon();
                break;

            case EN_SEQ_ID.ALL:
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.SPINDLE])
                {
                    SEQ_SPIND.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.POLISH])
                {
                    SEQ_POLIS.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.CLEAN])
                {
                    SEQ_CLEAN.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.STORAGE])
                {
                    SEQ_STORG.fn_AutoRun();
                }
                if (!FM.m_stMasterOpt.bAutoOff[(int)EN_SEQ_ID.TRANSFER])
                {
                    SEQ_TRANS.fn_AutoRun();
                }
                break;

            default:
                break;
            }
        }
        //---------------------------------------------------------------------------
        private void btUtil01_Click(object sender, RoutedEventArgs e)
        {
            //
            Button selBtn = sender as Button;
            string sName  = selBtn.Name;
            int    nTag   = 0;

            switch (sName)
            {
            case "btUtil01":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_Valve_Si1])
                {
                    SEQ_POLIS.fn_StopUtil();
                }
                else
                {
                    SEQ_POLIS.fn_SupplyUtil(EN_UTIL_KIND.Silica01);
                }
                break;

            case "btUtil02":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_Valve_Si2])
                {
                    SEQ_POLIS.fn_StopUtil();
                }
                else
                {
                    SEQ_POLIS.fn_SupplyUtil(EN_UTIL_KIND.Silica02);
                }
                break;

            case "btUtil03":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_Valve_Si3])
                {
                    SEQ_POLIS.fn_StopUtil();
                }
                else
                {
                    SEQ_POLIS.fn_SupplyUtil(EN_UTIL_KIND.Silica03);
                }
                break;

            case "btSoap":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_Valve_Soap])
                {
                    SEQ_POLIS.fn_StopUtil();
                }
                else
                {
                    SEQ_POLIS.fn_SupplyUtil(EN_UTIL_KIND.Soap);
                }
                break;

            case "btDIPol":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_Valve_DIWater])
                {
                    SEQ_POLIS.fn_SetDIWaterValve(false);
                }
                else
                {
                    SEQ_POLIS.fn_SetDIWaterValve(true);
                }
                break;

            case "btUtilStop":
                SEQ_POLIS.fn_StopUtil();
                break;

            case "btDICln":
                if (IO.YV[(int)EN_OUTPUT_ID.yCLN_Valve_DIWater])
                {
                    SEQ_CLEAN.fn_SetDIWaterValve(false);
                }
                else
                {
                    SEQ_CLEAN.fn_SetDIWaterValve(true);
                }

                break;

            case "btDrainPol":
                //nTag = (int)EN_MAN_LIST.MAN_0421;
                //MAN.fn_ManProcOn(nTag, true, false);

                SEQ_POLIS.fn_SetDrain();

                fn_WriteLog(string.Format($"Manual Button Click Number : {nTag + 1:D4}"));
                Console.WriteLine(string.Format($"Manual Button Click Number : {nTag + 1:D4}"));
                break;

            case "btDrainCln":
                //nTag = (int)EN_MAN_LIST.MAN_0431;
                //MAN.fn_ManProcOn(nTag, true, false);

                SEQ_CLEAN.fn_SetDrain();

                fn_WriteLog(string.Format($"Manual Button Click Number : {nTag + 1:D4}"));
                Console.WriteLine(string.Format($"Manual Button Click Number : {nTag + 1:D4}"));
                break;

            case "btLeakDrain":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_LeakDrain])
                {
                    SEQ_POLIS.fn_SetLeakDrain(false);
                }
                else
                {
                    SEQ_POLIS.fn_SetLeakDrain(true);
                }

                break;

            case "btSuckBack":
                SEQ_POLIS.fn_SetSuckBackOn();
                break;

            case "btSlurryDI":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_Valve_Si1])
                {
                    SEQ_POLIS.fn_StopUtil();
                }
                else
                {
                    SEQ_POLIS.fn_SupplyUtil(EN_UTIL_KIND.SilicaDI);
                }

                break;

            case "btSoapDI":
                if (IO.YV[(int)EN_OUTPUT_ID.yPLS_Valve_Soap])
                {
                    SEQ_POLIS.fn_StopUtil();
                }
                else
                {
                    SEQ_POLIS.fn_SupplyUtil(EN_UTIL_KIND.SoapDI);
                }

                break;

            default:
                break;
            }
        }
Esempio n. 8
0
        private void fn_tmUpdate(object sender, EventArgs e)
        {
            //Timer
            //m_UpdateTimer.Stop();
            m_UpdateTimer.IsEnabled = false;

            //Update Tool Info
            DM.STOR[(int)EN_STOR_ID.POLISH].fn_UpdateMap(ref lbStorg);
            DM.STOR[(int)EN_STOR_ID.CLEAN].fn_UpdateMap(ref lbStorg1);

            //Plate
            DM.MAGA[(int)EN_MAGA_ID.POLISH].fn_UpdateMap(ref lbPoliPlate);
            DM.MAGA[(int)EN_MAGA_ID.CLEAN].fn_UpdateMap(ref lbClenPlate);
            DM.MAGA[(int)EN_MAGA_ID.LOAD].fn_UpdateMap(ref lbLoadPlate);
            DM.MAGA[(int)EN_MAGA_ID.TRANS].fn_UpdateMap(ref lbTransPlate);

            //Magazine
            DM.MAGA[(int)EN_MAGA_ID.MAGA01].fn_UpdateMap(ref lbMagz01);
            DM.MAGA[(int)EN_MAGA_ID.MAGA02].fn_UpdateMap(ref lbMagz02);

            //
            DM.TOOL.fn_UpdateMap(ref lbSpdlPlate, ref lbSpdlTool, ref lbSpdlToolFce, ref lbNeedCheck);

            lbCrntRcpName.Text = string.Format("[{0}] {1}", LOT._bLotOpen ? "OPEN" : "", FM._sRecipeName);
            //lbCrntRcpName.Background  = LOT._bLotOpen? Brushes.Lime : Brushes.WhiteSmoke; //SEQ._bRecipeOpen
            lbRcp.Background = LOT._bLotOpen ? Brushes.LimeGreen : Brushes.WhiteSmoke;

            lbReqPoli.Background = SEQ_SPIND._bReqUtil_Polish ? Brushes.Lime : Brushes.LightGray;

            lbReqPoli.Visibility     = FM.fn_IsLvlMaster() ? Visibility.Visible : Visibility.Hidden; //JUNG/210113
            lbSpdlToolFce.Visibility = FM.fn_IsLvlMaster() ? Visibility.Visible : Visibility.Hidden;
            lbNeedCheck.Visibility   = FM.fn_IsLvlMaster() ? Visibility.Visible : Visibility.Hidden;

            //LDCBTM._dLoadCellValue * ONEGRAM_TO_NEWTON
            upLoadCell.UPValue = string.Format($"{LDCBTM.fn_GetBtmLoadCell(true)} N [{LDCBTM.fn_GetBtmLoadCell()} g]");

            lbRPM.Content = string.Format("SPINDLE RPM : {0} / {1}", SEQ_SPIND.fn_GetSpindleSpeed(), SEQ_SPIND.fn_GetSpindleDir() ? "DIR : FWD" : "DIR : BWD");

            //lbCrntFos.Content = string.Format($"[LOAD CELL] TOP : {IO.fn_GetTopLoadCell(true)} N");
            lbCrntFos.Content = string.Format($"[LOAD CELL] TOP : {IO.fn_GetTopLoadCellAsBTM(true)} N"); //JUNG/200910/

            lbUTLevel.Content = string.Format($"UTIL LEVEL : {IO.fn_GetUTAvgValue():F1}");               //JUNG/200423/Avg Value

            //JUNG/201119/Min,Max Reset
            if (SEQ_SPIND._bReqResetGraph)
            {
                SEQ_SPIND._bReqResetGraph = false;
                fn_SetGraphRange();
            }

            // AddGraph
            if (nGraphTick > ug_LoadCellTop.UGDataCount)
            {
                ug_LoadCellTop.RemoveFirst();
            }
            double dTopLoadCell = IO.fn_GetTopLoadCellAsBTM(true); //IO.fn_GetTopLoadCell(true);

            ug_LoadCellTop.UGValue = $"{dTopLoadCell} N";
            //ug_LoadCellTop.UGMaxValue = 10;
            ug_LoadCellTop.AddPoint(new Point(nGraphTick++, dTopLoadCell));
            ug_LoadCellTop.Refresh();

            lbDCOM.Content = string.Format($"[DCOM] SET: {SEQ_SPIND._dForceRatio:F2} / READ: {IO.fn_GetDCOMValue()}");

            if (SEQ_SPIND._bDrngPolishing)
            {
                lbPoliCnt.Content = string.Format($"POLISHING COUNT : {SEQ_SPIND.fn_GetCurrMillCnt(true)} / CYCLE: {SEQ_SPIND._nPolCycle+1} / STEP : {SEQ_SPIND._nPoliCnt+1}");
            }
            else if (SEQ_SPIND._bDrngCleaning)
            {
                lbPoliCnt.Content = string.Format($"CLEANING COUNT : {SEQ_SPIND.fn_GetCurrMillCnt(true)} / CYCLE : {SEQ_SPIND._nClnCycle+1} / STEP : {SEQ_SPIND._nPoliCnt+1}");
            }

            //lbFlowMT1.Content = string.Format($"[FLOW] POLISHING SLURY :  {IO.fn_GetFlowMeter(EN_AINPUT_ID.aiPOL_SlurryFlow ):F1}");
            //lbFlowMT2.Content = string.Format($"[FLOW] POLISHING DI    :  {IO.fn_GetFlowMeter(EN_AINPUT_ID.aiPOL_DIWaterFlow):F1}");
            //lbFlowMT3.Content = string.Format($"[FLOW] CLEANING  DI    :  {IO.fn_GetFlowMeter(EN_AINPUT_ID.aiCLN_DIWaterFlow):F1}");

            lbLotNo.Text = string.Format($"LOT No : {LOT._sLotNo}");

            lbStartTime.Content = string.Format($"[TOTAL] START TIME : {SEQ_TRANS._sStartTime}");
            lbEndTime.Content   = string.Format($"[TOTAL] END TIME : { SEQ_TRANS._sEndTime   }");

            lbMillStartTime.Content = (SEQ._bFlick3) ? string.Format($"[POL]START TIME : {SEQ_SPIND._sMillStartTime}") : string.Format($"[CLN]START TIME : {SEQ_SPIND._sCleanStartTime}");
            lbMillEndTime.Content   = (SEQ._bFlick3) ? string.Format($"[POL]END TIME : {SEQ_SPIND._sMillEndTime}")     : string.Format($"[CLN]END TIME : { SEQ_SPIND._sCleanEndTime   }");


            if (SEQ_SPIND._bDrngPolishing)
            {
                pbPoli.Visibility    = Visibility.Visible;
                tbPolibar.Visibility = Visibility.Visible;

                pbPoli.Value = SEQ_SPIND.fn_GetMillPercent();
            }
            else
            {
                pbPoli.Visibility    = Visibility.Hidden;
                tbPolibar.Visibility = Visibility.Hidden;
            }

            if (SEQ_SPIND._bDrngCleaning)
            {
                //pbClen   .Visibility = Visibility.Hidden; //삭제
                //tbClenbar.Visibility = Visibility.Hidden;
                //pbClen.Value = ((IO.DATA_ACS_TO_EQ[(int)EN_ACS_TO_EQ.ATE_Milling_Cnt] + (100 * SEQ_SPIND._nCleanCnt)) / 400.0) * 100.0;
            }
            else
            {
                pbClen.Visibility    = Visibility.Hidden;
                tbClenbar.Visibility = Visibility.Hidden;
            }

            //
            lbSpdlState.Content = SEQ_SPIND.fn_GetSeqMsg();
            lbPoliState.Content = SEQ_POLIS.fn_GetSeqMsg();
            lbClenState.Content = SEQ_CLEAN.fn_GetSeqMsg();
            lbTranState.Content = SEQ_TRANS.fn_GetSeqMsg();

            //
            //m_UpdateTimer.Start();
            m_UpdateTimer.IsEnabled = true;
        }