Commit 3959b19b LN
2 个父辈 b6054b76 f6490380
...@@ -589,43 +589,60 @@ namespace OnlineStore.DeviceLibrary ...@@ -589,43 +589,60 @@ namespace OnlineStore.DeviceLibrary
private DateTime dtUpperA = DateTime.Now; private DateTime dtUpperA = DateTime.Now;
private DateTime dtUpperB = DateTime.Now; private DateTime dtUpperB = DateTime.Now;
private DateTime errUpperA = DateTime.Now;
private DateTime errUpperB = DateTime.Now;
private DateTime errUnderA = DateTime.Now;
private DateTime errUnderB = DateTime.Now;
int SigLastTime = 2;//5秒 int SigLastTime = 2;//5秒
protected override void OnTimerProcess() protected override void OnTimerProcess()
{ {
if (!runStatus.Equals(RunStatus.Runing)) if (!runStatus.Equals(RunStatus.Runing))
return; return;
TimeSpan timeSpanA = DateTime.Now - dtUpperA; TimeSpan timeSpanA = DateTime.Now - dtUpperA;
TimeSpan tsUppA = DateTime.Now - errUpperA;
TimeSpan tsUnA = DateTime.Now - errUnderA;
TimeSpan tsUppB = DateTime.Now - errUpperB;
TimeSpan tsUnB = DateTime.Now - errUnderB;
int errSeconds = 10;
if (IOValue(IO_Type.UpperArea_Check_A).Equals(IO_VALUE.LOW) && BufferDataManager.AInStoreInfo != null) if (IOValue(IO_Type.UpperArea_Check_A).Equals(IO_VALUE.LOW) && BufferDataManager.AInStoreInfo != null)
{ {
SetWarnMsg("A进料上暂存区有料盘,但信号未亮"); if (tsUppA.TotalSeconds > errSeconds)
SetWarnMsg("A进料上暂存区有料盘,但信号未亮");
} }
else else
{ {
ClearSpecifiedAlarm("A进料上暂存区有料盘,但信号未亮"); ClearSpecifiedAlarm("A进料上暂存区有料盘,但信号未亮");
errUpperA = DateTime.Now;
} }
if (IOValue(IO_Type.UnderArea_Check_A).Equals(IO_VALUE.LOW) && BufferDataManager.AOutStoreInfo != null) if (IOValue(IO_Type.UnderArea_Check_A).Equals(IO_VALUE.LOW) && BufferDataManager.AOutStoreInfo != null)
{ {
SetWarnMsg("A出料下暂存区有料盘,但信号未亮"); if (tsUnA.TotalSeconds > errSeconds)
SetWarnMsg("A出料下暂存区有料盘,但信号未亮");
} }
else else
{ {
ClearSpecifiedAlarm("A出料下暂存区有料盘,但信号未亮"); ClearSpecifiedAlarm("A出料下暂存区有料盘,但信号未亮");
errUnderA = DateTime.Now;
} }
if (IOValue(IO_Type.UpperArea_Check_B).Equals(IO_VALUE.LOW) && BufferDataManager.BInStoreInfo != null) if (IOValue(IO_Type.UpperArea_Check_B).Equals(IO_VALUE.LOW) && BufferDataManager.BInStoreInfo != null)
{ {
SetWarnMsg("B进料上暂存区有料盘,但信号未亮"); if (tsUppB.TotalSeconds > errSeconds)
SetWarnMsg("B进料上暂存区有料盘,但信号未亮");
} }
else else
{ {
ClearSpecifiedAlarm("B进料上暂存区有料盘,但信号未亮"); ClearSpecifiedAlarm("B进料上暂存区有料盘,但信号未亮");
errUpperB = DateTime.Now;
} }
if (IOValue(IO_Type.UnderArea_Check_B).Equals(IO_VALUE.LOW) && BufferDataManager.BOutStoreInfo != null) if (IOValue(IO_Type.UnderArea_Check_B).Equals(IO_VALUE.LOW) && BufferDataManager.BOutStoreInfo != null)
{ {
SetWarnMsg("B出料下暂存区有料盘,但信号未亮"); if (tsUnB.TotalSeconds > errSeconds)
SetWarnMsg("B出料下暂存区有料盘,但信号未亮");
} }
else else
{ {
ClearSpecifiedAlarm("B出料下暂存区有料盘,但信号未亮"); ClearSpecifiedAlarm("B出料下暂存区有料盘,但信号未亮");
errUnderB = DateTime.Now;
} }
//检测A上暂存区是否有料盘 //检测A上暂存区是否有料盘
if (IOValue(IO_Type.UpperArea_Check_A).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.UpperArea_Check_A).Equals(IO_VALUE.HIGH))
......
...@@ -54,6 +54,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -54,6 +54,8 @@ namespace OnlineStore.DeviceLibrary
if (!AutoInout.autoNext && !InDoorCheck(param)) if (!AutoInout.autoNext && !InDoorCheck(param))
{ {
if (param==null || param.PosInfo == null)
return false;
SetWarnMsg(Name + $" 启动入库出错,入口料盘无入库信息[barcode={param.PosInfo.barcode},PosSide={param.PosInfo.GetPosSide()}], 任务取消"); SetWarnMsg(Name + $" 启动入库出错,入口料盘无入库信息[barcode={param.PosInfo.barcode},PosSide={param.PosInfo.GetPosSide()}], 任务取消");
SServerManager.cancelPutInTask(Name, param.PosInfo.barcode); SServerManager.cancelPutInTask(Name, param.PosInfo.barcode);
return false; return false;
...@@ -186,9 +188,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -186,9 +188,16 @@ namespace OnlineStore.DeviceLibrary
break; break;
case StepEnum.SI_03_VerifyBufferState: case StepEnum.SI_03_VerifyBufferState:
MoveInfo.NextMoveStep(StepEnum.SI_04_InOutToBuff); if(!CheckInputMiddleAxisInBuff())
LogInfo($"入库 {MoveInfo.SLog}:移栽X轴到暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); {
XAxis_To_P2(); MoveInfo.NextMoveStep(StepEnum.SI_04_InOutToBuff);
LogInfo($"入库 {MoveInfo.SLog}:移栽X轴到暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
XAxis_To_P2();
}
else if(MoveInfo.IsTimeOut())
{
SetWarnMsg($"等待上料机构旋转轴离开{MoveInfo.MoveParam.PosInfo.GetPosSide()}面暂存区超时");
}
break; break;
case StepEnum.SI_04_InOutToBuff: case StepEnum.SI_04_InOutToBuff:
MoveInfo.NextMoveStep(StepEnum.SI_05_GetReel); MoveInfo.NextMoveStep(StepEnum.SI_05_GetReel);
...@@ -322,9 +331,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -322,9 +331,9 @@ namespace OnlineStore.DeviceLibrary
if (!CheckInStoreOtherSideInfo()) if (!CheckInStoreOtherSideInfo())
{ {
SetBoxStatus(DeviceStatus.StoreOnline, RunStatus.Runing); SetBoxStatus(DeviceStatus.StoreOnline, RunStatus.Runing);
LogInfo($"入库 {MoveInfo.SLog}:入库结束[{MoveInfo.MoveParam.PosInfo.PosId}][{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MoveInfo.EndMove(); MoveInfo.EndMove();
AutoInout.InOutEndProcess(this, MoveType.InStore); AutoInout.InOutEndProcess(this, MoveType.InStore);
LogInfo($"入库 {MoveInfo.SLog}:入库结束[{MoveInfo.MoveParam.PosInfo.PosId}][{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
} }
else else
{ {
......
...@@ -201,9 +201,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -201,9 +201,16 @@ namespace OnlineStore.DeviceLibrary
} }
break; break;
case StepEnum.SO_16_VerifyBufferState: case StepEnum.SO_16_VerifyBufferState:
MoveInfo.NextMoveStep(StepEnum.SO_17_InOutToBuff); if(!CheckInputMiddleAxisInBuff())
LogInfo($"出库 {MoveInfo.SLog}:移栽X轴到进出料暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); {
XAxis_To_P2(); MoveInfo.NextMoveStep(StepEnum.SO_17_InOutToBuff);
LogInfo($"出库 {MoveInfo.SLog}:移栽X轴到进出料暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
XAxis_To_P2();
}
else
{
SetWarnMsg($"等待上料机构旋转轴离开{MoveInfo.MoveParam.PosInfo.GetPosSide()}面暂存区超时");
}
break; break;
case StepEnum.SO_17_InOutToBuff: case StepEnum.SO_17_InOutToBuff:
MoveInfo.NextMoveStep(StepEnum.SO_18_PutReel); MoveInfo.NextMoveStep(StepEnum.SO_18_PutReel);
...@@ -216,10 +223,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -216,10 +223,10 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(StepEnum.SO_19_InOutBackFromBuff); MoveInfo.NextMoveStep(StepEnum.SO_19_InOutBackFromBuff);
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成,移栽X轴到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"); LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成,移栽X轴到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
XAxis_To_P1(); XAxis_To_P1();
//出库料盘放置成功,将料盘信息写入对应出料口
SetReelInfoToBuff();
break; break;
case StepEnum.SO_19_InOutBackFromBuff: case StepEnum.SO_19_InOutBackFromBuff:
//出库料盘放置成功,将料盘信息写入对应出料口
SetReelInfoToBuff();
if (MoveInfo.MoveParam.PosInfoBack == null) if (MoveInfo.MoveParam.PosInfoBack == null)
{ {
MoveInfo.NextMoveStep(StepEnum.SO_20_Finish); MoveInfo.NextMoveStep(StepEnum.SO_20_Finish);
......
...@@ -19,16 +19,109 @@ namespace OnlineStore.DeviceLibrary ...@@ -19,16 +19,109 @@ namespace OnlineStore.DeviceLibrary
{ {
return false; return false;
} }
/// <summary>
//public bool InputMiddleAxisCanMove() /// 判断旋转轴是否在暂存区,返回true表示在暂存区
/// </summary>
/// <param name="areaNum">1=A上暂存区,2=A下暂存区,3=B上暂存区,4=B下暂存区</param>
/// <returns></returns>
//public bool AxisInWorkingArea()
//{ //{
// if() // int updownP = UpdownAxis.GetAclPosition();
// int xP = XAxis_A.GetAclPosition();
// int middleWucha = 20000;
// int updownWucha = 20000;
// //旋转轴在A暂存区
// if (UpdownAxis.GetAclPosition() >= (Config.Updown_P5 - axisDiff) && UpdownAxis.GetAclPosition() <= (Config.Updown_P4 + axisDiff))
// {
// }
// if (MiddleAxis.IsInPosition(Config.Middle_P4_AUpper, middleWucha) || MiddleAxis.IsInPosition(Config.Middle_P7_AUnder, middleWucha))
// {
// //如果升降轴低于下方高点
// if (updownP > Config.Updown_P6_AUnderH - updownWucha)
// {
// //在A下暂存区
// if (areaNum == 2)
// {
// return true;
// }
// }
// //升降轴高于上方低点
// else if (updownP < Config.Updown_P5_AUpperL + updownWucha)
// {
// if (areaNum == 1)
// {
// return true;
// }
// }
// else
// {
// if (areaNum == 1 || areaNum == 2)
// {
// return true;
// }
// }
// }
// else if (MiddleAxis.IsInPosition(Config.Middle_P5_BUpper, middleWucha) || MiddleAxis.IsInPosition(Config.Middle_P8_BUnder, middleWucha))
// {
// //如果升降轴低于下方高点
// if (updownP > Config.Updown_P12_BUnderH - updownWucha)
// {
// if (areaNum == 4)
// {
// return true;
// }
// }
// //升降轴高于上方低点
// else if (updownP < Config.Updown_P11_BUpperL + updownWucha)
// {
// if (areaNum == 3)
// {
// return true;
// }
// }
// else
// {
// if (areaNum == 3 || areaNum == 4)
// {
// return true;
// }
// }
// }
// return false; // return false;
//} //}
//public bool CheckInputMiddleAxisInSafe() /// <summary>
//{ /// 1=A上入库料暂存区,2=A下出库料暂存区,3=B上入库暂存区,4=B下出库暂存区
// StoreManager.XLRStore.inputEquip.axiswo /// </summary>
//} /// <returns></returns>
public bool CheckInputMiddleAxisInBuff()
{
if (MoveInfo.MoveType.Equals(MoveType.InStore))
{
if (CheckASide())
{
return StoreManager.XLRStore.inputEquip.AxisInWorkingArea(1);
}
else
{
return StoreManager.XLRStore.inputEquip.AxisInWorkingArea(3);
}
}
else if (MoveInfo.MoveType.Equals(MoveType.OutStore))
{
if (CheckASide())
{
return StoreManager.XLRStore.inputEquip.AxisInWorkingArea(2);
}
else
{
return StoreManager.XLRStore.inputEquip.AxisInWorkingArea(4);
}
}
return true;
}
/// <summary> /// <summary>
/// 忽略相机检测到的抽屉误差误差 /// 忽略相机检测到的抽屉误差误差
/// </summary> /// </summary>
...@@ -233,7 +326,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -233,7 +326,7 @@ namespace OnlineStore.DeviceLibrary
{ {
XAxis_B.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.XAxis_AB_P3, Config.XAxis_B_P3_Speed); XAxis_B.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.XAxis_AB_P3, Config.XAxis_B_P3_Speed);
} }
} }
/// <summary> /// <summary>
/// AB面移栽X轴到待机点 /// AB面移栽X轴到待机点
/// </summary> /// </summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!