Initial commit
This commit is contained in:
83
Handler/Project/RunCode/_Motion.cs
Normal file
83
Handler/Project/RunCode/_Motion.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
public Boolean[] DisableMotion;
|
||||
private void Mot_PositionChanged(object sender, arDev.MOT.PositionChangeEventArgs e)
|
||||
{
|
||||
eAxis mot = (eAxis)e.Axis;
|
||||
if (mot == eAxis.PX_PICK)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//모터 위치가 변경되면 로더 컨트롤에 입력한다
|
||||
hmi1.arMotorPosition[e.Axis] = e.Actual;
|
||||
}
|
||||
|
||||
void mot_StatusChanged(object sender, arDev.MOT.StatusChangeEventArags e)
|
||||
{
|
||||
if (e.Axis >= PUB.system.MotaxisCount) return;
|
||||
if (e.Status == arDev.MOT.MOTION_STATUS.SERVOALARM) hmi1.arMOT_Alm[e.Axis] = e.Value;
|
||||
else if (e.Status == arDev.MOT.MOTION_STATUS.LIMITN) hmi1.arMOT_LimDn[e.Axis] = e.Value;
|
||||
else if (e.Status == arDev.MOT.MOTION_STATUS.LIMITP) hmi1.arMOT_LimUp[e.Axis] = e.Value;
|
||||
else if (e.Status == arDev.MOT.MOTION_STATUS.ORIGIN) hmi1.arMOT_Origin[e.Axis] = e.Value;
|
||||
else if (e.Status == arDev.MOT.MOTION_STATUS.SERVROON) hmi1.arMOT_SVOn[e.Axis] = e.Value;
|
||||
}
|
||||
|
||||
private void Mot_EndStatusChanged(object sender, arDev.MOT.EndStatusChangeEventArgs e)
|
||||
{
|
||||
if (AR.SETTING.Data.Enable_Log_MotStopReason == false) return; //210112
|
||||
|
||||
var bitstatus = Convert.ToString(e.Value, 2).PadLeft(16, '0');
|
||||
List<FS_END_STATUS> lst = new List<FS_END_STATUS>();
|
||||
for (byte i = 0; i < 15; i++)
|
||||
{
|
||||
var offset = (ushort)(Math.Pow(2, i));
|
||||
if ((e.Value & offset) > 0) lst.Add((FS_END_STATUS)offset);
|
||||
}
|
||||
|
||||
var reason = string.Join(",", lst);
|
||||
PUB.log.Add("MOT", $"모터정지사유({e.Axis}):{reason}:bit={bitstatus}");
|
||||
}
|
||||
|
||||
|
||||
void mot_HomeStatusChanged(object sender, arDev.MOT.HomeStatusChangeEventArgs e)
|
||||
{
|
||||
if (PUB.sm.Step == eSMStep.HOME_FULL)
|
||||
{
|
||||
hmi1.arHomeProgress[e.Axis] = e.Progress;
|
||||
if (e.NewStatus == arDev.MOT.HOME_RESULT.HOME_ERR_NOT_DETECT)
|
||||
{
|
||||
//홈 검색시 오류가 발생했다 사용자에게 알림을 해야 함
|
||||
PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_HSET, eNextStep.ERROR, e.Axis);
|
||||
}
|
||||
else if (e.NewStatus == arDev.MOT.HOME_RESULT.HOME_SUCCESS)
|
||||
{
|
||||
PUB.log.AddI(string.Format("홈 검색이 완료되었습니다 축:{0}", e.Axis));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void mot_Message(object sender, arDev.MOT.MessageEventArgs e)
|
||||
{
|
||||
if (e.IsError)
|
||||
{
|
||||
if (e.Message.IndexOf("동일위치") != -1 || e.Message.IndexOf("inposition") != -1)
|
||||
{ // Pub.log.AddAT("MOT:" + e.Message);
|
||||
}
|
||||
else PUB.log.AddE("MOT:" + e.Message);
|
||||
}
|
||||
|
||||
else PUB.log.Add("MOT:" + e.Message);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user