lss
2025-06-17 d0b3abf74ac5f94f5373922172ed79fbfc24e6be
HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/device/S7Helper.cs
@@ -23,7 +23,7 @@
    {
        private static bool debug = true;
        private static S7.Net.Plc plc = null;
        static S7Helper()
        {
            Init();
@@ -79,7 +79,7 @@
            catch (Exception ex)
            {
                // Console.WriteLine($"plc{plc.IP}连接失败,err={ex.Message}");
                LogHelper.Error($"Link Error plc{plc.IP}连接失败,err={ex.Message}",ex);
                LogHelper.Error($"Link Error plc{plc.IP}连接失败,err={ex.Message}", ex);
                //Init();
            }
@@ -87,7 +87,7 @@
        //https://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/SmartSMS/060.html
        //https://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/07-Program/02-basic/01-Data_Type/09-String.html
        private static object _lockdpj=new object();
        private static object _lockdpj = new object();
        /// <summary>
        /// 合肥佳通读取叠盘机
@@ -95,9 +95,9 @@
        /// <param name="startByte">偏移量地址 vb2001</param>
        ///  /// <param name="varType">值类型</param>
        /// <returns></returns>
        public static int ReadDpj(string ip,int startByte, S7.Net.VarType varType)
        public static int ReadDpj(string ip, int startByte, S7.Net.VarType varType)
        {
           // string ip = "10.68.9.15";
            // string ip = "10.68.9.15";
            short port = 102;
            lock (_lockdpj)
            {
@@ -131,7 +131,7 @@
                    throw;
                }
            }
        }
@@ -141,10 +141,10 @@
        /// <param name="startByte">偏移量地址</param>
        /// <param name="value">写入值 byte类型只能0 1</param>
        /// <returns></returns>
        public static bool WriteDpj(string ip,int startByte, byte value)
        public static bool WriteDpj(string ip, int startByte, byte value)
        {
            bool result = false;
           // string ip = "10.68.9.15";
            // string ip = "10.68.9.15";
            short port = 102;
            lock (_lockdpj)
            {
@@ -154,7 +154,7 @@
                    LogHelper.Info($"链接叠盘机,ip:{ip},端口:{port}");
                    S7Helper.Link(plc);
                   // plc.Write($"VB{startByte}", value);
                    // plc.Write($"VB{startByte}", value);
                    Thread.Sleep(300);
                    plc.Write(
                       dataType: DataType.DataBlock,
@@ -172,18 +172,21 @@
                    }
                    else
                    {
                       // Task.Run(() => WriteDpj(ip, startByte, value));
                        LogHelper.Info($"叠盘机写入失败,回读值:{fdvalue}");
                    }
                        return result;
                    return result;
                }
                catch (Exception ex)
                {
                    LogHelper.Info($"WriteDpj Error{ex}");
                    throw;
                   // Task.Run(() => WriteDpj(ip, startByte, value));
                    LogHelper.Info($"叠盘机:{ip}链接失败");
                    LogHelper.Error($"WriteDpj ip:{ip},startByte:{startByte} Error:{ex}", ex);
                   return false;
                }
            }
            // S7-200 Smart的V区也映射为DB1