BoxInJobType.cs
3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using Common;
using System.Collections.Generic;
namespace DeviceLibrary
{
/// <summary>
/// 云仓进料任务
/// </summary>
public class BoxInJobType : JobType
{
static string[] mixString = AppConfigHelper.GetValue(SettingString.MixingString).Split(',');
/// <summary>
/// 料仓料串任务
/// </summary>
/// <param name="currentAgv"></param>
/// <returns></returns>
public override Job GetNewJob(Agv_Info currentAgv)
{
if (!Context.CheckCanExecuteMission(currentAgv))
return null;
if (!Context.CheckAGVStatusNone(currentAgv))
return null;
string rfid = "";
//检查设备1入口需要空料串用作出库
if (FindNeedEnterMission(currentAgv, SettingString.D1, true))
{
if (FindNeedLeaveMission(currentAgv, SettingString.A1, out rfid, true))
{
LogUtil.info(string.Format("{0} [{1}]需要空料串,去[{2}]取料串[{3}]", currentAgv.Name, SettingString.D1, SettingString.A1, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.A1, rfid, false);
}
}
//检查设备2入口需要空料串用作出库
if (FindNeedEnterMission(currentAgv, SettingString.D3, true))
{
if (FindNeedLeaveMission(currentAgv, SettingString.A1, out rfid, true))
{
LogUtil.info(string.Format("{0} [{1}]需要空料串,去[{2}]取料串[{3}]", currentAgv.Name, SettingString.D3, SettingString.A1, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.A1, rfid, false);
}
}
//混合仓入口需要满料
if (FindNeedEnterMission(currentAgv, SettingString.D3, false))
{
if (FindNeedLeaveMission(currentAgv, SettingString.A3, out rfid, false))
{
LogUtil.info(string.Format("{0} [{1}]需要满料串,去[{2}]取料串[{3}]", currentAgv.Name, SettingString.D3, SettingString.A3, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.A3, rfid, true);
}
}
//7寸盘入口需要满料
if (FindNeedEnterMission(currentAgv, SettingString.D1, false))
{
if (FindNeedLeaveMission(currentAgv, SettingString.A3, out rfid, false))
{
if (IsMixString(rfid))
return null;
LogUtil.info(string.Format("{0} [{1}]需要满料串,去[{2}]取料串[{3}]", currentAgv.Name, SettingString.D1, SettingString.A3, rfid));
return new GetShelfJob(currentAgv.Place, SettingString.A3, rfid, true);
}
}
return null;
}
public static bool IsMixString(string rfid)
{
if (mixString != null && mixString.Length > 0)
foreach (string item in mixString)
{
if (item.Equals(rfid))
return true;
}
return false;
}
}
}