From 1d8897348d578648421b024d0dc5ff3d626e05f9 Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期四, 19 六月 2025 16:48:07 +0800 Subject: [PATCH] 最新 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 448 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 238 insertions(+), 210 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" index 9f36bdd..9998fa7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" @@ -20,7 +20,9 @@ using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; +using OfficeOpenXml.Packaging.Ionic.Zip; using Quartz; +using SqlSugar; using StackExchange.Profiling.Internal; using System; using System.Collections.Generic; @@ -65,27 +67,33 @@ public Task Execute(IJobExecutionContext context) { - + try { CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams"); - if ( conveyorLine != null ) + if (conveyorLine != null) { - if(conveyorLine.DeviceCode == "1002") + if (conveyorLine.DeviceCode == "1002") { RequestInbound(conveyorLine); //涓�妤糃,B鍖轰笟鍔� } - + if (conveyorLine.DeviceCode == "1003") + { + RequestInbound2(conveyorLine); + } + if (conveyorLine.DeviceCode == "1004") + { + RequestInbound3(conveyorLine); + } + } - //RequestInNextAddress(conveyorLine); - - + } catch (Exception ex) { - //Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString()); + WriteLog.Write_Log("杈撻�佺嚎浜や簰", "閿欒淇℃伅", "閿欒", new { 淇℃伅 = ex.Message }); } finally { @@ -96,82 +104,89 @@ public void RequestInbound(CommonConveyorLine conveyorLine) { - //1妤艰緭閫佺嚎鍒ゆ柇 - HandleEvent2(conveyorLine, "PLC_WCS_B._03_PLC_EVENT", "PLC_WCS_B._03_PLC_LPN", "WCS_PLC_B._03_WCS_TO"); //鍒ゆ柇宸烽亾 - HandleEvent2(conveyorLine, "PLC_WCS_C._02_PLC_EVENT", "PLC_WCS_C._02_PLC_LPN", "WCS_PLC_C._02_WCS_TO"); //鍒ゆ柇宸烽亾 - CheckForEmptyPallet(conveyorLine, "PLC_WCS_B._02_PLC_EVENT", "PLC_WCS_B._02_PLC_LPN", "PLC_WCS_B._02_PLC_PUT", "R02-002-027-001-01"); //鍒ゆ柇鏄惁鍙栫┖鎵樺嚭搴� - CheckForEmptyPallet(conveyorLine, "PLC_WCS_C._01_PLC_EVENT", "PLC_WCS_C._01_PLC_LPN", "PLC_WCS_C._01_PLC_PUT", "R01-002-041-001-01"); //鍒ゆ柇鏄惁鍙栫┖鎵樺嚭搴� + try + { + //1妤艰緭閫佺嚎鍒ゆ柇 + HandleEvent2(conveyorLine, "PLC_WCS_B._03_PLC_EVENT", "PLC_WCS_B._03_PLC_LPN", "WCS_PLC_B._03_WCS_TO", "鍘熸潗鏂欐壂鐮佺珯鍙�"); //鍒ゆ柇宸烽亾 + HandleEvent2(conveyorLine, "PLC_WCS_C._02_PLC_EVENT", "PLC_WCS_C._02_PLC_LPN", "WCS_PLC_C._02_WCS_TO", "鎴愬搧鎵爜绔欏彴"); //鍒ゆ柇宸烽亾 + CheckForEmptyPallet(conveyorLine, "PLC_WCS_B._02_PLC_EVENT", "PLC_WCS_B._02_PLC_LPN", "PLC_WCS_B._02_PLC_PUT", "R02-002-027-001-01"); //鍒ゆ柇鏄惁鍙栫┖鎵樺嚭搴� + CheckForEmptyPallet(conveyorLine, "PLC_WCS_C._01_PLC_EVENT", "PLC_WCS_C._01_PLC_LPN", "PLC_WCS_C._01_PLC_PUT", "R01-002-041-001-01"); //鍒ゆ柇鏄惁鍙栫┖鎵樺嚭搴� + ProcessConveyorEvent(conveyorLine, "PLC_WCS_B._01_PLC_EVENT", "PLC_WCS_B._01_PLC_LPN", "R02-003-027-001-01", "WCS_PLC_B._03_WCS_TO");// 澶勭悊 B + ProcessConveyorEvent(conveyorLine, "PLC_WCS_C._03_PLC_EVENT", "PLC_WCS_C._03_PLC_LPN", "R01-003-041-001-01", "WCS_PLC_C._02_WCS_TO");// 澶勭悊 C + } + catch (Exception ex) + { - - ProcessConveyorEvent(conveyorLine, "PLC_WCS_B._01_PLC_EVENT", "PLC_WCS_B._01_PLC_LPN", "R02-003-027-001-01", "WCS_PLC_B._03_WCS_TO");// 澶勭悊 B - ProcessConveyorEvent(conveyorLine, "PLC_WCS_C._03_PLC_EVENT", "PLC_WCS_C._03_PLC_LPN", "R01-003-041-001-01", "WCS_PLC_C._02_WCS_TO");// 澶勭悊 C + throw; + } } public void RequestInbound2(CommonConveyorLine conveyorLine) { //椤舵ゼ妤艰緭閫佺嚎鍒ゆ柇 - HandleEvent(conveyorLine, "PLC_WCS_D._05_PLC_EVENT", "PLC_WCS_D._05_PLC_LPN", "WCS_PLC_D._05_WCS_TO"); //鍒ゆ柇鍏ュ簱宸烽亾 - ProcessConveyorEvent(conveyorLine, "PLC_WCS_D._01_PLC_EVENT", "PLC_WCS_D._01_PLC_LPN", "R02-003-027-011-01", "WCS_PLC_D._05_WCS_TO");// 澶勭悊 1宸烽亾 绔欏彴浜嬩欢鍏ョ┖ - ProcessConveyorEvent(conveyorLine, "PLC_WCS_D._03_PLC_EVENT", "PLC_WCS_D._03_PLC_LPN", "R01-003-041-011-01", "WCS_PLC_D._05_WCS_TO");// 澶勭悊 2宸烽亾 绔欏彴浜嬩欢 鍏ョ┖ - - CheckForEmptyPallet2(conveyorLine, "PLC_WCS_D._02_PLC_EVENT", "PLC_WCS_D._02_PLC_LPN", "PLC_WCS_D._02_PLC_PUT", "R02-002-027-011-01"); //鍘熸潗鏂欏嚭搴� 璇诲彇鏉$爜閫夊簱鍖哄嚭搴� - CheckForEmptyPallet2(conveyorLine, "PLC_WCS_D._04_PLC_EVENT", "PLC_WCS_D._04_PLC_LPN", "PLC_WCS_D._04_PLC_PUT", "R01-002-041-011-01"); //鍘熸潗鏂欏嚭搴� 璇诲彇鏉$爜閫夊簱鍖哄嚭搴� - //ConveyorLineInFinish(conveyorLine); //鐢ㄤ簬鍐欏叆杈撻�佺嚎鏉$爜淇℃伅锛屾殏鏃舵湭鐢� + ProcessConveyorEvent(conveyorLine, "PLC_WCS_D._01_PLC_EVENT", "PLC_WCS_D._01_PLC_LPN", "R01-003-041-011-01", "WCS_PLC_D._01_WCS_TO");// 澶勭悊 1宸烽亾 绔欏彴浜嬩欢鍏ョ┖ + ProcessConveyorEvent(conveyorLine, "PLC_WCS_D._03_PLC_EVENT", "PLC_WCS_D._03_PLC_LPN", "R02-003-027-011-01", "WCS_PLC_D._03_WCS_TO");// 澶勭悊 2宸烽亾 绔欏彴浜嬩欢 鍏ョ┖ } public void RequestInbound3(CommonConveyorLine conveyorLine) { ProcessConveyorEvent(conveyorLine, "PLC_WCS_A._02_PLC_EVENT", "PLC_WCS_A._02_PLC_LPN", "R01-002-043-001-01", "WCS_PLC_A._02_WCS_TO");// 澶勭悊 A21 绔欏彴浜嬩欢鍏ュ簱 - //ProcessConveyorEvent(conveyorLine, "PLC_WCS_A._03_PLC_EVENT", "PLC_WCS_A._03_PLC_LPN", "R01-002-042-001-01", "WCS_PLC_A._03_WCS_TO");// 澶勭悊 A22 绔欏彴浜嬩欢 鍏ユ枡 - - //ConveyorLineInFinish(conveyorLine,"R01-002-044-001-01"); //鐢ㄤ簬鍐欏叆杈撻�佺嚎鏉$爜淇℃伅锛岀敤浜庡嚭搴� + ProcessConveyorEvent(conveyorLine, "PLC_WCS_A._03_PLC_EVENT", "PLC_WCS_A._03_PLC_LPN", "R01-002-042-001-01", "WCS_PLC_A._03_WCS_TO");// 澶勭悊 A22 绔欏彴浜嬩欢 鍏ユ枡 } - public void ConveyorLineInFinish(CommonConveyorLine conveyorLine,string SCAddress) + public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, string SCAddress) { - DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine,SCAddress, "R_StackerCraneLowered"); //璇诲彇杈撻�佺嚎 鈥滃爢鍨涙満鏀句笅鈥� 淇″彿 - if ( deviceProDTO2 != null ) + try { - byte strsd = GetLine(conveyorLine, deviceProDTO2.DeviceChildCode); - if (strsd == 1) + DeviceProDTO? deviceProDTO2 = GetDeviceProDTO(conveyorLine, SCAddress, "R_StackerCraneLowered"); //璇诲彇杈撻�佺嚎 鈥滃爢鍨涙満鏀句笅鈥� 淇″彿 + if (deviceProDTO2 != null) { - Dt_Task task = _taskService.IngStackerCraneTask2(conveyorLine.DeviceCode); - if(task != null && task.TaskType==(int)TaskOutboundTypeEnum.Outbound) + byte strsd = GetLine(conveyorLine, deviceProDTO2.DeviceChildCode); + if (strsd == 1) { - byte PalletType = 2; - if (task.TargetAddress == "R02-002-027-001-01" || task.TargetAddress == "R01-002-041-001-01") + Dt_Task task = _taskService.IngStackerCraneTask2(conveyorLine.DeviceCode); + if (task != null && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) { - PalletType = 1; - } - DeviceProDTO? deviceProDTO3 = GetDeviceProDTO(conveyorLine, SCAddress, "W_PalletBarcode"); //鍐欏叆鏉$爜 - DeviceProDTO? deviceProDTO4 = GetDeviceProDTO(conveyorLine, SCAddress, "W_PalletLayers"); //灞傛暟 - DeviceProDTO? deviceProDTO5 = GetDeviceProDTO(conveyorLine, SCAddress, "W_PalletType"); //绫诲瀷 - DeviceProDTO? deviceProDTO6 = GetDeviceProDTO(conveyorLine, SCAddress, "W_Destination"); //绫诲瀷 - if (deviceProDTO3 != null && deviceProDTO4 != null && deviceProDTO5 != null && deviceProDTO6 != null) - { - if (SetLinestring(conveyorLine, deviceProDTO3.DeviceProDataBlock, task.PalletCode) && SetLine(conveyorLine, deviceProDTO4.DeviceProDataBlock, (byte)task.PalletCodequantity) && SetLine(conveyorLine, deviceProDTO5.DeviceProDataBlock, PalletType) && SetLine(conveyorLine, deviceProDTO6.DeviceProDataBlock, (byte)task.PLCTo)) + byte PLCtypeTo = 1; + if (task.TargetAddress == "R02-002-027-011-01") { + PLCtypeTo = 2; + } + DeviceProDTO? deviceProDTO3 = GetDeviceProDTO(conveyorLine, SCAddress, "W_PalletBarcode"); //鍐欏叆鏉$爜 + DeviceProDTO? deviceProDTO4 = GetDeviceProDTO(conveyorLine, SCAddress, "W_PalletLayers"); //灞傛暟 + DeviceProDTO? deviceProDTO5 = GetDeviceProDTO(conveyorLine, SCAddress, "W_PalletType"); //绫诲瀷 + DeviceProDTO? deviceProDTO6 = GetDeviceProDTO(conveyorLine, SCAddress, "W_Destination"); //绫诲瀷 + if (deviceProDTO3 != null && deviceProDTO4 != null && deviceProDTO5 != null && deviceProDTO6 != null) + { + if (SetLinestring(conveyorLine, deviceProDTO3.DeviceProDataBlock, task.PalletCode) && SetLine(conveyorLine, deviceProDTO4.DeviceProDataBlock, (byte)task.PalletCodequantity) && SetLine(conveyorLine, deviceProDTO5.DeviceProDataBlock, PLCtypeTo) && SetLine(conveyorLine, deviceProDTO6.DeviceProDataBlock, (byte)task.PLCTo)) + { - LogSignalStatus($"鍐欏叆鏀捐揣瀹屾垚淇℃伅锛屾墭鐩樻潯鐮侊紝灞傛暟锛岀被鍨嬩俊鎭垚鍔�", deviceProDTO2.DeviceChildCode); + LogSignalStatus($"鍐欏叆鏀捐揣瀹屾垚淇℃伅锛屾墭鐩樻潯鐮侊紝灞傛暟锛岀被鍨嬩俊鎭垚鍔�", deviceProDTO2.DeviceChildCode); + } + else + { + LogSignalStatus($"鍐欏叆鏀捐揣瀹屾垚淇℃伅锛屾墭鐩樻潯鐮侊紝灞傛暟锛岀被鍨嬩俊鎭け璐�", deviceProDTO2.DeviceChildCode); + + } } else { - LogSignalStatus($"鍐欏叆鏀捐揣瀹屾垚淇℃伅锛屾墭鐩樻潯鐮侊紝灞傛暟锛岀被鍨嬩俊鎭け璐�", deviceProDTO2.DeviceChildCode); + LogSignalStatus($"鏈壘鍒拌緭閫佺嚎鍗忚淇℃伅", task.TargetAddress); } - } - else - { - LogSignalStatus($"鏈壘鍒拌緭閫佺嚎鍗忚淇℃伅", task.TargetAddress); - } } } } - + catch (Exception ex) + { + + throw; + } + } //鑾峰彇杈撻�佺嚎瀹炰緥 public DeviceProDTO? GetDeviceProDTO(CommonConveyorLine conveyorLine, string SCAddress, string Interactivet) @@ -179,111 +194,72 @@ return conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SCAddress && x.DeviceProParamName == Interactivet); } - /// <summary> - /// 鐢ㄤ簬鍏ュ簱鍒ゆ柇宸烽亾 - /// </summary> - /// <param name="conveyorLine"></param> - /// <param name="eventTag"></param> - /// <param name="barcodeTag"></param> - /// <param name="writeTag"></param> - private void HandleEvent(CommonConveyorLine conveyorLine,string eventTag, string barcodeTag, string writeTag) - { - try - { - byte events = conveyorLine.Communicator.Read<byte>(eventTag); // 璇诲彇浜嬩欢 - if (events == 1) - { - string barcode = conveyorLine.Communicator.Read<string>(barcodeTag); // 璇诲彇鏉$爜 - if(barcode != "1" || barcode != "0") - { - if ((_taskService.ToPlatform(barcode)).Status) - { - if(conveyorLine.Communicator.Read<string>("PLC_WCS_B._01_PLC_LPN")=="") - { - // 鍐欏叆鍘诲悜2鍙峰爢鍨涙満 - bool result = conveyorLine.Communicator.Write(writeTag, (byte)3); //鍘熸潗鏂欏幓鍚� - if (result) - { - WriteLog.GetLog("PLC鏃ュ織").Write("鍐欏叆鍘诲悜锛�3", "鍘诲悜"); - } - } - } - } - - - if (barcode == "1") - { - // 鍐欏叆鍘诲悜2鍙峰爢鍨涙満 - bool result = conveyorLine.Communicator.Write(writeTag, (byte)1); //绌烘墭鍘诲悜 - if (result) - { - WriteLog.GetLog("PLC鏃ュ織").Write("绌烘墭鍏ュ簱锛屽啓鍏ュ幓鍚戯細1", "鍘诲悜"); - } - } - /*else - { - // 鍐欏叆鍘诲悜1鍙峰爢鍨涙満 - bool result = conveyorLine.Communicator.Write(writeTag, (byte)1); - if (result) - { - WriteLog.GetLog("PLC鏃ュ織").Write("鍐欏叆鍘诲悜锛�2", "鍘诲悜"); - } - - WriteLog.GetLog("PLC鏃ュ織").Write("鍏ュ簱澶辫触", "鍏ュ簱缁勭洏"); - }*/ - } - } - catch (Exception ex) - { - - throw; - } - } + //鏂扮殑宸烽亾鍒ゆ柇 - private void HandleEvent2(CommonConveyorLine conveyorLine, string eventTag, string barcodeTag, string writeTag) + private void HandleEvent2(CommonConveyorLine conveyorLine, string eventTag, string barcodeTag, string writeTag,string Platform) { try { byte events = conveyorLine.Communicator.Read<byte>(eventTag); // 璇诲彇浜嬩欢 - if (events == 1) + string barcode = conveyorLine.Communicator.Read<string>(barcodeTag).Trim(); // 璇诲彇鏉$爜 + if (events == 1 && barcode != "NoRead" && barcode != "" && barcode != null) { - string barcode = conveyorLine.Communicator.Read<string>(barcodeTag); // 璇诲彇鏉$爜 - if (barcode != "1" || barcode != "0") + WebResponseContent content = _taskService.ToPlatform(barcode); + if (content != null) { - WebResponseContent content = _taskService.ToPlatform(barcode); - if ((int)content.Data == 1) + if (content.Status) { - if (conveyorLine.Communicator.Read<string>("PLC_WCS_B._01_PLC_LPN") == "") + if (content.Data != null) { - // 鍐欏叆鍘诲悜2鍙峰爢鍨涙満 - bool result = conveyorLine.Communicator.Write(writeTag, (byte)1); //鍐欏叆鍘诲悜涓洪暱宸烽亾 - if (result) + if (content.Data.ToString() == "1") { - WriteLog.GetLog("PLC鏃ュ織").Write($"鏉$爜{barcode}锛屽啓鍏ュ幓鍚戯細1", "鍘诲悜"); + if (conveyorLine.Communicator.Read<string>("PLC_WCS_C._03_PLC_LPN") == "") + { + // 鍐欏叆鍘诲悜2鍙峰爢鍨涙満 + bool result = conveyorLine.Communicator.Write(writeTag, (byte)1); //鍐欏叆鍘诲悜涓洪暱宸烽亾 + if (result) + { + wcs_PLCto01(Platform + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鏉$爜{barcode},鍐欏叆鍘诲悜锛�1"); + } + } + else + { + wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛屽師鍥狅細褰撳墠闇�鍐欏叆鍘诲悜锛�1锛屼絾璇诲彇杈撻�佺嚎鈥滃爢鍨涙満鍙栬揣绔欏彴鈥濇湁鏉$爜锛屼笉鍙啓鍏ュ幓鍚�"); + } } - } - }else if ((int)content.Data == 3) - { - - if (conveyorLine.Communicator.Read<string>("PLC_WCS_C._03_PLC_LPN") == "") - { - // 鍐欏叆鍘诲悜2鍙峰爢鍨涙満 - bool result = conveyorLine.Communicator.Write(writeTag, (byte)3); //鍐欏叆鍘诲悜涓虹煭宸烽亾 - if (result) + else if (content.Data.ToString() == "3") { - WriteLog.GetLog("PLC鏃ュ織").Write($"鏉$爜{barcode},鍐欏叆鍘诲悜锛�3", "鍘诲悜"); + + if (conveyorLine.Communicator.Read<string>("PLC_WCS_B._01_PLC_LPN") == "") + { + // 鍐欏叆鍘诲悜2鍙峰爢鍨涙満 + bool result = conveyorLine.Communicator.Write(writeTag, (byte)3); //鍐欏叆鍘诲悜涓虹煭宸烽亾 + if (result) + { + wcs_PLCto01(Platform + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鏉$爜{barcode},鍐欏叆鍘诲悜锛�3"); + } + } + else + { + wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛屽師鍥狅細褰撳墠闇�鍐欏叆鍘诲悜锛�3锛屼絾璇诲彇杈撻�佺嚎鈥滃爢鍨涙満鍙栬揣绔欏彴鈥濇湁鏉$爜锛屼笉鍙啓鍏ュ幓鍚�"); + } + } + else + { + wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛岀敵璇峰叆搴撳け璐ワ細鏈幏鍙栧埌鍘诲悜"); } } } - }else if (barcode == "1") - { - bool result = conveyorLine.Communicator.Write(writeTag, (byte)1); //绌烘墭鍘诲悜 - if (result) + else { - WriteLog.GetLog("PLC鏃ュ織").Write("绌烘墭鍏ュ簱锛屽啓鍏ュ幓鍚戯細1", "鍘诲悜"); + wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛岀敵璇峰叆搴撳け璐ワ細{content.Message}"); } } + } + else + { + wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"璇诲彇鍒拌緭閫佺嚎,鐢宠锛歿events},鏉$爜锛歿barcode}"); } } catch (Exception ex) @@ -292,9 +268,9 @@ throw; } } - + //鐢ㄤ簬鍒ゆ柇鏄惁琛ョ┖鎵� A鍖� - private void CheckForEmptyPallet(CommonConveyorLine conveyorLine,string eventTag, string barcodeTag,string plcput,string Loc) + private void CheckForEmptyPallet(CommonConveyorLine conveyorLine, string eventTag, string barcodeTag, string plcput, string Loc) { try @@ -302,24 +278,20 @@ Byte events = conveyorLine.Communicator.Read<Byte>(eventTag); // 璇诲彇浜嬩欢 if (events == 1) //1涓虹┖锛�0涓烘湁 { - string barcode = conveyorLine.Communicator.Read<string>(barcodeTag); // 璇诲彇鏉$爜 - if(barcode == "") + WebResponseContent content = _taskService.RequestWMSTask2("", Loc); + // 鐢熸垚鍫嗗灈鏈哄彇绌烘墭浠诲姟 + if (content.Status) { - WriteLog.GetLog("PLC鏃ュ織鍑哄簱鏃ュ織").Write($"璇诲彇鍒板嚭搴撳彛琛ョ┖鎵樹俊鍙凤細{events}", "闇�瑕佺┖鎵�"); - // 鐢熸垚鍫嗗灈鏈哄彇绌烘墭浠诲姟 - byte plcputts = conveyorLine.Communicator.Read<byte>(plcput); - if (plcputts != 1) - { - if ((_taskService.RequestWMSTask2("", Loc)).Status) - { - WriteLog.GetLog("PLC鏃ュ織鍑哄簱鏃ュ織").Write($"宸茬敓鎴愮┖鎵樺嚭搴撲换鍔★細{events}", "闇�瑕佺┖鎵�"); - } - else - { - WriteLog.GetLog("PLC鏃ュ織鍑哄簱鏃ュ織").Write($"鏈敓鎴愮┖鎵樺嚭搴撲换鍔★細{events}", "闇�瑕佺┖鎵�"); - } - } + wcs_PLCto02(Loc + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"宸茬敓鎴愮┖鎵樺嚭搴撲换鍔�"); } + else + { + wcs_PLCto02(Loc + "锛氶敊璇俊鎭�", "閿欒", $"鏈敓鎴愮┖鎵樺嚭搴撲换鍔★紝閿欒淇℃伅锛歿content.Message}"); + } + } + else + { + wcs_PLCto02(Loc + "锛氶敊璇俊鎭�", "閿欒", $"璇诲彇鍒拌緭閫佺嚎,鐢宠锛歿events}"); } } catch (Exception ex) @@ -329,74 +301,108 @@ } } - //鐢ㄤ簬鍒ゆ柇鏄惁鍑虹┖鎵� D鍖� - private void CheckForEmptyPallet2(CommonConveyorLine conveyorLine, string eventTag, string barcodeTag, string plcput, string Loc) - { - Byte events = conveyorLine.Communicator.Read<Byte>(eventTag); // 璇诲彇浜嬩欢 - if (events == 1) //1涓虹┖锛�0涓烘湁 - { - string barcode = conveyorLine.Communicator.Read<string>(barcodeTag); // 璇诲彇鏉$爜 - if (barcode != "1" || barcode != "0") - { - WriteLog.GetLog("PLC鏃ュ織鍑哄簱鏃ュ織").Write($"璇诲彇鍒板師鏉愭枡鍑哄簱淇℃伅锛屾潯鐮佷俊鎭細{barcode}", "鍘熸潗鏂欏嚭搴�"); - - byte outCount = conveyorLine.Communicator.Read<byte>(plcput); - if ((_taskService.RequestWMSTask3(barcode, outCount,Loc)).Status) - { - //鍐欏叆杈撻�佺嚎娓呴櫎淇℃伅 - WriteLog.GetLog("PLC鏃ュ織鍑哄簱鏃ュ織").Write($"宸茬敓鎴愬師鏉愭枡鍑哄簱浠诲姟锛屾潯鐮佷俊鎭細{barcode}", "鍘熸潗鏂欏嚭搴�"); - } - else - { - WriteLog.GetLog("PLC鏃ュ織鍑哄簱鏃ュ織").Write($"鏈敓鎴愬師鏉愭枡鍑哄簱浠诲姟锛屾潯鐮佷俊鎭細{barcode}", "鍘熸潗鏂欏嚭搴�"); - } - } - } - - } //鐢ㄤ簬鍒ゆ柇鍏ュ簱绔欏彴 - private void ProcessConveyorEvent(CommonConveyorLine conveyorLine, string eventTag, string barcodeTag, string taskCode,string writeTag) + private void ProcessConveyorEvent(CommonConveyorLine conveyorLine, string eventTag, string barcodeTag, string taskCode, string writeTag) { - byte eventStatus = conveyorLine.Communicator.Read<byte>(eventTag); - if (eventStatus == 1) + try { - WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"璇诲彇鍒拌緭閫佺嚎鐢宠鍏ュ簱淇℃伅EVENT涓猴細{eventStatus}锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绔欏彴淇℃伅"); - string barcode = conveyorLine.Communicator.Read<string>(barcodeTag); - if(barcode == "1") + byte eventStatus = conveyorLine.Communicator.Read<byte>(eventTag); + if (eventStatus == 1) { - string currentTime = DateTime.Now.ToString("HHmmss"); - barcode = "KTP" + currentTime; - - } - if (barcode != null) - { - bool result = conveyorLine.Communicator.Write(writeTag, (byte)0); - if(taskCode== "R01-003-042-001-01") + string barcode = conveyorLine.Communicator.Read<string>(barcodeTag).Trim(); + if (barcode != null) { - if ((_taskService.ToPlatform(barcode)).Status) + bool result = conveyorLine.Communicator.Write(writeTag, (byte)0); + wcs_PLCto03("鍘诲悜娓呴櫎", "鎴愬姛", $"鍦板潃锛歿writeTag}锛屽幓鍚戞竻闄や负锛�0"); + WebResponseContent content = _taskService.RequestWMSTask(barcode, taskCode); // 鐢宠鍏ュ簱锛岀敓鎴愬爢鍨涙満浠诲姟 + if (content != null) { - WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"缁勭洏鎴愬姛锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绔欏彴淇℃伅"); - } - } - // 鎷垮彇鎵樼洏鏉$爜鐢宠鍏ュ簱淇℃伅 - WebResponseContent content = _taskService.RequestWMSTask(barcode, taskCode); // 鐢宠鍏ュ簱锛岀敓鎴愬爢鍨涙満浠诲姟 - if (content !=null) - { - if (content.Status) - { - WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鐢宠鍏ュ簱鎴愬姛锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绔欏彴淇℃伅"); + if (content.Status) + { + wcs_PLCto03(taskCode + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鏉$爜锛歿barcode}锛岀敵璇峰叆搴撴垚鍔�"); + } + else + { + wcs_PLCto03(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛岀敵璇峰叆搴撳け璐ワ紝閿欒淇℃伅锛歿content.Message}"); + } } else { - WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鐢宠鍏ュ簱澶辫触锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绔欏彴淇℃伅"); + wcs_PLCto03(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛岀敵璇峰叆搴撳け璐ワ紝閿欒淇℃伅content杩斿洖鍊间负绌�"); } } + else + { + wcs_PLCto03(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"璇诲彇鍒拌緭閫佺嚎淇℃伅涓虹┖"); + } } - else + else if (eventStatus == 6) { - WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"璇诲彇鍒拌緭閫佺嚎淇℃伅涓虹┖锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绔欏彴淇℃伅"); + if (taskCode == "R02-003-027-011-01") + { + WebResponseContent content = _taskService.RequestWMSTask4(); + if (content != null) + { + if (content.Status && content.Data != null) + { + if (content.Data.ToString() == "1") + { + if (conveyorLine.Communicator.Write(writeTag, (byte)1)) + { + wcs_PLCto04(taskCode + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鍐欏叆鎴愬姛锛屽幓鍚戯細1"); + } + else + { + wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鍐欏叆澶辫触锛屽幓鍚戯細1"); + } + } + else if (content.Data.ToString() == "3") + { + + if (conveyorLine.Communicator.Write(writeTag, (byte)3)) + { + wcs_PLCto04(taskCode + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鍐欏叆鎴愬姛锛屽幓鍚戯細3"); + } + else + { + wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鍐欏叆澶辫触锛屽幓鍚戯細3"); + } + } + else + { + wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鏈壘鍒板啓鍏ュ幓鍚�"); + } + } + else + { + wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鐢宠鍏ュ簱澶辫触锛岄敊璇俊鎭細{content.Message}"); + } + } + else + { + wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鐢宠鍏ュ簱澶辫触锛岄敊璇俊鎭細content杩斿洖鍊间负绌�"); + } + + } + else if (taskCode == "R01-003-041-011-01") + { + if (conveyorLine.Communicator.Write(writeTag, (byte)1)) + { + wcs_PLCto04(taskCode + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鍐欏叆澶辫触锛屽幓鍚戯細1"); + } + else + { + wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鍐欏叆澶辫触锛屽幓鍚戯細1"); + } + + } } + } + catch (Exception ex) + { + + throw; } } public bool SetLine(CommonConveyorLine conveyorLine, string DeviceProDataBlock, byte Pali) @@ -407,7 +413,7 @@ { return conveyorLine.Communicator.Write(DeviceProDataBlock, Pali); } - + public byte GetLine(CommonConveyorLine conveyorLine, string DeviceProDataBlock) { return conveyorLine.Communicator.Read<byte>(DeviceProDataBlock); @@ -416,5 +422,27 @@ { WriteLog.GetLog("鍫嗗灈鏈轰笌plc浜や簰淇″彿").Write($"绔欏彴缂栧彿锛歿sourceAddress},淇℃伅锛歿message}", $"{sourceAddress}"); } + + + + + public void wcs_PLCto01(string SCLLinStack, string Logtype, string Magessadd) + { + WriteLog.Write_Log("涓�妤兼壂鐮佺珯鍙�", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd }); + } + + public void wcs_PLCto02(string SCLLinStack, string Logtype, string Magessadd) + { + WriteLog.Write_Log("涓�妤艰ˉ绌烘墭", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd }); + } + public void wcs_PLCto03(string SCLLinStack, string Logtype, string Magessadd) + { + WriteLog.Write_Log("鍏ュ簱绔欏彴", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd }); + } + public void wcs_PLCto04(string SCLLinStack, string Logtype, string Magessadd) + { + WriteLog.Write_Log("椤舵ゼ绌烘墭鍥炲簱", SCLLinStack, Logtype, new { 淇℃伅 = Magessadd }); + } + } } -- Gitblit v1.9.3