Commit 7b17aae1 LN

1

1 个父辈 f4632008
......@@ -206,9 +206,6 @@
<None Include="LineConfig\MoveEquip\Config_MoveEquip_09.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="LineConfig\StoreConfig_line.xlsx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
......
......@@ -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
//判断流水线打开了才可以运行
if (MoveInfo.MoveType.Equals(LineMoveType.None))
{
if (LineManager.Line.CanProcessLine())
if (LineManager.Line.CanProcessLine()&&SecondMoveInfo.MoveType.Equals(LineMoveType.None))
{
StartCheckFixture();
}
if (MoveInfo.MoveType.Equals(LineMoveType.None)&&Config.IsCanOut.Equals(false))
{
StartInStoreP();
}
}
IOTimeOutProcess();
}
......@@ -184,12 +189,12 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 原点返回处理
/// </summary>
protected override void ReturnHomeProcess()
protected override void ReturnHomeProcess()
{
if (MoveInfo.IsInWait)
{
CheckWait(MoveInfo);
}
}
if (!MoveInfo.IsInWait)
{
//流水线各装置复原位,夹料气缸状态不变
......@@ -225,14 +230,7 @@ namespace OnlineStore.DeviceLibrary
{
}
public override bool StartOutStoreMove(InOutParam param)
{
return true;
}
protected override void OutStoreProcess()
{
}
/// <summary>
/// 是否需要拦截当前托盘进行处理
/// </summary>
......@@ -285,6 +283,30 @@ namespace OnlineStore.DeviceLibrary
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
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
}
}
protected override void CheckFixtureProcess()
{
if (!LineManager.Line.LineCanRun())
......@@ -111,7 +111,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(msg);
return;
}
LogInfo(SecondMoveInfo.MoveNum + "***************上个托盘号【" + preTrayNum + "】,当前" + (isFull ? "有料托盘" : "空托盘") + "【" + currMoveTrayNum + "】没有出入料任务,放盘通过~");
// preTrayNum = currMoveTrayNum;
if (TrayManager.ErrorStoreId.Equals(DeviceID))
......@@ -146,7 +146,7 @@ namespace OnlineStore.DeviceLibrary
//托盘号正确
//preTrayNum = num;
//判断盘是空盘,空盘并且编号正确才需要放料盘过去
if (CheckIsNeedOutStore())
if (TrayIsNeedOutStore())
{
SecondMoveInfo.MoveParam = new InOutParam(currMoveTrayNum);
LogInfo(SecondMoveInfo.MoveNum + "*************** 托盘号【" + currMoveTrayNum + "】可以放出料托盘,正在出料中,移栽料盘");
......@@ -220,268 +220,345 @@ namespace OnlineStore.DeviceLibrary
}
#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
public override void StartInStoreMove(InOutParam param)
return true;
}
//阻挡工位有料架
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()
{
{
if (MoveInfo.IsInWait)
{
CheckWait(MoveInfo);
}
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;
}
}
// 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))
// {
// 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 (MoveInfo.MoveStep.Equals(LineMoveStep.AUTO_I01_Wait))
// {
// 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))
// {
// 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))
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I06_SuckingDisc_Up);
// LogUtil.info(Name + "入料: 吸盘上升");
// CylinderMove(IO_Type.ClampingDisc_Up, IO_Type.ClampingDisc_Down, false);
// 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);
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampingDisc_Down, IO_VALUE.LOW));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
// }
// else if (SuckingDisc_WorkCount < 3)
// {
// 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)
// {
// 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
// {
// // 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;
// }
// }
// else
// {
// // 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())
// {
// 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;
// //需要判断入库超时
// 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;
// if (LastCode.Equals(""))
// {
// LogUtil.info(Name + "入料: 未扫到二维码尺寸:【" + LastWidth + "*" + LastHeight + "】,将料盘送出,等待料盘拿走");
// SendTrayOut();
// }
// else
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I08_GetPosId);
// if (LastCode.Equals(""))
// {
// LogUtil.info(Name + "入料: 未扫到二维码尺寸:【" + LastWidth + "*" + LastHeight + "】,将料盘送出,等待料盘拿走");
// SendTrayOut();
// }
// else
// {
// MoveInfo.NextMoveStep(LineMoveStep.AUTO_I08_GetPosId);
// LogUtil.debug(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】");
// 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;
// LogUtil.debug(Name + "入料: 从服务器获取入库PosId,尺寸:【" + LastWidth + "*" + LastHeight + "】二维码【" + LastCode + "】");
}
#endregion
// 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);
// }
#region 出料流程
// } }
// 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;
/// <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
/// <summary>
/// 开始入库移动移动
/// </summary>
public override void StartInStoreMove(InOutParam param)
public override bool StartInStoreMove(InOutParam param)
{
//TODO:发送数据给服务器,获取需要入库的库位号,记录盘信息,料仓位置信息到缓存中
runStatus = LineRunStatus.Busy;
......@@ -475,6 +475,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitCanInstore());
MoveInfo.OneWaitCanEndStep = true;
return true;
}
protected override void InStoreProcess()
......
......@@ -182,14 +182,14 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 入库移动移动
/// </summary>
public override void StartInStoreMove(InOutParam param)
public override bool StartInStoreMove(InOutParam param)
{
string posId = param != null ? param.PosId : "";
//调试模式移栽装置不需要有操作
if (IsDebug)
{
LogInfo("需要入库【" + posId + "】处于调试模式,暂时不再进行出入库操作");
return;
return false ;
}
if (runStatus.Equals(LineRunStatus.Runing))
{
......@@ -201,12 +201,13 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.MI_07_UpDownCylinderDown);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
UpdownDownMove(MoveInfo.MoveParam.PlateH);
return true;
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Up, IO_Type.UpDownCylinder_Down);
}
else
{
LogUtil.error(Name + " 启动一个 入库【" + posId + "】运动失败,当前状态,storeStatus=" + runStatus);
}
}return false;
}
protected override void InStoreProcess()
......
......@@ -202,9 +202,9 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.StopCylinder_Down1, 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()
......
......@@ -246,7 +246,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 开始入库移动移动
/// </summary>
public abstract void StartInStoreMove(InOutParam param);
public abstract bool StartInStoreMove(InOutParam param);
protected abstract void InStoreProcess();
#endregion
......@@ -322,6 +322,7 @@ namespace OnlineStore.DeviceLibrary
return sta;
}
}
public void CylinderMove(LineMoveInfo moveInfo, string IoLowType, string IoHighType)
{
IOMove(IoLowType, IO_VALUE.LOW);
......
......@@ -445,17 +445,46 @@ namespace OnlineStore.DeviceLibrary
#region 入料装置入料处理,11000开始
/// <summary>
/// 入口流水线转动
/// 入口流水线转动,等待入料检测信号消失
/// </summary>
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开始
/// <summary>
/// 上下气缸下降
/// </summary>
PO_01_UpDownCylinderDown =20001,
PO_01_UpDownCylinderDown = 20001,
/// <summary>
/// 等待0.3秒后再夹紧
/// </summary>
......@@ -517,10 +546,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
DL_R_LineCheck=30100,
#endregion
}
public enum LineAlarmType
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!