Commit 71a400ab 张东亮

入库异常处理优化

1 个父辈 420c1605
......@@ -188,7 +188,7 @@ namespace DeviceLibrary
break;
case MoveStep.StoreTS09:
RobotManage.CameraA.CameraGrabOne(RobotManage.CameraA.GetFixtureStateFilename(From.posid, WareCode, storeMoveType, FixtureState.FromOut));
if (!IgnoreX09 && IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
{
if (Common.IsManualHandleReelInFix() && Common.IsInstore(storeMoveType))
{
......@@ -217,6 +217,8 @@ namespace DeviceLibrary
InOutEndProcess(StoreMoveType.OutStore, From.posid);
}
break;
#region 校准库位
case MoveStep.StoreFIX01:
MoveInfo.NextMoveStep(MoveStep.StoreFIX02);
RobotManage.PutReelInFixPos(MoveInfo.MoveParam);
......@@ -335,6 +337,9 @@ namespace DeviceLibrary
MoveInfo.log($"{storeMoveType}:料叉取到料");
}
break;
#endregion
case MoveStep.StoreTS10:
MoveInfo.NextMoveStep(MoveStep.StoreTS11);
RobotManage.ClearReelInFixPos();
......@@ -342,7 +347,6 @@ namespace DeviceLibrary
MoveInfo.log($"{storeMoveType}:旋转轴去取料点P2[{To.Middle_P2}]");
UpDown_Axis.AbsMove(MoveInfo, To.UpDown_PH, Config.UpDown_P1_speed);
MoveInfo.log($"{storeMoveType}:上下轴去取料高点[{To.UpDown_PH}]");
break;
case MoveStep.StoreTS11:
if (To.posid == BoxStorePosition.strings)
......@@ -361,6 +365,7 @@ namespace DeviceLibrary
}
else if (To.posid == BoxStorePosition.ngdoor)
{
if (mainMachine.ClampMoveInfo.MoveStep != MoveStep.Wait)
{
//if (MoveInfo.IsTimeOut(20))
......@@ -371,20 +376,16 @@ namespace DeviceLibrary
}
else
{
if(storeMoveType.Equals(StoreMoveType.InStore))
if (storeMoveType.Equals(StoreMoveType.InStore))
{
if (!IgnoreX09 && IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
{
if (Common.IsManualHandleReelInFix() && Common.IsInstore(storeMoveType))
{
IsNGReel = true;
MoveInfo.log($"{storeMoveType}:到库位前料叉机构料盘检测X30灭,去单料口");
MoveInfo.EndMove();
ErrMsgTxt = "";
return false;
}
else
Msg.add(crc.GetString(L.out_store_not_detect_material, "取料后料叉X30没有检测到有物料无法继续,请检查."), MsgLevel.alarm, ErrInfo.X09_BoxNotDetect);
IsNGReel = true;
MoveInfo.log($"{storeMoveType}:到库位前料叉机构料盘检测X30灭,去单料口");
MoveInfo.EndMove();
ErrMsgTxt = "";
return false;
}
else
{
......@@ -393,7 +394,22 @@ namespace DeviceLibrary
}
}
}
if (To.posid == BoxStorePosition.ngdoor)
{
CodeManager.TestHasRight = true;
var h1 = mainMachine.NGDoor_Tray_Test_Reel;
if (!h1.HasValue)
{
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
}
else if (h1.Value)
{
Msg.add(crc.GetString(L.please_take_ngdoor_reel, "等待取走单料口料盘"), MsgLevel.alarm);
RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
}
}
MoveInfo.NextMoveStep(MoveStep.StoreTS12);
break;
case MoveStep.StoreTS12:
MoveInfo.NextMoveStep(MoveStep.StoreTS13);
......@@ -416,9 +432,9 @@ namespace DeviceLibrary
break;
case MoveStep.StoreTS15:
RobotManage.CameraA.CameraGrabOne(RobotManage.CameraA.GetFixtureStateFilename(To.posid, WareCode, storeMoveType, FixtureState.ToOut));
if (!IgnoreX09 && IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
if (Common.IsManualHandleReelInFix() && Common.IsInstore(storeMoveType))
if (Common.IsInstore(storeMoveType))
{
IsNGReel = true;
MoveInfo.log($"{storeMoveType}:放完料后料叉机构料盘检测X30亮,去单料口");
......@@ -429,7 +445,6 @@ namespace DeviceLibrary
}
else
Msg.add(crc.GetString(L.in_store_detect_material, "放料后料叉X30上仍然检测到物料,请检查."), MsgLevel.alarm, ErrInfo.X09_BoxNotDetect);
//RobotManage.UserPause("入库后料叉X30上任然检测到物料,请检查");
}
else
{
......
......@@ -32,6 +32,10 @@ namespace DeviceLibrary
{
ClampMoveInfo.NextMoveStep(MoveStep.ReelTaked);
}
/// <summary>
/// NG料盘已经放置完成
/// </summary>
/// <param name="msg"></param>
public void NGPuted(string msg)
{
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_01);
......@@ -85,7 +89,7 @@ namespace DeviceLibrary
{
if (IsGetReelReady && StoreMoveInfo.MoveStep == MoveStep.Wait && OutSingleJobList.Count == 0)
{
if (!boxTransport.IgnoreX09 && IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
StoreMoveInfo.NextMoveStep(MoveStep.StoreInNG_02);
CloseFlipDoor(StoreMoveInfo);
......@@ -185,7 +189,7 @@ namespace DeviceLibrary
Msg.add(crc.GetString("r_flipDoor_no_work", "右侧翻板水平信号未亮"), MsgLevel.alarm);
RobotManage.UserPause(crc.GetString("r_flipDoor_no_work", "右侧翻板水平信号未亮"));
}
else
else //翻板水平
{
ClampMoveInfo.NextMoveStep(MoveStep.ReelClamp_10);
if (RobotManage.InoutDebugMode)
......@@ -275,12 +279,12 @@ namespace DeviceLibrary
ClampMoveInfo.log($"料盘已取走");
OpenFlipDoor(ClampMoveInfo);
break;
case MoveStep.NGOUT_00:
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_01);
//ClampMoveInfo.log("打开单料口门");
CloseFlipDoor(ClampMoveInfo);
break;
case MoveStep.NGOUT_01:
//case MoveStep.NGOUT_00:
// ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_01);
// ClampMoveInfo.log("关闭翻板");
// CloseFlipDoor(ClampMoveInfo);
// break;
case MoveStep.NGOUT_01://料盘已放到托盘
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_02);
ClampMoveInfo.log("打开单料口门");
//CylinderMove(null, IO_Type.NGDoor_Close, IO_Type.NGDoor_Open, IO_VALUE.HIGH);
......@@ -289,49 +293,52 @@ namespace DeviceLibrary
break;
case MoveStep.NGOUT_02:
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_03);
if (ConfigHelper.Config.Get("CamTestReel_Ability", false))
{
var h1 = NGDoor_Tray_Test_Reel;
if (!h1.HasValue)
{
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
}
else
if (!h1.Value)
{
Msg.add(crc.GetString(L.x29_low_no_reel, "传感器X29未检测到单料口料盘."), MsgLevel.alarm);
Msg.add(ClampMoveInfo.MoveParam.NgMsg, MsgLevel.warning);
//RobotManage.UserPause(crc.GetString("Res0005", "传感器X29未检测到单料口料盘"));
}
}
//if (ConfigHelper.Config.Get("CamTestReel_Ability", false))
//{
// var h1 = NGDoor_Tray_Test_Reel;
// if (!h1.HasValue)
// {
// Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
// }
// else
// if (!h1.Value)
// {
// Msg.add(crc.GetString(L.x29_low_no_reel, "传感器X29未检测到单料口料盘."), MsgLevel.alarm);
// Msg.add(ClampMoveInfo.MoveParam.NgMsg, MsgLevel.warning);
// //RobotManage.UserPause(crc.GetString("Res0005", "传感器X29未检测到单料口料盘"));
// }
//}
SingleDoor.ToHigh(ClampMoveInfo);
Msg.add(crc.GetString(L.please_take_ngdoor_reel, "等待取走单料口料盘"), MsgLevel.alarm);
RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
break;
case MoveStep.NGOUT_03:
Msg.add(ClampMoveInfo.MoveParam.NgMsg, MsgLevel.warning);
var h = NGDoor_Tray_Test_Reel;
if (!h.HasValue)
{
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
}
else
if (h.Value)
{
Msg.add(crc.GetString(L.please_take_ngdoor_reel, "等待取走单料口料盘"), MsgLevel.alarm);
if (ConfigHelper.Config.Get("CamTestReel_Ability", false))
{
//ClampMoveInfo.LastSetpTime = DateTime.Now;
//ClampMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
if (ConfigHelper.Config.Get("Device_ManualCloseSingleDoor", false))
RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
}
else
{
if (!ConfigHelper.Config.Get("CamTestReel_Ability", false))
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_04);
RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
}
}
else
//Msg.add(ClampMoveInfo.MoveParam.NgMsg, MsgLevel.warning);
// var h = NGDoor_Tray_Test_Reel;
//if (!h.HasValue)
//{
// Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
//}
//else if (h.Value)
//{
// ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_04);
// Msg.add(crc.GetString(L.please_take_ngdoor_reel, "等待取走单料口料盘"), MsgLevel.alarm);
// RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
// //if (ConfigHelper.Config.Get("CamTestReel_Ability", false))
// //{
// // //ClampMoveInfo.LastSetpTime = DateTime.Now;
// // //ClampMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
// // // if (ConfigHelper.Config.Get("Device_ManualCloseSingleDoor", false))
// //}
// //else
// //{
// // if (!ConfigHelper.Config.Get("CamTestReel_Ability", false))
// // ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_04);
// // RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
// //}
//}
//else
{
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_04);
ClampMoveInfo.log("料盘已取走");
......@@ -348,13 +355,13 @@ namespace DeviceLibrary
}
break;
case MoveStep.NGOUT_05:
h = NGDoor_Tray_Test_Reel;
if (!h.HasValue)
{
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
}
else
if (IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH) && !h.Value)
//h = NGDoor_Tray_Test_Reel;
//if (!h.HasValue)
//{
// Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
//}
//else
if (IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH))// && !h.Value
{
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_06);
ClampMoveInfo.log("关门NG口门");
......@@ -391,7 +398,7 @@ namespace DeviceLibrary
ClampMoveInfo.MoveParam.PlateW = 7;
ClampMoveInfo.MoveParam.PlateH = 100;
h = NGDoor_Tray_Test_Reel;
var h = NGDoor_Tray_Test_Reel;
if (!h.HasValue)
{
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
......@@ -410,7 +417,7 @@ namespace DeviceLibrary
break;
}
}
bool? NGDoor_Tray_Test_Reel
public bool? NGDoor_Tray_Test_Reel
{
get
{
......
......@@ -168,17 +168,37 @@ namespace DeviceLibrary
{
StoreMoveInfo.NextMoveStep(MoveStep.StoreInNG_02);
CloseFlipDoor(StoreMoveInfo);
CodeManager.TestHasRight = true;
StoreMoveInfo.log($"取消[{StoreMoveInfo.MoveParam.WareCode}]入库任务");
}
break;
case MoveStep.StoreInNG_02:
StoreMoveInfo.NextMoveStep(MoveStep.StoreInNG_03);
// var outFrom = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID);
var h1 = NGDoor_Tray_Test_Reel;
if (!h1.HasValue)
{
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
}
else if (h1.Value)
{
StoreMoveInfo.NextMoveStep(MoveStep.StoreInNG_03);
StoreMoveInfo.log($"单料口有料盘,系统暂停");
Msg.add(crc.GetString(L.please_take_ngdoor_reel, "等待取走单料口料盘"), MsgLevel.alarm);
RobotManage.UserPause(crc.GetString("please_take_ngdoor_reel", "等待取走单口料盘"));
}
else
{
StoreMoveInfo.NextMoveStep(MoveStep.StoreInNG_03);
StoreMoveInfo.log($"单料口无料盘");
}
break;
case MoveStep.StoreInNG_03:
StoreMoveInfo.NextMoveStep(MoveStep.StoreInNG_04);
BoxStorePosition tar = new BoxStorePosition(Config, StoreSide.NGDoor, StoreMoveInfo.MoveParam);
boxTransport.Start(null, tar, StoreMoveType.InStore);
StoreMoveInfo.log($"开始转运料盘到单料口");
break;
case MoveStep.StoreInNG_03:
case MoveStep.StoreInNG_04:
if (boxTransport.IsPutOnOut)
{
StoreMoveInfo.log($"料盘已到达单料口");
......@@ -186,9 +206,6 @@ namespace DeviceLibrary
StoreMoveInfo.EndMove();
}
break;
case MoveStep.StoreInNG_04:
break;
case MoveStep.StoreInNG_05:
break;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!