Commit 66be7140 张东亮

动作优化

1 个父辈 b9941654
...@@ -86,6 +86,7 @@ ...@@ -86,6 +86,7 @@
<Compile Include="storeBean\boxBean\BoxEquip_ConnectServerTimer.cs" /> <Compile Include="storeBean\boxBean\BoxEquip_ConnectServerTimer.cs" />
<Compile Include="storeBean\boxBean\AutoInoutInfo.cs" /> <Compile Include="storeBean\boxBean\AutoInoutInfo.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute.cs" /> <Compile Include="storeBean\boxBean\BoxEquip_InExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute_Partial.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_OutExecute.cs" /> <Compile Include="storeBean\boxBean\BoxEquip_OutExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_PosDebug.cs" /> <Compile Include="storeBean\boxBean\BoxEquip_PosDebug.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" /> <Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" />
......
...@@ -458,6 +458,55 @@ namespace OnlineStore.DeviceLibrary ...@@ -458,6 +458,55 @@ namespace OnlineStore.DeviceLibrary
/// 料仓入库:如果上料机构入料口有料,则去待机点 /// 料仓入库:如果上料机构入料口有料,则去待机点
/// </summary> /// </summary>
SI_20_ToStandby, SI_20_ToStandby,
#region 两侧同时进行取料
SIB_00_StartInstore,
/// <summary>
///料仓入库:料斗拉取进出轴先运动到P1
/// </summary>
SIB_01_PullAxis_Ready,
/// <summary>
///料仓入库:未在安全位置,行走机构先运动到P1
/// </summary>
SIB_01_MoveAxis_Ready,
/// <summary>
///料仓入库:移栽升降轴到上暂存区取料低点P3/P9
/// </summary>
SIB_01_Pull_Updown_ToPosition,
/// <summary>
/// 料仓入库:到料盘暂存区
/// 1. 行走机构到P2(进出料机构取放点)
/// 2. 移栽升降轴到P3(A上暂存区取料低点)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 4. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SIB_02_ToBufferArea,
/// <summary>
/// 料仓入库:确保暂存区有料盘
/// 如果无料盘则报警
/// </summary>
SIB_03_VerifyBufferState,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SIB_04_InOutToBuff,
/// <summary>
/// 料仓入库:取料盘
/// 1. 移栽升降轴到P2(A上暂存区取料高点)
/// 2. A/B面移栽压紧轴到P3压紧点
/// </summary>
SIB_05_GetReel,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P1
/// </summary>
SIB_06_InOutBackToP1FromBuff,
/// <summary>
/// 料仓入库:清除缓存
/// </summary>
SIB_06_ClearBuffInfo,
#endregion
#endregion #endregion
#region 存储机构自动对位功能 400开始 #region 存储机构自动对位功能 400开始
......
...@@ -313,9 +313,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -313,9 +313,9 @@ namespace OnlineStore.DeviceLibrary
} }
private void StartReset() private void StartReset()
{ {
if(HasDrawerInHook()) if (HasDrawerInHook())
{ {
System.Windows.Forms.MessageBox.Show("检测到拉取机构上的拉钩检测信号亮,不允许复位!", "警告" ); System.Windows.Forms.MessageBox.Show("检测到拉取机构上的拉钩检测信号亮,不允许复位!", "警告");
return; return;
} }
if (!CanReset()) if (!CanReset())
...@@ -746,11 +746,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -746,11 +746,21 @@ namespace OnlineStore.DeviceLibrary
ClearSpecifiedAlarm("B下出料暂存区有料盘,但信号未亮"); ClearSpecifiedAlarm("B下出料暂存区有料盘,但信号未亮");
errUnderB = DateTime.Now; errUnderB = DateTime.Now;
} }
if (IOValue(IO_Type.FeedingA_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH) && BufferDataManager.AInStoreInfo != null
&& IOValue(IO_Type.FeedingB_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH) && BufferDataManager.BInStoreInfo != null)
{
StartInstore(new InOutParam() { PosInfo = BufferDataManager.AInStoreInfo, PosInfoBack = BufferDataManager.BInStoreInfo });
return;
}
//检测A上暂存区是否有料盘 //检测A上暂存区是否有料盘
if (IOValue(IO_Type.FeedingA_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.FeedingA_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH))
{ {
if (timeSpanA.TotalSeconds >= SigLastTime) if (timeSpanA.TotalSeconds >= SigLastTime)
{
StartInstore(new InOutParam(BufferDataManager.AInStoreInfo)); StartInstore(new InOutParam(BufferDataManager.AInStoreInfo));
return;
}
} }
else else
{ {
...@@ -761,7 +771,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -761,7 +771,10 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.FeedingB_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.FeedingB_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.HIGH))
{ {
if (timeSpanB.TotalSeconds >= SigLastTime) if (timeSpanB.TotalSeconds >= SigLastTime)
{
StartInstore(new InOutParam(BufferDataManager.BInStoreInfo)); StartInstore(new InOutParam(BufferDataManager.BInStoreInfo));
return;
}
} }
else else
{ {
...@@ -784,7 +797,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -784,7 +797,7 @@ namespace OnlineStore.DeviceLibrary
bool result = waitAOutStoreList.TryDequeue(out param); bool result = waitAOutStoreList.TryDequeue(out param);
if (result && param != null) if (result && param != null)
{ {
LogInfo("执行A面排队的出库【" + param.PosInfo.ToStr() + "】"); //LogInfo("执行A面排队的出库【" + param.PosInfo.ToStr() + "】");
StartExecuctOut(param); StartExecuctOut(param);
return; return;
} }
...@@ -795,7 +808,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -795,7 +808,7 @@ namespace OnlineStore.DeviceLibrary
bool result = waitAOutStoreList.TryDequeue(out param); bool result = waitAOutStoreList.TryDequeue(out param);
if (result && param != null) if (result && param != null)
{ {
LogInfo("执行A面排队的出库【" + param.PosInfo.ToStr() + "】"); //LogInfo("执行A面排队的出库【" + param.PosInfo.ToStr() + "】");
StartExecuctOut(param); StartExecuctOut(param);
return; return;
} }
...@@ -1013,7 +1026,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -1013,7 +1026,7 @@ namespace OnlineStore.DeviceLibrary
if (StoreManager.DisBoxSecurityAccess) if (StoreManager.DisBoxSecurityAccess)
{ {
} }
else if (IOManager.IOValue(IO_Type.Air_OpenValve,1).Equals(IO_VALUE.HIGH)) else if (IOManager.IOValue(IO_Type.Air_OpenValve, 1).Equals(IO_VALUE.HIGH))
{ {
SecurityAccessStop("空气阀打开,设备暂停"); SecurityAccessStop("空气阀打开,设备暂停");
} }
...@@ -1036,7 +1049,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -1036,7 +1049,7 @@ namespace OnlineStore.DeviceLibrary
IOValue(IO_Type.RightDoor_Limit).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.RightDoor_Limit).Equals(IO_VALUE.HIGH) &&
IOValue(IO_Type.BackDoor_Limit).Equals(IO_VALUE.HIGH)) IOValue(IO_Type.BackDoor_Limit).Equals(IO_VALUE.HIGH))
{ {
IOManager.IOMove(IO_Type.SafeDoor_Close, IO_VALUE.HIGH,1); IOManager.IOMove(IO_Type.SafeDoor_Close, IO_VALUE.HIGH, 1);
SecurityAccessReset(); SecurityAccessReset();
} }
} }
......
...@@ -89,6 +89,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -89,6 +89,18 @@ namespace OnlineStore.DeviceLibrary
{ {
ClearSpecifiedAlarm("入库验证失败"); ClearSpecifiedAlarm("入库验证失败");
} }
if (param.PosInfoBack != null)
{
if (!ReviceInStoreCMD(param.PosInfoBack.PosId, param.PosInfoBack.PlateH, param.PosInfoBack.PlateW, param.PosInfoBack.barcode))
{
SetWarnMsg($" 入库验证失败:{param.PosInfoBack.ToStr()}");
return false;
}
else
{
ClearSpecifiedAlarm("入库验证失败");
}
}
} }
return true; return true;
} }
...@@ -200,7 +212,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -200,7 +212,8 @@ namespace OnlineStore.DeviceLibrary
UpdownAxisTo_P3_P9(); UpdownAxisTo_P3_P9();
ComAxis_To_P2(); ComAxis_To_P2();
MiddleAxis_To_P2(); MiddleAxis_To_P2();
XAxis_To_P1(); //XAxis_To_P1();
BothXAxis_To_P1();
break; break;
case StepEnum.SI_01_MoveAxis_Ready: case StepEnum.SI_01_MoveAxis_Ready:
MoveInfo.NextMoveStep(StepEnum.SI_02_ToBufferArea); MoveInfo.NextMoveStep(StepEnum.SI_02_ToBufferArea);
...@@ -451,7 +464,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -451,7 +464,7 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(StepEnum.SI_07_MiddleToP3); MoveInfo.NextMoveStep(StepEnum.SI_07_MiddleToP3);
LogInfo($"入库 {MoveInfo.SLog}:从{MoveInfo.MoveParam.PosInfo.GetPosSide()}面切换到另一面入库[{MoveInfo.MoveParam.PosInfoBack.barcode}]"); LogInfo($"入库 {MoveInfo.SLog}:从{MoveInfo.MoveParam.PosInfo.GetPosSide()}面切换到另一面入库[{MoveInfo.MoveParam.PosInfoBack.barcode}]");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
MoveInfo.MoveParam.PosInfo = MoveInfo.MoveParam.PosInfoBack.ToCopy(); MoveInfo.MoveParam.PosInfo = MoveInfo.MoveParam.PosInfoBack.ToCopy();
MoveInfo.MoveParam.MoveP = new LineMoveP(Config, MoveInfo.MoveParam.PosInfo.PosId); MoveInfo.MoveParam.MoveP = new LineMoveP(Config, MoveInfo.MoveParam.PosInfo.PosId);
MoveInfo.MoveParam.PosInfoBack = null; MoveInfo.MoveParam.PosInfoBack = null;
......
...@@ -899,6 +899,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -899,6 +899,10 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(StepEnum.SI_01_PullAxis_Ready); MoveInfo.NextMoveStep(StepEnum.SI_01_PullAxis_Ready);
} }
if (MoveInfo.MoveStep.Equals(StepEnum.SIB_00_StartInstore))
{
MoveInfo.NextMoveStep(StepEnum.SIB_01_PullAxis_Ready);
}
else if (MoveInfo.MoveStep.Equals(StepEnum.SO_00_StartOutstore)) else if (MoveInfo.MoveStep.Equals(StepEnum.SO_00_StartOutstore))
{ {
MoveInfo.NextMoveStep(StepEnum.SO_01_PullAxis_Ready); MoveInfo.NextMoveStep(StepEnum.SO_01_PullAxis_Ready);
...@@ -908,10 +912,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -908,10 +912,10 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(StepEnum.SP_00_2_PullAxisReady); MoveInfo.NextMoveStep(StepEnum.SP_00_2_PullAxisReady);
} }
if (!PullAxis_Updown.IsInPosition(Config.PullAxis_Updown_P1)) //if (!PullAxis_Updown.IsInPosition(Config.PullAxis_Updown_P1))
{ //{
PullAxis_Updown.AbsMove(MoveInfo, Config.PullAxis_Updown_P1, Config.PullAxis_Updown_P1_Speed); // PullAxis_Updown.AbsMove(MoveInfo, Config.PullAxis_Updown_P1, Config.PullAxis_Updown_P1_Speed);
} //}
if (PullAxis_Inout.IsInPosition(Config.PullAxis_Inout_CamA) || PullAxis_Inout.IsInPosition(Config.PullAxis_Inout_CamB) if (PullAxis_Inout.IsInPosition(Config.PullAxis_Inout_CamA) || PullAxis_Inout.IsInPosition(Config.PullAxis_Inout_CamB)
|| PullAxis_Inout.IsInPosition(Config.PullAxis_Inout_P1)) || PullAxis_Inout.IsInPosition(Config.PullAxis_Inout_P1))
{ {
...@@ -928,7 +932,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -928,7 +932,7 @@ namespace OnlineStore.DeviceLibrary
PullAxis_Inout.AbsMove(MoveInfo, Config.PullAxis_Inout_CamB, Config.PullAxis_Inout_P1_Speed); PullAxis_Inout.AbsMove(MoveInfo, Config.PullAxis_Inout_CamB, Config.PullAxis_Inout_P1_Speed);
} }
} }
LogInfo($"{InOutType} {MoveInfo.SLog}:料屉拉取升降轴到待机点P1、料屉拉取进出轴到拍照点"); LogInfo($"{InOutType} {MoveInfo.SLog}:料屉拉取进出轴到拍照点");//料屉拉取升降轴到待机点P1、
} }
/// <summary> /// <summary>
/// 判断行走机构是否在安全位置 /// 判断行走机构是否在安全位置
...@@ -966,6 +970,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -966,6 +970,9 @@ namespace OnlineStore.DeviceLibrary
///开始记录 ///开始记录
StartRecord(); StartRecord();
SetBoxStatus(DeviceStatus.InStoreExecute, RunStatus.Busy, param.PosInfo.PosId, param.PosInfo.barcode); SetBoxStatus(DeviceStatus.InStoreExecute, RunStatus.Busy, param.PosInfo.PosId, param.PosInfo.barcode);
if (param.PosInfoBack != null)
MoveInfo.NextMoveStep(StepEnum.SIB_00_StartInstore);
else
MoveInfo.NextMoveStep(StepEnum.SI_00_StartInstore); MoveInfo.NextMoveStep(StepEnum.SI_00_StartInstore);
AxisAlarmFlag = false; AxisAlarmFlag = false;
return true; return true;
...@@ -1036,6 +1043,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -1036,6 +1043,7 @@ namespace OnlineStore.DeviceLibrary
{ {
return; return;
} }
InstoreBothSideExecute();
InstoreExecute(); InstoreExecute();
} }
/// <summary> /// <summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!