From 96a77e69b0577c50adfaacd5fd8b89009242d3bd Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期日, 07 十二月 2025 18:25:00 +0800
Subject: [PATCH] 更新
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 483 +++++++++++++++++++++++++++--------------------------
1 files changed, 249 insertions(+), 234 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 6bcbc52..4d3922f 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"
@@ -73,31 +73,27 @@
CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
if (conveyorLine != null)
{
- WriteLog.GetLog("Job鏃ュ織杩愯").Write(conveyorLine.DeviceCode + "杩愯鏃ュ織锛屽紑濮嬫椂闂�" + DateTime.Now, "Job鏃ュ織杩愯");
if (conveyorLine.DeviceCode == "1002")
{
RequestInbound(conveyorLine); //涓�妤糃,B鍖轰笟鍔�
}
if (conveyorLine.DeviceCode == "1003")
{
- RequestInbound2(conveyorLine);
+ RequestInbound2(conveyorLine); //D鍖轰笟鍔�
}
if (conveyorLine.DeviceCode == "1004")
{
- RequestInbound3(conveyorLine); //涓�妤糃,B鍖轰笟鍔�
+ RequestInbound3(conveyorLine); //A鍖轰笟鍔�
}
}
- WriteLog.GetLog("Job鏃ュ織杩愯").Write(conveyorLine.DeviceCode + "杩愯鏃ュ織锛岀粨鏉熸椂闂�" + DateTime.Now, "Job鏃ュ織杩愯");
- //RequestInNextAddress(conveyorLine);
-
-
+
}
catch (Exception ex)
{
- //Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString());
+ WriteLog.Write_Log("杈撻�佺嚎浜や簰", "閿欒淇℃伅", "閿欒", new { 淇℃伅 = ex.Message });
}
finally
{
@@ -108,76 +104,137 @@
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"); //鍒ゆ柇鏄惁鍙栫┖鎵樺嚭搴�
- 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
+ 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)
+ {
+
+ throw;
+ }
}
public void RequestInbound2(CommonConveyorLine 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._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宸烽亾 绔欏彴浜嬩欢 鍏ョ┖
-
- //ConveyorLineInFinish(conveyorLine, "R02-002-027-011-01"); //鍐欏叆杈撻�佺嚎鍘诲悜
-
- //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"); //鍘熸潗鏂欏嚭搴� 璇诲彇鏉$爜閫夊簱鍖哄嚭搴�
}
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 绔欏彴浜嬩欢 鍏ユ枡
+ HandleEvent2(conveyorLine, "PLC_WCS_A._05_PLC_EVENT", "PLC_WCS_A._05_PLC_LPN", "WCS_PLC_A._05_WCS_TO", "鎴愬搧U鍨嬪集鎵爜绔欏彴"); //鍒ゆ柇宸烽亾
+
+ CheckForEmptyPallet(conveyorLine, "PLC_WCS_A._02_PLC_EVENT", "PLC_WCS_A._02_PLC_LPN", "PLC_WCS_A._02_PLC_PUT", "R01-002-043-001-01"); //鍒ゆ柇鏄惁鍙栫┖鎵樺嚭搴�
+
+ 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._05_WCS_TO");// 澶勭悊 A22 绔欏彴浜嬩欢 鍏ユ枡
+
+ //鍒ゆ柇鏄惁鏈�1妤煎嚭绌烘墭浠诲姟
+ MassiveOutboundShipments(conveyorLine, "WCS_PLC_A._01_WCS_TYPE");
+ }
+
+ public void MassiveOutboundShipments(CommonConveyorLine conveyorLine, string OutPLCAddress)
+ {
+ try
+ {
+ bool WetiOuttaskinfo = _taskService.ObtainOutTaskInfo();
+ if (WetiOuttaskinfo)
+ {
+ bool result = conveyorLine.Communicator.Write(OutPLCAddress, (byte)1); //鍐欏叆鍘诲悜涓虹煭宸烽亾
+ if (result)
+ {
+ WriteLog.Write_Log("U鍨嬫垚鍝佸嚭搴�", "鎴愬搧鍑哄簱鍐欏叆淇℃伅", "鎴愬姛", new { 淇℃伅 = "鍐欏叆浜や簰淇℃伅锛屽啓鍏ユ垚鍔燂紝鍐欏叆鍊硷細1" });
+ return;
+ }
+ else
+ {
+ WriteLog.Write_Log("U鍨嬫垚鍝佸嚭搴�", "鎴愬搧鍑哄簱鍐欏叆淇℃伅", "澶辫触", new { 淇℃伅 = $"鍐欏叆澶辫触锛屽湴鍧�锛歿OutPLCAddress}" });
+ return;
+ }
+ }
+ else
+ {
+ bool result = conveyorLine.Communicator.Write(OutPLCAddress, (byte)0); //鍐欏叆鍘诲悜涓虹煭宸烽亾
+ if (result)
+ {
+ WriteLog.Write_Log("U鍨嬫垚鍝佸嚭搴�", "鎴愬搧鍑哄簱鍐欏叆淇℃伅", "鎴愬姛", new { 淇℃伅 = "鍐欏叆娓呴櫎淇℃伅锛屽啓鍏ユ垚鍔燂紝鍐欏叆鍊硷細0" });
+ return;
+ }
+ else
+ {
+ WriteLog.Write_Log("U鍨嬫垚鍝佸嚭搴�", "鎴愬搧鍑哄簱鍐欏叆淇℃伅", "澶辫触", new { 淇℃伅 = $"鍐欏叆澶辫触锛屽湴鍧�锛歿OutPLCAddress}" });
+ return;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteLog.Write_Log("U鍨嬫垚鍝佸嚭搴�", "鎴愬搧鍑哄簱鍐欏叆淇℃伅", "澶辫触", new { 淇℃伅 = $"绯荤粺閿欒淇℃伅锛屽啓鍏ュけ璐ワ紝鍦板潃锛歿OutPLCAddress}" });
+ throw;
+ }
}
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 PLCtypeTo = 1;
- if (task.TargetAddress == "R02-002-027-011-01")
+ Dt_Task task = _taskService.IngStackerCraneTask2(conveyorLine.DeviceCode);
+ if (task != null && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
{
- 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))
+ 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;
}
}
@@ -187,75 +244,16 @@
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)
+
+
+ //鏂扮殑宸烽亾鍒ゆ柇
+ 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); // 璇诲彇鏉$爜
- 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)
- {
- byte events = conveyorLine.Communicator.Read<byte>(eventTag); // 璇诲彇浜嬩欢
- if (events == 1)
- {
string barcode = conveyorLine.Communicator.Read<string>(barcodeTag).Trim(); // 璇诲彇鏉$爜
- if (barcode != "1" || barcode != "0")
+ if (events == 1 && barcode != "NoRead" && barcode != "" && barcode != null)
{
WebResponseContent content = _taskService.ToPlatform(barcode);
if (content != null)
@@ -264,16 +262,34 @@
{
if (content.Data != null)
{
+
+ if (Platform == "鎴愬搧U鍨嬪集鎵爜绔欏彴")
+ {
+ // 鍐欏叆鍘诲悜2鍙峰爢鍨涙満
+ bool result = conveyorLine.Communicator.Write(writeTag, (byte)3); //鍐欏叆鍘诲悜涓虹煭宸烽亾
+ if (result)
+ {
+ wcs_PLCto01(Platform + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鏉$爜{barcode},鍐欏叆鍘诲悜锛�3");
+ return;
+ }
+ }
+
+
if (content.Data.ToString() == "1")
{
+
if (conveyorLine.Communicator.Read<string>("PLC_WCS_C._03_PLC_LPN") == "")
{
// 鍐欏叆鍘诲悜2鍙峰爢鍨涙満
bool result = conveyorLine.Communicator.Write(writeTag, (byte)1); //鍐欏叆鍘诲悜涓洪暱宸烽亾
if (result)
{
- WriteLog.GetLog("PLC鏃ュ織").Write($"鏉$爜{barcode}锛屽啓鍏ュ幓鍚戯細1", "鍘诲悜");
+ wcs_PLCto01(Platform + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鏉$爜{barcode},鍐欏叆鍘诲悜锛�1");
}
+ }
+ else
+ {
+ wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛屽師鍥狅細褰撳墠闇�鍐欏叆鍘诲悜锛�1锛屼絾璇诲彇杈撻�佺嚎鈥滃爢鍨涙満鍙栬揣绔欏彴鈥濇湁鏉$爜锛屼笉鍙啓鍏ュ幓鍚�");
}
}
else if (content.Data.ToString() == "3")
@@ -285,26 +301,35 @@
bool result = conveyorLine.Communicator.Write(writeTag, (byte)3); //鍐欏叆鍘诲悜涓虹煭宸烽亾
if (result)
{
- WriteLog.GetLog("PLC鏃ュ織").Write($"鏉$爜{barcode},鍐欏叆鍘诲悜锛�3", "鍘诲悜");
+ wcs_PLCto01(Platform + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鏉$爜{barcode},鍐欏叆鍘诲悜锛�3");
}
}
+ else
+ {
+ wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛屽師鍥狅細褰撳墠闇�鍐欏叆鍘诲悜锛�3锛屼絾璇诲彇杈撻�佺嚎鈥滃爢鍨涙満鍙栬揣绔欏彴鈥濇湁鏉$爜锛屼笉鍙啓鍏ュ幓鍚�");
+ }
+ }
+ else
+ {
+ wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛岀敵璇峰叆搴撳け璐ワ細鏈幏鍙栧埌鍘诲悜");
}
}
}
else
{
- WriteLog.GetLog("PLC鏃ュ織").Write($"澶辫触淇℃伅锛歿content.Message}", "鍘诲悜澶辫触淇℃伅");
+ wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏉$爜锛歿barcode}锛岀敵璇峰叆搴撳け璐ワ細{content.Message}");
}
}
}
- else if (barcode == "1")
+ /*else
{
- bool result = conveyorLine.Communicator.Write(writeTag, (byte)1); //绌烘墭鍘诲悜
- if (result)
- {
- WriteLog.GetLog("PLC鏃ュ織").Write("绌烘墭鍏ュ簱锛屽啓鍏ュ幓鍚戯細1", "鍘诲悜");
- }
- }
+ wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"璇诲彇鍒拌緭閫佺嚎,鐢宠锛歿events},鏉$爜锛歿barcode}");
+ }*/
+ }
+ catch (Exception ex)
+ {
+ wcs_PLCto01(Platform + "锛氶敊璇俊鎭�", "閿欒", $"鏁呴殰淇℃伅锛歿ex.Message}");
+ throw;
}
}
@@ -317,25 +342,21 @@
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)
{
@@ -344,137 +365,109 @@
}
}
- //鐢ㄤ簬鍒ゆ柇鏄惁鍑虹┖鎵� 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)
{
- 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).Trim();
- /*if(barcode == "1")
+ byte eventStatus = conveyorLine.Communicator.Read<byte>(eventTag);
+ if ((eventStatus == 1 && taskCode != "R01-002-043-001-01") || (eventStatus == 6 && taskCode== "R01-002-043-001-01"))
{
- 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 && barcode != "0")
{
- 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
- {
- WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"璇诲彇鍒拌緭閫佺嚎淇℃伅涓虹┖锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绔欏彴淇℃伅");
- }
- }
- else if (eventStatus == 6)
- {
- if (taskCode == "R02-003-027-011-01")
- {
- WebResponseContent content = _taskService.RequestWMSTask4();
- if (content != null)
+ else
{
- if (content.Status)
+ wcs_PLCto03(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"璇诲彇鍒拌緭閫佺嚎淇℃伅鏉$爜淇℃伅涓虹┖鎴栦负0锛岃鍙栧埌杈撻�佺嚎淇℃伅锛歿barcode}");
+ }
+ }
+ else if (eventStatus == 6 && taskCode != "R01-002-043-001-01")
+ {
+ //if (taskCode == "R02-003-027-011-01" ) 涔嬪墠鐗堟湰閰嶅悎else杩涜浣跨敤
+ if (taskCode == "R01-003-041-011-01" || taskCode == "R02-003-027-011-01")
+ {
+ WebResponseContent content = _taskService.RequestWMSTask4();
+ if (content != null)
{
- if (content.Data != null)
+ if (content.Status && content.Data != null)
{
if (content.Data.ToString() == "1")
{
- if (conveyorLine.Communicator.Read<string>("PLC_WCS_D._01_PLC_LPN") == "")
+ if (conveyorLine.Communicator.Write(writeTag, (byte)1))
{
- if (conveyorLine.Communicator.Write(writeTag, (byte)1))
- {
- WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鍐欏叆鎴愬姛锛屽幓鍚戯細1锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绌烘墭鍏ュ簱鍘诲悜");
- }
- else
- {
- WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鍐欏叆澶辫触锛屽幓鍚戯細1锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绌烘墭鍏ュ簱鍘诲悜");
- }
+ wcs_PLCto04(taskCode + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鍐欏叆鎴愬姛锛屽幓鍚戯細1");
+ }
+ else
+ {
+ wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鍐欏叆澶辫触锛屽幓鍚戯細1");
}
}
else if (content.Data.ToString() == "3")
{
- if (conveyorLine.Communicator.Read<string>("PLC_WCS_D._03_PLC_LPN") == "")
+ if (conveyorLine.Communicator.Write(writeTag, (byte)3))
{
- if (conveyorLine.Communicator.Write(writeTag, (byte)3))
- {
- WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鍐欏叆鎴愬姛锛屽幓鍚戯細3锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绌烘墭鍏ュ簱鍘诲悜");
- }
- else
- {
- WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鍐欏叆澶辫触锛屽幓鍚戯細3锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绌烘墭鍏ュ簱鍘诲悜");
- }
+ wcs_PLCto04(taskCode + "锛氭垚鍔熶俊鎭�", "鎴愬姛", $"鍐欏叆鎴愬姛锛屽幓鍚戯細3");
+ }
+ else
+ {
+ wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鍐欏叆澶辫触锛屽幓鍚戯細3");
}
}
+ else
+ {
+ wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鏈壘鍒板啓鍏ュ幓鍚�");
+ }
}
- }
- }
-
- }
- else if (taskCode == "R01-003-041-011-01")
- {
- if (conveyorLine.Communicator.Read<string>("PLC_WCS_D._03_PLC_LPN") == "")
- {
- if (conveyorLine.Communicator.Write(writeTag, (byte)1))
- {
- WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鍐欏叆鎴愬姛锛屽幓鍚戯細1锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绌烘墭鍏ュ簱鍘诲悜");
+ else
+ {
+ wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鐢宠鍏ュ簱澶辫触锛岄敊璇俊鎭細{content.Message}");
+ }
}
else
{
- WriteLog.GetLog("PLC鍏ュ簱绔欏彴鏃ュ織").Write($"鍐欏叆澶辫触锛屽幓鍚戯細1锛岀珯鍙扮紪鍙蜂负锛歿taskCode}", "绌烘墭鍏ュ簱鍘诲悜");
+ 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)
+ {
+ wcs_PLCto04(taskCode + "锛氶敊璇俊鎭�", "閿欒", $"鍘熷洜锛歿ex.Message}");
+ throw;
}
}
public bool SetLine(CommonConveyorLine conveyorLine, string DeviceProDataBlock, byte Pali)
@@ -494,5 +487,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