Commit 60d9af23 LN

1.HY8托盘逻辑修改。2.接驳台提前放行托盘.

1 个父辈 04f4f1d7
...@@ -314,6 +314,19 @@ namespace OnlineStore.DeviceLibrary ...@@ -314,6 +314,19 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_OL_Tray_Check, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_OL_Tray_Check, IO_VALUE.HIGH));
} }
} }
internal void HY03_FrontStopUp()
{
frontTrayCheckWait.Stop();
trayCheck2LowWait.Stop();
MoveInfo.NewMove(LineMoveType.Fixture);
runStatus = LineRunStatus.Busy;
MoveInfo.NextMoveStep(LineMoveStep.HY03_FrontStopUp);
CheckLog("托盘阻挡" + MoveInfo.SLog + " 托盘检测到信号,前阻挡上升");
CheckAndMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
}
protected override void FixtureProcess() protected override void FixtureProcess()
{ {
if (MoveInfo.IsInWait) if (MoveInfo.IsInWait)
...@@ -330,12 +343,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -330,12 +343,7 @@ namespace OnlineStore.DeviceLibrary
{ {
if (IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.LOW) || IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.LOW) || IOValue(IO_Type.HY_TrayCheck).Equals(IO_VALUE.HIGH))
{ {
MoveInfo.NextMoveStep(LineMoveStep.HY03_FrontStopUp); HY03_FrontStopUp();
CheckLog("托盘阻挡" + MoveInfo.SLog + " 托盘检测到信号,前阻挡上升");
CheckAndMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
} }
else else
{ {
......
...@@ -328,10 +328,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -328,10 +328,7 @@ namespace OnlineStore.DeviceLibrary
} }
} }
/// <summary>
/// 判断料盘是否需要移到接驳台
/// </summary>
/// <returns></returns>
private bool ReelNeedMove() private bool ReelNeedMove()
{ {
try try
...@@ -353,7 +350,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -353,7 +350,6 @@ namespace OnlineStore.DeviceLibrary
{ {
LogInfo(" 工单料->接驳台:" + "" + inoup.ToStr()); LogInfo(" 工单料->接驳台:" + "" + inoup.ToStr());
SecondMoveInfo.MoveParam = inoup; SecondMoveInfo.MoveParam = inoup;
//MoveInfo.MoveParam = inoup;
return true; return true;
} }
...@@ -367,10 +363,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -367,10 +363,6 @@ namespace OnlineStore.DeviceLibrary
} }
/// <summary>
/// 判断料盘是否需要移到NG箱
/// </summary>
/// <returns></returns>
private bool ReelNeedToNG() private bool ReelNeedToNG()
{ {
try try
...@@ -393,14 +385,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -393,14 +385,14 @@ namespace OnlineStore.DeviceLibrary
SServerManager.cancelPutInTask(Name, trayInfo.InoutPar.WareCode); SServerManager.cancelPutInTask(Name, trayInfo.InoutPar.WareCode);
} }
SecondMoveInfo.MoveParam = inoup; SecondMoveInfo.MoveParam = inoup;
MoveInfo.MoveParam = inoup; //MoveInfo.MoveParam = inoup;
return true; return true;
} }
else if (trayInfo.InOrOutStore.Equals(ReelType.OutStore) && inoup.urgentReel && this.DeviceID.Equals(217)) else if (trayInfo.InOrOutStore.Equals(ReelType.OutStore) && inoup.urgentReel && this.DeviceID.Equals(217))
{ {
LogInfo(" 紧急料->NG箱" + "" + inoup.ToStr()); LogInfo(" 紧急料->NG箱" + "" + inoup.ToStr());
SecondMoveInfo.MoveParam = inoup; SecondMoveInfo.MoveParam = inoup;
MoveInfo.MoveParam = inoup; //MoveInfo.MoveParam = inoup;
return true; return true;
} }
...@@ -514,17 +506,17 @@ namespace OnlineStore.DeviceLibrary ...@@ -514,17 +506,17 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsStep(LineMoveStep.JM_07_ClampCheck)) else if (MoveInfo.IsStep(LineMoveStep.JM_07_ClampCheck))
{ {
TrayCanGo();
if (IsNgPro()) if (IsNgPro())
{ {
MoveInfo.NextMoveStep(LineMoveStep.JM_11_CylinderGive); MoveInfo.NextMoveStep(LineMoveStep.JM_11_CylinderGive);
OutLog(logName + MoveInfo.SLog + ":接驳台气缸放料 "); OutLog(logName + MoveInfo.SLog + ": 托盘离开,接驳台气缸放料 ");
CylinderMove(MoveInfo, IO_Type.HY_MoveCylinder_Take, IO_Type.HY_MoveCylinder_Give); CylinderMove(MoveInfo, IO_Type.HY_MoveCylinder_Take, IO_Type.HY_MoveCylinder_Give);
} }
else else
{ {
MoveInfo.NextMoveStep(LineMoveStep.JM_10_WaitJNoReel); MoveInfo.NextMoveStep(LineMoveStep.JM_10_WaitJNoReel);
OutLog(logName + MoveInfo.SLog + ":等待接驳台无料 "); OutLog(logName + MoveInfo.SLog + ":托盘离开,等待接驳台无料 ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck1, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck1, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck2, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck2, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck3, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck3, IO_VALUE.LOW));
...@@ -549,8 +541,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -549,8 +541,6 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.JM_13_ClampRelax); MoveInfo.NextMoveStep(LineMoveStep.JM_13_ClampRelax);
OutLog(logName + MoveInfo.SLog + ":夹料气缸放松 "); OutLog(logName + MoveInfo.SLog + ":夹料气缸放松 ");
CylinderMove(MoveInfo, IO_Type.HY_ClampCylinder_Work, IO_Type.HY_ClampCylinder_Relax); CylinderMove(MoveInfo, IO_Type.HY_ClampCylinder_Work, IO_Type.HY_ClampCylinder_Relax);
} }
else if (MoveInfo.IsStep(LineMoveStep.JM_13_ClampRelax)) else if (MoveInfo.IsStep(LineMoveStep.JM_13_ClampRelax))
{ {
...@@ -594,9 +584,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -594,9 +584,7 @@ namespace OnlineStore.DeviceLibrary
{ {
afterPutCutOK = true; afterPutCutOK = true;
} }
TrayCanGo(); //TrayCanGo();
//MoveInfo.EndMove();
//runStatus = LineRunStatus.Runing;
} }
else if (MoveInfo.IsStep(LineMoveStep.JM_16_ReelArrive)) else if (MoveInfo.IsStep(LineMoveStep.JM_16_ReelArrive))
{ {
......
...@@ -17,11 +17,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -17,11 +17,7 @@ namespace OnlineStore.DeviceLibrary
public bool CanProcessLine(bool isCheckSleep = true) public bool CanProcessLine(bool isCheckSleep = true)
{ {
//if (runStatus <= LineRunStatus.Wait) if (IOManager.IOValue(IO_Type.MotorRun_C1_123, 0).Equals(IO_VALUE.HIGH) &&
//{
// return false ;
//}
if ( IOManager.IOValue(IO_Type.MotorRun_C1_123, 0).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.MotorRun_C1_4, 0).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.MotorRun_C1_4, 0).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.MotorRun_679, 0).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.MotorRun_679, 0).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.MotorRun_23458, 0).Equals(IO_VALUE.HIGH)) IOManager.IOValue(IO_Type.MotorRun_23458, 0).Equals(IO_VALUE.HIGH))
...@@ -32,7 +28,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -32,7 +28,7 @@ namespace OnlineStore.DeviceLibrary
} }
public bool OutHyCanProLine() public bool OutHyCanProLine()
{ {
if (IOManager.IOValue(IO_Type.MotorRun_679, 0).Equals(IO_VALUE.HIGH) || if (IOManager.IOValue(IO_Type.MotorRun_679, 0).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.MotorRun_23458, 0).Equals(IO_VALUE.HIGH)) IOManager.IOValue(IO_Type.MotorRun_23458, 0).Equals(IO_VALUE.HIGH))
{ {
return true; return true;
...@@ -56,7 +52,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -56,7 +52,7 @@ namespace OnlineStore.DeviceLibrary
} }
//若BOX和移栽都没有在等待Io的过程中则此Io超时异常可能已经处理过 //若BOX和移栽都没有在等待Io的过程中则此Io超时异常可能已经处理过
if (MoveInfo.IsInWait.Equals(false) && T3C1_MoveInfo.IsInWait.Equals(false) ) if (MoveInfo.IsInWait.Equals(false) && T3C1_MoveInfo.IsInWait.Equals(false))
{ {
LogUtil.info(Name + "清理信号超时报警【" + WarnMsg + "】 "); LogUtil.info(Name + "清理信号超时报警【" + WarnMsg + "】 ");
alarmType = LineAlarmType.None; alarmType = LineAlarmType.None;
...@@ -110,7 +106,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -110,7 +106,7 @@ namespace OnlineStore.DeviceLibrary
ConfigIO io = baseConfig.getWaitIO(wait.IoType); ConfigIO io = baseConfig.getWaitIO(wait.IoType);
WarnMsg = checkWaitInfo.Name + "[" + checkWaitInfo.MoveStep + "]等待" + NotOkMsg + " 超时"; WarnMsg = checkWaitInfo.Name + "[" + checkWaitInfo.MoveStep + "]等待" + NotOkMsg + " 超时";
Alarm(LineAlarmType.IoSingleTimeOut); Alarm(LineAlarmType.IoSingleTimeOut);
LogUtil.error( WarnMsg, 901); LogUtil.error(WarnMsg, 901);
} }
//超过报警时长 //超过报警时长
else if (rwSpan.TotalSeconds > 5 && span.TotalSeconds > 6 && span.TotalSeconds < LineManager.Config.IOSingle_TimerOut * 2) else if (rwSpan.TotalSeconds > 5 && span.TotalSeconds > 6 && span.TotalSeconds < LineManager.Config.IOSingle_TimerOut * 2)
...@@ -299,9 +295,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -299,9 +295,9 @@ namespace OnlineStore.DeviceLibrary
{ {
//如果移栽已拦截到自己入库的托盘,不能出库 //如果移栽已拦截到自己入库的托盘,不能出库
if(move.SecondMoveInfo.MoveType.Equals(LineMoveType.Fixture)&& if (move.SecondMoveInfo.MoveType.Equals(LineMoveType.Fixture) &&
move.SecondMoveInfo.MoveStep>=LineMoveStep.MIO_05_WaitTime && move.SecondMoveInfo.MoveStep >= LineMoveStep.MIO_05_WaitTime &&
move.SecondMoveInfo.MoveStep<= LineMoveStep.MO_14_TopDown move.SecondMoveInfo.MoveStep <= LineMoveStep.MO_14_TopDown
) )
{ {
return false; return false;
...@@ -316,7 +312,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -316,7 +312,7 @@ namespace OnlineStore.DeviceLibrary
return true; return true;
} }
else if (move.MoveInfo.IsStep(LineMoveStep.MO_57_CylinderAfter) && move.MoveInfo.IsInWait.Equals(false) else if (move.MoveInfo.IsStep(LineMoveStep.MO_57_CylinderAfter) && move.MoveInfo.IsInWait.Equals(false)
&&move.CylinderIsOk(IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After)) && move.CylinderIsOk(IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After))
{ {
return true; return true;
} }
...@@ -360,7 +356,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -360,7 +356,7 @@ namespace OnlineStore.DeviceLibrary
/// <param name="deviceID">上料机构ID</param> /// <param name="deviceID">上料机构ID</param>
/// <param name="trayNum">空托盘号</param> /// <param name="trayNum">空托盘号</param>
/// <returns></returns> /// <returns></returns>
internal bool TrayIsReady(int deviceID,out int trayNum) internal bool TrayIsReady(int deviceID, out int trayNum)
{ {
trayNum = -1; trayNum = -1;
...@@ -379,13 +375,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -379,13 +375,14 @@ namespace OnlineStore.DeviceLibrary
{ {
return true; return true;
} }
}else }
else
{ {
foreach(HYEquipBase hy in HYEquipMap.Values) foreach (HYEquipBase hy in HYEquipMap.Values)
{ {
if (hy.Config.WorkDeviceId.Equals(deviceID)) if (hy.Config.WorkDeviceId.Equals(deviceID))
{ {
if(hy.TrayIsReady()) if (hy.TrayIsReady())
{ {
trayNum = hy.currTrayNum; trayNum = hy.currTrayNum;
return true; return true;
...@@ -426,5 +423,52 @@ namespace OnlineStore.DeviceLibrary ...@@ -426,5 +423,52 @@ namespace OnlineStore.DeviceLibrary
} }
#endregion #endregion
internal bool Move5CanStop2Down(int deviceId)
{
if (!deviceId.Equals(5))
{
return true;
}
if (HYEquipMap.ContainsKey(208))
{
HYEquipBase hy8 = HYEquipMap[208];
if (hy8.runStatus <= LineRunStatus.Wait)
{
return true;
}
else if (hy8.MoveInfo.MoveType.Equals(LineMoveType.None))
{
return true;
}
}
return false;
}
internal void Move5Stop2Down(int deviceId)
{
try
{
if (!deviceId.Equals(5))
{
return;
}
if (HYEquipMap.ContainsKey(208))
{
HY_C1Line hy8 = (HY_C1Line)HYEquipMap[208];
if (hy8.runStatus > LineRunStatus.Wait && hy8.MoveInfo.MoveType.Equals(LineMoveType.None))
{
LogUtil.info("进仓05托盘离开," + hy8.Name + "开始等待托盘检测信号 HY03_FrontStopUp");
hy8.HY03_FrontStopUp();
}
}
}
catch (Exception ex)
{
LogUtil.error("Move5Stop2Down[" + deviceId + "]出错:" + ex.ToString());
}
}
} }
} }
...@@ -171,9 +171,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -171,9 +171,6 @@ namespace OnlineStore.DeviceLibrary
} }
} }
/// <summary>
/// 停止运动
/// </summary>
internal override void StopMove() internal override void StopMove()
{ {
trayCheck2LowWait.Stop(); trayCheck2LowWait.Stop();
......
...@@ -895,6 +895,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -895,6 +895,8 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_18_WaitTime); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_18_WaitTime);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " , 等待300ms后阻挡2上升"); CheckLog("托盘放行 " + SecondMoveInfo.SLog + " , 等待300ms后阻挡2上升");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300)); SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
LineManager.Line.Move5Stop2Down(DeviceID);
} }
else if (SecondMoveInfo.IsStep(LineMoveStep.MO_18_WaitTime)) else if (SecondMoveInfo.IsStep(LineMoveStep.MO_18_WaitTime))
{ {
...@@ -914,11 +916,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -914,11 +916,20 @@ namespace OnlineStore.DeviceLibrary
} }
private void MO_16_Stop2Down() private void MO_16_Stop2Down()
{ {
if (LineManager.Line.Move5CanStop2Down(DeviceID))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down);
CheckLog("托盘放行" + SecondMoveInfo.SLog + " ,阻挡气缸1-2下降 "); CheckLog("托盘放行" + SecondMoveInfo.SLog + " ,阻挡气缸1-2下降 ");
IOMove(IO_Type.StopDown2, IO_VALUE.HIGH); IOMove(IO_Type.StopDown2, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopDown2, IO_VALUE.HIGH)); SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopDown2, IO_VALUE.HIGH));
} }
else if (SecondMoveInfo.IsTimeOut(120))
{
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.SLog + "]等待HY8空闲[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
LogUtil.error(WarnMsg, DeviceID * 1000 + 12);
Alarm(LineAlarmType.IoSingleTimeOut);
}
}
#endregion #endregion
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!