Commit 3cc497e1 张东亮

3楼的优先级改为T4紧急料-》点料机点料口(D1,D2)-》点料机退料(D3,D4口)-》料仓入料口

1 个父辈 9155c4b4
......@@ -112,9 +112,10 @@ namespace AGVControl
//加载任务类型
CommonVar.jobTypeInfo = new List<JobType>();
//CommonVar.jobTypeInfo.Add(new PackingJobType());
CommonVar.jobTypeInfo.Add(new ReelStringJobType());
CommonVar.jobTypeInfo.Add(new UrgentReelStringJobType());
CommonVar.jobTypeInfo.Add(new CountReelStringJobType());
CommonVar.jobTypeInfo.Add(new ReturnJobType());
CommonVar.jobTypeInfo.Add(new BoxReelStringJobType());
CommonVar.jobTypeInfo.Add(new ChargeJobType());
}
......
......@@ -50,6 +50,8 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="bean\jobType\CountReelStringJobType.cs" />
<Compile Include="bean\jobType\UrgentReelStringJobType.cs" />
<Compile Include="manager\APIManager.cs" />
<Compile Include="AgvServer.cs" />
<Compile Include="bean\Agv_Info.cs" />
......@@ -58,7 +60,7 @@
<Compile Include="bean\JobStep.cs" />
<Compile Include="bean\JobType.cs" />
<Compile Include="bean\jobType\ChargeJobType.cs" />
<Compile Include="bean\jobType\ReelStringJobType.cs" />
<Compile Include="bean\jobType\BoxReelStringJobType.cs" />
<Compile Include="bean\jobType\ReturnJobType.cs" />
<Compile Include="bean\job\ChargeJob.cs" />
<Compile Include="bean\job\GetShelfJob.cs" />
......
......@@ -340,7 +340,7 @@ namespace DeviceLibrary
//检查紧急出料口的C8出满料串
if (IsPlace(SettingString.T4_2))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A8))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A8))
{
tarPlace = SettingString.A8;
return true;
......@@ -349,64 +349,64 @@ namespace DeviceLibrary
if (IsPlace(SettingString.D2) || IsPlace(SettingString.A1) || IsPlace(SettingString.A9))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T5_1, ClientLevel.High,false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T5_1, ClientLevel.High,false))
{
tarPlace = SettingString.T5_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T3_1, ClientLevel.High, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T3_1, ClientLevel.High, false))
{
tarPlace = SettingString.T3_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T2_1, ClientLevel.High, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T2_1, ClientLevel.High, false))
{
tarPlace = SettingString.T2_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T1_1, ClientLevel.High, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T1_1, ClientLevel.High, false))
{
tarPlace = SettingString.T1_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T5_1, ClientLevel.Middle, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T5_1, ClientLevel.Middle, false))
{
tarPlace = SettingString.T5_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T3_1, ClientLevel.Middle, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T3_1, ClientLevel.Middle, false))
{
tarPlace = SettingString.T3_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T2_1, ClientLevel.Middle, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T2_1, ClientLevel.Middle, false))
{
tarPlace = SettingString.T2_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T1_1, ClientLevel.Middle, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T1_1, ClientLevel.Middle, false))
{
tarPlace = SettingString.T1_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T5_1))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T5_1))
{
tarPlace = SettingString.T5_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T3_1))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T3_1))
{
tarPlace = SettingString.T3_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T2_1))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T2_1))
{
tarPlace = SettingString.T2_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T1_1))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T1_1))
{
tarPlace = SettingString.T1_1;
return true;
......@@ -415,7 +415,7 @@ namespace DeviceLibrary
if(IsPlace(SettingString.D2))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A8))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A8))
{
tarPlace = SettingString.A8;
return true;
......@@ -424,17 +424,17 @@ namespace DeviceLibrary
//退料线
if (IsPlace(SettingString.D24_Out))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D3))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D3))
{
tarPlace = SettingString.D3;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D4))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D4))
{
tarPlace = SettingString.D4;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
{
tarPlace = SettingString.D23_In;
return true;
......@@ -448,12 +448,12 @@ namespace DeviceLibrary
IsPlace(SettingString.T2_2) || IsPlace(SettingString.T1_2))
{
//检查紧急出料口C7需要空料串
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.High,false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.High,false))
{
tarPlace = SettingString.T4_1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T4_1, ClientLevel.Middle, false))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.T4_1, ClientLevel.Middle, false))
{
tarPlace = SettingString.T4_1;
return true;
......@@ -464,12 +464,12 @@ namespace DeviceLibrary
// return true;
//}
//检查点料机D1是否需要空料串
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D1))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D1))
{
tarPlace = SettingString.D1;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A2))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A2))
{
tarPlace = SettingString.A2;
return true;
......@@ -480,12 +480,12 @@ namespace DeviceLibrary
//退料线
if (IsPlace(SettingString.D3) || IsPlace(SettingString.D4))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
{
tarPlace = SettingString.D23_In;
return true;
}
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A8))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.A8))
{
tarPlace = SettingString.A8;
return true;
......
......@@ -279,17 +279,17 @@ namespace DeviceLibrary
private bool FindReturnShelf(Agv_Info currentAgv)
{
string rfid = "";
if (ReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D24_Out, out rfid))
if (BoxReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D24_Out, out rfid))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D3))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D3))
{
LogUtil.info(string.Format("{0} 在退料线生成任务(D3需要满料串,D24出满料串):Place={1},rfid={2}", currentAgv.Name, SettingString.D3, rfid));
return true;
}
}
if (ReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D4, out rfid))
if (BoxReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D4, out rfid))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
{
LogUtil.info(string.Format("{0} 在退料线生成任务(D4需要满料串,D24出满料串):Place={1},rfid={2}", currentAgv.Name, SettingString.D4, rfid));
return true;
......
......@@ -23,9 +23,9 @@ namespace DeviceLibrary
return null;
string rfid="";
//查找退料线出满料架且点料机需要架子
if (ReelStringJobType.FindNeedLeave(currentAgv, SettingString.D24_Out,out rfid))
if (BoxReelStringJobType.FindNeedLeave(currentAgv, SettingString.D24_Out,out rfid))
{
if (ReelStringJobType.FindNeedEnter(currentAgv, SettingString.D3) )
if (BoxReelStringJobType.FindNeedEnter(currentAgv, SettingString.D3) )
{
int idx = CommonVar.agvInfo.FindIndex(s => !s.IP.Equals(currentAgv.IP) && s.CurJob != null && s.CurJob is SendShelfJob && (((SendShelfJob)s.CurJob).TargetPlace.Equals(SettingString.D23_In)));
if (idx == -1) idx = CommonVar.agvInfo.FindIndex(s => !s.IP.Equals(currentAgv.IP) && s.CurJob != null && s.CurJob is SendShelfJob && (((SendShelfJob)s.CurJob).TargetPlace.Equals(SettingString.D3)));
......@@ -38,7 +38,7 @@ namespace DeviceLibrary
}
}
if (ReelStringJobType.FindNeedEnter(currentAgv, SettingString.D4))
if (BoxReelStringJobType.FindNeedEnter(currentAgv, SettingString.D4))
{
int idx = CommonVar.agvInfo.FindIndex(s => !s.IP.Equals(currentAgv.IP) && s.CurJob != null && s.CurJob is SendShelfJob && (((SendShelfJob)s.CurJob).TargetPlace.Equals(SettingString.D23_In)));
if (idx == -1) idx = CommonVar.agvInfo.FindIndex(s => !s.IP.Equals(currentAgv.IP) && s.CurJob != null && s.CurJob is SendShelfJob && (((SendShelfJob)s.CurJob).TargetPlace.Equals(SettingString.D4)));
......@@ -54,17 +54,17 @@ namespace DeviceLibrary
}
////点料机出空架子
if (ReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D3, out rfid))
if (BoxReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D3, out rfid))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
{
LogUtil.info(string.Format("{0} 退料任务生成(D3出空料串,D23需要空料串):Place={1},rfid={2}", currentAgv.Name, SettingString.D3, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.D3, "B#");
}
}
if (ReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D4, out rfid))
if (BoxReelStringJobType.FindNeedLeaveMission(currentAgv, SettingString.D4, out rfid))
{
if (ReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
if (BoxReelStringJobType.FindNeedEnterMission(currentAgv, SettingString.D23_In))
{
LogUtil.info(string.Format("{0} 退料任务生成(D4出空料串,D23需要空料串):Place={1},rfid={2}", currentAgv.Name, SettingString.D4, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.D4, "B#");
......
......@@ -5,9 +5,9 @@ using Common;
namespace DeviceLibrary
{
/// <summary>
/// 料仓料串任务
/// 紧急料串任务
/// </summary>
public class ReelStringJobType : JobType
public class UrgentReelStringJobType : JobType
{
/// <summary>
......@@ -93,108 +93,7 @@ namespace DeviceLibrary
return new GetShelfJob(currentAgv.Place, SettingString.A7, rfid);
}
}
//检查点料机D1是否需要空料串
if (FindNeedEnterMission(currentAgv, SettingString.D1))
{
if (FindNeedLeaveMission(currentAgv, SettingString.T1_2, out rfid, SettingString.ReelString_RFID_Prefix))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T1_2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T1_2, rfid);
}
if (FindNeedLeaveMission(currentAgv, SettingString.T2_2, out rfid, SettingString.ReelString_RFID_Prefix))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T2_2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T2_2, rfid);
}
if (FindNeedLeaveMission(currentAgv, SettingString.T3_2, out rfid, SettingString.ReelString_RFID_Prefix))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T3_2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T3_2, rfid);
}
if (FindNeedLeaveMission(currentAgv, SettingString.T5_2, out rfid, SettingString.ReelString_RFID_Prefix))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T5_2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T5_2, rfid);
}
//分盘
if (FindNeedLeaveMission(currentAgv, SettingString.A7, out rfid, SettingString.ReelString_RFID_Prefix))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.A7, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.A7, rfid);
}
}
//检查入料口1是否有空料串要出
if (FindNeedLeaveMission(currentAgv, SettingString.T1_2, out rfid))
{
if (FindNeedEnterMission(currentAgv, SettingString.D1) || FindNeedEnterMission(currentAgv, SettingString.A2))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T5_1, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T1_2, rfid);
}
}
//检查入料口2是否有空料串要出
if (FindNeedLeaveMission(currentAgv, SettingString.T2_2, out rfid))
{
if (FindNeedEnterMission(currentAgv, SettingString.D1) || FindNeedEnterMission(currentAgv, SettingString.A2))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T2_2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T2_2, rfid);
}
}
//检查入料口3是否有空料串要出
if (FindNeedLeaveMission(currentAgv, SettingString.T3_2, out rfid))
{
if (FindNeedEnterMission(currentAgv, SettingString.D1) || FindNeedEnterMission(currentAgv, SettingString.A2))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T3_2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T3_2, rfid);
}
}
//检查入料口5是否有空料串要出
if (FindNeedLeaveMission(currentAgv, SettingString.T5_2, out rfid))
{
if (FindNeedEnterMission(currentAgv, SettingString.D1) || FindNeedEnterMission(currentAgv, SettingString.A2))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.T5_2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.T5_2, rfid);
}
}
//FindNeedEnterMission(currentAgv, SettingString.T1_1, ClientLevel.Middle, false) || FindNeedEnterMission(currentAgv, SettingString.T2_1, ClientLevel.Middle, false) ||
// FindNeedEnterMission(currentAgv, SettingString.T3_1, ClientLevel.Middle, false) || FindNeedEnterMission(currentAgv, SettingString.T5_1, ClientLevel.Middle, false) ||
// FindNeedEnterMission(currentAgv, SettingString.T1_1, ClientLevel.High, false) || FindNeedEnterMission(currentAgv, SettingString.T2_1, ClientLevel.High, false) ||
// FindNeedEnterMission(currentAgv, SettingString.T3_1, ClientLevel.High, false) || FindNeedEnterMission(currentAgv, SettingString.T5_1, ClientLevel.High, false)
//检查入料口需要满料,且点料机D2/A1出满料串
if (FindNeedEnterMission(currentAgv, SettingString.T1_1) || FindNeedEnterMission(currentAgv, SettingString.T2_1) ||
FindNeedEnterMission(currentAgv, SettingString.T3_1) || FindNeedEnterMission(currentAgv, SettingString.T5_1))
{
if (FindNeedLeaveMission(currentAgv, SettingString.D2, out rfid))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.D2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.D2, "B#", true);
}
if (FindNeedLeaveMission(currentAgv, SettingString.A1, out rfid, SettingString.ReelString_RFID_Prefix))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.A1, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.A1, rfid, true);
}
if (FindNeedLeaveMission(currentAgv, SettingString.A9, out rfid, SettingString.ReelString_RFID_Prefix))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2}", currentAgv.Name, SettingString.A9, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.A9, rfid, true);
}
}
if (FindNeedLeaveMission(currentAgv, SettingString.D2, out rfid))
{
if(FindNeedEnterMission(currentAgv, SettingString.A8))
{
LogUtil.info(string.Format("{0} 任务生成:Place={1},rfid={2},点料机满料出口满,上料机构满,出到分盘线", currentAgv.Name, SettingString.D2, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.D2, rfid, true);
}
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!