Initial commit

This commit is contained in:
ChiKyun Kim
2025-07-17 16:11:46 +09:00
parent 4865711adc
commit 4a1b1924ba
743 changed files with 230954 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
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.AzinAxt.MOT.axisValidationEventArgs 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 == StateMachine.eSMStep.HOME) return;
//일반대기상태에서는 처리하지 않는다
if (Pub.sm.Step <= StateMachine.eSMStep.IDLE) return;
//이동하려는 위치와 현재 위치가 동일하면 처리하지 않는다
if (e.CurrentPosition == e.TargetPosition) return;
//각 축별 파일에서 처리한다
var axis = (eAxis)e.m_nAxis;
if (axis == eAxis.X_PICKER)
{
e.invalidMessage = Validation_MotYP(e);
e.isValid = e.invalidMessage.isEmpty();
}
else if (axis == eAxis.Z_PICKER)
{
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();
}
}
}
}

View File

@@ -0,0 +1,117 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace Project
{
public partial class fMain
{
string Validation_MotYP(arDev.AzinAxt.MOT.axisValidationEventArgs e)
{
//Z가 내려오는 경우만 체크한다
//if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN)
//{
// var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0);
// var valPickOfL = Util_Mot.getPositionMatch(eAxisPYPos.PickOffL, 2.0);
// var valPickOfR = Util_Mot.getPositionMatch(eAxisPYPos.PickOffR, 2.0);
// if(valPickOn || valPickOfL || valPickOfR)
// {
// //해다 위치에 있을때에는 움직이는것이 가능하다
// }
// else
// {
// return "Z-LEFT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")";
// }
//}
return string.Empty;
}
string Validation_MotYZ(arDev.AzinAxt.MOT.axisValidationEventArgs e)
{
//if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN)
//{
// var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0);
// // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0);
// if (valPickOn == false)
// {
// return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")";
// }
//}
return string.Empty;
}
string Validation_MotYT(arDev.AzinAxt.MOT.axisValidationEventArgs e)
{
//if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN)
//{
// var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0);
// // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0);
// if (valPickOn == false)
// {
// return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")";
// }
//}
return string.Empty;
}
string Validation_MotPLM(arDev.AzinAxt.MOT.axisValidationEventArgs e)
{
//if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN)
//{
// var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0);
// // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0);
// if (valPickOn == false)
// {
// return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")";
// }
//}
return string.Empty;
}
string Validation_MotPRM(arDev.AzinAxt.MOT.axisValidationEventArgs e)
{
//if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN)
//{
// var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0);
// // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0);
// if (valPickOn == false)
// {
// return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")";
// }
//}
return string.Empty;
}
string Validation_MotPLZ(arDev.AzinAxt.MOT.axisValidationEventArgs e)
{
//if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN)
//{
// var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0);
// // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0);
// if (valPickOn == false)
// {
// return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")";
// }
//}
return string.Empty;
}
string Validation_MotPRZ(arDev.AzinAxt.MOT.axisValidationEventArgs e)
{
//if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN)
//{
// var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0);
// // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0);
// if (valPickOn == false)
// {
// return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")";
// }
//}
return string.Empty;
}
}
}