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();
} }
...@@ -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));
}
}
} }
} }
...@@ -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
#region 入料流程
/// <summary>
/// 判断是否有料架,若有开始入库
/// </summary>
/// <returns></returns>
private bool StartInStoreP()
{
//定位工位有料架
if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.HIGH)){
private bool CheckIsNeedOutStore() return true;
}
//阻挡工位有料架
else if (IOValue(IO_Type.SL_Stop_Check).Equals(IO_VALUE.HIGH))
{ {
throw new NotImplementedException(); 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;
} }
//入料口有料架
#endregion else if (IOValue(IO_Type.SL_Entry_Check).Equals(IO_VALUE.HIGH))
public override void StartInStoreMove(InOutParam param) {
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)
{ {
return; 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);
} }
// if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I01_Wait)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_05_LocationUp))
// { {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I02_MoveToUp); MoveInfo.NextMoveStep(LineMoveStep.FI_06_TrayLocationUp);
// if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH)) InStoreLog(" FI_06_TrayLocationUp 开始:托盘定位气缸前进");
// { IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
// LogUtil.info(Name + " 入料 ,已检测到料盘,轴不需要上升"); CylinderMove(MoveInfo, IO_Type.SL_LocationCylinder_Down, IO_Type.SW4_LocationCylinder_Up);
// } }
// else else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_06_TrayLocationUp))
// { {
// 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))
// {
// IsNeedScanCode();
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I03_ScanCode))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I04_SuckingDisc_Down);
// LogUtil.info(Name + "入料: 扫码结束,二维码【" + LastCode + "】 吸盘开始下降");
// CylinderMove(IO_Type.ClampingDisc_Down, IO_Type.ClampingDisc_Up, true);
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I04_SuckingDisc_Down))
// {
// SuckingDiscWork();
// }
// 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.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW)) }
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I06_SuckingDisc_Up);
// LogUtil.info(Name + "入料: 吸盘上升"); return;
// CylinderMove(IO_Type.ClampingDisc_Up, IO_Type.ClampingDisc_Down, false); } // if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I01_Wait))
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampingDisc_Down, IO_VALUE.LOW)); // {
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500)); // MoveInfo.NextMoveStep(LineMoveStep.AUTO_I02_MoveToUp);
// if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
// {
// LogUtil.info(Name + " 入料 ,已检测到料盘,轴不需要上升");
// }
// else
// {
// 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))
// {
// IsNeedScanCode();
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I03_ScanCode))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I04_SuckingDisc_Down);
// LogUtil.info(Name + "入料: 扫码结束,二维码【" + LastCode + "】 吸盘开始下降");
// CylinderMove(IO_Type.ClampingDisc_Down, IO_Type.ClampingDisc_Up, true);
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I04_SuckingDisc_Down))
// {
// SuckingDiscWork();
// }
// 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.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW))
// else if (SuckingDisc_WorkCount < 3) // {
// { // MoveInfo.NextMoveStep(LineMoveStep.AUTO_I06_SuckingDisc_Up);
// 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))
// {
// } // LogUtil.info(Name + "入料: 吸盘上升");
// } // CylinderMove(IO_Type.ClampingDisc_Up, IO_Type.ClampingDisc_Down, false);
// else // MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampingDisc_Down, IO_VALUE.LOW));
// { // MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
// // WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
// SetWarnMsg(ResourceControl.XiLiaoError);
// StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, WarnObj.WarnMsg, WarnObj.WarnMsg, StoreMoveType.InStore);
// LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败", 105);
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I07_BatchAxisUp))
// {
// // 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))
// {
// TimeSpan span = DateTime.Now - MoveInfo.LastSetpTime;
// //需要判断入库超时 // }
// if (StoreManager.Store.CanStarInOut()) // else if (SuckingDisc_WorkCount < 3)
// { // {
// LastWidth = Config.Default_TrayWidth; // SuckingDiscWork();
// if (LastWidth.Equals(0)) // }
// { // else
// //料盘检测2亮为13寸盘,其他都认为是7寸盘 // {
// if (IOManager.IOValue(IO_Type.WidthCheck2).Equals(IO_VALUE.HIGH)) // //TODO 报警
// { // //WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
// LastWidth = 13; // SetWarnMsg(ResourceControl.XiLiaoError);
// } // StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, WarnObj.WarnMsg, WarnObj.WarnMsg, StoreMoveType.InStore);
// else // LogUtil.error(WarnObj.WarnMsg, 103);
// { // }
// LastWidth = 7; // }
// } // else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I06_SuckingDisc_Up))
// } // {
// LastHeight = GetHeight(); // if (IOManager.IOValue(IO_Type.Clamping_Work).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.Clamping_Relax).Equals(IO_VALUE.LOW))
// BatchInStoreCount++; // // if (IOManager.IOValue(IO_Type.SuckingDisc_Air).Equals(IO_VALUE.HIGH))
// BatchInStoreHeight += LastHeight; // {
// 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 (LastCode.Equals("")) // }
// { // }
// LogUtil.info(Name + "入料: 未扫到二维码尺寸:【" + LastWidth + "*" + LastHeight + "】,将料盘送出,等待料盘拿走"); // else
// SendTrayOut(); // {
// } // // WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
// else // SetWarnMsg(ResourceControl.XiLiaoError);
// { // StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, WarnObj.WarnMsg, WarnObj.WarnMsg, StoreMoveType.InStore);
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I08_GetPosId); // LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败", 105);
// }
// }
// else if (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I07_BatchAxisUp))
// {
// // 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))
// {
// TimeSpan span = DateTime.Now - MoveInfo.LastSetpTime;
// LogUtil.debug(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】"); // //需要判断入库超时
// if (StoreManager.Store.CanStarInOut())
// {
// LastWidth = Config.Default_TrayWidth;
// if (LastWidth.Equals(0))
// {
// //料盘检测2亮为13寸盘,其他都认为是7寸盘
// if (IOManager.IOValue(IO_Type.WidthCheck2).Equals(IO_VALUE.HIGH))
// {
// LastWidth = 13;
// }
// else
// {
// LastWidth = 7;
// }
// }
// LastHeight = GetHeight();
// BatchInStoreCount++;
// BatchInStoreHeight += LastHeight;
// GetInStorePosId(ProcessMsg()); // if (LastCode.Equals(""))
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); // {
// } // LogUtil.info(Name + "入料: 未扫到二维码尺寸:【" + LastWidth + "*" + LastHeight + "】,将料盘送出,等待料盘拿走");
// } // SendTrayOut();
// else if (span.TotalSeconds > 60) // }
// { // else
// StoreManager.Store.LoguStatus(); // {
// //一分钟还未开始,报警超时 // MoveInfo.NextMoveStep(LineMoveStep.AUTO_I08_GetPosId);
// // 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);
// }
// } } // LogUtil.debug(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】");
// private static 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 < 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;
// } // GetInStorePosId(ProcessMsg());
// 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);
// }
// } }
}
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;
}
#endregion
#region 出料流程
/// <summary>
/// 判断当前托盘是否需出库
/// </summary>
/// <returns></returns>
private bool TrayIsNeedOutStore()
{
return false;
}
public override bool StartOutStoreMove(InOutParam param)
{
return true;
}
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>
...@@ -518,9 +547,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -518,9 +547,6 @@ namespace OnlineStore.DeviceLibrary
DL_R_LineCheck=30100, DL_R_LineCheck=30100,
#endregion #endregion
} }
public enum LineAlarmType public enum LineAlarmType
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!