123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- using Aitex.Core.RT.DataCenter;
- using Aitex.Core.RT.Event;
- using Aitex.Core.RT.SCCore;
- using Aitex.Core.Util;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Aitex.Core.RT.Device;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBase;
- namespace Aitex.Sorter.RT.SorterCommonFrame.Modules
- {
- public class RobotOffsetConfig : Singleton<RobotOffsetConfig>
- {
- private string[] scPickOffsets = new string[]
- {
- "CarrierInfo.Get.Offset0",
- "CarrierInfo.Get.Offset1",
- "CarrierInfo.Get.Offset2",
- "CarrierInfo.Get.Offset3",
- "CarrierInfo.Get.Offset4",
- "CarrierInfo.Get.Offset5",
- "CarrierInfo.Get.Offset6",
- "CarrierInfo.Get.Offset7",
- "CarrierInfo.Get.Offset8",
- "CarrierInfo.Get.Offset9",
- "CarrierInfo.Get.Offset10",
- "CarrierInfo.Get.Offset11",
- "CarrierInfo.Get.Offset12",
- "CarrierInfo.Get.Offset13",
- "CarrierInfo.Get.Offset14",
- "CarrierInfo.Get.Offset15",
- "CarrierInfo.Get.Offset16",
- "CarrierInfo.Get.Offset17",
- "CarrierInfo.Get.Offset18",
- "CarrierInfo.Get.Offset19",
- "CarrierInfo.Get.Offset20",
- "CarrierInfo.Get.Offset21",
- "CarrierInfo.Get.Offset22",
- "CarrierInfo.Get.Offset23",
- "CarrierInfo.Get.Offset24",
- "CarrierInfo.Get.Offset25",
- "CarrierInfo.Get.Offset26",
- "CarrierInfo.Get.Offset27",
- "CarrierInfo.Get.Offset28",
- "CarrierInfo.Get.Offset29",
- "CarrierInfo.Get.Offset30",
- "CarrierInfo.Get.Offset31",
- "CarrierInfo.Get.Offset32",
- "CarrierInfo.Get.Offset33",
- "CarrierInfo.Get.Offset34",
- "CarrierInfo.Get.Offset35",
- "CarrierInfo.Get.Offset36",
- "CarrierInfo.Get.Offset37",
- "CarrierInfo.Get.Offset38",
- "CarrierInfo.Get.Offset39",
- "CarrierInfo.Get.Offset40",
- "CarrierInfo.Get.Offset41",
- "CarrierInfo.Get.Offset42",
- "CarrierInfo.Get.Offset43",
- "CarrierInfo.Get.Offset44",
- "CarrierInfo.Get.Offset45",
- "CarrierInfo.Get.Offset46",
- "CarrierInfo.Get.Offset47",
- "CarrierInfo.Get.Offset48",
- "CarrierInfo.Get.Offset49",
- "CarrierInfo.Get.Offset50",
- "CarrierInfo.Get.Offset51",
- "CarrierInfo.Get.Offset52",
- "CarrierInfo.Get.Offset53",
- "CarrierInfo.Get.Offset54",
- "CarrierInfo.Get.Offset55",
- "CarrierInfo.Get.Offset56",
- "CarrierInfo.Get.Offset57",
- "CarrierInfo.Get.Offset58",
- "CarrierInfo.Get.Offset59",
- "CarrierInfo.Get.Offset60",
- "CarrierInfo.Get.Offset61",
- "CarrierInfo.Get.Offset62",
- "CarrierInfo.Get.Offset63",
- "CarrierInfo.Get.Offset64",
- "CarrierInfo.Get.Offset65",
- "CarrierInfo.Get.Offset66",
- "CarrierInfo.Get.Offset67",
- "CarrierInfo.Get.Offset68",
- "CarrierInfo.Get.Offset69",
- "CarrierInfo.Get.Offset70",
- "CarrierInfo.Get.Offset71",
- "CarrierInfo.Get.Offset72",
- "CarrierInfo.Get.Offset73",
- "CarrierInfo.Get.Offset74",
- "CarrierInfo.Get.Offset75",
- "CarrierInfo.Get.Offset76",
- "CarrierInfo.Get.Offset77",
- "CarrierInfo.Get.Offset78",
- "CarrierInfo.Get.Offset79",
- "CarrierInfo.Get.Offset80",
- "CarrierInfo.Get.Offset81",
- "CarrierInfo.Get.Offset82",
- "CarrierInfo.Get.Offset83",
- "CarrierInfo.Get.Offset84",
- "CarrierInfo.Get.Offset85",
- "CarrierInfo.Get.Offset86",
- "CarrierInfo.Get.Offset87",
- "CarrierInfo.Get.Offset88",
- "CarrierInfo.Get.Offset89",
- "CarrierInfo.Get.Offset90",
- "CarrierInfo.Get.Offset91",
- "CarrierInfo.Get.Offset92",
- "CarrierInfo.Get.Offset93",
- "CarrierInfo.Get.Offset94",
- "CarrierInfo.Get.Offset95",
- "CarrierInfo.Get.Offset96",
- "CarrierInfo.Get.Offset97",
- "CarrierInfo.Get.Offset98",
- "CarrierInfo.Get.Offset99",
- "CarrierInfo.Get.Offset100",
- };
- private string[] scPlaceOffsets = new string[]
- {
- "CarrierInfo.Put.Offset0",
- "CarrierInfo.Put.Offset1",
- "CarrierInfo.Put.Offset2",
- "CarrierInfo.Put.Offset3",
- "CarrierInfo.Put.Offset4",
- "CarrierInfo.Put.Offset5",
- "CarrierInfo.Put.Offset6",
- "CarrierInfo.Put.Offset7",
- "CarrierInfo.Put.Offset8",
- "CarrierInfo.Put.Offset9",
- "CarrierInfo.Put.Offset10",
- "CarrierInfo.Put.Offset11",
- "CarrierInfo.Put.Offset12",
- "CarrierInfo.Put.Offset13",
- "CarrierInfo.Put.Offset14",
- "CarrierInfo.Put.Offset15",
- "CarrierInfo.Put.Offset16",
- "CarrierInfo.Put.Offset17",
- "CarrierInfo.Put.Offset18",
- "CarrierInfo.Put.Offset19",
- "CarrierInfo.Put.Offset20",
- "CarrierInfo.Put.Offset21",
- "CarrierInfo.Put.Offset22",
- "CarrierInfo.Put.Offset23",
- "CarrierInfo.Put.Offset24",
- "CarrierInfo.Put.Offset25",
- "CarrierInfo.Put.Offset26",
- "CarrierInfo.Put.Offset27",
- "CarrierInfo.Put.Offset28",
- "CarrierInfo.Put.Offset29",
- "CarrierInfo.Put.Offset30",
- "CarrierInfo.Put.Offset31",
- "CarrierInfo.Put.Offset32",
- "CarrierInfo.Put.Offset33",
- "CarrierInfo.Put.Offset34",
- "CarrierInfo.Put.Offset35",
- "CarrierInfo.Put.Offset36",
- "CarrierInfo.Put.Offset37",
- "CarrierInfo.Put.Offset38",
- "CarrierInfo.Put.Offset39",
- "CarrierInfo.Put.Offset40",
- "CarrierInfo.Put.Offset41",
- "CarrierInfo.Put.Offset42",
- "CarrierInfo.Put.Offset43",
- "CarrierInfo.Put.Offset44",
- "CarrierInfo.Put.Offset45",
- "CarrierInfo.Put.Offset46",
- "CarrierInfo.Put.Offset47",
- "CarrierInfo.Put.Offset48",
- "CarrierInfo.Put.Offset49",
- "CarrierInfo.Put.Offset50",
- "CarrierInfo.Put.Offset51",
- "CarrierInfo.Put.Offset52",
- "CarrierInfo.Put.Offset53",
- "CarrierInfo.Put.Offset54",
- "CarrierInfo.Put.Offset55",
- "CarrierInfo.Put.Offset56",
- "CarrierInfo.Put.Offset57",
- "CarrierInfo.Put.Offset58",
- "CarrierInfo.Put.Offset59",
- "CarrierInfo.Put.Offset60",
- "CarrierInfo.Put.Offset61",
- "CarrierInfo.Put.Offset62",
- "CarrierInfo.Put.Offset63",
- "CarrierInfo.Put.Offset64",
- "CarrierInfo.Put.Offset65",
- "CarrierInfo.Put.Offset66",
- "CarrierInfo.Put.Offset67",
- "CarrierInfo.Put.Offset68",
- "CarrierInfo.Put.Offset69",
- "CarrierInfo.Put.Offset70",
- "CarrierInfo.Put.Offset71",
- "CarrierInfo.Put.Offset72",
- "CarrierInfo.Put.Offset73",
- "CarrierInfo.Put.Offset74",
- "CarrierInfo.Put.Offset75",
- "CarrierInfo.Put.Offset76",
- "CarrierInfo.Put.Offset77",
- "CarrierInfo.Put.Offset78",
- "CarrierInfo.Put.Offset79",
- "CarrierInfo.Put.Offset80",
- "CarrierInfo.Put.Offset81",
- "CarrierInfo.Put.Offset82",
- "CarrierInfo.Put.Offset83",
- "CarrierInfo.Put.Offset84",
- "CarrierInfo.Put.Offset85",
- "CarrierInfo.Put.Offset86",
- "CarrierInfo.Put.Offset87",
- "CarrierInfo.Put.Offset88",
- "CarrierInfo.Put.Offset89",
- "CarrierInfo.Put.Offset90",
- "CarrierInfo.Put.Offset91",
- "CarrierInfo.Put.Offset92",
- "CarrierInfo.Put.Offset93",
- "CarrierInfo.Put.Offset94",
- "CarrierInfo.Put.Offset95",
- "CarrierInfo.Put.Offset96",
- "CarrierInfo.Put.Offset97",
- "CarrierInfo.Put.Offset98",
- "CarrierInfo.Put.Offset99",
- "CarrierInfo.Put.Offset100",
- };
- private Dictionary<string, Tuple<int, int, int>> _offsets = new Dictionary<string, Tuple<int, int, int>>();
- public bool GetPickOffset(ModuleName chamber, ref int x, ref int y, ref int z, out string reason)
- {
- x = 0;
- y = 0;
- z = 0;
- reason = "";
- if (chamber == ModuleName.Aligner || chamber == ModuleName.TurnOverStation)
- return true;
- if (!ModuleHelper.IsLoadPort(chamber))
- return true;
- var lp = DEVICE.GetDevice<LoadPortBaseDevice>(chamber.ToString());
- if (lp == null) return true;
- int offsetindex = lp.InfoPadCarrierIndex;
- if (offsetindex < 0 || offsetindex >= scPlaceOffsets.Length) offsetindex = 0;
- string scNameType = scPickOffsets[offsetindex];
-
- if(SC.ContainsItem($"CarrierInfo.Carrier{offsetindex}.GetOffset"))
- {
- scNameType = $"CarrierInfo.Carrier{offsetindex}.GetOffset";
- }
- if (!SC.ContainsItem(scNameType))
- {
- reason = $"Not found {chamber} foup type system config item";
- return false;
- }
- string type = SC.GetStringValue(scNameType);
- if (string.IsNullOrEmpty(type.Trim()))
- {
- reason = $"{chamber} foup type system config can not be empty";
- return false;
- }
- string[] offs = type.Split(',');
- if (offs.Length < 3) return false;
- int value;
- if (!int.TryParse(offs[0], out value)) return false;
- x = value;
- if (!int.TryParse(offs[1], out value)) return false;
- y = value;
- if (!int.TryParse(offs[2], out value)) return false;
- z = value;
- return true;
- }
- public bool GetPlaceOffset(ModuleName chamber, ref int x, ref int y, ref int z, out string reason)
- {
- x = 0;
- y = 0;
- z = 0;
- reason = "";
- if (chamber == ModuleName.Aligner || chamber == ModuleName.TurnOverStation)
- return true;
- var lp = DEVICE.GetDevice<LoadPortBaseDevice>(chamber.ToString());
- if (lp == null) return true;
- int offsetindex = lp.InfoPadCarrierIndex;
- if (offsetindex < 0 || offsetindex>= scPlaceOffsets.Length) offsetindex = 0;
-
- string scNameType = scPlaceOffsets[offsetindex];
- if(SC.ContainsItem($"CarrierInfo.Carrier{offsetindex}.PutOffset"))
- {
- scNameType = $"CarrierInfo.Carrier{offsetindex}.PutOffset";
- }
- if (!SC.ContainsItem(scNameType))
- {
- reason = $"Not found {chamber} foup type system config item";
- return false;
- }
- string type = SC.GetStringValue(scNameType);
- if (string.IsNullOrEmpty(type.Trim()))
- {
- reason = $"{chamber} foup type system config can not be empty";
- return false;
- }
- string[] offs = type.Split(',');
- if (offs.Length < 3) return false;
- int value;
- if (!int.TryParse(offs[0], out value)) return false;
- x = value;
- if (!int.TryParse(offs[1], out value)) return false;
- y = value;
- if (!int.TryParse(offs[2], out value)) return false;
- z = value;
- return true;
- }
- }
- }
|