From 5818ac31e7d82e611fa98c35e9a353319bebd3c3 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-JIE70N9>
Date: 星期日, 25 五月 2025 14:30:01 +0800
Subject: [PATCH] 主流程测试完成
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 262 ++++++++++++++++++-------------------
Admin.NET/WCS.Application/Util/HttpService.cs | 5
Admin.NET/WCS.Application/Model/AGVModel.cs | 21 ++
Admin.NET/WCS.Application/OpenApi/OpenApi.cs | 43 ++++-
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 5
Admin.NET/WCS.Application/Util/AGVStorageUtil.cs | 67 +++++----
6 files changed, 222 insertions(+), 181 deletions(-)
diff --git a/Admin.NET/WCS.Application/Model/AGVModel.cs b/Admin.NET/WCS.Application/Model/AGVModel.cs
index 42651d5..e6231ee 100644
--- a/Admin.NET/WCS.Application/Model/AGVModel.cs
+++ b/Admin.NET/WCS.Application/Model/AGVModel.cs
@@ -162,18 +162,29 @@
public string ReqTime { get; set; }
public string CurrentPositionCode { get; set; }
/// <summary>
- /// 鏂规硶鍚� end : 浠诲姟缁撴潫
- /// </summary>
- public string Method { get; set; }
- /// <summary>
/// 浠诲姟鍙�
/// </summary>
- public string TaskCode { get; set; }
+ public string robotTaskCode { get; set; }
/// <summary>
/// 鎵樼洏鍙�
/// </summary>
public string CtnrCode { get; set; }
+ public ExtraInfo Extra { get; set; }
+
+
+ }
+ public class ExtraInfo
+ {
+ public ExtraInfoVal Values { get; set; }
+ }
+ public class ExtraInfoVal
+ {
+
+ /// <summary>
+ /// 鏂规硶鍚� end : 浠诲姟缁撴潫
+ /// </summary>
+ public string Method { get; set; }
}
public class AGVCallBackResponse
{
diff --git a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
index ba4d4a6..e1a8e4b 100644
--- a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs
@@ -418,21 +418,22 @@
[UnitOfWork]
public async Task<dynamic> agvCallback(AGVCallBackInput input)
{
+ Log.Information("AGV鍙嶉浠诲姟" + input.ToJson());
AGVCallBackResponse result = new AGVCallBackResponse()
{
ReqCode = input.ReqCode,
Message = "鎴愬姛",
Code = "0"
};
- if (input.TaskCode.Substring(0, 3) != "WCS" && input.TaskCode.Substring(0, 2) != "TK")
+ if (input.robotTaskCode.Substring(0, 3) != "WCS" && input.robotTaskCode.Substring(0, 2) != "TK")
return result;
PLCUtil modUtil = null;
try
{
- var modTask = await _db.Queryable<WcsTask>().FirstAsync(s => s.TaskNo == input.TaskCode);
+ var modTask = await _db.Queryable<WcsTask>().FirstAsync(s => s.TaskNo == input.robotTaskCode);
if (modTask != null)
{
- switch (input.Method)
+ switch (input.Extra.Values.Method)
{
case "end"://浠诲姟瀹屾垚
{
@@ -459,15 +460,26 @@
var inputs = new TaskRequestWMS();
inputs.TaskNo = modTask.TaskNo;
inputs.PalletNo = modTask.PalletNo;
- inputs.TaskType = modTask.TaskType.ToString();
+ inputs.TaskType = ((int)modTask.TaskType).ToString();
inputs.TaskStatus = "2";
var modResponseTask = httpService.RequestTask(inputs).Result;
}
}
break;
- case "admin"://璧板嚭鍌ㄤ綅
+ case "outbin"://璧板嚭鍌ㄤ綅
{
+ WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor()
+ {
+ TaskNo = modTask.TaskNo,
+ //PlcId = modDevice.PlcId,
+ PlcName = "AGV",
+ StartLocat = modTask.StartLocate,
+ EndLocat = modTask.EndLocate,
+ Status = TaskStatusEnum.Complete,
+ InteractiveMsg = $"AGV灏忚溅鍙嶉浠诲姟鍙栬揣瀹屾垚锛岃蛋鍑哄偍浣�",
+ };
+ await _db.Insertable(modTaskMonitor).ExecuteCommandAsync();
//鍙嶉WMS浠诲姟鍙栬揣瀹屾垚銆乄MS鍒ゆ柇鏄钩搴撳偍浣嶅氨鏇存柊鍌ㄤ綅鐘舵��
if (modTask.Origin == "WMS")
{
@@ -475,22 +487,22 @@
var inputs = new TaskRequestWMS();
inputs.TaskNo = modTask.TaskNo;
inputs.PalletNo = modTask.PalletNo;
- inputs.TaskType = "2";
+ inputs.TaskType = ((int)modTask.TaskType).ToString();
inputs.TaskStatus = "2";
var modResponseTask = httpService.RequestTaskQh(inputs).Result;
}
}
break;
- case "continue"://鏀捐揣鐢宠
+ case "release"://鏀捐揣鐢宠
{
- if (modTask.EndLocate != "B010101")//9鍙峰伐浣嶅湴鍧�
+ if (modTask.EndLocate != "B040101")//9鍙峰伐浣嶅湴鍧�
{
result.Code = "1";
result.Message = "鎵句笉鍒拌浠诲姟";
return result;
}
- modTask.Status = TaskStatusEnum.Complete;
+ //modTask.Status = TaskStatusEnum.Complete;
modTask.IsComple = "1";
await _db.Updateable(modTask).ExecuteCommandAsync();
WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor()
@@ -506,7 +518,16 @@
await _db.Insertable(modTaskMonitor).ExecuteCommandAsync();
HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>());
HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>());
-
+ if (modTask.Origin == "WMS")
+ {
+ HttpService httpService = new HttpService();
+ var inputs = new TaskRequestWMS();
+ inputs.TaskNo = modTask.TaskNo;
+ inputs.PalletNo = modTask.PalletNo;
+ inputs.TaskType = ((int)modTask.TaskType).ToString();
+ inputs.TaskStatus = "2";
+ var modResponseTask = httpService.RequestTaskQh(inputs).Result;
+ }
}
break;
case "cancel"://浠诲姟鍙栨秷
@@ -555,7 +576,7 @@
modUtil?.Close();
}
-
+ Log.Information("AGV鍙嶉浠诲姟杩斿洖" + result.ToJson());
return result;
}
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 08d9606..6784e79 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -271,6 +271,22 @@
modFinshTask.Status = TaskStatusEnum.Complete;
modFinshTask.FinishDate = DateTime.Now;
_db.Updateable(modFinshTask).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>());
+ }
}
//鍒ゆ柇浠诲姟鏄惁鍏呯數浠诲姟,涓嬪彂寮�濮嬪厖鐢靛懡浠�
@@ -281,20 +297,7 @@
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>());
-
+
}
}
}
@@ -541,6 +544,76 @@
}
if (listResult.All(s => s.IsSucceed))
{
+ if (modTask.TaskType == TaskTypeEnum.Out)
+ {
+ #region 杈撻�佺嚎 鍐欏叆PLC 730
+
+ var text = "";
+ var devStation = "";
+ var endLocate = modTask.EndRoadway;
+ var carcon = new carConverModel();
+ if (carcon.conveyorBei.Keys.Contains(endLocate))
+ {
+ text = "杈撻�佺嚎鍖�";
+ devStation = carcon.conveyorBei[endLocate];
+ }
+ else if (carcon.conveyorNan.Keys.Contains(endLocate))
+ {
+ text = "杈撻�佺嚎鍗�";
+ devStation = carcon.conveyorNan[endLocate];
+ }
+ if (text != "")
+ {
+ 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)
+ {
+ modConn.Close();
+ return;//鏀捐揣宸ヤ綅娌℃湁璇诲彇鎴愬姛鎴栦笉鏄┖闂�
+ }
+ 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 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)
+ {
+ modConn.Close();
+ return;
+ }
+ //娣诲姞浠诲姟鏄庣粏
+ var taskMonitor2 = new WcsTaskMonitor()
+ {
+ TaskNo = carTaskNext.TaskNo,
+ PlcName = modDevice.Text,
+ Status = TaskStatusEnum.Complete,
+ InteractiveMsg = $"鍐欏叆鎸囦护730锛氬伐浣嶆槸{modDeviceConver.StationNum}"
+ };
+ _db.Insertable(taskMonitor2).ExecuteCommand();
+ }
+
+ modConn.Close();
+ }
+
+
+ #endregion
+ }
+
var modStart = modDevice.listStation.FirstOrDefault(s => s.Text == "鍚姩鍛戒护");
var result = plcConn.SetDBValue(modStart.PosType, modStart.PlcPos, "1");
if (result.IsSucceed)
@@ -549,75 +622,7 @@
carTaskNext.CarTaskNo = carTaskNo;
_db.Updateable(carTaskNext).ExecuteCommand();
- if (modTask.TaskType == TaskTypeEnum.Out)
- {
- #region 杈撻�佺嚎 鍐欏叆PLC 730
-
- var text = "";
- var devStation = "";
- var endLocate = modTask.EndRoadway;
- var carcon = new carConverModel();
- if (carcon.conveyorBei.Keys.Contains(endLocate))
- {
- text = "杈撻�佺嚎鍖�";
- devStation = carcon.conveyorBei[endLocate];
- }
- else if (carcon.conveyorNan.Keys.Contains(endLocate))
- {
- text = "杈撻�佺嚎鍗�";
- devStation = carcon.conveyorNan[endLocate];
- }
- if (text != "")
- {
- 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)
- {
- modConn.Close();
- return;//鏀捐揣宸ヤ綅娌℃湁璇诲彇鎴愬姛鎴栦笉鏄┖闂�
- }
- var listResultcon = new List<Result>();
-
- //浠诲姟鍙蜂笌鎵樼洏鏉$爜
- var modPosConverTask = PLCTaskAction.plcPositions.First(s => s.DeviceId == modDeviceConver.Id && s.Text == "浠诲姟鍙�");
- listResultcon.Add(modConn.SetPlcDBValue(modPosConverTask.PosType, modDeviceConver.DbNumber, modPosConverTask.PlcPos, modTask.TaskId.ToString()));
- var modPosConverPallet = PLCTaskAction.plcPositions.First(s => s.DeviceId == modDeviceConver.Id && s.Text == "鎵樼洏鏉$爜");
- listResultcon.Add(modConn.SetPlcDBValue(modPosConverPallet.PosType, modDeviceConver.DbNumber, modPosConverPallet.PlcPos, modTask.PalletNo.ToString()));
-
- // 璧峰宸ヤ綅銆佺洰鐨勫伐浣�
- var modPosConverStrLocat = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDeviceConver.Id && s.Text == "璧峰宸ヤ綅");
- listResultcon.Add(modConn.SetPlcDBValue(modPosConverStrLocat.PosType, modDeviceConver.DbNumber, modPosConverStrLocat.PlcPos, modDeviceConver.StationNum));
- var modPosConverEndLocat = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDeviceConver.Id && s.Text == "鐩殑宸ヤ綅");
- listResultcon.Add(modConn.SetPlcDBValue(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)
- {
- modConn.Close();
- return;
- }
- //娣诲姞浠诲姟鏄庣粏
- var taskMonitor2 = new WcsTaskMonitor()
- {
- TaskNo = carTaskNext.TaskNo,
- PlcName = modDevice.Text,
- Status = TaskStatusEnum.Complete,
- InteractiveMsg = $"鍐欏叆鎸囦护730锛氬伐浣嶆槸{modDeviceConver.StationNum}"
- };
- _db.Insertable(taskMonitor2).ExecuteCommand();
- }
-
- modConn.Close();
- }
-
-
- #endregion
- }
+
//娓呴櫎灏忚溅绌洪棽鏃堕棿
var carTimeClear = _db.Queryable<WcsCarTime>().First(m=>m.IsDelete == false && m.CarIp == modDevice.PlcIdIP);
@@ -758,7 +763,7 @@
}
// 鍐欏叆杈撻�佺嚎閫�鍥炴寚浠�
- var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, modDevice.StationNum);
+ var ret = plcConn.SetPlcDBValueRepeat(modDevice.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, modDevice.StationNum);
if (ret.IsSucceed)
{
plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "350");
@@ -779,7 +784,7 @@
}
// 鍐欏叆杈撻�佺嚎閫�鍥炴寚浠�
- var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, modDevice.StationNum);
+ var ret = plcConn.SetPlcDBValueRepeat(modDevice.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, modDevice.StationNum);
if (ret.IsSucceed)
{
plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "350");
@@ -854,7 +859,7 @@
}
// 鍐欏叆杈撻�佺嚎閫�鍥炴寚浠�
- var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, modDevice.StationNum);
+ var ret = plcConn.SetPlcDBValueRepeat(modDevice.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, modDevice.StationNum);
if (ret.IsSucceed)
{
plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "350");
@@ -899,17 +904,17 @@
var listResult = new List<Result>();
// 浠诲姟鍙枫�佷换鍔$被鍨嬨�佹墭鐩樺彿
var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
- listResult.Add(plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, modTask.TaskId.ToString()));
+ listResult.Add(plcConn.SetPlcDBValueRepeat(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, modTask.TaskId.ToString()));
var modPosTaskType = modDevice.listStation.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
var taskTypeStr = (int)modTask.TaskType;
- listResult.Add(plcConn.SetPlcDBValue(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
+ listResult.Add(plcConn.SetPlcDBValueRepeat(modPosTaskType.PosType, modDevice.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString()));
var modPosPalletNo = modDevice.listStation.FirstOrDefault(s => s.Text == "鎵樼洏鏉$爜");
- listResult.Add(plcConn.SetPlcDBValue(modPosPalletNo.PosType, modDevice.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
+ listResult.Add(plcConn.SetPlcDBValueRepeat(modPosPalletNo.PosType, modDevice.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo));
// 璧峰宸ヤ綅銆佺洰鐨勫伐浣�
var modPosStrLocat = modDevice.listStation.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅");
- listResult.Add(plcConn.SetPlcDBValue(modPosStrLocat.PosType, modDevice.DbNumber, modPosStrLocat.PlcPos, modDevice.StationNum));
+ listResult.Add(plcConn.SetPlcDBValueRepeat(modPosStrLocat.PosType, modDevice.DbNumber, modPosStrLocat.PlcPos, modDevice.StationNum));
var modPosEndLocat = modDevice.listStation.FirstOrDefault(s => s.Text == "鐩殑宸ヤ綅");
- listResult.Add(plcConn.SetPlcDBValue(modPosEndLocat.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, endLocatVlue));
+ listResult.Add(plcConn.SetPlcDBValueRepeat(modPosEndLocat.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, endLocatVlue));
if (listResult.All(s => s.IsSucceed))
@@ -1185,12 +1190,18 @@
var (res3, starVal) = plcConn.GetPlcDBValue(modPosStarStationNum.PosType, modDevice.DbNumber, modPosStarStationNum.PlcPos);
int taskNoVal = Convert.ToInt32(taskVal);
- var taskInfo = _db.Queryable<WcsTask>().First(w => w.TaskId == taskNoVal);
+ var taskInfo = _db.Queryable<WcsTask>().First(w => w.TaskId == taskNoVal && w.TaskType == TaskTypeEnum.Out);
if (taskInfo == null)
{
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>());
// 鎻掑叆浠诲姟鏄庣粏
var modInsertTaskMonitor = new WcsTaskMonitor()
{
@@ -1203,7 +1214,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));
+ }
+ }
+
// 鎻掑叆浜や簰鏃ュ織
_db.Insertable(modInsertTaskMonitor).ExecuteCommand();
@@ -1250,66 +1282,30 @@
int tasknoVal = Convert.ToInt32(taskVal);
- var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.IsDelete == false && m.TaskId == tasknoVal);
+ var modTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.TaskId == tasknoVal);
if (modTask == null)
{
Log.Error(string.Format("杈撻�佺嚎440:鏈壘鍒板搴旂殑浠诲姟銆�"));
break;
}
- // 鏀瑰彉浠诲姟鐘舵��
- modTask.Status = TaskStatusEnum.Complete;
- modTask.FinishDate = DateTime.Now;
- //modTask.Levels = 999;
- _db.Updateable(modTask).ExecuteCommand();
- HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>());
+
// 鎻掑叆浠诲姟鏄庣粏
var modInsertTaskMonitor = new WcsTaskMonitor()
{
TaskNo = modTask.TaskNo,
PlcId = modDevice.Id,
PlcName = modDevice.Text,
- InteractiveMsg = $"鍐欏叆鎸囦护450锛歿modDevice.StationNum}鍑哄簱瀹屾垚",
+ InteractiveMsg = $"鍐欏叆鎸囦护450锛歿modDevice.StationNum}鎵樼洏绂诲紑宸ヤ綅",
PalletNo = palletVal,
Status = TaskStatusEnum.Complete,
StartLocat = starVal.ToString(),
EndLocat = modDevice.StationNum,
};
- if (modTask.Origin == "WMS")
- {
- //// 鍙嶉WMS
- //var requestMode = new TaskRequestWMS()
- //{
- // TaskNo = modTask.TaskNo + modTask.EndLocate,
- // PalletNo = modTask.PalletNo,
- // TaskType = ((int)TaskTypeEnum.Out).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();
// 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈�
HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>());
- // led鏄剧ず鍐呭
- var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId);
-
- ledText += $"鍑哄簱瀹屾垚\n\n";
- ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n";
- ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n";
- ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n";
- ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}";
- LedDisplay(ledDevice.LedIP, ledText);
}
#endregion
}
@@ -1376,7 +1372,7 @@
}
};
var response = new HttpService().GenAgvSendTask(taskModel).Result;
- if (response.code == "0")
+ if (response.code == "SUCCESS")
{
modTask.Status = TaskStatusEnum.Doing;
_db.Updateable(modTask).ExecuteCommand();
diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 38b08f4..6464193 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -332,7 +332,7 @@
- Thread.Sleep(3000);
+ Thread.Sleep(500);
}
catch (OperationCanceledException)
{
@@ -433,7 +433,8 @@
var gongwei = carcon.conveyorRuKu[endLocate];
//鍒ゆ柇浠诲姟
- var convarTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.StartLocate == gongwei && m.Type == PLCTypeEnum.ConveyorLine);
+ var convarTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.StartLocate == gongwei
+ && m.Type == PLCTypeEnum.ConveyorLine && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing));
if (convarTask != null)
{
continue;//鏀捐揣宸ヤ綅鏈変换鍔�
diff --git a/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs b/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs
index b1746af..141f599 100644
--- a/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs
+++ b/Admin.NET/WCS.Application/Util/AGVStorageUtil.cs
@@ -26,47 +26,58 @@
type2 = "";
jiebo = "";
var taskModle = "";//浠诲姟妯℃澘
- var locate1 = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.LocatNo == straLocate);
- var locate2 = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.LocatNo == endLocate);
- if (locate1 == null || locate2 == null)
+ //鍓嶇紑L绔嬪簱 鍓嶇紑B 骞冲簱
+ var locate1q = straLocate.Substring(0,1);
+ var locate2q = endLocate.Substring(0, 1);
+
+ if (locate1q == null || locate2q == null)
{
return taskModle;
}
- switch (locate1.WareHouseNo)
+ switch (locate1q)
{
- case "W02":
- type1 = "SITE";
- break;
- case "W04":
+ case "L":
type1 = "STORAGE";
+ break;
+ case "B":
+ type1 = "SITE";
break;
default:
break;
}
- switch (locate2.WareHouseNo)
+ switch (locate2q)
{
- case "W02":
- type2 = "SITE";
- break;
- case "W04":
+ case "L":
type2 = "STORAGE";
+ break;
+ case "B":
+ type2 = "SITE";
break;
default:
break;
}
- var AreaAll = new List<string>() { "B06", "B07" };//1002銆�1003鍏ㄩ儴鍖哄煙
- var Area1002 = new List<string>() { "B06",""};//1002杞﹂棿鍖哄煙
- var Area10031 = new List<string>() { ""};//1003 1妤艰溅闂村尯鍩�
+
+ var AreaAll = new List<string>() { "B06", "B07", "B09" };//1002銆�1003鍏ㄩ儴鍖哄煙
+ var Area1002 = new List<string>() { "B06"};//1002杞﹂棿鍖哄煙
+ var Area10031 = new List<string>() { "B09"};//1003 1妤艰溅闂村尯鍩�
var Area10032 = new List<string>() { "B07"};//1003 2妤艰溅闂村尯鍩�
- if (Area1002.Contains(locate2.AreaNo))
+
+ var locate1 = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.LocatNo == straLocate);
+ var locate2 = _db.Queryable<WcsStorageLocat>().First(m => m.IsDelete == false && m.LocatNo == endLocate);
+
+ if (locate1q == "B" || locate2q == "B")
{
- jiebo = "1JB";//鎺ラ┏浣�
+ if (Area1002.Contains(locate2.AreaNo) || Area1002.Contains(locate1.AreaNo))
+ {
+ jiebo = "1JB";//鎺ラ┏浣�
+ }
+ if (Area10031.Contains(locate2.AreaNo) || Area10032.Contains(locate2.AreaNo) || Area10031.Contains(locate1.AreaNo) || Area10032.Contains(locate1.AreaNo))
+ {
+ jiebo = "2JB";
+ }
}
- if (Area10031.Contains(locate2.AreaNo) || Area10032.Contains(locate2.AreaNo))
- {
- jiebo = "2JB";
- }
+
if (type1 == "" || type2 == "")
{
return taskModle;
@@ -86,21 +97,21 @@
break;
case "SITE" when type2 == "SITE":
{
- if (Area10032.Contains(locate1.AreaNo) && locate2.AreaNo == "B04")
+ if ((Area10032.Contains(locate1.AreaNo) || Area10031.Contains(locate1.AreaNo)) && locate2.AreaNo == "B04")
{
- taskModle = "CPRK";
+ taskModle = "CPRK1003";
}
else if(Area1002.Contains(locate1.AreaNo) && locate2.AreaNo == "B04")
{
- taskModle = "CPRK2";
+ taskModle = "CPRK1002";
}
- else if ((Area10032.Contains(locate2.AreaNo) || Area10032.Contains(locate2.AreaNo)) && !AreaAll.Contains(locate1.AreaNo))
+ else if ((Area10032.Contains(locate2.AreaNo) || Area10031.Contains(locate2.AreaNo)) && !AreaAll.Contains(locate1.AreaNo))
{
- taskModle = "YFLSX";
+ taskModle = "YCLSX";
}
else if (Area1002.Contains(locate2.AreaNo) && !AreaAll.Contains(locate1.AreaNo))
{
- taskModle = "YFLSX2";
+ taskModle = "YCLSX2";
}
}
diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs
index fe2a969..545364f 100644
--- a/Admin.NET/WCS.Application/Util/HttpService.cs
+++ b/Admin.NET/WCS.Application/Util/HttpService.cs
@@ -78,7 +78,8 @@
TaskNo = result.TaskList.TaskNo,
Levels = 999,
EndLocate = result.TaskList.EndLocate,
- EndRoadway = result.TaskList.EndRoadway
+ EndRoadway = result.TaskList.EndRoadway,
+ TaskId = FourWayCarUtil.GetTaskId()
};
var endLocat2 = PLCCommon.RoadwayToStationNum(taskAdd.EndRoadway, stationNum);
@@ -350,7 +351,7 @@
var requestId = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
var dic = new Dictionary<string, object>()
{
- {"X-lr-request-id","123456879" },
+ {"X-lr-request-id",requestId },
{"X-lr-version","4.2" },
};
var mod = new
--
Gitblit v1.8.0