diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs
index 1018c43..ee41547 100644
--- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs
+++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/LoginGetData.cs
@@ -44,7 +44,7 @@ public class LoginGetData(WmsWebApiPost wmsWebApiPost) : IBaseGetData
string[] dirs = routerDirection.Split(',');
if(!dirs.Contains(direction))
{
- ConsoleLog.Warning($"【警告】注册口:{area} 箱码:{code} 方向:{direction} 方向不正确,允许的方向为:{routerDirection}");
+ ConsoleLog.Warning($"【警告】注册口:{area} 箱码:{msg} 方向:{direction} 方向不正确,允许的方向为:{routerDirection}");
return;
}
}
diff --git a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs
index b162bbb..198ef1d 100644
--- a/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs
+++ b/WcsMain/Business/Convey/HistoryDataHandler/HisGetData/StackerInSpliter.cs
@@ -1,5 +1,13 @@
using WcsMain.Business.Convey.HistoryDataHandler.HisGetData.I;
+using WcsMain.Common;
+using WcsMain.DataBase.Dao;
using WcsMain.DataBase.TableEntity;
+using WcsMain.DataService;
+using WcsMain.Enum.Convey;
+using WcsMain.Enum.Stacker;
+using WcsMain.EquipOperation.Convey;
+using WcsMain.EquipOperation.Entity;
+using WcsMain.ExtendMethod;
namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData;
@@ -9,15 +17,120 @@ namespace WcsMain.Business.Convey.HistoryDataHandler.HisGetData;
///
/// R2
///
-public class StackerInSpliter : IBaseGetData
+public class StackerInSpliter(ConveyOperation conveyOperation, DataBaseData dataBaseData, AppWcsTaskDao wcsTaskDao) : IBaseGetData
{
+ private readonly ConveyOperation _conveyOperation = conveyOperation;
+ private readonly DataBaseData _dataBaseData = dataBaseData;
+ private readonly AppWcsTaskDao _wcsTaskDao = wcsTaskDao;
+
+ ///
+ /// 读码失败
+ ///
+ ///
+ ///
+ ///
+ ///
public void ReadFail(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData)
{
-
+ int plcId = _dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId;
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.NoRead);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if(string.IsNullOrEmpty(errText) )
+ {
+ ConsoleLog.Success($"入库分流:{area} 读码失败,写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库分流:{area} 读码失败,写入PLC失败,{plcTask},信息:{errText}");
+ return;
}
+ ///
+ /// 读码成功
+ ///
+ ///
+ ///
+ ///
+ ///
public void ReadSuccess(string? disPlayName, string msg, string? area, AppRouterMethod routerMethodData)
{
-
+ int plcId = _dataBaseData.GetNewPlcTaskId() ?? StaticData.StaticInt.ErrPlcId; // 获取一个 plcId
+ (string code, string direction) = msg.FormatDir();
+ /* 判断方向是否正确 */
+ string? routerDirection = routerMethodData.AllowDirection;
+ if (!string.IsNullOrEmpty(routerDirection))
+ {
+ string[] dirs = routerDirection.Split(',');
+ if (!dirs.Contains(direction))
+ {
+ ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg} 方向:{direction} 方向不正确,允许的方向为:{routerDirection}");
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.WcsErr);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if (string.IsNullOrEmpty(errText))
+ {
+ ConsoleLog.Success($"入库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}");
+ return;
+ }
+ }
+ /* 查询任务 */
+ List? wcsTasks = _wcsTaskDao.Select(new AppWcsTask { VehicleNo = code, TaskStatus = (int)WcsTaskStatusEnum.create });
+ if(wcsTasks == default)
+ {
+ // 数据库服务器连接失败
+ ConsoleLog.Exception($"【异常】入库分流:{area} 箱码:{msg} 查询任务失败,请检查服务器网络");
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.WmsErr);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if (string.IsNullOrEmpty(errText))
+ {
+ ConsoleLog.Success($"入库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}");
+ return;
+ }
+ if(wcsTasks.Count < 1)
+ {
+ // 不存在任务
+ ConsoleLog.Exception($"【异常】入库分流:{area} 箱码:{msg} 不存在入库任务,请重试");
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.WcsErr);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if (string.IsNullOrEmpty(errText))
+ {
+ ConsoleLog.Success($"入库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}");
+ return;
+ }
+ AppWcsTask wcsTask = wcsTasks[0]; // 取得任务
+ var locationDetail = CommonData.AppLocations.DetailWithWcsLocation(wcsTask.Destination);
+ if(locationDetail == default)
+ {
+ // 点位不存在
+ ConsoleLog.Exception($"【异常】入库分流:{area} 箱码:{msg} 终点:{wcsTask.Destination} 不存在,请重试");
+ ConveyPLCTask plcTask = new(plcId, (short)ConveyRouterEnum.WcsErr);
+ string errText = _conveyOperation.WriteTask(area, plcTask);
+ if (string.IsNullOrEmpty(errText))
+ {
+ ConsoleLog.Success($"入库分流:{area} 箱码:{msg},写入PLC成功,{plcTask}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg},写入PLC失败,{plcTask},信息:{errText}");
+ return;
+ }
+ ConveyRouterEnum router = (ConveyRouterEnum)(locationDetail.TunnelNo ?? 0);
+ // 点位不存在
+ ConsoleLog.Success($"入库分流:{area} 箱码:{msg} 终点:{wcsTask.Destination} 巷道:{locationDetail.TunnelNo}");
+ ConveyPLCTask plcTaskOk = new(plcId, (short)router);
+ string errTextOk = _conveyOperation.WriteTask(area, plcTaskOk);
+ if (string.IsNullOrEmpty(errTextOk))
+ {
+ ConsoleLog.Success($"入库分流:{area} 箱码:{msg},写入PLC成功,{plcTaskOk}");
+ return;
+ }
+ ConsoleLog.Warning($"【警告】入库分流:{area} 箱码:{msg},写入PLC失败,{plcTaskOk},信息:{errTextOk}");
+ return;
}
}
diff --git a/WcsMain/Enum/Convey/ConveyRouterEnum.cs b/WcsMain/Enum/Convey/ConveyRouterEnum.cs
new file mode 100644
index 0000000..50abed2
--- /dev/null
+++ b/WcsMain/Enum/Convey/ConveyRouterEnum.cs
@@ -0,0 +1,69 @@
+namespace WcsMain.Enum.Convey;
+
+///
+/// 输送线写路向的枚举
+///
+public enum ConveyRouterEnum : short
+{
+ LeftMove = 2001, // 左移栽
+ RightMove = 2002, // 右移栽
+ Go = 2003, // 直行,放行
+ Move = 2004, // 移栽
+
+ WmsErr = 9600, // Wms 异常
+ NoRead = 9700, // 读码失败
+ WcsErr = 9800, // Wcs 异常
+ Stop = 9900, // 停止
+
+ // 下面是固定路向
+ Router_1 = 1,
+ Router_2 = 2,
+ Router_3 = 3,
+ Router_4 = 4,
+ Router_5 = 5,
+ Router_6 = 6,
+ Router_7 = 7,
+ Router_8 = 8,
+ Router_9 = 9,
+ Router_10 = 10,
+ Router_11 = 11,
+ Router_12 = 12,
+ Router_13 = 13,
+ Router_14 = 14,
+ Router_15 = 15,
+ Router_16 = 16,
+ Router_17 = 17,
+ Router_18 = 18,
+ Router_19 = 19,
+ Router_20 = 20,
+ Router_21 = 21,
+ Router_22 = 22,
+ Router_23 = 23,
+ Router_24 = 24,
+ Router_25 = 25,
+ Router_26 = 26,
+ Router_27 = 27,
+ Router_28 = 28,
+ Router_29 = 29,
+ Router_30 = 30,
+ Router_31 = 31,
+ Router_32 = 32,
+ Router_33 = 33,
+ Router_34 = 34,
+ Router_35 = 35,
+ Router_36 = 36,
+ Router_37 = 37,
+ Router_38 = 38,
+ Router_39 = 39,
+ Router_40 = 40,
+ Router_41 = 41,
+ Router_42 = 42,
+ Router_43 = 43,
+ Router_44 = 44,
+ Router_45 = 45,
+ Router_46 = 46,
+ Router_47 = 47,
+ Router_48 = 48,
+ Router_49 = 49,
+ Router_50 = 50,
+}
diff --git a/WcsMain/EquipOperation/Convey/ConveyOperation.cs b/WcsMain/EquipOperation/Convey/ConveyOperation.cs
index 23a85da..24d1bca 100644
--- a/WcsMain/EquipOperation/Convey/ConveyOperation.cs
+++ b/WcsMain/EquipOperation/Convey/ConveyOperation.cs
@@ -99,16 +99,6 @@ public class ConveyOperation
return string.Empty;
}
-
-
-
-
-
-
-
-
-
-
///
/// 写入箱式线任务
///
@@ -117,21 +107,28 @@ public class ConveyOperation
///
public string WriteTask(string? equipmentId, ConveyPLCTask task)
{
- if (!CommonData.IsConnectPlc || CommonTool.Siemens == default)
- {
- // 未连接PLC
- return "PLC尚未连接。";
- }
+ if (!CommonData.IsConnectPlc || CommonTool.Siemens == default) return "PLC尚未连接。";
var (writeResult, _) = CommonTool.Siemens.WritePlcWhithName($"箱式线写任务{equipmentId}",
task.PlcId,
task.Router);
- if (writeResult.Success)
- {
- return string.Empty;
- }
- return writeResult.Message ?? "写入失败,未知原因";
+ return writeResult.Success ? string.Empty : writeResult.Message ?? "写入失败,未知原因";
}
+ ///
+ /// 箱式线写任务
+ ///
+ ///
+ ///
+ ///
+ ///
+ public string WriteTask(string? equipmentId, int plcId, short router) => WriteTask(equipmentId, new ConveyPLCTask(plcId, router));
+
+
+
+
+
+
+
diff --git a/WcsMain/EquipOperation/Entity/ConveyPLCTask.cs b/WcsMain/EquipOperation/Entity/ConveyPLCTask.cs
index dae6174..a3679ab 100644
--- a/WcsMain/EquipOperation/Entity/ConveyPLCTask.cs
+++ b/WcsMain/EquipOperation/Entity/ConveyPLCTask.cs
@@ -3,17 +3,17 @@
///
/// 给输送机任务
///
-public class ConveyPLCTask
+public class ConveyPLCTask(int plcId, short router)
{
///
/// Plc任务号
///
- public int PlcId { get; set; }
+ public int PlcId { get; set; } = plcId;
///
/// 路向
///
- public short Router { get; set; }
+ public short Router { get; set; } = router;
public override string ToString()
diff --git a/WcsMain/StaticData/StaticInt.cs b/WcsMain/StaticData/StaticInt.cs
new file mode 100644
index 0000000..b804394
--- /dev/null
+++ b/WcsMain/StaticData/StaticInt.cs
@@ -0,0 +1,9 @@
+namespace WcsMain.StaticData;
+
+public static class StaticInt
+{
+ public const int ErrPlcId = 999999999;
+
+
+
+}