|
|
@@ -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());
|
|
|
+}
|
|
|
|