Commit 7b17aae1 LN

1

1 个父辈 f4632008
...@@ -206,9 +206,6 @@ ...@@ -206,9 +206,6 @@
<None Include="LineConfig\MoveEquip\Config_MoveEquip_09.csv"> <None Include="LineConfig\MoveEquip\Config_MoveEquip_09.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="LineConfig\StoreConfig_line.xlsx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
......
...@@ -249,8 +249,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -249,8 +249,9 @@ namespace OnlineStore.DeviceLibrary
} }
public override void StartInStoreMove(InOutParam param) public override bool StartInStoreMove(InOutParam param)
{ {
return false;
} }
......
...@@ -110,10 +110,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -110,10 +110,15 @@ namespace OnlineStore.DeviceLibrary
//判断流水线打开了才可以运行 //判断流水线打开了才可以运行
if (MoveInfo.MoveType.Equals(LineMoveType.None)) if (MoveInfo.MoveType.Equals(LineMoveType.None))
{ {
if (LineManager.Line.CanProcessLine()) if (LineManager.Line.CanProcessLine()&&SecondMoveInfo.MoveType.Equals(LineMoveType.None))
{ {
StartCheckFixture(); StartCheckFixture();
} }
if (MoveInfo.MoveType.Equals(LineMoveType.None)&&Config.IsCanOut.Equals(false))
{
StartInStoreP();
}
} }
IOTimeOutProcess(); IOTimeOutProcess();
} }
...@@ -184,12 +189,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -184,12 +189,12 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 原点返回处理 /// 原点返回处理
/// </summary> /// </summary>
protected override void ReturnHomeProcess() protected override void ReturnHomeProcess()
{ {
if (MoveInfo.IsInWait) if (MoveInfo.IsInWait)
{ {
CheckWait(MoveInfo); CheckWait(MoveInfo);
} }
if (!MoveInfo.IsInWait) if (!MoveInfo.IsInWait)
{ {
//流水线各装置复原位,夹料气缸状态不变 //流水线各装置复原位,夹料气缸状态不变
...@@ -225,14 +230,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -225,14 +230,7 @@ namespace OnlineStore.DeviceLibrary
{ {
} }
public override bool StartOutStoreMove(InOutParam param)
{
return true;
}
protected override void OutStoreProcess()
{
}
/// <summary> /// <summary>
/// 是否需要拦截当前托盘进行处理 /// 是否需要拦截当前托盘进行处理
/// </summary> /// </summary>
...@@ -285,6 +283,30 @@ namespace OnlineStore.DeviceLibrary ...@@ -285,6 +283,30 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.FL_TopCylinder_Down, IO_VALUE.LOW); IOMove(IO_Type.FL_TopCylinder_Down, IO_VALUE.LOW);
} }
} }
public void TrayLCylinderBefore(LineMoveInfo moveinfo = null)
{
IOMove(IO_Type.SL_TrayLocationCylinder_After, IO_VALUE.LOW);
IOMove(IO_Type.SL_TrayLocationCylinder_Before, IO_VALUE.HIGH);
if (moveinfo != null)
{
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder1_After, IO_VALUE.LOW));
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder1_Before, IO_VALUE.HIGH));
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder2_After, IO_VALUE.LOW));
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder2_Before, IO_VALUE.HIGH));
}
}
public void TrayLCylinderAfter(LineMoveInfo moveinfo = null)
{
IOMove(IO_Type.SL_TrayLocationCylinder_After, IO_VALUE.HIGH);
IOMove(IO_Type.SL_TrayLocationCylinder_Before, IO_VALUE.LOW);
if (moveinfo != null)
{
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder1_After, IO_VALUE.HIGH));
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder1_Before, IO_VALUE.LOW));
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder2_After, IO_VALUE.HIGH));
moveinfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_TrayLocationCylinder2_Before, IO_VALUE.LOW));
}
}
} }
} }
...@@ -43,7 +43,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -43,7 +43,7 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500)); SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
} }
} }
protected override void CheckFixtureProcess() protected override void CheckFixtureProcess()
{ {
if (!LineManager.Line.LineCanRun()) if (!LineManager.Line.LineCanRun())
...@@ -111,7 +111,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -111,7 +111,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(msg); LogUtil.error(msg);
return; return;
} }
LogInfo(SecondMoveInfo.MoveNum + "***************上个托盘号【" + preTrayNum + "】,当前" + (isFull ? "有料托盘" : "空托盘") + "【" + currMoveTrayNum + "】没有出入料任务,放盘通过~"); LogInfo(SecondMoveInfo.MoveNum + "***************上个托盘号【" + preTrayNum + "】,当前" + (isFull ? "有料托盘" : "空托盘") + "【" + currMoveTrayNum + "】没有出入料任务,放盘通过~");
// preTrayNum = currMoveTrayNum; // preTrayNum = currMoveTrayNum;
if (TrayManager.ErrorStoreId.Equals(DeviceID)) if (TrayManager.ErrorStoreId.Equals(DeviceID))
...@@ -146,7 +146,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -146,7 +146,7 @@ namespace OnlineStore.DeviceLibrary
//托盘号正确 //托盘号正确
//preTrayNum = num; //preTrayNum = num;
//判断盘是空盘,空盘并且编号正确才需要放料盘过去 //判断盘是空盘,空盘并且编号正确才需要放料盘过去
if (CheckIsNeedOutStore()) if (TrayIsNeedOutStore())
{ {
SecondMoveInfo.MoveParam = new InOutParam(currMoveTrayNum); SecondMoveInfo.MoveParam = new InOutParam(currMoveTrayNum);
LogInfo(SecondMoveInfo.MoveNum + "*************** 托盘号【" + currMoveTrayNum + "】可以放出料托盘,正在出料中,移栽料盘"); LogInfo(SecondMoveInfo.MoveNum + "*************** 托盘号【" + currMoveTrayNum + "】可以放出料托盘,正在出料中,移栽料盘");
...@@ -220,268 +220,345 @@ namespace OnlineStore.DeviceLibrary ...@@ -220,268 +220,345 @@ namespace OnlineStore.DeviceLibrary
} }
#endregion #endregion
} }
#endregion
private bool CheckIsNeedOutStore() #region 入料流程
/// <summary>
/// 判断是否有料架,若有开始入库
/// </summary>
/// <returns></returns>
private bool StartInStoreP()
{ {
throw new NotImplementedException(); //定位工位有料架
} if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.HIGH)){
#endregion return true;
public override void StartInStoreMove(InOutParam param) }
//阻挡工位有料架
else if (IOValue(IO_Type.SL_Stop_Check).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_03_InLineStart);
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_Entry_Check, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Stop_Check, IO_VALUE.LOW));
InStoreLog(" 检测到SL_Stop_Check=1, FI_03_InLineStart 开始:进料线体运转,进料阻挡上升,等待SL_Stop_Check=0");
IOMove(IO_Type.Line_Run, IO_VALUE.HIGH);
return true;
}
//入料口有料架
else if (IOValue(IO_Type.SL_Entry_Check).Equals(IO_VALUE.HIGH))
{
MoveInfo.NewMove(LineMoveType.InStore);
MoveInfo.NextMoveStep(LineMoveStep.FI_01_InLineStart);
IOMove(IO_Type.SL_Entry_Check, IO_VALUE.HIGH);
IOMove(IO_Type.Line_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Entry_Check, IO_VALUE.LOW));
InStoreLog("检测到SL_Entry_Check信号,进料线体运转,进料阻挡下降,等待SL_Entry_Check=0");
return true;
}
return false ;
}
public override bool StartInStoreMove(InOutParam param)
{ {
throw new NotImplementedException(); return false;
} }
protected override void InStoreProcess() protected override void InStoreProcess()
{ {
if (MoveInfo.IsInWait) if (MoveInfo.IsInWait)
{ {
CheckWait(MoveInfo); CheckWait(MoveInfo);
} }
if (MoveInfo.IsInWait) if (MoveInfo.IsInWait)
{ {
if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_01_InLineStart))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_02_InLineRun);
IOMove(IO_Type.Line_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Stop_Check, IO_VALUE.HIGH));
InStoreLog(" FI_02_InLineRun 开始:等待SL_Stop_Check=1");
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_02_InLineRun))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_03_InLineStart);
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_Entry_Check, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Stop_Check, IO_VALUE.LOW));
InStoreLog(" FI_03_InLineStart 开始:进料线体运转,进料阻挡上升,等待SL_Stop_Check=0");
IOMove(IO_Type.Line_Run, IO_VALUE.HIGH);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_03_InLineStart))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_04_InLineRun);
IOMove(IO_Type.Line_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.HIGH));
InStoreLog(" FI_04_InLineRun 开始:SL_Location_Check=1");
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_04_InLineRun))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_05_LocationUp);
InStoreLog(" FI_05_LocationUp 开始:进料线体停止,定位气缸上升");
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
CylinderMove(MoveInfo, IO_Type.SL_LocationCylinder_Down, IO_Type.SW4_LocationCylinder_Up);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_05_LocationUp))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_06_TrayLocationUp);
InStoreLog(" FI_06_TrayLocationUp 开始:托盘定位气缸前进");
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
CylinderMove(MoveInfo, IO_Type.SL_LocationCylinder_Down, IO_Type.SW4_LocationCylinder_Up);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_06_TrayLocationUp))
{
}
return; return;
} } // if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I01_Wait))
} // {
// if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I01_Wait)) // MoveInfo.NextMoveStep(LineMoveStep.AUTO_I02_MoveToUp);
// { // if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I02_MoveToUp); // {
// if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH)) // LogUtil.info(Name + " 入料 ,已检测到料盘,轴不需要上升");
// { // }
// LogUtil.info(Name + " 入料 ,已检测到料盘,轴不需要上升"); // else
// } // {
// else // LogUtil.info(Name + " 入料 ,轴上升到检测到料盘,速度【" + Config.Batch_Axis.TargetSpeed + "】");
// { // ACAxisSpeedMove(Config.Batch_Axis, Config.Batch_Axis.TargetSpeed, IO_Type.TrayCheck_LoadMaterial);
// LogUtil.info(Name + " 入料 ,轴上升到检测到料盘,速度【" + Config.Batch_Axis.TargetSpeed + "】"); // }
// ACAxisSpeedMove(Config.Batch_Axis, Config.Batch_Axis.TargetSpeed, IO_Type.TrayCheck_LoadMaterial); // }
// } // else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I02_MoveToUp))
// } // {
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I02_MoveToUp)) // IsNeedScanCode();
// { // }
// IsNeedScanCode(); // else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I03_ScanCode))
// } // {
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I03_ScanCode)) // MoveInfo.NextMoveStep(LineMoveStep.AUTO_I04_SuckingDisc_Down);
// { // LogUtil.info(Name + "入料: 扫码结束,二维码【" + LastCode + "】 吸盘开始下降");
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I04_SuckingDisc_Down); // CylinderMove(IO_Type.ClampingDisc_Down, IO_Type.ClampingDisc_Up, true);
// LogUtil.info(Name + "入料: 扫码结束,二维码【" + LastCode + "】 吸盘开始下降"); // }
// CylinderMove(IO_Type.ClampingDisc_Down, IO_Type.ClampingDisc_Up, true); // else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I04_SuckingDisc_Down))
// } // {
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I04_SuckingDisc_Down)) // SuckingDiscWork();
// { // }
// SuckingDiscWork(); // else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I05_SuckingDisc_Work))
// } // {
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I05_SuckingDisc_Work)) // // if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
// {
// // if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH)) // if (IOManager.IOValue(IO_Type.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I06_SuckingDisc_Up);
// if (IOManager.IOValue(IO_Type.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW)) // LogUtil.info(Name + "入料: 吸盘上升");
// { // CylinderMove(IO_Type.ClampingDisc_Up, IO_Type.ClampingDisc_Down, false);
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I06_SuckingDisc_Up); // MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampingDisc_Down, IO_VALUE.LOW));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
// LogUtil.info(Name + "入料: 吸盘上升"); // }
// CylinderMove(IO_Type.ClampingDisc_Up, IO_Type.ClampingDisc_Down, false); // else if (SuckingDisc_WorkCount < 3)
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampingDisc_Down, IO_VALUE.LOW)); // {
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500)); // SuckingDiscWork();
// }
// else
// {
// //TODO 报警
// //WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
// SetWarnMsg(ResourceControl.XiLiaoError);
// StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, WarnObj.WarnMsg, WarnObj.WarnMsg, StoreMoveType.InStore);
// LogUtil.error(WarnObj.WarnMsg, 103);
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I06_SuckingDisc_Up))
// {
// if (IOManager.IOValue(IO_Type.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW))
// // if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I07_BatchAxisUp);
// LogUtil.info(Name + "入料: 批量轴匀速上升【" + Config.BatchAxis_SlowSpeed + "】");
// ACAxisSpeedMove(Config.Batch_Axis, Config.BatchAxis_SlowSpeed, IO_Type.TrayCheck_LoadMaterial);
// CylinderMove(IO_Type.ClampingDisc_Up, IO_Type.ClampingDisc_Down, true);
// if (Config.Default_TrayWidth.Equals(7))
// {
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck1, IO_VALUE.HIGH));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck2, IO_VALUE.LOW));
// }
// else if (Config.Default_TrayWidth.Equals(13))
// {
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck1, IO_VALUE.HIGH));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck2, IO_VALUE.HIGH));
// }
// else if (Config.Default_TrayWidth.Equals(0))
// {
// } // }
// else if (SuckingDisc_WorkCount < 3) // }
// { // else
// SuckingDiscWork(); // {
// } // // WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
// else // SetWarnMsg(ResourceControl.XiLiaoError);
// { // StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, WarnObj.WarnMsg, WarnObj.WarnMsg, StoreMoveType.InStore);
// //TODO 报警 // LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败", 105);
// //WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败"); // }
// SetWarnMsg(ResourceControl.XiLiaoError); // }
// StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, WarnObj.WarnMsg, WarnObj.WarnMsg, StoreMoveType.InStore); // else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I07_BatchAxisUp))
// LogUtil.error(WarnObj.WarnMsg, 103); // {
// } // // if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
// } // if (IOManager.IOValue(IO_Type.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW))
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I06_SuckingDisc_Up)) // {
// { // TimeSpan span = DateTime.Now - MoveInfo.LastSetpTime;
// if (IOManager.IOValue(IO_Type.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW))
// // if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I07_BatchAxisUp);
// LogUtil.info(Name + "入料: 批量轴匀速上升【" + Config.BatchAxis_SlowSpeed + "】");
// ACAxisSpeedMove(Config.Batch_Axis, Config.BatchAxis_SlowSpeed, IO_Type.TrayCheck_LoadMaterial);
// CylinderMove(IO_Type.ClampingDisc_Up, IO_Type.ClampingDisc_Down, true);
// if (Config.Default_TrayWidth.Equals(7))
// {
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck1, IO_VALUE.HIGH));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck2, IO_VALUE.LOW));
// }
// else if (Config.Default_TrayWidth.Equals(13))
// {
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck1, IO_VALUE.HIGH));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.WidthCheck2, IO_VALUE.HIGH));
// }
// else if (Config.Default_TrayWidth.Equals(0))
// {
// } // //需要判断入库超时
// } // if (StoreManager.Store.CanStarInOut())
// else // {
// { // LastWidth = Config.Default_TrayWidth;
// // WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败"); // if (LastWidth.Equals(0))
// SetWarnMsg(ResourceControl.XiLiaoError); // {
// StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, WarnObj.WarnMsg, WarnObj.WarnMsg, StoreMoveType.InStore); // //料盘检测2亮为13寸盘,其他都认为是7寸盘
// LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败", 105); // if (IOManager.IOValue(IO_Type.WidthCheck2).Equals(IO_VALUE.HIGH))
// } // {
// } // LastWidth = 13;
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I07_BatchAxisUp)) // }
// { // else
// // if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH)) // {
// if (IOManager.IOValue(IO_Type.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW)) // LastWidth = 7;
// { // }
// TimeSpan span = DateTime.Now - MoveInfo.LastSetpTime; // }
// LastHeight = GetHeight();
// BatchInStoreCount++;
// BatchInStoreHeight += LastHeight;
// //需要判断入库超时 // if (LastCode.Equals(""))
// if (StoreManager.Store.CanStarInOut()) // {
// { // LogUtil.info(Name + "入料: 未扫到二维码尺寸:【" + LastWidth + "*" + LastHeight + "】,将料盘送出,等待料盘拿走");
// LastWidth = Config.Default_TrayWidth; // SendTrayOut();
// if (LastWidth.Equals(0)) // }
// { // else
// //料盘检测2亮为13寸盘,其他都认为是7寸盘 // {
// if (IOManager.IOValue(IO_Type.WidthCheck2).Equals(IO_VALUE.HIGH)) // MoveInfo.NextMoveStep(LineMoveStep.AUTO_I08_GetPosId);
// {
// LastWidth = 13;
// }
// else
// {
// LastWidth = 7;
// }
// }
// LastHeight = GetHeight();
// BatchInStoreCount++;
// BatchInStoreHeight += LastHeight;
// if (LastCode.Equals("")) // LogUtil.debug(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】");
// {
// LogUtil.info(Name + "入料: 未扫到二维码尺寸:【" + LastWidth + "*" + LastHeight + "】,将料盘送出,等待料盘拿走"); // GetInStorePosId(ProcessMsg());
// SendTrayOut(); // MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
// } // }
// else // }
// { // else if (span.TotalSeconds > 60)
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I08_GetPosId); // {
// StoreManager.Store.LoguStatus();
// //一分钟还未开始,报警超时
// // WarnMsg = "[" + MoveInfo.MoveStep + "]" + ResourceControl.GetString(ResourceControl.TimeOut, "超时") + "[等待可以入库][" + Math.Round(span.TotalSeconds, 0) + "秒]";
// SetWarnMsg(ResourceControl.WaitInstoreTimeOut, MoveInfo.MoveStep + "", Math.Round(span.TotalSeconds, 0) + "");
// LogUtil.error(WarnObj.WarnMsg, 105);
// StoreManager.Store.Alarm(StoreAlarmType.BatchIoTimeOut, "", WarnObj.WarnMsg, MoveInfo.MoveType);
// }
// }
// else
// {
// //WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
// SetWarnMsg(ResourceControl.XiLiaoError);
// StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败"), WarnObj.WarnMsg, StoreMoveType.InStore);
// LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败", 105);
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I08_GetPosId))
// {
// //判断是否开始入库
// if (StoreManager.Store.MoveInfo.MoveType.Equals(StoreMoveType.InStore) || (!LastPosId.Equals("")))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I09_WaitTrayLeave);
// LogUtil.info(Name + "入料: 开始入库【" + LastPosId + "】,等待料盘拿走");
// //MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Air, IO_VALUE.LOW));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Clamping_Relax, IO_VALUE.HIGH));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Clamping_Work, IO_VALUE.LOW));
// }
// else
// {
// LogUtil.info(Name + "入料: 入库失败,尺寸:【" + LastWidth + "*" + LastHeight + "】将料盘送出,等待料盘拿走");
// SendTrayOut();
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I09_WaitTrayLeave))
// {
// if (StoreManager.Store.MoveInfo.MoveType.Equals(StoreMoveType.None) ||
// (StoreManager.Store.MoveInfo.IsNeedInStore && StoreManager.Store.MoveInfo.MoveStep >= LineMoveStep.SI_09_MoveToBag))
// {
// IsNeedScanCode();
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I10_WaitTrayGo))
// {
// if (StoreManager.Store.CanStarInOut())
// {
// IsNeedScanCode();
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I11_BatchAxisHome))
// {
// //TODO
// LogUtil.info(Name + "入料:已经没有料盘,批量上料结束");
// MoveInfo.EndMove();
// AutoBaitingStatus = StoreRunStatus.Runing;
// }
// else
// {
// LogUtil.error(Name + "未找到步骤:" + MoveInfo.MoveType);
// }
// } }
}
private int StartMovePosition = 0;
private int EndMovePosition = 0;
private int AxisChangeValue = 0;
private int LastHeight = 0;
private int GetHeight()
{
//计算高度
EndMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis);
if (EndMovePosition.Equals(-1))
{
EndMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis);
}
LastHeight = (int)Math.Ceiling(1F * (EndMovePosition - StartMovePosition) / AxisChangeValue);
int addHeight = 0;
//如果检测信号未亮,极限亮了,需要补充高
//if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
//{
// addHeight = Config.LastTrayAddHeight;
//}
LastHeight += addHeight;
string msg = Name + " 计算盘高:上升前【" + StartMovePosition + "】实时【" + EndMovePosition + "】补充【" + addHeight + "】计算后【" + LastHeight + "】";
if (LastHeight <= 8) { LastHeight = 8; }
else
{
LastHeight = (int)Math.Ceiling(1F * LastHeight / 4) * 4;
}
LogUtil.info(msg + ",归类为" + LastHeight);
return LastHeight;
// LogUtil.debug(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】"); }
#endregion
// GetInStorePosId(ProcessMsg()); #region 出料流程
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
// }
// }
// else if (span.TotalSeconds > 60)
// {
// StoreManager.Store.LoguStatus();
// //一分钟还未开始,报警超时
// // WarnMsg = "[" + MoveInfo.MoveStep + "]" + ResourceControl.GetString(ResourceControl.TimeOut, "超时") + "[等待可以入库][" + Math.Round(span.TotalSeconds, 0) + "秒]";
// SetWarnMsg(ResourceControl.WaitInstoreTimeOut, MoveInfo.MoveStep + "", Math.Round(span.TotalSeconds, 0) + "");
// LogUtil.error(WarnObj.WarnMsg, 105);
// StoreManager.Store.Alarm(StoreAlarmType.BatchIoTimeOut, "", WarnObj.WarnMsg, MoveInfo.MoveType);
// }
// }
// else
// {
// //WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
// SetWarnMsg(ResourceControl.XiLiaoError);
// StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败"), WarnObj.WarnMsg, StoreMoveType.InStore);
// LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败", 105);
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I08_GetPosId))
// {
// //判断是否开始入库
// if (StoreManager.Store.MoveInfo.MoveType.Equals(StoreMoveType.InStore) || (!LastPosId.Equals("")))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I09_WaitTrayLeave);
// LogUtil.info(Name + "入料: 开始入库【" + LastPosId + "】,等待料盘拿走");
// //MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SuckingDisc_Air, IO_VALUE.LOW));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Clamping_Relax, IO_VALUE.HIGH));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Clamping_Work, IO_VALUE.LOW));
// }
// else
// {
// LogUtil.info(Name + "入料: 入库失败,尺寸:【" + LastWidth + "*" + LastHeight + "】将料盘送出,等待料盘拿走");
// SendTrayOut();
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I09_WaitTrayLeave))
// {
// if (StoreManager.Store.MoveInfo.MoveType.Equals(StoreMoveType.None) ||
// (StoreManager.Store.MoveInfo.IsNeedInStore && StoreManager.Store.MoveInfo.MoveStep >= LineMoveStep.SI_09_MoveToBag))
// {
// IsNeedScanCode();
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I10_WaitTrayGo))
// {
// if (StoreManager.Store.CanStarInOut())
// {
// IsNeedScanCode();
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I11_BatchAxisHome))
// {
// //TODO
// LogUtil.info(Name + "入料:已经没有料盘,批量上料结束");
// MoveInfo.EndMove();
// AutoBaitingStatus = StoreRunStatus.Runing;
// }
// else
// {
// LogUtil.error(Name + "未找到步骤:" + MoveInfo.MoveType);
// }
// } } /// <summary>
// private static int GetHeight() /// 判断当前托盘是否需出库
//{ /// </summary>
// //计算高度 /// <returns></returns>
// EndMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis); private bool TrayIsNeedOutStore()
// if (EndMovePosition.Equals(-1)) {
// { return false;
// EndMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis); }
// } public override bool StartOutStoreMove(InOutParam param)
// LastHeight = (int)Math.Ceiling(1F * (EndMovePosition - StartMovePosition) / AxisChangeValue); {
// int addHeight = 0; return true;
// //如果检测信号未亮,极限亮了,需要补充高 }
// if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.LOW))
// {
// addHeight = Config.LastTrayAddHeight;
// }
// LastHeight += addHeight;
// string msg = Name + " 计算盘高:上升前【" + StartMovePosition + "】实时【" + EndMovePosition + "】补充【" + addHeight + "】计算后【" + LastHeight + "】";
// if (LastHeight < 0)
// {
// LastHeight = Config.GetDefaultHeight();
// }
// if (Config.Default_TrayWidth.Equals(7))
// {
// //高度=8的料盘容易被测成12的,判断如果计算的高度<12都认为是8mm,
// if (LastHeight >= 20)
// {
// LastHeight = 24;
// }
// else if (LastHeight >= 12)
// {
// LastHeight = 12;
// }
// else
// {
// LastHeight = 8;
// }
// }
// else
// {
// if (LastHeight <= 8) { LastHeight = 8; }
// else
// {
// LastHeight = (int)Math.Ceiling(1F * LastHeight / 4) * 4;
// }
// }
// LogUtil.info(msg + ",归类为" + LastHeight);
// return LastHeight;
// } protected override void OutStoreProcess()
{
}
#endregion
} }
} }
...@@ -462,7 +462,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -462,7 +462,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 开始入库移动移动 /// 开始入库移动移动
/// </summary> /// </summary>
public override void StartInStoreMove(InOutParam param) public override bool StartInStoreMove(InOutParam param)
{ {
//TODO:发送数据给服务器,获取需要入库的库位号,记录盘信息,料仓位置信息到缓存中 //TODO:发送数据给服务器,获取需要入库的库位号,记录盘信息,料仓位置信息到缓存中
runStatus = LineRunStatus.Busy; runStatus = LineRunStatus.Busy;
...@@ -475,6 +475,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -475,6 +475,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitCanInstore()); MoveInfo.WaitList.Add(WaitResultInfo.WaitCanInstore());
MoveInfo.OneWaitCanEndStep = true; MoveInfo.OneWaitCanEndStep = true;
return true;
} }
protected override void InStoreProcess() protected override void InStoreProcess()
......
...@@ -182,14 +182,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -182,14 +182,14 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库移动移动 /// 入库移动移动
/// </summary> /// </summary>
public override void StartInStoreMove(InOutParam param) public override bool StartInStoreMove(InOutParam param)
{ {
string posId = param != null ? param.PosId : ""; string posId = param != null ? param.PosId : "";
//调试模式移栽装置不需要有操作 //调试模式移栽装置不需要有操作
if (IsDebug) if (IsDebug)
{ {
LogInfo("需要入库【" + posId + "】处于调试模式,暂时不再进行出入库操作"); LogInfo("需要入库【" + posId + "】处于调试模式,暂时不再进行出入库操作");
return; return false ;
} }
if (runStatus.Equals(LineRunStatus.Runing)) if (runStatus.Equals(LineRunStatus.Runing))
{ {
...@@ -201,12 +201,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -201,12 +201,13 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.MI_07_UpDownCylinderDown); MoveInfo.NextMoveStep(LineMoveStep.MI_07_UpDownCylinderDown);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
UpdownDownMove(MoveInfo.MoveParam.PlateH); UpdownDownMove(MoveInfo.MoveParam.PlateH);
return true;
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Up, IO_Type.UpDownCylinder_Down); // CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Up, IO_Type.UpDownCylinder_Down);
} }
else else
{ {
LogUtil.error(Name + " 启动一个 入库【" + posId + "】运动失败,当前状态,storeStatus=" + runStatus); LogUtil.error(Name + " 启动一个 入库【" + posId + "】运动失败,当前状态,storeStatus=" + runStatus);
} }return false;
} }
protected override void InStoreProcess() protected override void InStoreProcess()
......
...@@ -202,9 +202,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -202,9 +202,9 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW); IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW); IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW);
} }
public override void StartInStoreMove(InOutParam param) public override bool StartInStoreMove(InOutParam param)
{ {
return false;
} }
protected override void InStoreProcess() protected override void InStoreProcess()
......
...@@ -246,7 +246,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -246,7 +246,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 开始入库移动移动 /// 开始入库移动移动
/// </summary> /// </summary>
public abstract void StartInStoreMove(InOutParam param); public abstract bool StartInStoreMove(InOutParam param);
protected abstract void InStoreProcess(); protected abstract void InStoreProcess();
#endregion #endregion
...@@ -322,6 +322,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -322,6 +322,7 @@ namespace OnlineStore.DeviceLibrary
return sta; return sta;
} }
} }
public void CylinderMove(LineMoveInfo moveInfo, string IoLowType, string IoHighType) public void CylinderMove(LineMoveInfo moveInfo, string IoLowType, string IoHighType)
{ {
IOMove(IoLowType, IO_VALUE.LOW); IOMove(IoLowType, IO_VALUE.LOW);
......
...@@ -445,17 +445,46 @@ namespace OnlineStore.DeviceLibrary ...@@ -445,17 +445,46 @@ namespace OnlineStore.DeviceLibrary
#region 入料装置入料处理,11000开始 #region 入料装置入料处理,11000开始
/// <summary> /// <summary>
/// 入口流水线转动 /// 入口流水线转动,等待入料检测信号消失
/// </summary> /// </summary>
FI_01_InLineStart=11001, FI_01_InLineStart=11001,
#endregion
/// <summary>
/// 入口流水线转动,等待阻挡气缸信号到位
/// </summary>
FI_02_InLineRun=11002,
/// <summary>
/// 入口流水线转动,等待入料阻挡信号消失
/// </summary>
FI_03_InLineStart = 11003,
/// <summary>
/// 入口流水线转动,等待定位工位检测到位
/// </summary>
FI_04_InLineRun = 11004,
/// <summary>
/// 已有工位检测信号,定位气缸上升
/// </summary>
FI_05_LocationUp=11005,
/// <summary>
/// 托盘定位气缸上升
/// </summary>
FI_06_TrayLocationUp=11006,
#endregion
#region 入料装置出料处理,12000开始
/// <summary>
///
/// </summary>
FO_01_OutLineStart = 11001,
#endregion
#region 出料装置移栽出料,20000开始 #region 出料装置移栽出料,20000开始
/// <summary> /// <summary>
/// 上下气缸下降 /// 上下气缸下降
/// </summary> /// </summary>
PO_01_UpDownCylinderDown =20001, PO_01_UpDownCylinderDown = 20001,
/// <summary> /// <summary>
/// 等待0.3秒后再夹紧 /// 等待0.3秒后再夹紧
/// </summary> /// </summary>
...@@ -517,10 +546,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -517,10 +546,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
DL_R_LineCheck=30100, DL_R_LineCheck=30100,
#endregion #endregion
} }
public enum LineAlarmType public enum LineAlarmType
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!