Initial commit
This commit is contained in:
152
Handler/Project/RunCode/_97_Utility.cs
Normal file
152
Handler/Project/RunCode/_97_Utility.cs
Normal file
@@ -0,0 +1,152 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using AR;
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
Dialog.fFinishJob fsum = null;
|
||||
void HideSummary()
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.BeginInvoke(new MethodInvoker(HideSummary), null);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fsum != null)
|
||||
{
|
||||
if (fsum.IsDisposed == false && fsum.Disposing == false)
|
||||
{
|
||||
fsum.Close();
|
||||
fsum.Dispose();
|
||||
}
|
||||
fsum = null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
void ShowSummary()
|
||||
{
|
||||
if (fsum == null || fsum.IsDisposed || fsum.Disposing == true)
|
||||
{
|
||||
fsum = new Dialog.fFinishJob();
|
||||
fsum.FormClosed += (s1, e1) =>
|
||||
{
|
||||
//해당 폼이 닫힐때 처리한다.
|
||||
if (PUB.sm.Step == eSMStep.FINISH)
|
||||
{
|
||||
//완료상때일때 닫으면
|
||||
Run_MotionPositionReset();
|
||||
}
|
||||
};
|
||||
fsum.Show();
|
||||
}
|
||||
else
|
||||
{
|
||||
fsum.Show();
|
||||
fsum.Activate();
|
||||
}
|
||||
}
|
||||
|
||||
void UserStepWait(eWorkPort target)
|
||||
{
|
||||
if (PUB.flag.get(eVarBool.FG_USERSTEP))
|
||||
{
|
||||
if (target == eWorkPort.Left)
|
||||
{
|
||||
if (LockUserL.WaitOne(1))
|
||||
LockUserL.Reset();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (LockUserR.WaitOne(1))
|
||||
LockUserR.Reset();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// user step 상황에서 자동으로 멈추게 합니다.
|
||||
/// </summary>
|
||||
void UserStepRun(eWorkPort target)
|
||||
{
|
||||
if (PUB.flag.get(eVarBool.FG_USERSTEP))
|
||||
{
|
||||
if (target == eWorkPort.Right)
|
||||
{
|
||||
if (LockUserL.WaitOne(1) == false)
|
||||
LockUserL.Set();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (LockUserR.WaitOne(1) == false)
|
||||
LockUserR.Set();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 홈작업이 진행 가능한지 하드웨어 상태를 확인한다.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
bool CheckHomeProcess_HW_Available(Boolean needHomeSet)
|
||||
{
|
||||
//모션이 초기화되지 않았다면 오류로 한다
|
||||
if (PUB.mot.IsInit == false)
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.MOTION, eECode.AZJINIT, eNextStep.NOTHING);
|
||||
return false;
|
||||
}
|
||||
|
||||
//모든 홈이 되어야 가능하다
|
||||
if (needHomeSet)
|
||||
{
|
||||
if (PUB.mot.IsInit && PUB.mot.HasHomeSetOff == true)
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_HSET, eNextStep.ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//안전센서가 작동했다면 중지한다.
|
||||
if (DIO.isSaftyDoorF(true) == false || DIO.isSaftyDoorR() == false)
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.SAFTY, eECode.DOORSAFTY, eNextStep.ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
//모션모델이 반드시 설정되어있어야 한다
|
||||
if (PUB.Result.isSetmModel == false)
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.MOTION, eECode.NOMODELM, eNextStep.ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
//AIR확인
|
||||
if (DIO.GetIOOutput(eDOName.SOL_AIR) == false)
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.SENSOR, eECode.AIRNOOUT, eNextStep.ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 비상정지 확인
|
||||
if (DIO.IsEmergencyOn() == true)
|
||||
{
|
||||
PUB.Result.SetResultMessage(eResult.SAFTY, eECode.EMERGENCY, eNextStep.ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user