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/AgvAndEquiWork_JLM.cs | 167 ++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 127 insertions(+), 40 deletions(-)
diff --git a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWork_JLM.cs b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWork_JLM.cs
index d6554dc..07afd84 100644
--- a/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWork_JLM.cs
+++ b/wcs-server-hbf/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWork_JLM.cs
@@ -20,6 +20,7 @@
{
PLCClient agvjrplc = WCSService.Clients.Find(v => v.PLCName == "缁勮AGV璋冨害");
PLCClient oiplc1F = WCSService.Clients.Find(v => v.PLCName == PLCConst.PLCName1FLKHCJ);
+ PLCClient oiplcJR = WCSService.Clients.Find(v => v.PLCName == PLCConst.PLCNameJR);
#region 鏃犵嚎io妯″潡 104鍗风粫涓帶 寮�闂ㄤ俊鍙蜂紶閫�
int comErr = 0;//鑷姩闂ㄦ帀绾� "鎷嗗寘闂村嵎甯橀棬139", "娑傚竷姝h礋鏋佸嵎甯橀棬142",
@@ -44,37 +45,95 @@
OperateResult<bool> R_comErr = agvjrplc.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1004." + doorOpen);
if (!R_comErr.IsSuccess)
{
+ comErr += 30;
+ doorCode += 30;
+ doorState += 30;
+ doorOpen += 30;
continue;
+ }
+
+ string doorStart = "";//寮�闂�
+ string doorOff = "";//鍏抽棬
+ string doorStarted = "";//寮�闂ㄥ埌浣�
+ string doorOffed = "";//鍏抽棬鍒颁綅
+ switch (item)
+ {
+
+ case "璐熸瀬搴撳墠闂�":
+ doorStart = "s=2;11";
+ doorOff = "s=2;12";
+ doorStarted = "x=2;14";
+ doorOffed = "x=2;15";
+ break;
+ case "璐熸瀬搴撳悗闂�":
+ doorStart = "s=2;27";
+ doorOff = "s=2;28";
+ doorStarted = "x=2;30";
+ doorOffed = "x=2;31";
+ break;
+ case "姝f瀬搴撳悗闂�":
+ doorStart = "s=2;19";
+ doorOff = "s=2;20";
+ doorStarted = "x=2;22";
+ doorOffed = "x=2;23";
+ break;
}
//AGV璇锋眰寮�闂�
if (R_comErr.Content)
{
- Dictionary<string, string> Doorsignal = new Dictionary<string, string>();
- Doorsignal.Add("R_comErr", R_comErr.Content.ToString());//true
- Doorsignal.Add("DoorName", item.ToString());//item.ToString()
- string wificont = WIFIAPIInvoke.Doorsignal(Doorsignal);
- WebResponseContent wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
- //if (item == "缁勮椋庨搩闂ㄥ墠闂�")
- //{
- // Console.WriteLine(wificontent.Status);
- //}
- if (wificontent.Status)
+ if ((item == "璐熸瀬搴撳墠闂�" || item == "璐熸瀬搴撳悗闂�" || item == "姝f瀬搴撳悗闂�") && oiplcJR != null)//
{
- //if (item == "缁勮椋庨搩闂ㄥ墠闂�")
- //{
- // Console.WriteLine(Convert.ToUInt16(wificontent.Data) );
- //}
- if (Convert.ToBoolean(wificontent.Data) == false)//鑷姩闂ㄦ帀绾�
+ OperateResult JROpenJLM1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, true);
+ OperateResult JROpenJLM2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, true);
+ OperateResult JROpenJLM3 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, false);
+ OperateResult JROpenJLM4 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, false);
+ if (JROpenJLM1.IsSuccess || JROpenJLM2.IsSuccess || JROpenJLM3.IsSuccess || JROpenJLM4.IsSuccess)
+ {
+ OperateResult<bool> JRJLMOpen1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorStarted);
+ OperateResult<bool> JRJLMOpen2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorStarted);
+ if (JRJLMOpen1.Content || JRJLMOpen2.Content)//寮�闂ㄥ埌浣�
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(2));
+ }
+ else//闂ㄦ湭鍒颁綅
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(3));
+ }
+ }
+ else
{
OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true);
}
- else if (Convert.ToUInt16(wificontent.Data) == 2)//寮�闂ㄥ埌浣�
+ }
+ else
+ {
+ Dictionary<string, string> Doorsignal = new Dictionary<string, string>();
+ Doorsignal.Add("R_comErr", R_comErr.Content.ToString());//true
+ Doorsignal.Add("DoorName", item.ToString());//item.ToString()
+ string wificont = WIFIAPIInvoke.Doorsignal(Doorsignal);
+ WebResponseContent wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
+ //if (item == "缁勮椋庨搩闂ㄥ墠闂�")
+ //{
+ // Console.WriteLine(wificontent.Status);
+ //}
+ if (wificontent.Status)
{
- OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data));
- }
- else if (Convert.ToUInt16(wificontent.Data) == 3)//闂ㄦ湭鍒颁綅
- {
- OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data));
+ //if (item == "缁勮椋庨搩闂ㄥ墠闂�")
+ //{
+ // Console.WriteLine(Convert.ToUInt16(wificontent.Data) );
+ //}
+ if (Convert.ToBoolean(wificontent.Data) == false)//鑷姩闂ㄦ帀绾�
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true);
+ }
+ else if (Convert.ToUInt16(wificontent.Data) == 2)//寮�闂ㄥ埌浣�
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data));
+ }
+ else if (Convert.ToUInt16(wificontent.Data) == 3)//闂ㄦ湭鍒颁綅
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent.Data));
+ }
}
}
}
@@ -92,26 +151,54 @@
//else
//{
// WIDESEA_Common.Tools.WriteLog.GetLog("鏂紑寮�闂ㄤ俊鍙�").Write($"Info锛歿item}+{DateTime.Now}", "鏂紑寮�闂ㄤ俊鍙�");
- //AGV涓嶇粰寮�闂ㄤ俊鍙风殑鏃跺�� 鏂紑寮�闂ㄤ俊鍙�
- Dictionary<string, string> Doorsigna1 = new Dictionary<string, string>();
- Doorsigna1.Add("R_comErr", R_comErr.Content.ToString());
- Doorsigna1.Add("DoorName", item.ToString());
- string wificont = WIFIAPIInvoke.Doorsignal(Doorsigna1);
- WebResponseContent wificontent2 = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
- if (wificontent2.Status)
+ if ((item == "璐熸瀬搴撳墠闂�" || item == "璐熸瀬搴撳悗闂�" || item == "姝f瀬搴撳悗闂�") && oiplcJR != null)
{
- if (Convert.ToBoolean(wificontent2.Data) == false)//鑷姩闂ㄦ帀绾�
+ //AGV涓嶇粰寮�闂ㄤ俊鍙风殑鏃跺�� 鏂紑寮�闂ㄤ俊鍙�
+ OperateResult JROpenJLM1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, false);
+ OperateResult JROpenJLM2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorStart, false);
+ //OperateResult JROpenJLM3 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, true);
+ //OperateResult JROpenJLM4 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.Write(doorOff, true);
+ if (JROpenJLM1.IsSuccess || JROpenJLM2.IsSuccess)
+ {
+ OperateResult<bool> JRJLMOpen1 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorOffed);
+ OperateResult<bool> JRJLMOpen2 = oiplcJR.ModbusPLCClient.ModbusTcpNetClient.ReadBool(doorOffed);
+ if (JRJLMOpen1.Content || JRJLMOpen2.Content)//鍏抽棬鍒颁綅
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(1));
+ }
+ else//闂ㄦ湭鍒颁綅
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(3));
+ }
+ }
+ else
{
OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true);
}
- ////else if (Convert.ToUInt16(wificontent2.Data) == 1)//鍏抽棬鍒颁綅
- ////{
- //// OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data));
- ////}
- else
+ }
+ else
+ {
+ //AGV涓嶇粰寮�闂ㄤ俊鍙风殑鏃跺�� 鏂紑寮�闂ㄤ俊鍙�
+ Dictionary<string, string> Doorsigna1 = new Dictionary<string, string>();
+ Doorsigna1.Add("R_comErr", R_comErr.Content.ToString());
+ Doorsigna1.Add("DoorName", item.ToString());
+ string wificont = WIFIAPIInvoke.Doorsignal(Doorsigna1);
+ WebResponseContent wificontent2 = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
+ if (wificontent2.Status)
{
- //鍏抽棬鏈埌浣�
- OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data));
+ if (Convert.ToBoolean(wificontent2.Data) == false)//鑷姩闂ㄦ帀绾�
+ {
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (comErr), true);
+ }
+ ////else if (Convert.ToUInt16(wificontent2.Data) == 1)//鍏抽棬鍒颁綅
+ ////{
+ //// OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data));
+ ////}
+ else
+ {
+ //鍏抽棬鏈埌浣�
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (doorState), Convert.ToUInt16(wificontent2.Data));
+ }
}
}
//}
@@ -136,11 +223,11 @@
OperateResult<bool> JLMOpen = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.ReadBool("x=2;8612");
if (JLMOpen.Content)//寮�闂ㄥ埌浣�
{
- OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 2);
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(2));
}
else//闂ㄦ湭鍒颁綅
{
- OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 3);
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(3));
}
}
else
@@ -157,11 +244,11 @@
OperateResult<bool> JLMOpen = oiplc1F.ModbusPLCClient.ModbusTcpNetClient.ReadBool("x=2;8613");
if (JLMOpen.Content)//鍏抽棬鍒颁綅
{
- OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 1);
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(1));
}
else//闂ㄦ湭鍒颁綅
{
- OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), 3);
+ OperateResult W_stationDockSteps = agvjrplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1004." + (RKState), Convert.ToUInt16(3));
}
}
else
--
Gitblit v1.9.3