Commit 0b847111 张东亮

1

1 个父辈 429e0b20
...@@ -55,7 +55,7 @@ namespace Common ...@@ -55,7 +55,7 @@ namespace Common
public const string A5 = "A5"; public const string A5 = "A5";
public const string Line_Name_Prefix = "S"; public const string Line_Name_Prefix = "S";
public const string RoomD_Name_Prefix = "S"; public const string RoomS_Name_Prefix = "S";
public const string RoomC_Name_Prefix = "C"; public const string RoomC_Name_Prefix = "C";
public const string BigShelf_Prefix = "C"; public const string BigShelf_Prefix = "C";
public const string SmallShelf_Prefix = "D"; public const string SmallShelf_Prefix = "D";
...@@ -64,7 +64,7 @@ namespace Common ...@@ -64,7 +64,7 @@ namespace Common
public const string IP_3D_Light = "IP_3D_Light"; public const string IP_3D_Light = "IP_3D_Light";
public const string IP_3C_Light = "IP_3C_Light"; public const string IP_3C_Light = "IP_3C_Light";
public static List<string> Lines_In_Air_Door = new List<string>() { "C100" }; public static List<string> Lines_In_Air_Door = new List<string>() { "S1","S2" };
public static List<string> RoomC_AGV_IPs = new List<string>() { "10.85.199.666"}; public static List<string> RoomC_AGV_IPs = new List<string>() { "10.85.199.666"};
public static List<string> FixedCharge_AGV_IPs = new List<string>() { "10.85.199.666" }; public static List<string> FixedCharge_AGV_IPs = new List<string>() { "10.85.199.666" };
#region 配置名 #region 配置名
......
...@@ -22,3 +22,11 @@ D22,备料区出口,fe89c587-75bf-11eb-a7fe-0001297a1dca ...@@ -22,3 +22,11 @@ D22,备料区出口,fe89c587-75bf-11eb-a7fe-0001297a1dca
CheckShelf,检查负载情况,cc5f1d78-75a2-11eb-8565-0001297a1dca CheckShelf,检查负载情况,cc5f1d78-75a2-11eb-8565-0001297a1dca
Leave,出料,28a2ab7b-75ac-11eb-8565-0001297a1dca Leave,出料,28a2ab7b-75ac-11eb-8565-0001297a1dca
Enter,进料,4bf5d4c5-75a4-11eb-8565-0001297a1dca Enter,进料,4bf5d4c5-75a4-11eb-8565-0001297a1dca
S1,S1线,4bf5d4c5-75a4-11eb-8565-0001297a1dca
S2,S2线,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirIn-1,进风淋门-停留点,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirIn-2,进风淋门-进入,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirIn-3,进风淋门-出去,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirOut-1,出风淋门-停留点,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirOut-2,出风淋门-进入,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirOut-3,出风淋门-出去,4bf5d4c5-75a4-11eb-8565-0001297a1dca
\ No newline at end of file \ No newline at end of file
...@@ -93,7 +93,7 @@ namespace DeviceLibrary ...@@ -93,7 +93,7 @@ namespace DeviceLibrary
{ {
msglist.Add(new AlarmMsg(AGVManager.nodeInfo[j].AliceName, "lineAgv." + AGVManager.nodeInfo[j].Name + ".OffLine", "离线")); msglist.Add(new AlarmMsg(AGVManager.nodeInfo[j].AliceName, "lineAgv." + AGVManager.nodeInfo[j].Name + ".OffLine", "离线"));
} }
if (AGVManager.nodeInfo[j].Name.StartsWith(SettingString.RoomD_Name_Prefix) || AGVManager.nodeInfo[j].Name.StartsWith(SettingString.RoomC_Name_Prefix)) if (AGVManager.nodeInfo[j].Name.StartsWith(SettingString.RoomS_Name_Prefix) || AGVManager.nodeInfo[j].Name.StartsWith(SettingString.RoomC_Name_Prefix))
{ {
if (!AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederIn) && !AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederOut) && if (!AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederIn) && !AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederOut) &&
!AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederIn) && !AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederOut)) !AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederIn) && !AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederOut))
......
...@@ -61,22 +61,13 @@ namespace DeviceLibrary ...@@ -61,22 +61,13 @@ namespace DeviceLibrary
StartJobTime = curJobStep.startTime; StartJobTime = curJobStep.startTime;
if (curJobStep.IsStep(EMPTY_SHELF_BACK_STEP.NONE)) if (curJobStep.IsStep(EMPTY_SHELF_BACK_STEP.NONE))
{ {
if (AGVManager.CheckIsInAirDoor(EmptyShelfPlace))//C车间风淋门 if (AGVManager.CheckIsInAirDoor(EmptyShelfPlace))//车间风淋门
{ {
curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_AIR_DOOR); curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.OUT_AIR_DOOR_1);
runInfo = string.Format("从产线{0}过{1}风淋门", EmptyShelfPlace,SettingString.RoomC_Name); runInfo = $"从产线{EmptyShelfPlace}去{SettingString.RoomD_Name}风淋门停留点";
msg += string.Format("[{0}] {1}", curJobStep.CurStep(),runInfo); msg += string.Format("[{0}] {1}", curJobStep.CurStep(),runInfo);
curJobStep.Msg = msg; curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut); MissionSys.AssignMission(agv, $"{SettingString.DoorAirOut}-1");
UpdateJobTaskInfo(agv);
}
else if (EmptyShelfPlace.StartsWith(SettingString.RoomC_Name_Prefix))//C车间
{
curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_DOOR);
runInfo = string.Format("从产线{0}前往{1}门", EmptyShelfPlace,SettingString.RoomD_Name);
msg += string.Format("[{0}] {1}", curJobStep.CurStep(),runInfo);
curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
else else
...@@ -106,32 +97,46 @@ namespace DeviceLibrary ...@@ -106,32 +97,46 @@ namespace DeviceLibrary
} }
} }
} }
else if (curJobStep.IsStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_AIR_DOOR)) else if (curJobStep.IsStep(EMPTY_SHELF_BACK_STEP.OUT_AIR_DOOR_1))
{ {
CurTaskState = MissionSys.GetTakJobState(agv); CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirOut, CurTaskState)) if (MissionSys.CheckTaskFinished(agv, $"{SettingString.DoorAirOut}-1", CurTaskState))
{ {
RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place); RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place);
curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_DOOR); curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.OUT_AIR_DOOR_2);
runInfo = string.Format("出风淋门,前往{0}门",SettingString.RoomD_Name); runInfo = string.Format("{0}到达风淋门停留点,进入{1}风淋门", agv.Place, SettingString.RoomD_Name);
msg += string.Format("[{0}] {1}", curJobStep.CurStep(),runInfo); msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo);
curJobStep.Msg = msg;
MissionSys.AssignMission(agv, $"{SettingString.DoorAirOut}-2");
UpdateJobTaskInfo(agv);
}
}
else if (curJobStep.IsStep(EMPTY_SHELF_BACK_STEP.OUT_AIR_DOOR_2))
{
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, $"{SettingString.DoorAirOut}-2", CurTaskState))
{
RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place);
curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.OUT_AIR_DOOR_3);
runInfo = string.Format("{0}进入风淋门,准备出{1}风淋门", agv.Place, SettingString.RoomD_Name);
msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo);
curJobStep.Msg = msg; curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD); MissionSys.AssignMission(agv, $"{SettingString.DoorAirOut}-3");
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
} }
else if (curJobStep.IsStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_DOOR)) else if (curJobStep.IsStep(EMPTY_SHELF_BACK_STEP.OUT_AIR_DOOR_3))
{ {
CurTaskState = MissionSys.GetTakJobState(agv); CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorCToD, CurTaskState)) if (MissionSys.CheckTaskFinished(agv, $"{SettingString.DoorAirOut}-3", CurTaskState))
{ {
RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place); RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place);
if (AGVManager.CheckA5A6State(agv, shelfType, out string nodeName)) if (AGVManager.CheckA5A6State(agv, shelfType, out string nodeName))
{ {
EmptyShelfTargetPlace = nodeName; EmptyShelfTargetPlace = nodeName;
curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_A5A6); curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_A5A6);
runInfo = string.Format("进{0}门,送往双层线{1}",SettingString.RoomD_Name, EmptyShelfTargetPlace); runInfo = string.Format("送往双层线{1}", SettingString.RoomD_Name, EmptyShelfTargetPlace);
msg += string.Format("[{0}] {1}", curJobStep.CurStep(),runInfo); msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo);
curJobStep.Msg = msg; curJobStep.Msg = msg;
MissionSys.AssignMission(agv, EmptyShelfTargetPlace); MissionSys.AssignMission(agv, EmptyShelfTargetPlace);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
...@@ -139,9 +144,9 @@ namespace DeviceLibrary ...@@ -139,9 +144,9 @@ namespace DeviceLibrary
else else
{ {
curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_STANDBY); curJobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_STANDBY);
runInfo = string.Format("进{0}门,双层线暂不需要空料架,到待机位", SettingString.RoomD_Name); runInfo = string.Format("双层线暂不需要空料架,到待机位", SettingString.RoomD_Name);
runInfo = "进4D门,双层线暂不需要空料架,到待机位"; runInfo = "双层线暂不需要空料架,到待机位";
msg += string.Format("[{0}] {1}", curJobStep.CurStep(),runInfo); msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo);
curJobStep.Msg = msg; curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby); MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
...@@ -260,13 +265,17 @@ namespace DeviceLibrary ...@@ -260,13 +265,17 @@ namespace DeviceLibrary
/// </summary> /// </summary>
NONE, NONE,
/// <summary> /// <summary>
/// 等待到达4C风淋门 /// 去出3D风淋门等待位
/// </summary>
OUT_AIR_DOOR_1,
/// <summary>
/// 进风淋门
/// </summary> /// </summary>
WAIT_AGV_REACH_AIR_DOOR, OUT_AIR_DOOR_2,
/// <summary> /// <summary>
/// 等待AGV到达 /// 出风淋
/// </summary> /// </summary>
WAIT_AGV_REACH_DOOR, OUT_AIR_DOOR_3,
/// <summary> /// <summary>
/// 等待小车到达A5,A6 /// 等待小车到达A5,A6
/// </summary> /// </summary>
......
...@@ -88,20 +88,11 @@ namespace DeviceLibrary ...@@ -88,20 +88,11 @@ namespace DeviceLibrary
} }
else if (AGVManager.CheckIsInAirDoor(agvPlace)) else if (AGVManager.CheckIsInAirDoor(agvPlace))
{ {
curJobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_AIR_DOOR); curJobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.OUT_AIR_DOOR_1);
runInfo = "在风淋门内,先过风淋门"; runInfo = "去风淋门停留点";
msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo); msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo);
curJobStep.Msg = msg; curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut); MissionSys.AssignMission(agv, $"{SettingString.DoorAirOut}-1");
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix))//4C车间
{
curJobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_DOOR);
runInfo = string.Format("在{0}车间,向{1}门运行,再到双层线入料口", SettingString.RoomC_Name, SettingString.RoomD_Name);
msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo);
curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
else else
...@@ -118,25 +109,24 @@ namespace DeviceLibrary ...@@ -118,25 +109,24 @@ namespace DeviceLibrary
} }
} }
else if (curJobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_AIR_DOOR)) else if (curJobStep.IsStep(GO_FULL_SHELF_STATION_STEP.OUT_AIR_DOOR_2))
{ {
CurTaskState = MissionSys.GetTakJobState(agv); CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirOut, CurTaskState)) if (MissionSys.CheckTaskFinished(agv, $"{SettingString.DoorAirOut}-2", CurTaskState))
{ {
RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place); RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place);
curJobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_DOOR); curJobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.OUT_AIR_DOOR_3);
runInfo = string.Format("过风淋门,向{0}门运行,再到双层线入料口{1}", SettingString.RoomD_Name,FullShelfStationPlace); runInfo = string.Format("{0}进入风淋门,准备出{1}风淋门", agv.Place, SettingString.RoomD_Name);
msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo); msg += string.Format("[{0}] {1}", curJobStep.CurStep(), runInfo);
curJobStep.Msg = msg; curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD); MissionSys.AssignMission(agv, $"{SettingString.DoorAirOut}-3");
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
} }
else if (curJobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_DOOR)) else if (curJobStep.IsStep(GO_FULL_SHELF_STATION_STEP.OUT_AIR_DOOR_3))
{ {
CurTaskState = MissionSys.GetTakJobState(agv); CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorCToD, CurTaskState)) if (MissionSys.CheckTaskFinished(agv, $"{SettingString.DoorAirOut}-3", CurTaskState))
{ {
RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place); RecordRunLog(agv, curJobStep.CurStep(), runInfo, agv.Place);
curJobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_A6); curJobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_A6);
...@@ -146,7 +136,6 @@ namespace DeviceLibrary ...@@ -146,7 +136,6 @@ namespace DeviceLibrary
MissionSys.AssignMission(agv, FullShelfStationPlace); MissionSys.AssignMission(agv, FullShelfStationPlace);
UpdateJobTaskInfo(agv); UpdateJobTaskInfo(agv);
} }
} }
else if (curJobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_A6)) else if (curJobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_A6))
{ {
...@@ -286,13 +275,17 @@ namespace DeviceLibrary ...@@ -286,13 +275,17 @@ namespace DeviceLibrary
/// </summary> /// </summary>
WAIT_CHECK_RESULT, WAIT_CHECK_RESULT,
/// <summary> /// <summary>
/// 等待到达4C风淋门 /// 去出3D风淋门等待位
/// </summary>
OUT_AIR_DOOR_1,
/// <summary>
/// 进风淋门
/// </summary> /// </summary>
WAIT_AGV_REACH_AIR_DOOR, OUT_AIR_DOOR_2,
/// <summary> /// <summary>
/// 等待AGV到达 /// 出风淋
/// </summary> /// </summary>
WAIT_AGV_REACH_DOOR, OUT_AIR_DOOR_3,
/// <summary> /// <summary>
/// 等待到达A6 /// 等待到达A6
/// </summary> /// </summary>
......
...@@ -41,7 +41,7 @@ namespace DeviceLibrary ...@@ -41,7 +41,7 @@ namespace DeviceLibrary
//出工单料的目的地是否有空料架 //出工单料的目的地是否有空料架
if (AGVManager.FindEmptyShelfBeforeSendFullShelf(out string nodeName)) if (AGVManager.FindEmptyShelfBeforeSendFullShelf(out string nodeName))
{ {
if (nodeName.StartsWith(SettingString.RoomD_Name_Prefix) && !SettingString.RoomC_AGV_IPs.Contains(currentAgv.IP)) if (nodeName.StartsWith(SettingString.RoomS_Name_Prefix) && !SettingString.RoomC_AGV_IPs.Contains(currentAgv.IP))
{ {
ClientNode clientNode = AGVManager.nodeInfo.Find(s => s.Name.Equals(nodeName)); ClientNode clientNode = AGVManager.nodeInfo.Find(s => s.Name.Equals(nodeName));
int cnt = 0; int cnt = 0;
......
...@@ -403,7 +403,7 @@ namespace DeviceLibrary ...@@ -403,7 +403,7 @@ namespace DeviceLibrary
log.Debug("A6出满料架的产线有空料架,优先处理 " + FullShelfDestInfo.ShowInfo(line)); log.Debug("A6出满料架的产线有空料架,优先处理 " + FullShelfDestInfo.ShowInfo(line));
return true; return true;
} }
else if (FullShelfDestInfo.location.StartsWith(SettingString.RoomD_Name_Prefix) && !SettingString.RoomC_AGV_IPs.Contains(agv.IP)) else if (FullShelfDestInfo.location.StartsWith(SettingString.RoomS_Name_Prefix) && !SettingString.RoomC_AGV_IPs.Contains(agv.IP))
{ {
nodeName = FullShelfDestInfo.location; nodeName = FullShelfDestInfo.location;
GetLineNameByNodeName(nodeName, out string line); GetLineNameByNodeName(nodeName, out string line);
...@@ -441,7 +441,7 @@ namespace DeviceLibrary ...@@ -441,7 +441,7 @@ namespace DeviceLibrary
//Common.LogInfo("双层线正在出的工单目标产线有空料架,优先处4C-" + loc); //Common.LogInfo("双层线正在出的工单目标产线有空料架,优先处4C-" + loc);
return true; return true;
} }
else if (loc.StartsWith(SettingString.RoomD_Name_Prefix) && !SettingString.RoomC_AGV_IPs.Contains(agv.IP)) else if (loc.StartsWith(SettingString.RoomS_Name_Prefix) && !SettingString.RoomC_AGV_IPs.Contains(agv.IP))
{ {
nodeName = loc; nodeName = loc;
log.Debug("双层线正在出的工单目标产线有空料架,优先处理4D-" + loc); log.Debug("双层线正在出的工单目标产线有空料架,优先处理4D-" + loc);
...@@ -475,7 +475,7 @@ namespace DeviceLibrary ...@@ -475,7 +475,7 @@ namespace DeviceLibrary
//4D车间寻找 //4D车间寻找
if (!SettingString.RoomC_AGV_IPs.Contains(agv.IP)) if (!SettingString.RoomC_AGV_IPs.Contains(agv.IP))
{ {
string nearNodeName = CalculateNearNode(agv, SettingString.RoomD_Name_Prefix); string nearNodeName = CalculateNearNode(agv, SettingString.RoomS_Name_Prefix);
if (nearNodeName.Equals("")) if (nearNodeName.Equals(""))
{ {
return false; return false;
...@@ -532,7 +532,7 @@ namespace DeviceLibrary ...@@ -532,7 +532,7 @@ namespace DeviceLibrary
//4D车间寻找 //4D车间寻找
if (!SettingString.RoomC_AGV_IPs.Contains(agv.IP)) if (!SettingString.RoomC_AGV_IPs.Contains(agv.IP))
{ {
string nearNodeName = CalculateNearNode(agv, SettingString.RoomD_Name_Prefix); string nearNodeName = CalculateNearNode(agv, SettingString.RoomS_Name_Prefix);
if (!nearNodeName.Equals("")) if (!nearNodeName.Equals(""))
{ {
nodeName = nearNodeName; nodeName = nearNodeName;
...@@ -569,28 +569,12 @@ namespace DeviceLibrary ...@@ -569,28 +569,12 @@ namespace DeviceLibrary
} }
} }
if (CheckA6State(agv, eShelfType.BigShelf)) if (CheckA6State(agv, eShelfType.BigShelf) || CheckA6State(agv, eShelfType.SmallShelf))
{ {
//4C车间备料区寻找 //D车间备料区寻找
if (SettingString.RoomC_AGV_IPs.Contains(agv.IP))
{
idx = nodeInfo.FindIndex(s => s.EmptyShelfCnt > 0 && s.Name.Equals(SettingString.RoomCFeederOut) && !s.RFID.StartsWith("0") && s.IsUse);
if (idx > -1)
{
int idx1 = agvInfo.FindIndex(s => s.CurJob is EnterLeaveShelfJob && ((EnterLeaveShelfJob)s.CurJob).LineName.Equals(SettingString.RoomCFeederOut));
if (idx1 == -1)
{
nodeName = nodeInfo[idx].Name;
log.Debug(agv.Name + " 双层线右侧需要料架,准备去4C-" + nodeName);
return true;
}
}
}
//4D车间备料区寻找
if (!SettingString.RoomC_AGV_IPs.Contains(agv.IP)) if (!SettingString.RoomC_AGV_IPs.Contains(agv.IP))
{ {
idx = nodeInfo.FindIndex(s => s.EmptyShelfCnt > 0 && s.Name.Equals(SettingString.RoomDFeederOut) && s.RFID.StartsWith("D") && s.IsUse); idx = nodeInfo.FindIndex(s => s.EmptyShelfCnt > 0 && s.Name.Equals(SettingString.RoomDFeederOut) && !s.RFID.StartsWith("0") && s.IsUse);
if (idx > -1) if (idx > -1)
{ {
nodeName = nodeInfo[idx].Name; nodeName = nodeInfo[idx].Name;
...@@ -626,7 +610,8 @@ namespace DeviceLibrary ...@@ -626,7 +610,8 @@ namespace DeviceLibrary
return true; return true;
} }
else if (FullShelfDestInfo.location.StartsWith(SettingString.RoomD_Name_Prefix) && !SettingString.RoomC_AGV_IPs.Contains(agv.IP)) else if ((FullShelfDestInfo.location.StartsWith(SettingString.RoomS_Name_Prefix)|| FullShelfDestInfo.location.StartsWith(SettingString.SmallShelf_Prefix))
&& !SettingString.RoomC_AGV_IPs.Contains(agv.IP))
{ {
int i = agvInfo.FindIndex(s => s.CurJob is SendFullShelfToLineJob && !s.IP.Equals(agv.IP) int i = agvInfo.FindIndex(s => s.CurJob is SendFullShelfToLineJob && !s.IP.Equals(agv.IP)
&& ((SendFullShelfToLineJob)s.CurJob).FullShelfPlace.Equals(FullShelfDestInfo.location)); && ((SendFullShelfToLineJob)s.CurJob).FullShelfPlace.Equals(FullShelfDestInfo.location));
......
...@@ -134,7 +134,11 @@ namespace DeviceLibrary ...@@ -134,7 +134,11 @@ namespace DeviceLibrary
{ {
tempLocation = "3CFeederIn"; tempLocation = "3CFeederIn";
} }
else if(res[0].location.StartsWith("D")|| res[0].location.StartsWith("C")
|| res[0].location.Equals("Feeder") || res[0].location.Equals("4DFeeder") || res[0].location.Equals("4CFeeder"))
{
tempLocation = "D0";
}
if (AGVManager.GetNodeNameByLineName(tempLocation, out string loc)) if (AGVManager.GetNodeNameByLineName(tempLocation, out string loc))
{ {
int i = AGVManager.FindNode(loc); int i = AGVManager.FindNode(loc);
...@@ -525,7 +529,7 @@ namespace DeviceLibrary ...@@ -525,7 +529,7 @@ namespace DeviceLibrary
{ {
string addr = ""; string addr = "";
string lineName = ""; string lineName = "";
if (nodeName.StartsWith(SettingString.RoomD_Name_Prefix) && AGVManager.GetLineNameByNodeName(nodeName, out lineName)) if (nodeName.StartsWith(SettingString.RoomS_Name_Prefix) && AGVManager.GetLineNameByNodeName(nodeName, out lineName))
{ {
addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", AppConfigHelper.GetValue(SettingString.IP_3D_Light), lineName, rfid); addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", AppConfigHelper.GetValue(SettingString.IP_3D_Light), lineName, rfid);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!