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())
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))
{
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 = "";
......@@ -26,16 +27,20 @@ namespace OnlineStore.DeviceLibrary
//出口料盘检测信号
private string LineRun_Do = "";
//最后一盘料的位置,>5时可置为0,0表示当前皮带线无料盘
public int LastTrayPosition = 0;
public int LastTrayPosition = 0;
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,9 +92,20 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_01_WaitEntryNoTray))
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_02_WaitExitNoTray);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "等待出口无料盘");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
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))
{
......@@ -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))
{
......@@ -136,7 +152,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_07_LineRun))
{
if (lineRun.InTurn.Equals(false))
{
{
if (equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
......@@ -175,7 +191,7 @@ namespace OnlineStore.DeviceLibrary
if (Line3_TrayCheck.Equals(IO_Type.EntryTray_Check3))
{
equipBean.Line3LastTrayP = 1;
}
}
}
else
{
......@@ -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,8 +215,8 @@ namespace OnlineStore.DeviceLibrary
/// <param name="result"></param>
public void LineEndProcess(bool result)
{
if (result&&LastTrayPosition>0)
{
if (result && LastTrayPosition > 0)
{
LastTrayPosition++;
}
Line3CanRun = true;
......@@ -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
......
......@@ -24,8 +24,8 @@ namespace OnlineStore.DeviceLibrary
}
}
else if (wait.WaitType.Equals(WaitEnum.W202_DLineCanOut))
{
bool result = LineManager.Line.DLineStartOut(Config.DLineEquipNum, Config.DLineLineNum);
{
bool result = LineManager.Line.DLineStartOut(Config.DLineEquipNum, Config.DLineLineNum);
wait.IsEnd = result;
}
return false;
......@@ -38,7 +38,7 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.StopCylinder_Check2).Equals(IO_VALUE.HIGH) && canProcess)
{
if (TrayManager.checkWatch(trayCheckWait, TrayManager.SwTrayWaitTime, true))
{
{
SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + "阻挡气缸1-1上升)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopCylinder2Down);
......@@ -53,13 +53,14 @@ namespace OnlineStore.DeviceLibrary
{
//托盘在第一个阻挡处
SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_00_StopCylinder1Down);
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_00_StopCylinder1Down);
CheckLog(" 托盘检测:" + SecondMoveInfo.SLog + "阻挡气缸1-1下降 ,最多等待" + TrayManager.StopDownWaitTime);
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
}
}else
}
else
{
trayCheckWait.Stop();
}
......@@ -76,7 +77,7 @@ namespace OnlineStore.DeviceLibrary
}
private bool CheckIsNeedOutStore()
{
//TODO 判断是否是需要移栽出料的料盘
//TODO 判断是否是需要移栽出料的料盘
return false;
}
protected override void CheckFixtureProcess()
......@@ -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;
}
return null;
}
private void DisLineCanContiune()
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,33 +427,39 @@ namespace OnlineStore.DeviceLibrary
private bool LineIsReady()
{
OutTrayLineBean outline = GetDisLine();
if (outline != null)
{
return outline.MoveInfo.MoveStep.Equals(LineMoveStep.DLO_04_CanReviceTray);
if (outline.equipBean.runStatus <= LineRunStatus.Wait)
{
return true;
}
return outline.MoveInfo.MoveStep.Equals(LineMoveStep.DLO_04_CanReviceTray);
}
else
{
LogUtil.error(Name + "未找到对应的皮带线");
}
}
return false;
}
private void StartLineOut()
{
OutTrayLineBean outline = GetDisLine();
if (outline != null)
{
outline.StartOut(MoveInfo.MoveParam);
if (outline.equipBean.runStatus <= LineRunStatus.Wait)
{
return;
}
outline.StartOut(MoveInfo.MoveParam);
}
else
{
LogUtil.error(Name + "未找到对应的皮带线");
}
}
#endregion
}
}
#endregion
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!