Commit e3121344 LN

出料气缸加长,皮带线逻辑修改。

1 个父辈 b96e30eb
...@@ -214,12 +214,12 @@ namespace OnlineStore.AssemblyLine ...@@ -214,12 +214,12 @@ namespace OnlineStore.AssemblyLine
btnLine1Test.Text = line1Name + "出库测试"; btnLine1Test.Text = line1Name + "出库测试";
btnLine2Test.Text = line2Name + "出库测试"; btnLine2Test.Text = line2Name + "出库测试";
this.cmbLineType.Items.AddRange(new object[] { this.cmbLineType.Items.AddRange(new object[] {
line1Name+"运转-入口定位", //line1Name+"运转-入口定位",
line2Name+"运转-入口定位", //line2Name+"运转-入口定位",
line3Name+"运转测试", line3Name+"运转测试",
line1Name+"运转-出口定位", line1Name+"运转测试",
line2Name+"运转-出口定位"}); line2Name+"运转测试"});
cmbLineType.SelectedIndex = 2; cmbLineType.SelectedIndex = 0;
IsLoad = true; IsLoad = true;
} }
...@@ -362,29 +362,19 @@ namespace OnlineStore.AssemblyLine ...@@ -362,29 +362,19 @@ namespace OnlineStore.AssemblyLine
return; return;
} }
int index = cmbLineType.SelectedIndex; int index = cmbLineType.SelectedIndex;
string moveIo = IO_Type.DLine_Run1; string moveIo = IO_Type.DLine_Run3;
string waitIo = IO_Type.EntryLocation_Check1; string waitIo = IO_Type.Location_Check3;
if (index.Equals(1)) if (index.Equals(1))
{ {
moveIo = IO_Type.DLine_Run2;
waitIo = IO_Type.EntryLocation_Check2;
}
else if (index.Equals(2))
{
moveIo = IO_Type.DLine_Run3;
waitIo = IO_Type.Location_Check3;
}
else if (index.Equals(3))
{
moveIo = IO_Type.DLine_Run1; moveIo = IO_Type.DLine_Run1;
waitIo = IO_Type.ExitLocation_Check1; waitIo = IO_Type.ExitLocation_Check1;
} }
else if (index.Equals(4)) else if (index.Equals(2))
{ {
moveIo = IO_Type.DLine_Run2; moveIo = IO_Type.DLine_Run2;
waitIo = IO_Type.ExitLocation_Check2; waitIo = IO_Type.ExitLocation_Check2;
} }
dlineRun.StartLineRun(moveIo, waitIo,null); dlineRun.StartLineRun(moveIo, waitIo,null);
cmbLineType.Enabled = false; cmbLineType.Enabled = false;
} }
......
...@@ -291,8 +291,11 @@ IO_Value增加None的定义,防止误操作 ...@@ -291,8 +291,11 @@ IO_Value增加None的定义,防止误操作
20200312 20200312
皮带线判断修改 皮带线判断修改
皮带线3扫码的时候不能开始送料。
短皮带线逻辑修改:对应气缸加长修改。
扫码修改:去掉不需要的缓存。
阻挡1下降条件修改:等待1离开或者2到达都可以继续。
上料1模块,等待500ms再下降顶升气缸
......
...@@ -46,14 +46,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -46,14 +46,14 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo = new LineMoveInfo(DeviceID, "[" + hengyiName + "-SMove]"); SecondMoveInfo = new LineMoveInfo(DeviceID, "[" + hengyiName + "-SMove]");
if (id.Equals(1)) if (id.Equals(1))
{ {
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(330 + ((id - 1) * 3 + 1) , "皮带线" + "_" + ((id - 1) * 3 + 1) + " ", 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(330 + ((id - 1) * 3 + 2),"皮带线" + "_" + ((id - 1) * 3 + 2) + " ", IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2, IO_Type.DLine_Run2, IO_Type.MiddleTray_Check3, this.DeviceID);
} }
else else
{ {
IsNewType = true; IsNewType = true;
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.MiddleTray_Check3, this.DeviceID); TrayLine1 = new OutTrayLineBean(330+ ((id - 1) * 3 + 1),"皮带线" + "_" + ((id - 1) * 3 + 1) + " ", IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1, IO_Type.DLine_Run1, IO_Type.MiddleTray_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.EntryTray_Check3, this.DeviceID); TrayLine2 = new OutTrayLineBean(330+((id - 1) * 3 + 2),"皮带线" + "_" + ((id - 1) * 3 + 2) + " ", IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2, IO_Type.DLine_Run2, IO_Type.EntryTray_Check3, this.DeviceID);
} }
Line3Turn = new LineTurnBean(DeviceID); Line3Turn = new LineTurnBean(DeviceID);
if ((DeviceID % 100).Equals(1)) if ((DeviceID % 100).Equals(1))
...@@ -273,10 +273,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -273,10 +273,10 @@ namespace OnlineStore.DeviceLibrary
StartNOutStoreMove(new InOutParam()); StartNOutStoreMove(new InOutParam());
} }
} }
else else
{ {
//皮带线3出口有料,分盘定位装置无料 //皮带线3出口有料,分盘定位装置无料
if (Line3TurnIsStop() && IOValue(IO_Type.SeparateDevice_Check).Equals(IO_VALUE.LOW) && StationInfo_NG.TrayValue.Equals(IO_VALUE.HIGH)) if (Line3TurnIsStop() && IOValue(IO_Type.SeparateDevice_Check).Equals(IO_VALUE.LOW) && StationInfo_NG.TrayValue.Equals(IO_VALUE.HIGH)&&IsInScanCode.Equals(false))
{ {
StartOutStoreMove(new InOutParam()); StartOutStoreMove(new InOutParam());
} }
......
...@@ -328,10 +328,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -328,10 +328,12 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DON_07_SeparateCheck)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DON_07_SeparateCheck))
{ {
MoveInfo.NextMoveStep(LineMoveStep.DON_08_CRun); MoveInfo.NextMoveStep(LineMoveStep.DON_08_CRun);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
if (IOValue(IO_Type.SeparateDevice_Check).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.SeparateDevice_Check).Equals(IO_VALUE.HIGH))
{ {
int robotIndex = GetRobotIndex(); int robotIndex = GetRobotIndex();
LogUtil.info(hengyiName + MoveInfo.SLog + "送料,接驳台有料盘,等待2000,调用arriveRobotLocation=" + robotIndex); LogUtil.info(hengyiName + MoveInfo.SLog + "送料,接驳台有料盘,等待2000,调用arriveRobotLocation=" + robotIndex+"["+StationInfo_Move.CodeStr+"]");
SServerManager.arriveRobotLocation(Name, robotIndex, StationInfo_Move.CodeStr); SServerManager.arriveRobotLocation(Name, robotIndex, StationInfo_Move.CodeStr);
} }
...@@ -339,8 +341,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -339,8 +341,6 @@ namespace OnlineStore.DeviceLibrary
{ {
LogUtil.info(hengyiName + MoveInfo.SLog + "送料,接驳台无料盘,等待2000,"); LogUtil.info(hengyiName + MoveInfo.SLog + "送料,接驳台无料盘,等待2000,");
} }
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DON_08_CRun)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DON_08_CRun))
{ {
......
...@@ -497,7 +497,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -497,7 +497,7 @@ namespace OnlineStore.DeviceLibrary
//} //}
if (wait.IsEnd) if (wait.IsEnd)
{ {
if (MoveInfo.OneWaitCanEndStep) if (moveInfo.OneWaitCanEndStep)
{ {
isOk = true; isOk = true;
break; break;
...@@ -505,7 +505,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -505,7 +505,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
if (!MoveInfo.OneWaitCanEndStep) if (!moveInfo.OneWaitCanEndStep)
{ {
isOk = false; isOk = false;
break; break;
...@@ -570,19 +570,33 @@ namespace OnlineStore.DeviceLibrary ...@@ -570,19 +570,33 @@ namespace OnlineStore.DeviceLibrary
protected void InLog(string msg) protected void InLog(string msg)
{ {
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : ""; string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
if (String.IsNullOrEmpty( posId)) if (baseConfig.DType.Equals(DeviceType.MoveEquip))
{ {
LogUtil.info(Name + " " + msg); if (String.IsNullOrEmpty(posId))
{
LogUtil.debug(Name + " " + msg);
}
else
{
LogUtil.debug(Name + " " + "[" + posId + "]" + msg);
}
} }
else else
{ {
LogUtil.info(Name + " " + "[" + posId + "]" + msg); if (String.IsNullOrEmpty(posId))
{
LogUtil.info(Name + " " + msg);
}
else
{
LogUtil.info(Name + " " + "[" + posId + "]" + msg);
}
} }
} }
protected void OutLog(string msg) protected void OutLog(string msg)
{ {
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : ""; string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
if (baseConfig.DType.Equals(DeviceType.ProvidingEquip)) if (baseConfig.DType.Equals(DeviceType.ProvidingEquip) || baseConfig.DType.Equals(DeviceType.MoveEquip))
{ {
if (String.IsNullOrEmpty(posId)) if (String.IsNullOrEmpty(posId))
{ {
......
...@@ -883,8 +883,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -883,8 +883,14 @@ namespace OnlineStore.DeviceLibrary
InLog(MoveInfo.SLog + " 提前下降顶升气缸 ,环形线定位气缸先下降"); InLog(MoveInfo.SLog + " 提前下降顶升气缸 ,环形线定位气缸先下降");
CylinderMove(null, IO_Type.SW_LocationCylinder_Up, IO_Type.SW_LocationCylinder_Down); CylinderMove(null, IO_Type.SW_LocationCylinder_Up, IO_Type.SW_LocationCylinder_Down);
if (Config.SidesWayNum.Equals(1)) if (Config.SidesWayNum.Equals(1))
{ {
CylinderMove(null, IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down); Task.Factory.StartNew(delegate
{
//需要等待500再下降
Thread.Sleep(500);
CylinderMove(null, IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down);
});
} }
} }
else else
......
...@@ -154,7 +154,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -154,7 +154,7 @@ namespace OnlineStore.DeviceLibrary
} }
if (wait.IsEnd) if (wait.IsEnd)
{ {
if (MoveInfo.OneWaitCanEndStep) if (checkWaitInfo.OneWaitCanEndStep)
{ {
isOk = true; isOk = true;
break; break;
...@@ -162,7 +162,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -162,7 +162,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
if (!MoveInfo.OneWaitCanEndStep) if (!checkWaitInfo.OneWaitCanEndStep)
{ {
isOk = false; isOk = false;
break; break;
......
...@@ -14,12 +14,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -14,12 +14,9 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public class OutTrayLineBean public class OutTrayLineBean
{ {
public int MaxPosition = 5; public int MaxPosition = 5;
// private DischargeLine equipBean = null;
private int equipBeanId = 301; private int equipBeanId = 301;
private string Line3_TrayCheck = ""; private string Line3_TrayCheck = "";
//入口定位信号
private string EntryLocation_Check = "";
//出口定位信号 //出口定位信号
private string ExitLocation_Check = ""; private string ExitLocation_Check = "";
//出口料盘检测信号 //出口料盘检测信号
...@@ -36,14 +33,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -36,14 +33,14 @@ namespace OnlineStore.DeviceLibrary
get { return LineManager.Line.DisLineMap[equipBeanId]; } get { return LineManager.Line.DisLineMap[equipBeanId]; }
} }
internal bool Line3CanRun = true; internal bool Line3CanRun = true;
public OutTrayLineBean(string name, string entryLocationS, string exitLocationS, string exittrayS, string lineRundo, string line3checkDi, int dId) private int Id = 0;
public OutTrayLineBean(int id, string name, string exitLocationS, string exittrayS, string lineRundo, string line3checkDi, int dId)
{ {
this.Id = id;
lineRun = new LineTurnBean(dId); lineRun = new LineTurnBean(dId);
this.equipBeanId = dId; this.equipBeanId = dId;
//this.equipBean = equipBean;
this.Name = name; this.Name = name;
MoveInfo = new LineMoveInfo(1001, name); MoveInfo = new LineMoveInfo(Id, name);
this.EntryLocation_Check = entryLocationS;
this.ExitLocation_Check = exitLocationS; this.ExitLocation_Check = exitLocationS;
this.ExitTray_Check = exittrayS; this.ExitTray_Check = exittrayS;
this.LineRun_Do = lineRundo; this.LineRun_Do = lineRundo;
...@@ -57,34 +54,69 @@ namespace OnlineStore.DeviceLibrary ...@@ -57,34 +54,69 @@ namespace OnlineStore.DeviceLibrary
Line3CanRun = true; Line3CanRun = true;
} }
#region 出库处理 #region 出库处理
// private string posId = ""; // private string posId = "";
public bool StartOut(InOutParam moveParam) public bool StartOut(InOutParam moveParam)
{ {
if (LineTurnIsStop() && MoveInfo.MoveType.Equals(LineMoveType.None) && (equipBean.runStatus .Equals(LineRunStatus.Runing)|| equipBean.runStatus.Equals(LineRunStatus.Busy))) if (LineTurnIsStop() && MoveInfo.MoveType.Equals(LineMoveType.None) && (equipBean.runStatus.Equals(LineRunStatus.Runing) || equipBean.runStatus.Equals(LineRunStatus.Busy)))
{ {
if (LastTrayPosition <= 1)
{
LogUtil.error(Name + " 启动送料【" + moveParam.ToStr() + "】 失败,入口有料" , Id + 32);
return false;
}
//MoveInfo.MoveParam = moveParam; //MoveInfo.MoveParam = moveParam;
MoveInfo.NewMove(LineMoveType.OutStore,moveParam); MoveInfo.NewMove(LineMoveType.OutStore, moveParam);
posId = moveParam.PosId; posId = moveParam.PosId + "[" + moveParam.WareCode + "]["+moveParam.rfid+"]";
if (moveParam.InStoreNg) if (moveParam.InStoreNg)
{ {
posId = "入库NG料"; posId =moveParam.rfid+ "NG料" + "[" + moveParam.WareCode + "]";
} }
MoveInfo.NextMoveStep(LineMoveStep.DLO_01_WaitEntryNoTray); MoveInfo.NextMoveStep(LineMoveStep.DLO_01_NGBack);
LogUtil.info(Name + "开始出料【" + moveParam.ToStr() + "】:" + MoveInfo.SLog + "等待出口无料盘,NG气缸后退"); LogUtil.info(Name + "开始送料【" + moveParam.ToStr() + "】:" + MoveInfo.SLog + "NG气缸后退");
if (equipBeanId.Equals(302) && EntryLocation_Check.Equals(IO_Type.EntryLocation_Check2)) MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
if (equipBeanId.Equals(302) )
{ {
equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After); if (equipBean.CylinderIsOk(IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After))
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_02_WaitEnteryNoTray);
LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + "--- 等待入口无料-- ");
}
else
{
equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After);
}
}
else
{
if (LastTrayPosition > 1)
{
WaitReviceTray();
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_02_WaitEnteryNoTray);
LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + "--- 等待入口无料-- ");
}
} }
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
return true; return true;
} }
else else
{ {
LogUtil.error(Name + " 启动出料【" + moveParam.ToStr() + "】 失败", equipBeanId+31); LogUtil.error(Name + " 启动送料【" + moveParam.ToStr() + "】 失败", Id + 31);
return false; return false;
} }
} }
private void WaitReviceTray()
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_04_CanReviceTray);
LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + "--- 等待移栽放料盘-- ");
LastTrayPosition = 1;
if (equipBean.IsDebug)
{
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
}
}
string posId = ""; string posId = "";
internal void OutStoreProcess() internal void OutStoreProcess()
{ {
...@@ -97,63 +129,61 @@ namespace OnlineStore.DeviceLibrary ...@@ -97,63 +129,61 @@ namespace OnlineStore.DeviceLibrary
{ {
return; return;
} }
// string posId = MoveInfo.MoveParam == null ? "" : MoveInfo.MoveParam.PosId; if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_01_NGBack))
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_WaitEnteryNoTray);
{ LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + "--- 等待入口无料-- ");
MoveInfo.NextMoveStep(LineMoveStep.DLO_02_WaitExitNoTray);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "等待出口无料盘");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
}
else if (MoveInfo.IsTimeOut(180))
{
LogUtil.error(Name + "等待出口无料盘超时:" + FormUtil.GetSpanStr(MoveInfo.StepSpan()), 305);
}
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_02_WaitExitNoTray)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_02_WaitEnteryNoTray))
{ {
if (LineTurnIsStop()) if (LastTrayPosition > 1)
{ {
MoveInfo.NextMoveStep(LineMoveStep.DLO_03_LineRun); WaitReviceTray();
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "出口无料盘,转动到入口定位");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
lineRun.StartLineRun(LineRun_Do, EntryLocation_Check, null);
} }
} else if (MoveInfo.IsTimeOut(180))
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_03_LineRun))
{
if (LineTurnIsStop())
{ {
MoveInfo.NextMoveStep(LineMoveStep.DLO_04_CanReviceTray); LogUtil.error(Name + "等待入口无料超时" + FormUtil.GetSpanStr(MoveInfo.StepSpan()), Id + 33);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "--- 等待移栽放料盘-- ");
if (equipBean.IsDebug)
{ MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); }
} }
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_04_CanReviceTray)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_04_CanReviceTray))
{ {
if (equipBean.IsDebug) if (equipBean.IsDebug)
{ {
MoveInfo.NextMoveStep(LineMoveStep.DLO_05_TrayIsOk); MoveInfo.NextMoveStep(LineMoveStep.DLO_05_TrayIsOk);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "调试中更改为已放料盘"); LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + "调试中,更改为已放料盘");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
} }
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_05_TrayIsOk)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_05_TrayIsOk))
{ {
MoveInfo.NextMoveStep(LineMoveStep.DLO_06_OutCheck); MoveInfo.NextMoveStep(LineMoveStep.DLO_06_WaitTime);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + "盘已放,等待2000");
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + " --料盘已放----转动到出口定位"); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
LastTrayPosition = 1;
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, null);
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_06_OutCheck)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_06_WaitTime))
{ {
if (LineTurnIsStop()) if (equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{ {
DLO_LineRun(LineMoveStep.DLO_07_LineRun); //皮带线不转,并且入口无信号
if (equipBean.Line3TurnIsStop() && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW))
{
Line3CanRun = false;
if (Line3_TrayCheck.Equals(IO_Type.EntryTray_Check3))
{
equipBean.Line3LastTrayP = 1;
}
}
else
{
return;
}
} }
MoveInfo.NextMoveStep(LineMoveStep.DLO_07_LineRun);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + " [" + LastTrayPosition + "],转动到下个工位");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_07_LineRun)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_07_LineRun))
{ {
...@@ -162,13 +192,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -162,13 +192,14 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveParam.InStoreNg) if (MoveInfo.MoveParam.InStoreNg)
{ {
MoveInfo.NextMoveStep(LineMoveStep.DLO_08_NGBefore); MoveInfo.NextMoveStep(LineMoveStep.DLO_08_NGBefore);
LogUtil.info(Name + "料【" + posId + "】:" + MoveInfo.SLog + "NG气缸前进"); LogUtil.info(Name + "料【" + posId + "】:" + MoveInfo.SLog + "NG气缸前进");
equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_After, IO_Type.NGCylinder_Before); equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_After, IO_Type.NGCylinder_Before);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
} }
else else
{ {
CheckIsNeedRun(); MoveInfo.EndMove();
LogUtil.info(Name + "送料【" + posId + "】结束");
} }
} }
} }
...@@ -176,21 +207,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -176,21 +207,13 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(LineMoveStep.DLO_09_NGAfter); MoveInfo.NextMoveStep(LineMoveStep.DLO_09_NGAfter);
LastTrayPosition++; LastTrayPosition++;
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "NG气缸后退,更新最后一盘料位置:"+LastTrayPosition); LogUtil.info(Name + "送料【" + posId + "】:" + MoveInfo.SLog + " [" + LastTrayPosition + "],NG气缸后退");
equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After); equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After);
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_09_NGAfter)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_09_NGAfter))
{ {
CheckIsNeedRun();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_10_LineRun))
{
CheckIsNeedRun();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_11_ExitNoTray))
{
MoveInfo.EndMove(); MoveInfo.EndMove();
LogUtil.info(Name + "出料【" + posId + "】:出口无料盘,出库结束"); LogUtil.info(Name + "送料【" + posId + "】:结束");
} }
} }
private bool LineTurnIsStop() private bool LineTurnIsStop()
...@@ -210,51 +233,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -210,51 +233,8 @@ namespace OnlineStore.DeviceLibrary
} }
} }
return false; return false;
} }
private void CheckIsNeedRun()
{
if (equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
if (LastTrayPosition > 5)
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_11_ExitNoTray);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "最后一盘料位置【" + LastTrayPosition + "】,请检查" + ExitTray_Check + "信号是否正确");
}
else
{
DLO_LineRun(LineMoveStep.DLO_10_LineRun);
}
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_11_ExitNoTray);
}
}
private void DLO_LineRun(LineMoveStep nextStep)
{
if (equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
//皮带线不转,并且入口无信号
if (equipBean.Line3TurnIsStop() && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW))
{
Line3CanRun = false;
if (Line3_TrayCheck.Equals(IO_Type.EntryTray_Check3))
{
equipBean.Line3LastTrayP = 1;
}
}
else
{
return;
}
}
MoveInfo.NextMoveStep(nextStep);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "最后一盘料位置【" + LastTrayPosition + "】,转动到出口定位");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
}
/// <summary> /// <summary>
/// 转动结束,最后一盘料的位置+1 /// 转动结束,最后一盘料的位置+1
/// </summary> /// </summary>
...@@ -306,14 +286,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -306,14 +286,14 @@ namespace OnlineStore.DeviceLibrary
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess); lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
} }
else if (MoveInfo.MoveStep <= LineMoveStep.DLO_01_WaitEntryNoTray&&MoveInfo.IsInWait.Equals(false) && else if (MoveInfo.MoveStep <= LineMoveStep.DLO_01_NGBack&&MoveInfo.IsInWait.Equals(false) &&
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH)) equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{ {
//皮带线1出口有料,皮带3入库无料,且在停止状态 //皮带线1出口有料,皮带3入库无料,且在停止状态
if (equipBean.Line3TurnIsStop() && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW)) if (equipBean.Line3TurnIsStop() && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW))
{ {
Line3CanRun = false; Line3CanRun = false;
LogUtil.debug(Name+ "出口有料,且"+ Line3_TrayCheck + "=LOW,转动一个工位,["+LineRun_Do+"] ["+ExitLocation_Check+"]"); LogUtil.debug(Name+ "出口有料,且"+ Line3_TrayCheck + "=LOW,转动一个工位,["+LineRun_Do+"] ["+ExitLocation_Check+"]");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess); lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
} }
} }
......
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
/// <summary>
/// 出料皮带线
/// </summary>
public class OutTrayLineBean
{
public int MaxPosition = 5;
// private DischargeLine equipBean = null;
private int equipBeanId = 301;
private string Line3_TrayCheck = "";
//入口定位信号
private string EntryLocation_Check = "";
//出口定位信号
private string ExitLocation_Check = "";
//出口料盘检测信号
private string ExitTray_Check = "";
//出口料盘检测信号
private string LineRun_Do = "";
//最后一盘料的位置,>5时可置为0,0表示当前皮带线无料盘
public int LastTrayPosition = 0;
private string Name = "";
private LineTurnBean lineRun = null;
internal LineMoveInfo MoveInfo = null;
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(dId);
this.equipBeanId = dId;
//this.equipBean = equipBean;
this.Name = name;
MoveInfo = new LineMoveInfo(1001, name);
this.EntryLocation_Check = entryLocationS;
this.ExitLocation_Check = exitLocationS;
this.ExitTray_Check = exittrayS;
this.LineRun_Do = lineRundo;
this.Line3_TrayCheck = line3checkDi;
}
public void StopRun()
{
MoveInfo.EndMove();
lineRun.StopLineRun();
Line3CanRun = true;
}
#region 出库处理
// private string posId = "";
public bool StartOut(InOutParam moveParam)
{
if (LineTurnIsStop() && MoveInfo.MoveType.Equals(LineMoveType.None) && (equipBean.runStatus .Equals(LineRunStatus.Runing)|| equipBean.runStatus.Equals(LineRunStatus.Busy)))
{
//MoveInfo.MoveParam = moveParam;
MoveInfo.NewMove(LineMoveType.OutStore,moveParam);
posId = moveParam.PosId;
if (moveParam.InStoreNg)
{
posId = "入库NG料";
}
MoveInfo.NextMoveStep(LineMoveStep.DLO_01_WaitEntryNoTray);
LogUtil.info(Name + "开始出料【" + moveParam.ToStr() + "】:" + MoveInfo.SLog + "等待出口无料盘,NG气缸后退");
if (equipBeanId.Equals(302) && EntryLocation_Check.Equals(IO_Type.EntryLocation_Check2))
{
equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
return true;
}
else
{
LogUtil.error(Name + " 启动出料【" + moveParam.ToStr() + "】 失败", equipBeanId+31);
return false;
}
}
string posId = "";
internal void OutStoreProcess()
{
if (MoveInfo.IsInWait)
{
equipBean.CheckWait(MoveInfo);
}
if (MoveInfo.IsInWait)
{
return;
}
// string posId = MoveInfo.MoveParam == null ? "" : MoveInfo.MoveParam.PosId;
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 if (MoveInfo.IsTimeOut(180))
{
LogUtil.error(Name + "等待出口无料盘超时:" + FormUtil.GetSpanStr(MoveInfo.StepSpan()), 305);
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_02_WaitExitNoTray))
{
if (LineTurnIsStop())
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_03_LineRun);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "出口无料盘,转动到入口定位");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
lineRun.StartLineRun(LineRun_Do, EntryLocation_Check, null);
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_03_LineRun))
{
if (LineTurnIsStop())
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_04_CanReviceTray);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "--- 等待移栽放料盘-- ");
if (equipBean.IsDebug)
{ MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); }
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_04_CanReviceTray))
{
if (equipBean.IsDebug)
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_05_TrayIsOk);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "调试中更改为已放料盘");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_05_TrayIsOk))
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_06_OutCheck);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + " --料盘已放----转动到出口定位");
LastTrayPosition = 1;
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, null);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_06_OutCheck))
{
if (LineTurnIsStop())
{
DLO_LineRun(LineMoveStep.DLO_07_LineRun);
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_07_LineRun))
{
if (LineTurnIsStop())
{
if (MoveInfo.MoveParam.InStoreNg)
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_08_NGBefore);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "NG气缸前进");
equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_After, IO_Type.NGCylinder_Before);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
}
else
{
CheckIsNeedRun();
}
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_08_NGBefore))
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_09_NGAfter);
LastTrayPosition++;
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "NG气缸后退,更新最后一盘料位置:"+LastTrayPosition);
equipBean.CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_09_NGAfter))
{
CheckIsNeedRun();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_10_LineRun))
{
CheckIsNeedRun();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DLO_11_ExitNoTray))
{
MoveInfo.EndMove();
LogUtil.info(Name + "出料【" + posId + "】:出口无料盘,出库结束");
}
}
private bool LineTurnIsStop()
{
if (lineRun.InTurn.Equals(false) )
{
if (equipBean.IOValue(LineRun_Do).Equals(IO_VALUE.LOW))
{
if (lineRun.CanStart(500))
{
return true;
}
}
else
{
equipBean.IOMove(LineRun_Do, IO_VALUE.LOW);
}
}
return false;
}
private void CheckIsNeedRun()
{
if (equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
if (LastTrayPosition > 5)
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_11_ExitNoTray);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "最后一盘料位置【" + LastTrayPosition + "】,请检查" + ExitTray_Check + "信号是否正确");
}
else
{
DLO_LineRun(LineMoveStep.DLO_10_LineRun);
}
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.DLO_11_ExitNoTray);
}
}
private void DLO_LineRun(LineMoveStep nextStep)
{
if (equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
//皮带线不转,并且入口无信号
if (equipBean.Line3TurnIsStop() && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW))
{
Line3CanRun = false;
if (Line3_TrayCheck.Equals(IO_Type.EntryTray_Check3))
{
equipBean.Line3LastTrayP = 1;
}
}
else
{
return;
}
}
MoveInfo.NextMoveStep(nextStep);
LogUtil.info(Name + "出料【" + posId + "】:" + MoveInfo.SLog + "最后一盘料位置【" + LastTrayPosition + "】,转动到出口定位");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
}
/// <summary>
/// 转动结束,最后一盘料的位置+1
/// </summary>
/// <param name="result"></param>
public void LineEndProcess(bool result)
{
if (result && LastTrayPosition > 0)
{
LastTrayPosition++;
}
if (!Line3CanRun)
{
equipBean.Line3Turn.LastEndTime = DateTime.Now;
}
Line3CanRun = true;
}
/// <summary>
/// 此皮带线是否有盘。重启会重置为空
/// </summary>
/// <returns></returns>
internal bool HasTray()
{
if (LastTrayPosition > 0 &&
LastTrayPosition <= MaxPosition * 10)
{
return true;
}
if (equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
return true;
}
return false;
}
internal bool IsInTurn()
{
return lineRun.InTurn;
}
#endregion
public void TimerPro()
{
//皮带线1出口无料
if (IsInTurn().Equals(false) && HasTray()&&lineRun.CanStart())
{
if (MoveInfo.MoveType.Equals(LineMoveType.None) &&
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.LOW))
{
//皮带线1出口无料
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
}
else if (MoveInfo.MoveStep <= LineMoveStep.DLO_01_WaitEntryNoTray&&MoveInfo.IsInWait.Equals(false) &&
equipBean.IOValue(ExitTray_Check).Equals(IO_VALUE.HIGH))
{
//皮带线1出口有料,皮带3入库无料,且在停止状态
if (equipBean.Line3TurnIsStop() && equipBean.IOValue(Line3_TrayCheck).Equals(IO_VALUE.LOW))
{
Line3CanRun = false;
LogUtil.debug(Name+ "出口有料盘,且"+ Line3_TrayCheck + "=LOW,转动一个工位,["+LineRun_Do+"] ["+ExitLocation_Check+"]");
lineRun.StartLineRun(LineRun_Do, ExitLocation_Check, LineEndProcess);
}
}
}
}
}
public class LineTurnBean
{
public delegate void TurnEndDel(bool result);
public TurnEndDel turnEnd = null;
public bool InTurn = false;
private string LastMoveDO = "";
private string LastCheckDI = "";
private int subType = 0;
internal DateTime LastEndTime = DateTime.Now;
public bool CanStart(int totalMS = 1000)
{
TimeSpan span = DateTime.Now - LastEndTime;
if (span.TotalMilliseconds > totalMS)
{
return true;
}
return false;
}
public LineTurnBean(int subType)
{
this.subType = subType;
}
public void StopLineRun()
{
if (InTurn)
{
InTurn = false;
}
}
private int canWhileCount = 3;
public void StartLineRun(string moveDO, string checkDI, TurnEndDel endProcess, int timeOutMS = 30000)
{
InTurn = true;
this.turnEnd = endProcess;
Task.Factory.StartNew(delegate
{
canWhileCount = 3;
LineRunAndWait(moveDO, checkDI, timeOutMS);
});
}
private string LineRunAndWait(string moveDO, string checkDI, int timeOutMS = 30000)
{
LastMoveDO = moveDO;
LastCheckDI = checkDI;
LogUtil.debug(subType+ "开始转动:" + moveDO+",等待信号:"+checkDI+"");
IOManager.IOMove(moveDO, IO_VALUE.HIGH, subType);
InTurn = true;
DateTime startTime = DateTime.Now;
string result = "";
bool isStop = false;
//先等待信号灭一次,然后再亮时停止
while (true)
{
Thread.Sleep(50);
TimeSpan span = DateTime.Now - startTime;
if (span.TotalSeconds > 1 && IOManager.IOValue(moveDO, subType).Equals(IO_VALUE.LOW))
{
LogUtil.error(subType + " LineRunAndWait1 转动[" + moveDO + "][" + checkDI + "],已等待[" + FormUtil.GetSpanStr(span) + "],重写IO:" + moveDO);
IOManager.IOMove(moveDO, IO_VALUE.HIGH, subType);
}
if (!InTurn)
{
isStop = true;
result = "手动停止";
}
else if (span.TotalMilliseconds > timeOutMS)
{
isStop = true;
result = "转动超时";
}
//判断Buzy及位置是否结束
else if (IOManager.IOValue(checkDI, subType).Equals(IO_VALUE.LOW))
{
isStop = true;
}
if (isStop)
{
if (result.Equals(""))
{
LogUtil.debug(subType + "验证" + checkDI + "=Low结束:" + result);
}
else
{
LogUtil.info(subType + "[" + moveDO + "] [" + checkDI + "] 验证" + checkDI + "=Low结束:" + result);
}
break;
}
}
result = "";
isStop = false;
while (true)
{
Thread.Sleep(50);
TimeSpan span = DateTime.Now - startTime;
if (span.TotalSeconds > 2 && IOManager.IOValue(moveDO, subType).Equals(IO_VALUE.LOW))
{
LogUtil.error(subType + " LineRunAndWait2 转动[" + moveDO + "][" + checkDI + "],已等待[" + FormUtil.GetSpanStr(span) + "],重写IO:" + moveDO);
IOManager.IOMove(moveDO, IO_VALUE.HIGH, subType);
}
if (!InTurn)
{
isStop = true;
result = "手动停止";
}
else if (span.TotalMilliseconds > timeOutMS)
{
isStop = true;
result = "转动超时";
}
//判断Buzy及位置是否结束
else if (IOManager.IOValue(checkDI, subType).Equals(IO_VALUE.HIGH))
{
if (canWhileCount > 0 && span.TotalMilliseconds < 800)
{
canWhileCount--;
LogUtil.info(subType + " 异常停止,重新开始转动:[" + moveDO + "] [" + checkDI + "] 耗时 [" + FormUtil.GetSpanStr(span) + "]["+canWhileCount+"]");
LineRunAndWait(moveDO, checkDI, timeOutMS);
}
isStop = true;
}
if (isStop)
{
if (result.Equals(""))
{
if (span.TotalSeconds >= 4 && span.TotalSeconds <= 5)
{
LogUtil.debug(subType + "停止运动:[" + moveDO + "] [" + checkDI + "] 耗时 [" + FormUtil.GetSpanStr(span) + "][" + canWhileCount + "]");
}
else
{
LogUtil.info(subType + "停止运动:[" + moveDO + "] [" + checkDI + "] 耗时 [" + FormUtil.GetSpanStr(span) + "][" + canWhileCount + "]");
}
}
else
{
LogUtil.info(subType + "[" + moveDO + "] [" + checkDI + "] 停止运动:" + result + " " + moveDO);
}
LastEndTime = DateTime.Now;
IOManager.IOMove(moveDO, IO_VALUE.LOW, subType);
Task.Factory.StartNew(delegate
{
turnEnd?.Invoke(result.Equals(""));
});
InTurn = false;
return result;
}
}
}
}
}
...@@ -1093,17 +1093,17 @@ namespace OnlineStore.DeviceLibrary ...@@ -1093,17 +1093,17 @@ namespace OnlineStore.DeviceLibrary
#region 皮带线12接收料盘并转动处理 #region 皮带线12接收料盘并转动处理
/// <summary> /// <summary>
/// 皮带线12处理料盘:需要放入料盘,等待入口无料盘 /// 皮带线12处理料盘:NG气缸后退
/// </summary> /// </summary>
DLO_01_WaitEntryNoTray = 30301, DLO_01_NGBack = 30301,
/// <summary> /// <summary>
/// 皮带线12处理料盘:需要放入料盘,等待出口无料盘 /// 皮带线12处理料盘:等待入口无料盘, 等待最后一盘料位置>1
/// </summary> /// </summary>
DLO_02_WaitExitNoTray, DLO_02_WaitEnteryNoTray,
/// <summary> ///// <summary>
/// 皮带线12处理料盘:入口出口都没有料盘,转动皮带线到入口定位亮 ///// 皮带线12处理料盘:入口出口都没有料盘,转动皮带线到入口定位亮
/// </summary> ///// </summary>
DLO_03_LineRun, //DLO_03_LineRun,
/// <summary> /// <summary>
/// 皮带线12处理料盘:可以放入料盘,等待移栽放下料盘 /// 皮带线12处理料盘:可以放入料盘,等待移栽放下料盘
/// </summary> /// </summary>
...@@ -1114,9 +1114,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -1114,9 +1114,9 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
DLO_05_TrayIsOk, DLO_05_TrayIsOk,
/// <summary> /// <summary>
/// 皮带线12处理料盘:皮带线转动到出口定位信号亮 /// 皮带线12处理料盘:盘放下后等待2000ms
/// </summary> /// </summary>
DLO_06_OutCheck, DLO_06_WaitTime,
/// <summary> /// <summary>
/// 皮带线12处理料盘:出库有料盘,继续转动一个工位, /// 皮带线12处理料盘:出库有料盘,继续转动一个工位,
/// </summary> /// </summary>
...@@ -1129,10 +1129,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -1129,10 +1129,10 @@ namespace OnlineStore.DeviceLibrary
/// 皮带线12处理料盘:是NG料盘,NG气缸后退 /// 皮带线12处理料盘:是NG料盘,NG气缸后退
/// </summary> /// </summary>
DLO_09_NGAfter, DLO_09_NGAfter,
/// <summary> ///// <summary>
/// 皮带线12处理料盘:判断出口是否有料盘,有料盘需要转动,没有料盘结束 ///// 皮带线12处理料盘:判断出口是否有料盘,有料盘需要转动,没有料盘结束
/// </summary> ///// </summary>
DLO_10_LineRun, //DLO_10_LineRun,
/// <summary> /// <summary>
/// 皮带线12处理料盘:出口无料盘,结束, /// 皮带线12处理料盘:出口无料盘,结束,
......
...@@ -193,10 +193,10 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -193,10 +193,10 @@ namespace OnlineStore.LoadCSVLibrary
public static string DLine_Reset = "DLine_Reset"; public static string DLine_Reset = "DLine_Reset";
/// <summary> ///// <summary>
/// DI 0 皮带线1入口定位检测 EntryLocation_Check1 2 PRO_AOI_IP_2 0 皮带线1入口定位检测 X023 X023 ///// DI 0 皮带线1入口定位检测 EntryLocation_Check1 2 PRO_AOI_IP_2 0 皮带线1入口定位检测 X023 X023
/// </summary> ///// </summary>
public static string EntryLocation_Check1 = "EntryLocation_Check1"; //public static string EntryLocation_Check1 = "EntryLocation_Check1";
/// <summary> /// <summary>
/// DI 0 皮带线1出口定位检测 ExitLocation_Check1 3 PRO_AOI_IP_2 0 皮带线1出口定位检测 X024 X024 /// DI 0 皮带线1出口定位检测 ExitLocation_Check1 3 PRO_AOI_IP_2 0 皮带线1出口定位检测 X024 X024
/// </summary> /// </summary>
...@@ -206,10 +206,10 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -206,10 +206,10 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary> /// </summary>
public static string ExitTray_Check1 = "ExitTray_Check1"; public static string ExitTray_Check1 = "ExitTray_Check1";
/// <summary> ///// <summary>
/// DI,0,皮带线2入口定位检测 EntryLocation_Check2 5 PRO_AOI_IP_2 0 皮带线2入口定位检测 X026 X026 ///// DI,0,皮带线2入口定位检测 EntryLocation_Check2 5 PRO_AOI_IP_2 0 皮带线2入口定位检测 X026 X026
/// </summary> ///// </summary>
public static string EntryLocation_Check2 = "EntryLocation_Check2"; //public static string EntryLocation_Check2 = "EntryLocation_Check2";
/// <summary> /// <summary>
/// DI 皮带线2出口定位检测 ExitLocation_Check2 6 PRO_AOI_IP_2 0 皮带线2出口定位检测 X027 X027 /// DI 皮带线2出口定位检测 ExitLocation_Check2 6 PRO_AOI_IP_2 0 皮带线2出口定位检测 X027 X027
/// </summary> /// </summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!