From 18828b299d8208cfba1e70b08ba86b4e9c5b91f5 Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期二, 25 十一月 2025 14:51:09 +0800
Subject: [PATCH] 优化入库效率
---
代码管理/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SpeStackerCraneJob/SpeStackerCraneJob.cs | 134 ++++++++++++++++++++++++++++++++++++--------
1 files changed, 110 insertions(+), 24 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 d8bac0e..a3943da 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"
@@ -64,6 +64,8 @@
{
try
{
+ //WriteLog.Write_Log("23");
+
SpeStackerCrane speStackerCrane = (SpeStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
if (speStackerCrane != null)
{
@@ -78,7 +80,7 @@
}
//鍒ゆ柇褰撳墠璁惧鏄叆搴撹繕鏄嚭搴�
- /*if (GetDeviceAddress.OutbounMotherChildCartbool(speStackerCrane.DeviceCode))
+ if (GetDeviceAddress.OutbounMotherChildCartbool(speStackerCrane.DeviceCode))
{
//鍒ゆ柇褰撳墠瀹夊叏闂ㄦ槸鍚︿负缁胯壊鐏�
if (GetDeviceAddress.ReadAqmDecicStice(1))
@@ -92,11 +94,8 @@
if (GetDeviceAddress.ReadAqmDecicStice(2))
{
return null;
- }
- }*/
-
-
-
+ }
+ }
if (getStackerObject.RgvCraneAutoStatusValue == RgvCraneAutoStatus.Automatic &&
@@ -166,7 +165,10 @@
_taskService.HandleInAbnormal(getStackerObject.CurrentRgvtaskid);
//鍐欏叆寮傚父瀹屾垚鎶ヨ淇℃伅
- speStackerCrane.Communicator.Write<short>("DB101.36", 1); //鍐欏叆鎶ヨ
+ //speStackerCrane.Communicator.Write<short>("DB101.36", 1); //鍐欏叆鎶ヨ
+
+ speStackerCrane.SetValue(RGV_taskcoDBName.RGV_taskcomplete, 1);
+ speStackerCrane.SetValue(RGV_taskcoDBName.RGV_taskcomplete, 0);
}
}
#endregion
@@ -216,23 +218,32 @@
public Dt_Task? ForkliftUnloading(AGVStation RGVTaskdevice)
{
Dt_Task dt_Task = _taskService.GetInkouFinhuoTask(RGVTaskdevice.ChildPosiDeviceCode);
-
+ if (dt_Task == null) return null;
//鍒ゆ柇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)
+ if ((ziche == zichestation.WaitmomentOne || ziche == zichestation.WaitmomentTwo || ziche == zichestation.MotherCarDeviceCode || ziche == zichestation.MotherCardeputy || ziche == zichestation.HCJStorageaddress) && ziche != 1021 && ziche !=0)
{
//鑾峰彇杩欎釜鎺ラ┏鍙版槸鍚︽湁鍙栬揣浠诲姟
Dt_Task zitask = _taskService.ViceChariotPickupTask2(RGVTaskdevice.ChildPosiDeviceCode);
if (zitask == null)
{
-
return dt_Task;
}
}
+ else
+ {
+ //濡傛灉娌¤揣锛屽垯涓嬪彂绉诲姩浠诲姟
+ RGVMovetask(RGVTaskdevice.HCJStorageaddress, RGVTaskdevice.ChildPosiDeviceCode);
+ }
+ }
+ else
+ {
+ //濡傛灉娌¤揣锛屽垯涓嬪彂绉诲姩浠诲姟
+ RGVMovetask(RGVTaskdevice.HCJStorageaddress, RGVTaskdevice.ChildPosiDeviceCode);
}
return null;
}
@@ -244,6 +255,10 @@
//鑾峰彇瀛愯溅鍙栬揣浠诲姟
Dt_Task dt_Task = _taskService.ViceChariotPickupTask(RGVTaskdevice.ChildPosiDeviceCode);
if (dt_Task == null) return null;
+
+ //鍒ゆ柇HCJ绔欏彴鏄惁鏈夎揣
+ if (GetDeviceAddress.HCJIsstock(dt_Task.CurrentAddress)) return null;
+
if (RGVTaskdevice.Station_Area == 6) //澶栦晶杩涘彇璐э紝鍒欓渶瑕佸垽鏂瓙杞﹀綋鍓嶄綅缃�
{
if (getStackerObject.RGVCurrentlocation == RGVTaskdevice.WaitmomentOne)
@@ -270,22 +285,19 @@
}
else if (mu2 == InMotherVehicle.Motherinlaw)
{
- RGVMovetask(InMotherVehicle.ZicheMotherinlaw, InMotherVehicle.ChildPosiDeviceCode);
+
+ //鍒ゆ柇姣嶈溅鏄惁鏈変换鍔�
+ Dt_Task muche1task = _taskService.MothermachinemovementTask2(InMotherVehicle.ChildPosiDeviceCode);
+ if (muche1task == null)
+ {
+ 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) //鍒欓渶瑕佸垽鏂袱涓瘝杞︾殑浣嶅瓙
@@ -350,6 +362,29 @@
{
return dt_Task;
}
+
+ //鍒ゆ柇鍐呬晶鏄惁鏈夎揣锛屾槸鍚︽湁浠诲姟
+
+ if (int.Parse(dt_Task.TargetAddress) == (int)StorageAisleEnum.LaneThree || int.Parse(dt_Task.TargetAddress) == (int)StorageAisleEnum.LaneFour)
+ {
+ int taraddress = int.Parse(dt_Task.TargetAddress);
+ var InMotherVehicle = _agvStationService.ObtainCcordingTunnel(taraddress); //鑾峰彇鍒伴渶瑕佸叆搴撶殑姣嶈溅(2宸烽亾)
+ int mu2 = GetDeviceAddress.GetEquipmentlocation(InMotherVehicle.ChildPosiDeviceCode); //姝ゆ椂鐨凴GV搴旇鏃犺揣
+ if (GetDeviceAddress.Mucheywhaddres(InMotherVehicle.ChildPosiDeviceCode)) //鍒ゆ柇鏃犺揣
+ {
+ if (mu2 == InMotherVehicle.Motherinlaw)
+ {
+ //鍒ゆ柇姣嶈溅鏄惁鏈変换鍔�
+ Dt_Task muche1task = _taskService.MothermachinemovementTask2(InMotherVehicle.ChildPosiDeviceCode);
+ if (muche1task == null)
+ {
+ RGVMovetask(InMotherVehicle.ZicheMotherinlaw, InMotherVehicle.ChildPosiDeviceCode);
+ }
+ }
+
+ }
+ }
+
}
else if (getStackerObject.RGVCurrentlocation == RGVTaskdevice.WaitmomentTwo) //闇�瑕佸垽鏂�3宸烽亾姣嶈溅鏄惁鍦ㄥ彇璐х珯鍙�
@@ -462,7 +497,7 @@
{
//鍒ゆ柇姣嶈溅鏄惁鏈変换鍔�
Dt_Task _Task1 = _taskService.MothermacTask(Muche.ChildPosiDeviceCode);
- if (task == null)
+ if (_Task1 == null)
{
RGVMovetask(Muche.ZicheMotherinlaw, Muche.ChildPosiDeviceCode); //濡傛灉娌℃湁浠诲姟锛屽垯鍙互杩涜绉诲姩鍑烘潵
}
@@ -512,8 +547,8 @@
Dt_Task task = _taskService.MothermachinemovementTask2(Muche2.ChildPosiDeviceCode); //鑾峰彇鍒版瘝杞︾Щ鍔ㄤ换鍔�
if (task == null)
{
- Dt_Task _Task1 = _taskService.MothermacTask(Muche.ChildPosiDeviceCode);
- if (task == null)
+ Dt_Task _Task1 = _taskService.MothermacTask(Muche2.ChildPosiDeviceCode);
+ if (_Task1 == null)
{
RGVMovetask(Muche2.ZicheMotherinlaw, Muche2.ChildPosiDeviceCode); //濡傛灉娌℃湁浠诲姟锛屽垯鍙互杩涜绉诲姩鍑烘潵
}
@@ -731,6 +766,16 @@
{
return dtTasks;
}
+ else
+ {
+ //濡傛灉姣嶈溅鏃犺揣锛屽垯涓嬪埌閲岄潰鍘�
+ bool NoCargobool = GetDeviceAddress.Mucheywhaddres(muchestation.ChildPosiDeviceCode);
+ if (NoCargobool)
+ {
+ //涓嬪彂姣嶈溅绉诲姩浠诲姟
+ RGVMovetask(muchestation.Motherinlaw, muchestation.ChildPosiDeviceCode);
+ }
+ }
}
}
}
@@ -767,6 +812,16 @@
{
return dtTasks;
}
+ else
+ {
+ //濡傛灉姣嶈溅鏃犺揣锛屽垯涓嬪埌閲岄潰鍘�
+ bool NoCargobool = GetDeviceAddress.Mucheywhaddres(muchestation.ChildPosiDeviceCode);
+ if (NoCargobool)
+ {
+ //涓嬪彂姣嶈溅绉诲姩浠诲姟
+ RGVMovetask(muchestation.Motherinlaw, muchestation.ChildPosiDeviceCode);
+ }
+ }
}
}
@@ -784,6 +839,25 @@
var mu2rgv = _agvStationService.GetMothervehicle(GdZiche.MotherCardeputy);
int mu2 = GetDeviceAddress.GetEquipmentlocation(mu2rgv.ChildPosiDeviceCode);
+
+ //闇�瑕佸垽鏂瘝杞︽槸鍚︽湁璐э紝鏃犺揣鍒欎笅鏂硅嚦绉诲姩浠诲姟
+ bool NoCargobool = GetDeviceAddress.Mucheywhaddres(mu1rgv.ChildPosiDeviceCode);
+ if (NoCargobool)
+ {
+ //涓嬪彂姣嶈溅绉诲姩浠诲姟
+ RGVMovetask(mu1rgv.Motherinlaw, mu1rgv.ChildPosiDeviceCode);
+ }
+
+
+ bool NoCargobool2 = GetDeviceAddress.Mucheywhaddres(mu2rgv.ChildPosiDeviceCode);
+ if (NoCargobool2)
+ {
+ //涓嬪彂姣嶈溅绉诲姩浠诲姟
+ RGVMovetask(mu2rgv.Motherinlaw, mu2rgv.ChildPosiDeviceCode);
+ }
+
+
+
if (mu1 == mu1rgv.Motherinlaw && mu2 == mu2rgv.Motherinlaw)
{
@@ -849,7 +923,12 @@
int mucboject4 = GetDeviceAddress.GetEquipmentlocation(muchestation2.ChildPosiDeviceCode);
if (mucboject4 == muchestation2.Motherinlaw)
{
- return task;
+ //鍒ゆ柇鍙夎溅鏄惁鏈夊彇璐т换鍔�
+ Dt_Task chachetask = _taskService.ChacheGetFinhuoTask("RGV118");
+ if(chachetask == null)
+ {
+ return task;
+ }
}
}
@@ -987,6 +1066,13 @@
}
}
+ }else if(task != null && RgvCraneStatusValue == (int)RgvEquipmentStatus.NoCargo)
+ {
+ if (GdZiche.HCJStorageaddress == RGVCurrentlocation)
+ {
+ //濡傛灉鍦�2宸烽亾鐨勬瘝杞︼紝鍒欏彲浠ユ斁瀛愯溅鏉�1鍙风瓑寰呯偣锛屽鏋滃湪HCJ鍒欏彲浠ヨ瀛愯溅鍘�2鍙�
+ RGVMovetask(GdZiche.WaitmomentTwo, GdZiche.ChildPosiDeviceCode);
+ }
}
}
}
--
Gitblit v1.9.3