ZR轴回原失败增加超时机制,超时未回原成功则报警

develop
lhiven 4 months ago
parent 6323d1b047
commit dac1114c0b

@ -433,6 +433,11 @@ namespace Rs.MotionPlat.Flow
/// </summary>
public const int = 1098;
/// <summary>
/// 轴回原失败
/// </summary>
public const int = 1099;

@ -589,6 +589,10 @@ namespace Rs.MotionPlat.Flow
}
else
{
try
{
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号真空检测NG,num={reFetchNum}";
MessageQueue.Instance.Insert(logInfo);
if (reFetchNum == 0)
{
//这个时候Z&R回原一次然后再重新取料
@ -616,6 +620,11 @@ namespace Rs.MotionPlat.Flow
flowStep = EDischargeFlowStep.;
}
}
catch (Exception ex)
{
}
}
break;
case EDischargeFlowStep.:

@ -2,8 +2,10 @@
using Rs.Framework;
using Rs.Motion;
using Rs.MotionPlat.Commom;
using Rs.MotionPlat.Entitys;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
@ -16,7 +18,8 @@ namespace Rs.MotionPlat.Flow.SubFlow
StartHome,
WaitHomed,
GoStartPos,
WaitArrivedStartPos
WaitArrivedStartPos,
HomeWarning
}
public class ZRHomeFlow
{
@ -34,6 +37,7 @@ namespace Rs.MotionPlat.Flow.SubFlow
}
private EZRHomeFlowStep step = EZRHomeFlowStep.StartHome;
bool finished = false;
Stopwatch stopwatch = new Stopwatch();
public void GoHome(int homeIndex)
{
@ -45,6 +49,7 @@ namespace Rs.MotionPlat.Flow.SubFlow
{
case EZRHomeFlowStep.StartHome:
//获取Z轴
MessageQueue.Instance.Insert($"{GetClassName()} NozzleZ{homeIndex},NozzleR{homeIndex} start home");
AxisControl.GetAxis($"NozzleZ{homeIndex}").Home();
AxisControl.GetAxis($"NozzleR{homeIndex}").Home();
//AxisControl.NozzleZ1.Home();
@ -65,6 +70,7 @@ namespace Rs.MotionPlat.Flow.SubFlow
//AxisControl.NozzleR7.Home();
//AxisControl.NozzleR8.Home();
step = EZRHomeFlowStep.WaitHomed;
stopwatch.Restart();
Thread.Sleep(1000);
break;
case EZRHomeFlowStep.WaitHomed:
@ -84,11 +90,19 @@ namespace Rs.MotionPlat.Flow.SubFlow
// && AxisControl.NozzleR6.HomeStatus == EHomeStatus.Finished
// && AxisControl.NozzleR7.HomeStatus == EHomeStatus.Finished
// && AxisControl.NozzleR8.HomeStatus == EHomeStatus.Finished)
if(stopwatch.ElapsedMilliseconds<1000*60*3)
{
if (AxisControl.GetAxis($"NozzleZ{homeIndex}").HomeStatus == EHomeStatus.Finished
&& AxisControl.GetAxis($"NozzleR{homeIndex}").HomeStatus == EHomeStatus.Finished)
{
MessageQueue.Instance.Insert($"{GetClassName()} NozzleZ{homeIndex},NozzleR{homeIndex} homed finished");
step = EZRHomeFlowStep.GoStartPos;
}
}
else
{
step = EZRHomeFlowStep.HomeWarning;
}
break;
case EZRHomeFlowStep.GoStartPos:
//for(int i=1;i<9;i++)
@ -98,6 +112,7 @@ namespace Rs.MotionPlat.Flow.SubFlow
//}
double targetPos = SysConfigParam.GetValue<Double>($"NozzleR{homeIndex}StartPos");
AxisControl.GetAxis($"NozzleR{homeIndex}").MovePos(targetPos, GlobalVar.WholeSpeed);
MessageQueue.Instance.Insert($"{GetClassName()} NozzleR{homeIndex} go to pos:{targetPos}");
step = EZRHomeFlowStep.WaitArrivedStartPos;
Thread.Sleep(100);
break;
@ -112,12 +127,33 @@ namespace Rs.MotionPlat.Flow.SubFlow
// && Ops.IsStop("NozzleR8"))
if (Ops.IsStop($"NozzleR{homeIndex}"))
{
string axisname = $"NozzleR{homeIndex}";
MessageQueue.Instance.Insert($"{GetClassName()} NozzleR{homeIndex} arrived pos:{Ops.GetCurPosition(axisname)}");
finished = true;
}
break;
case EZRHomeFlowStep.HomeWarning:
stopwatch.Stop();
if (AxisControl.GetAxis($"NozzleZ{homeIndex}").HomeStatus != EHomeStatus.Finished)
{
AlarmEntity alarm = AlarmCollection.Get(AlarmConstID.).Transform($"NozzleZ{homeIndex}");
AlarmMessageBox.ShowDialog(alarm, SchedulingMessageBox.ETipButton.Retry, null, true);
}
else if (AxisControl.GetAxis($"NozzleR{homeIndex}").HomeStatus != EHomeStatus.Finished)
{
AlarmEntity alarm = AlarmCollection.Get(AlarmConstID.).Transform($"NozzleR{homeIndex}");
AlarmMessageBox.ShowDialog(alarm, SchedulingMessageBox.ETipButton.Retry, null, true);
}
step = EZRHomeFlowStep.StartHome;
break;
}
Thread.Sleep(10);
}
}
private string GetClassName()
{
return $"{nameof(ZRHomeFlow)}-";
}
}
}

@ -31,6 +31,6 @@ using System.Runtime.InteropServices;
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
[assembly: AssemblyVersion("3.20.25.01")]
[assembly: AssemblyVersion("3.20.25.03")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]

Loading…
Cancel
Save