From d77d9ff80f5fd8cd70c775fbfc30dc27061bfad2 Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期四, 02 一月 2025 09:13:06 +0800
Subject: [PATCH] 增加缠膜机交互和修改满放和空取程序
---
Admin.NET/WCS.Application/PLC/PLCCommon.cs | 351 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 246 insertions(+), 105 deletions(-)
diff --git a/Admin.NET/WCS.Application/PLC/PLCCommon.cs b/Admin.NET/WCS.Application/PLC/PLCCommon.cs
index 6aca413..b862c2c 100644
--- a/Admin.NET/WCS.Application/PLC/PLCCommon.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCCommon.cs
@@ -1,4 +1,6 @@
-锘縰sing Microsoft.AspNetCore.SignalR;
+锘縰sing Elastic.Clients.Elasticsearch.Tasks;
+using Furion.Logging;
+using Microsoft.AspNetCore.SignalR;
using RazorEngine.Compilation.ImpromptuInterface.Dynamic;
using System;
using System.Collections.Generic;
@@ -30,13 +32,14 @@
taskInfo.EndCeng = "3";
taskInfo.EndLie = "65";
taskInfo.EndPai = int.Parse(roadWay.Substring(1,2)).ToString();
+
// 绉诲簱浠诲姟
if (taskType == "2")
{
if (roadWay == endRoadWay) // 鍚屽贩閬撶Щ搴�,鑾峰彇鐩爣鍦板潃
{
- taskInfo = GetEndPai(endLocat.Substring(1, 2), endLocat.Substring(0, 2), endLocat.Substring(4, 2), endLocat.Substring(6, 2));
+ taskInfo = GetEndPai(endRoadWay.Substring(1, 2),endLocat.Substring(2, 2), endLocat.Substring(0, 2), endLocat.Substring(4, 2), endLocat.Substring(6, 2));
}
else // 璺ㄥ贩閬撶Щ搴擄紝鑾峰彇涓夋ゼ鍑哄簱鍙�
{
@@ -206,6 +209,114 @@
}
}
+ //鏍规嵁宸烽亾鍙e拰灞傛暟纭鍑哄簱宸ヤ綅鎺�
+
+
+ switch (roadWay)
+ {
+ case "R01":
+
+ if (taskInfo.EndCeng == "1")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R02":
+
+ if (taskInfo.EndCeng == "1")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R03":
+ if (taskInfo.EndCeng == "1")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R04":
+ if (taskInfo.EndCeng == "1")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R05":
+ if (taskInfo.EndCeng == "1")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R06":
+ if (taskInfo.EndCeng == "1" || taskInfo.EndCeng == "2" )
+ {
+ taskInfo.EndPai = "2";
+ }
+ if ( taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R07":
+ if (taskInfo.EndCeng == "1" )
+ {
+ taskInfo.EndPai = "2";
+ }
+ if ( taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R08":
+ if (taskInfo.EndCeng == "1")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R09":
+ if (taskInfo.EndCeng == "1")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ case "R10":
+ if (taskInfo.EndCeng == "1" || taskInfo.EndCeng == "2")
+ {
+ taskInfo.EndPai = "2";
+ }
+ if (taskInfo.EndCeng == "3")
+ {
+ taskInfo.EndPai = "3";
+ }
+ break;
+ }
return taskInfo;
}
@@ -215,80 +326,83 @@
/// </summary>
/// <param name="startStation"></param>
/// <returns></returns>
- public static PlcTaskInfo GetPlcIp(string startStation)
+ public static PLCUtil GetPlcIp(string startStation)
{
- PlcTaskInfo taskInfo = new PlcTaskInfo();
-
- var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" };
- var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "272", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
- var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" };
+ startStation = startStation.PadLeft(3, '0');
+ string strIp = "";
+ var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065","033","039","044" ,"051","059"};
+ var conveyList2 = new List<string>() { "205", "234", "252", "254", "260", "262", "270", "272", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
+ var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438", "440", "443" };
if (conveyList1.Contains(startStation))
{
- taskInfo.Ip = "10.18.51.110";
+ strIp = "10.18.51.110";
}
else if (conveyList2.Contains(startStation))
{
- taskInfo.Ip = "10.18.51.120";
+ strIp = "10.18.51.120";
}
else if (conveyList3.Contains(startStation))
{
- taskInfo.Ip = "10.18.51.130";
+ strIp = "10.18.51.130";
}
else
{
- throw new Exception("宸ヤ綅鏈煡璇㈠埌");
+ throw Oops.Bah("宸ヤ綅鏈煡璇㈠埌");
}
-
- return taskInfo;
+ var plcConveyorConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == strIp);
+ return plcConveyorConn;
}
/// <summary>
- /// 鏍规嵁wms鐩爣鍦板潃杞崲涓篜lc鐩爣鍦板潃
+ /// 鏍规嵁wms鐩爣鍦板潃杞崲涓篜lc鐩爣鍦板潃 03010301
/// </summary>
- /// <param name="lie">鍒�</param>
- /// <param name="pai">鎺�</param>
+ /// <param name="road">宸烽亾02</param>
+ /// <param name="lie">鍒�01</param>
+ /// <param name="pai">鎺�03</param>
/// <param name="ceng">灞�</param>
- /// <param name="dept">娣卞害</param>
+ /// <param name="dept">娣卞害01</param>
/// <returns></returns>
- public static PlcTaskInfo GetEndPai(string lie, string pai,string ceng, string dept)
+ public static PlcTaskInfo GetEndPai(string road,string lie, string pai,string ceng, string dept)
{
- var roadNum = int.Parse(lie);
+ var roadNum = int.Parse(road);
+ var lieNum = int.Parse(lie);
var paiNum = int.Parse(pai);
+ var cengNum = int.Parse(ceng);
var deptNum = int.Parse(dept);
var paiVal = 0;
// 鍒ゆ柇宸烽亾濂囧伓鏁�
- if (roadNum % 2 == 0)// 鍋舵暟
- {
- // 鍒ゆ柇鎺掑鍋舵暟
- if (paiNum % 2 == 0)
- {
- if (deptNum == 1)
- {
- paiVal = 3;
- }
- else
- {
- paiVal = 4;
- }
- }
- else
- {
- if (deptNum == 1)
- {
- paiVal = 1;
- }
- else
- {
- paiVal = 2;
- }
- }
+ //if (roadNum % 2 == 0)// 鍋舵暟
+ //{
+ // // 鍒ゆ柇鎺掑鍋舵暟
+ // if (paiNum % 2 == 0)
+ // {
+ // if (deptNum == 1)
+ // {
+ // paiVal = 3;
+ // }
+ // else
+ // {
+ // paiVal = 4;
+ // }
+ // }
+ // else
+ // {
+ // if (deptNum == 1)
+ // {
+ // paiVal = 2;
+ // }
+ // else
+ // {
+ // paiVal = 1;
+ // }
+ // }
- }
- else // 濂囨暟
- {
+ //}
+ //else // 濂囨暟
+ //{
// 鍒ゆ柇鎺掑鍋舵暟
if (paiNum % 2 == 0)
{
@@ -314,13 +428,16 @@
}
}
- }
+ //}
PlcTaskInfo taskInfo = new PlcTaskInfo();
- taskInfo.EndPai = pai;
- taskInfo.EndCeng = ceng;
- taskInfo.EndLie = paiVal.ToString();
-
+ taskInfo.EndPai = paiVal.ToString();
+ taskInfo.EndCeng = cengNum.ToString();
+ taskInfo.EndLie = lieNum.ToString() ;
+ if (taskInfo.EndPai == "0" || taskInfo.EndCeng == "0" || taskInfo.EndLie == "0")
+ {
+ throw new Exception("鎺掑垪灞傝浆鎹㈠け璐�");
+ }
return taskInfo;
}
@@ -488,6 +605,8 @@
/// <returns>璺烘満鑱旀満</returns>
public static string GetRoadwayByStation(string StationNum)
{
+ StationNum = StationNum.PadLeft(3, '0');
+
string value = "";
var conveyList1 = new List<string>() { "147", "145", "252", "254", "401", "402", };
var conveyList2 = new List<string>() { "139", "137", "260", "262", "405", "406", };
@@ -552,28 +671,46 @@
public static string GetRoadwayByStationNew(string StationNum)
{
string value = "";
- var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" };
- var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
- var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" };
+ //var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" };
+ //var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" };
+ //var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" };
- if (conveyList1.Contains(StationNum))
+ var ipInfo = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.ConveyorLine && s.IsDelete == false).ToList(); //s.Type == PLCTypeEnum.StackingMachine ||
+ var ip1 = ipInfo.First(m => m.Text == "1灞傛墭鐩樿緭閫佺嚎");
+ var ip2 = ipInfo.First(m => m.Text == "2灞傛墭鐩樿緭閫佺嚎");
+ var ip3 = ipInfo.First(m => m.Text == "3灞傛墭鐩樿緭閫佺嚎");
+
+ if (ip1 != null)
{
- value = "1";
- }
- else if (conveyList2.Contains(StationNum))
- {
- value = "2";
- }
- else if (conveyList3.Contains(StationNum))
- {
- value = "3";
- }
- else
- {
- throw new Exception("宸ヤ綅鏈煡璇㈠埌");
+ var dev1 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip1.Id).Select(m => m.StationNum).ToList();
+ if (dev1.Contains(StationNum))
+ {
+ value = "1";
+ return value;
+ }
}
- return value;
+ if (ip2 != null)
+ {
+ var dev2 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip2.Id).Select(m => m.StationNum).ToList();
+ if (dev2.Contains(StationNum))
+ {
+ value = "2";
+ return value;
+ }
+ }
+
+ if (ip3 != null)
+ {
+ var dev3 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip3.Id).Select(m => m.StationNum).ToList();
+ if (dev3.Contains(StationNum))
+ {
+ value = "3";
+ return value;
+ }
+ }
+
+ return "";
}
/// <summary>
@@ -679,11 +816,11 @@
/// <summary>
- /// 鏍规嵁鍌ㄤ綅鎺掕幏鍙栬泛鏈哄搴旂殑鍦板潃鎺�
+ /// 鏍规嵁鍌ㄤ綅鎺掕幏鍙栬泛鏈哄搴旂殑鍦板潃鎺�03010302
/// </summary>
- /// <param name="road">鎺�</param>
- /// <param name="pai">鎺�</param>
- /// <param name="dept">娣卞害</param>
+ /// <param name="road">鎺�02</param>
+ /// <param name="pai">鎺�03</param>
+ /// <param name="dept">娣卞害02</param>
/// <returns></returns>
public static int GetDjAdress(string road, string pai, string dept)
{
@@ -692,36 +829,36 @@
var deptNum = int.Parse(dept);
var paiVal = 0;
- // 鍒ゆ柇宸烽亾濂囧伓鏁�
- if (roadNum % 2 == 0)// 鍋舵暟
- {
- // 鍒ゆ柇鎺掑鍋舵暟
- if (paiNum % 2 == 0)
- {
- if (deptNum == 1)
- {
- paiVal = 3;
- }
- else
- {
- paiVal = 4;
- }
- }
- else
- {
- if (deptNum == 1)
- {
- paiVal = 1;
- }
- else
- {
- paiVal = 2;
- }
- }
+ //// 鍒ゆ柇宸烽亾濂囧伓鏁�
+ //if (roadNum % 2 == 0)// 鍋舵暟
+ //{
+ // // 鍒ゆ柇鎺掑鍋舵暟
+ // if (paiNum % 2 == 0)
+ // {
+ // if (deptNum == 1)
+ // {
+ // paiVal = 3;
+ // }
+ // else
+ // {
+ // paiVal = 4;
+ // }
+ // }
+ // else
+ // {
+ // if (deptNum == 1)
+ // {
+ // paiVal = 2;
+ // }
+ // else
+ // {
+ // paiVal = 1;
+ // }
+ // }
- }
- else // 濂囨暟
- {
+ //}
+ //else // 濂囨暟
+ //{
// 鍒ゆ柇鎺掑鍋舵暟
if (paiNum % 2 == 0)
{
@@ -747,8 +884,12 @@
}
}
+ //}
+ if (paiVal == 0)
+ {
+ Log.Error("鎺掕浆鎹㈠け璐�!");
+ throw new Exception("鎺掕浆鎹㈠け璐�");
}
-
return paiVal;
}
--
Gitblit v1.8.0