Commit 60d9af23 LN

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

1 个父辈 04f4f1d7
......@@ -201,7 +201,7 @@ namespace OnlineStore.DeviceLibrary
CheckStopWatch(trayCheck2LowWait, 30000, false);
}
if (Config.DIList.ContainsKey(IO_Type.HY_FrontStopCheck) && IOValue(IO_Type.HY_FrontStopCheck).Equals(IO_VALUE.HIGH))
{
{
CheckStopWatch(frontTrayCheckWait, 30000, false);
}
else
......@@ -314,6 +314,19 @@ namespace OnlineStore.DeviceLibrary
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()
{
if (MoveInfo.IsInWait)
......@@ -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))
{
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));
HY03_FrontStopUp();
}
else
{
......
......@@ -328,10 +328,7 @@ namespace OnlineStore.DeviceLibrary
}
}
/// <summary>
/// 判断料盘是否需要移到接驳台
/// </summary>
/// <returns></returns>
private bool ReelNeedMove()
{
try
......@@ -352,8 +349,7 @@ namespace OnlineStore.DeviceLibrary
if (trayInfo.InOrOutStore.Equals(ReelType.OutStore) && inoup.urgentReel.Equals(false) && inoup.cutReel.Equals(false))
{
LogInfo(" 工单料->接驳台:" + "" + inoup.ToStr());
SecondMoveInfo.MoveParam = inoup;
//MoveInfo.MoveParam = inoup;
SecondMoveInfo.MoveParam = inoup;
return true;
}
......@@ -366,11 +362,7 @@ namespace OnlineStore.DeviceLibrary
return false;
}
/// <summary>
/// 判断料盘是否需要移到NG箱
/// </summary>
/// <returns></returns>
private bool ReelNeedToNG()
{
try
......@@ -393,17 +385,17 @@ namespace OnlineStore.DeviceLibrary
SServerManager.cancelPutInTask(Name, trayInfo.InoutPar.WareCode);
}
SecondMoveInfo.MoveParam = inoup;
MoveInfo.MoveParam = inoup;
//MoveInfo.MoveParam = inoup;
return true;
}
else if (trayInfo.InOrOutStore.Equals(ReelType.OutStore) && inoup.urgentReel && this.DeviceID.Equals(217))
{
LogInfo(" 紧急料->NG箱" + "" + inoup.ToStr());
SecondMoveInfo.MoveParam = inoup;
MoveInfo.MoveParam = inoup;
//MoveInfo.MoveParam = inoup;
return true;
}
}
}
catch (Exception ex)
......@@ -514,17 +506,17 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(LineMoveStep.JM_07_ClampCheck))
{
TrayCanGo();
if (IsNgPro())
{
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);
}
else
{
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_TrayCheck2, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck3, IO_VALUE.LOW));
......@@ -549,8 +541,6 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.JM_13_ClampRelax);
OutLog(logName + MoveInfo.SLog + ":夹料气缸放松 ");
CylinderMove(MoveInfo, IO_Type.HY_ClampCylinder_Work, IO_Type.HY_ClampCylinder_Relax);
}
else if (MoveInfo.IsStep(LineMoveStep.JM_13_ClampRelax))
{
......@@ -594,9 +584,7 @@ namespace OnlineStore.DeviceLibrary
{
afterPutCutOK = true;
}
TrayCanGo();
//MoveInfo.EndMove();
//runStatus = LineRunStatus.Runing;
//TrayCanGo();
}
else if (MoveInfo.IsStep(LineMoveStep.JM_16_ReelArrive))
{
......
......@@ -13,15 +13,11 @@ namespace OnlineStore.DeviceLibrary
partial class LineBean
{
#region 定时处理方法
public bool CanProcessLine(bool isCheckSleep = true)
{
//if (runStatus <= LineRunStatus.Wait)
//{
// return false ;
//}
if ( IOManager.IOValue(IO_Type.MotorRun_C1_123, 0).Equals(IO_VALUE.HIGH) &&
{
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_679, 0).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.MotorRun_23458, 0).Equals(IO_VALUE.HIGH))
......@@ -32,7 +28,7 @@ namespace OnlineStore.DeviceLibrary
}
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))
{
return true;
......@@ -56,7 +52,7 @@ namespace OnlineStore.DeviceLibrary
}
//若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 + "】 ");
alarmType = LineAlarmType.None;
......@@ -110,7 +106,7 @@ namespace OnlineStore.DeviceLibrary
ConfigIO io = baseConfig.getWaitIO(wait.IoType);
WarnMsg = checkWaitInfo.Name + "[" + checkWaitInfo.MoveStep + "]等待" + NotOkMsg + " 超时";
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)
......@@ -206,7 +202,7 @@ namespace OnlineStore.DeviceLibrary
}
protected override void OutStoreProcess()
{
}
}
public override bool StartInStoreMove(InOutParam param)
{
return true;
......@@ -299,9 +295,9 @@ namespace OnlineStore.DeviceLibrary
{
//如果移栽已拦截到自己入库的托盘,不能出库
if(move.SecondMoveInfo.MoveType.Equals(LineMoveType.Fixture)&&
move.SecondMoveInfo.MoveStep>=LineMoveStep.MIO_05_WaitTime &&
move.SecondMoveInfo.MoveStep<= LineMoveStep.MO_14_TopDown
if (move.SecondMoveInfo.MoveType.Equals(LineMoveType.Fixture) &&
move.SecondMoveInfo.MoveStep >= LineMoveStep.MIO_05_WaitTime &&
move.SecondMoveInfo.MoveStep <= LineMoveStep.MO_14_TopDown
)
{
return false;
......@@ -315,8 +311,8 @@ namespace OnlineStore.DeviceLibrary
{
return true;
}
else if (move.MoveInfo.IsStep(LineMoveStep.MO_57_CylinderAfter) && move.MoveInfo.IsInWait.Equals(false)
&&move.CylinderIsOk(IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After))
else if (move.MoveInfo.IsStep(LineMoveStep.MO_57_CylinderAfter) && move.MoveInfo.IsInWait.Equals(false)
&& move.CylinderIsOk(IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After))
{
return true;
}
......@@ -339,17 +335,17 @@ namespace OnlineStore.DeviceLibrary
return false;
}
MoveEquip move = MoveEquipMap[id];
if (move.IsDebug)
if (move.IsDebug)
{
return false;
}
if (runStatus > LineRunStatus.Wait && move.runStatus > LineRunStatus.Wait)
{
return true;
}
}
return false;
}
#endregion
......@@ -360,16 +356,16 @@ namespace OnlineStore.DeviceLibrary
/// <param name="deviceID">上料机构ID</param>
/// <param name="trayNum">空托盘号</param>
/// <returns></returns>
internal bool TrayIsReady(int deviceID,out int trayNum)
internal bool TrayIsReady(int deviceID, out int trayNum)
{
trayNum = -1;
bool isDebug = AllEquipMap[deviceID].IsDebug;
if (deviceID.Equals(103))
{
{
if (T3C1TrayIsReady())
{
{
trayNum = T3C1_TrayNum;
return true;
}
......@@ -379,13 +375,14 @@ namespace OnlineStore.DeviceLibrary
{
return true;
}
}else
}
else
{
foreach(HYEquipBase hy in HYEquipMap.Values)
foreach (HYEquipBase hy in HYEquipMap.Values)
{
if (hy.Config.WorkDeviceId.Equals(deviceID))
{
if(hy.TrayIsReady())
if (hy.TrayIsReady())
{
trayNum = hy.currTrayNum;
return true;
......@@ -415,7 +412,7 @@ namespace OnlineStore.DeviceLibrary
{
foreach (HYEquipBase hy in HYEquipMap.Values)
{
if (hy.Config.WorkDeviceId.Equals(deviceID))
{
hy.TrayCanLeave();
......@@ -425,6 +422,53 @@ namespace OnlineStore.DeviceLibrary
}
}
#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());
}
}
}
}
......@@ -170,10 +170,7 @@ namespace OnlineStore.DeviceLibrary
}
}
}
/// <summary>
/// 停止运动
/// </summary>
internal override void StopMove()
{
trayCheck2LowWait.Stop();
......
......@@ -895,6 +895,8 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_18_WaitTime);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " , 等待300ms后阻挡2上升");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
LineManager.Line.Move5Stop2Down(DeviceID);
}
else if (SecondMoveInfo.IsStep(LineMoveStep.MO_18_WaitTime))
{
......@@ -914,10 +916,19 @@ namespace OnlineStore.DeviceLibrary
}
private void MO_16_Stop2Down()
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down);
CheckLog("托盘放行" + SecondMoveInfo.SLog + " ,阻挡气缸1-2下降 ");
IOMove(IO_Type.StopDown2, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopDown2, IO_VALUE.HIGH));
if (LineManager.Line.Move5CanStop2Down(DeviceID))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down);
CheckLog("托盘放行" + SecondMoveInfo.SLog + " ,阻挡气缸1-2下降 ");
IOMove(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
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!