public static bool InspectEmergency() { bool isOk = true; //Check Emergency if (ML.IO_GetX(xi.LODR_EmgSw1) || ML.IO_GetX(xi.ETC_EmgSw2) || ML.IO_GetX(xi.ETC_EmgSw3) || ML.IO_GetX(xi.ULDR_EmgSw4)) { ML.MT_EmgStopAll(); ML.MT_SetServoAll(false); if (ML.IO_GetX(xi.LODR_EmgSw1)) { ML.ER_SetErr(ei.ETC_Emergency, "Loader Emergency Switch pushed."); } if (ML.IO_GetX(xi.ETC_EmgSw2)) { ML.ER_SetErr(ei.ETC_Emergency, "Main1 Emergency Switch pushed."); } if (ML.IO_GetX(xi.ETC_EmgSw3)) { ML.ER_SetErr(ei.ETC_Emergency, "Main2 Emergency Switch pushed."); } if (ML.IO_GetX(xi.ULDR_EmgSw4)) { ML.ER_SetErr(ei.ETC_Emergency, "Unloader Emergency Switch pushed."); } isOk = false; } return(isOk); }
public static bool ToStop() //스탑을 하기 위한 함수. { bool[] bRet = new bool[(int)pi.MAX_PART]; for (int i = 0; i < (int)pi.MAX_PART; i++) { string errorMsg = null; try { int step = (int)EN_SEQ_STEP.ToStop; Interpreter.Instance.Process("set(seq.Step," + step.ToString() + ")"); bRet[i] = Interpreter.Instance.Process(Interpreter.script); } catch (ArgumentException exc) { errorMsg = exc.Message; } if (!string.IsNullOrWhiteSpace(errorMsg)) { ML.ER_SetErr(ei.Script_Grammar); return(true); } } for (int i = 0; i < (int)pi.MAX_PART; i++) { if (!bRet[i]) { return(false); } } return(true); }
public static bool InspectMotor() { //Local Var. bool isOk = true; for (int i = 0; i < (int)mi.MAX_MOTR; i++) { if (ML.MT_GetAlarmSgnl(i)) { if (ML.MT_GetServo(i)) { ML.MT_SetServo(i, false); } ML.ER_SetErr(ei.MTR_Alarm, ML.MT_GetName(i)); isOk = false; } if (ML.MT_GetHomeDone(i)) { if (ML.MT_GetNLimSnsr(i)) { ML.ER_SetErr(ei.MTR_NegLim, ML.MT_GetName(i)); isOk = false; } if (ML.MT_GetPLimSnsr(i)) { ML.ER_SetErr(ei.MTR_PosLim, ML.MT_GetName(i)); isOk = false; } } } //Ok. return(isOk); }
private void btGoClick(object sender, EventArgs e) { //Button Bt = sender as Button; //uint uPstnNo = (uint)Bt.Tag; if (!ML.MT_GetStop(m_uMotrId)) { ML.MT_Stop(m_uMotrId); } int iBtnTag = Convert.ToInt32(((Button)sender).Tag); uint uPstnNo = (uint)iBtnTag; bool bRet = true; if (Log.ShowMessageModal("Confirm", "Do you want to Part Move?") != DialogResult.Yes) { return; } //if (MessageBox.Show(new Form{TopMost = true},"Part를 이동하시겠습니까?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; if (CheckSafe != null) { if (!CheckSafe((mi)m_uMotrId, (pv)uPstnNo)) { bRet = false; } } //if(m_uMotrId == (int)mi.IDX_X) bRet = SEQ.IDX.CheckSafe((mi)m_uMotrId, uPstnNo); if (!bRet) { return; } ML.MT_GoAbsRun(m_uMotrId, PM.GetValue(m_uMotrId, uPstnNo), PM.GetValueSpdPer(m_uMotrId, uPstnNo)); }
private void btStop_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace("FrameMotr Form_" + m_eId.ToString() + " Stop Button Clicked", ti.Frm); ML.MT_Stop(m_eId); }
private void btAllHome_Click(object sender, EventArgs e) { if (!OM.MstOptn.bDebugMode) { if (Log.ShowMessageModal("Confirm", "Do you want to All Homming?") != DialogResult.Yes) { return; } MM.SetManCycle(mc.AllHome); } else { DialogResult Rslt; Rslt = MessageBox.Show(new Form() { TopMost = true }, "홈동작을 생략 하겠습니까?", "Confirm", MessageBoxButtons.YesNoCancel); if (Rslt == DialogResult.Yes) { ML.MT_SetServoAll(true); Thread.Sleep(100); for (int i = 0; i < (int)mi.MAX_MOTR; i++) { ML.MT_SetHomeDone(i, true); } } else if (Rslt == DialogResult.No) { MM.SetManCycle(mc.AllHome); } } }
private void tmUpdate_Tick(object sender, EventArgs e) { tmUpdate.Enabled = false; LbStat1.BackColor = ML.MT_GetNLimSnsr(m_eId) ? Color.Lime : Color.Silver; LbStat2.BackColor = ML.MT_GetHomeSnsr(m_eId) ? Color.Lime : Color.Silver; LbStat3.BackColor = ML.MT_GetPLimSnsr(m_eId) ? Color.Lime : Color.Silver; LbStat4.BackColor = ML.MT_GetAlarmSgnl(m_eId) ? Color.Lime : Color.Silver; LbStat5.BackColor = ML.MT_GetServo(m_eId) ? Color.Lime : Color.Silver; LbStat6.BackColor = ML.MT_GetStop(m_eId) ? Color.Lime : Color.Silver; LbStat7.BackColor = ML.MT_GetHomeDone(m_eId) ? Color.Lime : Color.Silver; LbCmdPos.Text = ML.MT_GetCmdPos(m_eId).ToString(); LbEncPos.Text = ML.MT_GetEncPos(m_eId).ToString(); if (SEQ._bRun) { btNeg.Enabled = false; btPos.Enabled = false; } else { btNeg.Enabled = true; btPos.Enabled = true; } if (!this.Visible) { tmUpdate.Enabled = false; return; } tmUpdate.Enabled = true; }
private void btNeg_MouseUp(object sender, MouseEventArgs e) { if (Para.iUnitType == (int)EN_UNIT_TYPE.utJog) { ML.MT_Stop(m_eId); } }
private void tmUpdate_Tick(object sender, EventArgs e) { string sTemp;; tmUpdate.Enabled = false; lbStat1.ForeColor = ML.MT_GetNLimSnsr(m_eId) ? Color.Red : Color.Silver; lbStat2.ForeColor = ML.MT_GetHomeSnsr(m_eId) ? Color.Red : Color.Silver; lbStat3.ForeColor = ML.MT_GetPLimSnsr(m_eId) ? Color.Red : Color.Silver; lbStat4.ForeColor = ML.MT_GetHomeDone(m_eId) ? Color.Red : Color.Silver; lbStat5.ForeColor = ML.MT_GetAlarmSgnl(m_eId) ? Color.Red : Color.Silver; lbStat6.ForeColor = ML.MT_GetStop(m_eId) ? Color.Red : Color.Silver; lbStat7.ForeColor = ML.MT_GetInPosSgnl(m_eId) ? Color.Red : Color.Silver; lbStat8.ForeColor = ML.MT_GetServo(m_eId) ? Color.Red : Color.Silver; sTemp = string.Format("{0:0.0000}", ML.MT_GetCmdPos(m_eId)); lbCmdPos.Text = sTemp; if (!this.Visible) { tmUpdate.Enabled = false; return; } tmUpdate.Enabled = true; }
public static bool InspectEmergency() { bool isOk = true; //Check Emergency if (ML.IO_GetX(xi.ETC_LEmgSw) || ML.IO_GetX(xi.ETC_REmgSw) || ML.IO_GetX(xi.ETC_LDREmgSw) || ML.IO_GetX(xi.ETC_ULDEmgSw)) { ML.MT_EmgStopAll(); ML.MT_SetServoAll(false); if (ML.IO_GetX(xi.ETC_LEmgSw)) { ML.ER_SetErr(ei.ETC_Emergency, "좌측 Emergency Switch 가 눌렸습니다."); } if (ML.IO_GetX(xi.ETC_REmgSw)) { ML.ER_SetErr(ei.ETC_Emergency, "우측 Emergency Switch 가 눌렸습니다."); } if (ML.IO_GetX(xi.ETC_LDREmgSw)) { ML.ER_SetErr(ei.ETC_Emergency, "로더 Emergency Switch 가 눌렸습니다."); } if (ML.IO_GetX(xi.ETC_ULDEmgSw)) { ML.ER_SetErr(ei.ETC_Emergency, "언로더 Emergency Switch 가 눌렸습니다."); } isOk = false; } return(isOk); }
private void btServoOn_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(m_eId.ToString() + " Axis " + sText + " Button Clicked", ti.Frm); ML.MT_SetServo(m_eId, true); }
private void evBwd_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(m_sActrName, sText + " Button Clicked", ti.Frm); ML.CL_Move(m_iActrId, fb.Bwd); }
private void btULDBreakOnOff_Click(object sender, EventArgs e) { const int iBreakAdd = 3; bool bBreakStat = ML.MT_GetY(mi.ULDR_ZClmp, iBreakAdd); ML.MT_SetY(mi.ULDR_ZClmp, iBreakAdd, !bBreakStat); }
private void btInputClick(object sender, EventArgs e) { //Button Bt = sender as Button; //uint uPstnNo = (uint)Bt.Tag; int iBtnTag = Convert.ToInt32(((Button)sender).Tag); uint uPstnNo = (uint)iBtnTag; bool bServo = ML.MT_GetServo(m_uMotrId); double dPos, dInputPos; string sPos; if (bServo) { dPos = ML.MT_GetCmdPos(m_uMotrId); sPos = dPos.ToString("N4"); dInputPos = double.Parse(sPos); } else { dPos = ML.MT_GetEncPos(m_uMotrId); sPos = dPos.ToString("N4"); dInputPos = double.Parse(sPos); } string sText = ((Button)sender).Text; Log.Trace("Form DeviceSet Input Button Clicked (" + ML.MT_GetName(m_uMotrId) + " " + GetName(uPstnNo).Trim() + " " + GetValue(uPstnNo) + " -> " + sPos + ")", ForContext.Frm); //SetValue(uPstnNo , GetCmdPos((int)m_uMotrId)); SetValue(uPstnNo, dInputPos); }
private void btAllHome_Click_1(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(sFormText + sText + " Button Clicked", ti.Frm); if (!OM.MstOptn.bDebugMode) { if (Log.ShowMessageModal("Confirm", "Do you want to All Homming?") != DialogResult.Yes) { return; } MM.SetManCycle(mc.AllHome); } else { DialogResult Rslt; Rslt = MessageBox.Show("홈동작을 생략 하겠습니까?", "Confirm", MessageBoxButtons.YesNoCancel); if (Rslt == DialogResult.Yes) { ML.MT_SetServoAll(true); Thread.Sleep(100); for (int i = 0; i < (int)mi.MAX_MOTR; i++) { ML.MT_SetHomeDone(i, true); } } else if (Rslt == DialogResult.No) { MM.SetManCycle(mc.AllHome); } } }
public void Update(string _sCrntLotNo, EN_SEQ_STAT Stat, string _sCrntDev, bool _bMaint) { long lCrntTime = DateTime.Now.Ticks; long lGapTime = lCrntTime - lPreTime; double dTimeGap = lGapTime / 10000.0f; if (_bMaint) //업타임 계산에서 씀 { Data.FailureTime += dTimeGap; } else if (Stat == EN_SEQ_STAT.Error && ML.ER_GetErrLevel((ei)ML.ER_GetLastErr()) == EN_ERR_LEVEL.Error) { Data.DownTime += dTimeGap; } else if (Stat == EN_SEQ_STAT.Running || Stat == EN_SEQ_STAT.RunWarn) { Data.RunTime += dTimeGap; } else //Stop Init Warnning WorkEnd { Data.IdleTime += dTimeGap; } bool LotChanged = (sPreLot != _sCrntLotNo); //&& sPreLot != "" ; bool LotEnded = LotChanged && _sCrntLotNo == ""; bool LotOpened = LotChanged && sPreLot == ""; if (LotOpened) { //새로운랏 처리. DataClear(); Data.LotNo = _sCrntLotNo; Data.Device = _sCrntDev; Data.StartedAt = DateTime.Now.ToOADate(); } else if (LotEnded) { Data.EndedAt = DateTime.Now.ToOADate(); SaveDataIni(Data.StartedAt); //이위로는 기존랏 처리. } else if (LotChanged) { Data.EndedAt = DateTime.Now.ToOADate(); SaveDataIni(Data.StartedAt); //이위로는 기존랏 처리. //새로운랏 처리. DataClear(); Data.LotNo = _sCrntLotNo; Data.Device = _sCrntDev; Data.StartedAt = DateTime.Now.ToOADate(); } lPreTime = lCrntTime; //sPreLot = ""; sPreLot = _sCrntLotNo; }
public static bool InspectMotor() { //Local Var. bool isOk = true; for (mi i = 0; i < mi.MAX_MOTR; i++) { if (ML.MT_GetAlarmSgnl(i)) { ML.ER_SetErr(ei.MTR_Alarm, ML.MT_GetName(i)); isOk = false; } if (ML.MT_GetHomeDone(i)) { if (ML.MT_GetNLimSnsr(i)) { ML.ER_SetErr(ei.MTR_NegLim, ML.MT_GetName(i)); isOk = false; } if (ML.MT_GetPLimSnsr(i)) { ML.ER_SetErr(ei.MTR_PosLim, ML.MT_GetName(i)); isOk = false; } } } //스텝모터 체크 bool bCheck = false; bool bCheck1 = ML.MT_GetStop(mi.OUT_TRelB); bool bCheck2 = ML.MT_GetStop(mi.OUT_TRelT); bool bCheck3 = ML.MT_GetStop(mi.OUT_YGuid); if (!OM.CmnOptn.bRewindMode) { if (m_tmMotor1.OnDelay(!bCheck1, 10000)) { ML.ER_SetErr(ei.MTR_Alarm, ML.MT_GetName(mi.OUT_TRelB) + " 과부하 정지"); bCheck = true; } if (m_tmMotor2.OnDelay(!bCheck2, 10000)) { ML.ER_SetErr(ei.MTR_Alarm, ML.MT_GetName(mi.OUT_TRelT) + " 과부하 정지"); bCheck = true; } if (m_tmMotor3.OnDelay(!bCheck3, 10000)) { ML.ER_SetErr(ei.MTR_Alarm, ML.MT_GetName(mi.OUT_YGuid) + " 과부하 정지"); bCheck = true; } } if (bCheck) { ML.MT_Stop(mi.OUT_TRelB); ML.MT_Stop(mi.OUT_TRelT); ML.MT_Stop(mi.OUT_YGuid); } //Ok. return(isOk); }
private void lbState_DoubleClick(object sender, EventArgs e) { ML.IO_SetY(m_iYadd, !ML.IO_GetY(m_iYadd)); string sMsg; sMsg = lbTitle.Text + " Button Click " + (ML.IO_GetY(m_iYadd) ? "(ON)" : "(OFF)").ToString(); Log.Trace(sMsg, ti.Frm); }
private void btAction_Click(object sender, EventArgs e) { ML.IO_SetY(m_iYadd, !ML.IO_GetY(m_iYadd)); string sMsg; sMsg = lbTitle.Text + " Button Click " + (ML.IO_GetY(m_iYadd) ? "(ON)" : "(OFF)").ToString(); Log.Trace(sMsg, ForContext.Frm); }
private void btCylinder1_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(sFormText + sText + " Button Clicked", ti.Frm); int iBtnTag = Convert.ToInt32(((Button)sender).Tag); ML.CL_Move((ci)iBtnTag, ML.CL_GetCmd((ci)iBtnTag) == fb.Bwd ? fb.Fwd : fb.Bwd); }
//Functions. //Inspection Machine Status. public static bool InspectMainAir() { bool isOk = true; if (!ML.IO_GetX(xi.ETC_MainAir)) { ML.ER_SetErr((int)ei.ETC_MainAir, "Cheked Main Air"); isOk = false; } return(isOk); }
private void button1_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(sFormText + sText + " Button Clicked", ti.Frm); int iOneshotTime = CConfig.StrToIntDef(tbOneShotTime.Text, 0); ML.MT_OneShotTrg(mi.HEAD_XVisn, true, iOneshotTime); //SML.MT.OneShotTrg((int)mi.PCK_Y, true, iOneshotTime); }
private void btHome_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(m_eId.ToString() + " Axis " + sText + " Button Clicked", ti.Frm); if (Log.ShowMessageModal(m_eId.ToString() + " Axis", "Do you want to Axis Homing?") != System.Windows.Forms.DialogResult.Yes) { return; } ML.MT_GoHome(m_eId); }
private void evFwd_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(m_sActrName + "_" + sText + " Button Clicked", ForContext.Frm); //if (SEQ.LDR.CheckSafe(m_iActrId, fb.Fwd , true) && // SEQ.PKR.CheckSafe(m_iActrId, fb.Fwd , true) && // SEQ.QCB.CheckSafe(m_iActrId, fb.Fwd , true) && // SEQ.SYR.CheckSafe(m_iActrId, fb.Fwd , true) && // SEQ.CHA.CheckSafe(m_iActrId, fb.Fwd , true)) ML.CL_Move(m_iActrId, fb.Fwd); }
public static bool CycleManMove(double _dDist) { string sTemp; if (m_tmCycle.OnDelay(m_iManStep != 0 && m_iManStep == m_iPreManStep && !OM.MstOptn.bDebugMode, 10000)) { sTemp = string.Format("m_iManStep ={0:00}", m_iManStep); sTemp = "Manual Man" + sTemp; ML.ER_SetErr(ei.ETC_ManCycleTO, sTemp); Log.Trace("Manual Man", sTemp); m_iManStep = 0; return(true); } if (m_iManStep != m_iPreManStep) { sTemp = string.Format("Home m_iManStep={0:00}", m_iManStep); Log.Trace("MAnual Man", sTemp); } bool bRet1 = false; bool bRet2 = false; m_iPreManStep = m_iManStep; switch (m_iManStep) { default: sTemp = string.Format("Cycle Default Clear Manual m_iPreManStep ={0:00}", m_iPreManStep); m_iManStep = 0; return(true); case 10: SEQ.WRK.InitCycleStep(); SEQ.OUT.InitCycleStep(); m_iManStep++; return(false); case 11: bRet1 = SEQ.WRK.CycleManMove(_dDist); bRet2 = SEQ.OUT.CycleWind(); if (!bRet1 || !bRet2) { return(false); } m_iManStep = 0; return(true); } }
private void button2_Click_1(object sender, EventArgs e) { //SPC.LOT.Data.Device = RandomStr().toString(); //SPC.ERR.Data.LotNo = GetRandomStr(8); Random ran = new Random(); ML.ER_SetErr((ei)(ran.Next(0, (int)ei.MAX_ERR - 1)), "sunsunsunsun"); //SPC.LOT.SaveDataIni(); }
private void evFwd_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(m_sActrName, sText + " Button Clicked", ti.Frm); if (SEQ.LODR.CheckSafe(m_iActrId, fb.Fwd, true) && SEQ.PREB.CheckSafe(m_iActrId, fb.Bwd, true) && SEQ.VSNZ.CheckSafe(m_iActrId, fb.Bwd, true) && SEQ.PSTB.CheckSafe(m_iActrId, fb.Bwd, true) && SEQ.ULDR.CheckSafe(m_iActrId, fb.Fwd, true)) { ML.CL_Move(m_iActrId, fb.Fwd); } }
public static void Load(string _sJobName) { string sExeFolder = System.AppDomain.CurrentDomain.BaseDirectory; string sDevicePath = sExeFolder + "JobFile\\" + _sJobName + "\\MotrPstn.ini"; string sCommonPath = sExeFolder + "Util\\CommonPstn.ini"; string sMinMaxPath = sExeFolder + "Util\\LimitPstn.ini"; CIniFile IniDevice = new CIniFile(sDevicePath); CIniFile IniCommon = new CIniFile(sCommonPath); CIniFile IniMinMax = new CIniFile(sMinMaxPath); string sSection; //Save Device. for (int m = 0; m < m_iMaxMotr; m++) { //Set Dir. sSection = "Motor" + m.ToString(); for (int i = 0; i < MotrPstn[m].PstnValue.Length; i++) { if (MotrPstn[m].PstnValue[i].bCommon) { IniCommon.Load(sSection, MotrPstn[m].PstnValue[i].sName, ref MotrPstn[m].PstnValue[i].dValue); } else { IniDevice.Load(sSection, MotrPstn[m].PstnValue[i].sName, ref MotrPstn[m].PstnValue[i].dValue); } IniMinMax.Load(sSection, MotrPstn[m].PstnValue[i].sName.Trim() + "_MIN", ref MotrPstn[m].PstnValue[i].dMin); IniMinMax.Load(sSection, MotrPstn[m].PstnValue[i].sName.Trim() + "_MAX", ref MotrPstn[m].PstnValue[i].dMax); IniMinMax.Load(sSection, MotrPstn[m].PstnValue[i].sName.Trim() + "_SPD", ref MotrPstn[m].PstnValue[i].iSpdPer); if (MotrPstn[m].PstnValue[i].dMax <= 0) { MotrPstn[m].PstnValue[i].dMax = ML.MT_GetMaxPosition(m); } if (MotrPstn[m].PstnValue[i].iSpdPer <= 0) { MotrPstn[m].PstnValue[i].iSpdPer = 100; } if (MotrPstn[m].PstnValue[i].iSpdPer > 100) { MotrPstn[m].PstnValue[i].iSpdPer = 100; } //if (MotrPstn[m].PstnValue[i].dMax <= 0 ) //ML.MT_GetInPosSgnl } } }
//Functions. //Inspection Machine Status. public static bool InspectMainAir() { bool isOk = true; //if(!ML.IO_GetY(yi.ETC_MainAirSol)) isOk = false ; if (!ML.IO_GetX(xi.ETC_MainAir)) { isOk = false; } //LOL if (!isOk && m_iSeqStat != EN_SEQ_STAT.ssError) SML.ER.SetErrMsg((int)ei.ETC_MainAir, "Cheked Main Air"); return(isOk); }
private void btForcedHomeEnd_Click(object sender, EventArgs e) { string sText = ((Button)sender).Text; Log.Trace(sFormText + sText + " Button Clicked", ti.Frm); ML.MT_SetServoAll(true); Thread.Sleep(100); for (int i = 0; i < (int)mi.MAX_MOTR; i++) { ML.MT_SetHomeDone(i, true); } }