Commit 9be2ce71 LN

上料横移优化

1 个父辈 1e6f294f
...@@ -343,25 +343,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -343,25 +343,21 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
if (CylinderIsOk(IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down))
{
MO_15_WaitCanGo();
}
else
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_14_TopDown); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_14_TopDown);
CheckLog("托盘放行, " + SecondMoveInfo.SLog + " ,环形线顶升气缸下降)"); CheckLog("托盘放行, " + SecondMoveInfo.SLog + " ,环形线顶升气缸下降)");
CylinderMove(SecondMoveInfo, IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down); CylinderMove(SecondMoveInfo, IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down);
} }
} }
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_14_TopDown)) else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_14_TopDown))
{ {
MO_15_WaitCanGo(); MO_15_WaitCanGo();
//SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
//if (Config.SidesWayNum > 0)
//{
// CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待托盘离开");
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.LOW));
//}
//else
//{
// CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待 NextStopCheck=0");
// // SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.NextStopCheck, IO_VALUE.LOW));
//}
} }
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_15_WaitCanGo)) else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_15_WaitCanGo))
{ {
...@@ -377,7 +373,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -377,7 +373,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,阻挡气缸1-2下降,等待" ); CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,阻挡气缸1-2下降,等待");
IOMove(IO_Type.FL_StopCylinder_Down2, IO_VALUE.HIGH); IOMove(IO_Type.FL_StopCylinder_Down2, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.FL_StopCylinder_Down2, IO_VALUE.HIGH)); SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.FL_StopCylinder_Down2, IO_VALUE.HIGH));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime)); // SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
...@@ -451,16 +447,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -451,16 +447,22 @@ namespace OnlineStore.DeviceLibrary
{ {
//preTrayNum = currTrayNum; //preTrayNum = currTrayNum;
CheckLog("托盘放行: 此处为环形线横移2,顶升气缸不需要下降, (托盘放行结束) "); CheckLog("托盘放行: 此处为环形线横移2,顶升气缸不需要下降, (托盘放行结束) ");
SMoveEnd(); SMoveEnd();
} }
else else
{ {
if (CylinderIsOk(IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down))
{
MO_15_WaitCanGo();
}
else
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_14_TopDown); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_14_TopDown);
CheckLog("托盘放行, " + SecondMoveInfo.SLog + " ,环形线顶升气缸下降)"); CheckLog("托盘放行, " + SecondMoveInfo.SLog + " ,环形线顶升气缸下降)");
CylinderMove(SecondMoveInfo, IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down); CylinderMove(SecondMoveInfo, IO_Type.SW_TopCylinder_Up, IO_Type.SW_TopCylinder_Down);
} }
} }
}
else else
{ {
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_13_LoactionDown); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_13_LoactionDown);
...@@ -922,23 +924,23 @@ namespace OnlineStore.DeviceLibrary ...@@ -922,23 +924,23 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_26_CylinderRelax)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_26_CylinderRelax))
{ {
if (Config.SidesWayNum.Equals(1)) //if (Config.SidesWayNum.Equals(1))
{ //{
FI_28_CylinderUp(); // FI_28_CylinderUp();
} //}
else //else
{ //{
MoveInfo.NextMoveStep(LineMoveStep.FI_27_WaitCylinderUp); MoveInfo.NextMoveStep(LineMoveStep.FI_27_WaitCylinderUp);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_MoveCylinder_Down, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_MoveCylinder_Down, IO_VALUE.LOW));
CylinderMove(null, IO_Type.SL_MoveCylinder_Down, IO_Type.SL_MoveCylinder_Up); CylinderMove(null, IO_Type.SL_MoveCylinder_Down, IO_Type.SL_MoveCylinder_Up);
} //}
TrayPreMove(); TrayPreMove();
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_27_WaitCylinderUp)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_27_WaitCylinderUp))
{ {
FI_28_CylinderUp();
TrayMoveOk(); TrayMoveOk();
FI_28_CylinderUp();
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_28_CylinderUp)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_28_CylinderUp))
{ {
......
...@@ -30,6 +30,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -30,6 +30,8 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
private System.Timers.Timer IoCheckTimer = null; private System.Timers.Timer IoCheckTimer = null;
private System.Timers.Timer serverConTimer = null;
/// <summary> /// <summary>
/// 流水线下所有的移载装置 /// 流水线下所有的移载装置
/// </summary> /// </summary>
...@@ -207,8 +209,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -207,8 +209,15 @@ namespace OnlineStore.DeviceLibrary
IoCheckTimer.Elapsed += IoCheckTimerProcess; IoCheckTimer.Elapsed += IoCheckTimerProcess;
IoCheckTimer.AutoReset = true; IoCheckTimer.AutoReset = true;
IoCheckTimer.Enabled = false; IoCheckTimer.Enabled = false;
serverConTimer = new System.Timers.Timer();
serverConTimer.Interval = 2000;
serverConTimer.AutoReset = true;
serverConTimer.Elapsed += ServerConTimer_Elapsed;
serverConTimer.Enabled = false;
} }
#endregion #endregion
public string CanStart() public string CanStart()
...@@ -290,6 +299,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -290,6 +299,7 @@ namespace OnlineStore.DeviceLibrary
// WriteDrivetMotorRun(IO_VALUE.LOW); // WriteDrivetMotorRun(IO_VALUE.LOW);
IoCheckTimer.Enabled = true; IoCheckTimer.Enabled = true;
mainTimer.Enabled = true; mainTimer.Enabled = true;
serverConTimer.Enabled = true;
return true; return true;
} }
} }
...@@ -355,6 +365,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -355,6 +365,7 @@ namespace OnlineStore.DeviceLibrary
mainTimer.Enabled = false; mainTimer.Enabled = false;
IoCheckTimer.Enabled = false; IoCheckTimer.Enabled = false;
bool isNeedAllReset = false; bool isNeedAllReset = false;
if (isInSuddenDown || isNoAirCheck) if (isInSuddenDown || isNoAirCheck)
{ {
//TrayManager.LineNeedEmptyTrayNum = 0; //TrayManager.LineNeedEmptyTrayNum = 0;
...@@ -390,6 +401,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -390,6 +401,7 @@ namespace OnlineStore.DeviceLibrary
{ return false; } { return false; }
IoCheckTimer.Enabled = true; IoCheckTimer.Enabled = true;
mainTimer.Enabled = true; mainTimer.Enabled = true;
serverConTimer.Enabled = true;
return true; return true;
} }
private void EquipReset(EquipBase equip, bool isNeedAllReset) private void EquipReset(EquipBase equip, bool isNeedAllReset)
...@@ -420,6 +432,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -420,6 +432,7 @@ namespace OnlineStore.DeviceLibrary
{ {
IoCheckTimer.Enabled = false; IoCheckTimer.Enabled = false;
mainTimer.Enabled = false; mainTimer.Enabled = false;
serverConTimer.Enabled = false ;
AgvClient.SetCancelState(true); AgvClient.SetCancelState(true);
RFIDManager.Close(); RFIDManager.Close();
//停止运行时,把阻挡气缸上升 //停止运行时,把阻挡气缸上升
...@@ -995,5 +1008,28 @@ namespace OnlineStore.DeviceLibrary ...@@ -995,5 +1008,28 @@ namespace OnlineStore.DeviceLibrary
msg += "SW23: " + SW23_MoveInfo.MoveType + " " + SW23_MoveInfo.MoveStep + "\n"; msg += "SW23: " + SW23_MoveInfo.MoveType + " " + SW23_MoveInfo.MoveStep + "\n";
return msg; return msg;
} }
private void ServerConTimer_Elapsed(object sender, ElapsedEventArgs e)
{
//14.异常看板
// > 地址:
//>>/ rest / api / qisda / device / updateDeviceAlarmMsg
// >
// > 参数:
//>> deviceAlarmList : 异常列表Json字符串 `[{"name":"移栽5", "msgKey":"line.move5.timeOut", "msgValue":"运动超时"},{"name":"移栽4", "msgKey":"line.move4.timeOut", "msgValue":"误差过大"}]`
//>>>name : 异常位置名称
//>>>msgKey : 异常信息唯一标识
//>>>msgValue : 异常信息
//>
//> 返回:
//>>` {"code":0,"msg":"ok","data":""}`
//>>
//>> - code: 0为正常,其他为异常,
// >> - msg:消息,
// >> - data:
}
} }
} }
\ No newline at end of file \ No newline at end of file
...@@ -257,9 +257,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -257,9 +257,6 @@ namespace OnlineStore.DeviceLibrary
SW23_MoveInfo.NewMove(LineMoveType.InStore); SW23_MoveInfo.NewMove(LineMoveType.InStore);
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime); SW23_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime);
SW23WaitTrayNum = -1; SW23WaitTrayNum = -1;
//SWLog("横移轨道23:检测到SW2_TrayCheck,等待SW3_TrayCheck=0, 托盘号 [" + Sw23TrayNum + "] ,清空 SW23WaitTrayNum=" + SW23WaitTrayNum);
//SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW2_TrayCheck, IO_VALUE.HIGH));
//SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW3_TrayCheck, IO_VALUE.LOW));
SW23_SW04_WaitCanUp(); SW23_SW04_WaitCanUp();
} }
else else
...@@ -276,9 +273,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -276,9 +273,6 @@ namespace OnlineStore.DeviceLibrary
SW41_MoveInfo.NewMove(LineMoveType.InStore); SW41_MoveInfo.NewMove(LineMoveType.InStore);
SW41_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime); SW41_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime);
SW41WaitTrayNum = -1; SW41WaitTrayNum = -1;
//SWLog("横移轨道41:检测到SW4_TrayCheck,等待SW1_TrayCheck=0,托盘号 [" + Sw41TrayNum + "] ,清空 SW41WaitTrayNum=" + SW41WaitTrayNum);
//SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW4_TrayCheck, IO_VALUE.HIGH));
//SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW1_TrayCheck, IO_VALUE.LOW));
SW41_SW04_WaitCanUp(); SW41_SW04_WaitCanUp();
} }
else else
...@@ -611,8 +605,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -611,8 +605,6 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.SW4_TrayCheck).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.SW4_TrayCheck).Equals(IO_VALUE.HIGH))
{ {
SW41_SW04_WaitCanUp(); SW41_SW04_WaitCanUp();
// SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
} }
else else
{ {
...@@ -625,18 +617,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -625,18 +617,7 @@ namespace OnlineStore.DeviceLibrary
} }
else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW04_WaitCanUp)) else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW04_WaitCanUp))
{ {
if (CylinderIsOk(IO_Type.SW4_LocationCylinder_Up, IO_Type.SW4_LocationCylinder_Down) && SW41_SW05_LocationDown();
CylinderIsOk(IO_Type.SW1_LocationCylinder_Up, IO_Type.SW1_LocationCylinder_Down))
{
SW41_SW06_TopCylinderUp();
}
else
{
SW41_MoveInfo.NextMoveStep(LineMoveStep.SW05_LocationDown);
SWLog("横移轨道41:定位气缸下降 ");
CylinderMove(SW41_MoveInfo, IO_Type.SW4_LocationCylinder_Up, IO_Type.SW4_LocationCylinder_Down);
CylinderMove(SW41_MoveInfo, IO_Type.SW1_LocationCylinder_Up, IO_Type.SW1_LocationCylinder_Down);
}
} }
else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW05_LocationDown)) else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW05_LocationDown))
{ {
...@@ -775,8 +756,31 @@ namespace OnlineStore.DeviceLibrary ...@@ -775,8 +756,31 @@ namespace OnlineStore.DeviceLibrary
CylinderMove(SW41_MoveInfo, IO_Type.SW1_TopCylinder_Down, IO_Type.SW1_TopCylinder_Up); CylinderMove(SW41_MoveInfo, IO_Type.SW1_TopCylinder_Down, IO_Type.SW1_TopCylinder_Up);
} }
} }
private void SW41_SW05_LocationDown()
{
if (CylinderIsOk(IO_Type.SW4_LocationCylinder_Up, IO_Type.SW4_LocationCylinder_Down) &&
CylinderIsOk(IO_Type.SW1_LocationCylinder_Up, IO_Type.SW1_LocationCylinder_Down))
{
SW41_SW06_TopCylinderUp();
}
else
{
SW41_MoveInfo.NextMoveStep(LineMoveStep.SW05_LocationDown);
SWLog("横移轨道41:定位气缸下降 ");
CylinderMove(SW41_MoveInfo, IO_Type.SW4_LocationCylinder_Up, IO_Type.SW4_LocationCylinder_Down);
CylinderMove(SW41_MoveInfo, IO_Type.SW1_LocationCylinder_Up, IO_Type.SW1_LocationCylinder_Down);
}
}
private void SW41_SW04_WaitCanUp() private void SW41_SW04_WaitCanUp()
{ {
if (IOValue(IO_Type.SW4_TrayCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.SW1_TrayCheck).Equals(IO_VALUE.LOW) && SwCanUpMove(1))
{
SW41_SW05_LocationDown();
}
else
{
SW41_MoveInfo.NextMoveStep(LineMoveStep.SW04_WaitCanUp); SW41_MoveInfo.NextMoveStep(LineMoveStep.SW04_WaitCanUp);
SWLog("横移轨道41: 等待横移4托盘检测信号 ,SW4_StopDown上升 ,等待横移1(上料1)无托盘处理 "); SWLog("横移轨道41: 等待横移4托盘检测信号 ,SW4_StopDown上升 ,等待横移1(上料1)无托盘处理 ");
CheckAndMove(IO_Type.SW4_StopDown, IO_VALUE.LOW); CheckAndMove(IO_Type.SW4_StopDown, IO_VALUE.LOW);
...@@ -784,6 +788,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -784,6 +788,7 @@ namespace OnlineStore.DeviceLibrary
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW1_TrayCheck, IO_VALUE.LOW)); SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW1_TrayCheck, IO_VALUE.LOW));
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(1)); SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(1));
} }
}
private bool CheckTrayIsNeed(int deviceId, int trayNum) private bool CheckTrayIsNeed(int deviceId, int trayNum)
{ {
...@@ -853,18 +858,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -853,18 +858,7 @@ namespace OnlineStore.DeviceLibrary
} }
else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW04_WaitCanUp)) else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW04_WaitCanUp))
{ {
if (CylinderIsOk(IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down) && SW23_SW05_LocationDown();
CylinderIsOk(IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down))
{
SW23_SW06_TopCylinderUp();
}
else
{
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW05_LocationDown);
SWLog("横移轨道23:定位气缸下降 ");
CylinderMove(SW23_MoveInfo, IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down);
CylinderMove(SW23_MoveInfo, IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down);
}
} }
else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW05_LocationDown)) else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW05_LocationDown))
{ {
...@@ -1000,9 +994,29 @@ namespace OnlineStore.DeviceLibrary ...@@ -1000,9 +994,29 @@ namespace OnlineStore.DeviceLibrary
CylinderMove(SW23_MoveInfo, IO_Type.SW3_TopCylinder_Down, IO_Type.SW3_TopCylinder_Up); CylinderMove(SW23_MoveInfo, IO_Type.SW3_TopCylinder_Down, IO_Type.SW3_TopCylinder_Up);
} }
} }
private void SW23_SW05_LocationDown()
{
if (CylinderIsOk(IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down) &&
CylinderIsOk(IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down))
{
SW23_SW06_TopCylinderUp();
}
else
{
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW05_LocationDown);
SWLog("横移轨道23:定位气缸下降 ");
CylinderMove(SW23_MoveInfo, IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down);
CylinderMove(SW23_MoveInfo, IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down);
}
}
private void SW23_SW04_WaitCanUp() private void SW23_SW04_WaitCanUp()
{ {
if (IOValue(IO_Type.SW2_TrayCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.SW3_TrayCheck).Equals(IO_VALUE.LOW) && SwCanUpMove(3))
{
SW23_SW05_LocationDown();
}
else
{
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW04_WaitCanUp); SW23_MoveInfo.NextMoveStep(LineMoveStep.SW04_WaitCanUp);
SWLog("横移轨道23: 等待横移4托盘检测信号 ,SW2_StopDown上升 ,等待横移3(上料4)处无托盘 "); SWLog("横移轨道23: 等待横移4托盘检测信号 ,SW2_StopDown上升 ,等待横移3(上料4)处无托盘 ");
CheckAndMove(IO_Type.SW2_StopDown, IO_VALUE.LOW); CheckAndMove(IO_Type.SW2_StopDown, IO_VALUE.LOW);
...@@ -1011,6 +1025,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -1011,6 +1025,7 @@ namespace OnlineStore.DeviceLibrary
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(3)); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(3));
} }
}
private void SWLog(string msg) private void SWLog(string msg)
{ {
LogUtil.debug(Name + msg); LogUtil.debug(Name + msg);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!