Commit f37d8909 LN

皮带线调试

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