From febcd0c73b51b17f484ff9a9a189b1f85130c2f7 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 17 三月 2026 13:52:06 +0800
Subject: [PATCH] 更新自动门,新增切卷卷绕缓存架
---
wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/SendAGVTask.cs | 358 +++++++++++++----------------------------------------------
1 files changed, 81 insertions(+), 277 deletions(-)
diff --git a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/SendAGVTask.cs b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/SendAGVTask.cs
index 2aea517..89cf2f0 100644
--- a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/SendAGVTask.cs
+++ b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/SendAGVTask.cs
@@ -23,310 +23,114 @@
private static string name1 = "";
public static void SendAGVTask1(PLCClient plcClient)
{
- if (Interlocked.Exchange(ref _readSendAGVTaskSignalso, 1) == 0)
+
+ try
{
- try
+ if (plcClient == null) { return; }
+
+ VOLContext context = new VOLContext();
+ Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
+ Ibase_ware_locationRepository locationRepository = new base_ware_locationRepository(context);
+ int TaskInteractive = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));//1鏀跺埌
+ int TaskInteractiveW = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveW.ToString()));//0鍒濆/1涓嬪彂/2鍙栨秷/3鏇存敼
+ int resetTaskInteractiveW = Convert.ToInt32(plcClient.ReadValue(TaskDBName.resetTaskInteractiveW.ToString()));
+
+ if (TaskInteractive == 0 && TaskInteractiveW == 0)
{
- if (plcClient == null) { return; }
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"---------------寮�濮嬭褰曪紝鏃堕棿锛歿DateTime.Now}------------", $"{plcClient.PLCName}SendAGVTask");
- VOLContext context = new VOLContext();
- Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
- Ibase_ware_locationRepository locationRepository = new base_ware_locationRepository(context);
- int TaskInteractive = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));//1鏀跺埌
- int TaskInteractiveW = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveW.ToString()));//0鍒濆/1涓嬪彂/2鍙栨秷/3鏇存敼
- int resetTaskInteractiveW = Convert.ToInt32(plcClient.ReadValue(TaskDBName.resetTaskInteractiveW.ToString()));
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"璇诲彇 { plcClient.PLCName},DB鍋忕Щ鍊硷細DB1000.114锛岃鍙栧�硷細{TaskInteractive},鏃堕棿锛歿DateTime.Now}", $"{plcClient.PLCName}SendAGVTask");
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"璇诲彇 { plcClient.PLCName},DB鍋忕Щ鍊硷細DB1000.112锛岃鍙栧�硷細{TaskInteractiveW},鏃堕棿锛歿DateTime.Now}", $"{plcClient.PLCName}SendAGVTask");
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"璇诲彇 { plcClient.PLCName},DB鍋忕Щ鍊硷細DB1000.118锛岃鍙栧�硷細{resetTaskInteractiveW},鏃堕棿锛歿DateTime.Now}", $"{plcClient.PLCName}SendAGVTask");
- if (isTrue1 && name1 == plcClient.PLCName)
+ dt_agvtask agvTask = agvtaskRepository.Find(r => r.agv_taskstate == "Create" && r.agv_code == plcClient.PLCName && r.agv_tasktype.Contains("TaskType_Outbound")).OrderBy(r => r.agv_createtime).OrderByDescending(r => r.agv_grade).FirstOrDefault();
+ if (null != agvTask)
{
- if (TaskInteractiveW != 0 || resetTaskInteractiveW != 0 || TaskInteractive != 0)
- {
- bool fw = plcClient.WriteValue(TaskDBName.resetTaskInteractiveW.ToString(), 1);
- Task.Delay(2000).Wait();
- resetTaskInteractiveW = Convert.ToInt32(plcClient.ReadValue(TaskDBName.resetTaskInteractiveW.ToString()));
- if (resetTaskInteractiveW == 1)
- {
- plcClient.WriteValue(TaskDBName.resetTaskInteractiveW.ToString(), 0);
- plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- Task.Delay(2000).Wait();
- }
- return;
- }
- else
- {
- isTrue1 = false;
- name1 = "";
- }
- }
- else if (resetTaskInteractiveW == 1)
- {
- plcClient.WriteValue(TaskDBName.resetTaskInteractiveW.ToString(), 0);
- plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- Task.Delay(2000).Wait();
- return;
- }
- if (TaskInteractive == 0 && TaskInteractiveW == 0)
- {
- dt_agvtask agvTask = agvtaskRepository.Find(r => r.agv_taskstate == "Create" && r.agv_code == plcClient.PLCName && r.agv_tasktype.Contains("TaskType_Outbound")).OrderBy(r => r.agv_createtime).OrderByDescending(r => r.agv_grade).FirstOrDefault();
- if (null != agvTask)
- {
- //鍐欏叆浠诲姟淇℃伅
- string rel = AGVBaseInfo.TaskWrite(plcClient, agvTask, AGVJobEnum.newTaskEnum);
- Thread.Sleep(1000);
- string taskId = plcClient.ReadValue(TaskDBName.taskID.ToString()).ToString();
+ //鍐欏叆浠诲姟淇℃伅
+ string rel = AGVBaseInfo.TaskWrite(plcClient, agvTask, AGVJobEnum.newTaskEnum);
- if (taskId != agvTask.agv_tasknum)
+ if (string.IsNullOrEmpty(rel))
+ {
+ Thread.Sleep(500);
+ for (int i = 0; i < 5; i++)
{
- isTrue1 = true;
- name1 = plcClient.PLCName;
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"璇诲彇 缁橝GV鍐欏叆浠诲姟澶辫触,璇诲彇AGV鐨則askid:{agvTask.agv_tasknum}, AGV浠诲姟闃熷垪涓笉瀛樺湪,鏃堕棿锛歿 DateTime.Now}", $"{plcClient.PLCName}SendAGVTask");
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"缁橝GV鍐欏叆浠诲姟澶辫触,浠诲姟鍙穥0},鏃堕棿锛歿 DateTime.Now}", $"{plcClient.PLCName}SendAGVTask");
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}SendAGVTask");
- return;
- //throw new Exception(string.Format("缁橝GV鍐欏叆浠诲姟澶辫触,浠诲姟鍙穥0}", agvTask.agv_tasknum));
- }
- if (string.IsNullOrEmpty(rel))
- {
- //鍐欏叆浠诲姟纭1
- bool taskInteractiveW = plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 1);
- Thread.Sleep(1000);
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"鍐欏叆 浠诲姟鍙凤細{agvTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.112,鍐欏叆AGV淇″彿:1锛屽啓鍏ュ弽棣堢粨鏋滐細{taskInteractiveW}", $"{plcClient.PLCName}SendAGVTask");
- //璇诲彇AGV淇″彿
- int ReadTask_1_OK = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"璇诲彇 浠诲姟鍙凤細{agvTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.114,璇诲彇AGV淇″彿:{ReadTask_1_OK}锛岃鍙栧弽棣堢粨鏋滐細{Convert.ToBoolean(ReadTask_1_OK)}", $"{plcClient.PLCName}SendAGVTask");
- if (ReadTask_1_OK == 1)
+ Thread.Sleep(200);
+ string taskId = plcClient.ReadValue(TaskDBName.taskID.ToString()).ToString();
+ if (taskId != agvTask.agv_tasknum)
{
- //鍐欏叆WCS纭淇″彿0
- bool taskInteractiveW2 = plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- Thread.Sleep(2000);
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"浠诲姟鍙凤細{agvTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.112,鍐欏叆AGV淇″彿:0锛屽啓鍏ュ弽棣堢粨鏋滐細{taskInteractiveW2}", $"{plcClient.PLCName}SendAGVTask");
- //璇诲彇AGV淇″彿鏄惁涓�0
- int ReadTask_0_OK = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"浠诲姟鍙凤細{agvTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.114,璇诲彇AGV淇″彿:{ReadTask_0_OK}锛岃鍙栧弽棣堢粨鏋滐細{Convert.ToBoolean(ReadTask_0_OK)}", $"{plcClient.PLCName}SendAGVTask");
-
- if (ReadTask_0_OK == 0)
- {
- agvTask.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
- agvTask.agv_realesstime = DateTime.Now;
- int agvtsask = agvtaskRepository.Update(agvTask, true);
- //if (agvtsask!=1)
- //{
- // ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"浠诲姟鍙凤細{agvTask.agv_tasknum},鍐呭锛氫换鍔′慨鏀瑰け璐ワ紝鍙嶉鍊硷細{agvtsask}", $"{plcClient.PLCName}SendAGVTask");
- // ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}SendAGVTask");
- // return;
- //}
- //else
- //{
- // ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"浠诲姟鍙凤細{agvTask.agv_tasknum},鍐呭锛氳揣浣嶇姸鎬佸凡淇敼鏈�愬凡涓嬪彂銆戠姸鎬侊紝浠诲姟淇敼鎴愬姛锛屽弽棣堝�硷細{agvtsask}", $"{plcClient.PLCName}SendAGVTask");
- //}
- }
+ if (i < 4)
+ AGVBaseInfo.TaskWrite(plcClient, agvTask, AGVJobEnum.newTaskEnum);
else
- {
- isTrue1 = true;
- name1 = plcClient.PLCName;
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"缁橝GV鍐欏叆浠诲姟纭0澶辫触 浠诲姟鍙穥agvTask.agv_tasknum}" + DateTime.Now, $"{plcClient.PLCName}SendAGVTask");
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}SendAGVTask");
return;
- //throw new Exception(string.Format("缁橝GV鍐欏叆浠诲姟纭0澶辫触,浠诲姟鍙穥0}", agvTask.agv_tasknum));
- }
- }
- else if (ReadTask_1_OK == 11)
- {
- plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- Thread.Sleep(2000);
- int ReadTask_0_Error = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));
- if (ReadTask_0_Error == 0)
- {
- agvTask.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
- agvTask.agv_realesstime = DateTime.Now;
- agvtaskRepository.Update(agvTask, true);
- }
- else
- {
- isTrue1 = true;
- name1 = plcClient.PLCName;
- throw new Exception(string.Format("缁橝GV鍐欏叆浠诲姟寮傚父纭0澶辫触,浠诲姟鍙穥0}", agvTask.agv_tasknum));
- }
}
else
{
- isTrue1 = true;
- name1 = plcClient.PLCName;
- throw new Exception(string.Format("缁橝GV鍐欏叆浠诲姟纭1澶辫触,浠诲姟鍙穥0}", agvTask.agv_tasknum));
+ break;
}
}
- else
+ //鍐欏叆浠诲姟纭1
+ bool taskInteractiveW = plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 1);
+ for (int i = 0; i < 5; i++)
{
- isTrue1 = true;
- name1 = plcClient.PLCName;
- throw new Exception(string.Format("缁橝GV鍐欏叆浠诲姟澶辫触,浠诲姟鍙穥0}" + "," + rel, agvTask.agv_tasknum));
+ Thread.Sleep(200);
+ object readValue = plcClient.ReadValue(TaskDBName.taskInteractiveW.ToString());
+ if (readValue != null && readValue.ToString() == "1")
+ {
+ break;
+ }
+ else
+ {
+ plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 1);
+ }
}
+ }
+ }
+ }
+ else if (TaskInteractive == 11 && TaskInteractiveW == 1)
+ {
+ plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
+ for (int i = 0; i < 5; i++)
+ {
+ Thread.Sleep(200);
+ object readValue = plcClient.ReadValue(TaskDBName.taskInteractiveW.ToString());
+ if (readValue != null && readValue.ToString() == "0")
+ {
+ break;
}
else
{
-
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}SendAGVTask");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------寮�濮嬭褰曪紝鏃堕棿锛歿DateTime.Now}------------", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////var ddd = plcClient.SiemensPLCClient.SiemensS7NetClient.ReadString("DB1000.320", 30).Content;
- OperateResult<string> TaskID = plcClient.SiemensPLCClient.SiemensS7NetClient.ReadString("DB1000.320", 30);
-
- if (TaskID.IsSuccess)
+ plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
+ }
+ }
+ }
+ else if (1 == TaskInteractive && TaskInteractiveW == 1)
+ {
+ string taskId = plcClient.ReadValue(TaskDBName.taskID.ToString()).ToString();
+ var agvTask = agvtaskRepository.FindFirst(x => x.agv_tasknum == taskId);
+ if (agvTask != null)
+ {
+ if (agvTask.agv_taskstate != AGVTaskStateEnum.SendOut.ToString())
+ agvTask.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
+ agvTask.agv_realesstime = DateTime.Now;
+ agvtaskRepository.Update(agvTask, true);
+ plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
+ for (int i = 0; i < 5; i++)
+ {
+ Thread.Sleep(200);
+ object readValue = plcClient.ReadValue(TaskDBName.taskInteractiveW.ToString());
+ if (readValue != null && readValue.ToString() == "0")
{
-
- TaskID.Content = TaskID.Content?.Replace("\b", "")?.Replace("\\", "")?.Replace("\0", "")?.Replace("\u0004", "")?.Replace("\u0003", "")?.Replace("\u0014", "")?.Replace("\u001e", "")?.Replace("\u0006", "")?.Replace("emptyID", "")?.Replace("mptyID", "")?.Replace("ptyID", "")?.Replace("tyID", "")?.Replace("yID", "")?.Replace("ID", "")?.Replace("\a", "")?.Replace("5-3:20:54:402025123", "");
- string result = TaskID.Content == null ? "" : TaskID.Content.Trim();
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"璇诲彇 { plcClient.PLCName},DB鍋忕Щ鍊硷細DB1000.320锛岃鍙栧�硷細{result},鏃堕棿锛歿DateTime.Now}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
-
- if (result != "")
- {
- Idt_agvtask_htyRepository agvtask_HtyRepository = new dt_agvtask_htyRepository(context);
- dt_agvtask aTask = agvtaskRepository.FindFirst(d => d.agv_tasknum == result);
- if (aTask != null)
- {
- //agvTask.agv_worktype = 2;
- string rel = AGVBaseInfo.TaskWrite(plcClient, aTask, AGVJobEnum.cancelTaskEnum);
- Thread.Sleep(1000);
- string taskId = plcClient.ReadValue(TaskDBName.taskID.ToString()).ToString();
- if (taskId != aTask.agv_tasknum)
- {
- isTrue1 = true;
- name1 = plcClient.PLCName;
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write("缁橝GV鍐欏叆浠诲姟澶辫触,璇诲彇AGV鐨則askid" + aTask.agv_tasknum + "AGV浠诲姟闃熷垪涓笉瀛樺湪" + DateTime.Now, $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- return;
- }
- if (string.IsNullOrEmpty(rel))
- {
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"浠诲姟鍙凤細{aTask.agv_tasknum},缁橝GV鍐欏叆鍙栨秷浠诲姟鎴愬姛, 鏃堕棿锛歿 DateTime.Now}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- //鍐欏叆浠诲姟纭1
- bool taskInteractiveW = plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 2);
- Thread.Sleep(1000);
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"浠诲姟鍙凤細{aTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.112,鍐欏叆AGV淇″彿:2锛屽啓鍏ュ弽棣堢粨鏋滐細{taskInteractiveW}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- //璇诲彇AGV淇″彿
- int ReadTask_1_OK = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"浠诲姟鍙凤細{aTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.114,璇诲彇AGV淇″彿:{ReadTask_1_OK}锛岃鍙栧弽棣堢粨鏋滐細{Convert.ToBoolean(ReadTask_1_OK)}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- if (ReadTask_1_OK == 1)
- {
- //鍐欏叆WCS纭淇″彿0
- bool taskInteractiveW2 = plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- Thread.Sleep(2000);
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"浠诲姟鍙凤細{aTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.112,鍐欏叆AGV淇″彿:0锛屽啓鍏ュ弽棣堢粨鏋滐細{taskInteractiveW2}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- //璇诲彇AGV淇″彿鏄惁涓�0
- int ReadTask_0_OK = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"浠诲姟鍙凤細{aTask.agv_tasknum},鍋忕Щ鍊硷細DB1000.114,璇诲彇AGV淇″彿:{ReadTask_0_OK}锛岃鍙栧弽棣堢粨鏋滐細{Convert.ToBoolean(ReadTask_0_OK)}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- if (ReadTask_0_OK == 0)
- {
- //浠h〃鍙嶉AGV娓呮浠诲姟鎴愬姛
- updateloction(aTask, locationRepository, agvtaskRepository);
- string Operate = "AGV鍙栨秷2";
- agvtask_HtyRepository.AddTaskHistory(aTask, Operate);
- agvtaskRepository.Delete(aTask, true);
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"浠诲姟鍙凤細{aTask.agv_tasknum},鎴愬姛鍒犻櫎娣诲姞鍘嗗彶璁板綍", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- return;
- }
- else
- {
- isTrue1 = true;
- name1 = plcClient.PLCName;
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"缁橝GV鍐欏叆浠诲姟纭0澶辫触 浠诲姟鍙穥aTask.agv_tasknum}" + DateTime.Now, $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- return;
- }
- }
- else if (ReadTask_1_OK == 11)
- {
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"AGV鍙嶉浠诲姟11鐨勫紓甯� 浠诲姟鍙穥aTask.agv_tasknum}" + DateTime.Now, $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- Thread.Sleep(2000);
- int ReadTask_0_Error = Convert.ToInt32(plcClient.ReadValue(TaskDBName.taskInteractiveR.ToString()));
- if (ReadTask_0_Error == 0)
- {
- updateloction(aTask, locationRepository, agvtaskRepository);
- string Operate = "AGV鍙栨秷11";
- agvtask_HtyRepository.AddTaskHistory(aTask, Operate);
- agvtaskRepository.Delete(aTask, true);
- }
- else
- {
- isTrue1 = true;
- name1 = plcClient.PLCName;
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"缁橝GV鍐欏叆浠诲姟寮傚父纭0澶辫触,浠诲姟鍙穥0},鏃堕棿锛�" + DateTime.Now, $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- return;
- // throw new Exception(string.Format("缁橝GV鍐欏叆浠诲姟寮傚父纭0澶辫触,浠诲姟鍙穥0}", agvTask.agv_tasknum));
- }
- }
- else
- {
- isTrue1 = true;
- name1 = plcClient.PLCName;
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"缁橝GV鍐欏叆浠诲姟纭1澶辫触,浠诲姟鍙穥0},鏃堕棿锛�" + DateTime.Now, $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- return;
- }
-
- }
- }
- else
- {
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write("AGV鍙嶉鐨勪换鍔″彿" + result + "AGV浠诲姟闃熷垪涓笉瀛樺湪锛屾椂闂达細" + DateTime.Now, $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------{Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- return;
- }
- }
+ break;
}
else
{
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------{plcClient.PLCName}鏂紑杩炴帴 鏃堕棿锛歿DateTime.Now} -------------- {Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- ////WriteLog.Info($"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}AGV鍙栨秷鏈墽琛屼换鍔�");
- return;
+ plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
}
-
-
-
}
}
- else
- {
- bool taskInteractiveW2 = plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- }
- if (TaskInteractive == 11)
- {
- plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- plcClient.WriteValue(TaskDBName.resetTaskInteractiveW.ToString(), 0);
- }
- //else if ( TaskInteractive==1 && TaskInteractiveW == 1)
- // {
- // isTrue1 = true;
- // name1 = plcClient.PLCName;
- // //鍐欏叆WCS纭淇″彿0
- // //bool taskInteractiveW= plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
- // ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"鍐欏叆 ,鍋忕Щ鍊硷細DB1000.112,鍐欏叆AGV淇″彿:0锛屽啓鍏ュ弽棣堢粨鏋滐細{taskInteractiveW}锛屾椂闂达細{ DateTime.Now}", $"{plcClient.PLCName}SendAGVTask");
- // ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write($"---------------缁撴潫璁板綍锛屾椂闂达細{DateTime.Now}------------ {Environment.NewLine}", $"{plcClient.PLCName}SendAGVTask");
- // return;
- // }
- //else if (TaskInteractive == 1 && TaskInteractiveW == 2)
- // {
- // isTrue1 = true;
- // name1 = plcClient.PLCName;
- // //鍐欏叆WCS纭淇″彿0
- // //bool taskInteractiveW = plcClient.WriteValue(TaskDBName.taskInteractiveW.ToString(), 0);
+ }
- // return;
- // }
-
- }
- catch (Exception ex)
- {
- ////WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write(ex.Message, $"{plcClient.PLCName}SendAGVTask");
- }
- finally
- {
- Interlocked.Exchange(ref _readSendAGVTaskSignalso, 0);
- }
}
+ catch (Exception ex)
+ {
+ //throw new Exception(ex.Message);
+ WriteLog.Info($"{plcClient.PLCName}SendAGVTask").Write(ex.Message, $"{plcClient.PLCName}SendAGVTask");
+ }
+
}
private static void updateloction(dt_agvtask aTask, Ibase_ware_locationRepository locationRepository, Idt_agvtaskRepository agvtaskRepository)
--
Gitblit v1.9.3