Commit 75a3b62e LN

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

1 个父辈 6146271c
......@@ -252,13 +252,15 @@ namespace OnlineStore.AssemblyLine
lblThisSta.Text = equipBean.WarnMsg;
txtP1.Text = equipBean.Config.UpDownAxisP1.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_OutLine_Run.Visible = true;
}
else
{
SL_RollerLine_Run.Visible = false;
SL_OutLine_Run.Visible = false ;
}
LoadDP2();
LoadDOBtn(groupDO);
......
......@@ -377,13 +377,13 @@ namespace OnlineStore.AssemblyLine
private void btnSw4Location_Click(object sender, EventArgs e)
{
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)
{
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)
......
......@@ -33,6 +33,7 @@
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.chbTrayTest = new System.Windows.Forms.CheckBox();
this.chbDisMove = new System.Windows.Forms.CheckBox();
this.lblCardMsg = new System.Windows.Forms.Label();
this.chbDisHy = new System.Windows.Forms.CheckBox();
......@@ -187,6 +188,7 @@
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox2.Controls.Add(this.chbTrayTest);
this.groupBox2.Controls.Add(this.chbDisMove);
this.groupBox2.Controls.Add(this.lblCardMsg);
this.groupBox2.Controls.Add(this.chbDisHy);
......@@ -200,10 +202,21 @@
this.groupBox2.TabIndex = 200;
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
//
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.Size = new System.Drawing.Size(144, 24);
this.chbDisMove.TabIndex = 202;
......@@ -221,7 +234,7 @@
// chbDisHy
//
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.Size = new System.Drawing.Size(194, 24);
this.chbDisHy.TabIndex = 201;
......@@ -234,7 +247,7 @@
this.label2.AutoSize = true;
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.Location = new System.Drawing.Point(6, 277);
this.label2.Location = new System.Drawing.Point(6, 292);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(224, 17);
this.label2.TabIndex = 200;
......@@ -243,7 +256,7 @@
// chbLeftDis
//
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.Size = new System.Drawing.Size(277, 24);
this.chbLeftDis.TabIndex = 196;
......@@ -254,7 +267,7 @@
// chbDisSL
//
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.Size = new System.Drawing.Size(192, 24);
this.chbDisSL.TabIndex = 199;
......@@ -265,7 +278,7 @@
// chbRightDis
//
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.Size = new System.Drawing.Size(293, 24);
this.chbRightDis.TabIndex = 197;
......@@ -1259,6 +1272,7 @@
private System.Windows.Forms.CheckBox chbDisHy;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.CheckBox chbTrayTest;
}
}
......@@ -1116,17 +1116,18 @@ namespace OnlineStore.AssemblyLine
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 为调试状态");
}
else
{
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)
......@@ -1142,17 +1143,18 @@ namespace OnlineStore.AssemblyLine
LineManager.DisRightOutLine = chbRightDis.Checked;
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 为调试状态");
}
else
{
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)
......@@ -1168,17 +1170,18 @@ namespace OnlineStore.AssemblyLine
LineManager.DisSLEquip = chbDisSL.Checked;
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)为调试状态");
}
else
{
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)
......@@ -1194,16 +1197,17 @@ namespace OnlineStore.AssemblyLine
LineManager.DisAllHy = chbDisHy.Checked;
if (LineManager.DisAllHy)
{
foreach (int id in LineManager.Line.HYEquipMap.Keys)
{
LineManager.Line.HYEquipMap[id].IsDebug = true;
}
LogUtil.info("界面点击勾选:" + chbDisHy.Text + "=" + LineManager.DisAllHy + ",设置所有HY为调试状态");
}
else
{
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)
......@@ -1219,16 +1223,31 @@ namespace OnlineStore.AssemblyLine
LineManager.DisAllMove = chbDisMove.Checked;
if (LineManager.DisAllMove)
{
foreach (int id in LineManager.Line.MoveEquipMap.Keys)
{
LineManager.Line.MoveEquipMap[id].IsDebug = true;
}
LogUtil.info("界面点击勾选:" + chbDisMove.Text + "=" + LineManager.DisAllMove + ",设置所有进仓为调试状态");
}
else
{
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 @@
上料模块,顶升气缸升降时,出口顶升气缸同时动作。
上料机构,入料横移到放料端时,再检测料盘宽度
......
......@@ -20,6 +20,7 @@ namespace OnlineStore.DeviceLibrary
public FeedingEquip_Config Config;
public bool OutEndSendShelfOut = false;
public AxisBean BatchAxis = null;
public bool HasOutLine = false;//是否有出料线体,T3和T4
public FeedingEquip(string cid, FeedingEquip_Config config)
{
this.DeviceID = config.Id;
......@@ -35,6 +36,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo = new LineMoveInfo(DeviceID, "[" + Name.Trim() + "-Move]");
SecondMoveInfo = new LineMoveInfo(DeviceID, "[" + Name.Trim() + "-SMove]");
RFIDIP = RFIDManager.GetRFIP(DeviceID);
HasOutLine = config.DOList.ContainsKey(IO_Type.SL_OutLine_Run);
}
public override bool StartRun(bool isDebug = false)
......@@ -118,10 +120,9 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
//夹紧气缸放松
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);
}
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_Out_StopDown, IO_VALUE.LOW));
......@@ -154,6 +155,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
//线体开始转动
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_OutSideWay_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.HIGH));
......@@ -165,6 +167,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo(MoveInfo.MoveType + ":" + MoveInfo.SLog + ":链条停止转动,上料横移机构上升,顶升气缸下降,所有阻挡气缸上升");
//线体停止
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_OutSideWay_Run, IO_VALUE.LOW);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Line_Run, IO_VALUE.LOW));
......@@ -261,20 +264,7 @@ namespace OnlineStore.DeviceLibrary
case LineMoveStep.FR_17_ClampCheck:
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();
break;
default: break;
......@@ -287,7 +277,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.EndMove();
SecondMoveInfo.EndMove();
//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);
BatchAxisStopCheck();
......@@ -299,10 +289,8 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove(IO_Type.SL_Line_Run, IO_VALUE.LOW);
CheckAndMove(IO_Type.SL_LocationSideWay_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);
}
CheckAndMove(IO_Type.SL_Entry_StopDown, IO_VALUE.LOW);
CheckAndMove(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW);
CheckAndMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
......@@ -381,64 +369,12 @@ namespace OnlineStore.DeviceLibrary
}
}
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();
}
private Stopwatch needEnterWatch = new Stopwatch();
private Stopwatch needLeaveWatch = new Stopwatch();
......@@ -751,6 +687,102 @@ namespace OnlineStore.DeviceLibrary
#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)
{
string logN = Name + "收到 AgvArrive 事件 [" + nodeId + "] [" + rfid + "] ";
......@@ -797,33 +829,42 @@ namespace OnlineStore.DeviceLibrary
//AGV已到达,将料架送入AGV中
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 ";
try
{
LogUtil.info(logName + "开始,先设置状态为None");
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);
ProcessShelfOut = true;
//出口阻挡下降,出口线体转动
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.HIGH);
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.HIGH);
IOMove(stopDo, 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)
{
LogUtil.info(logName + " 等待SL_Out_Check=LOW超时,等待8000后停止转动,发送FinishLeave");
LogUtil.info(logName + " 等待 "+ checkIo + "=LOW超时,等待8000后停止"+lineDo+"转动,发送FinishLeave");
}
else
{
LogUtil.info(logName + " 已收到SL_Out_Check=LOW ,等待8000后停止转动,发送FinishLeave");
LogUtil.info(logName + " 已收到" + checkIo + "=LOW ,等待8000后停止" + lineDo + "转动,发送FinishLeave");
}
//再转动2000
Thread.Sleep(8000);
//停止转动 ,阻挡上升
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW);
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
IOMove(lineDo, IO_VALUE.LOW);
IOMove(stopDo, IO_VALUE.LOW);
AgvClient.SetStatus(Config.AgvOutName, LastOutShelfId, ClientAction.FinishLeave, ClientLevel.High, true);
Thread.Sleep(1000);
......@@ -847,7 +888,7 @@ namespace OnlineStore.DeviceLibrary
}
finally
{
IOMove(IO_Type.SL_OutSideWay_Run, IO_VALUE.LOW);
IOMove(lineDo, IO_VALUE.LOW);
ProcessShelfOut = false;
}
});
......
......@@ -256,13 +256,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(LineMoveStep.FI_07_LocationUp))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_08_FixedDown);
InLog("料架入库: " + MoveInfo.SLog + " 固定气缸下降" );
InLog("料架入库: " + MoveInfo.SLog + " 固定气缸下降");
FixedCylinderDown(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_08_FixedDown))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_11_BatchAxisToP2);
InLog("料架入库" + MoveInfo.SLog + ":提升轴下降到位P2 ["+ Config.BatchAxisP2 + "] ");
InLog("料架入库" + MoveInfo.SLog + ":提升轴下降到位P2 [" + Config.BatchAxisP2 + "] ");
if (!ProcessShelfEnter)
{
IOMove(IO_Type.SL_Line_Run, IO_VALUE.LOW);
......@@ -334,7 +334,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_22_UpdownToP3);
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);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_22_UpdownToP3))
......@@ -346,7 +346,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(LineMoveStep.FI_23_CylinderTighten))
{
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);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_24_UpdownToP1))
......@@ -361,7 +361,7 @@ namespace OnlineStore.DeviceLibrary
else
{
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);
}
}
......@@ -369,47 +369,23 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_26_BatchAxisToP3);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
LastWidth = GetWidth();
MoveInfo.MoveParam.PlateW = LastWidth;
InLog("料盘移栽" + MoveInfo.SLog + ":提升伺服运动到P3,盘宽【" + LastWidth + "】,横移气缸上升 ");
//LastWidth = GetWidth();
//MoveInfo.MoveParam.PlateW = LastWidth;
InLog("料盘移栽" + MoveInfo.SLog + ":提升伺服运动到P3,横移气缸上升 ");
CylinderMove(null, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give);
BatchAxisToP3(false);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_26_BatchAxisToP3))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_27_SaveSize);
if (UpdownIsInP1())
{
MoveInfo.NextMoveStep(LineMoveStep.FI_28_CylinderGive);
MoveInfo.NextMoveStep(LineMoveStep.FI_27_CylinderGive);
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));
LastHeight = GetHeight();
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))
{
......@@ -417,61 +393,60 @@ namespace OnlineStore.DeviceLibrary
int chaz = Math.Abs(currP - Config.BatchAxisP3);
if (chaz < BatchAxis.Config.CanErrorCountMax)
{
// MoveInfo.NextMoveStep(LineMoveStep.FI_21_BatchAxisDown);
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】宽度【" + LastWidth + "】,已经没有料盘,且已达到P3:" + Config.BatchAxisP3 + ",提升轴开始回下降待机点P2");
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】 ,已经没有料盘,且已达到P3:" + Config.BatchAxisP3 + ",提升轴开始回下降待机点P2");
MoveInfo.ShelfNoTray = true;
BatchAxis.AbsMove(null, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
}
else
{
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】宽度【" + LastWidth + "】,此时未检测到料盘,上料轴位置【" + currP + "】不在P3:" + Config.BatchAxisP3 + ",预扫码");
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】 ,此时未检测到料盘,上料轴位置【" + currP + "】不在P3:" + Config.BatchAxisP3 + ",预扫码");
YuScanCode();
}
}
else
{
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】宽度【" + LastWidth + "】,预扫码");
InLog("料盘移栽" + MoveInfo.SLog + ":记录 高度【" + LastHeight + "】 ,预扫码");
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);
InLog("料盘移栽" + MoveInfo.SLog + ":上料横移气缸放料SOL");
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give);
if (LastHeight > 16)
{
LogUtil.error(Name + "计算后高度" + LastWidth + "X" + LastHeight + ",七寸盘默认盘高最高=16,修改高度为16");
LastHeight = 16;
}
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.FI_27_SaveSize);
InLog("料盘移栽" + MoveInfo.SLog + ":上料横移机构取料端 前升降轴先到P1 ["+ Config.UpDownAxisP1 + "]");
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
if (LastHeight < 12)
{
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.WaitList.Add(WaitResultInfo.WaitTime(1000));
if (!MoveInfo.ShelfNoTray)
{
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))
{
FI_31_GetPosID();
}
else if (MoveInfo.IsStep(LineMoveStep.FI_30_WaitReelCheck))
{
FI_31_GetPosID();
}
else if (MoveInfo.IsStep(LineMoveStep.FI_31_GetPosID))
{
if (getPosTask.IsCompleted && LastPosParam != null)
......@@ -491,7 +466,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(LineMoveStep.FI_32_WaitTray))//TODO
{
currTrayNum = -1;
if (LineManager.Line. TrayIsReady(DeviceID,out currTrayNum))
if (LineManager.Line.TrayIsReady(DeviceID, out currTrayNum))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_33_CylinderDown);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
......@@ -499,7 +474,7 @@ namespace OnlineStore.DeviceLibrary
UpdownAxis.AbsMove(MoveInfo, targetPositon, Config.UpdownAxis_P2Speed);
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);
SServerManager.SendPosToStoreCheck(Name, LastPosParam);
......@@ -526,7 +501,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_35_AxisToP1);
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);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_35_AxisToP1))
......@@ -535,7 +510,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_35_AxisToP1);
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);
}
else
......@@ -580,7 +555,7 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(LineMoveStep.FI_52_TrayLocation_After))
{
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);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_53_BatchAxisToP1))
......@@ -624,6 +599,7 @@ namespace OnlineStore.DeviceLibrary
InLog("上料完成" + MoveInfo.SLog + ", 线体横移电机运转,等待料架离开上料工位");
IOMove(IO_Type.SL_LocationSideWay_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));
}
else if (MoveInfo.IsStep(LineMoveStep.FI_57_SideWayLineRun))
......@@ -632,6 +608,7 @@ namespace OnlineStore.DeviceLibrary
InLog("上料完成" + MoveInfo.SLog + ", 线体横移电机运转,等待料架到达出口");
IOMove(IO_Type.SL_LocationSideWay_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.WaitList.Add(WaitResultInfo.WaitTime(10000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_Check, IO_VALUE.HIGH));
......@@ -643,7 +620,7 @@ namespace OnlineStore.DeviceLibrary
InLog("上料完成" + MoveInfo.SLog + ", 料架到达出口,线体横移电机停止 ");
IOMove(IO_Type.SL_LocationSideWay_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))
{
......@@ -655,8 +632,29 @@ namespace OnlineStore.DeviceLibrary
}
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();
// MoveInfo.NextMoveStep(LineMoveStep.FI_39_OutLineRun);
LastOutShelfId = CurrShelfId;
InLog("上料完成,料架到达出口处, 通知AGV取空料架, 入料流程结束,更新LastOutShelfId=" + LastOutShelfId);
AgvClient.NeedLeave(Config.AgvOutName, LastOutShelfId, ClientLevel.Low);
......
......@@ -454,12 +454,8 @@ namespace OnlineStore.DeviceLibrary
OutLog("送出料串: " + MoveInfo.SLog + ", 线体横移电机运转,等待料架离开定位工位");
IOMove(IO_Type.SL_LocationSideWay_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);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Location_Check, IO_VALUE.LOW));
}
else if (MoveInfo.IsStep(LineMoveStep.FO_57_SideWayLineRun))
{
......@@ -467,10 +463,7 @@ namespace OnlineStore.DeviceLibrary
OutLog("送出料串:" + MoveInfo.SLog + ", 线体横移电机运转,等待料架到达出口");
IOMove(IO_Type.SL_LocationSideWay_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);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_Check, IO_VALUE.HIGH));
}
else if (MoveInfo.IsStep(LineMoveStep.FO_58_WaitShelfGo))
......@@ -479,10 +472,7 @@ namespace OnlineStore.DeviceLibrary
OutLog("送出料串: " + MoveInfo.SLog + ", 料架到达出口,线体横移电机停止 ");
IOMove(IO_Type.SL_LocationSideWay_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);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
}
......@@ -497,9 +487,31 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(LineMoveStep.FO_60_TopDown))
{
if (HasOutLine)
{
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();
// MoveInfo.NextMoveStep(LineMoveStep.FO_39_OutLineRun);
OutLog("送出料串: " + MoveInfo.SLog + ", 出口线体运转,料架到达出口处, 通知AGV取空料架, 出料结束");
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);
}
else if (MoveInfo.MoveStep >= LineMoveStep.FO_21_AxisDownMove && MoveInfo.MoveStep < LineMoveStep.FO_51_BatchAxisToP2)
......
......@@ -801,7 +801,12 @@ namespace OnlineStore.DeviceLibrary
//测线满时不需要横移
if (IOValue(IO_Type.HY_OL_Full_Check).Equals(IO_VALUE.LOW))
{
if (LineManager.TrayToOutLineTest)
{
MoveInfo.MoveParam = new InOutParam(trayNum);
LogInfo(" 托盘需要横移到出料线:托盘横移到出料线测试功能打开" );
return true;
}
//TODO
TrayInfo trayInfo = TrayManager.GetTrayInfo(currTrayNum);
if (!trayInfo.IsFull)
......
......@@ -122,22 +122,29 @@ namespace OnlineStore.DeviceLibrary
{
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":顶升气缸上升 ");
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
LineRun(SecondMoveInfo);
//LineRun(SecondMoveInfo);
}
else
{
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":顶升气缸下降 ");
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
LineRun(SecondMoveInfo);
//LineRun(SecondMoveInfo);
}
}
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_02_TopMove))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_03_StopDown);
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":前阻挡下降,电机正转");
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.HIGH, 1200);
if (IsNgPro())
{
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":前阻挡下降,横移电机正转");
LineRun(SecondMoveInfo);
}
else
{
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":前阻挡下降");
}
}
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_03_StopDown))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_04_WaitTray);
......@@ -155,7 +162,6 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_05_TrayCheck))
{
//读取托盘号
LineStop();
UpdateTrayNum();
if (ReelNeedMove())
{
......@@ -233,7 +239,8 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_13_TrayLeave))
{
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);
}
else if (SecondMoveInfo.IsStep(LineMoveStep.JHY_14_TopDown))
......@@ -251,15 +258,17 @@ namespace OnlineStore.DeviceLibrary
private void JHY_11_TopDown()
{
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_11_TopDown);
CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":横移电机停止,阻挡上升,顶升气缸下降");
LineStop(SecondMoveInfo);
IOMove(IO_Type.HY_FrontStopDown, IO_VALUE.LOW);
if (IsNgPro())
{
CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":横移电机停止,阻挡上升,顶升气缸下降");
LineStop(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
}
else
{
CheckLog(" 托盘放行" + SecondMoveInfo.SLog + ":启动横移电机,阻挡上升,顶升气缸上升");
LineRun(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
}
}
......@@ -279,7 +288,6 @@ namespace OnlineStore.DeviceLibrary
{
SecondMoveInfo.NextMoveStep(LineMoveStep.JHY_07_TopUp);
CheckLog(" 接驳台托盘" + SecondMoveInfo.SLog + ":横移电机停止,顶升气缸上升");
LineStop(SecondMoveInfo);
CylinderMove(SecondMoveInfo, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
}
else
......
......@@ -99,7 +99,7 @@ namespace OnlineStore.DeviceLibrary
T3C1_Log("检测到阻挡托盘," + T3C1_MoveInfo.SLog + " ,前阻挡上升,阻挡上升");
Update_T3C1_TrayNum();
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);
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_StopDown, IO_VALUE.LOW));
}
......@@ -118,7 +118,7 @@ namespace OnlineStore.DeviceLibrary
T3C1_MoveInfo.NextMoveStep(LineMoveStep.MIO_00_Stop1Down);
T3C1_Log(" 托盘检测:" + T3C1_MoveInfo.SLog + ",检测到HY_FrontStopCheck,前阻挡下降 , 等待 HY_FrontStopCheck=0,清理托盘RFID");
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.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_FrontStopCheck, IO_VALUE.LOW));
T3C1_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY_TrayCheck, IO_VALUE.HIGH));
......
......@@ -20,6 +20,7 @@ namespace OnlineStore.DeviceLibrary
public static bool DisSLEquip = false;
public static bool DisAllHy = false;
public static bool DisAllMove = false;
public static bool TrayToOutLineTest = false;
public static bool UseBuzzer = ConfigAppSettings.GetIntValue(Setting_Init.UseBuzzer).Equals(1);
private static bool isInit = false;
......
......@@ -33,11 +33,12 @@ namespace OnlineStore.DeviceLibrary
{
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.SL_RollerLine_Run)|| ioType.Equals(IO_Type.SL_OutLine_Run) || ioType.Equals(IO_Type.SL_OutLine_Check))
{
}
else
{
......
......@@ -553,31 +553,32 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
FI_24_UpdownToP1,
/// <summary>
/// 料盘移栽:等待没有伺服料盘检测信号
/// 料盘移栽:等待没有伺服料盘检测信号,等待检测到料盘
/// </summary>
FI_25_CheckTray,
/// <summary>
/// 料盘移栽:批量轴到P3点,检测是否有料盘
/// 料盘移栽:批量轴到P3点
/// </summary>
FI_26_BatchAxisToP3,
/// <summary>
/// 料盘移栽:记录高度尺寸
/// 料盘移栽: 上料横移气缸放料SOL
/// </summary>
FI_27_SaveSize,
FI_27_CylinderGive,
/// <summary>
/// 料盘移栽: 上料横移气缸放料SOL
/// 料盘移栽:记录高度尺寸
/// </summary>
FI_28_CylinderGive,
FI_28_SaveSize,
/// <summary>
/// 提升轴下降到料盘不溢出的位置
/// </summary>
FI_29_BatchAxisDown,
/// <summary>
/// 等待料盘检测信号
/// </summary>
FI_30_WaitReelCheck,
///// <summary>
///// 等待料盘检测信号
///// </summary>
//FI_30_WaitReelCheck,
/// <summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!