|
|
|
@ -0,0 +1,194 @@
|
|
|
|
|
using Rs.Controls;
|
|
|
|
|
using Rs.Framework;
|
|
|
|
|
using Rs.Motion;
|
|
|
|
|
using Rs.MotionPlat.Commom;
|
|
|
|
|
using Rs.MotionPlat.Entitys.Trays;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace Rs.MotionPlat.Flow.SubFlow
|
|
|
|
|
{
|
|
|
|
|
enum EFiberWarningPressFlowStep
|
|
|
|
|
{
|
|
|
|
|
到测试放料位上方,
|
|
|
|
|
等待运动到测试放料位上方,
|
|
|
|
|
到测试放料位下方1,
|
|
|
|
|
等待运动到到测试放料位下方1,
|
|
|
|
|
到测试放料位下方2,
|
|
|
|
|
等待运动到到测试放料位下方2,
|
|
|
|
|
测试位下压完成抬起,
|
|
|
|
|
等待测试位下压完成抬起
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// 当光纤报警时,主动去压一次
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class FiberWarningPressFlow
|
|
|
|
|
{
|
|
|
|
|
private static FiberWarningPressFlow instance;
|
|
|
|
|
public static FiberWarningPressFlow Instance
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (instance == null)
|
|
|
|
|
instance = new FiberWarningPressFlow();
|
|
|
|
|
return instance;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string logInfo = string.Empty;
|
|
|
|
|
private EFiberWarningPressFlowStep step = EFiberWarningPressFlowStep.到测试放料位上方;
|
|
|
|
|
private double targetPos = 0.0;
|
|
|
|
|
ErrorCode errCode = ErrorCode.Ok;
|
|
|
|
|
bool finished = true;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当出现光纤异常时,下嘴下压一次
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void Press()
|
|
|
|
|
{
|
|
|
|
|
if (finished)
|
|
|
|
|
{
|
|
|
|
|
finished = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
targetPos = 0.0;
|
|
|
|
|
step = EFiberWarningPressFlowStep.到测试放料位上方;
|
|
|
|
|
while (!finished)
|
|
|
|
|
{
|
|
|
|
|
if (MachineManage.Instance.MachineStatus == EMachineStatus.Stop)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(10);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
switch (step)
|
|
|
|
|
{
|
|
|
|
|
case EFiberWarningPressFlowStep.到测试放料位上方:
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressDumpX");
|
|
|
|
|
errCode = AxisControl.TurnoverX.MovePos(targetPos, GlobalVar.WholeSpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressDumpY");
|
|
|
|
|
errCode = AxisControl.TurnoverY.MovePos(targetPos, GlobalVar.WholeSpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"到测试放料位上方";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = EFiberWarningPressFlowStep.等待运动到测试放料位上方;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.TurnoverY, errCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.TurnoverX, errCode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case EFiberWarningPressFlowStep.等待运动到测试放料位上方:
|
|
|
|
|
if (Ops.IsStop(AxisControl.TurnoverX, AxisControl.TurnoverY) || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
step = EFiberWarningPressFlowStep.到测试放料位下方1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EFiberWarningPressFlowStep.到测试放料位下方1:
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressDumpZ") + GlobalVar.PressLowSpeedOffset;
|
|
|
|
|
errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"到测试放料位下方1";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = EFiberWarningPressFlowStep.等待运动到到测试放料位下方1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.TurnoverZ, errCode);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EFiberWarningPressFlowStep.等待运动到到测试放料位下方1:
|
|
|
|
|
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"已运动到到测试放料位下方1 TurnoverZ at:{Ops.GetCurPosition(AxisAlias.TurnoverZ)}";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = EFiberWarningPressFlowStep.到测试放料位下方2;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EFiberWarningPressFlowStep.到测试放料位下方2:
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressDumpZ");
|
|
|
|
|
errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.PressLowSpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"到测试放料位下方2";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
LogHelper.Debug(logInfo);
|
|
|
|
|
step = EFiberWarningPressFlowStep.等待运动到到测试放料位下方2;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.TurnoverZ, errCode);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EFiberWarningPressFlowStep.等待运动到到测试放料位下方2:
|
|
|
|
|
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
step = EFiberWarningPressFlowStep.测试位下压完成抬起;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EFiberWarningPressFlowStep.测试位下压完成抬起:
|
|
|
|
|
targetPos = SysConfigParam.GetValue<double>("PressSafeZ");
|
|
|
|
|
errCode = AxisControl.TurnoverZ.MovePos(targetPos, GlobalVar.WholeSpeed);
|
|
|
|
|
if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
if (GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
|
|
|
}
|
|
|
|
|
logInfo = GetClassName() + $"测试位下压完成抬起";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
step = EFiberWarningPressFlowStep.等待测试位下压完成抬起;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MsgBox.ShowAxisAlarmDialog(AxisControl.TurnoverZ, errCode);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EFiberWarningPressFlowStep.等待测试位下压完成抬起:
|
|
|
|
|
if (Ops.IsStop(AxisControl.TurnoverZ) || GlobalVar.VirtualAxis)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"测试位下压完成抬起完成";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
finished = true;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string GetClassName()
|
|
|
|
|
{
|
|
|
|
|
return "FiberWarningPressFlow-";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|