Commit 65a4d4e9 LN

1

1 个父辈 b092104a
......@@ -35,8 +35,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-MoveInfo");
SecondMoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-SecondMoveInfo");
int id = DeviceID % 100;
TrayLine1 = new OutTrayLineBean("皮带线" + (id - 1) * 3+1, IO_Type.EntryLocation_Check1, IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1,IO_Type.DLine_Run1, IO_Type.EntryTray_Check3, this);
TrayLine2 = new OutTrayLineBean("皮带线" + (id - 1) * 3+2, IO_Type.EntryLocation_Check2, IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2,IO_Type.DLine_Run2,IO_Type.MiddleTray_Check3,this);
TrayLine1 = new OutTrayLineBean("皮带线" + (id - 1) * 3+1, IO_Type.EntryLocation_Check1, IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1,IO_Type.DLine_Run1, IO_Type.EntryTray_Check3, this.DeviceID);
TrayLine2 = new OutTrayLineBean("皮带线" + (id - 1) * 3+2, IO_Type.EntryLocation_Check2, IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2,IO_Type.DLine_Run2,IO_Type.MiddleTray_Check3, this.DeviceID);
Line3Turn = new LineTurnBean(DeviceID);
if((DeviceID%100).Equals(1))
{
......@@ -87,9 +87,10 @@ namespace OnlineStore.DeviceLibrary
}
private void StartReset()
{
TrayLine1.LastTrayPosition = 0;
TrayLine2.LastTrayPosition = 0;
Line3LastTrayP = 0;
//复位时默认为有托盘
TrayLine1.LastTrayPosition = 1;
TrayLine2.LastTrayPosition = 1;
Line3LastTrayP = 1;
ResetClearData();
lineStatus = LineStatus.ResetMove;
MoveInfo.NextMoveStep(LineMoveStep.DL_R_CylinderDown);
......@@ -108,9 +109,9 @@ namespace OnlineStore.DeviceLibrary
}
//三个流水线都转动到定位亮
TrayLine1.LineStartTurn();
TrayLine2.LineStartTurn();
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
//TrayLine1.LineStartTurn();
//TrayLine2.LineStartTurn();
//Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
isInPro = false;
}
......@@ -247,56 +248,11 @@ namespace OnlineStore.DeviceLibrary
StartOutStoreMove(new InOutParam());
}
}
if (runStatus>=(LineRunStatus.HomeMoving) && NoAlarm())
{
//判断皮带线3出口无料,皮带线无操作
if (Line3Turn.InTurn.Equals(false) &&
MoveInfo.MoveType.Equals(LineMoveType.None) &&
TrayLine1.Line3CanRun &&
TrayLine2.Line3CanRun &&
IOValue(IO_Type.ExitTray_Check3).Equals(IO_VALUE.LOW) &&
Line3HasTray())
{
//判断皮带三还有料盘,需要转动一个工位
UpdateLastP();
LogInfo("皮带线3空闲,且流水线还有料盘,转动一个工位");
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
}
//皮带线1出口无料
if (TrayLine1.IsInTurn().Equals(false) && TrayLine1.MoveInfo.MoveType.Equals(LineMoveType.None) && TrayLine1.HasTray())
{
if (IOValue(IO_Type.ExitTray_Check1).Equals(IO_VALUE.LOW))
{
//皮带线1出口无料
TrayLine1.LineStartTurn();
}
else if (IOValue(IO_Type.ExitTray_Check1).Equals(IO_VALUE.HIGH))
{
//皮带线1出口有料,皮带3入库无料,且在停止状态
if (Line3Turn.InTurn.Equals(false) && IOValue(IO_Type.EntryTray_Check3).Equals(IO_VALUE.LOW))
{
TrayLine1.Line3CanRun = false;
TrayLine1.LineStartTurn();
}
}
}
if (TrayLine2.IsInTurn().Equals(false) && TrayLine2.MoveInfo.MoveType.Equals(LineMoveType.None) && TrayLine2.HasTray())
{
if (IOValue(IO_Type.ExitTray_Check2).Equals(IO_VALUE.LOW))
{
//皮带线1出口无料
TrayLine2.LineStartTurn();
}
else if (IOValue(IO_Type.ExitTray_Check2).Equals(IO_VALUE.HIGH))
{
//皮带线1出口有料,皮带3入库无料,且在停止状态
if (Line3Turn.InTurn.Equals(false) && IOValue(IO_Type.MiddleTray_Check3).Equals(IO_VALUE.LOW))
if (runStatus >= (LineRunStatus.HomeMoving) && NoAlarm())
{
TrayLine2.Line3CanRun = false;
TrayLine2.LineStartTurn();
}
}
}
TrayLine1.TimerPro();
TrayLine2.TimerPro();
Line3TimerPro();
}
IOTimeOutProcess();
......@@ -310,10 +266,63 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.DLine_RunAlarm, IO_VALUE.HIGH);
}
}
private List<int> ListProList = new List<int> { 1,2,3};
private void Line1TimerPro()
//private void Line1TimerPro()
//{
// //皮带线1出口无料
// if (TrayLine1.IsInTurn().Equals(false) && TrayLine1.MoveInfo.MoveType.Equals(LineMoveType.None) && TrayLine1.HasTray())
// {
// if (IOValue(IO_Type.ExitTray_Check1).Equals(IO_VALUE.LOW))
// {
// //皮带线1出口无料
// TrayLine1.LineStartTurn();
// }
// else if (IOValue(IO_Type.ExitTray_Check1).Equals(IO_VALUE.HIGH))
// {
// //皮带线1出口有料,皮带3入库无料,且在停止状态
// if (Line3Turn.InTurn.Equals(false) && IOValue(IO_Type.EntryTray_Check3).Equals(IO_VALUE.LOW))
// {
// TrayLine1.Line3CanRun = false;
// TrayLine1.LineStartTurn();
// }
// }
// }
//}
//private void Line2TimerPro()
//{
// if (TrayLine2.IsInTurn().Equals(false) && TrayLine2.MoveInfo.MoveType.Equals(LineMoveType.None) && TrayLine2.HasTray())
// {
// if (IOValue(IO_Type.ExitTray_Check2).Equals(IO_VALUE.LOW))
// {
// //皮带线1出口无料
// TrayLine2.LineStartTurn();
// }
// else if (IOValue(IO_Type.ExitTray_Check2).Equals(IO_VALUE.HIGH))
// {
// //皮带线1出口有料,皮带3入库无料,且在停止状态
// if (Line3Turn.InTurn.Equals(false) && IOValue(IO_Type.MiddleTray_Check3).Equals(IO_VALUE.LOW))
// {
// TrayLine2.Line3CanRun = false;
// TrayLine2.LineStartTurn();
// }
// }
// }
//}
private void Line3TimerPro()
{
//判断皮带线3出口无料,皮带线无操作
if (Line3Turn.InTurn.Equals(false) &&
MoveInfo.MoveType.Equals(LineMoveType.None) &&
TrayLine1.Line3CanRun &&
TrayLine2.Line3CanRun &&
IOValue(IO_Type.ExitTray_Check3).Equals(IO_VALUE.LOW) &&
Line3HasTray())
{
//判断皮带三还有料盘,需要转动一个工位
UpdateLastP();
LogInfo("皮带线3空闲,且流水线还有料盘,转动一个工位");
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
}
}
private void UpdateLastP()
......
......@@ -186,10 +186,10 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_06_Wait_SeparateDevice_Check))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_06_Wait_SeparateDevice_Check);
LogInfo("检测到皮带线3出口有料,继续转动500");
LogInfo("检测到皮带线3出口有料,最多等待2000");
MoveInfo.OneWaitCanEndStep = true;
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_07_CRun))
{
......
......@@ -15,7 +15,8 @@ namespace OnlineStore.DeviceLibrary
public class OutTrayLineBean
{
public int MaxPosition = 5;
private DischargeLine equipBean = null;
// private DischargeLine equipBean = null;
private int equipBeanId = 301;
private string Line3_TrayCheck = "";
//入口定位信号
private string EntryLocation_Check = "";
......@@ -30,12 +31,16 @@ namespace OnlineStore.DeviceLibrary
private string Name = "";
private LineTurnBean lineRun = null;
internal LineMoveInfo MoveInfo = null;
internal bool Line3CanRun = true ;
public OutTrayLineBean(string name, string entryLocationS, string exitLocationS, string exittrayS, string lineRundo, string line3checkDi, DischargeLine equipBean)
public DischargeLine equipBean
{
get { return LineManager.Line.DisLineMap[equipBeanId]; }
}
internal bool Line3CanRun = true;
public OutTrayLineBean(string name, string entryLocationS, string exitLocationS, string exittrayS, string lineRundo, string line3checkDi, int dId)
{
lineRun = new LineTurnBean(equipBean.DeviceID);
this.equipBean = equipBean;
lineRun = new LineTurnBean(dId);
this.equipBeanId = dId;
//this.equipBean = equipBean;
this.Name = name;
MoveInfo = new LineMoveInfo(1001, name);
this.EntryLocation_Check = entryLocationS;
......@@ -87,10 +92,21 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_01_WaitEntryNoTray))
{
if (IsInTurn().Equals(false) && equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.LOW))
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_02_WaitExitNoTray);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "等待出口无料盘");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
}
else
{
TimeSpan span = DateTime.Now - MoveInfo.LastSetpTime;
if (span.TotalMinutes > 3)
{
LogUtil.error(Name + "等待出库等待出口无料盘超时:" + FormUtil.GetSpanStr(span), 305);
}
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_02_WaitExitNoTray))
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_03_LineRun);
......@@ -123,7 +139,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.DLO_06_LineRun_OutLocation_Check);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "------------料盘已放下--------皮带线转动到出口定位信号亮");
LastTrayPosition = 1;
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check,null);
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, null);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_06_LineRun_OutLocation_Check))
{
......@@ -184,14 +200,14 @@ namespace OnlineStore.DeviceLibrary
}
MoveInfo.NextMoveStep(LineMoveStep.DLO_07_LineRun);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "最后一盘料位置【" + LastTrayPosition + "】,出口有料盘,继续转动一个工位");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check,LineEndProcess);
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
}
public void LineStartTurn()
{
LogUtil.info(Name + "转动一个工位");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check,LineEndProcess);
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
}
/// <summary>
/// 转动结束,最后一盘料的位置+1
......@@ -199,7 +215,7 @@ namespace OnlineStore.DeviceLibrary
/// <param name="result"></param>
public void LineEndProcess(bool result)
{
if (result&&LastTrayPosition>0)
if (result && LastTrayPosition > 0)
{
LastTrayPosition++;
}
......@@ -228,7 +244,29 @@ namespace OnlineStore.DeviceLibrary
return lineRun.InTurn;
}
#endregion
public void TimerPro()
{
//皮带线1出口无料
if (IsInTurn().Equals(false) && HasTray())
{
if (MoveInfo.MoveType.Equals(LineMoveType.None) &&
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.LOW))
{
//皮带线1出口无料
LineStartTurn();
}
else if (MoveInfo.MoveStep <= LineMoveStep.DLO_01_WaitEntryNoTray &&
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
//皮带线1出口有料,皮带3入库无料,且在停止状态
if (equipBean.Line3Turn.InTurn.Equals(false) && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW))
{
Line3CanRun = false;
LineStartTurn();
}
}
}
}
}
public class LineTurnBean
......
......@@ -59,7 +59,8 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
}
}else
}
else
{
trayCheckWait.Stop();
}
......@@ -366,7 +367,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(4000));
//出料皮带线停止出库
DisLineCanContiune();
DisLineContiune();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_10_BeforeAfterCylinderAfter))
{
......@@ -401,15 +402,21 @@ namespace OnlineStore.DeviceLibrary
catch (Exception ex)
{
LogUtil.error(Name + ex.ToString());
}return null;
}
private void DisLineCanContiune()
return null;
}
private void DisLineContiune()
{
OutTrayLineBean outline = GetDisLine();
if (outline != null)
{
if (outline.equipBean.runStatus <= LineRunStatus.Wait)
{
return;
}
outline.MoveInfo.NextMoveStep(LineMoveStep.DLO_05_TrayIsOk);
LogUtil.info(Name +"放料到皮带线完成,皮带线"+outline.MoveInfo.Name+" "+outline.MoveInfo.SLog);
LogUtil.info(Name + "放料到皮带线完成,皮带线" + outline.MoveInfo.Name + " " + outline.MoveInfo.SLog);
}
else
{
......@@ -420,8 +427,13 @@ namespace OnlineStore.DeviceLibrary
private bool LineIsReady()
{
OutTrayLineBean outline = GetDisLine();
if (outline != null)
{
if (outline.equipBean.runStatus <= LineRunStatus.Wait)
{
return true;
}
return outline.MoveInfo.MoveStep.Equals(LineMoveStep.DLO_04_CanReviceTray);
}
else
......@@ -434,8 +446,13 @@ namespace OnlineStore.DeviceLibrary
private void StartLineOut()
{
OutTrayLineBean outline = GetDisLine();
if (outline != null)
{
if (outline.equipBean.runStatus <= LineRunStatus.Wait)
{
return;
}
outline.StartOut(MoveInfo.MoveParam);
}
else
......@@ -443,10 +460,6 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + "未找到对应的皮带线");
}
}
#endregion
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!