Commit 9738d6f8 LN

分流横移2-进仓5托盘优化

1 个父辈 cf108a75
...@@ -75,6 +75,7 @@ ...@@ -75,6 +75,7 @@
this.btnShunt2updown2 = new System.Windows.Forms.Button(); this.btnShunt2updown2 = new System.Windows.Forms.Button();
this.groupBox6 = new System.Windows.Forms.GroupBox(); this.groupBox6 = new System.Windows.Forms.GroupBox();
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
this.btnMove5StopDown1 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.groupBox4.SuspendLayout(); this.groupBox4.SuspendLayout();
this.groupBox3.SuspendLayout(); this.groupBox3.SuspendLayout();
...@@ -706,6 +707,7 @@ ...@@ -706,6 +707,7 @@
// //
// tabPage3 // tabPage3
// //
this.tabPage3.Controls.Add(this.btnMove5StopDown1);
this.tabPage3.Controls.Add(this.btnShunt2Close); this.tabPage3.Controls.Add(this.btnShunt2Close);
this.tabPage3.Controls.Add(this.btnShunt2Run1); this.tabPage3.Controls.Add(this.btnShunt2Run1);
this.tabPage3.Controls.Add(this.btnShunt2Run2); this.tabPage3.Controls.Add(this.btnShunt2Run2);
...@@ -725,7 +727,7 @@ ...@@ -725,7 +727,7 @@
this.btnShunt2Close.BackColor = System.Drawing.Color.White; this.btnShunt2Close.BackColor = System.Drawing.Color.White;
this.btnShunt2Close.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnShunt2Close.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnShunt2Close.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnShunt2Close.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnShunt2Close.Location = new System.Drawing.Point(181, 195); this.btnShunt2Close.Location = new System.Drawing.Point(181, 233);
this.btnShunt2Close.Name = "btnShunt2Close"; this.btnShunt2Close.Name = "btnShunt2Close";
this.btnShunt2Close.Size = new System.Drawing.Size(153, 37); this.btnShunt2Close.Size = new System.Drawing.Size(153, 37);
this.btnShunt2Close.TabIndex = 301; this.btnShunt2Close.TabIndex = 301;
...@@ -833,6 +835,18 @@ ...@@ -833,6 +835,18 @@
this.tableLayoutPanel4.Size = new System.Drawing.Size(214, 540); this.tableLayoutPanel4.Size = new System.Drawing.Size(214, 540);
this.tableLayoutPanel4.TabIndex = 103; this.tableLayoutPanel4.TabIndex = 103;
// //
// btmMove5StopDown1
//
this.btnMove5StopDown1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnMove5StopDown1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnMove5StopDown1.Location = new System.Drawing.Point(18, 184);
this.btnMove5StopDown1.Name = "btmMove5StopDown1";
this.btnMove5StopDown1.Size = new System.Drawing.Size(153, 37);
this.btnMove5StopDown1.TabIndex = 302;
this.btnMove5StopDown1.Text = "分流2-进仓5阻挡1下降";
this.btnMove5StopDown1.UseVisualStyleBackColor = true;
this.btnMove5StopDown1.Click += new System.EventHandler(this.btmMove5StopDown1_Click);
//
// FrmIOStatus // FrmIOStatus
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
...@@ -923,6 +937,7 @@ ...@@ -923,6 +937,7 @@
private System.Windows.Forms.Button btnShunt2Stop1; private System.Windows.Forms.Button btnShunt2Stop1;
private System.Windows.Forms.Button btnShunt2updown1; private System.Windows.Forms.Button btnShunt2updown1;
private System.Windows.Forms.Button btnShunt2updown2; private System.Windows.Forms.Button btnShunt2updown2;
private System.Windows.Forms.Button btnMove5StopDown1;
} }
} }
...@@ -445,5 +445,11 @@ namespace OnlineStore.AssemblyLine ...@@ -445,5 +445,11 @@ namespace OnlineStore.AssemblyLine
IOManager.IOMove(IO_Type.Shunt2_MotorRun1, IO_VALUE.LOW); IOManager.IOMove(IO_Type.Shunt2_MotorRun1, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt2_MotorRun2, IO_VALUE.LOW); IOManager.IOMove(IO_Type.Shunt2_MotorRun2, IO_VALUE.LOW);
} }
private void btmMove5StopDown1_Click(object sender, EventArgs e)
{
BtnMove(btnMove5StopDown1, "分流2-进仓5阻挡1下降", "分流2-进仓5阻挡1上升", IO_Type.StopCylinder_Down1);
}
} }
} }
...@@ -84,3 +84,5 @@ DO,1000,分流2横移机构4皮带运行,Shunt2_MotorRun2,11,PRO_AOI_IP_24,0,分流2横移机构 ...@@ -84,3 +84,5 @@ DO,1000,分流2横移机构4皮带运行,Shunt2_MotorRun2,11,PRO_AOI_IP_24,0,分流2横移机构
,,,,13,PRO_AOI_IP_24,0,,Y816,Y816 ,,,,13,PRO_AOI_IP_24,0,,Y816,Y816
,,,,14,PRO_AOI_IP_24,0,,Y817,Y817 ,,,,14,PRO_AOI_IP_24,0,,Y817,Y817
,,,,15,PRO_AOI_IP_24,0,,Y818,Y818 ,,,,15,PRO_AOI_IP_24,0,,Y818,Y818
DI,1000,进仓05阻挡1托盘检测,StopCylinder_Check1,0,PRO_AOI_IP_23,0,进仓05阻挡1托盘检测,X321,X321
DO,1000,进仓05阻挡1下降SOL,StopCylinder_Down1,0,PRO_AOI_IP_23,0,进仓05阻挡1下降SOL,Y321,Y321
...@@ -269,7 +269,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -269,7 +269,11 @@ namespace OnlineStore.DeviceLibrary
TimeSpan rwSpan = DateTime.Now - preRWTime; TimeSpan rwSpan = DateTime.Now - preRWTime;
if (baseConfig.DType.Equals(DeviceType.MoveEquip) || baseConfig.DType.Equals(DeviceType.ProvidingEquip)) if (baseConfig.DType.Equals(DeviceType.MoveEquip) || baseConfig.DType.Equals(DeviceType.ProvidingEquip))
{ {
if (IOValue(IO_Type.StopCylinder_Down1).Equals(IO_VALUE.HIGH) && if (!TrayManager.HasCheck1(DeviceID) && IOValue(IO_Type.StopCylinder_Down2).Equals(IO_VALUE.HIGH))
{
return true;
}
else if (IOValue(IO_Type.StopCylinder_Down1).Equals(IO_VALUE.HIGH) &&
IOValue(IO_Type.StopCylinder_Down2).Equals(IO_VALUE.HIGH)) IOValue(IO_Type.StopCylinder_Down2).Equals(IO_VALUE.HIGH))
{ {
return true; return true;
...@@ -333,8 +337,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -333,8 +337,15 @@ namespace OnlineStore.DeviceLibrary
trayCount++; trayCount++;
//此处先对托盘号进行验证 //此处先对托盘号进行验证
preTrayNum = currTrayNum; preTrayNum = currTrayNum;
if (!TrayManager.HasCheck1(DeviceID))
{
currTrayNum = TrayManager.Move5TrayNum;
LogUtil.LOGGER.Info(Name + " [" + trayCount + "] IP [" + RFIDManager.GetRFIP(DeviceID) + "] [" + preTrayNum + "] 当前托盘 [" + currTrayNum + "] 使用横移分流2缓存托盘号 Move5TrayNum ");
}
else
{
currTrayNum = RFIDManager.GetTrayNum(DeviceID, true); currTrayNum = RFIDManager.GetTrayNum(DeviceID, true);
LogUtil.LOGGER.Info(Name+ " [" + trayCount + "] IP [" + RFIDManager.GetRFIP(DeviceID) + "] [" + preTrayNum + "] 当前托盘 [" + currTrayNum + "]"); LogUtil.LOGGER.Info(Name + " [" + trayCount + "] IP [" + RFIDManager.GetRFIP(DeviceID) + "] [" + preTrayNum + "] 当前托盘 [" + currTrayNum + "]");
if (preTrayNum.Equals(currTrayNum) && currTrayNum > 0) if (preTrayNum.Equals(currTrayNum) && currTrayNum > 0)
{ {
TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],连续两个托盘号一样"; TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],连续两个托盘号一样";
...@@ -345,6 +356,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -345,6 +356,7 @@ namespace OnlineStore.DeviceLibrary
TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续"; TrayManager.TrayErrorMsg = DateTime.Now.ToLongTimeString() + " " + Name + "托盘号出现错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续";
LogUtil.error(Name + "托盘号错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续"); LogUtil.error(Name + "托盘号错乱:上一个托盘[" + preTrayNum + "] 当前托盘 [" + currTrayNum + "],托盘号不连续");
} }
}
return true; return true;
} }
internal void ClearTrayRFID() internal void ClearTrayRFID()
......
...@@ -69,7 +69,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -69,7 +69,7 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.Shunt_Check3_Back).Equals(IO_VALUE.LOW) && IOValue(IO_Type.Shunt_StopDown2_Back).Equals(IO_VALUE.LOW)) if (IOValue(IO_Type.Shunt_Check3_Back).Equals(IO_VALUE.LOW) && IOValue(IO_Type.Shunt_StopDown2_Back).Equals(IO_VALUE.LOW))
{ {
if ((Shunt_MoveInfo.MoveType.Equals(LineMoveType.None) || if ((Shunt_MoveInfo.MoveType.Equals(LineMoveType.None) ||
Shunt_MoveInfo.MoveStep <= LineMoveStep.Shunt03_WaitCheck1Low)) Shunt_MoveInfo.MoveStep <= LineMoveStep.Shunt05_WaitCheck1Low))
{ {
if (CylinderIsOk(IO_Type.Shunt_TopCylinder_Up2, IO_Type.Shunt_TopCylinder_Down2)) if (CylinderIsOk(IO_Type.Shunt_TopCylinder_Up2, IO_Type.Shunt_TopCylinder_Down2))
{ {
...@@ -170,7 +170,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -170,7 +170,7 @@ namespace OnlineStore.DeviceLibrary
if (TrayManager.checkWatch(ShuntCheck1Watch, 400, true)) if (TrayManager.checkWatch(ShuntCheck1Watch, 400, true))
{ {
Shunt_MoveInfo.NewMove(LineMoveType.InStore); Shunt_MoveInfo.NewMove(LineMoveType.InStore);
Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt01_WaitTime); Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt02_WaitTime);
UpateShuntTrayNum(); UpateShuntTrayNum();
ShuntLog("分流横移:等待阻挡1亮,阻挡2亮,阻挡1上升,升降1下降 "); ShuntLog("分流横移:等待阻挡1亮,阻挡2亮,阻挡1上升,升降1下降 ");
CylinderMove(Shunt_MoveInfo, IO_Type.Shunt_TopCylinder_Up1, IO_Type.Shunt_TopCylinder_Down1,true); CylinderMove(Shunt_MoveInfo, IO_Type.Shunt_TopCylinder_Up1, IO_Type.Shunt_TopCylinder_Down1,true);
...@@ -230,12 +230,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -230,12 +230,12 @@ namespace OnlineStore.DeviceLibrary
return; return;
} }
if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt01_WaitTime)) if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt02_WaitTime))
{ {
string msg = ""; string msg = "";
if (TrayNeedShunt(ShuntTrayNum, out msg)) if (TrayNeedShunt(ShuntTrayNum, out msg))
{ {
Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt05_Top1Up); Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt06_Top1Up);
LogUtil.info(Name + "[" + ShuntTrayNum + "]" + "分流横移:" + msg + " 需要分流,阻挡1上升,升降1上升 ,等待升降2是否可上升 "); LogUtil.info(Name + "[" + ShuntTrayNum + "]" + "分流横移:" + msg + " 需要分流,阻挡1上升,升降1上升 ,等待升降2是否可上升 ");
CheckAndMove(IO_Type.Shunt_MotorRun1, IO_VALUE.LOW); CheckAndMove(IO_Type.Shunt_MotorRun1, IO_VALUE.LOW);
CheckAndMove(IO_Type.Shunt_MotorRun2, IO_VALUE.LOW); CheckAndMove(IO_Type.Shunt_MotorRun2, IO_VALUE.LOW);
...@@ -248,24 +248,24 @@ namespace OnlineStore.DeviceLibrary ...@@ -248,24 +248,24 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt02_Stop1Down); Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt04_Stop1Down);
LogUtil.info(Name + "[" + ShuntTrayNum + "]" + "分流横移: 不需要分流,直接放行,Shunt_StopDown1_Front 下降1200 "); LogUtil.info(Name + "[" + ShuntTrayNum + "]" + "分流横移: 不需要分流,直接放行,Shunt_StopDown1_Front 下降1200 ");
IOMove(IO_Type.Shunt_StopDown1_Front, IO_VALUE.HIGH, 1200); IOMove(IO_Type.Shunt_StopDown1_Front, IO_VALUE.HIGH, 1200);
} }
} }
else if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt02_Stop1Down)) else if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt04_Stop1Down))
{ {
Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt03_WaitCheck1Low); Shunt_MoveInfo.NextMoveStep(LineMoveStep.Shunt05_WaitCheck1Low);
ShuntLog("分流横移: 不需要分流,等待检测1信号消失 "); ShuntLog("分流横移: 不需要分流,等待检测1信号消失 ");
Shunt_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt_Check1_Front, IO_VALUE.LOW)); Shunt_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt_Check1_Front, IO_VALUE.LOW));
} }
else if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt03_WaitCheck1Low)) else if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt05_WaitCheck1Low))
{ {
Shunt_MoveInfo.EndMove(); Shunt_MoveInfo.EndMove();
ShuntLog("分流横移: 已离开 "); ShuntLog("分流横移: 已离开 ");
} }
else if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt05_Top1Up)) else if (Shunt_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt06_Top1Up))
{ {
if (Shunt_Updown2CanUp()) if (Shunt_Updown2CanUp())
{ {
......
...@@ -34,6 +34,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -34,6 +34,7 @@ namespace OnlineStore.DeviceLibrary
{ {
return true; return true;
} }
return true;
if ( IOValue(IO_Type.Shunt2_Check1_Front).Equals(IO_VALUE.LOW) && if ( IOValue(IO_Type.Shunt2_Check1_Front).Equals(IO_VALUE.LOW) &&
IOValue(IO_Type.Shunt2_Check2_Middle).Equals(IO_VALUE.LOW)) IOValue(IO_Type.Shunt2_Check2_Middle).Equals(IO_VALUE.LOW))
{ {
...@@ -66,7 +67,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -66,7 +67,7 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.Shunt2_Check3_Back).Equals(IO_VALUE.LOW) && IOValue(IO_Type.Shunt2_StopDown2_Back).Equals(IO_VALUE.LOW)) if (IOValue(IO_Type.Shunt2_Check3_Back).Equals(IO_VALUE.LOW) && IOValue(IO_Type.Shunt2_StopDown2_Back).Equals(IO_VALUE.LOW))
{ {
if ((Shunt2_MoveInfo.MoveType.Equals(LineMoveType.None) || if ((Shunt2_MoveInfo.MoveType.Equals(LineMoveType.None) ||
Shunt2_MoveInfo.MoveStep <= LineMoveStep.Shunt03_WaitCheck1Low)) Shunt2_MoveInfo.MoveStep <= LineMoveStep.Shunt05_WaitCheck1Low))
{ {
if (CylinderIsOk(IO_Type.Shunt2_TopCylinder_Up2, IO_Type.Shunt2_TopCylinder_Down2)) if (CylinderIsOk(IO_Type.Shunt2_TopCylinder_Up2, IO_Type.Shunt2_TopCylinder_Down2))
{ {
...@@ -157,22 +158,39 @@ namespace OnlineStore.DeviceLibrary ...@@ -157,22 +158,39 @@ namespace OnlineStore.DeviceLibrary
if (Shunt2_MoveInfo.MoveType.Equals(LineMoveType.None)) if (Shunt2_MoveInfo.MoveType.Equals(LineMoveType.None))
{ {
if (IOValue(IO_Type.Shunt2_Check1_Front).Equals(IO_VALUE.HIGH)&& IOValue(IO_Type.Shunt2_Check2_Middle).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.Shunt2_Check1_Front).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.Shunt2_Check2_Middle).Equals(IO_VALUE.HIGH))
{ {
if (TrayManager.checkWatch(Shunt2Check1Watch, 400, true)) if (TrayManager.checkWatch(Shunt2Check1Watch, 400, true))
{ {
Shunt2_MoveInfo.NewMove(LineMoveType.InStore); Shunt2_MoveInfo.NewMove(LineMoveType.InStore);
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt01_WaitTime); Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt02_WaitTime);
//读取进仓5处的托盘号 //读取进仓5处的托盘号
Shunt2TrayNum = RFIDManager.GetTrayNum(5, false); Shunt2TrayNum = RFIDManager.GetTrayNum(5, false);
Shunt2Log("分流横移2:托盘号【"+Shunt2TrayNum+"】等待阻挡1亮,阻挡2亮,阻挡1上升,升降1下降 "); Shunt2Log("分流横移2:托盘号【" + Shunt2TrayNum + "】等待阻挡1亮,阻挡2亮,阻挡1上升,升降1下降 ");
CylinderMove(Shunt2_MoveInfo, IO_Type.Shunt2_TopCylinder_Up1, IO_Type.Shunt2_TopCylinder_Down1,true); CylinderMove(Shunt2_MoveInfo, IO_Type.Shunt2_TopCylinder_Up1, IO_Type.Shunt2_TopCylinder_Down1, true);
CheckAndMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.LOW); CheckAndMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.LOW);
Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check1_Front, IO_VALUE.HIGH)); Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check1_Front, IO_VALUE.HIGH));
Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check2_Middle, IO_VALUE.HIGH)); Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check2_Middle, IO_VALUE.HIGH));
} }
} }
else if (IOValue(IO_Type.Shunt2_Check1_Front).Equals(IO_VALUE.LOW) && IOValue(IO_Type.Shunt2_Check2_Middle).Equals(IO_VALUE.LOW))
{
//如果前阻挡有托盘,下降
if (IOValue(IO_Type.StopCylinder_Check1).Equals(IO_VALUE.HIGH))
{
Shunt2_MoveInfo.NewMove(LineMoveType.InStore);
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt01_StopDown1);
Shunt2Log("分流横移2:前阻挡有托盘,前阻挡下降,等待托盘到达 ");
CylinderMove(Shunt2_MoveInfo, IO_Type.Shunt2_TopCylinder_Up1, IO_Type.Shunt2_TopCylinder_Down1, true);
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH,1200);
CheckAndMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.LOW);
Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check1_Front, IO_VALUE.HIGH));
Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check2_Middle, IO_VALUE.HIGH));
}
}
else else
{ {
Shunt2Check1Watch.Stop(); Shunt2Check1Watch.Stop();
...@@ -222,13 +240,25 @@ namespace OnlineStore.DeviceLibrary ...@@ -222,13 +240,25 @@ namespace OnlineStore.DeviceLibrary
{ {
return; return;
} }
if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt01_StopDown1))
{
Shunt2_MoveInfo.NewMove(LineMoveType.InStore);
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt02_WaitTime);
if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt01_WaitTime)) //读取进仓5处的托盘号
Shunt2TrayNum = RFIDManager.GetTrayNum(5, false);
Shunt2Log("分流横移2:托盘号【" + Shunt2TrayNum + "】等待阻挡1亮,阻挡2亮,阻挡1上升,升降1下降 ");
CylinderMove(Shunt2_MoveInfo, IO_Type.Shunt2_TopCylinder_Up1, IO_Type.Shunt2_TopCylinder_Down1, true);
CheckAndMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.LOW);
Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check1_Front, IO_VALUE.HIGH));
Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check2_Middle, IO_VALUE.HIGH));
}
else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt02_WaitTime))
{ {
string msg = ""; string msg = "";
if (TrayNeedShunt2(Shunt2TrayNum, out msg)) if (TrayNeedShunt2(Shunt2TrayNum, out msg))
{ {
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt05_Top1Up); Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt06_Top1Up);
LogUtil.info(Name + "[" + Shunt2TrayNum + "]" + "分流横移2:" + msg + " 需要分流,阻挡1上升,升降1上升 ,等待升降2是否可上升 ,进仓5结束托盘处理,清理托盘号"); LogUtil.info(Name + "[" + Shunt2TrayNum + "]" + "分流横移2:" + msg + " 需要分流,阻挡1上升,升降1上升 ,等待升降2是否可上升 ,进仓5结束托盘处理,清理托盘号");
CheckAndMove(IO_Type.Shunt2_MotorRun1, IO_VALUE.LOW); CheckAndMove(IO_Type.Shunt2_MotorRun1, IO_VALUE.LOW);
CheckAndMove(IO_Type.Shunt2_MotorRun2, IO_VALUE.LOW); CheckAndMove(IO_Type.Shunt2_MotorRun2, IO_VALUE.LOW);
...@@ -243,24 +273,51 @@ namespace OnlineStore.DeviceLibrary ...@@ -243,24 +273,51 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt02_Stop1Down); MoveEquip moveEquip = LineManager.Line.GetMoveByDId(5);
if (moveEquip.IOValue(IO_Type.StopCylinder_Check2).Equals(IO_VALUE.LOW))
{
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt04_Stop1Down);
LogUtil.info(Name + "[" + Shunt2TrayNum + "]" + "分流横移2: 不需要分流,直接放行,Shunt2_StopDown1_Front 下降1200 "); LogUtil.info(Name + "[" + Shunt2TrayNum + "]" + "分流横移2: 不需要分流,直接放行,Shunt2_StopDown1_Front 下降1200 ");
IOMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.HIGH, 1200); IOMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.HIGH, 1200);
} }
else
{
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt03_WaitStop1Down);
LogUtil.info(Name + "[" + Shunt2TrayNum + "]" + "分流横移2: 不需要分流,等待进仓5处无托盘后放行托盘 ");
IOMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.HIGH, 500);
}
}
}
else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt03_WaitStop1Down))
{
MoveEquip moveEquip = LineManager.Line.GetMoveByDId(5);
if (moveEquip.IOValue(IO_Type.StopCylinder_Check2).Equals(IO_VALUE.LOW))
{
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt04_Stop1Down);
LogUtil.info(Name + "[" + Shunt2TrayNum + "]" + "分流横移2: 不需要分流,放行托盘,Shunt2_StopDown1_Front 下降1200 ");
IOMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.HIGH, 1200);
}
else
{
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt03_WaitStop1Down);
LogUtil.info(Name + "[" + Shunt2TrayNum + "]" + "分流横移2: 不需要分流,等待进仓5处无托盘后放行托盘 ");
IOMove(IO_Type.Shunt2_StopDown1_Front, IO_VALUE.HIGH, 500);
} }
else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt02_Stop1Down)) }
else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt04_Stop1Down))
{ {
Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt03_WaitCheck1Low); Shunt2_MoveInfo.NextMoveStep(LineMoveStep.Shunt05_WaitCheck1Low);
Shunt2Log("分流横移2: 不需要分流,等待检测1信号消失 "); Shunt2Log("分流横移2: 不需要分流,等待检测1信号消失 ");
Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check1_Front, IO_VALUE.LOW)); Shunt2_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Shunt2_Check1_Front, IO_VALUE.LOW));
} }
else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt03_WaitCheck1Low)) else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt05_WaitCheck1Low))
{ {
Shunt2_MoveInfo.EndMove(); Shunt2_MoveInfo.EndMove();
Shunt2Log("分流横移2: 已离开 "); Shunt2Log("分流横移2: 已离开 ,更新 Move5TrayNum= " + Shunt2TrayNum);
TrayManager.Move5TrayNum = Shunt2TrayNum;
} }
else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt05_Top1Up)) else if (Shunt2_MoveInfo.MoveStep.Equals(LineMoveStep.Shunt06_Top1Up))
{ {
if (Shunt2_Updown2CanUp()) if (Shunt2_Updown2CanUp())
{ {
......
...@@ -816,16 +816,19 @@ namespace OnlineStore.DeviceLibrary ...@@ -816,16 +816,19 @@ namespace OnlineStore.DeviceLibrary
{ {
SecondMoveInfo.NewMove(LineMoveType.CheckFixture); SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down); SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 阻挡气缸1-1上升)"); CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 阻挡气缸1-1上升)");
if (TrayManager.HasCheck1(DeviceID))
{
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW); IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.LOW)); SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.LOW));
} }
} }
}
else else
{ {
bool check2IsOk = TrayManager.checkWatch(trayCheck2LowWait, TrayManager.SwTrayWaitTime, false); bool check2IsOk = TrayManager.checkWatch(trayCheck2LowWait, TrayManager.SwTrayWaitTime, false);
if (IOValue(IO_Type.StopCylinder_Check1).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.StopCylinder_Check1).Equals(IO_VALUE.HIGH)&& TrayManager.HasCheck1(DeviceID))
{ {
if (TrayManager.checkWatch(trayCheckWait, TrayManager.SwTrayWaitTime, false) && check2IsOk && canpro) if (TrayManager.checkWatch(trayCheckWait, TrayManager.SwTrayWaitTime, false) && check2IsOk && canpro)
{ {
......
...@@ -13,6 +13,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -13,6 +13,18 @@ namespace OnlineStore.DeviceLibrary
{ {
public class TrayManager public class TrayManager
{ {
/// <summary>
/// 进仓5RFID缓存
/// </summary>
public static int Move5TrayNum = 0;
public static bool HasCheck1(int deviceId)
{
bool move5pro = (!deviceId.Equals(5)) || (LineManager.Line.DisableShunt2);
return move5pro;
}
public static int StopDTime = 2000; public static int StopDTime = 2000;
public static int mTimeOut = 20; public static int mTimeOut = 20;
public static int SwTrayWaitTime = 500; public static int SwTrayWaitTime = 500;
......
...@@ -535,6 +535,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -535,6 +535,13 @@ namespace OnlineStore.DeviceLibrary
} }
public void IOMove(string IoType, IO_VALUE value, int msTime = 0) public void IOMove(string IoType, IO_VALUE value, int msTime = 0)
{ {
if (!TrayManager.HasCheck1(baseConfig.Id))
{
if (IoType.Equals(IO_Type.StopCylinder_Down1))
{
return;
}
}
if (msTime <= 0) if (msTime <= 0)
{ {
IOManager.IOMove(IoType, value, baseConfig.Id); IOManager.IOMove(IoType, value, baseConfig.Id);
...@@ -559,6 +566,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -559,6 +566,13 @@ namespace OnlineStore.DeviceLibrary
} }
public IO_VALUE IOValue(string IoType) public IO_VALUE IOValue(string IoType)
{ {
//if (!TrayManager.HasCheck1(baseConfig.Id))
//{
// if (IoType.Equals(IO_Type.StopCylinder_Down1)||IoType.Equals(IO_Type.StopCylinder_Check1))
// {
// return IO_VALUE.LOW;
// }
//}
return IOManager.IOValue(IoType, baseConfig.Id); return IOManager.IOValue(IoType, baseConfig.Id);
} }
public void DebugInfo(string logInfo) public void DebugInfo(string logInfo)
......
...@@ -497,27 +497,34 @@ namespace OnlineStore.DeviceLibrary ...@@ -497,27 +497,34 @@ namespace OnlineStore.DeviceLibrary
#region 分流横移处理 6000 开始 #region 分流横移处理 6000 开始
/// <summary>
/// 分流横移:前阻挡下降
/// </summary>
Shunt01_StopDown1 = 6001,
/// <summary> /// <summary>
/// 分流横移:等待Shunt_Check1_Front亮 /// 分流横移:等待Shunt_Check1_Front亮
/// </summary> /// </summary>
Shunt01_WaitTime = 6001, Shunt02_WaitTime ,
/// <summary>
/// 分流横移:等待阻挡可下降
/// </summary>
Shunt03_WaitStop1Down,
/// <summary> /// <summary>
/// 分流横移:托盘不需要横移,阻挡1下降1200, /// 分流横移:托盘不需要横移,阻挡1下降1200,
/// </summary> /// </summary>
Shunt02_Stop1Down , Shunt04_Stop1Down ,
/// <summary> /// <summary>
/// 分流横移:等待检测1信号消失 /// 分流横移:等待检测1信号消失
/// </summary> /// </summary>
Shunt03_WaitCheck1Low, Shunt05_WaitCheck1Low,
/// <summary> /// <summary>
/// 分流横移:阻挡1上升,升降1上升,等待升降2是否可上升 /// 分流横移:阻挡1上升,升降1上升,等待升降2是否可上升
/// </summary> /// </summary>
Shunt05_Top1Up, Shunt06_Top1Up,
///// <summary>
///// 分流横移:等待升降2是否可上升
///// </summary>
//Shunt06_WaitUpdown2CanUp,
/// <summary> /// <summary>
/// 分流横移:升降2开始上升 /// 分流横移:升降2开始上升
/// </summary> /// </summary>
......
...@@ -314,6 +314,10 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -314,6 +314,10 @@ namespace OnlineStore.LoadCSVLibrary
} }
foreach (string key in doList.Keys) foreach (string key in doList.Keys)
{ {
if (DOList.ContainsKey(key))
{
DOList.Remove(key);
}
DOList.Add(key, doList[key]); DOList.Add(key, doList[key]);
if (!IOIPList.Contains(doList[key].IO_IP)) if (!IOIPList.Contains(doList[key].IO_IP))
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!