From 13a442afefdddf1ec9ecd1e22c81735bf5c6a465 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-JIE70N9>
Date: 星期二, 10 六月 2025 16:08:24 +0800
Subject: [PATCH] 修改问题
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 236 ++++++++++++++++++++++++++-------------
Admin.NET/WCS.Application/Util/FourWayCarUtil.cs | 6
Admin.NET/WCS.Application/OpenApi/OpenApi.cs | 8
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 20 ++-
Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs | 2
Admin.NET/WCS.Application/PLC/ModbusUtil.cs | 36 +++++
6 files changed, 216 insertions(+), 92 deletions(-)
diff --git a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
index 8edc2ce..731f5b9 100644
--- a/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
+++ b/Admin.NET/WCS.Application/Enum/FourWayCarEnum.cs
@@ -81,7 +81,7 @@
/// 鍋ュ悍鐢甸噺 浣庝簬姝ょ數閲� 涓旀棤浠诲姟鏃跺幓鍏呯數
/// </summary>
[Description("鍋ュ悍鐢甸噺")]
- Dl2 = 75,
+ Dl2 = 60,
}
diff --git a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
index e1a8e4b..aadbd65 100644
--- a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
@@ -98,7 +98,8 @@
throw Oops.Bah("浠诲姟宸插瓨鍦�!");
}
var listTask = new List<WcsTask>();
- foreach (var models in modelList)
+ var list = modelList.OrderBy(m => m.Order).ThenBy(m => m.TaskNo).ToList();
+ foreach (var models in list)
{
if (models.TaskType == "0")
{
@@ -125,6 +126,7 @@
EndLocate = models.EndLocate,
EndRoadway = models.EndRoadway,
PalletNo = models.PalletNo,
+ CreateTime = DateTime.Now
};
// 鑻ラ潪AGV浠诲姟澧炲姞浠诲姟ID
@@ -133,9 +135,9 @@
taskAdd.TaskId = FourWayCarUtil.GetTaskId();
}
- listTask.Add(taskAdd);
+ await _db.Insertable(taskAdd).ExecuteCommandAsync();
}
- await _db.Insertable(listTask).ExecuteCommandAsync();
+
}
/// <summary>
/// WCS鎺ュ彈WMS涓嬪彂鐨勪换鍔�(鍗曟潯浠诲姟)
diff --git a/Admin.NET/WCS.Application/PLC/ModbusUtil.cs b/Admin.NET/WCS.Application/PLC/ModbusUtil.cs
index 1c77885..d34c77c 100644
--- a/Admin.NET/WCS.Application/PLC/ModbusUtil.cs
+++ b/Admin.NET/WCS.Application/PLC/ModbusUtil.cs
@@ -1,4 +1,5 @@
-锘縰sing IoTClient;
+锘縰sing Furion.Logging;
+using IoTClient;
using IoTClient.Clients.Modbus;
using IoTClient.Common.Enums;
using IoTClient.Enums;
@@ -270,4 +271,37 @@
return new IoTClient.Result();
}
}
+
+ /// <summary>
+ /// 寰幆鍐欏叆PLC鍊硷紙骞惰鍙栧�煎垽鏂拰鍐欏叆鐨勫�兼槸鍚︿竴鑷达紝鍐欏叆鎺у埗瀛椾笉鑳界敤姝ゆ柟娉曪級
+ /// </summary>
+ public IoTClient.Result SetDBValueRepeat(PLCDataTypeEnum PosType, string Pos, string Value)
+ {
+ IoTClient.Result _result = new IoTClient.Result();
+
+ int setCount = 0;//鍐欏叆娆℃暟
+ while (setCount < 5)
+ {
+ _result = this.SetDBValue(PosType, Pos, Value);//鍐欏叆鍊�
+
+ //绱鍐欏叆娆℃暟
+ setCount++;
+
+ if (_result.IsSucceed)
+ {
+ //璇诲彇鍐欏叆鐨勫��
+ var (res, val) = GetDBValue(PosType, Pos);
+ if (val.ToString() == Value)
+ {
+ //璇诲彇鐨勫�煎拰鍐欏叆鐨勫�间竴鑷达紝鐩存帴璺冲嚭寰幆
+ break;
+ }
+ }
+ }
+ //鍐欏叆鏃ュ織
+ Log.Information($"鍐欏叆PLC锛孭os:{Pos},Value:{Value},setCount:{setCount}");
+
+ return _result;
+ }
+
}
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index a9b033e..7167186 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -39,6 +39,10 @@
AGV(mod); // AGV璋冨害
break;
case PLCTypeEnum.ShuttleCar: //绌挎杞�
+ //if (mod.PlcIdIP == "10.26.254.28")
+ //{
+ // break;
+ //}
ShuttleCar(mod);
break;
case PLCTypeEnum.RobotPalletizer:
@@ -222,33 +226,38 @@
var devStation = ""; //宸ヤ綅
var endLocate = modFinshTask.EndRoadway;
var carcon = new carConverModel();
+ var ip = "";
if ( carcon.conveyorBei.Keys.Contains(endLocate))
{
text = "杈撻�佺嚎鍖�";
+ ip = "10.26.254.10";
devStation = carcon.conveyorBei[endLocate];
}
else if (carcon.conveyorNan.Keys.Contains(endLocate))
{
text = "杈撻�佺嚎鍗�";
+ ip = "10.26.254.11";
devStation = carcon.conveyorNan[endLocate];
}
if (text != "")
{
- var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
- var modConn = new PLCUtil(modPlc);
+
+ var modConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == ip);
+ //PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
+ //var modConn = new PLCUtil(modPlc);
var modDeviceConver = PLCTaskAction.plcDevices.First(s => s.StationNum == devStation);
var (plcResult, palletVal) = modConn.GetPlcDBValue(modDeviceConver.PosType, modDeviceConver.DbNumber, modDeviceConver.PlcPos);
if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 730)
{
- modConn.Close();
+ //modConn.Close();
return;//鏀捐揣宸ヤ綅娌℃湁璇诲彇鎴愬姛鎴栦笉鏄┖闂�
}
var plcResult2 = modConn.SetPlcDBValue(modDeviceConver.PosType, modDeviceConver.DbNumber, modDeviceConver.WcsPos, "740");
if (!plcResult.IsSucceed)
{
- modConn.Close();
+ //modConn.Close();
return;
}
//娣诲姞浠诲姟鏄庣粏
@@ -260,7 +269,36 @@
InteractiveMsg = $"鍐欏叆鎸囦护740锛氭墭鐩樺埌杈緖modFinshTask.EndRoadway}"
};
_db.Insertable(taskMonitor).ExecuteCommand();
- modConn.Close();
+
+ //鏀瑰彉浠诲姟鐘舵��
+ modFinshTask.Status = TaskStatusEnum.Complete;
+ modFinshTask.FinishDate = DateTime.Now;
+ _db.Updateable(modFinshTask).ExecuteCommand();
+
+ var locateOut = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.WareHouseNo == "W01" && m.LocatNo == modFinshTask.StartLocate);
+ if (locateOut != null && locateOut.Make == "1")
+ {
+ locateOut.PalletNo = "";
+ _db.Updateable(locateOut).ExecuteCommand();
+ }
+
+ //鍙嶉WMS绯荤粺 浠诲姟瀹屾垚
+ if (modFinshTask.Origin == "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>());
+ }
+
}
@@ -271,6 +309,24 @@
modFinshTask.Status = TaskStatusEnum.Complete;
modFinshTask.FinishDate = DateTime.Now;
_db.Updateable(modFinshTask).ExecuteCommand();
+
+ if (modFinshTask.TaskType == TaskTypeEnum.Move)
+ {
+ var locatemove = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.WareHouseNo == "W01" && m.LocatNo == modFinshTask.StartLocate);
+ if (locatemove != null && locatemove.Make == "1")
+ {
+ locatemove.PalletNo = "";
+ _db.Updateable(locatemove).ExecuteCommand();
+ }
+ }
+
+ var locateIn = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.WareHouseNo == "W01" && m.LocatNo == modFinshTask.EndLocate);
+ if (locateIn != null && locateIn.Make == "1")
+ {
+ locateIn.PalletNo = string.IsNullOrWhiteSpace(modFinshTask.PalletNo) ? "pall" : modFinshTask.PalletNo;
+ _db.Updateable(locateIn).ExecuteCommand();
+ }
+
//鍙嶉WMS绯荤粺 浠诲姟瀹屾垚
if (modFinshTask.Origin == "WMS")
{
@@ -287,6 +343,9 @@
_db.Updateable(modFinshTask).ExecuteCommand();
HubUtil.PublicTask(modFinshTask.Adapt<WcsTaskOutput>());
}
+
+
+
}
//鍒ゆ柇浠诲姟鏄惁鍏呯數浠诲姟,涓嬪彂寮�濮嬪厖鐢靛懡浠�
@@ -476,12 +535,24 @@
return;//鍓嶇疆浠诲姟鏈畬鎴�
}
}
+
+ //灏忚溅鐘舵��
+ var (resultCar, valueCar) = plcConn.GetDBValue(modDevice.PosType, modDevice.PlcPos);
- //鍏堝浣�
- var modRest = modDevice.listStation.FirstOrDefault(s => s.Text == "澶嶄綅");
- plcConn.SetDBValue(modRest.PosType, modRest.PlcPos, "1");
+ var modPosTaskStatus2 = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鐘舵��");
+ var (resultTaskStatus2, valueTaskStatus2) = plcConn.GetDBValue(modPosTaskStatus.PosType, modPosTaskStatus.PlcPos);
+ if (resultCar.IsSucceed && valueCar == 1 && resultTaskStatus2.IsSucceed && (valueTaskStatus2 == 0 || valueTaskStatus2 == 1))
+ {
+ //鍏堝浣�
+ var modRest = modDevice.listStation.FirstOrDefault(s => s.Text == "澶嶄綅");
+ plcConn.SetDBValue(modRest.PosType, modRest.PlcPos, "1");
+ }
+ else
+ {
+ return;
+ }
- List<Result> listResult = new List<Result>();
+ List<Result> listResult = new List<Result>();
//鑾峰彇灏忚溅浠诲姟鍙�
var carTaskNo = FourWayCarUtil.GetTaskNo();
@@ -494,7 +565,7 @@
}
var modWriteTask = modDevice.listStation.FirstOrDefault(s => s.Text == "鍐欏叆浠诲姟鍙�");
- listResult.Add(plcConn.SetDBValue(modWriteTask.PosType, modWriteTask.PlcPos, carTaskNo.ToString()));
+ listResult.Add(plcConn.SetDBValueRepeat(modWriteTask.PosType, modWriteTask.PlcPos, carTaskNo.ToString()));
var modNodeX = modDevice.listStation.FirstOrDefault(s => s.Text == "鑺傜偣鍧愭爣X");
var modNodeY = modDevice.listStation.FirstOrDefault(s => s.Text == "鑺傜偣鍧愭爣Y");
@@ -528,19 +599,19 @@
var epathz = ePath.Substring(4, 2);
var epathn = ePath.Substring(6, 1);
//鍐欏叆浜や簰浣嶇疆
- listResult.Add(plcConn.SetDBValue(modNodeX.PosType, posX++.ToString(), epathx));
- listResult.Add(plcConn.SetDBValue(modNodeY.PosType, posY++.ToString(), epathy));
- listResult.Add(plcConn.SetDBValue(modNodeZ.PosType, posZ++.ToString(), epathz));
- listResult.Add(plcConn.SetDBValue(modNodeStatus.PosType, posStatus++.ToString(), epathn));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeX.PosType, posX++.ToString(), epathx));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeY.PosType, posY++.ToString(), epathy));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeZ.PosType, posZ++.ToString(), epathz));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeStatus.PosType, posStatus++.ToString(), epathn));
}
//杩欓噷鏄妸鍚庨潰鐨勫潗鏍囧叏鍐�0锛堜负浜嗛槻姝笂娆′换鍔″潗鏍囨病琚鐩栵級
while (posX <= 43097)
{
- listResult.Add(plcConn.SetDBValue(modNodeX.PosType, posX++.ToString(), "0"));
- listResult.Add(plcConn.SetDBValue(modNodeY.PosType, posY++.ToString(), "0"));
- listResult.Add(plcConn.SetDBValue(modNodeZ.PosType, posZ++.ToString(), "0"));
- listResult.Add(plcConn.SetDBValue(modNodeStatus.PosType, posStatus++.ToString(), "0"));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeX.PosType, posX++.ToString(), "0"));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeY.PosType, posY++.ToString(), "0"));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeZ.PosType, posZ++.ToString(), "0"));
+ listResult.Add(plcConn.SetDBValueRepeat(modNodeStatus.PosType, posStatus++.ToString(), "0"));
}
if (listResult.All(s => s.IsSucceed))
{
@@ -552,62 +623,67 @@
var devStation = "";
var endLocate = modTask.EndRoadway;
var carcon = new carConverModel();
+ var ip = "";
if (carcon.conveyorBei.Keys.Contains(endLocate))
{
text = "杈撻�佺嚎鍖�";
+ ip = "10.26.254.10";
devStation = carcon.conveyorBei[endLocate];
}
else if (carcon.conveyorNan.Keys.Contains(endLocate))
{
text = "杈撻�佺嚎鍗�";
+ ip = "10.26.254.11";
devStation = carcon.conveyorNan[endLocate];
}
if (text != "")
{
- var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
- var modConn = new PLCUtil(modPlc);
+ var modConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == ip);
+ //var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
+ //var modConn = new PLCUtil(modPlc);
var modDeviceConver = PLCTaskAction.plcDevices.First(s => s.StationNum == devStation);
var (plcResult, palletVal) = modConn.GetPlcDBValue(modDeviceConver.PosType, modDeviceConver.DbNumber, modDeviceConver.PlcPos);
- if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 720)
+ if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) == 720)
{
- modConn.Close();
- return;//鏀捐揣宸ヤ綅娌℃湁璇诲彇鎴愬姛鎴栦笉鏄┖闂�
- }
- var listResultcon = new List<Result>();
+ var listResultcon = new List<Result>();
- //浠诲姟鍙蜂笌鎵樼洏鏉$爜
- var modPosConverTask = PLCTaskAction.plcPositions.First(s => s.DeviceId == modDeviceConver.Id && s.Text == "浠诲姟鍙�");
- listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverTask.PosType, modDeviceConver.DbNumber, modPosConverTask.PlcPos, modTask.TaskId.ToString()));
- var modPosConverPallet = PLCTaskAction.plcPositions.First(s => s.DeviceId == modDeviceConver.Id && s.Text == "鎵樼洏鏉$爜");
- listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverPallet.PosType, modDeviceConver.DbNumber, modPosConverPallet.PlcPos, modTask.PalletNo.ToString()));
+ //浠诲姟鍙蜂笌鎵樼洏鏉$爜
+ var modPosConverTask = PLCTaskAction.plcPositions.First(s => s.DeviceId == modDeviceConver.Id && s.Text == "浠诲姟鍙�");
+ listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverTask.PosType, modDeviceConver.DbNumber, modPosConverTask.PlcPos, modTask.TaskId.ToString()));
+ var modPosConverPallet = PLCTaskAction.plcPositions.First(s => s.DeviceId == modDeviceConver.Id && s.Text == "鎵樼洏鏉$爜");
+ listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverPallet.PosType, modDeviceConver.DbNumber, modPosConverPallet.PlcPos, modTask.PalletNo.ToString()));
- // 璧峰宸ヤ綅銆佺洰鐨勫伐浣�
- var modPosConverStrLocat = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDeviceConver.Id && s.Text == "璧峰宸ヤ綅");
- listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverStrLocat.PosType, modDeviceConver.DbNumber, modPosConverStrLocat.PlcPos, modDeviceConver.StationNum));
- var modPosConverEndLocat = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDeviceConver.Id && s.Text == "鐩殑宸ヤ綅");
- listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverEndLocat.PosType, modDeviceConver.DbNumber, modPosConverEndLocat.PlcPos, modTask.EndLocate));
+ // 璧峰宸ヤ綅銆佺洰鐨勫伐浣�
+ var modPosConverStrLocat = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDeviceConver.Id && s.Text == "璧峰宸ヤ綅");
+ listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverStrLocat.PosType, modDeviceConver.DbNumber, modPosConverStrLocat.PlcPos, modDeviceConver.StationNum));
+ var modPosConverEndLocat = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDeviceConver.Id && s.Text == "鐩殑宸ヤ綅");
+ listResultcon.Add(modConn.SetPlcDBValueRepeat(modPosConverEndLocat.PosType, modDeviceConver.DbNumber, modPosConverEndLocat.PlcPos, modTask.EndLocate));
- if (listResultcon.All(s => s.IsSucceed))
- {
- var plcResult2 = modConn.SetPlcDBValue(modDeviceConver.PosType, modDeviceConver.DbNumber, modDeviceConver.WcsPos, "730");
- if (!plcResult.IsSucceed)
+ if (listResultcon.All(s => s.IsSucceed))
{
- modConn.Close();
- return;
+ var plcResult2 = modConn.SetPlcDBValue(modDeviceConver.PosType, modDeviceConver.DbNumber, modDeviceConver.WcsPos, "730");
+ if (!plcResult.IsSucceed)
+ {
+ //modConn.Close();
+ return;
+ }
+ //娣诲姞浠诲姟鏄庣粏
+ var taskMonitor2 = new WcsTaskMonitor()
+ {
+ TaskNo = carTaskNext.TaskNo,
+ PlcName = modDevice.Text,
+ Status = TaskStatusEnum.Complete,
+ InteractiveMsg = $"鍐欏叆鎸囦护730锛氬伐浣嶆槸{modDeviceConver.StationNum}"
+ };
+ _db.Insertable(taskMonitor2).ExecuteCommand();
}
- //娣诲姞浠诲姟鏄庣粏
- var taskMonitor2 = new WcsTaskMonitor()
- {
- TaskNo = carTaskNext.TaskNo,
- PlcName = modDevice.Text,
- Status = TaskStatusEnum.Complete,
- InteractiveMsg = $"鍐欏叆鎸囦护730锛氬伐浣嶆槸{modDeviceConver.StationNum}"
- };
- _db.Insertable(taskMonitor2).ExecuteCommand();
}
-
- modConn.Close();
+ else if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 730)
+ {
+ return;
+ }
+
}
@@ -1196,12 +1272,12 @@
Log.Error(string.Format("杈撻�佺嚎430:鏈壘鍒板搴旂殑浠诲姟銆�"));
break;
}
- // 鏀瑰彉浠诲姟鐘舵��
- taskInfo.Status = TaskStatusEnum.Complete;
- taskInfo.FinishDate = DateTime.Now;
- //modTask.Levels = 999;
- _db.Updateable(taskInfo).ExecuteCommand();
- HubUtil.PublicTask(taskInfo.Adapt<WcsTaskOutput>());
+ //// 鏀瑰彉浠诲姟鐘舵��
+ //taskInfo.Status = TaskStatusEnum.Complete;
+ //taskInfo.FinishDate = DateTime.Now;
+ ////modTask.Levels = 999;
+ //_db.Updateable(taskInfo).ExecuteCommand();
+ //HubUtil.PublicTask(taskInfo.Adapt<WcsTaskOutput>());
// 鎻掑叆浠诲姟鏄庣粏
var modInsertTaskMonitor = new WcsTaskMonitor()
{
@@ -1214,28 +1290,28 @@
StartLocat = Convert.ToString(starVal),
EndLocat = modDevice.StationNum,
};
- if (taskInfo.Origin == "WMS")
- {
- // 鍙嶉WMS
- var requestMode = new TaskRequestWMS()
- {
- TaskNo = taskInfo.TaskNo,
- PalletNo = taskInfo.PalletNo,
- TaskType = ((int)taskInfo.TaskType).ToString(),
- TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
- };
- HttpService httpService = new HttpService();
- var modResponseTask = httpService.RequestTask(requestMode).Result;
- if (modResponseTask.StatusCode == 0)
- {
- modInsertTaskMonitor.InteractiveMsg += "锛岃繑鍥炵粰WMS浠诲姟瀹屾垚";
- }
- else
- {
- Log.Error(string.Format("浠诲姟鍙嶉澶辫触锛歋tatusCode锛歿0};Msg锛歿1}", modResponseTask.StatusCode, modResponseTask.Msg));
- }
- }
-
+ //if (taskInfo.Origin == "WMS")
+ //{
+ // // 鍙嶉WMS
+ // var requestMode = new TaskRequestWMS()
+ // {
+ // TaskNo = taskInfo.TaskNo,
+ // PalletNo = taskInfo.PalletNo,
+ // TaskType = ((int)taskInfo.TaskType).ToString(),
+ // TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
+ // };
+ // HttpService httpService = new HttpService();
+ // var modResponseTask = httpService.RequestTask(requestMode).Result;
+ // if (modResponseTask.StatusCode == 0)
+ // {
+ // modInsertTaskMonitor.InteractiveMsg += "锛岃繑鍥炵粰WMS浠诲姟瀹屾垚";
+ // }
+ // else
+ // {
+ // Log.Error(string.Format("浠诲姟鍙嶉澶辫触锛歋tatusCode锛歿0};Msg锛歿1}", modResponseTask.StatusCode, modResponseTask.Msg));
+ // }
+ //}
+
// 鎻掑叆浜や簰鏃ュ織
_db.Insertable(modInsertTaskMonitor).ExecuteCommand();
diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 6eeb443..4c7b3f9 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -332,7 +332,7 @@
- Thread.Sleep(5000);
+ Thread.Sleep(2000);
}
catch (OperationCanceledException)
{
@@ -407,29 +407,31 @@
var text = "";
var devStation = "";
+ var ip = "";
var carcon = new carConverModel();
if (carcon.conveyorBei.Keys.Contains(endLocate))
{
text = "杈撻�佺嚎鍖�";
+ ip = "10.26.254.10";
devStation = carcon.conveyorBei[endLocate];
}
else if (carcon.conveyorNan.Keys.Contains(endLocate))
{
text = "杈撻�佺嚎鍗�";
+ ip = "10.26.254.11";
devStation = carcon.conveyorNan[endLocate];
}
if (text != "")
{
- var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
- var modConn = new PLCUtil(modPlc);
-
+ //var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Text == text);
+ //var modConn = new PLCUtil(modPlc);
+ var modConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == ip);
var modDevice = PLCTaskAction.plcDevices.First(s => s.StationNum == devStation);
var (plcResult, palletVal) = modConn.GetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.PlcPos);
if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 720)
{
continue;//鏀捐揣宸ヤ綅娌℃湁璇诲彇鎴愬姛鎴栦笉鏄┖闂�
- }
- modConn.Close();
+ }
var gongwei = carcon.conveyorRuKu[endLocate];
//鍒ゆ柇浠诲姟
@@ -493,6 +495,12 @@
break; //鏆傜紦鍒嗛厤锛岄槻姝㈠悓灞傚皬杞﹀叧鏈烘垨澶辫仈瀵艰嚧闃绘尅璺緞
}
}
+ var modCarPall = plcPosition.FirstOrDefault(s => s.Text == "鎵樼洏妫�娴�");
+ var (resultPall, valuePall) = modbusUtil.GetDBValue(modCarPall.PosType, modCarPall.PlcPos);
+ if (resultPall.IsSucceed && valuePall == 1) //1鏈夋墭鐩� 2鏃犳墭鐩�
+ {
+ break; //鏆傜紦鍒嗛厤
+ }
//灏忚溅绌洪棽鍔犲叆闆嗗悎
if (value == 1)
{
diff --git a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs
index 010fb9c..e62d86b 100644
--- a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs
+++ b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs
@@ -26,6 +26,10 @@
/// <returns></returns>
public static List<CarModel> GetCarPathUp(List<CarModel> list, int moveType)
{
+ if (list == null)
+ {
+ return null;
+ }
for (int i = 0; i < list.Count; i++)
{
if (i >= 0 && i < list.Count - 1)
@@ -491,7 +495,7 @@
if (current.Equals(end))
{
- Log.Error(ReconstructPath(cameFrom, current).ToString());
+ Log.Error("灏忚溅璺緞鍒嗛厤锛�" +ReconstructPath(cameFrom, current).ToString());
return ReconstructPath(cameFrom, current);
}
--
Gitblit v1.8.0