Commit 75a3b62e LN

1,上料横移到达流水线上方时再检测盘宽。2.T3-C1bug修改。3.接驳台bug修改

1 个父辈 6146271c
...@@ -252,13 +252,15 @@ namespace OnlineStore.AssemblyLine ...@@ -252,13 +252,15 @@ namespace OnlineStore.AssemblyLine
lblThisSta.Text = equipBean.WarnMsg; lblThisSta.Text = equipBean.WarnMsg;
txtP1.Text = equipBean.Config.UpDownAxisP1.ToString(); txtP1.Text = equipBean.Config.UpDownAxisP1.ToString();
txtUpdownP3.Text = equipBean.Config.UpDownAxisP3.ToString(); txtUpdownP3.Text = equipBean.Config.UpDownAxisP3.ToString();
if (equipBean.Config.DOList.ContainsKey(IO_Type.SL_RollerLine_Run)) if (equipBean.HasOutLine)
{ {
SL_RollerLine_Run.Visible = true; SL_RollerLine_Run.Visible = true;
SL_OutLine_Run.Visible = true;
} }
else else
{ {
SL_RollerLine_Run.Visible = false; SL_RollerLine_Run.Visible = false;
SL_OutLine_Run.Visible = false ;
} }
LoadDP2(); LoadDP2();
LoadDOBtn(groupDO); LoadDOBtn(groupDO);
......
...@@ -377,13 +377,13 @@ namespace OnlineStore.AssemblyLine ...@@ -377,13 +377,13 @@ namespace OnlineStore.AssemblyLine
private void btnSw4Location_Click(object sender, EventArgs e) private void btnSw4Location_Click(object sender, EventArgs e)
{ {
LogUtil.info("界面点击:" + btnFrontStopDown.Text); LogUtil.info("界面点击:" + btnFrontStopDown.Text);
BtnMove(btnFrontStopDown, "T3-C1前阻挡下降", "T3-C1前阻挡上升", IO_Type.HY_FrontStopDown); BtnMove(btnFrontStopDown, "▉ T3-C1前阻挡下降", "▉ T3-C1前阻挡上升", IO_Type.HY_FrontStopDown);
} }
private void btn34Top_Click(object sender, EventArgs e) private void btn34Top_Click(object sender, EventArgs e)
{ {
LogUtil.info("界面点击:" + btnStopDown.Text); LogUtil.info("界面点击:" + btnStopDown.Text);
BtnMove(btnStopDown, "T3-C1前阻挡下降", "T3-C1前阻挡上升", IO_Type.HY_StopDown); BtnMove(btnStopDown, "▉ T3-C1阻挡下降", "▉ T3-C1阻挡上升", IO_Type.HY_StopDown);
} }
private void HY_TopCylinder_Down_Click(object sender, EventArgs e) private void HY_TopCylinder_Down_Click(object sender, EventArgs e)
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabPage1 = new System.Windows.Forms.TabPage();
this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox2 = new System.Windows.Forms.GroupBox();
this.chbTrayTest = new System.Windows.Forms.CheckBox();
this.chbDisMove = new System.Windows.Forms.CheckBox(); this.chbDisMove = new System.Windows.Forms.CheckBox();
this.lblCardMsg = new System.Windows.Forms.Label(); this.lblCardMsg = new System.Windows.Forms.Label();
this.chbDisHy = new System.Windows.Forms.CheckBox(); this.chbDisHy = new System.Windows.Forms.CheckBox();
...@@ -187,6 +188,7 @@ ...@@ -187,6 +188,7 @@
// //
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left))); | System.Windows.Forms.AnchorStyles.Left)));
this.groupBox2.Controls.Add(this.chbTrayTest);
this.groupBox2.Controls.Add(this.chbDisMove); this.groupBox2.Controls.Add(this.chbDisMove);
this.groupBox2.Controls.Add(this.lblCardMsg); this.groupBox2.Controls.Add(this.lblCardMsg);
this.groupBox2.Controls.Add(this.chbDisHy); this.groupBox2.Controls.Add(this.chbDisHy);
...@@ -200,10 +202,21 @@ ...@@ -200,10 +202,21 @@
this.groupBox2.TabIndex = 200; this.groupBox2.TabIndex = 200;
this.groupBox2.TabStop = false; this.groupBox2.TabStop = false;
// //
// chbTrayTest
//
this.chbTrayTest.AutoSize = true;
this.chbTrayTest.Location = new System.Drawing.Point(9, 22);
this.chbTrayTest.Name = "chbTrayTest";
this.chbTrayTest.Size = new System.Drawing.Size(168, 24);
this.chbTrayTest.TabIndex = 203;
this.chbTrayTest.Text = "托盘横移到出料线测试";
this.chbTrayTest.UseVisualStyleBackColor = true;
this.chbTrayTest.CheckedChanged += new System.EventHandler(this.chbTrayTest_CheckedChanged);
//
// chbDisMove // chbDisMove
// //
this.chbDisMove.AutoSize = true; this.chbDisMove.AutoSize = true;
this.chbDisMove.Location = new System.Drawing.Point(9, 205); this.chbDisMove.Location = new System.Drawing.Point(9, 222);
this.chbDisMove.Name = "chbDisMove"; this.chbDisMove.Name = "chbDisMove";
this.chbDisMove.Size = new System.Drawing.Size(144, 24); this.chbDisMove.Size = new System.Drawing.Size(144, 24);
this.chbDisMove.TabIndex = 202; this.chbDisMove.TabIndex = 202;
...@@ -221,7 +234,7 @@ ...@@ -221,7 +234,7 @@
// chbDisHy // chbDisHy
// //
this.chbDisHy.AutoSize = true; this.chbDisHy.AutoSize = true;
this.chbDisHy.Location = new System.Drawing.Point(9, 165); this.chbDisHy.Location = new System.Drawing.Point(9, 187);
this.chbDisHy.Name = "chbDisHy"; this.chbDisHy.Name = "chbDisHy";
this.chbDisHy.Size = new System.Drawing.Size(194, 24); this.chbDisHy.Size = new System.Drawing.Size(194, 24);
this.chbDisHy.TabIndex = 201; this.chbDisHy.TabIndex = 201;
...@@ -234,7 +247,7 @@ ...@@ -234,7 +247,7 @@
this.label2.AutoSize = true; this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.label2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label2.ForeColor = System.Drawing.Color.Red; this.label2.ForeColor = System.Drawing.Color.Red;
this.label2.Location = new System.Drawing.Point(6, 277); this.label2.Location = new System.Drawing.Point(6, 292);
this.label2.Name = "label2"; this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(224, 17); this.label2.Size = new System.Drawing.Size(224, 17);
this.label2.TabIndex = 200; this.label2.TabIndex = 200;
...@@ -243,7 +256,7 @@ ...@@ -243,7 +256,7 @@
// chbLeftDis // chbLeftDis
// //
this.chbLeftDis.AutoSize = true; this.chbLeftDis.AutoSize = true;
this.chbLeftDis.Location = new System.Drawing.Point(9, 29); this.chbLeftDis.Location = new System.Drawing.Point(9, 67);
this.chbLeftDis.Name = "chbLeftDis"; this.chbLeftDis.Name = "chbLeftDis";
this.chbLeftDis.Size = new System.Drawing.Size(277, 24); this.chbLeftDis.Size = new System.Drawing.Size(277, 24);
this.chbLeftDis.TabIndex = 196; this.chbLeftDis.TabIndex = 196;
...@@ -254,7 +267,7 @@ ...@@ -254,7 +267,7 @@
// chbDisSL // chbDisSL
// //
this.chbDisSL.AutoSize = true; this.chbDisSL.AutoSize = true;
this.chbDisSL.Location = new System.Drawing.Point(9, 125); this.chbDisSL.Location = new System.Drawing.Point(9, 152);
this.chbDisSL.Name = "chbDisSL"; this.chbDisSL.Name = "chbDisSL";
this.chbDisSL.Size = new System.Drawing.Size(192, 24); this.chbDisSL.Size = new System.Drawing.Size(192, 24);
this.chbDisSL.TabIndex = 199; this.chbDisSL.TabIndex = 199;
...@@ -265,7 +278,7 @@ ...@@ -265,7 +278,7 @@
// chbRightDis // chbRightDis
// //
this.chbRightDis.AutoSize = true; this.chbRightDis.AutoSize = true;
this.chbRightDis.Location = new System.Drawing.Point(9, 69); this.chbRightDis.Location = new System.Drawing.Point(9, 101);
this.chbRightDis.Name = "chbRightDis"; this.chbRightDis.Name = "chbRightDis";
this.chbRightDis.Size = new System.Drawing.Size(293, 24); this.chbRightDis.Size = new System.Drawing.Size(293, 24);
this.chbRightDis.TabIndex = 197; this.chbRightDis.TabIndex = 197;
...@@ -1259,6 +1272,7 @@ ...@@ -1259,6 +1272,7 @@
private System.Windows.Forms.CheckBox chbDisHy; private System.Windows.Forms.CheckBox chbDisHy;
private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label4;
private System.Windows.Forms.CheckBox chbTrayTest;
} }
} }
...@@ -1116,17 +1116,18 @@ namespace OnlineStore.AssemblyLine ...@@ -1116,17 +1116,18 @@ namespace OnlineStore.AssemblyLine
if (LineManager.DisLeftOutLine) if (LineManager.DisLeftOutLine)
{ {
List<int> leftHYs = new List<int>() { 205, 207, 210 };
foreach (int id in leftHYs)
{
LineManager.Line.HYEquipMap[id].IsDebug = true;
}
LogUtil.info("界面点击勾选:" + chbLeftDis.Text + "=" + LineManager.DisLeftOutLine+",设置 HY5,HY7,HY10 为调试状态"); LogUtil.info("界面点击勾选:" + chbLeftDis.Text + "=" + LineManager.DisLeftOutLine+",设置 HY5,HY7,HY10 为调试状态");
} }
else else
{ {
LogUtil.info("界面点击勾选:" + chbLeftDis.Text + "=" + LineManager.DisLeftOutLine); LogUtil.info("界面点击勾选:" + chbLeftDis.Text + "=" + LineManager.DisLeftOutLine);
} }
List<int> leftHYs = new List<int>() { 205, 207, 210 };
foreach (int id in leftHYs)
{
bool isD = LineManager.DisLeftOutLine ? true: LineManager.Line.HYEquipMap[id].Config.IsDebug.Equals(1);
LineManager.Line.HYEquipMap[id].IsDebug = isD;
}
} }
private void chbRightDis_CheckedChanged(object sender, EventArgs e) private void chbRightDis_CheckedChanged(object sender, EventArgs e)
...@@ -1141,18 +1142,19 @@ namespace OnlineStore.AssemblyLine ...@@ -1141,18 +1142,19 @@ namespace OnlineStore.AssemblyLine
} }
LineManager.DisRightOutLine = chbRightDis.Checked; LineManager.DisRightOutLine = chbRightDis.Checked;
if (LineManager.DisRightOutLine) if (LineManager.DisRightOutLine)
{ {
List<int> rightHYs = new List<int>() { 212, 214, 217 };
foreach (int id in rightHYs)
{
LineManager.Line.HYEquipMap[id].IsDebug = true;
}
LogUtil.info("界面点击勾选:" + chbRightDis.Text + "=" + LineManager.DisRightOutLine + ",设置 HY12,HY14,HY17 为调试状态"); LogUtil.info("界面点击勾选:" + chbRightDis.Text + "=" + LineManager.DisRightOutLine + ",设置 HY12,HY14,HY17 为调试状态");
} }
else else
{ {
LogUtil.info("界面点击勾选:" + chbRightDis.Text + "=" + LineManager.DisRightOutLine); LogUtil.info("界面点击勾选:" + chbRightDis.Text + "=" + LineManager.DisRightOutLine);
} }
List<int> rightHYs = new List<int>() { 212, 214, 217 };
foreach (int id in rightHYs)
{
bool isD = LineManager.DisRightOutLine ? true : LineManager.Line.HYEquipMap[id].Config.IsDebug.Equals(1);
LineManager.Line.HYEquipMap[id].IsDebug = isD;
}
} }
private void chbDisSL_CheckedChanged(object sender, EventArgs e) private void chbDisSL_CheckedChanged(object sender, EventArgs e)
...@@ -1168,17 +1170,18 @@ namespace OnlineStore.AssemblyLine ...@@ -1168,17 +1170,18 @@ namespace OnlineStore.AssemblyLine
LineManager.DisSLEquip = chbDisSL.Checked; LineManager.DisSLEquip = chbDisSL.Checked;
if (LineManager.DisSLEquip) if (LineManager.DisSLEquip)
{ {
List<int> rightHYs = new List<int>() { 101, 102, 103,104,105 };
foreach (int id in rightHYs)
{
LineManager.Line.FeedingEquipMap[id].IsDebug = true;
}
LogUtil.info("界面点击勾选:" + chbDisSL.Text + "=" + LineManager.DisSLEquip + ",设置所有上料模块(T1~T5)为调试状态"); LogUtil.info("界面点击勾选:" + chbDisSL.Text + "=" + LineManager.DisSLEquip + ",设置所有上料模块(T1~T5)为调试状态");
} }
else else
{ {
LogUtil.info("界面点击勾选:" + chbDisSL.Text + "=" + LineManager.DisSLEquip); LogUtil.info("界面点击勾选:" + chbDisSL.Text + "=" + LineManager.DisSLEquip);
} }
List<int> rightHYs = new List<int>() { 101, 102, 103, 104, 105 };
foreach (int id in rightHYs)
{
bool isD = LineManager.DisSLEquip ? true : LineManager.Line.FeedingEquipMap[id].Config.IsDebug.Equals(1);
LineManager.Line.FeedingEquipMap[id].IsDebug = isD;
}
} }
private void checkBox1_CheckedChanged(object sender, EventArgs e) private void checkBox1_CheckedChanged(object sender, EventArgs e)
...@@ -1194,16 +1197,17 @@ namespace OnlineStore.AssemblyLine ...@@ -1194,16 +1197,17 @@ namespace OnlineStore.AssemblyLine
LineManager.DisAllHy = chbDisHy.Checked; LineManager.DisAllHy = chbDisHy.Checked;
if (LineManager.DisAllHy) if (LineManager.DisAllHy)
{ {
foreach (int id in LineManager.Line.HYEquipMap.Keys)
{
LineManager.Line.HYEquipMap[id].IsDebug = true;
}
LogUtil.info("界面点击勾选:" + chbDisHy.Text + "=" + LineManager.DisAllHy + ",设置所有HY为调试状态"); LogUtil.info("界面点击勾选:" + chbDisHy.Text + "=" + LineManager.DisAllHy + ",设置所有HY为调试状态");
} }
else else
{ {
LogUtil.info("界面点击勾选:" + chbDisHy.Text + "=" + LineManager.DisAllHy); LogUtil.info("界面点击勾选:" + chbDisHy.Text + "=" + LineManager.DisAllHy);
} }
foreach (int id in LineManager.Line.HYEquipMap.Keys)
{
bool isD = LineManager.DisAllHy ? true : LineManager.Line.HYEquipMap[id].Config.IsDebug.Equals(1);
LineManager.Line.HYEquipMap[id].IsDebug = isD;
}
} }
private void chbDisMove_CheckedChanged(object sender, EventArgs e) private void chbDisMove_CheckedChanged(object sender, EventArgs e)
...@@ -1219,16 +1223,31 @@ namespace OnlineStore.AssemblyLine ...@@ -1219,16 +1223,31 @@ namespace OnlineStore.AssemblyLine
LineManager.DisAllMove = chbDisMove.Checked; LineManager.DisAllMove = chbDisMove.Checked;
if (LineManager.DisAllMove) if (LineManager.DisAllMove)
{ {
foreach (int id in LineManager.Line.MoveEquipMap.Keys)
{
LineManager.Line.MoveEquipMap[id].IsDebug = true;
}
LogUtil.info("界面点击勾选:" + chbDisMove.Text + "=" + LineManager.DisAllMove + ",设置所有进仓为调试状态"); LogUtil.info("界面点击勾选:" + chbDisMove.Text + "=" + LineManager.DisAllMove + ",设置所有进仓为调试状态");
} }
else else
{ {
LogUtil.info("界面点击勾选:" + chbDisMove.Text + "=" + LineManager.DisAllMove); LogUtil.info("界面点击勾选:" + chbDisMove.Text + "=" + LineManager.DisAllMove);
} }
foreach (int id in LineManager.Line.MoveEquipMap.Keys)
{
bool isD = LineManager.DisAllMove ? true : LineManager.Line.MoveEquipMap[id].Config.IsDebug.Equals(1);
LineManager.Line.MoveEquipMap[id].IsDebug = isD;
}
}
private void chbTrayTest_CheckedChanged(object sender, EventArgs e)
{
if (!LoadOk)
{
return;
}
if (LineManager.TrayToOutLineTest.Equals(chbTrayTest.Checked))
{
return;
}
LineManager.TrayToOutLineTest = chbTrayTest.Checked;
LogUtil.info("界面点击勾选:" + chbTrayTest.Text + "=" + LineManager.TrayToOutLineTest);
} }
} }
} }
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
上料模块,顶升气缸升降时,出口顶升气缸同时动作。 上料模块,顶升气缸升降时,出口顶升气缸同时动作。
上料机构,入料横移到放料端时,再检测料盘宽度
......
...@@ -20,6 +20,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -20,6 +20,7 @@ namespace OnlineStore.DeviceLibrary
public FeedingEquip_Config Config; public FeedingEquip_Config Config;
public bool OutEndSendShelfOut = false; public bool OutEndSendShelfOut = false;
public AxisBean BatchAxis = null; public AxisBean BatchAxis = null;
public bool HasOutLine = false;//是否有出料线体,T3和T4
public FeedingEquip(string cid, FeedingEquip_Config config) public FeedingEquip(string cid, FeedingEquip_Config config)
{ {
this.DeviceID = config.Id; this.DeviceID = config.Id;
...@@ -35,6 +36,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -35,6 +36,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo = new LineMoveInfo(DeviceID, "[" + Name.Trim() + "-Move]"); MoveInfo = new LineMoveInfo(DeviceID, "[" + Name.Trim() + "-Move]");
SecondMoveInfo = new LineMoveInfo(DeviceID, "[" + Name.Trim() + "-SMove]"); SecondMoveInfo = new LineMoveInfo(DeviceID, "[" + Name.Trim() + "-SMove]");
RFIDIP = RFIDManager.GetRFIP(DeviceID); RFIDIP = RFIDManager.GetRFIP(DeviceID);
HasOutLine = config.DOList.ContainsKey(IO_Type.SL_OutLine_Run);
} }
public override bool StartRun(bool isDebug = false) public override bool StartRun(bool isDebug = false)
...@@ -109,7 +111,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -109,7 +111,7 @@ namespace OnlineStore.DeviceLibrary
OutStoreHeight = -1; OutStoreHeight = -1;
//OutStoreCount = 0; //OutStoreCount = 0;
BatchAxisStopCheck(); BatchAxisStopCheck();
ResetClearData(); ResetClearData();
IOMove(IO_Type.SL_HddLed, IO_VALUE.HIGH); IOMove(IO_Type.SL_HddLed, IO_VALUE.HIGH);
MoveInfo.NextMoveStep(LineMoveStep.FR_01_StopUp); MoveInfo.NextMoveStep(LineMoveStep.FR_01_StopUp);
...@@ -118,10 +120,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -118,10 +120,9 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW); IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
//夹紧气缸放松 //夹紧气缸放松
CylinderMove(null, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax); CylinderMove(null, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
if (Config.DOList.ContainsKey(IO_Type.SL_RollerLine_Run))
{ IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.LOW);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Entry_StopDown, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Entry_StopDown, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_StopDown, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_StopDown, IO_VALUE.LOW));
...@@ -154,6 +155,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -154,6 +155,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
//线体开始转动 //线体开始转动
IOMove(IO_Type.SL_Line_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_Line_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutLine_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.HIGH));
...@@ -165,6 +167,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -165,6 +167,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo(MoveInfo.MoveType + ":" + MoveInfo.SLog + ":链条停止转动,上料横移机构上升,顶升气缸下降,所有阻挡气缸上升"); LogInfo(MoveInfo.MoveType + ":" + MoveInfo.SLog + ":链条停止转动,上料横移机构上升,顶升气缸下降,所有阻挡气缸上升");
//线体停止 //线体停止
IOMove(IO_Type.SL_Line_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_Line_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_OutLine_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Line_Run, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Line_Run, IO_VALUE.LOW));
...@@ -261,20 +264,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -261,20 +264,7 @@ namespace OnlineStore.DeviceLibrary
case LineMoveStep.FR_17_ClampCheck: case LineMoveStep.FR_17_ClampCheck:
LogInfo("重置完成!"); LogInfo("重置完成!");
if (IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH))
{
ClientLevel level = ClientLevel.Low;
if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.HIGH))
{
level = ClientLevel.Middle;
}
if (Config.IsCanOut.Equals(1))
{
level = ClientLevel.High;
}
LogInfo("重置完成,出口检测到有料架,调用 " + Config.AgvOutName + " AgvClient.NeedLeave");
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, level);
}
MoveEndS(); MoveEndS();
break; break;
default: break; default: break;
...@@ -287,7 +277,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -287,7 +277,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.EndMove(); MoveInfo.EndMove();
SecondMoveInfo.EndMove(); SecondMoveInfo.EndMove();
//StopMove时设置状态为none //StopMove时设置状态为none
AgvClient.SetStatus(Config.AgvInName,"",ClientAction.None,ClientLevel.Low,true); AgvClient.SetStatus(Config.AgvInName, "", ClientAction.None, ClientLevel.Low, true);
AgvClient.SetStatus(Config.AgvOutName, "", ClientAction.None, ClientLevel.Low, true); AgvClient.SetStatus(Config.AgvOutName, "", ClientAction.None, ClientLevel.Low, true);
BatchAxisStopCheck(); BatchAxisStopCheck();
...@@ -295,14 +285,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -295,14 +285,12 @@ namespace OnlineStore.DeviceLibrary
UpdownAxis.SuddenStop(); UpdownAxis.SuddenStop();
CloseAxis(BatchAxis); CloseAxis(BatchAxis);
CloseAxis(UpdownAxis); CloseAxis(UpdownAxis);
CheckAndMove(IO_Type.SL_Line_Run, IO_VALUE.LOW); CheckAndMove(IO_Type.SL_Line_Run, IO_VALUE.LOW);
CheckAndMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW); CheckAndMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW);
CheckAndMove(IO_Type.SL_OutLine_Run, IO_VALUE.LOW); CheckAndMove(IO_Type.SL_OutLine_Run, IO_VALUE.LOW);
if (Config.DOList.ContainsKey(IO_Type.SL_RollerLine_Run))
{ IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.LOW);
}
CheckAndMove(IO_Type.SL_Entry_StopDown, IO_VALUE.LOW); CheckAndMove(IO_Type.SL_Entry_StopDown, IO_VALUE.LOW);
CheckAndMove(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW); CheckAndMove(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW);
CheckAndMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW); CheckAndMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
...@@ -380,65 +368,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -380,65 +368,13 @@ namespace OnlineStore.DeviceLibrary
StartOutStoreP(); StartOutStoreP();
} }
} }
if (NoErrorAlarm())
{
if (IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH))
{
if (CheckStopWatch(needLeaveWatch, 3000))
{
ClientLevel level = ClientLevel.Low;
if (Config.IsCanOut.Equals(1))
{
level = ClientLevel.High;
}
else if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.HIGH) || (!MoveInfo.MoveType.Equals(LineMoveType.None)))
{
level = ClientLevel.Middle;
}
//线体出口检测到料架,需要通知AGV小车
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, level);
}
}
else
{
needLeaveWatch.Stop();
AgvClient.SetToNone(Config.AgvOutName);
}
//入口无料架,mayEnter
if (IOValue(IO_Type.SL_Entry_Check).Equals(IO_VALUE.LOW))
{
if (CheckStopWatch(needEnterWatch, 3000))
{
ClientLevel level = ClientLevel.Low;
if (Config.IsCanOut.Equals(1))
{
//如果是出料模块且当前无料架
if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.LOW) && MoveInfo.MoveType.Equals(LineMoveType.None))
{
level = ClientLevel.High;
}
}
AgvClient.NeedEnter(Config.AgvInName, "", level);
}
}
else
{
needEnterWatch.Stop();
AgvClient.SetToNone(Config.AgvInName);
}
}
else
{
needLeaveWatch.Stop();
AgvClient.SetToNone(Config.AgvOutName);
needEnterWatch.Stop();
AgvClient.SetToNone(Config.AgvInName);
}
AgvStatusPro();
LedProcess(); LedProcess();
} }
private Stopwatch needEnterWatch = new Stopwatch(); private Stopwatch needEnterWatch = new Stopwatch();
private Stopwatch needLeaveWatch = new Stopwatch(); private Stopwatch needLeaveWatch = new Stopwatch();
...@@ -750,7 +686,103 @@ namespace OnlineStore.DeviceLibrary ...@@ -750,7 +686,103 @@ namespace OnlineStore.DeviceLibrary
#endregion #endregion
#region AGV #region AGV
#region AGV状态处理
//private void ResetEndAgvPro()
//{
// if (IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH))
// {
// ClientLevel level = ClientLevel.Low;
// if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.HIGH))
// {
// level = ClientLevel.Middle;
// }
// if (Config.IsCanOut.Equals(1))
// {
// level = ClientLevel.High;
// }
// LogInfo("重置完成,出口检测到有料架,调用 " + Config.AgvOutName + " AgvClient.NeedLeave");
// AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, level);
// }
//}
private void AgvStatusPro()
{
if (NoErrorAlarm())
{
bool HasOutLine = Config.DOList.ContainsKey(IO_Type.SL_OutLine_Run);
if (HasOutLine && IOValue(IO_Type.SL_OutLine_Check).Equals(IO_VALUE.HIGH))
{
if (CheckStopWatch(needLeaveWatch, 3000))
{
ClientLevel level = ClientLevel.Low;
if (Config.IsCanOut.Equals(1))
{
level = ClientLevel.High;
}
else if (IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH) || (!MoveInfo.MoveType.Equals(LineMoveType.None)))
{
level = ClientLevel.Middle;
}
//线体出口检测到料架,需要通知AGV小车
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, level);
}
}
else if ((!HasOutLine) && IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH))
{
if (CheckStopWatch(needLeaveWatch, 3000))
{
ClientLevel level = ClientLevel.Low;
if (Config.IsCanOut.Equals(1))
{
level = ClientLevel.High;
}
else if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.HIGH) || (!MoveInfo.MoveType.Equals(LineMoveType.None)))
{
level = ClientLevel.Middle;
}
//线体出口检测到料架,需要通知AGV小车
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, level);
}
}
else
{
needLeaveWatch.Stop();
AgvClient.SetToNone(Config.AgvOutName);
}
//入口无料架,mayEnter
if (IOValue(IO_Type.SL_Entry_Check).Equals(IO_VALUE.LOW))
{
if (CheckStopWatch(needEnterWatch, 3000))
{
ClientLevel level = ClientLevel.Low;
if (Config.IsCanOut.Equals(1))
{
//如果是出料模块且当前无料架
if (IOValue(IO_Type.SL_Location_Check).Equals(IO_VALUE.LOW) && MoveInfo.MoveType.Equals(LineMoveType.None))
{
level = ClientLevel.High;
}
}
AgvClient.NeedEnter(Config.AgvInName, "", level);
}
}
else
{
needEnterWatch.Stop();
AgvClient.SetToNone(Config.AgvInName);
}
}
else
{
needLeaveWatch.Stop();
AgvClient.SetToNone(Config.AgvOutName);
needEnterWatch.Stop();
AgvClient.SetToNone(Config.AgvInName);
}
}
#endregion
internal void AgvArrive(string nodeId, string rfid) internal void AgvArrive(string nodeId, string rfid)
{ {
string logN = Name + "收到 AgvArrive 事件 [" + nodeId + "] [" + rfid + "] "; string logN = Name + "收到 AgvArrive 事件 [" + nodeId + "] [" + rfid + "] ";
...@@ -797,33 +829,42 @@ namespace OnlineStore.DeviceLibrary ...@@ -797,33 +829,42 @@ namespace OnlineStore.DeviceLibrary
//AGV已到达,将料架送入AGV中 //AGV已到达,将料架送入AGV中
Task.Factory.StartNew(delegate Task.Factory.StartNew(delegate
{ {
string checkIo = IO_Type.SL_Out_Check;
string lineDo = IO_Type.SL_OutSideWay_Run;
string stopDo = IO_Type.SL_Out_StopDown;
if (HasOutLine)
{
checkIo = IO_Type.SL_OutLine_Check;
lineDo = IO_Type.SL_OutLine_Run;
}
string logName = Name + "[" + Config.AgvOutName + "] 料架送入AGV "; string logName = Name + "[" + Config.AgvOutName + "] 料架送入AGV ";
try try
{ {
LogUtil.info(logName + "开始,先设置状态为None"); LogUtil.info(logName + "开始,先设置状态为None");
AgvClient.SetStatus(Config.AgvOutName, LastOutShelfId, ClientAction.None, ClientLevel.High, true); AgvClient.SetStatus(Config.AgvOutName, LastOutShelfId, ClientAction.None, ClientLevel.High, true);
if (IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH)) if (IOValue(checkIo).Equals(IO_VALUE.HIGH))
{ {
// AgvClient.SetStatus(Config.AgvOutName,"",ClientAction.MayLeave,ClientLevel.High); // AgvClient.SetStatus(Config.AgvOutName,"",ClientAction.MayLeave,ClientLevel.High);
ProcessShelfOut = true; ProcessShelfOut = true;
//出口阻挡下降,出口线体转动 //出口阻挡下降,出口线体转动
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.HIGH); IOMove(stopDo, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH); IOMove(lineDo, IO_VALUE.HIGH);
bool result = WaitIo(IO_Type.SL_Out_Check, IO_VALUE.LOW, 60000); bool result = WaitIo(checkIo, IO_VALUE.LOW, 60000);
if (!result) if (!result)
{ {
LogUtil.info(logName + " 等待SL_Out_Check=LOW超时,等待8000后停止转动,发送FinishLeave"); LogUtil.info(logName + " 等待 "+ checkIo + "=LOW超时,等待8000后停止"+lineDo+"转动,发送FinishLeave");
} }
else else
{ {
LogUtil.info(logName + " 已收到SL_Out_Check=LOW ,等待8000后停止转动,发送FinishLeave"); LogUtil.info(logName + " 已收到" + checkIo + "=LOW ,等待8000后停止" + lineDo + "转动,发送FinishLeave");
} }
//再转动2000 //再转动2000
Thread.Sleep(8000); Thread.Sleep(8000);
//停止转动 ,阻挡上升 //停止转动 ,阻挡上升
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW); IOMove(lineDo, IO_VALUE.LOW);
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW); IOMove(stopDo, IO_VALUE.LOW);
AgvClient.SetStatus(Config.AgvOutName, LastOutShelfId, ClientAction.FinishLeave, ClientLevel.High, true); AgvClient.SetStatus(Config.AgvOutName, LastOutShelfId, ClientAction.FinishLeave, ClientLevel.High, true);
Thread.Sleep(1000); Thread.Sleep(1000);
...@@ -847,7 +888,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -847,7 +888,7 @@ namespace OnlineStore.DeviceLibrary
} }
finally finally
{ {
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW); IOMove(lineDo, IO_VALUE.LOW);
ProcessShelfOut = false; ProcessShelfOut = false;
} }
}); });
......
...@@ -207,7 +207,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -207,7 +207,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.FI_03_FixedUp); MoveInfo.NextMoveStep(LineMoveStep.FI_03_FixedUp);
InLog("料架入库" + MoveInfo.SLog + ":固定气缸上升"); InLog("料架入库" + MoveInfo.SLog + ":固定气缸上升");
FixedCylinderUp(MoveInfo); FixedCylinderUp(MoveInfo);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_03_FixedUp)) else if (MoveInfo.IsStep(LineMoveStep.FI_03_FixedUp))
{ {
...@@ -252,22 +252,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -252,22 +252,22 @@ namespace OnlineStore.DeviceLibrary
MoveEndS(); MoveEndS();
InLog(" 未检测到料架,入料结束"); InLog(" 未检测到料架,入料结束");
} }
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_07_LocationUp)) else if (MoveInfo.IsStep(LineMoveStep.FI_07_LocationUp))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_08_FixedDown); MoveInfo.NextMoveStep(LineMoveStep.FI_08_FixedDown);
InLog("料架入库: " + MoveInfo.SLog + " 固定气缸下降" ); InLog("料架入库: " + MoveInfo.SLog + " 固定气缸下降");
FixedCylinderDown(MoveInfo); FixedCylinderDown(MoveInfo);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_08_FixedDown)) else if (MoveInfo.IsStep(LineMoveStep.FI_08_FixedDown))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_11_BatchAxisToP2); MoveInfo.NextMoveStep(LineMoveStep.FI_11_BatchAxisToP2);
InLog("料架入库" + MoveInfo.SLog + ":提升轴下降到位P2 ["+ Config.BatchAxisP2 + "] "); InLog("料架入库" + MoveInfo.SLog + ":提升轴下降到位P2 [" + Config.BatchAxisP2 + "] ");
if (!ProcessShelfEnter) if (!ProcessShelfEnter)
{ {
IOMove(IO_Type.SL_Line_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_Line_Run, IO_VALUE.LOW);
} }
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP2, Config.BatchAxis_P2Speed); BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_11_BatchAxisToP2)) else if (MoveInfo.IsStep(LineMoveStep.FI_11_BatchAxisToP2))
{ {
...@@ -327,14 +327,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -327,14 +327,14 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsTimeOut(60)) else if (MoveInfo.IsTimeOut(60))
{ {
MoveTimeOut(MoveInfo, "扫码结束超时"); MoveTimeOut(MoveInfo, "扫码结束超时");
} }
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_21_CylinderTake)) else if (MoveInfo.IsStep(LineMoveStep.FI_21_CylinderTake))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_22_UpdownToP3); MoveInfo.NextMoveStep(LineMoveStep.FI_22_UpdownToP3);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
InLog("料盘移栽" + MoveInfo.SLog + ":升降轴到P3["+ Config.UpDownAxisP3+"]"); InLog("料盘移栽" + MoveInfo.SLog + ":升降轴到P3[" + Config.UpDownAxisP3 + "]");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP3, Config.UpdownAxis_P3Speed); UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP3, Config.UpdownAxis_P3Speed);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_22_UpdownToP3)) else if (MoveInfo.IsStep(LineMoveStep.FI_22_UpdownToP3))
...@@ -346,7 +346,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -346,7 +346,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(LineMoveStep.FI_23_CylinderTighten)) else if (MoveInfo.IsStep(LineMoveStep.FI_23_CylinderTighten))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_24_UpdownToP1); MoveInfo.NextMoveStep(LineMoveStep.FI_24_UpdownToP1);
InLog("料盘移栽" + MoveInfo.SLog + ":升降伺服到P1点 ["+ Config.UpDownAxisP1+"]"); InLog("料盘移栽" + MoveInfo.SLog + ":升降伺服到P1点 [" + Config.UpDownAxisP1 + "]");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed); UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_24_UpdownToP1)) else if (MoveInfo.IsStep(LineMoveStep.FI_24_UpdownToP1))
...@@ -361,7 +361,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -361,7 +361,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_24_UpdownToP1); MoveInfo.NextMoveStep(LineMoveStep.FI_24_UpdownToP1);
InLog("料盘移栽" + MoveInfo.SLog + ":升降伺服到P1点 ["+ Config.UpDownAxisP1 + "]"); InLog("料盘移栽" + MoveInfo.SLog + ":升降伺服到P1点 [" + Config.UpDownAxisP1 + "]");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed); UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
} }
} }
...@@ -369,47 +369,23 @@ namespace OnlineStore.DeviceLibrary ...@@ -369,47 +369,23 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_26_BatchAxisToP3); MoveInfo.NextMoveStep(LineMoveStep.FI_26_BatchAxisToP3);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
LastWidth = GetWidth(); //LastWidth = GetWidth();
MoveInfo.MoveParam.PlateW = LastWidth; //MoveInfo.MoveParam.PlateW = LastWidth;
InLog("料盘移栽" + MoveInfo.SLog + ":提升伺服运动到P3,盘宽【" + LastWidth + "】,横移气缸上升 "); InLog("料盘移栽" + MoveInfo.SLog + ":提升伺服运动到P3,横移气缸上升 ");
CylinderMove(null, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give); CylinderMove(null, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give);
BatchAxisToP3(false); BatchAxisToP3(false);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_26_BatchAxisToP3)) else if (MoveInfo.IsStep(LineMoveStep.FI_26_BatchAxisToP3))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_27_SaveSize);
if (UpdownIsInP1()) MoveInfo.NextMoveStep(LineMoveStep.FI_27_CylinderGive);
{ InLog("料盘移栽" + MoveInfo.SLog + ":上料横移气缸放料SOL");
MoveInfo.NextMoveStep(LineMoveStep.FI_28_CylinderGive); CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give);
InLog("料盘移栽" + MoveInfo.SLog + ":上料横移气缸放料SOL");
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give);
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.FI_27_SaveSize);
InLog("料盘移栽" + MoveInfo.SLog + ":上料横移机构取料端 前升降轴先到P1 ["+ Config.UpDownAxisP1 + "]");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
LastHeight = GetHeight(); LastHeight = GetHeight();
MoveInfo.MoveParam.PlateH = LastHeight; MoveInfo.MoveParam.PlateH = LastHeight;
if (LastWidth.Equals(7))
{
if (LastHeight > 16)
{
LogUtil.error(Name + "计算后高度" + LastWidth + "X" + LastHeight + ",七寸盘默认盘高最高=16,修改高度为16");
LastHeight = 16;
}
}
else
{
if (LastHeight < 12)
{
LogUtil.error(Name + "计算后高度" + LastWidth + "X" + LastHeight + ",非七寸盘默认盘高最低=12,修改高度为12");
LastHeight = 12;
}
}
//判断是否还有料盘 //判断是否还有料盘
if (IOValue(IO_Type.SL_AxisLocationCheck).Equals(IO_VALUE.LOW)) if (IOValue(IO_Type.SL_AxisLocationCheck).Equals(IO_VALUE.LOW))
{ {
...@@ -417,61 +393,60 @@ namespace OnlineStore.DeviceLibrary ...@@ -417,61 +393,60 @@ namespace OnlineStore.DeviceLibrary
int chaz = Math.Abs(currP - Config.BatchAxisP3); int chaz = Math.Abs(currP - Config.BatchAxisP3);
if (chaz < BatchAxis.Config.CanErrorCountMax) if (chaz < BatchAxis.Config.CanErrorCountMax)
{ {
// MoveInfo.NextMoveStep(LineMoveStep.FI_21_BatchAxisDown); InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】 ,已经没有料盘,且已达到P3:" + Config.BatchAxisP3 + ",提升轴开始回下降待机点P2");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】宽度【" + LastWidth + "】,已经没有料盘,且已达到P3:" + Config.BatchAxisP3 + ",提升轴开始回下降待机点P2");
MoveInfo.ShelfNoTray = true; MoveInfo.ShelfNoTray = true;
BatchAxis.AbsMove(null, Config.BatchAxisP2, Config.BatchAxis_P2Speed); BatchAxis.AbsMove(null, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
} }
else else
{ {
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】宽度【" + LastWidth + "】,此时未检测到料盘,上料轴位置【" + currP + "】不在P3:" + Config.BatchAxisP3 + ",预扫码"); InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】 ,此时未检测到料盘,上料轴位置【" + currP + "】不在P3:" + Config.BatchAxisP3 + ",预扫码");
YuScanCode(); YuScanCode();
} }
} }
else else
{ {
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】宽度【" + LastWidth + "】,预扫码"); InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】 ,预扫码");
YuScanCode(); YuScanCode();
} }
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_27_SaveSize)) else if (MoveInfo.IsStep(LineMoveStep.FI_27_CylinderGive))
{ {
if (UpdownIsInP1()) MoveInfo.NextMoveStep(LineMoveStep.FI_28_SaveSize);
LastWidth = GetWidth();
MoveInfo.MoveParam.PlateW = LastWidth;
InLog("料盘移栽" + MoveInfo.SLog + ":获取到料盘尺寸 [" + LastWidth + "X" + LastHeight + "]");
if (LastWidth.Equals(7))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_28_CylinderGive); if (LastHeight > 16)
InLog("料盘移栽" + MoveInfo.SLog + ":上料横移气缸放料SOL"); {
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give); LogUtil.error(Name + "计算后高度" + LastWidth + "X" + LastHeight + ",七寸盘默认盘高最高=16,修改高度为16");
LastHeight = 16;
}
} }
else else
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_27_SaveSize); if (LastHeight < 12)
InLog("料盘移栽" + MoveInfo.SLog + ":上料横移机构取料端 前升降轴先到P1 ["+ Config.UpDownAxisP1 + "]"); {
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed); LogUtil.error(Name + "计算后高度" + LastWidth + "X" + LastHeight + ",非七寸盘默认盘高最低=12,修改高度为12");
LastHeight = 12;
}
} }
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_28_CylinderGive)) else if (MoveInfo.IsStep(LineMoveStep.FI_28_SaveSize))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_29_BatchAxisDown); MoveInfo.NextMoveStep(LineMoveStep.FI_29_BatchAxisDown);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
if (!MoveInfo.ShelfNoTray) if (!MoveInfo.ShelfNoTray)
{ {
FI_BatchAxisDown(); FI_BatchAxisDown();
} }
//int targetPositon = Config.GetUpdownP2Detial(LastHeight, LastWidth);
//string log = ":移栽伺服下降到P2:" + targetPositon;
//InLog("料盘移栽" + MoveInfo.SLog + ": " + log + "");
//UpdownAxis.AbsMove(MoveInfo, targetPositon, Config.UpdownAxis_P2Speed);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_29_BatchAxisDown)) else if (MoveInfo.IsStep(LineMoveStep.FI_29_BatchAxisDown))
{ {
FI_31_GetPosID(); FI_31_GetPosID();
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_30_WaitReelCheck))
{
FI_31_GetPosID();
}
else if (MoveInfo.IsStep(LineMoveStep.FI_31_GetPosID)) else if (MoveInfo.IsStep(LineMoveStep.FI_31_GetPosID))
{ {
if (getPosTask.IsCompleted && LastPosParam != null) if (getPosTask.IsCompleted && LastPosParam != null)
...@@ -485,24 +460,24 @@ namespace OnlineStore.DeviceLibrary ...@@ -485,24 +460,24 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsTimeOut(120)) else if (MoveInfo.IsTimeOut(120))
{ {
MoveTimeOut(MoveInfo, "获取库位号超时"); MoveTimeOut(MoveInfo, "获取库位号超时");
} }
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_32_WaitTray))//TODO else if (MoveInfo.IsStep(LineMoveStep.FI_32_WaitTray))//TODO
{ {
currTrayNum = -1; currTrayNum = -1;
if (LineManager.Line. TrayIsReady(DeviceID,out currTrayNum)) if (LineManager.Line.TrayIsReady(DeviceID, out currTrayNum))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_33_CylinderDown); MoveInfo.NextMoveStep(LineMoveStep.FI_33_CylinderDown);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
int targetPositon = Config.GetUpdownP2Detial(LastHeight, LastWidth); int targetPositon = Config.GetUpdownP2Detial(LastHeight, LastWidth);
UpdownAxis.AbsMove(MoveInfo, targetPositon, Config.UpdownAxis_P2Speed); UpdownAxis.AbsMove(MoveInfo, targetPositon, Config.UpdownAxis_P2Speed);
LastPosParam.TrayNumber = currTrayNum; LastPosParam.TrayNumber = currTrayNum;
InLog("料盘移栽" + MoveInfo.SLog + ":移栽伺服下降到P2: [" + targetPositon+"] 托盘号【" + currTrayNum + "】,更新托盘信息 :" + LastPosParam.ToShortStr()); InLog("料盘移栽" + MoveInfo.SLog + ":移栽伺服下降到P2: [" + targetPositon + "] 托盘号【" + currTrayNum + "】,更新托盘信息 :" + LastPosParam.ToShortStr());
TrayManager.UpdateTrayInfo(currTrayNum, true, ReelType.InStore, LastPosParam, LastPosParam.NgMsg); TrayManager.UpdateTrayInfo(currTrayNum, true, ReelType.InStore, LastPosParam, LastPosParam.NgMsg);
SServerManager.SendPosToStoreCheck(Name, LastPosParam); SServerManager.SendPosToStoreCheck(Name, LastPosParam);
if (IOValue(IO_Type.SL_AxisLocationCheck).Equals(IO_VALUE.LOW) && MoveInfo.ShelfNoTray.Equals(false)) if (IOValue(IO_Type.SL_AxisLocationCheck).Equals(IO_VALUE.LOW) && MoveInfo.ShelfNoTray.Equals(false))
{ {
InLog("获取库位" + MoveInfo.SLog + ": 上料轴开始慢速上升到P3点,不等待结果"); InLog("获取库位" + MoveInfo.SLog + ": 上料轴开始慢速上升到P3点,不等待结果");
...@@ -513,7 +488,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -513,7 +488,7 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsTimeOut(180)) else if (MoveInfo.IsTimeOut(180))
{ {
MoveTimeOut(MoveInfo, "等待空托盘到达超时"); MoveTimeOut(MoveInfo, "等待空托盘到达超时");
} }
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_33_CylinderDown)) else if (MoveInfo.IsStep(LineMoveStep.FI_33_CylinderDown))
...@@ -526,8 +501,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -526,8 +501,8 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_35_AxisToP1); MoveInfo.NextMoveStep(LineMoveStep.FI_35_AxisToP1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
InLog("料盘移栽" + MoveInfo.SLog + ":升降轴到P1点 ["+ Config.UpDownAxisP1 + "]"); InLog("料盘移栽" + MoveInfo.SLog + ":升降轴到P1点 [" + Config.UpDownAxisP1 + "]");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed); UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_35_AxisToP1)) else if (MoveInfo.IsStep(LineMoveStep.FI_35_AxisToP1))
{ {
...@@ -535,7 +510,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -535,7 +510,7 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_35_AxisToP1); MoveInfo.NextMoveStep(LineMoveStep.FI_35_AxisToP1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
InLog("料盘移栽" + MoveInfo.SLog + ":升降轴到P1点 ["+ Config.UpDownAxisP1 + "]"); InLog("料盘移栽" + MoveInfo.SLog + ":升降轴到P1点 [" + Config.UpDownAxisP1 + "]");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed); UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
} }
else else
...@@ -543,9 +518,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -543,9 +518,9 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.FI_36_TrayMoveOk); MoveInfo.NextMoveStep(LineMoveStep.FI_36_TrayMoveOk);
InLog("料盘移栽" + MoveInfo.SLog + ":升降轴已到P1,托盘放行"); InLog("料盘移栽" + MoveInfo.SLog + ":升降轴已到P1,托盘放行");
TrayMoveOk(); TrayMoveOk();
} }
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_36_TrayMoveOk)) else if (MoveInfo.IsStep(LineMoveStep.FI_36_TrayMoveOk))
{ {
if (getPosTask == null || getPosTask.IsCompleted) if (getPosTask == null || getPosTask.IsCompleted)
...@@ -580,7 +555,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -580,7 +555,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(LineMoveStep.FI_52_TrayLocation_After)) else if (MoveInfo.IsStep(LineMoveStep.FI_52_TrayLocation_After))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FI_53_BatchAxisToP1); MoveInfo.NextMoveStep(LineMoveStep.FI_53_BatchAxisToP1);
InLog("上料完成" + MoveInfo.SLog + ":提升伺服到P1点["+ Config.BatchAxisP1 + "]"); InLog("上料完成" + MoveInfo.SLog + ":提升伺服到P1点[" + Config.BatchAxisP1 + "]");
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP1, Config.BatchAxis_P1Speed); BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP1, Config.BatchAxis_P1Speed);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_53_BatchAxisToP1)) else if (MoveInfo.IsStep(LineMoveStep.FI_53_BatchAxisToP1))
...@@ -612,7 +587,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -612,7 +587,7 @@ namespace OnlineStore.DeviceLibrary
{ {
InLog("上料完成" + MoveInfo.SLog + ",顶升气缸上升时发现固定气缸不在上升端,重新上升定位气缸"); InLog("上料完成" + MoveInfo.SLog + ",顶升气缸上升时发现固定气缸不在上升端,重新上升定位气缸");
MoveInfo.NextMoveStep(LineMoveStep.FI_54_FixedUp); MoveInfo.NextMoveStep(LineMoveStep.FI_54_FixedUp);
InLog("上料完成" + MoveInfo.SLog + ", 固定气缸上升"); InLog("上料完成" + MoveInfo.SLog + ", 固定气缸上升");
FixedCylinderUp(MoveInfo); FixedCylinderUp(MoveInfo);
} }
} }
...@@ -624,6 +599,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -624,6 +599,7 @@ namespace OnlineStore.DeviceLibrary
InLog("上料完成" + MoveInfo.SLog + ", 线体横移电机运转,等待料架离开上料工位"); InLog("上料完成" + MoveInfo.SLog + ", 线体横移电机运转,等待料架离开上料工位");
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.LOW));
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_57_SideWayLineRun)) else if (MoveInfo.IsStep(LineMoveStep.FI_57_SideWayLineRun))
...@@ -632,6 +608,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -632,6 +608,7 @@ namespace OnlineStore.DeviceLibrary
InLog("上料完成" + MoveInfo.SLog + ", 线体横移电机运转,等待料架到达出口"); InLog("上料完成" + MoveInfo.SLog + ", 线体横移电机运转,等待料架到达出口");
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.HIGH);
//MoveInfo.OneWaitCanEndStep = true; //MoveInfo.OneWaitCanEndStep = true;
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000)); //MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_Check, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_Check, IO_VALUE.HIGH));
...@@ -643,7 +620,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -643,7 +620,7 @@ namespace OnlineStore.DeviceLibrary
InLog("上料完成" + MoveInfo.SLog + ", 料架到达出口,线体横移电机停止 "); InLog("上料完成" + MoveInfo.SLog + ", 料架到达出口,线体横移电机停止 ");
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.LOW);
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_59_LineStop)) else if (MoveInfo.IsStep(LineMoveStep.FI_59_LineStop))
{ {
...@@ -655,8 +632,29 @@ namespace OnlineStore.DeviceLibrary ...@@ -655,8 +632,29 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsStep(LineMoveStep.FI_60_TopDown)) else if (MoveInfo.IsStep(LineMoveStep.FI_60_TopDown))
{ {
if (HasOutLine)
{
MoveInfo.NextMoveStep(LineMoveStep.FI_61_OutLineRun);
InLog("送出料串: " + MoveInfo.SLog + ", 出料线阻挡上升,出料线体转动5秒钟 或等待出料口信号亮");
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
IOMove(IO_Type.SL_OutLine_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000));
if (IOValue(IO_Type.SL_OutLine_Check).Equals(IO_VALUE.LOW))
{
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_OutLine_Check, IO_VALUE.HIGH));
}
}
else
{
MoveEndS();
LastOutShelfId = CurrShelfId;
InLog("上料完成,料架到达出口处, 通知AGV取空料架, 入料流程结束,更新LastOutShelfId=" + LastOutShelfId);
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, ClientLevel.Low);
}
}
else if (MoveInfo.IsStep(LineMoveStep.FI_61_OutLineRun))
{
MoveEndS(); MoveEndS();
// MoveInfo.NextMoveStep(LineMoveStep.FI_39_OutLineRun);
LastOutShelfId = CurrShelfId; LastOutShelfId = CurrShelfId;
InLog("上料完成,料架到达出口处, 通知AGV取空料架, 入料流程结束,更新LastOutShelfId=" + LastOutShelfId); InLog("上料完成,料架到达出口处, 通知AGV取空料架, 入料流程结束,更新LastOutShelfId=" + LastOutShelfId);
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, ClientLevel.Low); AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, ClientLevel.Low);
......
...@@ -371,7 +371,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -371,7 +371,7 @@ namespace OnlineStore.DeviceLibrary
//如果再出库中直接出库 //如果再出库中直接出库
MoveInfo.EndMove(); MoveInfo.EndMove();
runStatus = LineRunStatus.Runing; runStatus = LineRunStatus.Runing;
OutLog("准备出库料架完成"); OutLog("准备出库料架完成");
} }
else else
{ {
...@@ -454,23 +454,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -454,23 +454,16 @@ namespace OnlineStore.DeviceLibrary
OutLog("送出料串: " + MoveInfo.SLog + ", 线体横移电机运转,等待料架离开定位工位"); OutLog("送出料串: " + MoveInfo.SLog + ", 线体横移电机运转,等待料架离开定位工位");
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH);
if (Config.DOList.ContainsKey(IO_Type.SL_RollerLine_Run)) IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.HIGH);
{
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.HIGH);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.LOW));
} }
else if (MoveInfo.IsStep(LineMoveStep.FO_57_SideWayLineRun)) else if (MoveInfo.IsStep(LineMoveStep.FO_57_SideWayLineRun))
{ {
MoveInfo.NextMoveStep(LineMoveStep.FO_58_WaitShelfGo); MoveInfo.NextMoveStep(LineMoveStep.FO_58_WaitShelfGo);
OutLog("送出料串:" + MoveInfo.SLog + ", 线体横移电机运转,等待料架到达出口"); OutLog("送出料串:" + MoveInfo.SLog + ", 线体横移电机运转,等待料架到达出口");
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH);
if (Config.DOList.ContainsKey(IO_Type.SL_RollerLine_Run)) IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.HIGH);
{
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.HIGH);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_Check, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_Check, IO_VALUE.HIGH));
} }
else if (MoveInfo.IsStep(LineMoveStep.FO_58_WaitShelfGo)) else if (MoveInfo.IsStep(LineMoveStep.FO_58_WaitShelfGo))
...@@ -479,10 +472,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -479,10 +472,7 @@ namespace OnlineStore.DeviceLibrary
OutLog("送出料串: " + MoveInfo.SLog + ", 料架到达出口,线体横移电机停止 "); OutLog("送出料串: " + MoveInfo.SLog + ", 料架到达出口,线体横移电机停止 ");
IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_LocationSideWay_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW); IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW);
if (Config.DOList.ContainsKey(IO_Type.SL_RollerLine_Run)) IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.LOW);
{
IOMove(IO_Type.SL_RollerLine_Run, IO_VALUE.LOW);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
} }
...@@ -497,9 +487,31 @@ namespace OnlineStore.DeviceLibrary ...@@ -497,9 +487,31 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.IsStep(LineMoveStep.FO_60_TopDown)) else if (MoveInfo.IsStep(LineMoveStep.FO_60_TopDown))
{ {
MoveEndS(); if (HasOutLine)
// MoveInfo.NextMoveStep(LineMoveStep.FO_39_OutLineRun); {
OutLog("送出料串: " + MoveInfo.SLog + ", 出口线体运转,料架到达出口处, 通知AGV取空料架, 出料结束"); MoveInfo.NextMoveStep(LineMoveStep.FO_61_OutLineRun);
OutLog("送出料串: " + MoveInfo.SLog + ", 出料线阻挡上升,出料线体转动5秒钟 或等待出料口信号亮");
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
IOMove(IO_Type.SL_OutLine_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000));
if (IOValue(IO_Type.SL_OutLine_Check).Equals(IO_VALUE.LOW))
{
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_OutLine_Check, IO_VALUE.HIGH));
}
}
else
{
MoveEndS();
OutLog("送出料串: " + MoveInfo.SLog + ", 料架到达出口处, 通知AGV取空料架, 出料结束");
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, Asa.ClientLevel.High);
}
}
else if (MoveInfo.IsStep(LineMoveStep.FO_61_OutLineRun))
{
MoveEndS();
OutLog("送出料串: " + MoveInfo.SLog + ", 出料线体停止,料架到达出口处, 通知AGV取空料架, 出料结束");
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
IOMove(IO_Type.SL_OutLine_Run, IO_VALUE.LOW);
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, Asa.ClientLevel.High); AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, Asa.ClientLevel.High);
} }
else if (MoveInfo.MoveStep >= LineMoveStep.FO_21_AxisDownMove && MoveInfo.MoveStep < LineMoveStep.FO_51_BatchAxisToP2) else if (MoveInfo.MoveStep >= LineMoveStep.FO_21_AxisDownMove && MoveInfo.MoveStep < LineMoveStep.FO_51_BatchAxisToP2)
......
...@@ -801,7 +801,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -801,7 +801,12 @@ namespace OnlineStore.DeviceLibrary
//测线满时不需要横移 //测线满时不需要横移
if (IOValue(IO_Type.HY_OL_Full_Check).Equals(IO_VALUE.LOW)) if (IOValue(IO_Type.HY_OL_Full_Check).Equals(IO_VALUE.LOW))
{ {
if (LineManager.TrayToOutLineTest)
{
MoveInfo.MoveParam = new InOutParam(trayNum);
LogInfo(" 托盘需要横移到出料线:托盘横移到出料线测试功能打开" );
return true;
}
//TODO //TODO
TrayInfo trayInfo = TrayManager.GetTrayInfo(currTrayNum); TrayInfo trayInfo = TrayManager.GetTrayInfo(currTrayNum);
if (!trayInfo.IsFull) if (!trayInfo.IsFull)
......
...@@ -122,21 +122,28 @@ namespace OnlineStore.DeviceLibrary ...@@ -122,21 +122,28 @@ namespace OnlineStore.DeviceLibrary
{ {
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":顶升气缸上升 "); CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":顶升气缸上升 ");
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up); CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
LineRun(SecondMoveInfo); //LineRun(SecondMoveInfo);
} }
else else
{ {
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":顶升气缸下降 "); CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":顶升气缸下降 ");
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down); CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
LineRun(SecondMoveInfo); //LineRun(SecondMoveInfo);
} }
} }
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_02_TopMove)) else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_02_TopMove))
{ {
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_03_StopDown); SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_03_StopDown);
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":前阻挡下降,电机正转");
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, 1200); IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, 1200);
LineRun(SecondMoveInfo); if (IsNgPro())
{
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":前阻挡下降,横移电机正转");
LineRun(SecondMoveInfo);
}
else
{
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":前阻挡下降");
}
} }
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_03_StopDown)) else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_03_StopDown))
{ {
...@@ -154,8 +161,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -154,8 +161,7 @@ namespace OnlineStore.DeviceLibrary
} }
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_05_TrayCheck)) else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_05_TrayCheck))
{ {
//读取托盘号 //读取托盘号
LineStop();
UpdateTrayNum(); UpdateTrayNum();
if (ReelNeedMove()) if (ReelNeedMove())
{ {
...@@ -164,7 +170,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -164,7 +170,7 @@ namespace OnlineStore.DeviceLibrary
else if (ReelNeedToNG()) else if (ReelNeedToNG())
{ {
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_07_TopUp); SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_07_TopUp);
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":需要移到NG箱,顶升气缸上升,横移电机停止"); CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":需要移到NG箱,顶升气缸上升,横移电机停止");
LineStop(SecondMoveInfo); LineStop(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up); CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
} }
...@@ -194,12 +200,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -194,12 +200,12 @@ namespace OnlineStore.DeviceLibrary
} }
else if (SecondMoveInfo.IsTimeOut()) else if (SecondMoveInfo.IsTimeOut())
{ {
MoveTimeOut(SecondMoveInfo, "等待移栽机构开始抓料超时"); MoveTimeOut(SecondMoveInfo, "等待移栽机构开始抓料超时");
} }
} }
else if (SecondMoveInfo.IsTimeOut()) else if (SecondMoveInfo.IsTimeOut())
{ {
MoveTimeOut(SecondMoveInfo, "等待移栽机构开始抓料超时"); MoveTimeOut(SecondMoveInfo, "等待移栽机构开始抓料超时");
} }
} }
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_10_ReelProEnd)) else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_10_ReelProEnd))
...@@ -233,7 +239,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -233,7 +239,8 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_13_TrayLeave)) else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_13_TrayLeave))
{ {
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_14_TopDown); SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_14_TopDown);
CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":顶升气缸下降"); CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":顶升气缸下降,横移电机 停止");
LineStop(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down); CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
} }
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_14_TopDown)) else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_14_TopDown))
...@@ -250,16 +257,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -250,16 +257,18 @@ namespace OnlineStore.DeviceLibrary
private void JHY_11_TopDown() private void JHY_11_TopDown()
{ {
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_11_TopDown); SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_11_TopDown);
CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":横移电机停止,阻挡上升,顶升气缸下降");
LineStop(SecondMoveInfo);
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW); IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
if (IsNgPro()) if (IsNgPro())
{ {
CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":横移电机停止,阻挡上升,顶升气缸下降");
LineStop(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down); CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
} }
else else
{ {
CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":启动横移电机,阻挡上升,顶升气缸上升");
LineRun(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up); CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
} }
} }
...@@ -278,8 +287,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -278,8 +287,7 @@ namespace OnlineStore.DeviceLibrary
if (LastWidth > 0) if (LastWidth > 0)
{ {
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_07_TopUp); SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_07_TopUp);
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":横移电机停止,顶升气缸上升"); CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":横移电机停止,顶升气缸上升");
LineStop(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up); CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
} }
else else
......
...@@ -99,7 +99,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -99,7 +99,7 @@ namespace OnlineStore.DeviceLibrary
T3C1_Log("检测到阻挡托盘," + T3C1_MoveInfo.SLog + " ,前阻挡上升,阻挡上升"); T3C1_Log("检测到阻挡托盘," + T3C1_MoveInfo.SLog + " ,前阻挡上升,阻挡上升");
Update_T3C1_TrayNum(); Update_T3C1_TrayNum();
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW); IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW)); T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopDown, IO_VALUE.LOW));
IOMove(IO_Type.HY_StopDown, IO_VALUE.LOW); IOMove(IO_Type.HY_StopDown, IO_VALUE.LOW);
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_StopDown, IO_VALUE.LOW)); T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_StopDown, IO_VALUE.LOW));
} }
...@@ -118,7 +118,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -118,7 +118,7 @@ namespace OnlineStore.DeviceLibrary
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MIO_00_Stop1Down); T3C1_MoveInfo.NextMoveStep(LineMoveStep.MIO_00_Stop1Down);
T3C1_Log(" 托盘检测:" + T3C1_MoveInfo.SLog + ",检测到HY_FrontStopCheck,前阻挡下降 , 等待 HY_FrontStopCheck=0,清理托盘RFID"); T3C1_Log(" 托盘检测:" + T3C1_MoveInfo.SLog + ",检测到HY_FrontStopCheck,前阻挡下降 , 等待 HY_FrontStopCheck=0,清理托盘RFID");
T3C1_TrayNum = 0; T3C1_TrayNum = 0;
IOMove(IO_Type.HY_FrontStopCheck, IO_VALUE.HIGH, 1200); IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, 1200);
T3C1_MoveInfo.OneWaitCanEndStep = true; T3C1_MoveInfo.OneWaitCanEndStep = true;
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW)); T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW));
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH)); T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
......
...@@ -20,6 +20,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -20,6 +20,7 @@ namespace OnlineStore.DeviceLibrary
public static bool DisSLEquip = false; public static bool DisSLEquip = false;
public static bool DisAllHy = false; public static bool DisAllHy = false;
public static bool DisAllMove = false; public static bool DisAllMove = false;
public static bool TrayToOutLineTest = false;
public static bool UseBuzzer = ConfigAppSettings.GetIntValue(Setting_Init.UseBuzzer).Equals(1); public static bool UseBuzzer = ConfigAppSettings.GetIntValue(Setting_Init.UseBuzzer).Equals(1);
private static bool isInit = false; private static bool isInit = false;
......
...@@ -33,11 +33,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -33,11 +33,12 @@ namespace OnlineStore.DeviceLibrary
{ {
if (ioType.Equals(IO_Type.HY_FrontStopDown) || ioType.Equals(IO_Type.HY_OL_StopDown)) if (ioType.Equals(IO_Type.HY_FrontStopDown) || ioType.Equals(IO_Type.HY_OL_StopDown))
{ {
} }
else if (ioType.Equals(IO_Type.HY_FrontStopCheck) || ioType.Equals(IO_Type.HY_OL_Tray_Check)) else if (ioType.Equals(IO_Type.HY_FrontStopCheck) || ioType.Equals(IO_Type.HY_OL_Tray_Check))
{ {
}
else if ( ioType.Equals(IO_Type.SL_RollerLine_Run)|| ioType.Equals(IO_Type.SL_OutLine_Run) || ioType.Equals(IO_Type.SL_OutLine_Check))
{
} }
else else
{ {
......
...@@ -553,31 +553,32 @@ namespace OnlineStore.DeviceLibrary ...@@ -553,31 +553,32 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
FI_24_UpdownToP1, FI_24_UpdownToP1,
/// <summary> /// <summary>
/// 料盘移栽:等待没有伺服料盘检测信号 /// 料盘移栽:等待没有伺服料盘检测信号,等待检测到料盘
/// </summary> /// </summary>
FI_25_CheckTray, FI_25_CheckTray,
/// <summary> /// <summary>
/// 料盘移栽:批量轴到P3点,检测是否有料盘 /// 料盘移栽:批量轴到P3点
/// </summary> /// </summary>
FI_26_BatchAxisToP3, FI_26_BatchAxisToP3,
/// <summary> /// <summary>
/// 料盘移栽:记录高度尺寸 /// 料盘移栽: 上料横移气缸放料SOL
/// </summary> /// </summary>
FI_27_SaveSize, FI_27_CylinderGive,
/// <summary> /// <summary>
/// 料盘移栽: 上料横移气缸放料SOL /// 料盘移栽:记录高度尺寸
/// </summary> /// </summary>
FI_28_CylinderGive, FI_28_SaveSize,
/// <summary> /// <summary>
/// 提升轴下降到料盘不溢出的位置 /// 提升轴下降到料盘不溢出的位置
/// </summary> /// </summary>
FI_29_BatchAxisDown, FI_29_BatchAxisDown,
/// <summary> ///// <summary>
/// 等待料盘检测信号 ///// 等待料盘检测信号
/// </summary> ///// </summary>
FI_30_WaitReelCheck, //FI_30_WaitReelCheck,
/// <summary> /// <summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!