Commit e747d3a2 张东亮

入料机构执行一定次数,只回原入料机构的轴,AB料口不动

1 个父辈 4dba1553
......@@ -133,7 +133,7 @@ namespace OnlineStore.DeviceLibrary
public bool singleOut = false;
public string ToStr()
{
return " [" + barcode + "] [" + PosId + "] [" + PlateW + "x" + PlateH + "]"+ $",hSerial[{hSerial}]" + ",urgentReel [" + urgentReel
return " [" + barcode + "] [" + PosId + "] [" + PlateW + "x" + PlateH + "]"+ $",hSerial[{hSerial}]" +$",isNg[{IsNG}],NgMsg[{NgMsg}]"+ ",urgentReel [" + urgentReel
+ "],cutReel [" + cutReel + "],smallReel [" + smallReel + "],rfid [" + rfid + "],rfidLoc [" + rfidLoc + "],singleOut[" + singleOut + "]";
}
......
......@@ -135,7 +135,29 @@ namespace OnlineStore.DeviceLibrary
return true;
}
/// <summary>
/// 仅复位入料机构的轴,不复位AB料口
/// </summary>
bool OnlyResetInputAxis = false;
/// <summary>
/// 出入库次数达到指定数值时,仅复位入料机构的轴
/// </summary>
int resetCnt = ConfigHelper.Config.Get("InputAxisResetMaxCnt", 100);
/// <summary>
/// 出入库次数
/// </summary>
int inoutCnt = 0;
void InoutEndEvent()
{
inoutCnt++;
if (inoutCnt > resetCnt)
{
OnlyResetInputAxis = true;
LogUtil.info($"入料机构出入库到达{resetCnt},准备复位");
Reset();
}
}
public override bool Reset()
{
SetAllTimer(false);
......@@ -150,20 +172,24 @@ namespace OnlineStore.DeviceLibrary
LogInfo("Reset 开始重置 ");
runStatus = RunStatus.Reset;
MoveInfo.NewMove(MoveType.Reset, new InOutParam());
if (!BatchMove_A.Reset())
{
SetWarnMsg("复位失败:A料口复位失败");
MoveInfo.EndMove();
LogUtil.error("复位失败:A料口复位失败");
return false;
}
if (!BatchMove_B.Reset())
if (!OnlyResetInputAxis)
{
SetWarnMsg("复位失败:B料口复位失败");
MoveInfo.EndMove();
LogUtil.error("复位失败:B料口复位失败");
return false;
if (!BatchMove_A.Reset())
{
SetWarnMsg("复位失败:A料口复位失败");
MoveInfo.EndMove();
LogUtil.error("复位失败:A料口复位失败");
return false;
}
if (!BatchMove_B.Reset())
{
SetWarnMsg("复位失败:B料口复位失败");
MoveInfo.EndMove();
LogUtil.error("复位失败:B料口复位失败");
return false;
}
}
StartReset();
SetAllTimer(true);
return true;
......@@ -173,15 +199,20 @@ namespace OnlineStore.DeviceLibrary
private void StartReset()
{
//复位时设置状态为none
AgvClient.SetStatus(Config.AgvName_B);
AgvClient.SetStatus(Config.AgvName_A);
if (!OnlyResetInputAxis)
{
AgvClient.SetStatus(Config.AgvName_B);
AgvClient.SetStatus(Config.AgvName_A);
}
SetWarnMsg("");
inoutCnt = 0;
alarmType = AlarmType.None;
isInSuddenDown = false;
isNoAirpressure_Check = false;
MoveInfo.NextMoveStep(StepEnum.IR01_Wait);
OnlyResetInputAxis = false;
LogInfo($"复位 {MoveInfo.SLog} :批量轴开始复位");
}
......@@ -341,6 +372,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StepEnum.IR08_WaitBatchMove))
{
if (OnlyResetInputAxis)
{
LogInfo("仅复位入料机构轴完成");
runStatus = RunStatus.Runing;
MoveInfo.EndMove();
return;
}
if ((BatchMove_A.MoveInfo.MoveType.Equals(MoveType.Reset).Equals(false))
&& (BatchMove_B.MoveInfo.MoveType.Equals(MoveType.Reset).Equals(false)))
{
......@@ -439,17 +477,20 @@ namespace OnlineStore.DeviceLibrary
internal override void StopMove()
{
//StopMove时设置状态为none
AgvClient.SetStatus(Config.AgvName_A);
AgvClient.SetStatus(Config.AgvName_B);
if (!OnlyResetInputAxis)
{
AgvClient.SetStatus(Config.AgvName_A);
AgvClient.SetStatus(Config.AgvName_B);
BatchMove_A.StopMove();
BatchMove_B.StopMove();
}
MoveInfo.EndMove();
BatchMove_A.StopMove();
BatchMove_B.StopMove();
UpdownAxis.SuddenStop();
MiddleAxis.SuddenStop();
InOutAxis.SuddenStop();
CloseAllAxis();
}
......@@ -481,7 +522,7 @@ namespace OnlineStore.DeviceLibrary
if (!MoveStop)
{
// if (MoveInfo.MoveType.Equals(MoveType.None) && NoErrorAlarm())
// if (MoveInfo.MoveType.Equals(MoveType.None) && NoErrorAlarm())
{
if (CheckStartOutPos("A下暂存区", BufferDataManager.AOutStoreInfo, IO_Type.FeedingA_Outstore_UnderArea_ReelCheck, BatchMoveList))
{
......@@ -507,7 +548,7 @@ namespace OnlineStore.DeviceLibrary
CheckStartOutPos("B下暂存区", BufferDataManager.BOutStoreInfo, IO_Type.FeedingB_Outstore_UnderArea_ReelCheck, BatchMoveList, true);
}
}
// LogUtil.debug($"入料机构出库检查");
// LogUtil.debug($"入料机构出库检查");
}
if (MoveInfo.MoveType.Equals(MoveType.None) && NoErrorAlarm())
......@@ -535,19 +576,30 @@ namespace OnlineStore.DeviceLibrary
DoorInfo doorinfo = null;
if (posInfo != null && ioval.Equals(IO_VALUE.HIGH))
{
if (!posInfo.IsNG && string.IsNullOrEmpty(posInfo.hSerial))
if (MoveInfo.MoveType.Equals(MoveType.None) && NoErrorAlarm())
{
InOutParam param = new InOutParam(posInfo.ToCopy());
LogInfo($"{posType} 紧急物料{param.PosInfo.ToStr()},准备出库到紧急箱");
StartOutstore(param);
return true;
if (!posInfo.IsNG && string.IsNullOrEmpty(posInfo.hSerial))
{
InOutParam param = new InOutParam(posInfo.ToCopy());
LogInfo($"{posType} 紧急物料{param.PosInfo.ToStr()},准备出库到紧急箱");
StartOutstore(param);
return true;
}
else if (posInfo.IsNG)
{
InOutParam param = new InOutParam(posInfo.ToCopy());
LogInfo($"{posType}物料{param.PosInfo.ToStr()},准备出库到NG箱");
StartOutstore(param);
return true;
}
}
foreach (BatchMoveBean moveBean in BatchMoveList)
{
if (moveBean.MoveInfo.MoveType.Equals(MoveType.Reset) || moveBean.MoveInfo.MoveType.Equals(MoveType.RHome))
continue;
LogUtil.debug($"{moveBean.Name} CheckStartOutPos 处理");
var curhSerial = moveBean.MoveInfo.MoveParam?.PosInfo?.hSerial??"";
var curhSerial = moveBean.MoveInfo.MoveParam?.PosInfo?.hSerial ?? "";
if (!string.IsNullOrEmpty(curhSerial) && curhSerial != posInfo.hSerial)
{
LogInfo($"{posType}的料 hSerial:{posInfo.hSerial},与{moveBean.Name}的 hSerial:{curhSerial} 不符");
......@@ -567,13 +619,6 @@ namespace OnlineStore.DeviceLibrary
StartOutstore(param);
return true;
}
else if (posInfo.IsNG)
{
InOutParam param = new InOutParam(posInfo.ToCopy());
LogInfo($"{posType}物料{param.PosInfo.ToStr()},准备出库到NG箱");
StartOutstore(param);
return true;
}
if (moveBean.MoveInfo.MoveType == MoveType.None)
{
doorinfo = moveBean.doorInfo;
......@@ -591,25 +636,36 @@ namespace OnlineStore.DeviceLibrary
private bool CheckStartOutPos(string posType, InOutPosInfo posInfo, String ioType, List<BatchMoveBean> BatchMoveList, bool shelfAutoLeave = false)
{
// LogUtil.debug($"CheckStartOutPos 【{posType}】,【{posInfo?.ToStr()}】,【{ioType}】");
// LogUtil.debug($"CheckStartOutPos 【{posType}】,【{posInfo?.ToStr()}】,【{ioType}】");
DoorInfo doorinfo = null;
if (posInfo != null && IOValue(ioType).Equals(IO_VALUE.HIGH))
{
// LogUtil.debug($"CheckStartOutPos 处理0");
if (!posInfo.IsNG && string.IsNullOrEmpty(posInfo.hSerial))
// LogUtil.debug($"CheckStartOutPos 处理0");
if (MoveInfo.MoveType.Equals(MoveType.None) && NoErrorAlarm())
{
InOutParam param = new InOutParam(posInfo.ToCopy());
LogInfo($"{posType} 紧急物料{param.PosInfo.ToStr()},准备出库到紧急箱");
StartOutstore(param);
// LogUtil.debug($"CheckStartOutPos 处理1");
return true;
if (!posInfo.IsNG && string.IsNullOrEmpty(posInfo.hSerial))
{
InOutParam param = new InOutParam(posInfo.ToCopy());
LogInfo($"{posType} 紧急物料{param.PosInfo.ToStr()},准备出库到紧急箱");
StartOutstore(param);
// LogUtil.debug($"CheckStartOutPos 处理1");
return true;
}
else if (posInfo.IsNG)
{
InOutParam param = new InOutParam(posInfo.ToCopy());
LogInfo($"{posType}物料{param.PosInfo.ToStr()},准备出库到NG箱");
StartOutstore(param);
return true;
}
}
foreach (BatchMoveBean moveBean in BatchMoveList)
{
// LogUtil.debug($"{moveBean.Name} CheckStartOutPos {moveBean.MoveInfo.MoveType}");
// LogUtil.debug($"{moveBean.Name} CheckStartOutPos {moveBean.MoveInfo.MoveType}");
if (moveBean.MoveInfo.MoveType.Equals(MoveType.Reset) || moveBean.MoveInfo.MoveType.Equals(MoveType.RHome))
continue;
// LogUtil.debug($"{moveBean.Name} CheckStartOutPos 处理");
// LogUtil.debug($"{moveBean.Name} CheckStartOutPos 处理");
var curhSerial = moveBean.MoveInfo.MoveParam?.PosInfo?.hSerial ?? "";
if (!string.IsNullOrEmpty(curhSerial) && curhSerial != posInfo.hSerial)
{
......@@ -644,9 +700,9 @@ namespace OnlineStore.DeviceLibrary
}
else
{
// LogUtil.debug($"CheckStartOutPos 处理-1");
// LogUtil.debug($"CheckStartOutPos 处理-1");
}
// LogUtil.debug($"CheckStartOutPos 处理-2");
// LogUtil.debug($"CheckStartOutPos 处理-2");
return false;
}
......
......@@ -387,6 +387,7 @@ namespace OnlineStore.DeviceLibrary
BufferDataManager.AInStoreInfo = MoveInfo.MoveParam.PosInfo;
MoveInfo.EndMove();
runStatus = RunStatus.Runing;
InoutEndEvent();
}
#endregion
......@@ -481,6 +482,7 @@ namespace OnlineStore.DeviceLibrary
BufferDataManager.BInStoreInfo = MoveInfo.MoveParam.PosInfo;
MoveInfo.EndMove();
runStatus = RunStatus.Runing;
InoutEndEvent();
}
#endregion
......@@ -538,6 +540,7 @@ namespace OnlineStore.DeviceLibrary
MoveLog($" 入料->NG箱放料结束,耗时【{FormUtil.GetSpanStr(span)}】");
MoveInfo.EndMove();
runStatus = RunStatus.Runing;
InoutEndEvent();
}
#endregion
......@@ -1190,6 +1193,7 @@ namespace OnlineStore.DeviceLibrary
runStatus = RunStatus.Runing;
TimeSpan span = DateTime.Now - startOutTime;
MoveLog($"出库->料串 {MoveInfo.SLog}: 放料完成,耗时【{FormUtil.GetSpanStr(span)}】");
InoutEndEvent();
}
#endregion
......@@ -1248,6 +1252,7 @@ namespace OnlineStore.DeviceLibrary
MoveLog($" 出料->NG箱放料结束,耗时【{FormUtil.GetSpanStr(span)}】");
MoveInfo.EndMove();
runStatus = RunStatus.Runing;
InoutEndEvent();
}
#endregion
......@@ -1307,6 +1312,7 @@ namespace OnlineStore.DeviceLibrary
MoveLog($" 出料->紧急箱放料结束,耗时【{FormUtil.GetSpanStr(span)}】");
MoveInfo.EndMove();
runStatus = RunStatus.Runing;
InoutEndEvent();
}
#endregion
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!