From f248d4a25fb196149c9add083e74252d7334b37d Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期四, 05 六月 2025 17:31:45 +0800
Subject: [PATCH] 部分细节优化

---
 device/ProductionLineDevice.cs |   75 +++++++++++++++++++++++++++++--------
 1 files changed, 59 insertions(+), 16 deletions(-)

diff --git a/device/ProductionLineDevice.cs b/device/ProductionLineDevice.cs
index d6d6b04..c22a7d7 100644
--- a/device/ProductionLineDevice.cs
+++ b/device/ProductionLineDevice.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 
 using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 
 namespace HH.WCS.Mobox3.DSZSH.device {
     /// <summary>
@@ -21,10 +22,14 @@
             Port = port;
             Id = id;
         }
+        
+        public ProductionLineDevice(Config.ProductionLine line) {
+            Ip = line.PlcIp;
+            Port = line.PlcPort;
+            Id = line.Id;
+        }
 
         public string Id { get; set; }
-
-
 
         /// <summary>
         /// 绯荤粺鐘舵�锛�鏈湴 1鑱斿姩(AGV妯″紡) 2鏁呴殰
@@ -46,29 +51,65 @@
         /// </summary>
         public int AllowAgvPlacePallet { get; set; }
 
-        private int _agvPicking;
-        private int _agvPlacingPallet;
+        //private int _agvPicking;
+        //private int _agvPlacingPallet;
+
+        ///// <summary>
+        ///// AGV 姝e湪鍙栬揣锛氫笅绾緼GV鍐欏叆1锛屽彇璐у畬鎴愬悗鎭㈠0
+        ///// </summary>
+        //public int AgvPicking {
+        //    get => _agvPicking;
+        //    set {
+        //        var isOk = ModbusHelper.WriteSingleRegister(10, value, Ip, Port);
+        //        _agvPicking = isOk ? value : throw new Exception($"淇敼 [AGV 姝e湪鍙栬揣] 涓�'{value}' 澶辫触");
+        //    }
+        //}
 
         /// <summary>
         /// AGV 姝e湪鍙栬揣锛氫笅绾緼GV鍐欏叆1锛屽彇璐у畬鎴愬悗鎭㈠0
         /// </summary>
-        public int AgvPicking {
-            get => _agvPicking;
-            set {
-                var isOk = ModbusHelper.WriteSingleRegister(10, value, Ip, Port);
-                _agvPicking = isOk ? value : throw new Exception($"淇敼 [AGV 姝e湪鍙栬揣] 涓�'{value}' 澶辫触");
+        public int AgvPicking { get; set; }
+
+        /// <summary>
+        /// AGV 姝e湪鍙栬揣锛氫笅绾緼GV鍐欏叆1锛屽彇璐у畬鎴愬悗鎭㈠0
+        /// </summary>
+        /// <param name="value"></param>
+        /// <returns></returns>
+        public bool SetAgvPicking(int value) {
+            if (!ModbusHelper.WriteSingleRegister(10, value, Ip, Port)) {
+                return false;
             }
+
+            AgvPicking = value;
+            return true;
         }
+
+        ///// <summary>
+        ///// AGV 姝e湪鏀炬墭鐩樺灈锛氫笂绾緼GV鍐欏叆1锛屾斁鎵樺畬鎴愬悗鎭㈠0
+        ///// </summary>
+        //public int AgvPlacingPallet {
+        //    get => _agvPlacingPallet;
+        //    set {
+        //        var isOk = ModbusHelper.WriteSingleRegister(11, value, Ip, Port);
+        //        _agvPlacingPallet = isOk ? value : throw new Exception($"淇敼 [AGV 姝e湪鏀炬墭鐩樺灈] 涓�'{value}' 澶辫触");
+        //    }
+        //}
 
         /// <summary>
         /// AGV 姝e湪鏀炬墭鐩樺灈锛氫笂绾緼GV鍐欏叆1锛屾斁鎵樺畬鎴愬悗鎭㈠0
         /// </summary>
-        public int AgvPlacingPallet {
-            get => _agvPlacingPallet;
-            set {
-                var isOk = ModbusHelper.WriteSingleRegister(11, value, Ip, Port);
-                _agvPlacingPallet = isOk ? value : throw new Exception($"淇敼 [AGV 姝e湪鏀炬墭鐩樺灈] 涓�'{value}' 澶辫触");
+        public int AgvPlacingPallet { get; set; }
+
+        /// <summary>
+        /// AGV 姝e湪鏀炬墭鐩樺灈锛氫笂绾緼GV鍐欏叆1锛屾斁鎵樺畬鎴愬悗鎭㈠0
+        /// </summary>
+        public bool SetAgvPlacingPallet(int value) {
+            if (!ModbusHelper.WriteSingleRegister(11, value, Ip, Port)) {
+                return false;
             }
+
+            AgvPlacingPallet = value;
+            return true;
         }
 
         public bool LoadDeviceStateOk() {
@@ -83,8 +124,10 @@
             CallPallet = readArray[2];
             AllowAgvPlacePallet = readArray[3];
             // 鍙啓鍦板潃鏁版嵁
-            _agvPicking = readArray[10];
-            _agvPlacingPallet = readArray[11];
+            //_agvPicking = readArray[10];
+            //_agvPlacingPallet = readArray[11];
+            AgvPicking = readArray[10];
+            AgvPlacingPallet = readArray[11];
 
             var log = JsonConvert.SerializeObject(readArray);
             LogHelper.Info(log);

--
Gitblit v1.9.1