From 08eb1d72105662b301275fefd876be18df1b9fec Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期二, 29 四月 2025 15:12:47 +0800
Subject: [PATCH] 修改小车充电流程
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 117 +++++++++++++++++++-------------------
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 8 +-
Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs | 12 ++-
3 files changed, 72 insertions(+), 65 deletions(-)
diff --git a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
index 5a0b3ce..34fc097 100644
--- a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
+++ b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
@@ -76,12 +76,16 @@
/// 鏋侀檺鐢甸噺 浣庝簬姝ょ數閲忎笉鎵ц浠诲姟
/// </summary>
[Description("鏋侀檺鐢甸噺")]
- Dl = 30,
+ Dl = 60,
/// <summary>
/// 鍋ュ悍鐢甸噺 浣庝簬姝ょ數閲� 涓旀棤浠诲姟鏃跺幓鍏呯數
/// </summary>
[Description("鍋ュ悍鐢甸噺")]
- Dl2 = 80,
-
-
+ Dl2 = 90,
+ /// <summary>
+ /// 鏋侀檺鐢甸噺 浣庝簬姝ょ數閲忎笉鎵ц浠诲姟
+ /// </summary>
+ [Description("鏋侀檺鐢甸噺")]
+ Dl3 = 50,
+
}
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index a25f1e5..bc201db 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -170,68 +170,66 @@
int valueTaskStr = Convert.ToInt32(valueTask);
//鑾峰彇浠诲姟淇℃伅 鏍规嵁 浠诲姟鍙枫�佸皬杞︾紪鍙�
var carTask = _db.Queryable<WcsCarTasks>().First(m=>m.IsDelete == false && m.Status == TaskStatusEnum.Doing && m.CarTaskNo == valueTaskStr && m.CarNo == modDevice.PlcIdIP);
- if (carTask == null)
+ if (carTask != null)
{
//var modRests = modDevice.listStation.FirstOrDefault(s => s.Text == "澶嶄綅");
//plcConn.SetDBValue(modRests.PosType, modRests.PlcPos, "1");//娌℃湁鎵惧埌浠诲姟 澶嶄綅
- return;
- }
-
- var modFinshTask = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.TaskNo == carTask.TaskNo);
- if (modFinshTask == null)
- {
- break;//娌℃湁鏌ヨ鍒版�讳换鍔�
- }
- if (carTask != null && carTask.Status != TaskStatusEnum.Complete)
- {
- carTask.Status = TaskStatusEnum.Complete;
- carTask.UpdateTime = DateTime.Now;
- _db.Updateable(carTask).ExecuteCommand();
- //娣诲姞浠诲姟鏄庣粏
- var taskMonitor = new WcsTaskMonitor()
- {
- TaskNo = carTask.TaskNo,
- PlcName = modDevice.Text,
- InteractiveMsg = $"绌挎杞﹀弽棣堜换鍔″畬鎴�"
- };
- _db.Insertable(taskMonitor).ExecuteCommand();
- //涓嬪彂浠诲姟鏃ュ織
- HubUtil.PublicTaskMonitor(taskMonitor.Adapt<WcsTaskMonitorOutput>());
- }
- //鑾峰彇璺緞2鐨勪换鍔� 涓嬪彂
- carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First();
- //鎬讳换鍔′笅娌℃湁鍏朵粬鏈墽琛屽皬杞︾殑浠诲姟 鍙樻洿鎬讳换鍔′俊鎭�
- if (carTaskNext == null && modFinshTask != null && modFinshTask.Status != TaskStatusEnum.Complete)
- {
- modFinshTask.Status = TaskStatusEnum.Complete;
- modFinshTask.FinishDate = DateTime.Now;
- _db.Updateable(modFinshTask).ExecuteCommand();
-
- //鍒ゆ柇浠诲姟鏄惁鍏呯數浠诲姟,涓嬪彂寮�濮嬪厖鐢靛懡浠�
- if (modFinshTask.Levels == 888)
+ var modFinshTask = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.TaskNo == carTask.TaskNo);
+ if (modFinshTask == null)
{
- //鍐欏叆寮�濮嬪厖鐢�
- var modCd = modDevice.listStation.FirstOrDefault(s => s.Text == "鍏呯數鍛戒护");
- plcConn.SetDBValue(modCd.PosType, modCd.PlcPos.ToString(), "2");
+ break;//娌℃湁鏌ヨ鍒版�讳换鍔�
+ }
+ if (carTask != null && carTask.Status != TaskStatusEnum.Complete)
+ {
+ carTask.Status = TaskStatusEnum.Complete;
+ carTask.UpdateTime = DateTime.Now;
+ _db.Updateable(carTask).ExecuteCommand();
+ //娣诲姞浠诲姟鏄庣粏
+ var taskMonitor = new WcsTaskMonitor()
+ {
+ TaskNo = carTask.TaskNo,
+ PlcName = modDevice.Text,
+ InteractiveMsg = $"绌挎杞﹀弽棣堜换鍔″畬鎴�"
+ };
+ _db.Insertable(taskMonitor).ExecuteCommand();
+ //涓嬪彂浠诲姟鏃ュ織
+
+ HubUtil.PublicTaskMonitor(taskMonitor.Adapt<WcsTaskMonitorOutput>());
}
-
- //鍙嶉WMS绯荤粺 浠诲姟瀹屾垚
- //HttpService httpService = new HttpService();
- //var requestMode = new TaskRequestWMS()
- //{
- // TaskNo = modFinshTask.TaskNo,
- // PalletNo = modFinshTask.PalletNo,
- // TaskType = ((int)modFinshTask.TaskType).ToString(),
- // TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
- //};
- //var modResponseTask = httpService.RequestTask(requestMode).Result;
- //modFinshTask.IsSuccess = TaskSuccessEnum.Success;
- //_db.Updateable(modFinshTask).ExecuteCommand();
- HubUtil.PublicTask(modFinshTask.Adapt<WcsTaskOutput>());
+ //鑾峰彇璺緞2鐨勪换鍔� 涓嬪彂
+ carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First();
+ //鎬讳换鍔′笅娌℃湁鍏朵粬鏈墽琛屽皬杞︾殑浠诲姟 鍙樻洿鎬讳换鍔′俊鎭�
+ if (carTaskNext == null && modFinshTask != null && modFinshTask.Status != TaskStatusEnum.Complete)
+ {
+ modFinshTask.Status = TaskStatusEnum.Complete;
+ modFinshTask.FinishDate = DateTime.Now;
+ _db.Updateable(modFinshTask).ExecuteCommand();
+ //鍒ゆ柇浠诲姟鏄惁鍏呯數浠诲姟,涓嬪彂寮�濮嬪厖鐢靛懡浠�
+ if (modFinshTask.Levels == 888)
+ {
+ //鍐欏叆寮�濮嬪厖鐢�
+ var modCd = modDevice.listStation.FirstOrDefault(s => s.Text == "鍏呯數鍛戒护");
+ plcConn.SetDBValue(modCd.PosType, modCd.PlcPos.ToString(), "2");
+ }
+
+ //鍙嶉WMS绯荤粺 浠诲姟瀹屾垚
+ //HttpService httpService = new HttpService();
+ //var requestMode = new TaskRequestWMS()
+ //{
+ // TaskNo = modFinshTask.TaskNo,
+ // PalletNo = modFinshTask.PalletNo,
+ // TaskType = ((int)modFinshTask.TaskType).ToString(),
+ // TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
+ //};
+ //var modResponseTask = httpService.RequestTask(requestMode).Result;
+ //modFinshTask.IsSuccess = TaskSuccessEnum.Success;
+ //_db.Updateable(modFinshTask).ExecuteCommand();
+ HubUtil.PublicTask(modFinshTask.Adapt<WcsTaskOutput>());
+
+ }
}
-
}
WcsTask modTask;
@@ -260,12 +258,12 @@
var modStationZ = modDevice.listStation.FirstOrDefault(s => s.Text == "鍥涘悜杞︿綅缃�(Z)");
var (resultz, valuez) = plcConn.GetDBValue(modStationZ.PosType, modStationZ.PlcPos);
var carXYZ = valuex.ToString().PadLeft(2, '0') + valuey.ToString().PadLeft(2, '0') + valuez.ToString().PadLeft(2, '0');
- if (modTask == null || carTaskNext == null)
+ if (modTask == null)
{
//璇诲彇灏忚溅鐢甸噺
var modPosCarDl = modDevice.listStation.FirstOrDefault(s => s.Text == "鐢垫睜鐢甸噺");
var (resultDl, valueDl) = plcConn.GetDBValue(modPosCarDl.PosType, modPosCarDl.PlcPos);
- if (resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl)
+ if (resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl)
{
var endLocateCar = "";
if (valuez == 1)
@@ -297,7 +295,7 @@
_db.Insertable(modCarTask).ExecuteCommand();
HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
}
- else if(resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl2)
+ else if(resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl2)
{
//鍒ゆ柇灏忚溅鏄惁鏈夌┖闂叉椂闂磋褰� 娌℃湁锛氭坊鍔� 鏈夛細鍒ゆ柇褰撳墠鏃堕棿涓庤褰曟椂闂存槸鍚︽弧瓒�5鍒嗛挓 婊¤冻锛氭坊鍔犺灏忚溅鍘诲厖鐢典换鍔�
var carTime = _db.Queryable<WcsCarTime>().First(m => m.IsDelete == false && m.CarIp == modDevice.PlcIdIP);
@@ -364,7 +362,10 @@
return;
}
-
+ if (carTaskNext == null)
+ {
+ return;
+ }
if (carTaskNext.Status == TaskStatusEnum.Doing)
{
Thread.Sleep(3000);
diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 08712ca..ab3e7b4 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -417,11 +417,11 @@
{
var modCarDl = plcPosition.FirstOrDefault(s => s.Text == "鐢垫睜鐢甸噺");
var (resultDl, valueDl) = modbusUtil.GetDBValue(modCarDl.PosType, modCarDl.PlcPos);
- if (resultDl.IsSucceed && valueDl> FourWayCarDLEnum.Dl)
+ if (resultDl.IsSucceed && valueDl> (int)FourWayCarDLEnum.Dl3)
{
//鍐欏叆缁撴潫鍏呯數鍛戒护
var modCdEnd = plcPosition.FirstOrDefault(s => s.Text == "鍏呯數鍛戒护");
- modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "2") ;
+ var resultDl22 = modbusUtil.SetDBValue(modCdEnd.PosType, modCdEnd.PlcPos.ToString(), "3") ;
carErr = true;
break; //鏆傜紦鍒嗛厤锛岄槻姝㈠悓灞傚皬杞﹀叧鏈烘垨澶辫仈瀵艰嚧闃绘尅璺緞
}
@@ -505,13 +505,15 @@
}
}
var typeStr = "1";
+ var typeStr2 = 1;
if (waitTask.Levels == 888 )
{
typeStr = "0";//灏忚溅浠诲姟鏄厖鐢典换鍔�
+ typeStr2 = 0;
}
//鑾峰彇灏忚溅鍘绘斁璐у偍浣嶄换鍔¤矾寰�
var data2 = FourWayCarUtil.GetCarPath(waitTask.StartLocate, waitTask.EndLocate, typeStr);
- var datas2 = FourWayCarUtil.GetCarPathUp(data2, 1);
+ var datas2 = FourWayCarUtil.GetCarPathUp(data2, typeStr2);
if (datas2 == null)
{
--
Gitblit v1.8.0