From c58ba7324d1ca0eb0941ac2762334c19d7d92e3f Mon Sep 17 00:00:00 2001
From: liudl <673013083@qq.com>
Date: 星期日, 16 二月 2025 16:36:27 +0800
Subject: [PATCH] 演示模式修改为2个机器人同时分道
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 142 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 119 insertions(+), 23 deletions(-)
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index 2c61b1f..cce8b64 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -1514,7 +1514,7 @@
// 鍙嶉WMS
var requestMode = new TaskRequestWMS()
{
- TaskNo = modTask.TaskNo,
+ TaskNo = modTask.TaskNo + modTask.EndLocate ,
PalletNo = modTask.PalletNo,
TaskType = ((int)TaskTypeEnum.Out).ToString(),
TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
@@ -1623,7 +1623,7 @@
// 鍙嶉WMS
var requestMode = new TaskRequestWMS()
{
- TaskNo = modTask.TaskNo,
+ TaskNo = modTask.TaskNo + modTask.EndLocate ,
PalletNo = modTask.PalletNo,
TaskType = ((int)TaskTypeEnum.Out).ToString(),
TaskStatus = ((int)TaskStatusEnum.Complete).ToString()
@@ -1749,8 +1749,22 @@
#endregion
+
}
break;
+ #region 灏忚溅鍙斁淇″彿
+ case "150":
+ { // 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭�
+ var strMsg = "";
+ var http = new HttpService();
+ var modPosPallet = modDevice.listStation.FirstOrDefault(m => m.Text == "鎵樼洏鐮�");
+ var (res, palletVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos);
+ // 鑾峰彇鎵樼洏浠诲姟鍙�
+ var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�");
+ var (res1, val) = plcConn.GetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos);
+ }
+ break;
+ #endregion
default: break;
}
@@ -1816,10 +1830,13 @@
// 閫氶亾鍙�
var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "閫氶亾鍙�");
- // 婕旂ず妯″紡鐩存帴鍐欏叆1鍒嗛亾
- var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "1");
+ // 婕旂ず妯″紡鐩存帴鍐欏叆鍒嗛亾鍙�
+ Random random = new Random();
+ int ranNumber = random.Next(2) == 0 ? 1 : 5;
+ var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, ranNumber.ToString());
if (ret.IsSucceed)
{
+ Log.Information(string.Format("鍒嗛亾鎴愬姛锛岄亾鍙锋槸锛�" + ranNumber));
// 鍐欏叆娴佺▼鎺у埗瀛� 2
var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
if (!retVal.IsSucceed)
@@ -2117,14 +2134,16 @@
var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
if (retVal.IsSucceed)
{
- if (modDevice.DbNumber == "DB102")//1L鎷嗚泛鍒嗘嫞鍚庨渶瑕佸洖浼犵鐮�
- {
- var http = new HttpService();
- IsBaleModel2 ret1 = http.RequestBoxno(boxNoVal);
- if (ret1.Success == -1)
+ { // liudl 姝ゆ绋嬪簭涓嶄細鎵ц 纭鍚庣洿鎺ュ垹闄�
+ if (modDevice.DbNumber == "DB102")//1L鎷嗚泛鍒嗘嫞鍚庨渶瑕佸洖浼犵鐮�
{
- Log.Error("绠辩爜鍒嗘嫞鍥炰紶澶辫触锛岄渶瑕佹墜鍔ㄦ嫞璐с�傚け璐ョ鐮侊細"+boxNoVal);
- break;
+ var http = new HttpService();
+ IsBaleModel2 ret1 = http.RequestBoxno(boxNoVal);
+ if (ret1.Success == -1)
+ {
+ Log.Error("绠辩爜鍒嗘嫞鍥炰紶澶辫触锛岄渶瑕佹墜鍔ㄦ嫞璐с�傚け璐ョ鐮侊細"+boxNoVal);
+ break;
+ }
}
}
break;
@@ -2235,6 +2254,7 @@
}
var rowCount = _db.Updateable(boxInfo).ExecuteCommand();
+ Log.Information(string.Format("鎻掔爜鎴愬姛锛岀鐮佹槸锛�"+ boxNo, modDevice.StationNum));
if (rowCount > 0)
{
// 鎻掔爜鎴愬姛
@@ -2379,12 +2399,12 @@
}
break;
}
+ // 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛�
string sqlStr = $"insert into WCSBoxInfoLog select * from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'";
int insertCount = _db.Ado.ExecuteCommand(sqlStr);
if (insertCount > 0)
{
- // 缁勬墭鎴愬姛鍚庡皢淇℃伅瀛樺埌log琛�
- string sqlStr2 = $"delete from WCSBoxInfoLog where IsDelete=0 and PalletNo='{palletNo}'";
+ string sqlStr2 = $"delete from WCSBoxInfo where IsDelete=0 and PalletNo='{palletNo}'";
_db.Ado.ExecuteCommand(sqlStr2);
}
@@ -2479,13 +2499,13 @@
}
/// <summary>
- /// 鎷嗗灈鏈哄櫒浜轰笟鍔″鐞�
+ /// 鍑哄簱浠剁杈撻�佸拰鎷嗗灈鏈哄櫒浜轰笟鍔″鐞�
/// </summary>
/// <param name="modDevice"></param>
private static void StackingRobot(WcsDeviceDto modDevice)
{
var plcConn = modDevice.PLCUtil;
- if (modDevice.DbNumber == "DB131" && modDevice.DbNumber == "DB132" && modDevice.DbNumber == "DB133" && modDevice.DbNumber == "DB134")
+ if (modDevice.DbNumber == "DB131" || modDevice.DbNumber == "DB132" || modDevice.DbNumber == "DB133" || modDevice.DbNumber == "DB134")
{
switch (modDevice.Value.ToString())
{
@@ -2505,7 +2525,7 @@
// 鏍规嵁浠诲姟鍙疯幏鍙栦换鍔′俊鎭�
if (res1.IsSucceed)
{
- var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.EndLocate == "009" && m.IsDelete == false);
+ var modTask = _db.Queryable<WcsTask>().First(m => m.TaskNo == tasknoVal && m.EndLocate == "009" && m.IsDelete == false);
if (modTask == null)
{
Log.Error(string.Format($"鍑哄簱浠诲姟鏈笅鍙戯紝璇蜂汉宸ュ鐞嗭紝鏃犳硶鎷嗗灈锛�"));
@@ -2515,33 +2535,33 @@
//閫氳繃浠诲姟鍙峰拰鎵樼洏鍙峰悜WMS鐢宠姝ゆ墭鐩樼殑鎷嗗灈淇℃伅
var http = new HttpService();
RequestBoxInfoCheckAll tasklist = http.RequestBoxCheckinfo(palletVal, tasknoVal);
- if (!tasklist.Success.Contains("-1"))
+ if (tasklist.Success != -1)
{
//鑾峰彇鎷嗗灈鐗╂枡鍝佺(闇�瑕佸鍔犵墿鏂欏垽鏂紝鍚屼竴涓墿鏂欏彿鍙兘浼氬嚭鐜颁笉鍚岀殑鐮佸灈瑙勫垯)
- var pz = _db.Queryable<WcsMateialPzInfo>().First(m => m.SkuNo == tasklist.list[0].SkuNo);
+ var pz = _db.Queryable<WcsMateialPzInfo>().First(m => m.SkuNo == tasklist.data.SkuNo);
//涓嬪彂鎷嗘墭瑙勬牸锛屾媶绠辨暟鍜屾墭鐩樹笂鎬荤鏁帮紙涓嶇粦瀹氭満鍣ㄤ汉锛屾媶鍨涗换鍔′俊鎭彧涓嬪彂涓�娆★級
// 缁橮LC鍐欏叆浠诲姟鏁版嵁
var listResult = new List<Result>();
// 鑾峰彇鎵樼洏瑙勫垯
var Standard = modDevice.listStation.FirstOrDefault(m => m.Text == "瑙勬牸");
- listResult.Add(plcConn.SetPlcDBValue(Standard.PosType, modDevice.DbNumber, Standard.PlcPos, tasklist.list[0].Standard));
+ listResult.Add(plcConn.SetPlcDBValue(Standard.PosType, modDevice.DbNumber, Standard.PlcPos, pz.PZNo));
//鎶撶鏁�
var qty = modDevice.listStation.FirstOrDefault(m => m.Text == "鎷嗙鏁伴噺");
- listResult.Add(plcConn.SetPlcDBValue(qty.PosType, modDevice.DbNumber, qty.PlcPos, tasklist.list[0].Qty.ToString()));
+ listResult.Add(plcConn.SetPlcDBValue(qty.PosType, modDevice.DbNumber, qty.PlcPos, tasklist.data.Qty.ToString()));
//鎬荤鏁�
var qtycount = modDevice.listStation.FirstOrDefault(m => m.Text == "鎬荤鏁�");
- listResult.Add(plcConn.SetPlcDBValue(qtycount.PosType, modDevice.DbNumber, qtycount.PlcPos, tasklist.list[0].QtyCount.ToString()));
+ listResult.Add(plcConn.SetPlcDBValue(qtycount.PosType, modDevice.DbNumber, qtycount.PlcPos, tasklist.data.QtyCount.ToString()));
// 鏄惁鍐欏叆鎴愬姛
if (listResult.All(s => s.IsSucceed))
{
- var ret1 = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "20");
+ var ret1 = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "30");
}
else
{
- Log.Error(string.Format($"鐮佸灈淇℃伅鏈啓鍏ワ紒鎵樼洏鍙凤細"+palletVal+"锛岀爜鍨涗綅锛�"+modDevice.StationNum));
+ Log.Error(string.Format($"鐮佸灈淇℃伅鏈啓鍏ワ紒鎵樼洏鍙凤細" + palletVal + "锛岀爜鍨涗綅锛�" + modDevice.StationNum));
break;
}
}
@@ -2553,6 +2573,82 @@
break;
}
}
+ else
+ {
+ switch (modDevice.Value.ToString())
+ {
+ case "1":
+ // 1妤间欢绠盤LC璇锋眰WCS璇荤爜
+ {
+ // 璇诲彇plc绠辩爜
+ var modBoxNo = modDevice.listStation.FirstOrDefault(m => m.Text == "涓绘壂鏉$爜");
+ var (res, boxNo) = plcConn.GetPlcDBValue(modBoxNo.PosType, modDevice.DbNumber, modBoxNo.PlcPos);
+ if (string.IsNullOrWhiteSpace(boxNo.ToString()))
+ {
+
+ // 绠变俊鎭负null鍐欏叆鍓旈櫎閫氶亾鍙�:0
+ var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "0");
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ Log.Error("绠辩爜涓簄ull鎴栧凡缁戝畾鎵樼洏锛岃繘琛屽墧闄ゃ��");
+ break;
+ }
+ }
+ }
+ else
+ {
+ // 绠辩爜
+ string boxNoVal = boxNo.ToString();
+ // 閫氶亾鍙�
+ var modLineNo = modDevice.listStation.FirstOrDefault(m => m.Text == "閫氶亾鍙�");
+
+ // 璋冪敤wms鎺ュ彛楠岃瘉绠辩爜鏄惁鍙嫞璐у苟杩斿洖瑁呰溅鍙�
+ var http = new HttpService();
+ RequestloadingAddre requesModel = http.ResultBoxInfoExportWcs(boxNoVal);
+ if (requesModel.Success != "0")
+ {
+ // 绠变俊鎭负null鍐欏叆鍓旈櫎閫氶亾鍙�:0
+ var ret = plcConn.SetPlcDBValue(modLineNo.PosType, modDevice.DbNumber, modLineNo.PlcPos, "0");
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ Log.Error("鍑哄簱鍒嗘嫞鏍规嵁绠辩爜鑾峰彇瑁呰溅鍙eけ璐ワ紝杩涜鍓旈櫎銆�" + requesModel.Message);
+ break;
+ }
+ }
+ }
+ else
+ {
+ // 鍐欏叆鍑哄簱鍒嗛亾鍙�
+ var ret = plcConn.SetPlcDBValue(modLineNo.PosType, modDevice.DbNumber, modLineNo.PlcPos, requesModel.loadingAddre);
+ if (ret.IsSucceed)
+ {
+ // 鍐欏叆娴佺▼鎺у埗瀛� 2
+ var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+ if (retVal.IsSucceed)
+ {
+ break;
+ }
+ }
+ }
+ }
+ };break;
+ case "10":
+ // 1妤间欢绠盤LC璇荤爜澶辫触锛學CS涓嶅仛澶勭悊鐩存帴鍓旈櫎鎵嬫寔鎷h揣銆�
+ {
+
+ };break;
+ default:
+ break;
+ }
+ }
}
--
Gitblit v1.8.0