From 24de88ebbbb3597bb2043840bc685e3d59363967 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期一, 07 七月 2025 16:48:39 +0800 Subject: [PATCH] 优化轮询ERP信息流程、添加AGV接口报文打印、执行中任务强制取消的功能 --- core/WCSCore.cs | 85 ++++++++++++++++++++++-------------------- 1 files changed, 44 insertions(+), 41 deletions(-) diff --git a/core/WCSCore.cs b/core/WCSCore.cs index 61e832b..ea81f71 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -2,7 +2,6 @@ using HH.WCS.Mobox3.AnGang.dispatch; using HH.WCS.Mobox3.AnGang.models; using HH.WCS.Mobox3.AnGang.process; -using HH.WCS.Mobox3.AnGang.config; using Newtonsoft.Json; using SqlSugar; using System; @@ -20,7 +19,7 @@ public static ReturnResult OperateAgvTaskStatus(AgvTaskState model) { var result = new ReturnResult(); try { - if (model.state > 0 && model.state < 1000) { + if (model.state > 0) { // AGV 鎵ц浠诲姟鐨勯�杈戝鐞� if (!AgvTaskProcessOk(model)) { // 鎵ц涓峅K锛岃鏄庢病鏈夋壘鍒颁换鍔�@@ -165,10 +164,12 @@ if (data.Count == 0) { LogHelper.Info("璁剧疆缁堢偣璐т綅澶辫触锛氭病鏈夋帴鍙楀埌鏉ヨ嚜鍥借嚜AGV鐨勯噸閲忎俊鎭�); - //return; // TODO 姝e紡杩愯鏈夊浗鑷狝GV鐨勬椂鍊欐仮澶�+ //cgDetail.F_QTY = 0; // 涓嶈缃负绌猴紝渚夸簬娴嬭瘯鏃堕鍏堣缃竴涓甯稿� } else { - var weight = float.Parse(data[0].parameter_varchar200_up); + var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1]; + + var weight = float.Parse(weight_str); cgDetail.F_QTY = weight; tn_task.F_WEIGHT = weight; @@ -205,11 +206,26 @@ return; } + //row -= 100; // 118-1 + // 鍙綋涔嬪墠鎸囧畾缁堢偣璐ф灦鍚庯紝鎵嶅皾璇曡绠楃粓鐐硅揣浣� if (cgDetail.F_QTY > 2000) { // 閲嶉噺瓒呰繃 2t endLoc = null; LogHelper.Info("閲嶉噺瓒呰繃2t锛屼笉鍏佽鍏ュ簱"); + + // 浼犻�缁欏浗鑷狝GV + if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { + type_name = "GET_DST", + interaction_info_id = int.Parse(tn_task.S_EQ_TASK_CODE), + info_status = "error", + })) { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅鎴愬姛", "HosttoagvTask"); + } + else { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈瓒呴噸鍙栨秷淇℃伅澶辫触", "HosttoagvTask"); + } + return; } else if (cgDetail.F_QTY > 1500) { @@ -233,18 +249,17 @@ // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勮揣浣嶏紝缃┖锛岀瓑寰匬DA閲嶆柊纭畾 if (endLoc == null) { - tn_task.S_END_AREA = Settings.Areas[1][0]; // HJQ + tn_task.S_END_AREA = Settings.Areas[AreaIndex.H璐ф灦鍖篯[0]; // HJQ tn_task.S_END_LOC = "0"; // 涓嶉渶瑕佸啀缁橤Z AGV浼犵┖鍊硷紝涓�紑濮嬪氨娌$粰鍏蜂綋璐т綅锛屽彧缁欎簡Area - //var request = new UpdateInteractInfo { // interaction_info_id = 3, // 鏇存敼缁堢偣淇℃伅 // info_status = "active", // return_value = "", //}; - //GZRobot.UpdateInteractInfo(request); + if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC }) .ExecuteCommand() > 0) { //LocationHelper.LockLoc(endLoc.S_CODE, 1);//缁堢偣鍏ュ簱閿�@@ -259,6 +274,19 @@ tn_task.S_END_LOC = endLoc.S_CODE; LocationHelper.LockLoc(ref endLoc, 1); // 缁堢偣鍏ュ簱閿�+ + // 浼犻�缁欏浗鑷狝GV + if (GZRobot.UpdateInteractInfo(new UpdateInteractInfo { + type_name = "GET_DST", + interaction_info_id = int.Parse(tn_task.S_EQ_TASK_CODE), + info_status = "invalid", + return_value = LocationHelper.GetAgvSite(tn_task.S_END_LOC), // 鐩墠浣跨敤agvsite + })) { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅鎴愬姛", "HosttoagvTask"); + } + else { + LogHelper.Info($"鍥借嚜AGV鎺ュ彈缁堢偣淇℃伅澶辫触", "HosttoagvTask"); + } using (var tran = db.Ado.UseTran()) { if (db.Updateable<TN_Task>(tn_task).UpdateColumns(it => new { it.S_END_LOC }) @@ -305,8 +333,9 @@ LogHelper.Info("鏇存柊鐗╂枡閲嶉噺澶辫触锛氭病鏈夋帴鍙楀埌鏉ヨ嚜鍥借嚜AGV鐨勯噸閲忎俊鎭�); return; } + var weight_str = data[0].parameter_varchar200_up.Split(';')[1].Split('-')[1]; - var weight = float.Parse(data[0].parameter_varchar200_up); + var weight = float.Parse(weight_str); cgDetail.F_QTY = weight; if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY).ExecuteCommand() <= 0) { @@ -338,8 +367,6 @@ { //浣跨敤鑷畾涔変换鍔℃帹閫� TaskProcess.SendTask(task);//璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧 - //TaskProcess.SendGZTask(task);///璋冨害鍥借嚜璁惧 - }); } else @@ -348,37 +375,13 @@ } } - public static ReturnResult SafetyInteraction(SafetyInteractionInfo model) { - var gzResult = new ReturnResult(); - //var db = new SqlHelper<object>().GetInstance(); - //ModbusHelper.Relink(); - - //var productionLineInfo = Settings.ProductionLines[0]; - //var prodLineDevice = new ProductionLineDevice(productionLineInfo.PlcIp, productionLineInfo.PlcPort); - //if (!prodLineDevice.LoadDeviceStateOk()) { - // LogHelper.Info("鍔犺浇璁惧淇℃伅澶辫触"); - //} - - //var tn_task = db.Queryable<TN_Task>().First(a => a.S_CODE == model.task_no); - //if (tn_task == null) { - // LogHelper.Info($"浠诲姟鍙�'{model.task_no}' 涓嶅瓨鍦�); - //} - - //if (prodLineDevice.SystemState == 1 - // && prodLineDevice.FullOffline == 1 && tn_task.S_TYPE == "鎴愬搧鑳朵笅绾�鎵樼洏(WMS)") { - // if (!prodLineDevice.SetAgvPicking(1)) { - // LogHelper.Info("鍐欏叆杈撻�绾�PLC 澶辫触"); - // } - //} - - //if (prodLineDevice.SystemState == 1 - // && prodLineDevice.AllowAgvPlacePallet == 1 && tn_task.S_TYPE == "绌烘墭鐩樹笂绾�WMS)") { - // if (!prodLineDevice.SetAgvPlacingPallet(1)) { - // LogHelper.Info("鍐欏叆杈撻�绾�PLC 澶辫触"); - // } - //} - - //LogHelper.Info(JsonConvert.SerializeObject(prodLineDevice, Formatting.Indented)); + // DOC 4. 绔欏彴鐢宠瀹夊叏浜や簰 RCS->WMS + public static gzResult SafetyInteraction(SafetyInteractionInfo model) { + var gzResult = new gzResult() { + code = 0, + msg = "success" + }; + // 鐩墠璇ラ」鐩病鏈夌珯鍙板畨鍏ㄤ氦浜掔殑鍔熻兘 return gzResult; } } -- Gitblit v1.9.1