Commit 9155c4b4 张东亮

小车收到finishenter信号后小车转向

1 个父辈 34b0a313
...@@ -62,7 +62,7 @@ namespace AGVControl ...@@ -62,7 +62,7 @@ namespace AGVControl
// LogUtil.error(string.Format("{0} 车上有负载,无法开启自动模式,请先清空小车负载!", Agv.Name)); // LogUtil.error(string.Format("{0} 车上有负载,无法开启自动模式,请先清空小车负载!", Agv.Name));
// return; // return;
//} //}
if (MessageBox.Show(this, "是否继续上一次的任务?\r\n" + Agv.Msg, "提示", MessageBoxButtons.YesNo).Equals(DialogResult.No)) //if (MessageBox.Show(this, "是否继续上一次的任务?\r\n" + Agv.Msg, "提示", MessageBoxButtons.YesNo).Equals(DialogResult.No))
{ {
if(Agv.IsExistShelf) if(Agv.IsExistShelf)
{ {
...@@ -81,14 +81,14 @@ namespace AGVControl ...@@ -81,14 +81,14 @@ namespace AGVControl
} }
Agv.RFID = ""; Agv.RFID = "";
} }
else //else
{ //{
if (Agv.IsCon) // if (Agv.IsCon)
{ // {
Agv.Resend(); // Agv.Resend();
} // }
} //}
} }
Agv.IsUse = chkBxAuto.Checked; Agv.IsUse = chkBxAuto.Checked;
......
...@@ -465,7 +465,7 @@ namespace DeviceLibrary ...@@ -465,7 +465,7 @@ namespace DeviceLibrary
int idx = NodeManager.FindNode(node.Name); int idx = NodeManager.FindNode(node.Name);
if (idx == -1) if (idx == -1)
{ {
log.Error(node.Name + " 不存在"); log.Error(node.Name + " 不存在/调用关闭");
return; return;
} }
......
...@@ -228,6 +228,7 @@ namespace DeviceLibrary ...@@ -228,6 +228,7 @@ namespace DeviceLibrary
/// AGV编号 /// AGV编号
/// </summary> /// </summary>
public string AGVNum { get; set; } = ""; public string AGVNum { get; set; } = "";
public string DeviceName { get; set; } = "";
/// <summary> /// <summary>
/// 任务名称 /// 任务名称
/// </summary> /// </summary>
...@@ -305,6 +306,7 @@ namespace DeviceLibrary ...@@ -305,6 +306,7 @@ namespace DeviceLibrary
agvname = value.PadLeft(4, '0'); agvname = value.PadLeft(4, '0');
} }
} }
public string DeviceName { get; set; } = "";
private string agvname = ""; private string agvname = "";
/// <summary> /// <summary>
/// 开始时间 /// 开始时间
......
...@@ -177,7 +177,7 @@ namespace DeviceLibrary ...@@ -177,7 +177,7 @@ namespace DeviceLibrary
} }
else if (curJobStep.IsStep(EXECUTE_STEP.P4_WAIT_LINE_RESPONSE)) else if (curJobStep.IsStep(EXECUTE_STEP.P4_WAIT_LINE_RESPONSE))
{ {
int i = NodeManager.nodeInfo.FindIndex(s => s.Name.Equals(TargetPlace));//&& s.StateEquals(eNodeStatus.MayLeave) int i = NodeManager.nodeInfo.FindIndex(s => s.Name.Equals(TargetPlace) && s.StateEquals(eNodeStatus.MayLeave));//
if (i > -1) if (i > -1)
{ {
curJobStep.ToNextStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_AGV); curJobStep.ToNextStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_AGV);
...@@ -191,24 +191,24 @@ namespace DeviceLibrary ...@@ -191,24 +191,24 @@ namespace DeviceLibrary
rtn = agv.AssignTask(Common.SettingString.Enter); rtn = agv.AssignTask(Common.SettingString.Enter);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
if (curJobStep.IsTimeOut(15000, out TimeSpan timeSpan)) else if (curJobStep.IsTimeOut(30000, out TimeSpan timeSpan))
{ {
if (TargetPlace.Equals(SettingString.D3) || TargetPlace.Equals(SettingString.D4)) //if (TargetPlace.Equals(SettingString.D3) || TargetPlace.Equals(SettingString.D4))
{
runInfo = string.Format("线体[{0}]允许出料信号[{1}]超时{2}秒,该处料串可能被手动干预,回待机位", TargetPlace, eNodeStatus.MayLeave, timeSpan.TotalMinutes.ToString("f2"));
msg += string.Format("线体[{0}]允许出料信号[{1}]超时15S,该处料串可能被手动干预,回待机位", TargetPlace, eNodeStatus.MayLeave);
curJobStep.Msg = msg;
RecordRunLog(agv, curJobStep.CurStep(), runInfo, TargetPlace);
return new ChargeJob(TargetPlace);
}
//else
//{ //{
// curJobStep.ToNextStep(EXECUTE_STEP.P2_WAIT_REACH_SHELF_PLACE); // runInfo = string.Format("线体[{0}]允许出料信号[{1}]超时{2}秒,该处料串可能被手动干预,回待机位", TargetPlace, eNodeStatus.MayLeave, timeSpan.TotalSeconds.ToString("f2"));
// runInfo = string.Format("线体[{0}]允许出料信号[{1}]超时{2}秒,重发出料请求", TargetPlace, eNodeStatus.MayLeave, timeOutTime.ToString("f2")); // msg += string.Format("线体[{0}]允许出料信号[{1}]超时15S,该处料串可能被手动干预,回待机位", TargetPlace, eNodeStatus.MayLeave);
// msg += string.Format("线体[{0}]允许出料信号[{1}]超时15S,重发出料请求", TargetPlace, eNodeStatus.MayLeave);
// curJobStep.Msg = msg; // curJobStep.Msg = msg;
// //去待机位 // RecordRunLog(agv, curJobStep.CurStep(), runInfo, TargetPlace);
// return new ChargeJob(TargetPlace);
//} //}
//else
{
curJobStep.ToNextStep(EXECUTE_STEP.P2_WAIT_REACH_SHELF_PLACE);
runInfo = string.Format("线体[{0}]允许出料信号[{1}]超时{2}秒,重发出料请求", TargetPlace, eNodeStatus.MayLeave, timeSpan.TotalSeconds.ToString("f2"));
msg += string.Format("线体[{0}]允许出料信号[{1}]超时20S,重发出料请求", TargetPlace, eNodeStatus.MayLeave);
curJobStep.Msg = msg;
//去待机位
}
} }
} }
else if (curJobStep.IsStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_AGV)) else if (curJobStep.IsStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_AGV))
...@@ -434,6 +434,11 @@ namespace DeviceLibrary ...@@ -434,6 +434,11 @@ namespace DeviceLibrary
tarPlace = SettingString.D4; tarPlace = SettingString.D4;
return true; return true;
} }
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
{
tarPlace = SettingString.D23_In;
return true;
}
} }
} }
else//空料串 else//空料串
...@@ -480,6 +485,11 @@ namespace DeviceLibrary ...@@ -480,6 +485,11 @@ namespace DeviceLibrary
tarPlace = SettingString.D23_In; tarPlace = SettingString.D23_In;
return true; return true;
} }
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A8))
{
tarPlace = SettingString.A8;
return true;
}
} }
} }
......
...@@ -97,7 +97,7 @@ namespace DeviceLibrary ...@@ -97,7 +97,7 @@ namespace DeviceLibrary
msg += runInfo; msg += runInfo;
curJobStep.Msg = msg; curJobStep.Msg = msg;
CommonVar.DoorMission(agv, SettingString.DoorDToC); CommonVar.DoorMission(agv, SettingString.DoorDToC);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
else if (agvPlace.StartsWith(SettingString.C4_Name_Prefix) && !TargetPlace.StartsWith(SettingString.C4_Name_Prefix))//C D else if (agvPlace.StartsWith(SettingString.C4_Name_Prefix) && !TargetPlace.StartsWith(SettingString.C4_Name_Prefix))//C D
{ {
...@@ -106,7 +106,7 @@ namespace DeviceLibrary ...@@ -106,7 +106,7 @@ namespace DeviceLibrary
msg += runInfo; msg += runInfo;
curJobStep.Msg = msg; curJobStep.Msg = msg;
CommonVar.DoorMission(agv, SettingString.DoorCToD); CommonVar.DoorMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
else//DD CC else//DD CC
{ {
...@@ -115,7 +115,7 @@ namespace DeviceLibrary ...@@ -115,7 +115,7 @@ namespace DeviceLibrary
msg += runInfo; msg += runInfo;
curJobStep.Msg = msg; curJobStep.Msg = msg;
CommonVar.MoveToNode(agv, TargetPlace); CommonVar.MoveToNode(agv, TargetPlace);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
} }
...@@ -142,7 +142,7 @@ namespace DeviceLibrary ...@@ -142,7 +142,7 @@ namespace DeviceLibrary
curJobStep.Msg = msg; curJobStep.Msg = msg;
CommonVar.MoveToNode(agv, TargetPlace); CommonVar.MoveToNode(agv, TargetPlace);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
} }
else if (curJobStep.IsStep(EXECUTE_STEP.P3_WAIT_REACH_4C_DOOR)) else if (curJobStep.IsStep(EXECUTE_STEP.P3_WAIT_REACH_4C_DOOR))
...@@ -156,35 +156,34 @@ namespace DeviceLibrary ...@@ -156,35 +156,34 @@ namespace DeviceLibrary
curJobStep.Msg = msg; curJobStep.Msg = msg;
CommonVar.MoveToNode(agv, TargetPlace); CommonVar.MoveToNode(agv, TargetPlace);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
} }
else if (curJobStep.IsStep(EXECUTE_STEP.P4_WAIT_STATION_RESPONSE)) else if (curJobStep.IsStep(EXECUTE_STEP.P4_WAIT_STATION_RESPONSE))
{ {
int i = NodeManager.nodeInfo.FindIndex(s => s.Name.Equals(TargetPlace));//&& s.StateEquals(eNodeStatus.MayEnter) int i = NodeManager.nodeInfo.FindIndex(s => s.Name.Equals(TargetPlace) && s.StateEquals(eNodeStatus.MayEnter));
if (i > -1) if (i > -1)
{ {
//curJobStep.ToNextStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_STATION); curJobStep.ToNextStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_STATION);
curJobStep.ToNextStep(EXECUTE_STEP.P6_TURN_DIRECTION); //curJobStep.ToNextStep(EXECUTE_STEP.P6_TURN_DIRECTION);
runInfo = "收到线体允许进料信号,链条运行"; runInfo = "收到线体允许进料信号,链条运行";
msg += runInfo; msg += runInfo;
curJobStep.Msg = msg; curJobStep.Msg = msg;
rtn = agv.AssignTask(SettingString.Leave); rtn = agv.AssignTask(SettingString.Leave);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
}
else if (curJobStep.IsTimeOut(20000, out TimeSpan timeOutTime))
{
curJobStep.ToNextStep(EXECUTE_STEP.P2_WAIT_REACH_STATION);
runInfo = string.Format("线体[{0}]允许进料信号[{1}]超时{2}秒,重发进料请求", TargetPlace, eNodeStatus.MayEnter, timeOutTime.TotalSeconds.ToString("f2"));
msg += string.Format("线体[{0}]允许进料信号[{1}]超时15S,重发进料请求", TargetPlace, eNodeStatus.MayEnter);
curJobStep.Msg = msg;
} }
// if (curJobStep.IsTimeOut(15000, out double timeOutTime))
//{
// curJobStep.ToNextStep(EXECUTE_STEP.P2_WAIT_REACH_STATION);
// runInfo = string.Format("线体[{0}]允许进料信号[{1}]超时{2}秒,重发进料请求", TargetPlace, eNodeStatus.MayEnter, timeOutTime.ToString("f2"));
// msg += string.Format("线体[{0}]允许进料信号[{1}]超时15S,重发进料请求", TargetPlace, eNodeStatus.MayEnter);
// curJobStep.Msg = msg;
//}
} }
else if (curJobStep.IsStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_STATION)) else if (curJobStep.IsStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_STATION))
{ {
int idx = NodeManager.nodeInfo.FindIndex(s => s.Name.Equals(TargetPlace) && s.StateEquals(eNodeStatus.FinishEnter));
int idx = NodeManager.nodeInfo.FindIndex(s=>s.Name.Equals(TargetPlace) && s.StateEquals(eNodeStatus.FinishEnter)); if (idx > -1)
if(idx>-1)
{ {
RecordRunLog(agv, curJobStep.CurStep(), runInfo, TargetPlace); RecordRunLog(agv, curJobStep.CurStep(), runInfo, TargetPlace);
curJobStep.ToNextStep(EXECUTE_STEP.P6_TURN_DIRECTION); curJobStep.ToNextStep(EXECUTE_STEP.P6_TURN_DIRECTION);
...@@ -193,7 +192,7 @@ namespace DeviceLibrary ...@@ -193,7 +192,7 @@ namespace DeviceLibrary
msg += runInfo; msg += runInfo;
curJobStep.Msg = msg; curJobStep.Msg = msg;
} }
else if (curJobStep.IsTimeOut(60000, out TimeSpan timeSpan)) else if (curJobStep.IsTimeOut(120000, out TimeSpan timeSpan))
{ {
runInfo = string.Format("等待线体[{0}]进料完成信号[FinishEnter]超时", TargetPlace); runInfo = string.Format("等待线体[{0}]进料完成信号[FinishEnter]超时", TargetPlace);
msg += runInfo; msg += runInfo;
...@@ -201,6 +200,9 @@ namespace DeviceLibrary ...@@ -201,6 +200,9 @@ namespace DeviceLibrary
agv.HasError = true; agv.HasError = true;
agv.SetErrorMsg($"等待线体[{TargetPlace}]进料完成信号[FinishEnter]超时", timeSpan.TotalMinutes.ToString("f2")); agv.SetErrorMsg($"等待线体[{TargetPlace}]进料完成信号[FinishEnter]超时", timeSpan.TotalMinutes.ToString("f2"));
} }
if (CommonVar.CheckEnterOrLeaveFinished(agv, SettingString.Leave, CurTaskState))
CommonVar.server.CloseDoor(TargetPlace);
} }
else if (curJobStep.IsStep(EXECUTE_STEP.P6_TURN_DIRECTION)) else if (curJobStep.IsStep(EXECUTE_STEP.P6_TURN_DIRECTION))
{ {
...@@ -213,10 +215,10 @@ namespace DeviceLibrary ...@@ -213,10 +215,10 @@ namespace DeviceLibrary
msg += runInfo; msg += runInfo;
curJobStep.Msg = msg; curJobStep.Msg = msg;
CommonVar.server.CloseDoor(TargetPlace); CommonVar.server.CloseDoor(TargetPlace);
//rtn = agv.AssignTask(SettingString.Turn); rtn = agv.AssignTask(SettingString.Turn);
//UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
else if (curJobStep.IsTimeOut(60000, out TimeSpan timeSpan)) else if (curJobStep.IsTimeOut(120000, out TimeSpan timeSpan))
{ {
runInfo = string.Format("线体[{0}]出料超时,请检查料架情况", TargetPlace); runInfo = string.Format("线体[{0}]出料超时,请检查料架情况", TargetPlace);
msg += runInfo; msg += runInfo;
...@@ -227,7 +229,7 @@ namespace DeviceLibrary ...@@ -227,7 +229,7 @@ namespace DeviceLibrary
} }
else if (curJobStep.IsStep(EXECUTE_STEP.P7_END)) else if (curJobStep.IsStep(EXECUTE_STEP.P7_END))
{ {
// if (CommonVar.CheckEnterOrLeaveFinished(agv, SettingString.Turn, CurTaskState)) if (CommonVar.CheckEnterOrLeaveFinished(agv, SettingString.Turn, CurTaskState))
{ {
if (IsPlace(SettingString.D23_In) && FindReturnShelf(agv)) if (IsPlace(SettingString.D23_In) && FindReturnShelf(agv))
{ {
...@@ -259,7 +261,7 @@ namespace DeviceLibrary ...@@ -259,7 +261,7 @@ namespace DeviceLibrary
runInfo = "AGV在" + TargetPlace + "转向完成"; runInfo = "AGV在" + TargetPlace + "转向完成";
msg += runInfo; msg += runInfo;
curJobStep.Msg = msg; curJobStep.Msg = msg;
RecordRunLog(agv, curJobStep.CurStep(), runInfo,TargetPlace); RecordRunLog(agv, curJobStep.CurStep(), runInfo, TargetPlace);
return null; return null;
} }
} }
......
...@@ -62,7 +62,7 @@ namespace DeviceLibrary ...@@ -62,7 +62,7 @@ namespace DeviceLibrary
} }
} }
//检查紧急出料入口需要空料串 //检查紧急出料入口需要空料串
if (FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.Middle,false))//FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.Middle,false) || if (FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.Middle,false) || FindNeedEnterMission(currentAgv, SettingString.T4_1, ClientLevel.High, false))//FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.Middle,false) ||
//FindNeedEnterMission(currentAgv, SettingString.T4_1, ClientLevel.High, false) //FindNeedEnterMission(currentAgv, SettingString.T4_1, ClientLevel.High, false)
{ {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!