80 lines
2.9 KiB
C#
80 lines
2.9 KiB
C#
using AR;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Project
|
|
{
|
|
public partial class FMain
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
/// 모션 이동명령(MOVE,HOME,JOG)이 시작전에 축 이동여부를 확인하는 이벤트 임
|
|
/// 이동을 하면 안되는 경우 e.valid 를 false 로 설정하면 모션이 이동하지 않습니다
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
void mot_AxisMoveValidateCheck(object sender, arDev.MOT.MoveValidationEventArgs e)
|
|
{
|
|
//DIO가 움직이지 않으면 체크할 필요는 없다 (DIO가 작동안해도 모터는 움직여야 하므로 플래그는 TRUE로 둔다)
|
|
if (PUB.dio.IsInit == false || PUB.mot.IsInit == false) return;
|
|
|
|
//모든모션의 홈설정이완료된 상태에만 체크한다
|
|
if (PUB.mot.HasHomeSetOff == true) return;
|
|
|
|
//모션모델이 설정된 상태에만 체크한다
|
|
if (PUB.Result.isSetmModel == false) return;
|
|
|
|
//홈 검색모드에서는 처리하지 않음
|
|
if (PUB.sm.Step == eSMStep.HOME_FULL) return;
|
|
|
|
//일반대기상태에서는 처리하지 않는다
|
|
if (PUB.sm.Step <= eSMStep.IDLE) return;
|
|
|
|
//이동하려는 위치와 현재 위치가 동일하면 처리하지 않는다
|
|
if (e.CurrentPosition == e.TargetPosition) return;
|
|
|
|
//각 축별 파일에서 처리한다
|
|
var axis = (eAxis)e.m_nAxis;
|
|
if (axis == eAxis.PX_PICK)
|
|
{
|
|
e.invalidMessage = Validation_MotYP(e);
|
|
e.isValid = e.invalidMessage.isEmpty();
|
|
}
|
|
else if (axis == eAxis.PZ_PICK)
|
|
{
|
|
e.invalidMessage = Validation_MotYZ(e);
|
|
e.isValid = e.invalidMessage.isEmpty();
|
|
}
|
|
else if (axis == eAxis.Z_THETA)
|
|
{
|
|
e.invalidMessage = Validation_MotYT(e);
|
|
e.isValid = e.invalidMessage.isEmpty();
|
|
}
|
|
else if (axis == eAxis.PL_MOVE)
|
|
{
|
|
e.invalidMessage = Validation_MotPLM(e);
|
|
e.isValid = e.invalidMessage.isEmpty();
|
|
}
|
|
else if (axis == eAxis.PR_MOVE)
|
|
{
|
|
e.invalidMessage = Validation_MotPRM(e);
|
|
e.isValid = e.invalidMessage.isEmpty();
|
|
}
|
|
else if (axis == eAxis.PL_UPDN)
|
|
{
|
|
e.invalidMessage = Validation_MotPLZ(e);
|
|
e.isValid = e.invalidMessage.isEmpty();
|
|
}
|
|
else if (axis == eAxis.PR_UPDN)
|
|
{
|
|
e.invalidMessage = Validation_MotPRZ(e);
|
|
e.isValid = e.invalidMessage.isEmpty();
|
|
}
|
|
}
|
|
}
|
|
}
|