Commit 3959b19b LN
2 个父辈 b6054b76 f6490380
......@@ -589,43 +589,60 @@ namespace OnlineStore.DeviceLibrary
private DateTime dtUpperA = 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秒
protected override void OnTimerProcess()
{
if (!runStatus.Equals(RunStatus.Runing))
return;
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)
{
SetWarnMsg("A进料上暂存区有料盘,但信号未亮");
if (tsUppA.TotalSeconds > errSeconds)
SetWarnMsg("A进料上暂存区有料盘,但信号未亮");
}
else
{
ClearSpecifiedAlarm("A进料上暂存区有料盘,但信号未亮");
errUpperA = DateTime.Now;
}
if (IOValue(IO_Type.UnderArea_Check_A).Equals(IO_VALUE.LOW) && BufferDataManager.AOutStoreInfo != null)
{
SetWarnMsg("A出料下暂存区有料盘,但信号未亮");
if (tsUnA.TotalSeconds > errSeconds)
SetWarnMsg("A出料下暂存区有料盘,但信号未亮");
}
else
{
ClearSpecifiedAlarm("A出料下暂存区有料盘,但信号未亮");
errUnderA = DateTime.Now;
}
if (IOValue(IO_Type.UpperArea_Check_B).Equals(IO_VALUE.LOW) && BufferDataManager.BInStoreInfo != null)
{
SetWarnMsg("B进料上暂存区有料盘,但信号未亮");
if (tsUppB.TotalSeconds > errSeconds)
SetWarnMsg("B进料上暂存区有料盘,但信号未亮");
}
else
{
ClearSpecifiedAlarm("B进料上暂存区有料盘,但信号未亮");
errUpperB = DateTime.Now;
}
if (IOValue(IO_Type.UnderArea_Check_B).Equals(IO_VALUE.LOW) && BufferDataManager.BOutStoreInfo != null)
{
SetWarnMsg("B出料下暂存区有料盘,但信号未亮");
if (tsUnB.TotalSeconds > errSeconds)
SetWarnMsg("B出料下暂存区有料盘,但信号未亮");
}
else
{
ClearSpecifiedAlarm("B出料下暂存区有料盘,但信号未亮");
errUnderB = DateTime.Now;
}
//检测A上暂存区是否有料盘
if (IOValue(IO_Type.UpperArea_Check_A).Equals(IO_VALUE.HIGH))
......
......@@ -54,6 +54,8 @@ namespace OnlineStore.DeviceLibrary
if (!AutoInout.autoNext && !InDoorCheck(param))
{
if (param==null || param.PosInfo == null)
return false;
SetWarnMsg(Name + $" 启动入库出错,入口料盘无入库信息[barcode={param.PosInfo.barcode},PosSide={param.PosInfo.GetPosSide()}], 任务取消");
SServerManager.cancelPutInTask(Name, param.PosInfo.barcode);
return false;
......@@ -186,9 +188,16 @@ namespace OnlineStore.DeviceLibrary
break;
case StepEnum.SI_03_VerifyBufferState:
MoveInfo.NextMoveStep(StepEnum.SI_04_InOutToBuff);
LogInfo($"入库 {MoveInfo.SLog}:移栽X轴到暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
XAxis_To_P2();
if(!CheckInputMiddleAxisInBuff())
{
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;
case StepEnum.SI_04_InOutToBuff:
MoveInfo.NextMoveStep(StepEnum.SI_05_GetReel);
......@@ -322,9 +331,9 @@ namespace OnlineStore.DeviceLibrary
if (!CheckInStoreOtherSideInfo())
{
SetBoxStatus(DeviceStatus.StoreOnline, RunStatus.Runing);
LogInfo($"入库 {MoveInfo.SLog}:入库结束[{MoveInfo.MoveParam.PosInfo.PosId}][{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
MoveInfo.EndMove();
AutoInout.InOutEndProcess(this, MoveType.InStore);
LogInfo($"入库 {MoveInfo.SLog}:入库结束[{MoveInfo.MoveParam.PosInfo.PosId}][{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
}
else
{
......
......@@ -201,9 +201,16 @@ namespace OnlineStore.DeviceLibrary
}
break;
case StepEnum.SO_16_VerifyBufferState:
MoveInfo.NextMoveStep(StepEnum.SO_17_InOutToBuff);
LogInfo($"出库 {MoveInfo.SLog}:移栽X轴到进出料暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
XAxis_To_P2();
if(!CheckInputMiddleAxisInBuff())
{
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;
case StepEnum.SO_17_InOutToBuff:
MoveInfo.NextMoveStep(StepEnum.SO_18_PutReel);
......@@ -216,10 +223,10 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(StepEnum.SO_19_InOutBackFromBuff);
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成,移栽X轴到待机点P1[{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]");
XAxis_To_P1();
//出库料盘放置成功,将料盘信息写入对应出料口
SetReelInfoToBuff();
break;
case StepEnum.SO_19_InOutBackFromBuff:
//出库料盘放置成功,将料盘信息写入对应出料口
SetReelInfoToBuff();
if (MoveInfo.MoveParam.PosInfoBack == null)
{
MoveInfo.NextMoveStep(StepEnum.SO_20_Finish);
......
......@@ -19,16 +19,109 @@ namespace OnlineStore.DeviceLibrary
{
return false;
}
//public bool InputMiddleAxisCanMove()
/// <summary>
/// 判断旋转轴是否在暂存区,返回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;
//}
//public bool CheckInputMiddleAxisInSafe()
//{
// StoreManager.XLRStore.inputEquip.axiswo
//}
/// <summary>
/// 1=A上入库料暂存区,2=A下出库料暂存区,3=B上入库暂存区,4=B下出库暂存区
/// </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>
......@@ -233,7 +326,7 @@ namespace OnlineStore.DeviceLibrary
{
XAxis_B.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.XAxis_AB_P3, Config.XAxis_B_P3_Speed);
}
}
}
/// <summary>
/// AB面移栽X轴到待机点
/// </summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!