| | |
| | | using Microsoft.AspNetCore.Hosting; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using Quartz; |
| | | using System; |
| | | using System.Collections; |
| | |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Diagnostics.Eventing.Reader; |
| | | using System.Linq; |
| | | using System.Net; |
| | | using System.Reflection.Metadata; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Text; |
| | |
| | | { |
| | | GetStackerObject getStackerObject = new GetStackerObject(speStackerCrane); |
| | | |
| | | //读å设å¤å®æä¿¡æ¯ |
| | | if (getStackerObject.StaclerkJobJobStatusValue == RgvJobCraneStatus.Completed && getStackerObject.CurrentRgvtaskid != 0) |
| | | if (getStackerObject.RGVInitializationValue == RGVInitialize.Initialized) |
| | | { |
| | | _taskService.UpdateTaskStatus(getStackerObject.CurrentRgvtaskid,2); |
| | | } |
| | | |
| | | |
| | | if (getStackerObject.RgvCraneAutoStatusValue == RgvCraneAutoStatus.Automatic && |
| | | getStackerObject.StaclerkJobJobStatusValue == RgvJobCraneStatus.Ready && getStackerObject.RgvCraneWorkStatusValue == RGVStepprocess.NoAction) |
| | | { |
| | | |
| | | //ä¸åRGVä»»å¡ä¹åï¼å
读åä¸ä¸å®å
¨é¨ç¶æ |
| | | |
| | | //æ¥æ¾RGVè¿è¡ä¸åä»»å¡ |
| | | Dt_Task task = GetTask(speStackerCrane.DeviceCode); |
| | | if (task != null) |
| | | //读å设å¤å®æä¿¡æ¯ |
| | | if (getStackerObject.StaclerkJobJobStatusValue == RGV_Rgvtaskstutas.Completed || getStackerObject.StaclerkJobJobStatusValue == RGV_Rgvtaskstutas.AbnormalCompletion) |
| | | { |
| | | //è°ååå
¥RGVå°è½¦ä»»å¡ |
| | | RgvCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | bool sendFlag = getStackerObject.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | //ä¿®æ¹ä»»å¡ç¶æ |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | CommonStackerCrane_AGVTaskCompletedEventHandler(getStackerObject, speStackerCrane); |
| | | } |
| | | else |
| | | { |
| | | int HCJGoodsplatform = 1170; //å®ä¹çæ¾è´§ç«å° |
| | | |
| | | //夿æ¯è½¦æ¯å¦éè¦è¿è¡ç§»å¨ |
| | | AGVStation GdZiche = _agvStationService.Corridorequipment(speStackerCrane.DeviceCode); |
| | | if(GdZiche.Station_Area == 1) |
| | | if (getStackerObject.RgvCraneAutoStatusValue == RgvCraneAutoStatus.Automatic && |
| | | getStackerObject.StaclerkJobJobStatusValue == RGV_Rgvtaskstutas.Ready && getStackerObject.RgvCraneWorkStatusValue == RGVStepprocess.NoAction) |
| | | { |
| | | //æ¥æ¾RGVè¿è¡ä¸åä»»å¡ |
| | | Dt_Task task = GetTask(speStackerCrane.DeviceCode, getStackerObject); |
| | | if (task != null) |
| | | { |
| | | switch (getStackerObject.RGVCurrentlocation) |
| | | //è°ååå
¥RGVå°è½¦ä»»å¡ |
| | | RgvCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | case int Whcjaddress when Whcjaddress == GdZiche.MotherCarDeviceCode: //å¨ç¬¬ä¸ä¸ªæ¯è½¦ä¸ |
| | | RGVMovetask(HCJGoodsplatform, GdZiche.ChildPosiDeviceCode); |
| | | break; |
| | | case int Waddress when Waddress == GdZiche.MotherCardeputy: //å¨ç¬¬äºä¸ªæ¯è½¦ä¸ |
| | | OutNMotherCar(GdZiche.MotherCarDeviceCode); |
| | | break; |
| | | case int HCJaddress when HCJaddress == GdZiche.HCJStorageaddress: //å¨HCJç«å°ä¸ |
| | | OutHCJMotherCar(GdZiche); |
| | | break; |
| | | default: return null; |
| | | bool sendFlag = getStackerObject.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | //ä¿®æ¹ä»»å¡ç¶æ |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | switch (getStackerObject.RGVCurrentlocation) |
| | | if (GetDeviceAddress.OutbounMotherChildCartbool(speStackerCrane.DeviceCode)) |
| | | { |
| | | case int Whcjaddress when Whcjaddress == GdZiche.MotherCarDeviceCode: //å¨ç¬¬ä¸ä¸ªæ¯è½¦ä¸ï¼éè¦å¤æå¤ä¾§å车æ¯å¦å¨HCJä¸ |
| | | OutinnerSideNMotherCar(GdZiche); |
| | | break; |
| | | case int Waddress when Waddress == GdZiche.MotherCardeputy: //å¨ç¬¬äºä¸ªæ¯è½¦ä¸ï¼éè¦å¤æå车ä¸å¤ä¾§æ¯è½¦æ¯å¦å¨è¿éä¸ |
| | | OutNMotherCar(GdZiche.MotherCarDeviceCode); |
| | | break; |
| | | default: return null; |
| | | //彿²¡ä»»å¡çæ¶åï¼åè¿è¡ç§»å¨ |
| | | Returnposition(speStackerCrane.DeviceCode, getStackerObject.RGVCurrentlocation, (int)getStackerObject.RgvCraneStatusValue); |
| | | |
| | | } |
| | | else if (GetDeviceAddress.OutbounMotherChildCartbool2(speStackerCrane.DeviceCode)) |
| | | { |
| | | InReturnposition(speStackerCrane.DeviceCode, getStackerObject.RGVCurrentlocation, (int)getStackerObject.RgvCraneStatusValue); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | private Dt_Task? GetTask(string DeviceCode) |
| | | #region ä»»å¡å®æ |
| | | private void CommonStackerCrane_AGVTaskCompletedEventHandler(GetStackerObject getStackerObject, SpeStackerCrane speStackerCrane) |
| | | { |
| | | Dt_Task task = _taskService.QueryStackerCraneTask(DeviceCode); |
| | | if (task == null) return null; |
| | | |
| | | return task.TaskType switch |
| | | if (getStackerObject.StaclerkJobJobStatusValue == RGV_Rgvtaskstutas.Completed && getStackerObject.CurrentRgvtaskid == 30001) |
| | | { |
| | | (int)TaskInboundTypeEnum.Inbound => HandleInboundTask(task), |
| | | (int)TaskOutboundTypeEnum.Outbound => HandleOutboundTask(task), |
| | | speStackerCrane.SetValue(RGV_taskcoDBName.RGV_taskcomplete, 1); |
| | | speStackerCrane.SetValue(RGV_taskcoDBName.RGV_taskcomplete, 0); |
| | | } |
| | | else if (getStackerObject.StaclerkJobJobStatusValue == RGV_Rgvtaskstutas.Completed && getStackerObject.CurrentRgvtaskid != 0 && getStackerObject.CurrentRgvtaskid != 30001) |
| | | { |
| | | _taskService.UpdateTaskStatus(getStackerObject.CurrentRgvtaskid); //æ£å¸¸ä»»å¡å®æ |
| | | speStackerCrane.SetValue(RGV_taskcoDBName.RGV_taskcomplete, 1); |
| | | speStackerCrane.SetValue(RGV_taskcoDBName.RGV_taskcomplete, 0); |
| | | } |
| | | else if (getStackerObject.StaclerkJobJobStatusValue == RGV_Rgvtaskstutas.AbnormalCompletion && getStackerObject.CurrentRgvtaskid != 0 && getStackerObject.CurrentRgvtaskid != 30001) |
| | | { |
| | | //åå
¥å¼å¸¸å®ææ¥è¦ä¿¡æ¯ |
| | | speStackerCrane.Communicator.Write<short>("DB101.36", 1); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | private Dt_Task? GetTask(string DeviceCode, GetStackerObject getStackerObject) |
| | | { |
| | | // æ ¹æ®è®¾å¤åç§°ï¼è·åå°è®¾å¤ç¸å
³æ°æ® |
| | | AGVStation RGVTaskdevice = _agvStationService.Corridorequipment(DeviceCode); //æ ¹æ®è®¾å¤è·åå°å
容 |
| | | return RGVTaskdevice.Station_tasktype switch |
| | | { |
| | | (int)RGVTasktype.Inbound => HandleInboundTask(RGVTaskdevice, getStackerObject), |
| | | (int)RGVTasktype.Outbound => OutboundEquipmentTask(RGVTaskdevice, getStackerObject), //åºåº |
| | | _ => null |
| | | }; |
| | | } |
| | | |
| | | private Dt_Task? HandleInboundTask(Dt_Task task) |
| | | { |
| | | return task.TaskState switch |
| | | { |
| | | (int)TaskInStatusEnum.RGV_InNew => task, |
| | | (int)TaskInStatusEnum.RGV_InPickupFinish => HandlePickupFinish(task), |
| | | (int)TaskInStatusEnum.RGV_InReleaseFinish => HandInneRouterSides(task), |
| | | (int)TaskInStatusEnum.RGV_InZicheFinish => HandleZicheFinish(task), |
| | | (int)TaskInStatusEnum.RGV_InZicheReleaseFinish => task, |
| | | (int)TaskInStatusEnum.RGV_InZichemoveFinish => HandleZicheMoveFinish(task), |
| | | _ => null |
| | | }; |
| | | } |
| | | |
| | | private Dt_Task? HandleOutboundTask(Dt_Task task) |
| | | { |
| | | // åºåºä»»å¡çç¶æå¤æç¸å¯¹ç®åï¼å¯ä»¥ç´æ¥è¿å |
| | | int[] validStates = |
| | | { |
| | | (int)TaskOutStatusEnum.OutNew, |
| | | (int)TaskOutStatusEnum.RGV_OutMothercarFinish, |
| | | (int)TaskOutStatusEnum.RGV_OutZicheFinish, |
| | | (int)TaskOutStatusEnum.RGV_OutZicheReleaseFinish, |
| | | (int)TaskOutStatusEnum.RGV_OutPickupFinish |
| | | }; |
| | | |
| | | return validStates.Contains(task.TaskState) ? task : null; |
| | | } |
| | | |
| | | #region å
¥åºæ¹æ³ |
| | | |
| | | #region å
¥åºå£åè´§å®æåï¼è¿è¡æ¾è´§ï¼HCJ,å¼å¸¸åºåºå£ï¼ |
| | | private Dt_Task? HandlePickupFinish(Dt_Task task) |
| | | private Dt_Task? HandleInboundTask(AGVStation RGVTaskdevice, GetStackerObject getStackerObject) |
| | | { |
| | | try |
| | | return (RGVTaskdevice.Station_material, getStackerObject.RgvCraneStatusValue) switch |
| | | { |
| | | //è·åéè¦åºåæ¯å¦å»å
¥åºä¸å»ä¸åæ ¼è½½è´§å°ä»»å¡ |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "HCJ2000"); |
| | | CommonStackerCrane Commonstacker = (CommonStackerCrane)device; |
| | | DeviceProDTO? deviceProDTO = GetDeviceAddress.GetDeviceProDTO(Commonstacker, task.NextAddress, "HCJ_GoodsStatus"); |
| | | int HCJGStatus = GetDeviceAddress.GetLine(Commonstacker, deviceProDTO.DeviceProAddress); |
| | | if (HCJGStatus == 0) //为æ è´§ |
| | | ((int)RGVEquipment.InRGVForklift, RgvEquipmentStatus.NoCargo) //å车å¼RGVæ è´§,ä¸ååè´§ä»»å¡ |
| | | => _taskService.PickupWarehouse(RGVTaskdevice.ChildPosiDeviceCode), |
| | | |
| | | ((int)RGVEquipment.InRGVForklift, RgvEquipmentStatus.HasCargo) |
| | | => ForkliftUnloading(RGVTaskdevice), //å车å¼è¿è¡æ¾è´§ï¼å·²å®æï¼ |
| | | |
| | | ((int)RGVEquipment.Corridorcar, RgvEquipmentStatus.NoCargo) |
| | | => ZichePickUpAisle(RGVTaskdevice, getStackerObject), //è¿éå车è¿è¡åè´§ï¼å·²å®æï¼ |
| | | |
| | | ((int)RGVEquipment.Corridorcar, RgvEquipmentStatus.HasCargo) |
| | | => GoodsPlacedCorridor(RGVTaskdevice), //å车æ¾è´§ä»»å¡(已宿) |
| | | |
| | | ((int)RGVEquipment.Mothertrailer, RgvEquipmentStatus.HasCargo) |
| | | => MotherVehicleMovement(RGVTaskdevice), //ï¼å·²å®æï¼ |
| | | |
| | | _ => null |
| | | }; |
| | | |
| | | } |
| | | |
| | | #region å车å¼è¿è¡æ¾è´§ï¼å·²å®æï¼ |
| | | public Dt_Task? ForkliftUnloading(AGVStation RGVTaskdevice) |
| | | { |
| | | Dt_Task dt_Task = _taskService.GetInkouFinhuoTask(RGVTaskdevice.ChildPosiDeviceCode); |
| | | |
| | | //夿HCJæ¯å¦æè´§ |
| | | if (GetDeviceAddress.HCJIsstock(dt_Task.NextAddress)) |
| | | { |
| | | //夿å车æ¯å¦å¨æ¥é©³å°ä¸ |
| | | var zichestation = _agvStationService.OutGetZicheDeepHCJ(1061); |
| | | int ziche = GetDeviceAddress.GetEquipmentlocation(zichestation.ChildPosiDeviceCode); |
| | | if ((ziche == zichestation.WaitmomentOne || ziche == zichestation.WaitmomentTwo || ziche == zichestation.MotherCarDeviceCode || ziche == zichestation.MotherCardeputy || ziche == zichestation.HCJStorageaddress) && ziche != 1021) |
| | | { |
| | | return task; |
| | | //è·åè¿ä¸ªæ¥é©³å°æ¯å¦æåè´§ä»»å¡ |
| | | Dt_Task zitask = _taskService.ViceChariotPickupTask2(RGVTaskdevice.ChildPosiDeviceCode); |
| | | if (zitask == null) |
| | | { |
| | | |
| | | return dt_Task; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //è®°å½å¼å¸¸æ
åµ |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"夿HCJç«å°æ¯å¦æè´§ä¿¡æ¯åºéï¼åºéä¿¡æ¯ï¼{ex.Message}"); |
| | | throw; |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region å
¥åºå£æ¾è´§å®æåï¼è¿è¡åè´§å
容 |
| | | private Dt_Task? HandInneRouterSides(Dt_Task task) |
| | | #region è¿éå车è¿è¡åè´§ï¼å·²å®æï¼ |
| | | public Dt_Task? ZichePickUpAisle(AGVStation RGVTaskdevice, GetStackerObject getStackerObject) |
| | | { |
| | | // æ ¹æ®è®¾å¤åç§°ï¼è·åå°è®¾å¤ç¸å
³æ°æ® |
| | | AGVStation currentStation = _agvStationService.Corridorequipment(task.Roadway); |
| | | //è·åå车åè´§ä»»å¡ |
| | | Dt_Task dt_Task = _taskService.ViceChariotPickupTask(RGVTaskdevice.ChildPosiDeviceCode); |
| | | if (dt_Task == null) return null; |
| | | if (RGVTaskdevice.Station_Area == 6) //å¤ä¾§è¿åè´§ï¼åéè¦å¤æå车å½åä½ç½® |
| | | { |
| | | if (getStackerObject.RGVCurrentlocation == RGVTaskdevice.WaitmomentOne) |
| | | { |
| | | //è¿éè¦å¤æå
¥åºå£å车æ¯å¦æ¶ååè½¦äº |
| | | |
| | | // è·åå车ä½ç½® |
| | | int zicheAddress = GetDeviceAddress.GetEquipmentlocation(currentStation.ChildPosiDeviceCode); |
| | | if (currentStation.Station_Area == 1) |
| | | { |
| | | // æ ¹æ®å车ä½ç½®å¤çä¸åæ
åµ |
| | | switch (zicheAddress) |
| | | //å¨çå¾
ç¹1ï¼åéè¦å¤æ1å·æ¯è½¦å¨å åæºåè´§å£ |
| | | var mu1rgv = _agvStationService.GetMothervehicle(RGVTaskdevice.MotherCarDeviceCode); |
| | | int mu1 = GetDeviceAddress.GetEquipmentlocation(mu1rgv.ChildPosiDeviceCode); //æ¤æ¶çRGVåºè¯¥æ è´§ |
| | | bool ywh = GetDeviceAddress.Mucheywhaddres(mu1rgv.ChildPosiDeviceCode); |
| | | if (mu1 == mu1rgv.Motherinlaw || (ywh && mu1 == mu1rgv.ZicheMotherinlaw)) //å¨å åæºåè´§å£ |
| | | { |
| | | //=============================æ°å¢å½å»åè´§æ¶è¿è¡å¤æå··éï¼çè½ä¸è½æåæåºæ¯è½¦ |
| | | if (int.Parse(dt_Task.TargetAddress) == (int)StorageAisleEnum.LaneTwo) |
| | | { |
| | | int taraddress = int.Parse(dt_Task.TargetAddress); |
| | | var InMotherVehicle = _agvStationService.ObtainCcordingTunnel(taraddress); //è·åå°éè¦å
¥åºçæ¯è½¦(2å··é) |
| | | int mu2 = GetDeviceAddress.GetEquipmentlocation(InMotherVehicle.ChildPosiDeviceCode); //æ¤æ¶çRGVåºè¯¥æ è´§ |
| | | if (GetDeviceAddress.Mucheywhaddres(InMotherVehicle.ChildPosiDeviceCode)) //夿æ è´§ |
| | | { |
| | | if (mu2 == InMotherVehicle.ZicheMotherinlaw) |
| | | { |
| | | return dt_Task; |
| | | } |
| | | else if (mu2 == InMotherVehicle.Motherinlaw) |
| | | { |
| | | RGVMovetask(InMotherVehicle.ZicheMotherinlaw, InMotherVehicle.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | } |
| | | //=============================æ°å¢å½å»åè´§æ¶è¿è¡å¤æå··éï¼çè½ä¸è½æåæåºæ¯è½¦ |
| | | return dt_Task; |
| | | } |
| | | //廿åå ï¼å¨è¯¥åºå车å»åè´§ï¼å¯ç´æ¥ç©¿è¿æ è´§æ¯è½¦ï¼æè½¦ |
| | | /*else |
| | | { |
| | | Dt_Task task = _taskService.MothermachinemovementTask2(RGVTaskdevice.ChildPosiDeviceCode); |
| | | if (task == null) |
| | | { |
| | | RGVMovetask(mu1rgv.Motherinlaw, mu1rgv.ChildPosiDeviceCode); |
| | | } |
| | | }*/ |
| | | |
| | | } |
| | | else if (getStackerObject.RGVCurrentlocation == RGVTaskdevice.WaitmomentTwo) //åéè¦å¤æä¸¤ä¸ªæ¯è½¦çä½å |
| | | { |
| | | case int Whcjaddress when Whcjaddress == int.Parse(task.CurrentAddress): |
| | | return task; |
| | | case int Waddress when Waddress == currentStation.MotherCarDeviceCode: |
| | | return task; |
| | | case int Naddress when Naddress == currentStation.MotherCardeputy: |
| | | return HandleMedialCase(task, currentStation.MotherCarDeviceCode); |
| | | case int HCJaddress when HCJaddress == currentStation.HCJStorageaddress: |
| | | return HandleMedialCase2(task, currentStation); |
| | | default: return null; |
| | | //å¤æä¸¤ä¸ªå车æ¯å¦å¨å åæºåè´§å£ |
| | | |
| | | //æ¯è½¦1 |
| | | var mu1rgv = _agvStationService.GetMothervehicle(RGVTaskdevice.MotherCarDeviceCode); |
| | | int mu1 = GetDeviceAddress.GetEquipmentlocation(mu1rgv.ChildPosiDeviceCode); //æ¤æ¶çRGVåºè¯¥æ è´§ |
| | | bool m1Isitstock1 = GetDeviceAddress.Mucheywhaddres(mu1rgv.ChildPosiDeviceCode); |
| | | |
| | | var mu2rgv = _agvStationService.GetMothervehicle(RGVTaskdevice.MotherCardeputy); |
| | | int mu2 = GetDeviceAddress.GetEquipmentlocation(mu2rgv.ChildPosiDeviceCode); //æ¤æ¶çRGVåºè¯¥æ è´§ |
| | | bool m1Isitstock2 = GetDeviceAddress.Mucheywhaddres(mu2rgv.ChildPosiDeviceCode); |
| | | |
| | | // æåå¯è¯»æ§åé |
| | | bool mu1AtHome = mu1 == mu1rgv.Motherinlaw; |
| | | bool mu2AtHome = mu2 == mu2rgv.Motherinlaw; |
| | | bool mu1Ready = mu1 == mu1rgv.ZicheMotherinlaw && m1Isitstock1; |
| | | bool mu2Ready = mu2 == mu2rgv.ZicheMotherinlaw && m1Isitstock2; |
| | | |
| | | // åå¹¶æææ»¡è¶³æ¡ä»¶çæ
åµ |
| | | if ((mu1AtHome && mu2AtHome) || // é½å¨åå§ä½ç½® |
| | | (mu1Ready && mu2Ready) || // é½å¨å°±ç»ªä½ç½®ä¸æ è´§ |
| | | (mu1AtHome && mu2Ready) || // 1å¨åå§ä½ç½®ï¼2就绪 |
| | | (mu1Ready && mu2AtHome)) // 1就绪ï¼2å¨åå§ä½ç½® |
| | | { |
| | | return dt_Task; |
| | | } |
| | | |
| | | /*else |
| | | { |
| | | //æ éææ¯è½¦ç§»å¨è³åè´§å°,æ è´§ç¶æçå车æ é踩æçè¿å»å»åè´§ |
| | | if (mu1 != mu1rgv.Motherinlaw) |
| | | { |
| | | Dt_Task task = _taskService.MothermachinemovementTask2(mu1rgv.ChildPosiDeviceCode); |
| | | if (task == null) |
| | | { |
| | | RGVMovetask(mu1rgv.Motherinlaw, mu1rgv.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | if (mu2 != mu2rgv.Motherinlaw) |
| | | { |
| | | Dt_Task task2 = _taskService.MothermachinemovementTask2(mu2rgv.ChildPosiDeviceCode); |
| | | if (task2 == null) |
| | | { |
| | | RGVMovetask(mu2rgv.Motherinlaw, mu2rgv.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | }*/ |
| | | } |
| | | } |
| | | else |
| | | else if (RGVTaskdevice.Station_Area == 5) |
| | | { |
| | | //åHCJä½çæå¤æ |
| | | switch (zicheAddress) |
| | | if (getStackerObject.RGVCurrentlocation == RGVTaskdevice.WaitmomentOne) |
| | | { |
| | | case int Whcjaddress when Whcjaddress == int.Parse(task.CurrentAddress): |
| | | return task; |
| | | case int Waddress when Waddress == currentStation.MotherCarDeviceCode: |
| | | return task; |
| | | case int Naddress when Naddress == currentStation.MotherCardeputy: |
| | | return HandleMedialCase(task, currentStation.MotherCarDeviceCode); |
| | | default: return null; |
| | | //éè¦å¤æå¤ä¾§å°è½¦æ¯å¦å¨HCJä¸ |
| | | var zichestation = _agvStationService.OutGetZicheDeepHCJ(RGVTaskdevice.HCJStorageaddress); |
| | | int waiziche = GetDeviceAddress.GetEquipmentlocation(zichestation.ChildPosiDeviceCode); |
| | | |
| | | if ((waiziche == zichestation.WaitmomentOne || waiziche == zichestation.WaitmomentTwo || waiziche == zichestation.MotherCardeputy || waiziche == zichestation.MotherCarDeviceCode || waiziche == 1021) && waiziche != zichestation.HCJStorageaddress) |
| | | { |
| | | return dt_Task; |
| | | } |
| | | |
| | | } |
| | | else if (getStackerObject.RGVCurrentlocation == RGVTaskdevice.WaitmomentTwo) //éè¦å¤æ3å··éæ¯è½¦æ¯å¦å¨åè´§ç«å° |
| | | { |
| | | //夿å车æ¯å¦å¨HCJç«å° |
| | | var zichestation = _agvStationService.OutGetZicheDeepHCJ(RGVTaskdevice.HCJStorageaddress); |
| | | int waiziche = GetDeviceAddress.GetEquipmentlocation(zichestation.ChildPosiDeviceCode); |
| | | |
| | | if ((waiziche == zichestation.WaitmomentOne || waiziche == zichestation.WaitmomentTwo || waiziche == zichestation.MotherCardeputy || waiziche == zichestation.MotherCarDeviceCode || waiziche == 1021) && waiziche != zichestation.HCJStorageaddress) |
| | | { |
| | | //æ¯è½¦1 |
| | | var mu1rgv = _agvStationService.GetMothervehicle(RGVTaskdevice.MotherCarDeviceCode); |
| | | int mu1 = GetDeviceAddress.GetEquipmentInformation(mu1rgv.ChildPosiDeviceCode); //æ¤æ¶çRGVåºè¯¥æ è´§ |
| | | if (mu1 == mu1rgv.Motherinlaw) |
| | | { |
| | | return dt_Task; |
| | | } |
| | | else |
| | | { |
| | | Dt_Task task = _taskService.MothermachinemovementTask2(mu1rgv.ChildPosiDeviceCode); |
| | | if (task == null) |
| | | { |
| | | RGVMovetask(mu1rgv.Motherinlaw, mu1rgv.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 夿å¤ä¾§æ¯è½¦æ¯å¦å¨å
¥å£å£ |
| | | /// </summary> |
| | |
| | | return null; |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region åè´§å®æåï¼è¿è¡æ¾è´§æä½ |
| | | private Dt_Task? HandleZicheFinish(Dt_Task task) |
| | | #region è¿éå车è¿è¡æ¾è´§ |
| | | public Dt_Task? GoodsPlacedCorridor(AGVStation RGVTaskdevice) |
| | | { |
| | | // æ ¹æ®è®¾å¤åç§°ï¼è·åå°è®¾å¤ç¸å
³æ°æ® |
| | | AGVStation GdaoRgvStation = _agvStationService.Corridorequipment(task.Roadway); |
| | | int nexaddres = int.Parse(task.NextAddress); |
| | | Dt_Task task = _taskService.ViceChariotPlacingTask(RGVTaskdevice.ChildPosiDeviceCode); //è·åå°æ¾è´§ä»»å¡ |
| | | if (task == null) return null; |
| | | int nexaddres = int.Parse(task.NextAddress); //å¤ææ¯æ¾è´§å¨åªçä»»å¡ |
| | | switch (nexaddres) |
| | | { |
| | | case int Whcjaddress when Whcjaddress == GdaoRgvStation.MotherCarDeviceCode: //æ¾è´§ç¹å¨ç¬¬ä¸ä¸ªè¿éç¹ |
| | | return MotherCarMoves(task, GdaoRgvStation); |
| | | case int Waddress when Waddress == GdaoRgvStation.MotherCardeputy: //æ¾è´§ç¹å¨ç¬¬äºä¸ªè¿éç¹ |
| | | return MotherCarMovesinside(task, GdaoRgvStation); |
| | | case int HCJaddress when HCJaddress == GdaoRgvStation.HCJStorageaddress: //æ¾è´§ç¹å¨HCJä¸ |
| | | return HCJMotherCarMovesinside(task, GdaoRgvStation); |
| | | case int Whcjaddress when Whcjaddress == RGVTaskdevice.MotherCarDeviceCode: //æ¾è´§ç¹å¨ç¬¬ä¸ä¸ªè¿éç¹(已宿) |
| | | return MotherCarMoves(task, RGVTaskdevice); |
| | | case int Waddress when Waddress == RGVTaskdevice.MotherCardeputy: //æ¾è´§ç¹å¨ç¬¬äºä¸ªè¿éç¹(已宿) |
| | | return MotherCarMovesinside(task, RGVTaskdevice); |
| | | case int HCJaddress when HCJaddress == RGVTaskdevice.HCJStorageaddress: //æ¾è´§ç¹å¨HCJä¸ï¼å·²å®æï¼ |
| | | return HCJMotherCarMovesinside(task, RGVTaskdevice); |
| | | default: return null; |
| | | } |
| | | } |
| | |
| | | //åºåä¸å¤ææ¯è½¦æ¯å¦å°ä½ï¼å¯ç«å³æ¾è´§ |
| | | private Dt_Task? MotherCarMoves(Dt_Task _Task, AGVStation aGVStation) |
| | | { |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.ZicheMotherinlaw); |
| | | int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | if (motherCarAddress == Muche.ZicheMotherinlaw) return _Task; |
| | | RGVMovetask(Muche.ZicheMotherinlaw, aGVStation.ChildPosiDeviceCode); |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); |
| | | Dt_Task task = _taskService.MothermachinemovementTask2(Muche.ChildPosiDeviceCode); //è·åå°æ¯è½¦ç§»å¨ä»»å¡ |
| | | if (task == null) |
| | | { |
| | | GetStackerObject getStackerObject = GetDeviceAddress.GetChildDeviceCode(Muche.ChildPosiDeviceCode); |
| | | if (getStackerObject.RgvCraneStatusValue == RgvEquipmentStatus.NoCargo) //夿æ¯è½¦æ¯å¦æè´§ |
| | | { |
| | | if (getStackerObject.RGVCurrentlocation == Muche.ZicheMotherinlaw) //夿æ¯è½¦æ¯å¦å¨è¿éç¹ï¼ |
| | | { |
| | | return _Task; |
| | | } |
| | | else |
| | | { |
| | | RGVMovetask(Muche.ZicheMotherinlaw, Muche.ChildPosiDeviceCode); //å¦ææ²¡æä»»å¡ï¼åå¯ä»¥è¿è¡ç§»å¨åºæ¥ |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | |
| | | /// <returns></returns> |
| | | private Dt_Task? MotherCarMovesinside(Dt_Task _Task, AGVStation aGVStation) |
| | | { |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | AGVStation Muche2 = _agvStationService.GetMothervehicle(aGVStation.MotherCardeputy); //å
ä¾§æ¯è½¦ |
| | | |
| | | int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | int motherCarAddress2 = GetDeviceAddress.GetEquipmentlocation(Muche2.ChildPosiDeviceCode); |
| | | // 妿æ¯è½¦ä¸å¨é¢æä½ç½®ï¼ä¸åç§»å¨ä»»å¡ |
| | | if (motherCarAddress != Muche.Motherinlaw) |
| | | //夿å¤ä¾§æ¯è½¦æ¯å¦éè¦ç§»å¨è³å åæºåè´§å£ |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); |
| | | int muche1objet = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | |
| | | //夿å
ä¾§æ¯è½¦æ¯å¦å¨æ¾è´§ç¹ |
| | | AGVStation Muche2 = _agvStationService.GetMothervehicle(aGVStation.MotherCardeputy); //å
ä¾§æ¯è½¦ |
| | | int muche2objet = GetDeviceAddress.GetEquipmentlocation(Muche2.ChildPosiDeviceCode); |
| | | bool NoCargobool = GetDeviceAddress.Mucheywhaddres(Muche2.ChildPosiDeviceCode); |
| | | |
| | | //æ£å¸¸æ
åµä¸ï¼æä¿¡æ¯åé¦åºå» |
| | | if (muche1objet == Muche.Motherinlaw && muche2objet == Muche2.ZicheMotherinlaw && NoCargobool) |
| | | { |
| | | RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); |
| | | return _Task; |
| | | } |
| | | if (motherCarAddress2 != Muche2.ZicheMotherinlaw) |
| | | //æ¯è½¦1ä¸å¨åè´§å£ |
| | | if (muche1objet != Muche.Motherinlaw) //夿æ¯è½¦æ¯å¦å¨è¿éç¹ï¼ |
| | | { |
| | | RGVMovetask(Muche2.ZicheMotherinlaw, Muche2.ChildPosiDeviceCode); |
| | | Dt_Task task = _taskService.MothermachinemovementTask2(Muche.ChildPosiDeviceCode); //è·åå°æ¯è½¦ç§»å¨ä»»å¡ |
| | | if (task == null) |
| | | { |
| | | RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); //å¦ææ²¡æä»»å¡ï¼åå¯ä»¥è¿è¡ç§»å¨åºæ¥ |
| | | } |
| | | } |
| | | if (motherCarAddress == Muche.Motherinlaw && motherCarAddress2 == Muche2.ZicheMotherinlaw) return _Task; |
| | | // æ¯è½¦å·²å¨æ£ç¡®ä½ç½® |
| | | |
| | | //æ¯è½¦2ä¸å¨è¿éç«ç¹ |
| | | if (muche2objet != Muche2.ZicheMotherinlaw) //夿æ¯è½¦æ¯å¦å¨è¿éç¹ï¼ |
| | | { |
| | | Dt_Task task = _taskService.MothermachinemovementTask2(Muche2.ChildPosiDeviceCode); //è·åå°æ¯è½¦ç§»å¨ä»»å¡ |
| | | if (task == null) |
| | | { |
| | | RGVMovetask(Muche2.ZicheMotherinlaw, Muche2.ChildPosiDeviceCode); //å¦ææ²¡æä»»å¡ï¼åå¯ä»¥è¿è¡ç§»å¨åºæ¥ |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | /// <summary> |
| | | /// 夿æ¾å¨HCJä¸é¢ |
| | | /// </summary> |
| | | /// <param name="_Task"></param> |
| | | /// <param name="aGVStation"></param> |
| | | /// <returns></returns> |
| | | private Dt_Task? HCJMotherCarMovesinside(Dt_Task _Task, AGVStation aGVStation) |
| | | { |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | AGVStation Muche2 = _agvStationService.GetMothervehicle(aGVStation.MotherCardeputy); //å
ä¾§æ¯è½¦ |
| | | //å
夿HCJç«å°ç¹æ¯å¦æè´§ï¼æä»»å¡ |
| | | if (GetDeviceAddress.HCJIsstock(_Task.NextAddress)) |
| | | { |
| | | //夿å
车å车æ¯å¦å¨çå¾
ç¹ |
| | | AGVStation neiziche = _agvStationService.GetZicheDeep(aGVStation.HCJStorageaddress); //å
ä¾§å车 |
| | | int neizichecurraddres = GetDeviceAddress.GetEquipmentlocation(neiziche.ChildPosiDeviceCode); |
| | | |
| | | AGVStation Ziche3 = _agvStationService.GetZicheDeep(aGVStation.HCJStorageaddress); //å
ä¾§å车 |
| | | |
| | | int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | int motherCarAddress2 = GetDeviceAddress.GetEquipmentlocation(Muche2.ChildPosiDeviceCode); |
| | | int ZiCarAddress3 = GetDeviceAddress.GetEquipmentlocation(Ziche3.ChildPosiDeviceCode); |
| | | // 妿æ¯è½¦ä¸å¨é¢æä½ç½®ï¼ä¸åç§»å¨ä»»å¡ |
| | | if (motherCarAddress != Muche.Motherinlaw) |
| | | { |
| | | RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); |
| | | } |
| | | if (motherCarAddress2 != Muche2.Motherinlaw) |
| | | { |
| | | RGVMovetask(Muche2.Motherinlaw, Muche2.ChildPosiDeviceCode); |
| | | } |
| | | if(ZiCarAddress3== Ziche3.HCJStorageaddress) |
| | | { |
| | | //å¤æç®æ ç«å°æ¯å
¥åºå°å å·å åæº |
| | | if (_Task.TargetAddress == "3") //å
¥åºè³3å·å åæº |
| | | Dt_Task task = _taskService.ViceChariotPickupTask2(neiziche.ChildPosiDeviceCode); //è·åå°å
ä¾§å车åè´§ä»»å¡ |
| | | if ((neizichecurraddres != neiziche.WaitmomentOne && neizichecurraddres != neiziche.WaitmomentTwo) || task != null) //å
ä¾§å车ä¸å¨ä¸¤ä¸ªç¼åç¹ |
| | | { |
| | | //夿å¤ä¾§æ¯è½¦ä½ç½®ï¼2åºåï¼ |
| | | AGVStation MucheN = _agvStationService.GetMothervehicle(Ziche3.MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | int motNCarAddress = GetDeviceAddress.GetEquipmentlocation(MucheN.ChildPosiDeviceCode); //è·åå°æ¯è½¦å½åä½ç½® |
| | | if(MucheN.ZicheMotherinlaw== motNCarAddress) |
| | | return null; |
| | | } |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | int mucheaddre1 = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | AGVStation Muche2 = _agvStationService.GetMothervehicle(aGVStation.MotherCardeputy); //å
ä¾§æ¯è½¦ |
| | | int mucheaddre2 = GetDeviceAddress.GetEquipmentlocation(Muche2.ChildPosiDeviceCode); |
| | | |
| | | if ((neizichecurraddres == neiziche.WaitmomentOne || neizichecurraddres == neiziche.WaitmomentTwo) && task == null && mucheaddre1 == Muche.Motherinlaw && mucheaddre2 == Muche2.Motherinlaw) |
| | | { |
| | | return _Task; |
| | | } |
| | | //å¤æä¸¤ä¸ªæ¯è½¦ä½ç½® |
| | | if (mucheaddre1 != Muche.Motherinlaw) //夿æ¯è½¦æ¯å¦å¨è¿éç¹ï¼ |
| | | { |
| | | Dt_Task muche1task = _taskService.MothermachinemovementTask2(Muche.ChildPosiDeviceCode); //è·åå°æ¯è½¦ç§»å¨ä»»å¡ |
| | | if (muche1task == null) |
| | | { |
| | | RGVMovetask(Ziche3.MotherCarDeviceCode, Ziche3.ChildPosiDeviceCode); |
| | | } |
| | | else |
| | | { |
| | | RGVMovetask(MucheN.ZicheMotherinlaw, MucheN.ChildPosiDeviceCode); |
| | | RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); //å¦ææ²¡æä»»å¡ï¼åå¯ä»¥è¿è¡ç§»å¨åºæ¥ |
| | | } |
| | | } |
| | | else if (_Task.TargetAddress == "4") //å
¥åºè³4å·å åæº |
| | | if (mucheaddre2 != Muche2.Motherinlaw) //夿æ¯è½¦æ¯å¦å¨è¿éç¹ï¼ |
| | | { |
| | | //夿å¤ä¾§æ¯è½¦ä½ç½®ï¼2åºåï¼ |
| | | AGVStation MucheN = _agvStationService.GetMothervehicle(Ziche3.MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | int motNCarAddress = GetDeviceAddress.GetEquipmentlocation(MucheN.ChildPosiDeviceCode); //è·åå°æ¯è½¦å½åä½ç½® |
| | | if (MucheN.Motherinlaw != motNCarAddress) |
| | | Dt_Task muche2task = _taskService.MothermachinemovementTask2(Muche2.ChildPosiDeviceCode); //è·åå°æ¯è½¦ç§»å¨ä»»å¡ |
| | | if (muche2task == null) |
| | | { |
| | | RGVMovetask(MucheN.Motherinlaw, MucheN.ChildPosiDeviceCode); |
| | | } |
| | | AGVStation MucheN2 = _agvStationService.GetMothervehicle(Ziche3.MotherCardeputy); //å¤ä¾§æ¯è½¦ |
| | | int motNCarAddress2 = GetDeviceAddress.GetEquipmentlocation(MucheN2.ChildPosiDeviceCode); //è·åå°æ¯è½¦å½åä½ç½® |
| | | if (MucheN2.ZicheMotherinlaw != motNCarAddress2) |
| | | { |
| | | RGVMovetask(MucheN2.ZicheMotherinlaw, MucheN2.ChildPosiDeviceCode); |
| | | } |
| | | |
| | | if(MucheN.Motherinlaw == motNCarAddress && MucheN2.ZicheMotherinlaw == motNCarAddress2) |
| | | { |
| | | RGVMovetask(Ziche3.MotherCardeputy, Ziche3.ChildPosiDeviceCode); |
| | | RGVMovetask(Muche2.Motherinlaw, Muche2.ChildPosiDeviceCode); //å¦ææ²¡æä»»å¡ï¼åå¯ä»¥è¿è¡ç§»å¨åºæ¥ |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (motherCarAddress == Muche.Motherinlaw && motherCarAddress2 == Muche2.Motherinlaw && ZiCarAddress3 != Ziche3.HCJStorageaddress) return _Task; |
| | | // æ¯è½¦å·²å¨æ£ç¡®ä½ç½® |
| | | return null; |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¯è½¦ç§»å¨è³å
¥åºå£ |
| | | private Dt_Task? HandleZicheMoveFinish(Dt_Task task) |
| | | #region æ¯è½¦ç§»å¨ä»»å¡ |
| | | public Dt_Task? MotherVehicleMovement(AGVStation RGVTaskdevice) |
| | | { |
| | | int curradder = int.Parse(task.CurrentAddress); |
| | | AGVStation GdZiche = _agvStationService.GetMotheaisle(curradder); |
| | | Dt_Task task = _taskService.MothermachinemovementTask(RGVTaskdevice.ChildPosiDeviceCode); |
| | | if (task == null) return null; |
| | | |
| | | AGVStation GdZiche = _agvStationService.GetMotheaisle(RGVTaskdevice.ZicheMotherinlaw); |
| | | int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(GdZiche.ChildPosiDeviceCode); |
| | | if (motherCarAddress != curradder) return task; |
| | | RGVMovetask(GdZiche.Motherinlaw, GdZiche.ChildPosiDeviceCode); |
| | | if (GdZiche.WaitmomentOne == motherCarAddress || GdZiche.WaitmomentTwo == motherCarAddress) |
| | | { |
| | | return task; |
| | | } |
| | | return null; |
| | | } |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region åºåºæ¹æ³ |
| | | |
| | | #region å¤ä¾§å°è½¦åå½å°èµ·å§ç¹ä½ |
| | | /// <summary> |
| | | /// 夿æ¾ç¬¬äºä¸ªæ¯è½¦ä½ç½® |
| | | /// </summary> |
| | | /// <param name="_Task"></param> |
| | | /// <param name="aGVStation"></param> |
| | | /// <returns></returns> |
| | | private void OutNMotherCar(int MotherCarDeviceCode) |
| | | #region åºåºæ¹æ³(å¯è¿è¡æµè¯) |
| | | public Dt_Task? OutboundEquipmentTask(AGVStation RGVTaskdevice, GetStackerObject getStackerObject) |
| | | { |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | if (motherCarAddress != Muche.Motherinlaw) |
| | | return (RGVTaskdevice.Station_material, getStackerObject.RgvCraneStatusValue) switch |
| | | { |
| | | RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); |
| | | } |
| | | ((int)RGVEquipment.Mothertrailer, RgvEquipmentStatus.HasCargo) //ä¸åæ¯è½¦åºæ¥å°è¿éä¸ |
| | | => Mothertaskdistribution(RGVTaskdevice),//已宿 |
| | | |
| | | ((int)RGVEquipment.Corridorcar, RgvEquipmentStatus.NoCargo) //æ¥æ¾åè½¦åºæ¥åè´§ |
| | | => ChildPickupAddres(RGVTaskdevice, getStackerObject.RGVCurrentlocation), //已宿 |
| | | |
| | | ((int)RGVEquipment.Corridorcar, RgvEquipmentStatus.HasCargo) |
| | | => Findshippingtask(RGVTaskdevice, getStackerObject.RGVCurrentlocation), //å车åè´§åï¼è¿è¡æ¾è´§ï¼å·²å®æï¼ |
| | | |
| | | ((int)RGVEquipment.OutRGVForklift, RgvEquipmentStatus.NoCargo) |
| | | => OutboundGateVehicle(RGVTaskdevice), //åºåºå£RGVåè´§ï¼å·²å®æï¼ |
| | | |
| | | ((int)RGVEquipment.OutRGVForklift, RgvEquipmentStatus.HasCargo) |
| | | => _taskService.GetOutkouFinhuoTask(RGVTaskdevice.ChildPosiDeviceCode, |
| | | RGVTaskdevice.HCJStorageaddress.ToString()), |
| | | |
| | | _ => null |
| | | }; |
| | | } |
| | | private void OutHCJMotherCar(AGVStation aGVStation) |
| | | |
| | | #region ä¸åæ¯è½¦ä»»å¡ï¼éè¦å¤æå½åè¡å°è½¦å¨åªä¸ªä½å(已宿) |
| | | |
| | | private Dt_Task? Mothertaskdistribution(AGVStation GdZiche) |
| | | { |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | AGVStation Muche2 = _agvStationService.GetMothervehicle(aGVStation.MotherCardeputy); //å
ä¾§æ¯è½¦ |
| | | int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | int motherCarAddress2 = GetDeviceAddress.GetEquipmentlocation(Muche2.ChildPosiDeviceCode); |
| | | // 妿æ¯è½¦ä¸å¨é¢æä½ç½®ï¼ä¸åç§»å¨ä»»å¡ |
| | | if (motherCarAddress != Muche.Motherinlaw) |
| | | // æåæ£æ¥æ æçAreaå¼ |
| | | if (GdZiche.Station_Area < 1 || GdZiche.Station_Area > 4) |
| | | return null; |
| | | |
| | | //æ ¹æ®æ¯è½¦å°åï¼è·åå½åè¡éçå车 |
| | | AGVStation ZicheinnerSide = _agvStationService.GetMotheaisle(GdZiche.ZicheMotherinlaw); |
| | | int zichecurraddre = GetDeviceAddress.GetEquipmentlocation(ZicheinnerSide.ChildPosiDeviceCode); //è·åå°å车å®ä¾ |
| | | |
| | | if (zichecurraddre != ZicheinnerSide.WaitmomentOne && zichecurraddre != ZicheinnerSide.WaitmomentTwo) return null; |
| | | |
| | | //夿æ¯åªä¸ªå··éçæ¯è½¦ |
| | | return GdZiche.Station_Area switch |
| | | { |
| | | RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); |
| | | 4 => OutboundSideAisle4(zichecurraddre, ZicheinnerSide), //å¨4å··éè¿è¡åºåºçä»»å¡ï¼å·²å®æï¼ |
| | | 3 => OutboundSideAisle3(zichecurraddre, ZicheinnerSide), //å¨3å··éè¿è¡åºåºçä»»å¡ï¼å·²å®æï¼ |
| | | 2 => OutboundSideAisle2(ZicheinnerSide), //å¨äºå··éè¿è¡åºåºçä»»å¡ï¼å·²å®æï¼ |
| | | 1 => _taskService.ObtainMuChetask(GdZiche.ZicheMotherinlaw.ToString()), //æ ¹æ®æ¯è½¦åå°åï¼æ¥æ¾æ¯å¦æéè¦ç§»å¨çä»»å¡ï¼å·²å®æï¼ |
| | | _ => null |
| | | }; |
| | | |
| | | } |
| | | |
| | | public Dt_Task? OutboundSideAisle1(AGVStation ZicheinnerSide) |
| | | { |
| | | //è·å1å··éæ¯è½¦æ¯å¦æä»»å¡ |
| | | Dt_Task Muche1Task = _taskService.ObtainMuChetask(ZicheinnerSide.MotherCarDeviceCode.ToString()); |
| | | if (Muche1Task == null) return null; |
| | | |
| | | Dt_Task zicheTASK = _taskService.GetChariotTaskBool(ZicheinnerSide.ChildPosiDeviceCode); |
| | | if (zicheTASK != null) return null; |
| | | |
| | | return Muche1Task; |
| | | } |
| | | |
| | | public Dt_Task? OutboundSideAisle2(AGVStation ZicheinnerSide) |
| | | { |
| | | //è·å2å··éæ¯è½¦æ¯å¦æä»»å¡ |
| | | Dt_Task Muche2Task = _taskService.ObtainMuChetask(ZicheinnerSide.MotherCardeputy.ToString()); |
| | | if (Muche2Task == null) return null; |
| | | |
| | | Dt_Task zicheTASK = _taskService.GetChariotTaskBool(ZicheinnerSide.ChildPosiDeviceCode); |
| | | if (zicheTASK != null) return null; |
| | | |
| | | return Muche2Task; |
| | | } |
| | | public Dt_Task? OutboundSideAisle3(int curraddZiChe, AGVStation ZicheinnerSide) |
| | | { |
| | | //è·å3å··éæ¯è½¦æ¯å¦æä»»å¡ |
| | | Dt_Task Muche3Task = _taskService.ObtainMuChetask(ZicheinnerSide.MotherCarDeviceCode.ToString()); |
| | | if (Muche3Task == null) return null; |
| | | |
| | | //夿å车æ¯å¦ææéè¦åè´§çä»»å¡ |
| | | Dt_Task zicheTASK = _taskService.GetChariotTaskBool(ZicheinnerSide.ChildPosiDeviceCode); |
| | | if (zicheTASK != null) return null; |
| | | |
| | | if (curraddZiChe == ZicheinnerSide.WaitmomentTwo || curraddZiChe == ZicheinnerSide.WaitmomentOne) |
| | | { |
| | | return Muche3Task; |
| | | } |
| | | if (motherCarAddress2 != Muche2.Motherinlaw) |
| | | return null; |
| | | } |
| | | public Dt_Task? OutboundSideAisle4(int curraddZiChe, AGVStation ZicheinnerSide) |
| | | { |
| | | //è·åå½åæ¯è½¦æ¯å¦æä»»å¡ |
| | | Dt_Task Muche4Task = _taskService.ObtainMuChetask(ZicheinnerSide.MotherCardeputy.ToString()); |
| | | if (Muche4Task == null) return null; |
| | | |
| | | Dt_Task zicheTASK = _taskService.GetChariotTaskBool(ZicheinnerSide.ChildPosiDeviceCode); |
| | | if (zicheTASK != null) return null; |
| | | |
| | | if (curraddZiChe == ZicheinnerSide.WaitmomentOne) |
| | | { |
| | | RGVMovetask(Muche2.Motherinlaw, Muche2.ChildPosiDeviceCode); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | if ( || curraddZiChe == ZicheinnerSide.WaitmomentTwo) |
| | | { |
| | | return Muche4Task; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region å¤æå·²ç§»å¨åºæ¥çæ¯è½¦ï¼å夿å°è½¦ä½ç½®(已宿) |
| | | public Dt_Task? ChildPickupAddres(AGVStation GdZiche, int curraderr) |
| | | { |
| | | if (curraderr == GdZiche.WaitmomentOne || curraderr == GdZiche.WaitmomentTwo) |
| | | { |
| | | Dt_Task dtTasks = _taskService.ChildVehicleMission(GdZiche); |
| | | if (dtTasks == null) return null; |
| | | if (GdZiche.Station_Area == 5) |
| | | { |
| | | if (dtTasks.CurrentAddress == GdZiche.MotherCardeputy.ToString()) //åè´§çç¹å¨2å··éï¼åå车æ 论å¨åªä¸ªçå¾
ç¹ï¼é½å¯ä»¥åè´§ |
| | | { |
| | | return dtTasks; |
| | | } |
| | | else if (dtTasks.CurrentAddress == GdZiche.MotherCarDeviceCode.ToString()) //å1å··éçè´§ |
| | | { |
| | | if (curraderr == GdZiche.WaitmomentOne) //å车åå¥½å¨æè¾¹ï¼å¯ç«é©¬åè´§ |
| | | { |
| | | return dtTasks; |
| | | } |
| | | else if (curraderr == GdZiche.WaitmomentTwo) |
| | | { |
| | | var muchestation = _agvStationService.GetMothervehicle(GdZiche.MotherCardeputy); |
| | | int muche2addres = GetDeviceAddress.GetEquipmentlocation(muchestation.ChildPosiDeviceCode); //è·å2å··éæ¯è½¦å®ä¾ |
| | | if (muche2addres == muchestation.Motherinlaw) |
| | | { |
| | | return dtTasks; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else if (GdZiche.Station_Area == 6) |
| | | { |
| | | //HCJç«å°æ²¡ä»»å¡ |
| | | if (dtTasks.CurrentAddress == GdZiche.MotherCardeputy.ToString()) //ä¼å
夿æ¯å¦æ¯æå¤é¢çä»»å¡ |
| | | { |
| | | if (curraderr == GdZiche.WaitmomentTwo) |
| | | { |
| | | return dtTasks; |
| | | } |
| | | else |
| | | { |
| | | var muchestation = _agvStationService.GetMothervehicle(GdZiche.MotherCarDeviceCode); |
| | | int muche3x = GetDeviceAddress.GetEquipmentlocation(muchestation.ChildPosiDeviceCode); |
| | | if (muche3x == muchestation.Motherinlaw) |
| | | { |
| | | return dtTasks; |
| | | } |
| | | } |
| | | } |
| | | else if (dtTasks.CurrentAddress == GdZiche.MotherCarDeviceCode.ToString()) //该任å¡ä¸ºå3å··é |
| | | { |
| | | if (curraderr == GdZiche.WaitmomentOne) |
| | | { |
| | | return dtTasks; |
| | | } |
| | | else if(curraderr == GdZiche.WaitmomentTwo) |
| | | { |
| | | var muchestation = _agvStationService.GetMothervehicle(GdZiche.MotherCardeputy); |
| | | int muche4x = GetDeviceAddress.GetEquipmentlocation(muchestation.ChildPosiDeviceCode); |
| | | if (muche4x == muchestation.Motherinlaw) |
| | | { |
| | | return dtTasks; |
| | | } |
| | | } |
| | | |
| | | } |
| | | else if (dtTasks.CurrentAddress == GdZiche.HCJStorageaddress.ToString()) |
| | | { |
| | | //夿å
ä¾§å车çä½ç½® |
| | | AGVStation neiziche = _agvStationService.GetOutZicheDeep(GdZiche.HCJStorageaddress); //å
ä¾§å车 |
| | | int neizichecurraddres = GetDeviceAddress.GetEquipmentlocation(neiziche.ChildPosiDeviceCode); |
| | | if ((neiziche.WaitmomentOne == neizichecurraddres || neiziche.WaitmomentTwo == neizichecurraddres || neiziche.MotherCarDeviceCode == neizichecurraddres || neiziche.MotherCardeputy == neizichecurraddres) && neiziche.HCJStorageaddress != neizichecurraddres) |
| | | { |
| | | if (curraderr == GdZiche.WaitmomentTwo) |
| | | { |
| | | var mu1rgv = _agvStationService.GetMothervehicle(GdZiche.MotherCarDeviceCode); |
| | | int mu1 = GetDeviceAddress.GetEquipmentlocation(mu1rgv.ChildPosiDeviceCode); |
| | | |
| | | var mu2rgv = _agvStationService.GetMothervehicle(GdZiche.MotherCardeputy); |
| | | int mu2 = GetDeviceAddress.GetEquipmentlocation(mu2rgv.ChildPosiDeviceCode); |
| | | |
| | | if (mu1 == mu1rgv.Motherinlaw && mu2 == mu2rgv.Motherinlaw) |
| | | { |
| | | return dtTasks; |
| | | } |
| | | } |
| | | else if (curraderr == GdZiche.WaitmomentOne) |
| | | { |
| | | return dtTasks; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | return null; |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¥æ¾å车æ¾è´§ä»»å¡(已宿) |
| | | public Dt_Task? Findshippingtask(AGVStation GdZiche, int curraderr) |
| | | { |
| | | Dt_Task task = _taskService.GetFinhuoTask(GdZiche.ChildPosiDeviceCode); |
| | | if (task == null) return null; |
| | | if (GetDeviceAddress.HCJIsstock(task.NextAddress)) |
| | | { |
| | | if (GdZiche.Station_Area == 5) |
| | | { |
| | | //éè¦å¤æå¤ä¾§å°è½¦æ¯å¦å¨HCJä¸ |
| | | var zichestation = _agvStationService.OutGetZicheDeepHCJ(GdZiche.HCJStorageaddress); |
| | | int waiziche = GetDeviceAddress.GetEquipmentlocation(zichestation.ChildPosiDeviceCode); |
| | | if ((waiziche == zichestation.WaitmomentOne || waiziche == zichestation.WaitmomentTwo || waiziche == zichestation.MotherCardeputy || waiziche == zichestation.MotherCarDeviceCode) && waiziche != zichestation.HCJStorageaddress) |
| | | { |
| | | //夿å½åä½ç½® |
| | | if (task.CurrentAddress == GdZiche.MotherCarDeviceCode.ToString()) |
| | | { |
| | | var muchestation = _agvStationService.GetMothervehicle(GdZiche.MotherCardeputy); |
| | | int muche2 = GetDeviceAddress.GetEquipmentlocation(muchestation.ChildPosiDeviceCode); |
| | | if (muche2 == muchestation.Motherinlaw) |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | else if (task.CurrentAddress == GdZiche.MotherCardeputy.ToString()) |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | } |
| | | else if (GdZiche.Station_Area == 6) |
| | | { |
| | | if (GdZiche.HCJStorageaddress == curraderr) |
| | | { |
| | | //夿3å··éæ¯è½¦ |
| | | var muchestation = _agvStationService.GetMothervehicle(GdZiche.MotherCarDeviceCode); |
| | | int mucboject3 = GetDeviceAddress.GetEquipmentlocation(muchestation.ChildPosiDeviceCode); |
| | | if (mucboject3 == muchestation.Motherinlaw) |
| | | { |
| | | //夿4å··éæ¯è½¦ |
| | | var muchestation2 = _agvStationService.GetMothervehicle(GdZiche.MotherCardeputy); |
| | | int mucboject4 = GetDeviceAddress.GetEquipmentlocation(muchestation2.ChildPosiDeviceCode); |
| | | if (mucboject4 == muchestation2.Motherinlaw) |
| | | { |
| | | return task; |
| | | } |
| | | |
| | | } |
| | | } |
| | | else if (GdZiche.MotherCarDeviceCode == curraderr) |
| | | { |
| | | //夿4å··éæ¯è½¦ |
| | | var muchestation2 = _agvStationService.GetMothervehicle(GdZiche.MotherCardeputy); |
| | | int mucboject4 = GetDeviceAddress.GetEquipmentlocation(muchestation2.ChildPosiDeviceCode); |
| | | if (mucboject4 == muchestation2.Motherinlaw) |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | else if (GdZiche.MotherCardeputy == curraderr) return task; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | #endregion |
| | | |
| | | #region åºåºå£å车åè´§(已宿) |
| | | public Dt_Task OutboundGateVehicle(AGVStation GdZiche) |
| | | { |
| | | //éè¦å¤æå车æ¯å¦å¨HCJä¸ |
| | | var zichestation = _agvStationService.OutGetZicheDeepHCJ(1131); |
| | | int ziche = GetDeviceAddress.GetEquipmentlocation(zichestation.ChildPosiDeviceCode); |
| | | |
| | | if (ziche != GdZiche.HCJStorageaddress && (ziche == zichestation.HCJStorageaddress || ziche == zichestation.WaitmomentOne || ziche == zichestation.WaitmomentTwo || ziche == zichestation.MotherCardeputy || ziche == zichestation.MotherCarDeviceCode)) |
| | | { |
| | | return _taskService.GetOutchachekouFinhuoTask(GdZiche.ChildPosiDeviceCode, GdZiche.HCJStorageaddress.ToString()); |
| | | } |
| | | return null; |
| | | } |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | #region åºåºå°è½¦ç§»å¨ä»»å¡ä¸å(已宿) |
| | | public void Returnposition(string DeviceCode, int RGVCurrentlocation, int RgvCraneStatusValue) |
| | | { |
| | | AGVStation GdZiche = _agvStationService.Corridorequipment(DeviceCode); |
| | | if (GdZiche.Station_material == (int)RGVEquipment.Mothertrailer) |
| | | { |
| | | if (GdZiche.Motherinlaw == RGVCurrentlocation) return; |
| | | if (RgvCraneStatusValue == (int)RgvEquipmentStatus.HasCargo) return; |
| | | |
| | | //æ¯äº²åå åæºå£ä»»å¡ï¼å¤æå车çä½ç½®æ¯å¦å¨æ¯è½¦ä¸ |
| | | var zichestation = _agvStationService.GetMotheaisle(GdZiche.ZicheMotherinlaw); |
| | | |
| | | //è·åå车æ¯å¦æä»»å¡æ¥è¯¥ä½ç½®åè´§ |
| | | Dt_Task Muche2Task = _taskService.OutPickupZiche(zichestation.ChildPosiDeviceCode.ToString()); |
| | | if (Muche2Task != null) return; |
| | | GetStackerObject getStackerObject = GetDeviceAddress.GetChildDeviceCode(zichestation.ChildPosiDeviceCode); |
| | | |
| | | if (getStackerObject.StaclerkJobJobStatusValue != RGV_Rgvtaskstutas.Executing && getStackerObject.RgvCraneAutoStatusValue == RgvCraneAutoStatus.Automatic |
| | | && (getStackerObject.RGVCurrentlocation == zichestation.WaitmomentOne || getStackerObject.RGVCurrentlocation == zichestation.WaitmomentTwo) && getStackerObject.RGVCurrentlocation != zichestation.ZicheMotherinlaw) |
| | | { |
| | | RGVMovetask(GdZiche.Motherinlaw, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | else if (GdZiche.Station_material == (int)RGVEquipment.Corridorcar) |
| | | { |
| | | if (RgvCraneStatusValue == (int)RgvEquipmentStatus.HasCargo) return; |
| | | if (GdZiche.Station_Area == 5) |
| | | { |
| | | if (GdZiche.MotherCardeputy == RGVCurrentlocation || GdZiche.HCJStorageaddress == RGVCurrentlocation) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentTwo, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | else if (GdZiche.MotherCarDeviceCode == RGVCurrentlocation) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentOne, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (GdZiche.MotherCarDeviceCode == RGVCurrentlocation || GdZiche.HCJStorageaddress == RGVCurrentlocation) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentOne, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | else if (GdZiche.MotherCardeputy == RGVCurrentlocation && RGVCurrentlocation == 1171) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentTwo, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region å¤ä¾§å°è½¦åå½å°èµ·å§ç¹ä½ |
| | | /// <summary> |
| | | /// å¨ç¬¬ä¸ä¸ªä½ç½®ï¼å夿å¤ä¾§å车æ¯å¦å¨HCJç«å°ä¸é¢ |
| | | /// </summary> |
| | | /// <param name="_Task"></param> |
| | | /// <param name="aGVStation"></param> |
| | | /// <returns></returns> |
| | | private void OutinnerSideNMotherCar(AGVStation aGVStation) |
| | | #region å
¥åºå°è½¦ç§»å¨ä»»å¡ä¸å(已宿) |
| | | public void InReturnposition(string DeviceCode, int RGVCurrentlocation, int RgvCraneStatusValue) |
| | | { |
| | | AGVStation Ziche3 = _agvStationService.GetZicheDeep(aGVStation.HCJStorageaddress); //å
ä¾§å车 |
| | | int ZiCarAddress3 = GetDeviceAddress.GetEquipmentlocation(Ziche3.ChildPosiDeviceCode); |
| | | if (ZiCarAddress3 == Ziche3.HCJStorageaddress) |
| | | AGVStation GdZiche = _agvStationService.Corridorequipment(DeviceCode);//è·åå°è¦ç§»å¨çå车 |
| | | if (GdZiche.Station_material == (int)RGVEquipment.Corridorcar) |
| | | { |
| | | if (GdZiche.Station_Area == 5) |
| | | { |
| | | if (GdZiche.MotherCarDeviceCode == RGVCurrentlocation || GdZiche.HCJStorageaddress == RGVCurrentlocation) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentOne, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | else if (GdZiche.MotherCardeputy == RGVCurrentlocation) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentTwo, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Dt_Task task = _taskService.GetChariotTaskBool(GdZiche.ChildPosiDeviceCode); |
| | | if (task == null && RgvCraneStatusValue == (int)RgvEquipmentStatus.NoCargo) |
| | | { |
| | | if (GdZiche.HCJStorageaddress == RGVCurrentlocation) |
| | | { |
| | | //妿å¨2å··éçæ¯è½¦ï¼åå¯ä»¥æ¾å车æ¥1å·çå¾
ç¹ï¼å¦æå¨HCJåå¯ä»¥è®©å车å»2å· |
| | | RGVMovetask(GdZiche.WaitmomentTwo, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | else if (GdZiche.MotherCarDeviceCode == RGVCurrentlocation || GdZiche.MotherCardeputy == RGVCurrentlocation) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentOne, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | else if (RGVCurrentlocation == 1021) |
| | | { |
| | | //å å
¥å¤æï¼å¦æå¨1021ç«å°ï¼åéè¦å¤æ1å·å··éæ¯è½¦æ¯å¦å¨å åæºåè´§å£ |
| | | var zichestation = _agvStationService.GetMothervehicle(GdZiche.MotherCarDeviceCode); |
| | | int ziche = GetDeviceAddress.GetEquipmentlocation(zichestation.ChildPosiDeviceCode); |
| | | if (GetDeviceAddress.Mucheywhaddres(zichestation.ChildPosiDeviceCode) && (ziche == zichestation.ZicheMotherinlaw || ziche == zichestation.Motherinlaw)) |
| | | { |
| | | RGVMovetask(GdZiche.WaitmomentOne, GdZiche.ChildPosiDeviceCode); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | //RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | private void OutinnerSideMotherCar(AGVStation aGVStation) |
| | | { |
| | | AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); //å¤ä¾§æ¯è½¦ |
| | | AGVStation Muche2 = _agvStationService.GetMothervehicle(aGVStation.MotherCardeputy); //å
ä¾§æ¯è½¦ |
| | | int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode); |
| | | int motherCarAddress2 = GetDeviceAddress.GetEquipmentlocation(Muche2.ChildPosiDeviceCode); |
| | | // 妿æ¯è½¦ä¸å¨é¢æä½ç½®ï¼ä¸åç§»å¨ä»»å¡ |
| | | if (motherCarAddress != Muche.Motherinlaw) |
| | | { |
| | | RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode); |
| | | } |
| | | if (motherCarAddress2 != Muche2.Motherinlaw) |
| | | { |
| | | RGVMovetask(Muche2.Motherinlaw, Muche2.ChildPosiDeviceCode); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// åæ¯è½¦ç§»å¨ä»»å¡ |
| | |
| | | public RgvCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | { |
| | | RgvCraneTaskCommand stackerCraneTaskCommand = new RgvCraneTaskCommand(); |
| | | short locaticurr = task.RGVTaskType switch |
| | | |
| | | short locaticurr = task.TaskType switch |
| | | { |
| | | _ when task.RGVTaskType == (short)RGVTaskTypeEnum.PickingUp || |
| | | (task.RGVTaskType == (short)RGVTaskTypeEnum.TravelingOnly && task.TaskType != (int)TaskInStatusEnum.RGV_InZichemoveFinish) |
| | | => short.Parse(task.CurrentAddress), |
| | | _ when task.RGVTaskType == (short)RGVTaskTypeEnum.Placing || (task.RGVTaskType == (short)RGVTaskTypeEnum.TravelingOnly && task.TaskType== (int)TaskInStatusEnum.RGV_InZichemoveFinish) |
| | | => short.Parse(task.NextAddress), |
| | | _ when task.TaskType == (int)TaskInboundTypeEnum.Inbound |
| | | => InRgvLocaaddres(task), |
| | | _ when task.TaskType == (int)TaskOutboundTypeEnum.Outbound |
| | | => RgvLocaaddres(task), |
| | | _ => (short)0 |
| | | }; |
| | | if (locaticurr == 0) return null; |
| | | |
| | | stackerCraneTaskCommand.RGV_RGVTasklocation = locaticurr; |
| | | stackerCraneTaskCommand.RGV_RGVtasktype = (short)task.RGVTaskType; |
| | | stackerCraneTaskCommand.RGV_Rgvtaskid = (short)task.TaskNum; |
| | | stackerCraneTaskCommand.RGV_Lanjiantaskid = (short)task.TaskNum; |
| | | return stackerCraneTaskCommand; |
| | | } |
| | | |
| | | public short InRgvLocaaddres(Dt_Task dt_Task) |
| | | { |
| | | if (dt_Task.RGVTaskType == (short)RGVTaskTypeEnum.PickingUp) return short.Parse(dt_Task.CurrentAddress); |
| | | else if (dt_Task.RGVTaskType == (short)RGVTaskTypeEnum.Placing) return short.Parse(dt_Task.NextAddress); |
| | | else if (dt_Task.RGVTaskType == (short)RGVTaskTypeEnum.TravelingOnly && dt_Task.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish) return short.Parse(dt_Task.NextAddress); |
| | | return 0; |
| | | } |
| | | public short RgvLocaaddres(Dt_Task dt_Task) |
| | | { |
| | | if (dt_Task.RGVTaskType == (short)RGVTaskTypeEnum.PickingUp) return short.Parse(dt_Task.CurrentAddress); |
| | | else if (dt_Task.RGVTaskType == (short)RGVTaskTypeEnum.Placing) return short.Parse(dt_Task.NextAddress); |
| | | else if (dt_Task.RGVTaskType == (short)RGVTaskTypeEnum.TravelingOnly && dt_Task.TaskState == (int)TaskOutStatusEnum.OutNew) return short.Parse(dt_Task.NextAddress); |
| | | return 0; |
| | | } |
| | | |
| | | |
| | |
| | | RgvCraneTaskCommand stackerCraneTaskCommand = new RgvCraneTaskCommand(); |
| | | stackerCraneTaskCommand.RGV_RGVTasklocation = (short)RGVAddress; |
| | | stackerCraneTaskCommand.RGV_RGVtasktype = 3; |
| | | stackerCraneTaskCommand.RGV_Rgvtaskid = 999; //rgvä»»å¡å· |
| | | stackerCraneTaskCommand.RGV_Lanjiantaskid = 999; //å
°åä»»å¡id |
| | | stackerCraneTaskCommand.RGV_Rgvtaskid = 30001; //rgvä»»å¡å· |
| | | stackerCraneTaskCommand.RGV_Lanjiantaskid = 30001; //å
°åä»»å¡id |
| | | return stackerCraneTaskCommand; |
| | | } |
| | | public bool SendCommand2(RgvCraneTaskCommand command, string DeviceCode) |
| | |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode); |
| | | CommonStackerCrane Commonstacker = (CommonStackerCrane)device; |
| | | SpeStackerCrane Commonstacker = (SpeStackerCrane)device; |
| | | |
| | | DeviceProDTO? deviceProDTO = GetDeviceAddress.GetDeviceProDTO(Commonstacker, DeviceCode, "RGV_Rgvtaskstutas"); |
| | | int MCGStatus = GetDeviceAddress.GetLine(Commonstacker, deviceProDTO.DeviceProAddress); |
| | | if (Commonstacker.IsConnected) |
| | | DeviceProDTO? deviceProDTO = GetDeviceAddress.GetRGVDeviceProDTO(Commonstacker, DeviceCode, "RGV_Rgvtaskstutas"); |
| | | int MCGStatus = GetDeviceAddress.RGVGetLine(Commonstacker, deviceProDTO.DeviceProAddress); |
| | | |
| | | |
| | | if (MCGStatus == 0) |
| | | { |
| | | if (MCGStatus == (int)RgvJobCraneStatus.Ready) |
| | | if (MCGStatus == (int)RGV_Rgvtaskstutas.Ready) |
| | | { |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_RGVTasklocation, command.RGV_RGVTasklocation); |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_RGVtasktype, command.RGV_RGVtasktype); |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_Rgvtaskid, command.RGV_Rgvtaskid); |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_Lanjiantaskid, command.RGV_Lanjiantaskid); |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_RGVTasklocationt, command.RGV_RGVTasklocation); |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_RGVtasktypet, command.RGV_RGVtasktype); |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_Rgvtaskidt, command.RGV_Rgvtaskid); |
| | | Commonstacker.SetValue(RgvCraneDBName.RGV_Lanjiantaskidt, command.RGV_Lanjiantaskid); |
| | | return true; |
| | | } |
| | | } |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |