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

develop
lhiven 4 months ago
parent 6323d1b047
commit dac1114c0b

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

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

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

Loading…
Cancel
Save