Пример #1
0
        private void Parameter_Click(object sender, EventArgs e)
        {
            if (!mc.check.READY_PUSH(sender))
            {
                return;
            }
            mc.check.push(sender, true);

            if (sender.Equals(BT_Parameter_Load))
            {
                Thread th = new Thread(parameterRecipeOpenDialog);
                th.SetApartmentState(ApartmentState.STA);
                th.Name = "PARARCPOPEN";
                th.Start();
            }
            if (sender.Equals(BT_Parameter_Save))
            {
                Thread th = new Thread(parameterRecipeSaveDialog);
                th.SetApartmentState(ApartmentState.STA);
                th.Name = "PARARCPSAVE";
                th.Start();
            }
            if (sender.Equals(BT_INI_Read))
            {
                mc.swcontrol.readconfig();                      // Swcontrol 를 읽는 부분이 초기화 부분밖에 없어서 추가함. 사실 이 폼에는 필요없는 값들이지만, INI Update 하기 위한 공용 폼으로 사용함.
                UtilityControl.readGraphConfig();
                UtilityControl.readForceConfig();
            }

            refresh();
            mc.check.push(sender, false);
        }
Пример #2
0
        private void FormGraphControl_Load(object sender, EventArgs e)
        {
            this.Left = 620;
            this.Top  = 170;

            mc.swcontrol.readconfig();                                  // Swcontrol 를 읽는 부분이 초기화 부분밖에 없어서 추가함. 사실 이 폼에는 필요없는 값들이지만, INI Update 하기 위한 공용 폼으로 사용함.
            UtilityControl.readGraphConfig();
            UtilityControl.readForceConfig();

            CB_DisplayStartPoint.SelectedIndex = UtilityControl.graphStartPoint;
            CB_DisplayEndPoint.SelectedIndex   = UtilityControl.graphEndPoint;
            CB_DisplayType.SelectedIndex       = UtilityControl.graphDisplayData;
            TB_MeanFilterCount.Text            = UtilityControl.graphMeanFilter.ToString();
            TB_VPPMFilter.Text            = UtilityControl.graphControlDataFilter.ToString();
            TB_LoadcellFilter.Text        = UtilityControl.graphLoadcellDataFilter.ToString();
            CB_DisplayVPPMCommand.Checked = (UtilityControl.graphControlDataDisplay == 0) ? false : true;
            CB_DisplayLoadcell.Checked    = (UtilityControl.graphLoadcellDataDisplay == 0) ? false : true;
        }
Пример #3
0
 private void loadcellScope_DoubleClick(object sender, EventArgs e)
 {
     UtilityControl.readGraphConfig();
 }
Пример #4
0
        private void Control_Click(object sender, EventArgs e)
        {
            if (!mc.check.READY_INITIAL(sender))
            {
                return;
            }
            mc.check.push(sender, true);
            timer.Enabled = true;
            //EVENT.mainFormPanelMode(SPLITTER_MODE.EXPAND, SPLITTER_MODE.CURRENT, SPLITTER_MODE.CURRENT);
            EVENT.mainFormPanelMode(SPLITTER_MODE.NORMAL, SPLITTER_MODE.CURRENT, SPLITTER_MODE.CURRENT);
            #region Initial
            if (sender.Equals(BT_Vision))
            {
                //Derek 수정예정
                // jhlim : 임시
                mc.hdc.req = true; mc.hdc.reqMode = REQMODE.HOMING;
                mc.ulc.req = true; mc.ulc.reqMode = REQMODE.HOMING;
                //mc.init.success.HDC = true;
                //mc.init.success.ULC = true;
            }
            if (sender.Equals(BT_HD))
            {
                mc.hd.req = true; mc.hd.reqMode = REQMODE.HOMING;
            }
            if (sender.Equals(BT_PD))
            {
                //Derek 수정예정
                mc.pd.req = true; mc.pd.reqMode = REQMODE.HOMING;
                //mc.init.success.PD = true;
            }
            if (sender.Equals(BT_SF))
            {
                //Derek 수정예정
                mc.sf.req = true; mc.sf.reqMode = REQMODE.HOMING;
                //mc.init.success.SF = true;
            }
            if (sender.Equals(BT_CV))
            {
                //Derek 수정예정
                // conveyor상에 board가 있는지 확인
                bool[]   bdstate = new bool[4];
                RetValue retval;
                mc.IN.CV.BD_IN(out bdstate[0], out retval.message);
                mc.IN.CV.BD_BUF(out bdstate[1], out retval.message);
                mc.IN.CV.BD_NEAR(out bdstate[2], out retval.message);
                mc.IN.CV.BD_OUT(out bdstate[3], out retval.message);
                if (bdstate[0] == true || bdstate[1] == true || bdstate[2] == true || bdstate[3] == true)
                {
                    string bdmsg = bdstate[0] ? textResource.CV_INPUT_AREA : "";
                    bdmsg += bdstate[1] ? textResource.CV_INPUT_BUFFER : "";
                    bdmsg += bdstate[2] ? textResource.CV_WORK_AREA : "";
                    bdmsg += bdstate[3] ? textResource.CV_OUTPUT_AREA : "";
                    if (mc.para.CV.homingSkip.value == 0)
                    {
                        MessageBox.Show(String.Format(textResource.MB_CV_CANNOT_INITIALIZE, bdmsg));
                        goto INIT_EXIT;
                    }
                }
                mc.cv.req = true; mc.cv.reqMode = REQMODE.HOMING;
                //mc.init.success.CV = true;
            }
            if (sender.Equals(BT_PUSHER))
            {
                mc.ps.req = true; mc.ps.reqMode = REQMODE.HOMING;
            }

            if (sender.Equals(BT_MAGAZINE))
            {
                mc.unloader.req = true; mc.unloader.reqMode = REQMODE.HOMING;
            }
            if (sender.Equals(BT_All))
            {
                mc.init.req = true;
            }
            if (sender.Equals(BT_StandBy))
            {
                mc.swcontrol.readconfig();                      // Swcontrol 를 읽는 부분이 초기화 부분밖에 없어서 추가함. 사실 이 폼에는 필요없는 값들이지만, INI Update 하기 위한 공용 폼으로 사용함.
                UtilityControl.readGraphConfig();
                UtilityControl.readForceConfig();
                RetValue retval;
                for (int i = 0; i < mc.activate.headCnt; i++)
                {
                    mc.hd.tool.jogMove(i, mc.hd.tool.tPos.z[i].XY_MOVING, out retval.message); if (retval.message != RetMessage.OK)
                    {
                        mc.message.alarmMotion(retval.message); goto INIT_EXIT;
                    }
                }
                double posT  = mc.hd.tool.tPos.t[(int)UnitCodeHead.HD1].ZERO;
                double posT2 = mc.hd.tool.tPos.t[(int)UnitCodeHead.HD2].ZERO;
                mc.hd.tool.jogMove(mc.para.CAL.standbyPosition.x.value, mc.para.CAL.standbyPosition.y.value, posT, posT2, out retval.message); if (retval.message != RetMessage.OK)
                {
                    mc.message.alarmMotion(retval.message); goto INIT_EXIT;
                }
                mc.hdc.lighting_exposure(mc.para.HDC.light[(int)LIGHTMODE_HDC.OFF], mc.para.HDC.exposure[(int)LIGHTMODE_HDC.OFF]);              // 동작이 끝난 후 조명을 끈다.
                mc.ulc.lighting_exposure(mc.para.ULC.light[(int)LIGHTMODE_ULC.OFF], mc.para.ULC.exposure[(int)LIGHTMODE_ULC.OFF]);
            }

            #endregion
            RetValue ret;
            mc.OUT.MAIN.IONIZER(true, out ret.message);             // 초기화할때도 Ionizer는 ON
            mc.main.Thread_Polling();
INIT_EXIT:
            EVENT.mainFormPanelMode(SPLITTER_MODE.NORMAL, SPLITTER_MODE.CURRENT, SPLITTER_MODE.CURRENT);
            timer.Enabled = false;
            mc.check.push(sender, false);
        }