From 83f3c63f1cae6224320a8d19251e3bc0404da096 Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期五, 26 九月 2025 14:54:44 +0800
Subject: [PATCH] 出入库
---
代码管理/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SpeStackerCraneJob/SpeStackerCraneJob.cs | 762 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 469 insertions(+), 293 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SpeStackerCraneJob/SpeStackerCraneJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SpeStackerCraneJob/SpeStackerCraneJob.cs"
index 11b6056..bad479b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SpeStackerCraneJob/SpeStackerCraneJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SpeStackerCraneJob/SpeStackerCraneJob.cs"
@@ -3,6 +3,7 @@
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;
@@ -12,6 +13,7 @@
using System.Diagnostics.Eventing.Reader;
using System.Linq;
using System.Reflection.Metadata;
+using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.Log;
@@ -67,11 +69,11 @@
GetStackerObject getStackerObject = new GetStackerObject(speStackerCrane);
//璇诲彇璁惧瀹屾垚淇℃伅
- if (getStackerObject.StaclerkJobJobStatusValue == RgvJobCraneStatus.Completed && getStackerObject.CurrentRgvtaskid!=0)
+ if (getStackerObject.StaclerkJobJobStatusValue == RgvJobCraneStatus.Completed && getStackerObject.CurrentRgvtaskid != 0)
{
- _taskService.UpdateTaskStatus(getStackerObject.CurrentRgvtaskid);
+ _taskService.UpdateTaskStatus(getStackerObject.CurrentRgvtaskid,2);
}
-
+
if (getStackerObject.RgvCraneAutoStatusValue == RgvCraneAutoStatus.Automatic &&
getStackerObject.StaclerkJobJobStatusValue == RgvJobCraneStatus.Ready && getStackerObject.RgvCraneWorkStatusValue == RGVStepprocess.NoAction)
@@ -79,10 +81,8 @@
//涓嬪彂RGV浠诲姟涔嬪墠锛屽厛璇诲彇涓�涓嬪畨鍏ㄩ棬鐘舵��
-
-
//鏌ユ壘RGV杩涜涓嬪彂浠诲姟
- Dt_Task task = GetTask(speStackerCrane.DeviceCode);
+ Dt_Task task = GetTask(speStackerCrane.DeviceCode,getStackerObject);
if (task != null)
{
//璋冨彇鍐欏叆RGV灏忚溅浠诲姟
@@ -94,11 +94,19 @@
_taskService.UpdateTaskStatusToNext(task);
}
}
+ else
+ {
+ if(speStackerCrane.DeviceCode=="RGV101" || speStackerCrane.DeviceCode == "RGV101")
+ {
+ //褰撴病浠诲姟鐨勬椂鍊欙紝鍒欒繘琛岀Щ鍔�
+ Returnposition(speStackerCrane.DeviceCode, getStackerObject.RGVCurrentlocation);
+ }
+
+ }
+
}
}
-
-
}
catch (Exception ex)
{
@@ -107,135 +115,487 @@
return Task.CompletedTask;
}
- private Dt_Task? GetTask(string DeviceCode)
+ private Dt_Task? GetTask(string DeviceCode, GetStackerObject getStackerObject)
{
- Dt_Task task = _taskService.QueryStackerCraneTask(DeviceCode);
- if (task == null) return null;
-
- return task.TaskType switch
+ // 鏍规嵁璁惧鍚嶇О锛岃幏鍙栧埌璁惧鐩稿叧鏁版嵁
+ AGVStation RGVTaskdevice = _agvStationService.Corridorequipment(DeviceCode); //鏍规嵁璁惧鑾峰彇鍒板唴瀹�
+ return RGVTaskdevice.Station_tasktype switch
{
- (int)TaskInboundTypeEnum.Inbound => HandleInboundTask(task),
- (int)TaskOutboundTypeEnum.Outbound => HandleOutboundTask(task),
+ (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 => task, //闇�瑕佸垽鏂瓙杞︽槸鍐呬晶鍖鸿繕鏄渚у彇璐э紙寰呭畬鎴愶級
- (int)TaskInStatusEnum.RGV_InZicheFinish => HandleZicheFinish(task),
- (int)TaskInStatusEnum.RGV_InZicheReleaseFinish => HandleZicheReleaseFinish(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 鍏ュ簱鏂规硶
- private Dt_Task? HandlePickupFinish(Dt_Task task)
+ private Dt_Task? HandleInboundTask(AGVStation RGVTaskdevice, GetStackerObject getStackerObject)
{
- try
+ if(RGVTaskdevice.Station_material== (int)RGVEquipment.InRGVForklift && getStackerObject.RgvCraneStatusValue== RgvEquipmentStatus.NoCargo)
{
- //鑾峰彇闇�瑕佸尯鍒嗘槸鍚﹀幓鍏ュ簱涓庡幓涓嶅悎鏍艰浇璐у彴浠诲姟
- IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "HCJ2000");
- CommonStackerCrane Commonstacker = (CommonStackerCrane)device;
- DeviceProDTO? deviceProDTO = GetDeviceProDTO(Commonstacker, task.NextAddress, "HCJ_GoodsStatus");
- int HCJGStatus = GetLine(Commonstacker, deviceProDTO.DeviceProAddress);
- if (HCJGStatus == 0) //涓烘棤璐�
+ return _taskService.GetInkouFinhuoTask(RGVTaskdevice.ChildPosiDeviceCode, 1);
+ }
+ else if (RGVTaskdevice.Station_material == (int)RGVEquipment.InRGVForklift && getStackerObject.RgvCraneStatusValue == RgvEquipmentStatus.HasCargo)
+ {
+ return _taskService.GetInkouFinhuoTask(RGVTaskdevice.ChildPosiDeviceCode, 2);
+ }else if (RGVTaskdevice.Station_material == (int)RGVEquipment.Corridorcar && getStackerObject.RgvCraneStatusValue == RgvEquipmentStatus.NoCargo)
+ {
+ return ZichePickUpAisle(RGVTaskdevice, getStackerObject);
+ }else if (RGVTaskdevice.Station_material == (int)RGVEquipment.Corridorcar && getStackerObject.RgvCraneStatusValue == RgvEquipmentStatus.HasCargo)
+ {
+ return GoodsPlacedCorridor(RGVTaskdevice, getStackerObject);
+ }
+ else if (RGVTaskdevice.Station_material == (int)RGVEquipment.Corridorcar && getStackerObject.RgvCraneStatusValue == RgvEquipmentStatus.NoCargo)
+ {
+ return ZicheMobile(RGVTaskdevice, getStackerObject);
+ }
+ else if (RGVTaskdevice.Station_material == (int)RGVEquipment.Mothertrailer && getStackerObject.RgvCraneStatusValue == RgvEquipmentStatus.HasCargo)
+ {
+ return MotherVehicleMovement(RGVTaskdevice);
+ }
+ else { return null; }
+
+ }
+
+
+ #region 杩囬亾瀛愯溅杩涜鍙栬揣
+ public Dt_Task? ZichePickUpAisle(AGVStation RGVTaskdevice, GetStackerObject getStackerObject)
+ {
+ //鑾峰彇瀛愯溅鍙栬揣浠诲姟
+ Dt_Task dt_Task = _taskService.GetInzicheTask(RGVTaskdevice.ChildPosiDeviceCode,1);
+ if(dt_Task.CurrentAddress== getStackerObject.RGVCurrentlocation.ToString())
+ {
+ return dt_Task;
+ }
+ else
+ {
+ //濡傛灉涓嶇瓑浜庯紝鍒欒繘琛屽垽鏂瓙杞﹀湪鍝釜浣嶇疆
+ if (RGVTaskdevice.Station_Area == 1)
{
- return task;
+ // 鏍规嵁瀛愯溅浣嶇疆澶勭悊涓嶅悓鎯呭喌
+ switch (getStackerObject.RGVCurrentlocation)
+ {
+ case int Waddress when Waddress == RGVTaskdevice.MotherCarDeviceCode:
+ return dt_Task;
+ case int Naddress when Naddress == RGVTaskdevice.MotherCardeputy:
+ return HandleMedialCase(dt_Task, RGVTaskdevice.MotherCarDeviceCode);
+ case int HCJaddress when HCJaddress == RGVTaskdevice.HCJStorageaddress:
+ return HandleMedialCase2(dt_Task, RGVTaskdevice);
+ default: return null;
+ }
}
+ else
+ {
+ //鍙朒CJ浣嶇殑鏂欏垽鏂�
+ switch (getStackerObject.RGVCurrentlocation)
+ {
+ case int Waddress when Waddress == RGVTaskdevice.MotherCarDeviceCode:
+ return dt_Task;
+ case int Naddress when Naddress == RGVTaskdevice.MotherCardeputy:
+ return HandleMedialCase(dt_Task, RGVTaskdevice.MotherCarDeviceCode);
+ default: return null;
+ }
+ }
+
}
- catch (Exception ex)
+ }
+ /// <summary>
+ /// 鍒ゆ柇澶栦晶姣嶈溅鏄惁鍦ㄥ叆鍙e彛
+ /// </summary>
+ /// <param name="task"></param>
+ /// <param name="currentStation"></param>
+ /// <returns></returns>
+ private Dt_Task? HandleMedialCase(Dt_Task task, int currentStation)
+ {
+ AGVStation Muche = _agvStationService.GetMothervehicle(currentStation);
+ int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode);
+ if (motherCarAddress == Muche.Motherinlaw) return task;
+ RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode);
+ return null;
+ }
+ /// <summary>
+ /// 鍒ゆ柇鍐呭渚ф瘝杞︽槸鍚﹀湪鍏ュ簱鍙�
+ /// </summary>
+ /// <param name="task"></param>
+ /// <param name="currentStation"></param>
+ /// <returns></returns>
+ private Dt_Task? HandleMedialCase2(Dt_Task task, AGVStation currentStation)
+ {
+ AGVStation Muche = _agvStationService.GetMothervehicle(currentStation.MotherCarDeviceCode); //澶栦晶姣嶈溅
+ AGVStation Muche2 = _agvStationService.GetMothervehicle(currentStation.MotherCardeputy); //鍐呬晶姣嶈溅
+
+ int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode);
+ int motherCarAddress2 = GetDeviceAddress.GetEquipmentlocation(Muche2.ChildPosiDeviceCode);
+ if (motherCarAddress == 0 || motherCarAddress2 == 0) return null;
+ // 濡傛灉姣嶈溅涓嶅湪棰勬湡浣嶇疆锛屼笅鍙戠Щ鍔ㄤ换鍔�
+ if (motherCarAddress != Muche.Motherinlaw)
{
- //璁板綍寮傚父鎯呭喌
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍒ゆ柇HCJ绔欏彴鏄惁鏈夎揣淇℃伅鍑洪敊锛屽嚭閿欎俊鎭細{ex.Message}");
- throw;
+ RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode);
}
+ if (motherCarAddress2 != Muche2.Motherinlaw)
+ {
+ RGVMovetask(Muche2.Motherinlaw, Muche2.ChildPosiDeviceCode);
+ }
+ if (motherCarAddress == Muche.Motherinlaw && motherCarAddress2 == Muche2.Motherinlaw) return task;
+ // 姣嶈溅宸插湪姝g‘浣嶇疆
+ return null;
+ }
+
+
+ #endregion
+
+ #region 杩囬亾瀛愯溅杩涜鏀捐揣
+ public Dt_Task? GoodsPlacedCorridor(AGVStation RGVTaskdevice, GetStackerObject getStackerObject)
+ {
+ Dt_Task task = _taskService.GetInzicheTask(RGVTaskdevice.ChildPosiDeviceCode, 2);
+ int nexaddres = int.Parse(task.NextAddress);
+ switch (nexaddres)
+ {
+ 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.GetEquipmentInMuche(Muche.ChildPosiDeviceCode);
+ if (motherCarAddress == Muche.ZicheMotherinlaw) return _Task;
+ if(motherCarAddress!=0) RGVMovetask(Muche.ZicheMotherinlaw, aGVStation.ChildPosiDeviceCode);
return null;
}
- private Dt_Task? HandleZicheFinish(Dt_Task task)
+ /// <summary>
+ /// 鍒ゆ柇鏀剧浜屼釜姣嶈溅浣嶇疆
+ /// </summary>
+ /// <param name="_Task"></param>
+ /// <param name="aGVStation"></param>
+ /// <returns></returns>
+ private Dt_Task? MotherCarMovesinside(Dt_Task _Task, AGVStation aGVStation)
{
- //鑾峰彇鏀捐揣鍦板潃
- AGVStation aGVStation = _agvStationService.GetAllStationByDeviceCode(int.Parse(task.NextAddress));
+ AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); //澶栦晶姣嶈溅
+ AGVStation Muche2 = _agvStationService.GetMothervehicle(aGVStation.MotherCardeputy); //鍐呬晶姣嶈溅
- //鍒�3鍖哄煙杩涜鏀捐揣
- return aGVStation.Station_Area switch
+ int motherCarAddress = GetDeviceAddress.GetEquipmentInMuche(Muche.ChildPosiDeviceCode);
+ int motherCarAddress2 = GetDeviceAddress.GetEquipmentInMuche(Muche2.ChildPosiDeviceCode);
+ // 濡傛灉姣嶈溅涓嶅湪棰勬湡浣嶇疆锛屼笅鍙戠Щ鍔ㄤ换鍔�
+ if (motherCarAddress != Muche.Motherinlaw && motherCarAddress != 0)
{
- 1 => CheckMotherCarMove(task, aGVStation, MotherCarMoves), //澶栦晶鏀捐揣
- 2 => CheckMotherCarMove(task, aGVStation, MotherCarMovesinside), //鍐呬晶鏀捐揣
- 3 => CheckMotherCarMove(task, aGVStation, HCJMotherCarMovesinside), //浜ゆ帴鐐规斁璐�
+ RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode);
+ }
+ if (motherCarAddress2 != Muche2.ZicheMotherinlaw && motherCarAddress2 != 0)
+ {
+ RGVMovetask(Muche2.ZicheMotherinlaw, Muche2.ChildPosiDeviceCode);
+ }
+ if (motherCarAddress == Muche.Motherinlaw && motherCarAddress2 == Muche2.ZicheMotherinlaw) return _Task;
+ // 姣嶈溅宸插湪姝g‘浣嶇疆
+ 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); //鍐呬晶姣嶈溅
+ AGVStation Ziche3 = _agvStationService.GetZicheDeep(aGVStation.HCJStorageaddress); //鍐呬晶瀛愯溅
+
+ int motherCarAddress = GetDeviceAddress.GetEquipmentInMuche(Muche.ChildPosiDeviceCode);
+ int motherCarAddress2 = GetDeviceAddress.GetEquipmentInMuche(Muche2.ChildPosiDeviceCode);
+ int ZiCarAddress3 = GetDeviceAddress.GetEquipmentInMuche(Ziche3.ChildPosiDeviceCode);
+ // 濡傛灉姣嶈溅涓嶅湪棰勬湡浣嶇疆锛屼笅鍙戠Щ鍔ㄤ换鍔�
+ if (motherCarAddress != Muche.Motherinlaw && motherCarAddress != 0)
+ {
+ RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode);
+ }
+ if (motherCarAddress2 != Muche2.Motherinlaw && motherCarAddress2 != 0)
+ {
+ RGVMovetask(Muche2.Motherinlaw, Muche2.ChildPosiDeviceCode);
+ }
+ if (ZiCarAddress3 == Ziche3.HCJStorageaddress && ZiCarAddress3!=0)
+ {
+ //鍒ゆ柇鐩爣绔欏彴鏄叆搴撳埌鍑犲彿鍫嗗灈鏈�
+ if (_Task.TargetAddress == "3") //鍏ュ簱鑷�3鍙峰爢鍨涙満
+ {
+ //鍒ゆ柇澶栦晶姣嶈溅浣嶇疆锛�2鍖哄煙锛�
+ AGVStation MucheN = _agvStationService.GetMothervehicle(Ziche3.MotherCarDeviceCode); //澶栦晶姣嶈溅
+ int motNCarAddress = GetDeviceAddress.GetEquipmentInMuche(MucheN.ChildPosiDeviceCode); //鑾峰彇鍒版瘝杞﹀綋鍓嶄綅缃�
+ if (motNCarAddress!=0)
+ {
+ if (MucheN.ZicheMotherinlaw == motNCarAddress)
+ {
+ RGVMovetask(Ziche3.MotherCarDeviceCode, Ziche3.ChildPosiDeviceCode);
+ }
+ else
+ {
+ RGVMovetask(MucheN.ZicheMotherinlaw, MucheN.ChildPosiDeviceCode);
+ }
+ }
+ }
+ else if (_Task.TargetAddress == "4") //鍏ュ簱鑷�4鍙峰爢鍨涙満
+ {
+ //鍒ゆ柇澶栦晶姣嶈溅浣嶇疆锛�2鍖哄煙锛�
+ AGVStation MucheN = _agvStationService.GetMothervehicle(Ziche3.MotherCarDeviceCode); //澶栦晶姣嶈溅
+ int motNCarAddress = GetDeviceAddress.GetEquipmentInMuche(MucheN.ChildPosiDeviceCode); //鑾峰彇鍒版瘝杞﹀綋鍓嶄綅缃�
+ if (MucheN.Motherinlaw != motNCarAddress && motNCarAddress!=0)
+ {
+ RGVMovetask(MucheN.Motherinlaw, MucheN.ChildPosiDeviceCode);
+ }
+ AGVStation MucheN2 = _agvStationService.GetMothervehicle(Ziche3.MotherCardeputy); //澶栦晶姣嶈溅
+ int motNCarAddress2 = GetDeviceAddress.GetEquipmentInMuche(MucheN2.ChildPosiDeviceCode); //鑾峰彇鍒版瘝杞﹀綋鍓嶄綅缃�
+ if (MucheN2.ZicheMotherinlaw != motNCarAddress2 && motNCarAddress2!=0)
+ {
+ RGVMovetask(MucheN2.ZicheMotherinlaw, MucheN2.ChildPosiDeviceCode);
+ }
+
+ if (MucheN.Motherinlaw == motNCarAddress && MucheN2.ZicheMotherinlaw == motNCarAddress2)
+ {
+ RGVMovetask(Ziche3.MotherCardeputy, Ziche3.ChildPosiDeviceCode);
+ }
+ }
+ }
+
+ if (motherCarAddress == Muche.Motherinlaw && motherCarAddress2 == Muche2.Motherinlaw && ZiCarAddress3 != Ziche3.HCJStorageaddress) return _Task;
+ // 姣嶈溅宸插湪姝g‘浣嶇疆
+ return null;
+ }
+ #endregion
+
+ #region 瀛愯溅绉诲姩浠诲姟(鍚庣画鍙兘闇�瑕佷紭鍖栦竴涓�)
+ public Dt_Task? ZicheMobile(AGVStation RGVTaskdevice, GetStackerObject getStackerObject)
+ {
+ Dt_Task task = _taskService.GetInzicheTaskMobile(RGVTaskdevice.ChildPosiDeviceCode, 1);
+ return task;
+ }
+ #endregion
+
+ #region 姣嶈溅绉诲姩浠诲姟
+ public Dt_Task? MotherVehicleMovement(AGVStation RGVTaskdevice)
+ {
+ Dt_Task task = _taskService.GetInzicheTaskMobile(RGVTaskdevice.ChildPosiDeviceCode, 2);
+ int curradder = int.Parse(task.CurrentAddress);
+ AGVStation GdZiche = _agvStationService.GetMotheaisle(curradder);
+ int motherCarAddress = GetDeviceAddress.GetEquipmentInformation(GdZiche.ChildPosiDeviceCode);
+ if (motherCarAddress != curradder && motherCarAddress!=0) return task;
+ RGVMovetask(GdZiche.Motherinlaw, GdZiche.ChildPosiDeviceCode);
+ return null;
+ }
+ #endregion
+
+ #endregion
+
+ #region 鍑哄簱鏂规硶
+ public Dt_Task? OutboundEquipmentTask(AGVStation RGVTaskdevice, GetStackerObject getStackerObject)
+ {
+ return (RGVTaskdevice.Station_material, getStackerObject.RgvCraneStatusValue) switch
+ {
+ ((int)RGVEquipment.Mothertrailer, RgvEquipmentStatus.HasCargo)
+ => Mothertaskdistribution(RGVTaskdevice),
+
+ ((int)RGVEquipment.Corridorcar, RgvEquipmentStatus.NoCargo)
+ => ChildPickupAddres(RGVTaskdevice),
+
+ ((int)RGVEquipment.Corridorcar, RgvEquipmentStatus.HasCargo)
+ => Findshippingtask(RGVTaskdevice),
+
+ ((int)RGVEquipment.OutRGVForklift, RgvEquipmentStatus.NoCargo)
+ => _taskService.GetOutkouFinhuoTask(RGVTaskdevice.ChildPosiDeviceCode,
+ RGVTaskdevice.HCJStorageaddress.ToString(), 1),
+
+ ((int)RGVEquipment.OutRGVForklift, RgvEquipmentStatus.HasCargo)
+ => _taskService.GetOutkouFinhuoTask(RGVTaskdevice.ChildPosiDeviceCode,
+ RGVTaskdevice.HCJStorageaddress.ToString(), 2),
+
_ => null
};
}
- private Dt_Task? CheckMotherCarMove(Dt_Task task, AGVStation station, Func<Dt_Task, AGVStation, bool> moveFunc)
- {
- return moveFunc(task, station) ? task : null;
- }
+ #region 涓嬪彂姣嶈溅浠诲姟锛岄渶瑕佸垽鏂綋鍓嶈灏忚溅鍦ㄥ摢涓綅瀛�
- private Dt_Task? HandleZicheReleaseFinish(Dt_Task task)
+ private Dt_Task? Mothertaskdistribution(AGVStation GdZiche)
{
- AGVStation aGVStation = _agvStationService.GetAllStationByDeviceCode(int.Parse(task.CurrentAddress)); //褰撳墠鍦板潃锛屾瘝杞︿笂锛屼笅涓�涓湴鍧�鍫嗗灈鏈哄彇璐у彛
- if (aGVStation.Station_Area == 1 && aGVStation.Station_Area == 2)
+ // 鎻愬墠妫�鏌ユ棤鏁堢殑Area鍊�
+ if (GdZiche.Station_Area < 1 || GdZiche.Station_Area > 4)
+ return null;
+
+ AGVStation ZicheinnerSide = _agvStationService.GetMotheaisle(GdZiche.ZicheMotherinlaw);
+ int ZiCarAddress3 = GetDeviceAddress.GetEquipmentInformation(ZicheinnerSide.ChildPosiDeviceCode);
+
+ // 浣跨敤switch璇彞鎻愰珮鍙鎬�
+ return GdZiche.Station_Area switch
{
- return task; //杩斿洖瀛愯溅绉诲姩浠诲姟
- }
- else if (aGVStation.Station_Area == 3) //褰撳墠鍦板潃涓篐CJ绔欏彴锛屼笖AGV浠诲姟涓哄彇璐�
- {
- return task; //鍘诲彇璐э紝闇�瑕佸垽鏂瓙杞﹀綋鍓嶄綅瀛愶紝锛堝悗缁紭鍖栵級
- }
+ 4 when ZiCarAddress3 != GdZiche.ZicheMotherinlaw
+ => _taskService.QueryStackerCraneTask(GdZiche.ChildPosiDeviceCode),
- return null;
- }
+ 3 when ZiCarAddress3 == ZicheinnerSide.HCJStorageaddress
+ => _taskService.QueryStackerCraneTask(GdZiche.ChildPosiDeviceCode),
- private Dt_Task? HandleZicheMoveFinish(Dt_Task task)
- {
- AGVStation aGVStation = _agvStationService.GetAllStationByDeviceCode(int.Parse(task.CurrentAddress));
- int zicheAddress = GetZichelocation(task, task.CurrentAddress);
+ 2 when ZiCarAddress3 != GdZiche.MotherCardeputy && ZiCarAddress3 != GdZiche.HCJStorageaddress
+ => _taskService.QueryStackerCraneTask(GdZiche.ChildPosiDeviceCode),
- //濡傛灉瀛愯溅鍦ㄦ瘝杞︿笂锛屽垯闇�瑕佺Щ搴撴瘝杞︼紙寰呬紭鍖栵級
- return zicheAddress != int.Parse(aGVStation.ZicheMotherinlaw) ? task : null;
+ 1 when ZiCarAddress3 == ZicheinnerSide.HCJStorageaddress
+ => _taskService.QueryStackerCraneTask(GdZiche.ChildPosiDeviceCode),
+
+ _ => null
+ };
}
#endregion
-
-
-
- //鍖哄煙涓�鍒ゆ柇姣嶈溅鏄惁鍒颁綅锛屽彲绔嬪嵆鏀捐揣
- private bool MotherCarMoves(Dt_Task _Task, AGVStation aGVStation)
+ #region 鍒ゆ柇宸茬Щ鍔ㄥ嚭鏉ョ殑姣嶈溅锛屽啀鍒ゆ柇灏忚溅浣嶇疆
+ public Dt_Task? ChildPickupAddres(AGVStation GdZiche)
{
- int mcadder = GetMothercarlocation(_Task.TaskNum, aGVStation.Motherinlaw); //鑾峰彇鍒版瘝杞﹀渚т綅缃�
- if(mcadder != 0)
- {
- if (mcadder == int.Parse(_Task.CurrentAddress))
- {
- return true;
- }
- RGVMovetask(_Task.CurrentAddress, aGVStation.ChildPosiDeviceCode,_Task.TaskId);
- }
- return false;
+ if (GdZiche.Station_Area == 5)
+ return _taskService.ChildVehicleMission(GdZiche);
+
+ var task = _taskService.ChildVehicleMission(GdZiche);
+
+ // 蹇�熻繑鍥炴潯浠舵鏌�
+ if (task.CurrentAddress != GdZiche.HCJStorageaddress.ToString())
+ return task;
+
+ var innerStation = _agvStationService.GetZicheDeep(GdZiche.HCJStorageaddress);
+ if (GetDeviceAddress.GetEquipmentInformation(innerStation.ChildPosiDeviceCode) != innerStation.HCJStorageaddress)
+ return task;
+
+ var motherStation = _agvStationService.GetMothervehicle(innerStation.MotherCarDeviceCode);
+ if (GetDeviceAddress.ReturnCurrentStatus(motherStation.ChildPosiDeviceCode))
+ RGVMovetask(innerStation.MotherCarDeviceCode, innerStation.ChildPosiDeviceCode);
+
+ return null;
}
+ #endregion
+
+ #region 鏌ユ壘瀛愯溅鏀捐揣浠诲姟
+ public Dt_Task? Findshippingtask(AGVStation GdZiche)
+ {
+ Dt_Task task = _taskService.GetFinhuoTask(GdZiche.ChildPosiDeviceCode);
+ if (GetDeviceAddress.HCJIsstock(task.NextAddress)) return task;
+ return null;
+ }
+ #endregion
+
+ #endregion
+
+ #region 鍑哄簱灏忚溅绉诲姩浠诲姟涓嬪彂
+ public void Returnposition(string DeviceCode, int RGVCurrentlocation)
+ {
+ int HCJGoodsplatform = 1170; //瀹氫箟鐨勬斁璐х珯鍙�
+ //鍒ゆ柇姣嶈溅鏄惁闇�瑕佽繘琛岀Щ鍔�
+ AGVStation GdZiche = _agvStationService.Corridorequipment(DeviceCode);
+ if (GdZiche.Station_Area == 1)
+ {
+ switch (RGVCurrentlocation)
+ {
+ 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: //鍦℉CJ绔欏彴涓�
+ OutHCJMotherCar(GdZiche);
+ break;
+ default: break;
+ }
+ }
+ else
+ {
+ switch (RGVCurrentlocation)
+ {
+ case int Whcjaddress when Whcjaddress == GdZiche.MotherCarDeviceCode: //鍦ㄧ涓�涓瘝杞︿笂锛岄渶瑕佸垽鏂渚у瓙杞︽槸鍚﹀湪HCJ涓�
+ OutinnerSideNMotherCar(GdZiche);
+ break;
+ case int Waddress when Waddress == GdZiche.MotherCardeputy: //鍦ㄧ浜屼釜姣嶈溅涓婏紝闇�瑕佸垽鏂瓙杞︿笌澶栦晶姣嶈溅鏄惁鍦ㄨ繃閬撲笂
+ OutinnerSideMotherCar(GdZiche);
+ break;
+ default: break;
+ }
+ }
+ }
+
+ #region 澶栦晶灏忚溅鍥炲綊鍒拌捣濮嬬偣浣�
+ /// <summary>
+ /// 鍒ゆ柇鏀剧浜屼釜姣嶈溅浣嶇疆
+ /// </summary>
+ /// <param name="_Task"></param>
+ /// <param name="aGVStation"></param>
+ /// <returns></returns>
+ private void OutNMotherCar(int MotherCarDeviceCode)
+ {
+ AGVStation Muche = _agvStationService.GetMothervehicle(MotherCarDeviceCode); //澶栦晶姣嶈溅
+ int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode);
+ if (motherCarAddress != Muche.Motherinlaw)
+ {
+ RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode);
+ }
+ }
+ private void OutHCJMotherCar(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
+
+ #region 澶栦晶灏忚溅鍥炲綊鍒拌捣濮嬬偣浣�
+ /// <summary>
+ /// 鍦ㄧ涓�涓綅缃紝鍒欏垽鏂渚у瓙杞︽槸鍚﹀湪HCJ绔欏彴涓嬮潰
+ /// </summary>
+ /// <param name="_Task"></param>
+ /// <param name="aGVStation"></param>
+ /// <returns></returns>
+ private void OutinnerSideNMotherCar(AGVStation aGVStation)
+ {
+ AGVStation Ziche3 = _agvStationService.GetZicheOuterSide(aGVStation.HCJStorageaddress); //澶栦晶瀛愯溅
+ int ZiCarAddress3 = GetDeviceAddress.GetEquipmentlocation(Ziche3.ChildPosiDeviceCode);
+ if (ZiCarAddress3 == Ziche3.HCJStorageaddress)
+ {
+ OutHCJMotherCar(Ziche3);
+ }
+ else
+ {
+ RGVMovetask(aGVStation.HCJStorageaddress, aGVStation.ChildPosiDeviceCode);
+ }
+ }
+ private void OutinnerSideMotherCar(AGVStation aGVStation)
+ {
+ AGVStation Muche = _agvStationService.GetMothervehicle(aGVStation.MotherCarDeviceCode); //澶栦晶姣嶈溅
+ int motherCarAddress = GetDeviceAddress.GetEquipmentlocation(Muche.ChildPosiDeviceCode);
+ // 濡傛灉姣嶈溅涓嶅湪棰勬湡浣嶇疆锛屼笅鍙戠Щ鍔ㄤ换鍔�
+ if (motherCarAddress != Muche.Motherinlaw)
+ {
+ RGVMovetask(Muche.Motherinlaw, Muche.ChildPosiDeviceCode);
+ }
+ OutinnerSideNMotherCar(aGVStation);
+
+ }
+ #endregion
+
+ #endregion
+
/// <summary>
/// 瀛愭瘝杞︾Щ鍔ㄤ换鍔�
@@ -243,164 +603,12 @@
/// <param name="RGVAdders">鐩爣鍦板潃</param>
/// <param name="ChildPosiDeviceCode">璁惧缂栧彿</param>
/// <returns></returns>
- private bool RGVMovetask(string RGVAdders,string ChildPosiDeviceCode,int taskid)
+ private bool RGVMovetask(int RGVAdders, string ChildPosiDeviceCode)
{
RgvCraneTaskCommand standardCommands = ConvertMotherCarTaskCommand(RGVAdders);
bool sendFlag = SendCommand2(standardCommands, ChildPosiDeviceCode);
- _taskExecuteDetailService.AddTaskExecuteDetail(taskid, $"绯荤粺鑷姩娴佺▼锛屾墽琛屾瘝杞︾Щ鍔ㄤ换鍔★紝姣嶈溅缂栧彿锛歿ChildPosiDeviceCode}锛岀Щ鍔ㄥ湴鍧�锛歿RGVAdders}锛屾槸鍚︿笅鍙戞垚鍔燂細{sendFlag}");
-
return sendFlag;
}
-
-
- /// <summary>
- /// 鍒ゆ柇鍐呬晶姣嶈溅浣嶇疆
- /// </summary>
- /// <param name="_Task"></param>
- /// <param name="aGVStation"></param>
- /// <returns></returns>
- private bool MotherCarMovesinside(Dt_Task _Task, AGVStation aGVStation)
- {
- //鑾峰彇澶栦晶姣嶈溅浣嶇疆
- int mcadder = GetMothercarlocation(_Task.TaskNum, aGVStation.MotherCarDeviceCode);
- //鑾峰彇鍐呬晶姣嶈溅浣嶇疆
- int ncadder = GetMothercarlocation(_Task.TaskNum, _Task.NextAddress);
-
- if (mcadder != int.Parse(aGVStation.MotherCarDeviceCode) && ncadder == aGVStation.Station_code)
- {
- return true;
- }
- else
- {
- if (mcadder == int.Parse(aGVStation.MotherCarDeviceCode))
- {
- AGVStation aGVSta = _agvStationService.GetMothercarCode(aGVStation.MotherCarDeviceCode);
-
- RGVMovetask(aGVSta.ChildPosiDeviceCode, aGVSta.Station_code.ToString(), _Task.TaskId);
-
- }
-
- if (ncadder != aGVStation.Station_code)
- {
- RGVMovetask(aGVStation.ChildPosiDeviceCode, aGVStation.Station_code.ToString(), _Task.TaskId);
-
- }
- }
- return false;
- }
- private bool HCJMotherCarMovesinside(Dt_Task _Task, AGVStation aGVStation)
- {
- //鑾峰彇澶栦晶姣嶈溅浣嶇疆
- int mcadder = GetMothercarlocation(_Task.TaskNum, aGVStation.MotherCarDeviceCode);
- //鑾峰彇鍐呬晶姣嶈溅浣嶇疆
- int ncadder = GetMothercarlocation(_Task.TaskNum, aGVStation.MotherCardeputy);
-
- if (mcadder != int.Parse(aGVStation.MotherCarDeviceCode) && ncadder != int.Parse(aGVStation.MotherCardeputy))
- {
- return true;
- }
- else
- {
- if (mcadder == int.Parse(aGVStation.MotherCarDeviceCode))
- {
- AGVStation aGVSta = _agvStationService.GetMothercarCode(aGVStation.MotherCarDeviceCode);
-
- RGVMovetask(aGVSta.ChildPosiDeviceCode, aGVSta.Station_code.ToString(), _Task.TaskId);
-
- }
-
- if (ncadder == int.Parse(aGVStation.MotherCardeputy))
- {
- AGVStation aGVSta = _agvStationService.GetMothercarCode(aGVStation.MotherCardeputy);
-
- RGVMovetask(aGVSta.ChildPosiDeviceCode, aGVSta.Station_code.ToString(), _Task.TaskId);
- }
- }
- return false;
- }
-
-
-
- //鍒ゆ柇鏄惁
- public bool GetMotherCarCurrentAdder(Dt_Task task)
- {
- try
- {
- IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "HCJ2000");
- CommonStackerCrane Commonstacker = (CommonStackerCrane)device;
- DeviceProDTO? deviceProDTO = GetDeviceProDTO(Commonstacker, task.CurrentAddress, "HCJ_GoodsStatus");
- int HCJGStatus = GetLine(Commonstacker, deviceProDTO.DeviceProAddress);
- if (HCJGStatus == 0) //涓烘棤璐�
- {
- return true;
- }
- }
- catch (Exception ex)
- {
- //璁板綍寮傚父鎯呭喌
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍒ゆ柇HCJ绔欏彴鏄惁鏈夎揣淇℃伅鍑洪敊锛屽嚭閿欎俊鎭細{ex.Message}");
- throw;
- }
-
- return false;
- }
-
-
-
- /// <summary>
- /// 浼犲叆杩囬亾鍦板潃锛岃幏鍙栨瘝杞︿綅缃�
- /// </summary>
- /// <param name="task"></param>
- /// <param name="MotherCarDeviceCode">杩囬亾鍦板潃</param>
- /// <returns></returns>
- public int GetMothercarlocation(int TaskNum, string MotherCarDeviceCode)
- {
- try
- {
- //鍒╃敤鍏ュ簱绔欏彴鍦板潃鑾峰彇姣嶈溅plc
- AGVStation aGVStation =_agvStationService.GetMothercarCode(MotherCarDeviceCode);
- IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == aGVStation.ChildPosiDeviceCode);
- CommonStackerCrane Commonstacker = (CommonStackerCrane)device;
- DeviceProDTO? deviceProDTO = GetDeviceProDTO(Commonstacker, aGVStation.ChildPosiDeviceCode, "RGVCurrentlocation");
- int HCJGStatus = GetLine(Commonstacker, deviceProDTO.DeviceProAddress);
- return HCJGStatus;
- }
- catch (Exception ex)
- {
- //璁板綍寮傚父鎯呭喌
- _taskService.UpdateTaskExceptionMessage(TaskNum, $"鍒ゆ柇姣嶈溅浣嶇疆淇℃伅鍑洪敊锛屽嚭閿欎俊鎭細{ex.Message}");
- throw;
- }
- }
-
-
- /// <summary>
- /// 浼犲叆杩囬亾鍦板潃锛岃幏鍙栧瓙杞﹁溅浣嶇疆
- /// </summary>
- /// <param name="task"></param>
- /// <param name="MotherCarDeviceCode">鍏ュ簱绔欏彴鍦板潃</param>
- /// <returns></returns>
- public int GetZichelocation(Dt_Task task, string ChildPosiDeviceCode)
- {
- try
- {
- IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == ChildPosiDeviceCode);
- CommonStackerCrane Commonstacker = (CommonStackerCrane)device;
- DeviceProDTO? deviceProDTO = GetDeviceProDTO(Commonstacker, ChildPosiDeviceCode, "RGVCurrentlocation");
- int HCJGStatus = GetLine(Commonstacker, deviceProDTO.DeviceProAddress);
- return HCJGStatus;
- }
- catch (Exception ex)
- {
- //璁板綍寮傚父鎯呭喌
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍒ゆ柇瀛愯溅浣嶇疆淇℃伅鍑洪敊锛屽嚭閿欎俊鎭細{ex.Message}");
- throw;
- }
- }
-
-
-
-
/// <summary>
/// 浠诲姟瀹炰綋杞崲鎴愬懡浠odel
/// </summary>
@@ -413,9 +621,9 @@
short locaticurr = task.RGVTaskType switch
{
_ when task.RGVTaskType == (short)RGVTaskTypeEnum.PickingUp ||
- task.RGVTaskType == (short)RGVTaskTypeEnum.TravelingOnly
+ (task.RGVTaskType == (short)RGVTaskTypeEnum.TravelingOnly && task.TaskType != (int)TaskInStatusEnum.RGV_InZichemoveFinish)
=> short.Parse(task.CurrentAddress),
- _ when task.RGVTaskType == (short)RGVTaskTypeEnum.Placing
+ _ when task.RGVTaskType == (short)RGVTaskTypeEnum.Placing || (task.RGVTaskType == (short)RGVTaskTypeEnum.TravelingOnly && task.TaskType== (int)TaskInStatusEnum.RGV_InZichemoveFinish)
=> short.Parse(task.NextAddress),
_ => (short)0
};
@@ -433,58 +641,26 @@
/// <param name="task">浠诲姟瀹炰綋</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
- public RgvCraneTaskCommand? ConvertMotherCarTaskCommand(string RGVAddress)
+ public RgvCraneTaskCommand? ConvertMotherCarTaskCommand(int RGVAddress)
{
RgvCraneTaskCommand stackerCraneTaskCommand = new RgvCraneTaskCommand();
- stackerCraneTaskCommand.RGV_RGVTasklocation = short.Parse(RGVAddress);
+ stackerCraneTaskCommand.RGV_RGVTasklocation = (short)RGVAddress;
stackerCraneTaskCommand.RGV_RGVtasktype = 3;
stackerCraneTaskCommand.RGV_Rgvtaskid = 999; //rgv浠诲姟鍙�
stackerCraneTaskCommand.RGV_Lanjiantaskid = 999; //鍏板墤浠诲姟id
return stackerCraneTaskCommand;
}
-
-
- public void wcsWriteLog(string SCLLinStack, string Logtype, string Magessadd)
- {
- WriteLog.Write_Log("RGV", SCLLinStack + "鍙稲GV", Logtype, new { 淇℃伅 = Magessadd });
- }
-
-
-
- //===========================================================HCJ鍗忚璇诲啓鏌�=============================================================================
- /// <summary>
- /// 鏌ヨ鍏蜂綋鍦板潃
- /// </summary>
- /// <param name="Commonstacker"></param>
- /// <param name="SCAddress"></param>
- /// <param name="Interactivet"></param>
- /// <returns></returns>
- public DeviceProDTO? GetDeviceProDTO(CommonStackerCrane Commonstacker, string SCAddress, string Interactivet)
- {
- return Commonstacker.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SCAddress && x.DeviceProParamName == Interactivet && x.DeviceProParamType== "ReadDeviceCommand");
- }
- /// <summary>
- /// 鏍瑰湴鍧�璇诲彇杈撻�佺嚎淇℃伅
- /// </summary>
- /// <param name="conveyorLine"></param>
- /// <param name="DeviceProDataBlock"></param>
- /// <returns></returns>
- public int GetLine(CommonStackerCrane Commonstacker, string DeviceProDataBlock)
- {
- return Commonstacker.Communicator.Read<short>(DeviceProDataBlock);
- }
- //===========================================================HCJ鍗忚璇诲啓鏌�===============================================================================
-
-
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 = GetDeviceProDTO(Commonstacker, DeviceCode, "RGV_Rgvtaskstutas");
- int MCGStatus = GetLine(Commonstacker, deviceProDTO.DeviceProAddress);
+ DeviceProDTO? deviceProDTO = GetDeviceAddress.GetRGVDeviceProDTO(Commonstacker, DeviceCode, "RGV_Rgvtaskstutas");
+ int MCGStatus = GetDeviceAddress.RGVGetLine(Commonstacker, deviceProDTO.DeviceProAddress);
+
+
if (Commonstacker.IsConnected)
{
if (MCGStatus == (int)RgvJobCraneStatus.Ready)
--
Gitblit v1.9.3