|
@@ -28,7 +28,7 @@ namespace WCS.WorkEngineering
|
|
|
{
|
|
|
#region 无交互触发设备
|
|
|
|
|
|
- var devs = new List<string>() { nameof(分线计算09), nameof(桁架码垛区补空托盘任务生成), "出库AGV", "入库AGV", nameof(NoInteractionSystems) };
|
|
|
+ var devs = new List<string>() { nameof(分线计算09), nameof(桁架码垛区补空托盘任务生成), "出库AGV", "入库AGV", nameof(NoInteractionSystems), nameof(UpLoadSystems) };
|
|
|
foreach (var conv in devs.Select(code => new Device(code)))
|
|
|
{
|
|
|
conv.AddProtocol<IStation520>(0, 520, "1");
|
|
@@ -46,12 +46,12 @@ namespace WCS.WorkEngineering
|
|
|
|
|
|
List<RgvSegmentInfo> RgvInfo = new List<RgvSegmentInfo>
|
|
|
{
|
|
|
- new RgvSegmentInfo( 1, "10.30.37.113"),
|
|
|
- new RgvSegmentInfo( 2, "10.30.37.118"),
|
|
|
- //new RgvSegmentInfo( 3, "10.30.37.123"),
|
|
|
- //new RgvSegmentInfo( 4, "10.30.37.128"),
|
|
|
- //new RgvSegmentInfo( 5, "10.30.37.133"),
|
|
|
- //new RgvSegmentInfo( 6, "10.30.37.138")
|
|
|
+ new RgvSegmentInfo( 1, "10.30.37.113"), //库一北
|
|
|
+ new RgvSegmentInfo( 2, "10.30.37.118"), //库一南
|
|
|
+ new RgvSegmentInfo( 3, "10.30.37.123"), //库二北
|
|
|
+ new RgvSegmentInfo( 4, "10.30.37.128"), //库二南
|
|
|
+ new RgvSegmentInfo( 5, "10.30.37.133"), //库三北
|
|
|
+ new RgvSegmentInfo( 6, "10.30.37.138"), //库三南
|
|
|
};
|
|
|
|
|
|
foreach (var item in RgvInfo)
|
|
@@ -73,12 +73,29 @@ namespace WCS.WorkEngineering
|
|
|
|
|
|
var tuples = new List<Tuple<string, List<Tuple<int, int>>>>
|
|
|
{
|
|
|
+ //分拣库一
|
|
|
new("10.30.37.89",new List<Tuple<int, int>>()
|
|
|
{
|
|
|
new(1601, 1620),
|
|
|
new(2501, 2540),
|
|
|
new(2701, 2740),
|
|
|
new(1661, 1690),
|
|
|
+ }),
|
|
|
+ //分拣库二
|
|
|
+ new("10.30.37.97",new List<Tuple<int, int>>()
|
|
|
+ {
|
|
|
+ new(1621, 1640),
|
|
|
+ new(2901, 2940),
|
|
|
+ new(3101, 3140),
|
|
|
+ new(1691, 1720),
|
|
|
+ }),
|
|
|
+ //分拣库三
|
|
|
+ new("10.30.37.105",new List<Tuple<int, int>>()
|
|
|
+ {
|
|
|
+ //new(1621, 1640),
|
|
|
+ //new(2901, 2940),
|
|
|
+ //new(3101, 3140),
|
|
|
+ //new(1691, 1720)
|
|
|
})
|
|
|
};
|
|
|
|
|
@@ -113,16 +130,21 @@ namespace WCS.WorkEngineering
|
|
|
|
|
|
var mLtuples523 = new List<Tuple<string, List<Tuple<int, int>>>>()
|
|
|
{
|
|
|
- new("10.30.37.166",new List<Tuple<int, int>>()
|
|
|
+ new("10.30.37.166",new List<Tuple<int, int>>() //北侧满轮主线
|
|
|
{
|
|
|
new(1, 100),
|
|
|
- new(1001, 1010),
|
|
|
+ new(9001, 9010),//暂用,无意义
|
|
|
new(401, 599),
|
|
|
+ new(801,999),
|
|
|
+ new(1201,1399),
|
|
|
}),
|
|
|
- new("10.30.37.198",new List<Tuple<int, int>>()
|
|
|
+ new("10.30.37.198",new List<Tuple<int, int>>() //南侧满轮主线
|
|
|
{
|
|
|
new(101, 210),
|
|
|
new(601, 799),
|
|
|
+ new(1001, 1199),
|
|
|
+ new(1401,1599),
|
|
|
+ new(341,379),
|
|
|
})
|
|
|
};
|
|
|
|
|
@@ -152,8 +174,10 @@ namespace WCS.WorkEngineering
|
|
|
//Item2表示线体号集合,Item1表示IP
|
|
|
var mLTuples520 = new List<Tuple<string, List<int>>>()
|
|
|
{
|
|
|
- new("10.30.37.166",new List<int>(){1,22,41,61,418,426,435,444,455,466,480,494,508,522,536,550,564,578,591}),
|
|
|
- new("10.30.37.198",new List<int>(){101,122,141,161,618,626,635,644,655,666,680,694,708,722,736,750,764,778,791})
|
|
|
+ //北侧
|
|
|
+ new("10.30.37.166",new List<int>() {1,22,41,61,418,426,435,444,455,466,480,494,508,522,536,550,564,578,591,818,826,835,844,855,866,880,894,908,922,936,950,964,978,991,1218,1226,1235,1244,1255,1266,1280,1294,1308,1322,1336,1350,1364,1378,1391}),
|
|
|
+ //南侧
|
|
|
+ new("10.30.37.198",new List<int>(){101,122,141,161,618,626,635,644,655,666,680,694,708,722,736,750,764,778,791,1018,1026,1035,1044,1055,1066,1080,1094,1108,1122,1136,1150,1164,1178,1191,1418,1426,1435,1444,1455,1466,1480,1494,1508,1522,1536,1550,1564,1578,1591})
|
|
|
};
|
|
|
|
|
|
foreach (var item in mLTuples520)
|
|
@@ -181,8 +205,8 @@ namespace WCS.WorkEngineering
|
|
|
//Item2表示线体号集合,Item1表示IP
|
|
|
var mLTuples83 = new List<Tuple<string, List<int>>>()
|
|
|
{
|
|
|
- new("10.30.37.166",new List<int>(){3,14,18,22,38,93,41,58,61}) ,
|
|
|
- new("10.30.37.198",new List<int>(){101,114,118,122,138,})
|
|
|
+ new("10.30.37.166",new List<int>(){3,14,18,22,38,323,41,58,61}) ,
|
|
|
+ new("10.30.37.198",new List<int>(){101,114,118,122,138,363,141,158,161})
|
|
|
};
|
|
|
|
|
|
foreach (var item in mLTuples83)
|
|
@@ -204,8 +228,8 @@ namespace WCS.WorkEngineering
|
|
|
//Item2表示线体号集合,Item1表示IP
|
|
|
var mLTuples525 = new List<Tuple<string, List<int>>>()
|
|
|
{
|
|
|
- new("10.30.37.166",new List<int>(){18}),
|
|
|
- new("10.30.37.198",new List<int>(){118}),
|
|
|
+ new("10.30.37.166",new List<int>(){18,38,58}),
|
|
|
+ new("10.30.37.198",new List<int>(){118,138,158}),
|
|
|
};
|
|
|
|
|
|
foreach (var item in mLTuples525)
|
|
@@ -226,8 +250,8 @@ namespace WCS.WorkEngineering
|
|
|
//Item2表示线体号集合,Item1表示IP
|
|
|
var mLTuples91 = new List<Tuple<string, List<int>>>()
|
|
|
{
|
|
|
- new("10.30.37.166",new List<int>(){418}),
|
|
|
- new("10.30.37.166",new List<int>(){618})
|
|
|
+ new("10.30.37.166",new List<int>(){418,818,1218}),
|
|
|
+ new("10.30.37.166",new List<int>(){618,1018,1418})
|
|
|
};
|
|
|
|
|
|
foreach (var item in mLTuples91)
|
|
@@ -252,7 +276,14 @@ namespace WCS.WorkEngineering
|
|
|
var bcrInfo = new List<BcrInfo>
|
|
|
{
|
|
|
new(new [] { "2532", "2732" }, "10.30.37.89"),
|
|
|
- new(new [] {"RGV1"},"10.30.37.113")
|
|
|
+ new(new [] { "2932", "3132" }, "10.30.37.97"),
|
|
|
+ //new(new [] { "2532", "2732" }, "10.30.37.105"),
|
|
|
+ new(new [] {"RGV1"},"10.30.37.113"),
|
|
|
+ new(new [] {"RGV2"},"10.30.37.118"),
|
|
|
+ new(new [] {"RGV3"},"10.30.37.123"),
|
|
|
+ new(new [] {"RGV4"},"10.30.37.128"),
|
|
|
+ new(new [] {"RGV5"},"10.30.37.133"),
|
|
|
+ new(new [] {"RGV6"},"10.30.37.138")
|
|
|
};
|
|
|
|
|
|
foreach (var item in bcrInfo)
|
|
@@ -272,7 +303,9 @@ namespace WCS.WorkEngineering
|
|
|
|
|
|
List<ShapeInfo> shapeInfo = new List<ShapeInfo>
|
|
|
{
|
|
|
- new ShapeInfo(new int[] { 2732,2532 }, "10.30.37.89")
|
|
|
+ new ShapeInfo(new int[] { 2732,2532 }, "10.30.37.89"),
|
|
|
+ new ShapeInfo(new int[] { 2932, 3132 }, "10.30.37.97"),
|
|
|
+ //new ShapeInfo(new int[] { 2732,2532 }, "10.30.37.105")
|
|
|
};
|
|
|
|
|
|
foreach (var item in shapeInfo)
|
|
@@ -295,6 +328,8 @@ namespace WCS.WorkEngineering
|
|
|
List<TrussSegmentInfo> TrussInfo = new List<TrussSegmentInfo>
|
|
|
{
|
|
|
new TrussSegmentInfo( 1, "10.30.37.211"),
|
|
|
+ new TrussSegmentInfo( 1, "10.30.37.217"),
|
|
|
+ new TrussSegmentInfo( 1, "10.30.37.223")
|
|
|
};
|
|
|
|
|
|
foreach (var item in TrussInfo)
|
|
@@ -309,10 +344,16 @@ namespace WCS.WorkEngineering
|
|
|
var tuples1 = new List<Tuple<string, List<int>>>
|
|
|
{
|
|
|
//桁架
|
|
|
- //new("10.30.37.211",new List<int>(){1662,1663,1664,1665,1670,1671,1672,1673,1674,1675,1677,1678,1679,1680,1685,1686,1687,1688,1689,1690}),
|
|
|
- new("10.30.37.211",new List<int>(){1685,1686,1687,1688,1689,1690,1675,1674,1673,1672,1671,1670,1677,1678,1679,1680,1665,1664,1663,1662}),
|
|
|
+ new("10.30.37.211",new List<int>(){1685,1686,1687,1688,1689,1690,1675,1674,1673,1672,1671,1670,1677,1678,1679,1680,1665,1664,1663,1662}), //分拣库一
|
|
|
+ new("10.30.37.217",new List<int>(){1715,1716,1717,1718,1719,1720,1705,1704,1703,1702,1701,1700,1707,1708,1709,1710,1695,1694,1693,1692}), //分拣库二
|
|
|
+ //new("10.30.37.223",new List<int>(){1685,1686,1687,1688,1689,1690,1675,1674,1673,1672,1671,1670,1677,1678,1679,1680,1665,1664,1663,1662}), //分拣库三
|
|
|
//机械臂
|
|
|
- new("10.30.37.230",new List<int>(){ 1666, 1661}),
|
|
|
+ new("10.30.37.230",new List<int>(){ 1666, 1661}), //库一北
|
|
|
+ new("10.30.37.232",new List<int>(){ 1681, 1676}), //库一南
|
|
|
+ new("10.30.37.234",new List<int>(){ 1696, 1691}), //库二北
|
|
|
+ new("10.30.37.236",new List<int>(){ 1711, 1706}), //库二南
|
|
|
+ //new("10.30.37.238",new List<int>(){ 1666, 1661}), //库三北
|
|
|
+ //new("10.30.37.240",new List<int>(){ 1681, 1676}), //库三南
|
|
|
};
|
|
|
|
|
|
foreach (var item in tuples1)
|
|
@@ -321,7 +362,7 @@ namespace WCS.WorkEngineering
|
|
|
var db531 = 0;
|
|
|
foreach (var conv in item.Item2.Select(item1 => Device.All.FirstOrDefault(x => x.Code == item1.ToString())))
|
|
|
{
|
|
|
- if (item.Item1 == "10.30.37.211")
|
|
|
+ if (item.Item1 is "10.30.37.211" or "10.30.37.217" or "10.30.37.223")
|
|
|
{
|
|
|
conv!.AddProtocol<ITruss530>(db530, 530, item.Item1);
|
|
|
conv!.AddProtocol<ITruss531>(db531, 531, item.Item1);
|
|
@@ -345,7 +386,11 @@ namespace WCS.WorkEngineering
|
|
|
List<TrussSegmentInfo> TrussInfo1 = new List<TrussSegmentInfo>
|
|
|
{
|
|
|
new( 1, "10.30.37.230"),
|
|
|
- new( 2, "10.30.37.232")
|
|
|
+ new( 2, "10.30.37.232"),
|
|
|
+ new( 3, "10.30.37.234"),
|
|
|
+ new( 4, "10.30.37.236"),
|
|
|
+ new( 5, "10.30.37.238"),
|
|
|
+ new( 6, "10.30.37.240"),
|
|
|
};
|
|
|
|
|
|
foreach (var item in TrussInfo1)
|
|
@@ -365,7 +410,7 @@ namespace WCS.WorkEngineering
|
|
|
|
|
|
int ip = 41;
|
|
|
|
|
|
- for (int i = 0; i <= 1; i++)
|
|
|
+ for (int i = 0; i <= 5; i++)
|
|
|
{
|
|
|
var srm = new Device($"SRM{i + 1}");
|
|
|
srm.AddFlag(DeviceFlags.堆垛机);
|
|
@@ -410,11 +455,12 @@ namespace WCS.WorkEngineering
|
|
|
new RouteInfo("1615", new string[] { "1616" }),
|
|
|
//二楼拆盘机--RGV
|
|
|
new RouteInfo("1602", new string[] { "RGV1" }),//非09拆盘机
|
|
|
- //new RouteInfo("1612", new string[] { "RGV2"}),
|
|
|
+ new RouteInfo("1612", new string[] { "RGV2"}),
|
|
|
new RouteInfo("1606", new string[] { "RGV1" }),//09拆盘机
|
|
|
- //new RouteInfo("1616", new string[] { "RGV2" }),
|
|
|
+ new RouteInfo("1616", new string[] { "RGV2" }),
|
|
|
//RGV--码垛区域
|
|
|
new RouteInfo("RGV1", new string[] { "1661","1666" }),//北区机械臂码垛区
|
|
|
+ new RouteInfo("RGV2", new string[] { "1676","1681" }),
|
|
|
//new RouteInfo("RGV2", new string[] { }),//南区机械臂
|
|
|
new RouteInfo("RGV1", new string[] { "1662","1663","1664","1665", "1670","1671","1672","1673","1674","1675"}),//桁架北区码垛站台
|
|
|
//new RouteInfo("RGV2", new string[] { }),//南区桁架
|
|
@@ -422,19 +468,33 @@ namespace WCS.WorkEngineering
|
|
|
//Robot码垛工位
|
|
|
new RouteInfo("Robot1", new string[] { "1666" }),
|
|
|
new RouteInfo("Robot1", new string[] { "1661" }),
|
|
|
+ new RouteInfo("Robot2", new string[] { "1676" }),
|
|
|
+ new RouteInfo("Robot2", new string[] { "1681" }),
|
|
|
|
|
|
#endregion 出库路径
|
|
|
|
|
|
#region 入库
|
|
|
|
|
|
//一楼人工入库口-巷道
|
|
|
- new RouteInfo("2532", new string[] { "TY1" }),
|
|
|
+ new RouteInfo("2532", new string[] { "TY1" }), //分拣库一
|
|
|
new RouteInfo("2732", new string[] { "TY2" }),
|
|
|
+ new RouteInfo("2932", new string[] { "TY3" }), //分拣库二
|
|
|
+ new RouteInfo("3132", new string[] { "TY4" }),
|
|
|
+ //new RouteInfo("2532", new string[] { "TY5" }), //分拣库三
|
|
|
+ //new RouteInfo("2732", new string[] { "TY6" }),
|
|
|
//一楼叠盘机(堆垛机入口)--巷道
|
|
|
- new RouteInfo("2527", new string[] { "TY1" }),
|
|
|
+ new RouteInfo("2527", new string[] { "TY1" }), //分拣库一
|
|
|
new RouteInfo("2528", new string[] { "TY1" }),
|
|
|
new RouteInfo("2727", new string[] { "TY2" }),
|
|
|
new RouteInfo("2728", new string[] { "TY2" }),
|
|
|
+ //new RouteInfo("2527", new string[] { "TY3" }), //分拣库二
|
|
|
+ //new RouteInfo("2528", new string[] { "TY3" }),
|
|
|
+ //new RouteInfo("2727", new string[] { "TY4" }),
|
|
|
+ //new RouteInfo("2728", new string[] { "TY4" }),
|
|
|
+ //new RouteInfo("2527", new string[] { "TY5" }), //分拣库三
|
|
|
+ //new RouteInfo("2528", new string[] { "TY5" }),
|
|
|
+ //new RouteInfo("2727", new string[] { "TY6" }),
|
|
|
+ //new RouteInfo("2728", new string[] { "TY6" }),
|
|
|
//一楼AGV入口
|
|
|
//主线入口--预分配点
|
|
|
new RouteInfo("1", new string[] { "18" }),
|
|
@@ -503,14 +563,17 @@ namespace WCS.WorkEngineering
|
|
|
new RouteInfo("1673", new string[] { "RGV1" }),
|
|
|
new RouteInfo("1674", new string[] { "RGV1" }),
|
|
|
new RouteInfo("1675", new string[] { "RGV1" }),
|
|
|
- //new RouteInfo("1675", new string[] { "RGV2" }),
|
|
|
+ new RouteInfo("1676", new string[] { "RGV2" }),
|
|
|
+ new RouteInfo("1681", new string[] { "RGV2" }),
|
|
|
//RGV--RGV放货点
|
|
|
new RouteInfo("RGV1", new string[] { "1604" }),
|
|
|
+ new RouteInfo("RGV2", new string[] { "1614" }),
|
|
|
//RGV放货点--堆垛机取货口
|
|
|
new RouteInfo("1604", new string[] { "1603" }),//北侧
|
|
|
+ new RouteInfo("1614", new string[] { "1613" }),//北侧
|
|
|
|
|
|
//二楼堆垛机入库--巷道
|
|
|
- new RouteInfo("1603", new string[] { "TY1","TY2" }),//北侧
|
|
|
+ new RouteInfo("1603", new string[] { "TY1" }),//北侧
|
|
|
//new RouteInfo("1603", new string[] { "TY2" }),//北侧
|
|
|
new RouteInfo("1613", new string[] { "TY2" }),//南侧
|
|
|
|
|
@@ -553,9 +616,26 @@ namespace WCS.WorkEngineering
|
|
|
new("424",new List<string> {"424","425"}),
|
|
|
new("433",new List<string> {"433","434"}),
|
|
|
new("442",new List<string> {"442","443"}),
|
|
|
- //new("624",new List<string> {"624","625"}),
|
|
|
- //new("633",new List<string> {"633","634"}),
|
|
|
- new("642",new List<string> {"642","643"})
|
|
|
+ //环形库一南侧侧机械手取货位
|
|
|
+ new("642",new List<string> {"642","643"}),
|
|
|
+ new("633",new List<string> {"633","634"}),
|
|
|
+ new("624",new List<string> {"624","625"}),
|
|
|
+ //环形库二北侧机械手取货位
|
|
|
+ new("824",new List<string> {"824","825"}),
|
|
|
+ new("833",new List<string> {"833","834"}),
|
|
|
+ new("842",new List<string> {"842","843"}),
|
|
|
+ //环形库二南侧侧机械手取货位
|
|
|
+ new("1042",new List<string> {"1042","1043"}),
|
|
|
+ new("1033",new List<string> {"1033","1034"}),
|
|
|
+ new("1024",new List<string> {"1024","1025"}),
|
|
|
+ //环形库三北侧机械手取货位
|
|
|
+ new("1224",new List<string> {"1224","1225"}),
|
|
|
+ new("1233",new List<string> {"1233","1234"}),
|
|
|
+ new("1242",new List<string> {"1242","1243"}),
|
|
|
+ //环形库三南侧侧机械手取货位
|
|
|
+ new("1442",new List<string> {"1442","1443"}),
|
|
|
+ new("1433",new List<string> {"1433","1434"}),
|
|
|
+ new("1424",new List<string> {"1424","1425"}),
|
|
|
};
|
|
|
foreach (var item in tuples2)
|
|
|
{
|
|
@@ -580,12 +660,12 @@ namespace WCS.WorkEngineering
|
|
|
{ DeviceFlags.满轮主线第一次扫码,new List<string>() { "1"} },
|
|
|
{ DeviceFlags.环形库分流点,new List<string>(){ "418", "618" } },
|
|
|
{ DeviceFlags.桁架分流点,new List<string>() { "455" } },
|
|
|
- { DeviceFlags.桁架缓存放行点, new List<string>(){ "466", "480", "494", "508","522","536" } },
|
|
|
- { DeviceFlags.桁架取货点, new List<string>(){ "461", "475", "489", "503","517","531" } },
|
|
|
- { DeviceFlags.拆盘机09, new List<string>(){ "1606" } },
|
|
|
- { DeviceFlags.拆盘机非09, new List<string>(){ "1602" } },
|
|
|
- { DeviceFlags.桁架码垛位, new List<string>(){ "1670", "1671", "1672", "1673", "1674", "1675","1664","1662","1665" } },
|
|
|
- { DeviceFlags.环形库码垛工位, new List<string>(){ "1666", "1661" } },
|
|
|
+ { DeviceFlags.桁架缓存放行点, new List<string>(){ "466", "480", "494", "508","522","536","666","680","694","708","736","750" } },
|
|
|
+ { DeviceFlags.桁架取货点, new List<string>(){ "461", "475", "489", "503","517","531", "661", "675", "689", "703", "717", "731" } },
|
|
|
+ { DeviceFlags.拆盘机09, new List<string>(){ "1606","1616" } },
|
|
|
+ { DeviceFlags.拆盘机非09, new List<string>(){ "1602","1612" } },
|
|
|
+ { DeviceFlags.桁架码垛位, new List<string>(){ "1670", "1671", "1672", "1673", "1674", "1675","1664","1662","1663","1665","1677","1678","1679","1680","1685","1686","1687","1688","1689","1690" } },
|
|
|
+ { DeviceFlags.环形库码垛工位, new List<string>(){ "1666", "1661","1676","1681" } },
|
|
|
{ DeviceFlags.AGV取货站台口, new List<string>(){ "2533", "2534", "2734" } },
|
|
|
{ DeviceFlags.Robot, new List<string>(){ "Robot1", "Robot2" } },
|
|
|
};
|