Commit f37d8909 LN

皮带线调试

1 个父辈 65a4d4e9
...@@ -35,8 +35,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -35,8 +35,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-MoveInfo"); MoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-MoveInfo");
SecondMoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-SecondMoveInfo"); SecondMoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-SecondMoveInfo");
int id = DeviceID % 100; 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.DeviceID); TrayLine1 = new OutTrayLineBean("皮带线" + id + "-" + (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); TrayLine2 = new OutTrayLineBean("皮带线" + id + "-" + (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); Line3Turn = new LineTurnBean(DeviceID);
if((DeviceID%100).Equals(1)) if((DeviceID%100).Equals(1))
{ {
...@@ -46,6 +46,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -46,6 +46,7 @@ namespace OnlineStore.DeviceLibrary
{ {
Line3MaxPosition = 22; Line3MaxPosition = 22;
} }
TimerMaxSeconds = 2;
} }
/// <summary> /// <summary>
...@@ -267,51 +268,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -267,51 +268,11 @@ namespace OnlineStore.DeviceLibrary
} }
} }
//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() private void Line3TimerPro()
{ {
//判断皮带线3出口无料,皮带线无操作 //判断皮带线3出口无料,皮带线无操作
if (Line3Turn.InTurn.Equals(false) && if (Line3Turn.InTurn.Equals(false) &&
Line3Turn.CanStart()&&
MoveInfo.MoveType.Equals(LineMoveType.None) && MoveInfo.MoveType.Equals(LineMoveType.None) &&
TrayLine1.Line3CanRun && TrayLine1.Line3CanRun &&
TrayLine2.Line3CanRun && TrayLine2.Line3CanRun &&
...@@ -320,7 +281,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -320,7 +281,7 @@ namespace OnlineStore.DeviceLibrary
{ {
//判断皮带三还有料盘,需要转动一个工位 //判断皮带三还有料盘,需要转动一个工位
UpdateLastP(); UpdateLastP();
LogInfo("皮带线3空闲,且流水线还有料盘,转动一个工位"); LogUtil.debug("皮带线3空闲,且流水线还有料盘,转动一个工位");
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess); Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
} }
......
...@@ -27,9 +27,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -27,9 +27,16 @@ namespace OnlineStore.DeviceLibrary
internal bool CanStartOut(int lineNum) internal bool CanStartOut(int lineNum)
{ {
if (NoAlarm() || runStatus.Equals(LineRunStatus.Runing).Equals(false)) if (NoAlarm() || runStatus>LineRunStatus.HomeMoving)
{ {
return false; if (lineNum.Equals(1) && TrayLine1.MoveInfo.MoveType.Equals(LineMoveType.None))
{
return true;
}
if (lineNum.Equals(2) && TrayLine2.MoveInfo.MoveType.Equals(LineMoveType.None))
{
return true;
}
} }
if (lineNum.Equals(1)) if (lineNum.Equals(1))
{ {
...@@ -69,7 +76,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -69,7 +76,7 @@ namespace OnlineStore.DeviceLibrary
runStatus = LineRunStatus.Busy; runStatus = LineRunStatus.Busy;
MoveInfo.MoveParam = param; MoveInfo.MoveParam = param;
MoveInfo.NewMove(LineMoveType.OutStore); MoveInfo.NewMove(LineMoveType.OutStore);
LogInfo("检测到皮带线3出口有料,等待1000后扫码"); LogInfo("皮带3出口有料,等待1000后扫码");
MoveInfo.NextMoveStep(LineMoveStep.DO_01_WaitTime); MoveInfo.NextMoveStep(LineMoveStep.DO_01_WaitTime);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
LastCodeList = new List<string>(); LastCodeList = new List<string>();
...@@ -107,7 +114,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -107,7 +114,7 @@ namespace OnlineStore.DeviceLibrary
List<string> cameraList = Config.GetCameraList(); List<string> cameraList = Config.GetCameraList();
if (cameraList.Count > 0) if (cameraList.Count > 0)
{ {
LogInfo("检测到皮带线3出口有料,开始扫码"); LogInfo("皮带3出口有料,开始扫码");
MoveInfo.OneWaitCanEndStep = true; MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitDLineScanCode()); MoveInfo.WaitList.Add(WaitResultInfo.WaitDLineScanCode());
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000));
...@@ -131,7 +138,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -131,7 +138,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogInfo("检测到皮带线3出口有料,未取到相机名称,不扫码,等待1000后继续"); LogInfo("皮带3出口有料,未取到相机名称,不扫码,等待1000后继续");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000));
} }
} }
...@@ -146,19 +153,19 @@ namespace OnlineStore.DeviceLibrary ...@@ -146,19 +153,19 @@ namespace OnlineStore.DeviceLibrary
//TODO //TODO
LastWidth = 7; LastWidth = 7;
LastHeight = 8; LastHeight = 8;
LogInfo("检测到皮带线3出口有料,二维码[" + lastCode + "] 获取料盘尺寸【" + LastWidth + "X" + LastHeight + "】"); LogInfo("皮带3出口有料,二维码[" + lastCode + "] 获取料盘尺寸【" + LastWidth + "X" + LastHeight + "】");
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_03_GetTraySize)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_03_GetTraySize))
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_04_SeparateDeviceMove); MoveInfo.NextMoveStep(LineMoveStep.DO_04_SeparateDeviceMove);
if (LastWidth.Equals(7)) if (LastWidth.Equals(7))
{ {
LogInfo("检测到皮带线3出口有料,料盘尺寸【" + LastWidth + "X" + LastHeight + "】上升分盘定位气缸"); LogInfo("皮带3出口有料,料盘尺寸【" + LastWidth + "X" + LastHeight + "】上升分盘定位气缸");
CylinderMove(MoveInfo, IO_Type.SeparateDevice_Down, IO_Type.SeparateDevice_Up); CylinderMove(MoveInfo, IO_Type.SeparateDevice_Down, IO_Type.SeparateDevice_Up);
} }
else else
{ {
LogInfo("检测到皮带线3出口有料,料盘尺寸【" + LastWidth + "X" + LastHeight + "】下降分盘定位气缸"); LogInfo("皮带3出口有料,料盘尺寸【" + LastWidth + "X" + LastHeight + "】下降分盘定位气缸");
CylinderMove(MoveInfo, IO_Type.SeparateDevice_Up, IO_Type.SeparateDevice_Down); CylinderMove(MoveInfo, IO_Type.SeparateDevice_Up, IO_Type.SeparateDevice_Down);
} }
} }
...@@ -167,7 +174,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -167,7 +174,7 @@ namespace OnlineStore.DeviceLibrary
if (TrayLine2.Line3CanRun && TrayLine1.Line3CanRun) if (TrayLine2.Line3CanRun && TrayLine1.Line3CanRun)
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_05_LineRun); MoveInfo.NextMoveStep(LineMoveStep.DO_05_LineRun);
LogInfo("检测到皮带线3出口有料,转动皮带线,同时转动分盘装置"); LogInfo("皮带3出口有料,转动皮带线,同时转动分盘装置");
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH); IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess); Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
...@@ -179,14 +186,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -179,14 +186,14 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_06_Wait_SeparateDevice_Check); MoveInfo.NextMoveStep(LineMoveStep.DO_06_Wait_SeparateDevice_Check);
Line3LastTrayP++; Line3LastTrayP++;
LogInfo("检测到皮带线3出口有料,等待料盘到达分盘装置位置"); LogInfo("皮带3出口有料,等待料盘到达分盘装置位置");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Location_Check3, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Location_Check3, IO_VALUE.HIGH));
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_06_Wait_SeparateDevice_Check)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_06_Wait_SeparateDevice_Check))
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_06_Wait_SeparateDevice_Check); MoveInfo.NextMoveStep(LineMoveStep.DO_07_CRun);
LogInfo("检测到皮带线3出口有料,最多等待2000"); LogInfo("皮带3出口有料,最多等待2000");
MoveInfo.OneWaitCanEndStep = true; MoveInfo.OneWaitCanEndStep = true;
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH); IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
...@@ -196,7 +203,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -196,7 +203,7 @@ namespace OnlineStore.DeviceLibrary
runStatus = LineRunStatus.Runing; runStatus = LineRunStatus.Runing;
MoveInfo.EndMove(); MoveInfo.EndMove();
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW); IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW);
LogInfo("检测到皮带线3出口有料,送料结束,停止皮带线"); LogInfo("皮带3出口有料,送料结束,停止皮带线");
} }
} }
#endregion #endregion
......
...@@ -123,11 +123,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -123,11 +123,12 @@ namespace OnlineStore.DeviceLibrary
} }
private DateTime lastProTimer = DateTime.Now; private DateTime lastProTimer = DateTime.Now;
protected int TimerMaxSeconds = 1;
public void TimerProcess() public void TimerProcess()
{ {
TimeSpan span = DateTime.Now - lastProTimer; TimeSpan span = DateTime.Now - lastProTimer;
if (isInPro && span.TotalSeconds < 1) if (isInPro && span.TotalSeconds < TimerMaxSeconds)
{ {
return; return;
} }
......
...@@ -203,12 +203,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -203,12 +203,7 @@ namespace OnlineStore.DeviceLibrary
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);
}
/// <summary> /// <summary>
/// 转动结束,最后一盘料的位置+1 /// 转动结束,最后一盘料的位置+1
/// </summary> /// </summary>
...@@ -219,6 +214,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -219,6 +214,10 @@ namespace OnlineStore.DeviceLibrary
{ {
LastTrayPosition++; LastTrayPosition++;
} }
if (!Line3CanRun)
{
equipBean.Line3Turn.LastEndTime = DateTime.Now;
}
Line3CanRun = true; Line3CanRun = true;
} }
/// <summary> /// <summary>
...@@ -247,13 +246,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -247,13 +246,14 @@ namespace OnlineStore.DeviceLibrary
public void TimerPro() public void TimerPro()
{ {
//皮带线1出口无料 //皮带线1出口无料
if (IsInTurn().Equals(false) && HasTray()) if (IsInTurn().Equals(false) && HasTray()&&lineRun.CanStart())
{ {
if (MoveInfo.MoveType.Equals(LineMoveType.None) && if (MoveInfo.MoveType.Equals(LineMoveType.None) &&
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.LOW)) equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.LOW))
{ {
//皮带线1出口无料 //皮带线1出口无料
LineStartTurn();
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
} }
else if (MoveInfo.MoveStep <= LineMoveStep.DLO_01_WaitEntryNoTray && else if (MoveInfo.MoveStep <= LineMoveStep.DLO_01_WaitEntryNoTray &&
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH)) equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
...@@ -262,7 +262,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -262,7 +262,8 @@ namespace OnlineStore.DeviceLibrary
if (equipBean.Line3Turn.InTurn.Equals(false) && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW)) if (equipBean.Line3Turn.InTurn.Equals(false) && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW))
{ {
Line3CanRun = false; Line3CanRun = false;
LineStartTurn(); LogUtil.info(Name+ "出口有料盘,转动一个工位,["+LineRun_Do+"] ["+ExitLocation_Check+"]");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
} }
} }
} }
...@@ -277,6 +278,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -277,6 +278,15 @@ namespace OnlineStore.DeviceLibrary
private string LastMoveDO = ""; private string LastMoveDO = "";
private string LastCheckDI = ""; private string LastCheckDI = "";
private int subType = 0; private int subType = 0;
internal DateTime LastEndTime = DateTime.Now;
public bool CanStart()
{
TimeSpan span = DateTime.Now - LastEndTime;
if (span.TotalSeconds > 2)
{
return true;
}return false;
}
public LineTurnBean(int subType) public LineTurnBean(int subType)
{ {
...@@ -303,7 +313,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -303,7 +313,7 @@ namespace OnlineStore.DeviceLibrary
{ {
LastMoveDO = moveDO; LastMoveDO = moveDO;
LastCheckDI = checkDI; LastCheckDI = checkDI;
LogUtil.info("开始转动:" + moveDO); LogUtil.debug("开始转动:" + moveDO+",等待信号:"+checkDI+"");
IOManager.IOMove(moveDO, IO_VALUE.HIGH, subType); IOManager.IOMove(moveDO, IO_VALUE.HIGH, subType);
InTurn = true; InTurn = true;
DateTime startTime = DateTime.Now; DateTime startTime = DateTime.Now;
...@@ -331,7 +341,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -331,7 +341,15 @@ namespace OnlineStore.DeviceLibrary
} }
if (isStop) if (isStop)
{ {
LogUtil.info("验证" + checkDI + "=Low结束:" + result); if (result.Equals(""))
{
LogUtil.debug("验证" + checkDI + "=Low结束:" + result);
}
else
{
LogUtil.info("[" + moveDO + "] [" + checkDI + "] 验证" + checkDI + "=Low结束:" + result);
}
break; break;
} }
} }
...@@ -358,7 +376,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -358,7 +376,15 @@ namespace OnlineStore.DeviceLibrary
} }
if (isStop) if (isStop)
{ {
LogUtil.info("停止运动:" + result + " " + moveDO); if (result.Equals(""))
{
LogUtil.debug("停止运动:" + result + " " + moveDO);
}
else
{
LogUtil.info("[" + moveDO + "] [" + checkDI + "] 停止运动:" + result + " " + moveDO);
}
LastEndTime = DateTime.Now;
IOManager.IOMove(moveDO, IO_VALUE.LOW, subType); IOManager.IOMove(moveDO, IO_VALUE.LOW, subType);
turnEnd?.Invoke(result.Equals("")); turnEnd?.Invoke(result.Equals(""));
InTurn = false; InTurn = false;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!