Browse Source

修改DAQ 写入类型判断

Shun 2 years ago
parent
commit
3c3a0513df

+ 1 - 1
src/YSAI.AllenBradley/YSAI.AllenBradley.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.5691</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 2 - 2
src/YSAI.Beckhoff/BeckhoffOperate.cs

@@ -667,7 +667,7 @@ namespace YSAI.Beckhoff
                         //判断是否正常
                         if (handle.Succeeded)
                         {
-                            if (typeof(V).Name.Contains("String"))
+                            if (Param.Value.GetType().Name.Contains("String"))
                             {
                                 PrimitiveTypeMarshaler converter = new PrimitiveTypeMarshaler(StringMarshaler.DefaultEncoding);
                                 byte[] writeBuffer = new byte[System.Text.Encoding.Default.GetByteCount(Param.Value.ToString()) * 2];
@@ -685,7 +685,7 @@ namespace YSAI.Beckhoff
                                     FailMessage.Add($"{Param.Key},写入失败,字节数小于等于零");
                                 }
                             }
-                            else if (typeof(V).Name.Contains("TimeSpan") || typeof(V).Name.Contains("DateTimeOffset") || typeof(V).Name.Contains("DateTime")) //时间||日期||时间日期
+                            else if (Param.Value.GetType().Name.Contains("TimeSpan") || Param.Value.GetType().Name.Contains("DateTimeOffset") || Param.Value.GetType().Name.Contains("DateTime")) //时间||日期||时间日期
                             {
                                 byte[] writeBuffer = new byte[8];
                                 PrimitiveTypeMarshaler.Default.Marshal(Param.Value, writeBuffer.AsSpan());

+ 1 - 1
src/YSAI.Beckhoff/YSAI.Beckhoff.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.5691</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 1 - 1
src/YSAI.Can/YSAI.Can.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.5691</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 1 - 1
src/YSAI.DB/YSAI.DB.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.5691</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 1 - 1
src/YSAI.Mewtocol/YSAI.Mewtocol.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.37135</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 2 - 2
src/YSAI.Mitsubishi/MitsubishiOperate.cs

@@ -1015,7 +1015,7 @@ namespace YSAI.Mitsubishi
                     else
                     {
                         bool RState = false;
-                        if (typeof(V).Name.Equals("String"))
+                        if (Param.Value.GetType().Name.Equals("String"))
                         {
                             var valueBytes = Encoding.ASCII.GetBytes(item.Value.ToString());
                             var bytes = new byte[valueBytes.Length + 1];
@@ -1024,7 +1024,7 @@ namespace YSAI.Mitsubishi
                             Array.Reverse(bytes);
                             RState = W(item.Key, bytes);
                         }
-                        else if (typeof(V).Name.Equals("Boolean"))
+                        else if (Param.Value.GetType().Name.Equals("Boolean"))
                         {
                             byte[] valueByte = new byte[1];
                             if (Convert.ToBoolean(item.Value)) valueByte[0] = 16;

+ 1 - 1
src/YSAI.Mitsubishi/YSAI.Mitsubishi.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.5691</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 1 - 1
src/YSAI.Modbus/YSAI.Modbus.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.5691</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 1 - 1
src/YSAI.Omron/OmronOperate.cs

@@ -812,7 +812,7 @@ namespace YSAI.Omron
                     else
                     {
                         bool RState = false;
-                        if (typeof(V).Name.Equals("Boolean"))
+                        if (Param.Value.GetType().Name.Equals("Boolean"))
                         {
                             RState = W(item.Key, bool.Parse(Param.Value.ToString()) ? new byte[] { 0x01 } : new byte[] { 0x00 }, true);
                         }

+ 1 - 1
src/YSAI.Omron/YSAI.Omron.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.5691</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 1 - 1
src/YSAI.Opc/YSAI.Opc.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.7834</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 1 - 1
src/YSAI.Siemens/SiemensOperate.cs

@@ -318,7 +318,7 @@ namespace YSAI.Siemens
                         }
                         else
                         {
-                            if (typeof(V).Name.Contains("String"))
+                            if (Param.Value.GetType().Name.Contains("String"))
                             {
                                 PlcS7.Write(Param.Key, Param.Value.ToString().GetString());
                             }

+ 1 - 1
src/YSAI.Siemens/YSAI.Siemens.csproj

@@ -3,7 +3,7 @@
     <TargetFrameworks>net6.0;net8.0</TargetFrameworks>
     <ImplicitUsings>enable</ImplicitUsings>
     <Nullable>enable</Nullable>
-    <Version>23.360.36030</Version>
+    <Version>23.361.15983</Version>
     <PackageOutputPath Condition="'$(Configuration)' == 'Release'">../YSAI.Publish/Release</PackageOutputPath>
     <PackageOutputPath Condition="'$(Configuration)' == 'Debug'">../YSAI.Publish/Debug</PackageOutputPath>
     <Authors>Shun</Authors>

+ 320 - 320
src/YSAI.Tests/Program.cs

@@ -190,241 +190,241 @@
 
 
 
-using System.Collections.Concurrent;
-using YSAI.Core.reflection;
-using YSAI.Core.script;
-using YSAI.Log;
-using YSAI.Model.data;
-using YSAI.Model.@enum;
-using YSAI.Mqtt.service;
-using YSAI.Opc.ua.client;
-using YSAI.Unility;
-/// <summary>
-/// 读取Csv,返回行集合
-/// </summary>
-/// <param name="path"></param>
-/// <param name="hasTitle"></param>
-/// <returns></returns>
-List<string> ReadCsv(string path, bool hasTitle)
-{
-    if (!File.Exists(path))
-        return new List<string>();
+//using System.Collections.Concurrent;
+//using YSAI.Core.reflection;
+//using YSAI.Core.script;
+//using YSAI.Log;
+//using YSAI.Model.data;
+//using YSAI.Model.@enum;
+//using YSAI.Mqtt.service;
+//using YSAI.Opc.ua.client;
+//using YSAI.Unility;
+///// <summary>
+///// 读取Csv,返回行集合
+///// </summary>
+///// <param name="path"></param>
+///// <param name="hasTitle"></param>
+///// <returns></returns>
+//List<string> ReadCsv(string path, bool hasTitle)
+//{
+//    if (!File.Exists(path))
+//        return new List<string>();
 
-    var lines = File.ReadAllLines(path).ToList();
-    if (hasTitle)
-    {
-        lines.RemoveAt(0);
-    }
-    return lines;
-}
+//    var lines = File.ReadAllLines(path).ToList();
+//    if (hasTitle)
+//    {
+//        lines.RemoveAt(0);
+//    }
+//    return lines;
+//}
 
-//启动MQTT服务端 1
-MqttServiceOperate mqttServiceOperate1 = MqttServiceOperate.Instance(new MqttServiceData.Basics
-{
-    MaxNumber = 1000,
-    Password = "samples",
-    UserName = "samples",
-    Port = 8111
-});
-//输出日志
-LogHelper.Info(mqttServiceOperate1.On().ToJson().JsonFormatting());
-//启动MQTT服务端 2
-MqttServiceOperate mqttServiceOperate2 = MqttServiceOperate.Instance(new MqttServiceData.Basics
-{
-    MaxNumber = 1000,
-    Password = "samples",
-    UserName = "samples",
-    Port = 8222
-});
-//输出日志
-LogHelper.Info(mqttServiceOperate2.On().ToJson().JsonFormatting());
+////启动MQTT服务端 1
+//MqttServiceOperate mqttServiceOperate1 = MqttServiceOperate.Instance(new MqttServiceData.Basics
+//{
+//    MaxNumber = 1000,
+//    Password = "samples",
+//    UserName = "samples",
+//    Port = 8111
+//});
+////输出日志
+//LogHelper.Info(mqttServiceOperate1.On().ToJson().JsonFormatting());
+////启动MQTT服务端 2
+//MqttServiceOperate mqttServiceOperate2 = MqttServiceOperate.Instance(new MqttServiceData.Basics
+//{
+//    MaxNumber = 1000,
+//    Password = "samples",
+//    UserName = "samples",
+//    Port = 8222
+//});
+////输出日志
+//LogHelper.Info(mqttServiceOperate2.On().ToJson().JsonFormatting());
 
 
 
 
-Address address = new Address();
-address.SN = Guid.NewGuid().ToString();
-address.CreationTime = DateTime.Now;
-address.AddressArray = new List<AddressDetails>();
-List<string> strings = ReadCsv("files\\6022.csv", true);
-for (int i = 0; i < strings.Count; i++)
-{
-    string[] str = strings[i].Split(",");
-    string addressD = str[0].Replace("\"", "");
-    DataType dataType = DataType.String;
-    if (str.Contains("Float"))
-    {
-        dataType = DataType.Float;
-    }
-    else if (str.Contains("Boolean"))
-    {
-        dataType = DataType.Bool;
-    }
-    else if (str.Contains("Short"))
-    {
-        dataType = DataType.Short;
-    }
+//Address address = new Address();
+//address.SN = Guid.NewGuid().ToString();
+//address.CreationTime = DateTime.Now;
+//address.AddressArray = new List<AddressDetails>();
+//List<string> strings = ReadCsv("files\\6022.csv", true);
+//for (int i = 0; i < strings.Count; i++)
+//{
+//    string[] str = strings[i].Split(",");
+//    string addressD = str[0].Replace("\"", "");
+//    DataType dataType = DataType.String;
+//    if (str.Contains("Float"))
+//    {
+//        dataType = DataType.Float;
+//    }
+//    else if (str.Contains("Boolean"))
+//    {
+//        dataType = DataType.Bool;
+//    }
+//    else if (str.Contains("Short"))
+//    {
+//        dataType = DataType.Short;
+//    }
 
-    if (i % 2 == 0)
-    {
-        //走脚本解析
-        address.AddressArray.Add(new AddressDetails()
-        {
-            AddressName = $"ns=2;s=6022.6022.{addressD}",
-            SN = Guid.NewGuid().ToString(),
-            AddressDataType = dataType,
-            AddressRelayParam = new AddressRelay
-            {
-                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
-                Topic = $"TEST/{addressD}"
-            },
-            AddressParseParam = new AddressParse
-            {
-                ScriptParam = new ScriptData.Basics()
-                {
-                    ScriptCode = @"function Convert(addressname,value) { return '【这是调用脚本解析】传入的地址是:'+ addressname + '----传入的参数是:' + value; }",
-                    ScriptFunction = "Convert",
-                    ScriptType = ScriptData.ScriptType.JavaScript
-                }
-            }
-        });
-    }
-    else
-    {
-        //走反射解析流程
-        address.AddressArray.Add(new AddressDetails()
-        {
-            AddressName = $"ns=2;s=6022.6022.{addressD}",
-            SN = Guid.NewGuid().ToString(),
-            AddressDataType = dataType,
-            AddressRelayParam = new AddressRelay
-            {
-                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
-                Topic = $"TEST/{addressD}"
-            },
-            AddressParseParam = new AddressParse
-            {
-                ReflectionParam = new object[]
-                {
-                    new ReflectionData.Basics
-                    {
-                        DllDatas = new List<ReflectionData.DllData>
-                        {
-                            new ReflectionData.DllData
-                            {
-                                DllPath="YSAI.DAQ.Samples.Reflection.dll",
-                                IsAbsolutePath=false,
-                                NamespaceDatas=new List<ReflectionData.NamespaceData>
-                                {
-                                    new ReflectionData.NamespaceData
-                                    {
-                                        Namespace="YSAI.DAQ.Samples.Reflection",
-                                        ClassDatas=new List<ReflectionData.ClassData>
-                                        {
-                                            new ReflectionData.ClassData
-                                            {
-                                                ClassName="Class1",
-                                                SN="YSAI.DAQ.Samples.Reflection.Class1[Instance]",
-                                                MethodDatas=new List<ReflectionData.MethodData>
-                                                {
-                                                    new ReflectionData.MethodData
-                                                    {
-                                                        MethodName="R1",
-                                                        SN="[R1]"
-                                                    },
-                                                     new ReflectionData.MethodData
-                                                    {
-                                                        MethodName="R2",
-                                                        SN="[R2]"
-                                                    },
-                                                      new ReflectionData.MethodData
-                                                    {
-                                                        MethodName="R3",
-                                                        SN="[R3]"
-                                                    }
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-
-                            }
-                        }
-                    },
-                    "YSAI.DAQ.Samples.Reflection.Class1[Instance][R2]"
-                }
-            }
-        });
-    }
-}
+//    if (i % 2 == 0)
+//    {
+//        //走脚本解析
+//        address.AddressArray.Add(new AddressDetails()
+//        {
+//            AddressName = $"ns=2;s=6022.6022.{addressD}",
+//            SN = Guid.NewGuid().ToString(),
+//            AddressDataType = dataType,
+//            AddressRelayParam = new AddressRelay
+//            {
+//                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+//                Topic = $"TEST/{addressD}"
+//            },
+//            AddressParseParam = new AddressParse
+//            {
+//                ScriptParam = new ScriptData.Basics()
+//                {
+//                    ScriptCode = @"function Convert(addressname,value) { return '【这是调用脚本解析】传入的地址是:'+ addressname + '----传入的参数是:' + value; }",
+//                    ScriptFunction = "Convert",
+//                    ScriptType = ScriptData.ScriptType.JavaScript
+//                }
+//            }
+//        });
+//    }
+//    else
+//    {
+//        //走反射解析流程
+//        address.AddressArray.Add(new AddressDetails()
+//        {
+//            AddressName = $"ns=2;s=6022.6022.{addressD}",
+//            SN = Guid.NewGuid().ToString(),
+//            AddressDataType = dataType,
+//            AddressRelayParam = new AddressRelay
+//            {
+//                ISns = new List<string> { "YSAI.Mqtt.client.MqttClientOperate.mqtt1", "YSAI.Mqtt.client.MqttClientOperate.mqtt2" },
+//                Topic = $"TEST/{addressD}"
+//            },
+//            AddressParseParam = new AddressParse
+//            {
+//                ReflectionParam = new object[]
+//                {
+//                    new ReflectionData.Basics
+//                    {
+//                        DllDatas = new List<ReflectionData.DllData>
+//                        {
+//                            new ReflectionData.DllData
+//                            {
+//                                DllPath="YSAI.DAQ.Samples.Reflection.dll",
+//                                IsAbsolutePath=false,
+//                                NamespaceDatas=new List<ReflectionData.NamespaceData>
+//                                {
+//                                    new ReflectionData.NamespaceData
+//                                    {
+//                                        Namespace="YSAI.DAQ.Samples.Reflection",
+//                                        ClassDatas=new List<ReflectionData.ClassData>
+//                                        {
+//                                            new ReflectionData.ClassData
+//                                            {
+//                                                ClassName="Class1",
+//                                                SN="YSAI.DAQ.Samples.Reflection.Class1[Instance]",
+//                                                MethodDatas=new List<ReflectionData.MethodData>
+//                                                {
+//                                                    new ReflectionData.MethodData
+//                                                    {
+//                                                        MethodName="R1",
+//                                                        SN="[R1]"
+//                                                    },
+//                                                     new ReflectionData.MethodData
+//                                                    {
+//                                                        MethodName="R2",
+//                                                        SN="[R2]"
+//                                                    },
+//                                                      new ReflectionData.MethodData
+//                                                    {
+//                                                        MethodName="R3",
+//                                                        SN="[R3]"
+//                                                    }
+//                                                }
+//                                            }
+//                                        }
+//                                    }
+//                                }
+
+//                            }
+//                        }
+//                    },
+//                    "YSAI.DAQ.Samples.Reflection.Class1[Instance][R2]"
+//                }
+//            }
+//        });
+//    }
+//}
 
-File.WriteAllText("config\\config.json", address.ToJson().JsonFormatting());
+//File.WriteAllText("config\\config.json", address.ToJson().JsonFormatting());
 
-OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
-{
-    ServerUrl = "opc.tcp://192.168.2.220:49320",
-    CustomName = "YSAI 性能测试",
-    SubscribeSingleGroupMaxCount = 1000,
-});
-Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
-opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
+//OpcUaClientOperate opcUaClientOperate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics
+//{
+//    ServerUrl = "opc.tcp://192.168.2.220:49320",
+//    CustomName = "YSAI 性能测试",
+//    SubscribeSingleGroupMaxCount = 1000,
+//});
+//Console.WriteLine(opcUaClientOperate.On().ToJson().JsonFormatting());
+//opcUaClientOperate.OnEvent += OpcUaClientOperate_OnEvent;
 
-while (true)
-{
-    Console.ReadLine();
+//while (true)
+//{
+//    Console.ReadLine();
 
-    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
-    Console.WriteLine(operateResult.ToJson().JsonFormatting());
-    Console.ReadLine();
+//    OperateResult operateResult = opcUaClientOperate.Subscribe(address);
+//    Console.WriteLine(operateResult.ToJson().JsonFormatting());
+//    Console.ReadLine();
 
-    //OperateResult operateResult = opcUaClientOperate.Subscribe(address);
-    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
-    //Console.ReadLine();
-
-    //operateResult = opcUaClientOperate.UnSubscribe(address);
-    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
-    //Console.ReadLine();
-    //address = new Address();
-    //address.SN = Guid.NewGuid().ToString();
-    //address.CreationTime = DateTime.Now;
-    //address.AddressArray = new List<AddressDetails>();
-    //address.AddressArray.Add(new AddressDetails()
-    //{
-    //    AddressName = $"6666",
-    //    SN = Guid.NewGuid().ToString()
-    //});
-    //operateResult = opcUaClientOperate.Subscribe(address);
-    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
+//    //OperateResult operateResult = opcUaClientOperate.Subscribe(address);
+//    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
+//    //Console.ReadLine();
+
+//    //operateResult = opcUaClientOperate.UnSubscribe(address);
+//    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
+//    //Console.ReadLine();
+//    //address = new Address();
+//    //address.SN = Guid.NewGuid().ToString();
+//    //address.CreationTime = DateTime.Now;
+//    //address.AddressArray = new List<AddressDetails>();
+//    //address.AddressArray.Add(new AddressDetails()
+//    //{
+//    //    AddressName = $"6666",
+//    //    SN = Guid.NewGuid().ToString()
+//    //});
+//    //operateResult = opcUaClientOperate.Subscribe(address);
+//    //Console.WriteLine(operateResult.ToJson().JsonFormatting());
 
-}
+//}
 
-void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
-{
-    switch (e.RType)
-    {
-        case ResultType.KeyValue:
-
-            ConcurrentDictionary<string, AddressValue> pairs = e.GetRData<ConcurrentDictionary<string, AddressValue>>();
-            foreach (var item in pairs)
-            {
-                if (item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN") || item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2113_AUTO"))
-                {
-                    String str = string.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
-                    LogHelper.Warning(item.Value.Quality.ToString());
-                    LogHelper.Warning(item.Value.OriginalValue.GetType().Name);
-                    LogHelper.Verbose(str);
-                }
-
-                //String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
-                //LogHelper.Verbose(str);
-            }
-            break;
-
-        default:
-            //Console.WriteLine(e.Message);
-            break;
-    }
-}
+//void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
+//{
+//    switch (e.RType)
+//    {
+//        case ResultType.KeyValue:
+
+//            ConcurrentDictionary<string, AddressValue> pairs = e.GetRData<ConcurrentDictionary<string, AddressValue>>();
+//            foreach (var item in pairs)
+//            {
+//                if (item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2112_STATE_RUN") || item.Value.AddressName.Equals("ns=2;s=6022.6022.LAP5_DP2113_AUTO"))
+//                {
+//                    String str = string.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
+//                    LogHelper.Warning(item.Value.Quality.ToString());
+//                    LogHelper.Warning(item.Value.OriginalValue.GetType().Name);
+//                    LogHelper.Verbose(str);
+//                }
+
+//                //String str = String.Format("{0,-100}{1,-100}", item.Key, item.Value.Value);
+//                //LogHelper.Verbose(str);
+//            }
+//            break;
+
+//        default:
+//            //Console.WriteLine(e.Message);
+//            break;
+//    }
+//}
 
 
 
@@ -662,112 +662,112 @@ void OpcUaClientOperate_OnEvent(object? sender, EventResult e)
 
 
 
-//using S7.Net;
-//using System.Collections.Concurrent;
-//using YSAI.Model.data;
-//using YSAI.Model.@enum;
-//using YSAI.Siemens;
-//using YSAI.Unility;
-//using DataType = YSAI.Model.@enum.DataType;
+using S7.Net;
+using System.Collections.Concurrent;
+using YSAI.Model.data;
+using YSAI.Model.@enum;
+using YSAI.Siemens;
+using YSAI.Unility;
+using DataType = YSAI.Model.@enum.DataType;
 
-//SiemensOperate s7ClientOperate = SiemensOperate.Instance(new SiemensData.Basics()
+SiemensOperate s7ClientOperate = SiemensOperate.Instance(new SiemensData.Basics()
+{
+    Ip = "192.168.2.20",
+    Port = 102,
+    Rack = 0,
+    Slot = 1,
+    CType = CpuType.S71200,
+    ChangeOut = true,
+    SN = Guid.NewGuid().ToString()
+}); ;
+
+//打开
+OperateResult operateResult = s7ClientOperate.On();
+Console.WriteLine(operateResult.Message);
+
+//点位地址
+Address address = new Address();
+address.SN = Guid.NewGuid().ToString();
+address.CreationTime = DateTime.Now.ToLocalTime();
+address.AddressArray = new List<AddressDetails>();
+address.AddressArray.Add(new AddressDetails()
+{
+    AddressName = "DB71.DBD4",    //地址格式  DB*.DBD*
+    AddressDataType = DataType.String,
+    AddressType = AddressType.Reality
+});
+//address.AddressArray.Add(new AddressDetails()
 //{
-//    Ip = "192.168.2.20",
-//    Port = 102,
-//    Rack = 0,
-//    Slot = 1,
-//    CType = CpuType.S71200,
-//    ChangeOut = true,
-//    SN = Guid.NewGuid().ToString()
-//}); ;
-
-////打开
-//OperateResult operateResult = s7ClientOperate.On();
-//Console.WriteLine(operateResult.Message);
-
-////点位地址
-//Address address = new Address();
-//address.SN = Guid.NewGuid().ToString();
-//address.CreationTime = DateTime.Now.ToLocalTime();
-//address.AddressArray = new List<AddressDetails>();
+//    AddressName = "DB71.DBD420",    //地址格式  DB*.DBD*
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
 //address.AddressArray.Add(new AddressDetails()
 //{
-//    AddressName = "DB71.DBD4",    //地址格式  DB*.DBD*
-//    AddressDataType = DataType.String,
+//    AddressName = "DB71.DBD424",    //地址格式  DB*.DBD*
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "DB71.DBD428",    //地址格式  DB*.DBD*
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "DB72.DBD114",    //地址格式  DB*.DBD*
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "DB72.DBD110",    //地址格式  DB*.DBD*
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "DB71.DBD256",    //地址格式  DB*.DBD*
+//    AddressDataType = DataType.Float,
+//    AddressType = AddressType.Reality
+//});
+//address.AddressArray.Add(new AddressDetails()
+//{
+//    AddressName = "DB71.DBD388",    //地址格式  DB*.DBD*
+//    AddressDataType = DataType.Float,
 //    AddressType = AddressType.Reality
 //});
-////address.AddressArray.Add(new AddressDetails()
-////{
-////    AddressName = "DB71.DBD420",    //地址格式  DB*.DBD*
-////    AddressDataType = DataType.Float,
-////    AddressType = AddressType.Reality
-////});
-////address.AddressArray.Add(new AddressDetails()
-////{
-////    AddressName = "DB71.DBD424",    //地址格式  DB*.DBD*
-////    AddressDataType = DataType.Float,
-////    AddressType = AddressType.Reality
-////});
-////address.AddressArray.Add(new AddressDetails()
-////{
-////    AddressName = "DB71.DBD428",    //地址格式  DB*.DBD*
-////    AddressDataType = DataType.Float,
-////    AddressType = AddressType.Reality
-////});
-////address.AddressArray.Add(new AddressDetails()
-////{
-////    AddressName = "DB72.DBD114",    //地址格式  DB*.DBD*
-////    AddressDataType = DataType.Float,
-////    AddressType = AddressType.Reality
-////});
-////address.AddressArray.Add(new AddressDetails()
-////{
-////    AddressName = "DB72.DBD110",    //地址格式  DB*.DBD*
-////    AddressDataType = DataType.Float,
-////    AddressType = AddressType.Reality
-////});
-////address.AddressArray.Add(new AddressDetails()
-////{
-////    AddressName = "DB71.DBD256",    //地址格式  DB*.DBD*
-////    AddressDataType = DataType.Float,
-////    AddressType = AddressType.Reality
-////});
-////address.AddressArray.Add(new AddressDetails()
-////{
-////    AddressName = "DB71.DBD388",    //地址格式  DB*.DBD*
-////    AddressDataType = DataType.Float,
-////    AddressType = AddressType.Reality
-////});
-
-////Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray')
-
-
-////写入
-//operateResult = s7ClientOperate.Write(new ConcurrentDictionary<string, string> { ["DB71.DBD4"] = "abcdefg#6666" });
-//Console.WriteLine(operateResult.ToJson().JsonFormatting());
-////读取
-//operateResult = s7ClientOperate.ReadAsync(address).Result;
-//Console.WriteLine(operateResult.Message);
-//if (operateResult.State)
-//{
-//    foreach (var item in operateResult.GetRData<ConcurrentDictionary<string, AddressValue>>())
-//    {
-//        Console.WriteLine(item.Key);
-//        Console.WriteLine(item.Value.Value);
-//    }
-//}
 
-////订阅
-//s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
-//s7ClientOperate.Subscribe(address);
+//Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray')
 
-//while (true)
-//{
-//    Console.ReadLine();
-//}
 
-//void S7ClientOperate_OnEvent(object? sender, EventResult e)
-//{
-//    Console.WriteLine(e.ToJson());
-//}
+//写入
+operateResult = s7ClientOperate.Write(new ConcurrentDictionary<string, string> { ["DB71.DBD4"] = "abcdefg#6666" });
+Console.WriteLine(operateResult.ToJson().JsonFormatting());
+//读取
+operateResult = s7ClientOperate.Read(address);
+Console.WriteLine(operateResult.Message);
+if (operateResult.State)
+{
+    foreach (var item in operateResult.GetRData<ConcurrentDictionary<string, AddressValue>>())
+    {
+        Console.WriteLine(item.Key);
+        Console.WriteLine(item.Value.Value);
+    }
+}
+
+//订阅
+s7ClientOperate.OnEvent += S7ClientOperate_OnEvent;
+s7ClientOperate.Subscribe(address);
+
+while (true)
+{
+    Console.ReadLine();
+}
+
+void S7ClientOperate_OnEvent(object? sender, EventResult e)
+{
+    Console.WriteLine(e.ToJson());
+}
 

+ 1 - 2
src/YSAI.Tool.Wpf/Main.xaml.cs

@@ -2,7 +2,6 @@
 using Wpf.Ui.Controls;
 using YSAI.Core.Wpf;
 using YSAI.Langs;
-using YSAI.Tool.Wpf.views;
 using YSAI.Unility.Windows;
 namespace YSAI.Tool.Wpf
 {
@@ -33,7 +32,7 @@ namespace YSAI.Tool.Wpf
                     if (navigationViews.Count > 0)
                     {
                         //第一次打开显示的界面
-                        navigationViews[0].Navigate(typeof(MqttService));
+                        navigationViews[0].Navigate(typeof(YSAI.Tool.Wpf.views.Siemens));
                     }
                 });
             });

+ 1 - 0
src/YSAI.Tool.Wpf/YSAI.Tool.Wpf.csproj

@@ -36,6 +36,7 @@
 	</ItemGroup>
 	<ItemGroup>
 		<ProjectReference Include="..\YSAI.Core.Wpf\YSAI.Core.Wpf.csproj" />
+		<ProjectReference Include="..\YSAI.Siemens\YSAI.Siemens.csproj" />
 	</ItemGroup>
 
 	<ItemGroup>

+ 1 - 1
src/YSAI.Tool.Wpf/controllers/SiemensController.cs

@@ -21,7 +21,7 @@ namespace YSAI.Tool.Wpf.controllers
             //信息格式;  0 ASCII ; 1 HEX
             InfoFormat = 0;
             //设置采集对象
-            Daq = new SiemensOperate();
+            Daq = SiemensOperate.Instance(BasicsData);
         }
     }
 }