From 42bb5b84ff935e0a3efb46f56d4ff5ca5ed9e592 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期三, 16 四月 2025 15:54:52 +0800 Subject: [PATCH] 修改问题,添加备注 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 11 ++++++++++- Admin.NET/WCS.Application/Configuration/Database.json | 2 +- Admin.NET/WCS.Application/OpenApi/OpenApi.cs | 5 ++++- Admin.NET/WCS.Application/PLC/PLCUtil.cs | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 3 deletions(-) diff --git a/Admin.NET/WCS.Application/Configuration/Database.json b/Admin.NET/WCS.Application/Configuration/Database.json index 9aa88be..709fe9b 100644 --- a/Admin.NET/WCS.Application/Configuration/Database.json +++ b/Admin.NET/WCS.Application/Configuration/Database.json @@ -11,7 +11,7 @@ //"ConnectionString": "PORT=5432;DATABASE=xxx;HOST=localhost;PASSWORD=xxx;USER ID=xxx", // PostgreSQL 搴撹繛鎺ュ瓧绗︿覆 //"ConnectionString": "Server=localhost;Database=xxx;Uid=xxx;Pwd=xxx;SslMode=None;", // MySql 搴撹繛鎺ュ瓧绗︿覆", //"ConnectionString": "User Id=xxx; Password=xxx; Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))", // Oracle 搴撹繛鎺ュ瓧绗︿覆 - "ConnectionString": "Server=localhost;Database=WCS_JC30;User Id=sa;Password=sql2022;", // SqlServer 搴撹繛鎺ュ瓧绗︿覆 + "ConnectionString": "Server=172.18.3.206;Database=WCS_JC30;User Id=sa;Password=sql2024!@#;", // SqlServer 搴撹繛鎺ュ瓧绗︿覆 //"SlaveConnectionConfigs": [ // 璇诲啓鍒嗙/涓讳粠 diff --git a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs index f57a346..348f56f 100644 --- a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs +++ b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs @@ -568,6 +568,7 @@ }; _db.Insertable(modTaskMonitor).ExecuteCommand(); HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + //鍐欏叆鍏夊箷0 Task.Run(() => { var modDevice = PLCTaskAction.plcDevices.FirstOrDefault(s => s.PlcId == modPlc.Id && s.Level == DeviceLevelEnum.DB); @@ -586,6 +587,7 @@ HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>()); }); + //鍚戠爜鍨涙満鍣ㄤ汉鍐欏彇鎵樺畬鎴愪俊鍙� modDevice = PLCTaskAction.plcDevices.FirstOrDefault(s => s.PlcId == modPlc.Id && s.Level == DeviceLevelEnum.Station); res = modConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.PlcPos, "0"); modTaskMonitor = new WcsTaskMonitor() @@ -600,7 +602,8 @@ HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>()); modConn.Close(); } - if (modTask.StartLocate == AGVStaionEnum.A1.ToString()) + //璧峰宸ヤ綅鏄彁鍗囨満鍙栬揣宸ヤ綅 + if (modTask.StartLocate == AGVStaionEnum.A2.ToString()) { var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Type == PLCTypeEnum.ConveyorLine); var modConn = new PLCUtil(modPlc); diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index fbb86c4..c0f3050 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -675,9 +675,11 @@ //濡傛灉鎷夋墭鐩樺幓鎴愬搧宸ヤ綅锛屽厛妫�鏌ユ湁娌℃湁缂烘墭 if (modTask.StartLocate.Substring(0, 1) == "D" && modTask.EndLocate.Substring(0, 1) == "B") { + //鍒ゆ柇鐩爣浣嶇疆鏄媶鎵樻満鐨勪换鍔℃湁娌℃湁锛屾湁灏辫烦杩囨媶鎵樻満鍒版垚鍝佸伐浣嶇殑浠诲姟 if (listTask.Any(s => s.EndLocate.Substring(0, 1) == "D")) continue; } + //濡傛灉鐩殑宸ヤ綅鏄師鏂欎粨锛屽厛妫�鏌ュ師鏂欎粨鍌ㄤ綅鐘舵�� if (modTask.EndLocate == AGVStaionEnum.F1.ToString()) { if (_sysConfigService.GetConfigValue<bool>("cache_Materal").Result) @@ -688,12 +690,17 @@ // if (!_sysConfigService.GetConfigValue<bool>("cache_Materal").Result) // continue; //} + + //濡傛灉璧峰宸ヤ綅鏄媶鎵樻満 if (modTask.StartLocate == AGVStaionEnum.D1.ToString()) { + //鑾峰彇鍙犳媶鎵樻満IP var modPlc = PLCTaskAction.plcs.FirstOrDefault(s => s.Type == PLCTypeEnum.PalletMachine); + //鑾峰彇鍙犳媶鎵樻満宸ヤ綅 var modDevice2 = PLCTaskAction.plcDevices.FirstOrDefault(s => s.PlcId == modPlc.Id && s.Text == "鎷嗘墭鏈�"); + //鎵撳紑杩炴帴 var modConn = new PLCUtil(modPlc); - //鏄惁缂烘墭淇″彿 + //鏄惁鍏佽鍙栨墭淇″彿 var modPos = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDevice2.Id && s.Text == "鍏佽鍙栨墭"); var (result, value) = modConn.GetPlcDBValue(modPos.PosType, modDevice2.DbNumber, modPos.PlcPos); if (result.IsSucceed) @@ -724,6 +731,7 @@ } else { + //涓嶅厑璁稿彇鎵橈紝鍒ゆ柇鏄惁鎷嗘墭鏈哄噯澶囧畬鎴� modPos = PLCTaskAction.plcPositions.FirstOrDefault(s => s.DeviceId == modDevice2.Id && s.Text == "鍑嗗瀹屾垚"); (result, value) = modConn.GetPlcDBValue(modPos.PosType, modDevice2.DbNumber, modPos.PlcPos); if (!value) @@ -738,6 +746,7 @@ continue; } } + //濡傛灉鐩殑宸ヤ綅鏄彁鍗囨満鏀捐揣宸ヤ綅锛屽厛妫�鏌ユ湁娌℃湁鎵樼洏绾跨殑浠诲姟 if (modTask.EndLocate == AGVStaionEnum.A1.ToString()) { if (_db.Queryable<WcsTask>().Where(s => s.Type == PLCTypeEnum.ConveyorLine && s.Status == TaskStatusEnum.Doing).Any()) diff --git a/Admin.NET/WCS.Application/PLC/PLCUtil.cs b/Admin.NET/WCS.Application/PLC/PLCUtil.cs index babe138..9b72835 100644 --- a/Admin.NET/WCS.Application/PLC/PLCUtil.cs +++ b/Admin.NET/WCS.Application/PLC/PLCUtil.cs @@ -1,6 +1,7 @@ 锘縰sing DocumentFormat.OpenXml.Bibliography; using DocumentFormat.OpenXml.Drawing; using Elastic.Clients.Elasticsearch; +using Furion.Logging; using IoTClient; using IoTClient.Clients.Modbus; using IoTClient.Clients.PLC; @@ -332,4 +333,43 @@ } return _client.BatchWrite(addresses); } + + /// <summary> + /// 寰幆鍐欏叆PLC鍊硷紙骞惰鍙栧�煎垽鏂拰鍐欏叆鐨勫�兼槸鍚︿竴鑷达紝鍐欏叆鎺у埗瀛椾笉鑳界敤姝ゆ柟娉曪級 + /// </summary> + public IoTClient.Result SetPlcDBValueRepeat(PLCDataTypeEnum PosType, string DbNumber, string Pos, string Value) + { + IoTClient.Result _result = new IoTClient.Result(); + + int setCount = 0;//鍐欏叆娆℃暟 + while (setCount < 5) + { + string address; + if (DbNumber.StartsWith("DB")) + address = DbNumber + "." + Pos; + else + address = DbNumber + Pos; + _result = this.SetPlcDBValue(PosType, address, Value);//鍐欏叆鍊� + + //绱鍐欏叆娆℃暟 + setCount++; + + if (_result.IsSucceed) + { + //璇诲彇鍐欏叆鐨勫�� + var (res, val) = GetPlcDBValue(PosType, DbNumber, Pos); + if (val.ToString() == Value) + { + //璇诲彇鐨勫�煎拰鍐欏叆鐨勫�间竴鑷达紝鐩存帴璺冲嚭寰幆 + break; + } + } + } + //鍐欏叆鏃ュ織 + Log.Information($"66666666鍐欏叆PLC锛孌bNumber锛歿DbNumber}锛孭os:{Pos},Value:{Value},setCount:{setCount}"); + + return _result; + } + + } -- Gitblit v1.8.0