From 1cd9280bbecf557f8978ad3839f14827ff9f4d34 Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期三, 17 十二月 2025 22:23:26 +0800
Subject: [PATCH] 最新
---
项目代码/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs | 77 +++++++++++++++++++++++++++++++-------
1 files changed, 62 insertions(+), 15 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs"
index 962fb47..2ad7646 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundRequestAction.cs"
@@ -5,6 +5,7 @@
using System.Text;
using System.Threading;
using WIDESEA_Common;
+using WIDESEA_Common.TaskEnum;
using WIDESEA_Common.Tools;
using WIDESEA_Core.Utilities;
using WIDESEA_Entity.DomainModels;
@@ -18,6 +19,22 @@
{
public partial class OutboundAreaDispatch
{
+
+ public static void OutboundCZ_PLC(IDt_TaskWCSinfoRepository taskWCSinfoRepository,IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
+ {
+ //杞﹁酱鍦ㄥ嚭搴撳彛涓嬪彂杈撻�佺嚎浠诲姟
+ Dt_TaskWCSinfo hisTask = taskWCSinfoRepository.FindFirst(r => (r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString() || r.wcstask_state == TaskState.TaskState_Empty_Out_RGV_Finished.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())
+ && (OutboundStationLayerNo.Contains(r.wcstask_startPoint)));
+ if (null != hisTask)
+ {
+ if (hisTask.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) || hisTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString()))
+ {
+ OutboundRequestAction(taskWCSinfoRepository, client);
+ }
+
+
+ }
+ }
/// <summary>
/// 鍑哄簱鍖虹┖鎵樼洏鍑哄簱
@@ -33,11 +50,12 @@
//鏌ヨ鍑哄簱寰呬换鍔�
Dt_TaskWCSinfo wcsInfo = null;
if (!string.IsNullOrEmpty(rfidResult) && !"0".Equals(rfidResult))
- wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && r.wcstask_state == TaskState.TaskState_RGV_Received.ToString());
+ wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && (r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()
+ || r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString()));
//wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && r.wcstask_state == TaskState.TaskState_Assigned.ToString());
else
{
- wcsInfo = taskWCSinfoRepository.Find(r => r.wcstask_state == TaskState.TaskState_RGV_Received.ToString()
+ wcsInfo = taskWCSinfoRepository.Find(r => r.wcstask_state == TaskState.TaskState_Box_Out_RGV_Finished.ToString()
&& OutboundStationLayerNo.Contains(r.wcstask_startPoint)).OrderBy(r => r.wcstask_createTime).FirstOrDefault();
}
if (null == wcsInfo)
@@ -49,26 +67,55 @@
if (logicValue == 1 || logicValue == 2)
{
if (!wcsInfo.wcstask_state.Contains("Executing"))
+ {
+ //鍐欏叆鎵樼洏鏉$爜
+ bool writeTaskNumber = client.WriteValue(CLineInfoDBName.W_Line_TaskNumber.ToString(), wcsInfo.wcstask_startPoint, wcsInfo.wcstask_taskNumber);
+ bool writeBarcode = client.WriteValue(CLineInfoDBName.W_Line_Barcode.ToString(), wcsInfo.wcstask_startPoint, wcsInfo.wcstask_barcode);
WriteTaskInfo.WriteTaskInfoAction(wcsInfo, client, lineCode);
+ }
}
- rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString();
- if (!wcsInfo.wcstask_barcode.Equals(rfidResult))
- return true;
- logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString());
- //璇存槑绔欏彴宸茬粡鏀跺埌浠诲姟鏁版嵁锛岀瓑寰匴CS鐨勫惎鍔ㄦ寚浠�
- if (logicValue == 3)
+ else if (logicValue == 3)
{
//鍚姩浠诲姟
- client.WriteValue(CLineInfoDBName.W_Line_Logic.ToString(), lineCode, 1);
+ bool plclogicbool=client.WriteValue(CLineInfoDBName.W_Line_Logic.ToString(), lineCode, 1);
+ if(plclogicbool)
+ {
+ string state = TaskState.TaskState_HoisterExecuting.ToString();
+ if (wcsInfo.wcstask_state == state)
+ return true;
+ wcsInfo.wcstask_state = state;
+ wcsInfo.wcstask_dispatcherTime = DateTime.Now;
+ taskWCSinfoRepository.Update(wcsInfo, true);
+ }
+
}
else if (logicValue == 4 || logicValue == 5)
{
- string state = TaskState.TaskState_HoisterExecuting.ToString();
- if (wcsInfo.wcstask_state == state)
- return true;
- wcsInfo.wcstask_state = state;
- wcsInfo.wcstask_dispatcherTime = DateTime.Now;
- taskWCSinfoRepository.Update(wcsInfo, true);
+ string taskplc_Result = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString();
+ if(taskplc_Result== wcsInfo.wcstask_barcode)
+ {
+ string state = TaskState.TaskState_Box_Out_Line_Executing.ToString();
+ if (wcsInfo.wcstask_state == state)
+ return true;
+ wcsInfo.wcstask_state = state;
+ wcsInfo.wcstask_dispatcherTime = DateTime.Now;
+ taskWCSinfoRepository.Update(wcsInfo, true);
+ }
+ else
+ {
+ Dt_TaskWCSinfo wcsInfoPLC = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == rfidResult && r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString());
+ if (wcsInfoPLC != null)
+ {
+ string state = TaskState.TaskState_Box_Out_Line_Executing.ToString();
+ if (wcsInfoPLC.wcstask_state == state)
+ return true;
+ wcsInfoPLC.wcstask_state = state;
+ wcsInfoPLC.wcstask_dispatcherTime = DateTime.Now;
+ taskWCSinfoRepository.Update(wcsInfoPLC, true);
+ }
+ }
+
+
}
}
catch (Exception ex)
--
Gitblit v1.9.3