From 10e5d172c65110616d70843f1675b569b2b82b20 Mon Sep 17 00:00:00 2001 From: fengjiayi <12821976+ning_xi@user.noreply.gitee.com> Date: Sat, 28 Sep 2024 23:55:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Library/Entity/ExplicitData.cs | 5 +- Library/Entity/MethodDetails.cs | 8 +- Library/NodeAttribute.cs | 74 +- Library/Utils/EnumHelper.cs | 18 +- Net461DllTest/Data/MyData.cs | 15 - Net461DllTest/Device/PlcDevice.cs | 48 - Net461DllTest/Device/PrakingDevice.cs | 18 + Net461DllTest/Device/SiemensPlcDevice.cs | 70 + Net461DllTest/Enums/FromValue.cs | 19 + Net461DllTest/Enums/PlcState.cs | 28 + Net461DllTest/Flow/LogicControl.cs | 131 - .../LogicControl/ParkingLogicControl.cs | 91 + Net461DllTest/LogicControl/PlcLogicControl.cs | 191 + .../ViewLogicControl.cs | 28 +- Net461DllTest/Net461DllTest.csproj | 32 +- Net461DllTest/Signal/OrderSignal.cs | 19 +- Net461DllTest/Signal/PLCVarSignal.cs | 64 + Net461DllTest/Signal/Signal.cs | 13 - Net461DllTest/Utils/ToValue.cs | 231 + .../View/FromWorkBenchView.Designer.cs | 36 +- Net461DllTest/View/FromWorkBenchView.cs | 10 +- Net461DllTest/View/TeseFormView.cs | 33 - ...w.Designer.cs => TestFormView.Designer.cs} | 12 +- Net461DllTest/View/TestFormView.cs | 19 + .../{TeseFormView.resx => TestFormView.resx} | 0 .../ViewModel/FromWorkBenchViewModel.cs | 15 +- Net461DllTest/Web/ApiController.cs | 2 +- Net461DllTest/app.config | 11 + Net461DllTest/packages.config | 2 + NodeFlow/Base/NodeModelBaseFunc.cs | 21 +- NodeFlow/FlowEnvironment.cs | 51 +- NodeFlow/FlowStarter.cs | 89 +- NodeFlow/Model/SingleFlipflopNode.cs | 26 +- NodeFlow/Tool/MethodDetailsHelper.cs | 102 +- WorkBench/MainWindow.xaml.cs | 2 +- packages/IoTClient.1.0.40/.signature.p7s | Bin 0 -> 11514 bytes .../IoTClient.1.0.40/IoTClient.1.0.40.nupkg | Bin 0 -> 66531 bytes .../lib/netstandard2.0/IoTClient.xml | 4113 +++++++++++++++++ packages/System.IO.Ports.4.6.0/.signature.p7s | Bin 0 -> 18703 bytes packages/System.IO.Ports.4.6.0/LICENSE.TXT | 23 + .../System.IO.Ports.4.6.0.nupkg | Bin 0 -> 227533 bytes .../THIRD-PARTY-NOTICES.TXT | 375 ++ .../lib/net461/System.IO.Ports.xml | 541 +++ .../lib/netstandard2.0/System.IO.Ports.xml | 541 +++ .../lib/uap10.0.16299/_._ | 0 .../ref/net461/System.IO.Ports.xml | 541 +++ .../ref/netstandard2.0/System.IO.Ports.xml | 541 +++ .../ref/uap10.0.16299/_._ | 0 .../lib/netstandard2.0/System.IO.Ports.xml | 541 +++ .../lib/netstandard2.0/System.IO.Ports.xml | 541 +++ .../win/lib/net461/System.IO.Ports.xml | 541 +++ .../lib/netstandard2.0/System.IO.Ports.xml | 541 +++ .../runtimes/win/lib/uap10.0.16299/_._ | 0 .../useSharedDesignerContext.txt | 0 packages/System.IO.Ports.4.6.0/version.txt | 1 + 56 files changed, 9920 insertions(+), 455 deletions(-) delete mode 100644 Net461DllTest/Data/MyData.cs delete mode 100644 Net461DllTest/Device/PlcDevice.cs create mode 100644 Net461DllTest/Device/PrakingDevice.cs create mode 100644 Net461DllTest/Device/SiemensPlcDevice.cs create mode 100644 Net461DllTest/Enums/FromValue.cs create mode 100644 Net461DllTest/Enums/PlcState.cs delete mode 100644 Net461DllTest/Flow/LogicControl.cs create mode 100644 Net461DllTest/LogicControl/ParkingLogicControl.cs create mode 100644 Net461DllTest/LogicControl/PlcLogicControl.cs rename Net461DllTest/{Flow => LogicControl}/ViewLogicControl.cs (71%) create mode 100644 Net461DllTest/Signal/PLCVarSignal.cs delete mode 100644 Net461DllTest/Signal/Signal.cs create mode 100644 Net461DllTest/Utils/ToValue.cs delete mode 100644 Net461DllTest/View/TeseFormView.cs rename Net461DllTest/View/{TeseFormView.Designer.cs => TestFormView.Designer.cs} (90%) create mode 100644 Net461DllTest/View/TestFormView.cs rename Net461DllTest/View/{TeseFormView.resx => TestFormView.resx} (100%) create mode 100644 Net461DllTest/app.config create mode 100644 packages/IoTClient.1.0.40/.signature.p7s create mode 100644 packages/IoTClient.1.0.40/IoTClient.1.0.40.nupkg create mode 100644 packages/IoTClient.1.0.40/lib/netstandard2.0/IoTClient.xml create mode 100644 packages/System.IO.Ports.4.6.0/.signature.p7s create mode 100644 packages/System.IO.Ports.4.6.0/LICENSE.TXT create mode 100644 packages/System.IO.Ports.4.6.0/System.IO.Ports.4.6.0.nupkg create mode 100644 packages/System.IO.Ports.4.6.0/THIRD-PARTY-NOTICES.TXT create mode 100644 packages/System.IO.Ports.4.6.0/lib/net461/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/lib/netstandard2.0/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/lib/uap10.0.16299/_._ create mode 100644 packages/System.IO.Ports.4.6.0/ref/net461/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/ref/netstandard2.0/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/ref/uap10.0.16299/_._ create mode 100644 packages/System.IO.Ports.4.6.0/runtimes/linux/lib/netstandard2.0/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/runtimes/osx/lib/netstandard2.0/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/runtimes/win/lib/net461/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/runtimes/win/lib/netstandard2.0/System.IO.Ports.xml create mode 100644 packages/System.IO.Ports.4.6.0/runtimes/win/lib/uap10.0.16299/_._ create mode 100644 packages/System.IO.Ports.4.6.0/useSharedDesignerContext.txt create mode 100644 packages/System.IO.Ports.4.6.0/version.txt diff --git a/.gitignore b/.gitignore index 2e24693..19c86b4 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ obj/ # 排除某些项目 +Net461DllTest/Enums/PlcVarEnum.cs \ No newline at end of file diff --git a/Library/Entity/ExplicitData.cs b/Library/Entity/ExplicitData.cs index ff97094..3b3a69c 100644 --- a/Library/Entity/ExplicitData.cs +++ b/Library/Entity/ExplicitData.cs @@ -20,9 +20,9 @@ namespace Serein.Library.Entity /// public bool IsExplicitData { get; set; } /// - /// 是否为值转换器 + /// 转换器 IEnumConvertor<,> /// - public bool IsEnumConvertor { get; set; } + public Func Convertor { get; set; } ///// ///// 显式类型 ///// @@ -57,6 +57,7 @@ namespace Serein.Library.Entity IsExplicitData = IsExplicitData, ExplicitType = ExplicitType, ExplicitTypeName = ExplicitTypeName, + Convertor = Convertor, DataType = DataType, ParameterName = ParameterName, DataValue = string.IsNullOrEmpty(DataValue) ? string.Empty : DataValue, diff --git a/Library/Entity/MethodDetails.cs b/Library/Entity/MethodDetails.cs index 55b9155..1cd15c0 100644 --- a/Library/Entity/MethodDetails.cs +++ b/Library/Entity/MethodDetails.cs @@ -7,11 +7,13 @@ namespace Serein.Library.Entity { - + /// + /// 每个节点有独自的MethodDetails实例 + /// public class MethodDetails { /// - /// 拷贝 + /// 从DLL拖动出来时拷贝新的实例 /// /// public MethodDetails Clone() @@ -37,7 +39,7 @@ namespace Serein.Library.Entity /// /// 是否保护参数 /// - public bool IsProtectionParameter { get; set; } = false; + public bool IsProtectionParameter { get; set; } = true; /// /// 作用实例的类型 diff --git a/Library/NodeAttribute.cs b/Library/NodeAttribute.cs index 7479c56..bd733cc 100644 --- a/Library/NodeAttribute.cs +++ b/Library/NodeAttribute.cs @@ -9,6 +9,14 @@ namespace Serein.Library.Attributes [AttributeUsage(AttributeTargets.Property)] public sealed class AutoInjectionAttribute : Attribute { + } + + /// + /// 表示该类自动注册 + /// + [AttributeUsage(AttributeTargets.Class)] + public sealed class AutoRegisterAttribute : Attribute + { } /// @@ -95,54 +103,30 @@ namespace Serein.Library.Attributes } } - - - [AttributeUsage(AttributeTargets.Field)] - public class PLCValueAttribute : Attribute + /// + /// 绑定转换器 + /// + [AttributeUsage(AttributeTargets.Parameter)] + public class BindConvertorAttribute : Attribute { - public enum VarType + public Type EnumType { get; } + public Type ConvertorType { get; } + + public BindConvertorAttribute(Type @enum, Type convertor) { - /// - /// 可写入值 - /// - Write, - /// - /// 定时读取的可写入值(用来写入前判断),应该几乎不会有这种类型? - /// - TimingReadOrWrite, - /// - /// 只读取值(使用时刷新) - /// - ReadOnly, - /// - /// 定时刷新的只读取值(定时刷新用来触发触发器) - /// - TimingReadOnly, - } - - public bool IsProtected { get; } - public Type DataType { get; } - public string Var { get; } - //public int Length { get; } - //public double Offset { get; } - public VarType Type { get; } - //public int RefreshInterval { get; } - - - - public PLCValueAttribute(Type type, - string @var, - VarType varType - //int refreshInterval = 100 - ) - { - DataType = type; - Var = @var; - //Offset = offset; - //RefreshInterval = refreshInterval; - Type = varType; - //Length = length; + this.EnumType = @enum; + this.ConvertorType = convertor; } } + /// + /// 枚举转换器接口 + /// + /// + /// + public interface IEnumConvertor + { + TValue Convertor(TEnum e); + } + } diff --git a/Library/Utils/EnumHelper.cs b/Library/Utils/EnumHelper.cs index 0ef6161..3056f9c 100644 --- a/Library/Utils/EnumHelper.cs +++ b/Library/Utils/EnumHelper.cs @@ -24,16 +24,16 @@ namespace Serein.Library.Utils return attribute != null ? valueSelector(attribute) : default; } - //public static TResult GetBoundValue(TEnum enumValue, - // Func valueSelector) - // where TEnum : Enum - // where TAttribute : Attribute - //{ - // var fieldInfo = typeof(TEnum).GetField(enumValue.ToString()); - // var attribute = fieldInfo.GetCustomAttribute(); + public static TResult GetBoundValue(TEnum enumValue, + Func valueSelector) + where TEnum : Enum + where TAttribute : Attribute + { + var fieldInfo = typeof(TEnum).GetField(enumValue.ToString()); + var attribute = fieldInfo.GetCustomAttribute(); - // return attribute != null ? valueSelector(attribute) : default; - //} + return attribute != null ? valueSelector(attribute) : default; + } diff --git a/Net461DllTest/Data/MyData.cs b/Net461DllTest/Data/MyData.cs deleted file mode 100644 index 5ad9543..0000000 --- a/Net461DllTest/Data/MyData.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Net461DllTest.Data -{ - public class MyData - { - public int[] Values { get; set; } = new int[] { 1, 1, 4, 5, 1, 4, 1, 9, 9, 9 }; - public int Count { get; set; } - public string Tips { get; set; } - } -} diff --git a/Net461DllTest/Device/PlcDevice.cs b/Net461DllTest/Device/PlcDevice.cs deleted file mode 100644 index a7eb7ad..0000000 --- a/Net461DllTest/Device/PlcDevice.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Net461DllTest.Data; -using Net461DllTest.Signal; -using Serein.Library.Attributes; -using Serein.Library.NodeFlow.Tool; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Net461DllTest.Device -{ - - - public class PlcDevice : ChannelFlowTrigger - { - [AutoInjection] - public MyData MyData { get; set; } - - public PlcDevice() - { - PlcId = 114514 + 10000000 * new Random().Next(1, 9); - } - public int PlcId { get; set; } - - public void InitDevice(string ip, int port, string tips) - { - Write($"模拟设备初始化 :{Environment.NewLine}" + - $" ip :{ip}{Environment.NewLine}" + - $"port:{port}{Environment.NewLine}" + - $"tips:{tips}{Environment.NewLine}"); - } - - public void Write(T value) - { - Console.WriteLine($"{value}"); - } - public void Read() - { - Console.WriteLine($"读取数据:... "); - } - public void Disconnect() - { - Console.WriteLine($"断开连接..."); - } - } - -} diff --git a/Net461DllTest/Device/PrakingDevice.cs b/Net461DllTest/Device/PrakingDevice.cs new file mode 100644 index 0000000..e5b50aa --- /dev/null +++ b/Net461DllTest/Device/PrakingDevice.cs @@ -0,0 +1,18 @@ +using Net461DllTest.LogicControl; +using Serein.Library.Attributes; +using Serein.Library.NodeFlow.Tool; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Net461DllTest.Device +{ + [AutoRegister] + public class PrakingDevice : ChannelFlowTrigger + { + + } + +} diff --git a/Net461DllTest/Device/SiemensPlcDevice.cs b/Net461DllTest/Device/SiemensPlcDevice.cs new file mode 100644 index 0000000..b573e15 --- /dev/null +++ b/Net461DllTest/Device/SiemensPlcDevice.cs @@ -0,0 +1,70 @@ +using IoTClient.Clients.PLC; +using Net461DllTest.Enums; +using Net461DllTest.Signal; +using Net461DllTest.Utils; +using Serein.Library.NodeFlow.Tool; +using System; + +namespace Net461DllTest.Device +{ + + /// + /// 官方文档:如果没有主动Open,则会每次读写操作的时候自动打开自动和关闭连接,这样会使读写效率大大减低。所以建议手动Open和Close。 + /// + public class SiemensPlcDevice : ChannelFlowTrigger + { + public SiemensClient Client { get; set; } + + public IoTClient.Common.Enums.SiemensVersion Version { get; set; } + public string IP { get; set; } + public int Port { get; set; } + public PlcState State { get; set; } = PlcState.PowerOff; + + + public void Init(IoTClient.Common.Enums.SiemensVersion version,string ip, int port) + { + Client = new SiemensClient(version, ip, port); + Version = version; + IP = ip; + Port = port; + } + + public void ResetDevice() + { + Client?.Close(); + Client = null; + } + + public void Write(PlcVarInfo plcValue, object value) + { + try + { + Client.WriteToPlcValue(plcValue, value); + } + catch (Exception ex) + { + Console.WriteLine($"写入出错:{this}{plcValue}。{ex.Message}"); + throw; + } + } + public object Read(PlcVarInfo plcValue) + { + try + { + return Client.ReadToPlcValue(plcValue); + } + catch (Exception ex) + { + Console.WriteLine($"读取出错:{this}{plcValue}。{ex.Message}"); + throw; + } + + } + + public override string ToString() + { + return $"西门子Plc[{this.Version}-{this.IP}:{this.Port}]"; + } + } + +} diff --git a/Net461DllTest/Enums/FromValue.cs b/Net461DllTest/Enums/FromValue.cs new file mode 100644 index 0000000..70cafbb --- /dev/null +++ b/Net461DllTest/Enums/FromValue.cs @@ -0,0 +1,19 @@ +using Net461DllTest.View; +using Serein.Library.Attributes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Net461DllTest.Signal +{ + public enum FromValue + { + None, + [BindValue(typeof(FromWorkBenchView))] + FromWorkBenchView, + [BindValue(typeof(TestFormView))] + TestFormView, + } +} diff --git a/Net461DllTest/Enums/PlcState.cs b/Net461DllTest/Enums/PlcState.cs new file mode 100644 index 0000000..12e4eed --- /dev/null +++ b/Net461DllTest/Enums/PlcState.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Net461DllTest.Enums +{ + public enum PlcState + { + /// + /// 关机 + /// + PowerOff, + /// + /// 正在运行 + /// + Runing, + /// + /// 发生异常 + /// + Error, + /// + /// 维护中 + /// + Maintenance, + } +} diff --git a/Net461DllTest/Flow/LogicControl.cs b/Net461DllTest/Flow/LogicControl.cs deleted file mode 100644 index 58a46b2..0000000 --- a/Net461DllTest/Flow/LogicControl.cs +++ /dev/null @@ -1,131 +0,0 @@ -using Net461DllTest.Data; -using Net461DllTest.Device; -using Net461DllTest.Signal; -using Net461DllTest.Web; -using Serein.Library.Api; -using Serein.Library.Attributes; -using Serein.Library.Enums; -using Serein.Library.Ex; -using Serein.Library.Framework.NodeFlow; -using Serein.Library.NodeFlow.Tool; -using Serein.Library.Web; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Net461DllTest.Flow -{ - [DynamicFlow] - public class LogicControl - { - [AutoInjection] - public PlcDevice MyPlc { get; set; } - - - #region 初始化、初始化完成以及退出的事件 - [NodeAction(NodeType.Init)] // Init : 初始化事件,流程启动时执行 - public void Init(IDynamicContext context) - { - context.Env.IOC.Register(); // 注册Plc设备 - context.Env.IOC.Register(); // 注册数据类 - context.Env.IOC.Register(); // 注册Web服务 - // // 注册控制器 - context.Env.IOC.Run(router => { - router.RegisterController(typeof(ApiController)); - }); - } - - [NodeAction(NodeType.Loading)] // Loading 初始化完成已注入依赖项,可以开始逻辑上的操作 - public void Loading(IDynamicContext context) - { - context.Env.IOC.Run((web) => - { - web.Start("http://*:8089/"); // 开启 Web 服务 - }); - } - - [NodeAction(NodeType.Exit)] // 流程结束时自动执行 - public void Exit(IDynamicContext context) - { - MyPlc.Disconnect(); - MyPlc.CancelAllTasks(); - } - - #endregion - - #region 触发器 - - [NodeAction(NodeType.Flipflop, "等待信号触发", ReturnType = typeof(int))] - public async Task WaitTask(OrderSignal order = OrderSignal.Command_1) - { - try - { - TriggerData triggerData = await MyPlc.CreateChannelWithTimeoutAsync(order, TimeSpan.FromMinutes(5), 0); - if (triggerData.Type == TriggerType.Overtime) - { - throw new FlipflopException("超时取消"); - } - //int.TryParse(triggerData.Value.ToString(),out int result); - MyPlc.MyData.Count += (int)triggerData.Value; - return new FlipflopContext(FlipflopStateType.Succeed, MyPlc.MyData.Count); - } - catch (FlipflopException) - { - throw; - } - catch (Exception) - { - return new FlipflopContext(FlipflopStateType.Error); - } - - } - - #endregion - - #region 动作 - - [NodeAction(NodeType.Action, "初始化")] - public PlcDevice PlcInit(string ip = "192.168.1.1", - int port = 6688, - string tips = "测试") - { - MyPlc.InitDevice(ip, port, tips); - return MyPlc; - } - - - [NodeAction(NodeType.Action, "自增")] - public PlcDevice 自增(int number = 1) - { - MyPlc.MyData.Count += number; - return MyPlc; - } - - [NodeAction(NodeType.Action, "重置计数")] - public void 重置计数() - { - MyPlc.MyData.Count = 0; - } - - [NodeAction(NodeType.Action, "触发信号")] - public void 光电1信号触发(int data) - { - MyPlc.Write($"{MyPlc.PlcId.ToString("00000")} - 信号源[光电1] - 模拟写入 : {data}{Environment.NewLine}"); - } - - //[NodeAction(NodeType.Action, "触发光电2")] - //public void 光电2信号触发(int data) - //{ - // MyPlc.Write($"{MyPlc.PlcId.ToString("00000")} - 信号源[光电2] - 模拟写入 : {data}{Environment.NewLine}"); - //} - - //[NodeAction(NodeType.Action, "触发光电3")] - //public void 光电3信号触发(int data) - //{ - // MyPlc.Write($"{MyPlc.PlcId.ToString("00000")} - 信号源[光电3] - 模拟写入 : {data}{Environment.NewLine}"); - //} - #endregion - } -} diff --git a/Net461DllTest/LogicControl/ParkingLogicControl.cs b/Net461DllTest/LogicControl/ParkingLogicControl.cs new file mode 100644 index 0000000..291e700 --- /dev/null +++ b/Net461DllTest/LogicControl/ParkingLogicControl.cs @@ -0,0 +1,91 @@ +using Net461DllTest.Device; +using Net461DllTest.Signal; +using Net461DllTest.ViewModel; +using Serein.Library.Api; +using Serein.Library.Attributes; +using Serein.Library.Enums; +using Serein.Library.Ex; +using Serein.Library.Framework.NodeFlow; +using Serein.Library.NodeFlow.Tool; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Net461DllTest.LogicControl +{ + + public enum ParkingCommand + { + GetPparkingSpace, + } + + + [DynamicFlow] + public class ParkingLogicControl + { + [AutoInjection] + public PrakingDevice PrakingDevice { get; set; } + + + [NodeAction(NodeType.Init)] + public void Init(IDynamicContext context) + { + + context.Env.IOC.Register(); + } + + + + [NodeAction(NodeType.Flipflop, "等待车位调取命令",ReturnType=typeof(string))] + public async Task GetPparkingSpace(ParkingCommand parkingCommand = ParkingCommand.GetPparkingSpace) + { + try + { + TriggerData triggerData = await PrakingDevice.CreateChannelWithTimeoutAsync(parkingCommand, TimeSpan.FromMinutes(5), 0); + if (triggerData.Type == TriggerType.Overtime) + { + throw new FlipflopException("超时取消"); + } + if(triggerData.Value is string spaceNum) + { + await Console.Out.WriteLineAsync("收到命令:调取车位,车位号"+ spaceNum); + return new FlipflopContext(FlipflopStateType.Succeed, spaceNum); + } + else + { + throw new FlipflopException("并非车位号"); + } + + } + catch (FlipflopException) + { + throw; + } + catch (Exception) + { + return new FlipflopContext(FlipflopStateType.Error); + } + } + + + [NodeAction(NodeType.Action, "手动触发模拟调取车位")] + public void Storage(string spaceNum = "101") + { + if (PrakingDevice.TriggerSignal(ParkingCommand.GetPparkingSpace, spaceNum)) + { + Console.WriteLine("发送命令成功:调取车位" + spaceNum); + + } + else + { + Console.WriteLine("发送命令失败:调取车位" + spaceNum); + + } + } + + + + } +} diff --git a/Net461DllTest/LogicControl/PlcLogicControl.cs b/Net461DllTest/LogicControl/PlcLogicControl.cs new file mode 100644 index 0000000..7d784df --- /dev/null +++ b/Net461DllTest/LogicControl/PlcLogicControl.cs @@ -0,0 +1,191 @@ +using IoTClient.Clients.PLC; +using IoTClient.Common.Enums; +using Net461DllTest.Device; +using Net461DllTest.Enums; +using Net461DllTest.Signal; +using Net461DllTest.Web; +using Serein.Library.Api; +using Serein.Library.Attributes; +using Serein.Library.Enums; +using Serein.Library.Ex; +using Serein.Library.Framework.NodeFlow; +using Serein.Library.NodeFlow.Tool; +using Serein.Library.Utils; +using Serein.Library.Web; +using System; +using System.ComponentModel; +using System.Reflection; +using System.Threading.Tasks; + +namespace Net461DllTest.LogicControl +{ + [DynamicFlow] + public class PlcLogicControl + { + [AutoInjection] + public SiemensPlcDevice MyPlc { get; set; } + + + + + #region 初始化、初始化完成以及退出的事件 + [NodeAction(NodeType.Init)] // Init : 初始化事件,流程启动时执行 + public void Init(IDynamicContext context) + { + context.Env.IOC.Register(); // 注册Plc设备 + context.Env.IOC.Register(); // 注册Web服务 + // // 注册控制器 + context.Env.IOC.Run(router => { + router.RegisterController(typeof(ApiController)); + }); + } + + [NodeAction(NodeType.Loading)] // Loading 初始化完成已注入依赖项,可以开始逻辑上的操作 + public void Loading(IDynamicContext context) + { + context.Env.IOC.Run((web) => + { + web.Start("http://*:8089/"); // 开启 Web 服务 + }); + } + + [NodeAction(NodeType.Exit)] // 流程结束时自动执行 + public void Exit(IDynamicContext context) + { + MyPlc.ResetDevice(); + MyPlc.CancelAllTasks(); + } + + #endregion + + #region 触发器节点 + + [NodeAction(NodeType.Flipflop, "等待信号触发", ReturnType = typeof(int))] + public async Task WaitTask(OrderSignal order = OrderSignal.Command_1) + { + try + { + TriggerData triggerData = await MyPlc.CreateChannelWithTimeoutAsync(order, TimeSpan.FromMinutes(5), 0); + if (triggerData.Type == TriggerType.Overtime) + { + throw new FlipflopException("超时取消"); + } + //int.TryParse(triggerData.Value.ToString(),out int result); + return new FlipflopContext(FlipflopStateType.Succeed, triggerData.Value); + } + catch (FlipflopException) + { + throw; + } + catch (Exception) + { + return new FlipflopContext(FlipflopStateType.Error); + } + + } + + #endregion + + #region 动作节点 + + [NodeAction(NodeType.Action, "初始化")] + public SiemensPlcDevice PlcInit(SiemensVersion version = SiemensVersion.None, + string ip = "192.168.10.100", + int port = 102) + { + if (MyPlc.Client is null) + { + try + { + MyPlc.Init(version, ip, port); + Console.WriteLine($"西门子PLC初始化成功[{version},{ip}:{port}]"); + } + catch (Exception ex) + { + Console.WriteLine($"西门子PLC[{version},{ip}:{port}]初始化异常:{ex.Message}"); + } + } + else + { + Console.WriteLine( $"西门子PLC已经初始化[{version},{ip}:{port}]"); + } + return MyPlc; + } + + + [NodeAction(NodeType.Action, "设置PLC状态")] + public SiemensPlcDevice SetState(PlcState state = PlcState.PowerOff) + { + if(MyPlc.Client != null) + { + var oldState = MyPlc.State; + MyPlc.State = state; + Console.WriteLine($"PLC状态从[{oldState}]转为[{state}]"); + return MyPlc; + } + else + { + Console.WriteLine($"PLC尚未初始化"); + return MyPlc; + } + + } + + + [NodeAction(NodeType.Action, "PLC获取变量")] + public object ReadVar([BindConvertor(typeof(PlcVarEnum), typeof(PlcVarConvertor))] PlcVarInfo varInfo) + { + var result = MyPlc.Read(varInfo); + Console.WriteLine($"获取变量成功:({varInfo})\t result = {result}"); + return result; + } + + [NodeAction(NodeType.Action, "PLC写入变量")] + public SiemensPlcDevice WriteVar2(object value, [BindConvertor(typeof(PlcVarEnum), typeof(PlcVarConvertor))] PlcVarInfo varInfo) + { + + if (MyPlc.State == PlcState.Runing) + { + if (!varInfo.IsProtected) + { + MyPlc.Write(varInfo, value); + Console.WriteLine($"PLC变量{varInfo}写入数据:{value}"); + } + else + { + Console.WriteLine($"PLC变量{varInfo}当前禁止写入"); + } + } + else + { + Console.WriteLine($"PLC处于非预期状态{MyPlc.State}"); + } + return MyPlc; + } + + + /// + /// 转换器,用于将枚举转为自定义特性中的数据 + /// + public class PlcVarConvertor: IEnumConvertor + { + public PlcVarInfo Convertor(PlcVarEnum plcVarValue) + { + if (plcVarValue == PlcVarEnum.None) + { + throw new Exception("非预期枚举值"); + } + var plcValue = EnumHelper.GetBoundValue(plcVarValue, attr => attr.PlcInfo) + ?? throw new Exception($"获取变量异常:{plcVarValue},没有标记PlcValueAttribute"); + if (string.IsNullOrEmpty(plcValue.VarAddress)) + { + throw new Exception($"获取变量异常:{plcVarValue},变量地址为空"); + } + return plcValue; + } + + } + + #endregion + } +} diff --git a/Net461DllTest/Flow/ViewLogicControl.cs b/Net461DllTest/LogicControl/ViewLogicControl.cs similarity index 71% rename from Net461DllTest/Flow/ViewLogicControl.cs rename to Net461DllTest/LogicControl/ViewLogicControl.cs index 3bc4435..d65c122 100644 --- a/Net461DllTest/Flow/ViewLogicControl.cs +++ b/Net461DllTest/LogicControl/ViewLogicControl.cs @@ -1,6 +1,4 @@ -using Net461DllTest.Data; -using Net461DllTest.Device; -using Net461DllTest.View; +using Net461DllTest.Signal; using Net461DllTest.ViewModel; using Serein.Library.Api; using Serein.Library.Attributes; @@ -9,10 +7,9 @@ using Serein.Library.Utils; using System; using System.Collections.Generic; using System.Linq; -using System.Reflection; using System.Windows.Forms; -namespace Net461DllTest.Flow +namespace Net461DllTest.LogicControl { public class ViewManagement @@ -44,14 +41,7 @@ namespace Net461DllTest.Flow } - public enum FromId - { - None, - [BindValue(typeof(FromWorkBenchView))] - FromWorkBenchView, - [BindValue(typeof(TeseFormView))] - TeseFormView, - } + [DynamicFlow] public class ViewLogicControl @@ -68,9 +58,9 @@ namespace Net461DllTest.Flow [NodeAction(NodeType.Action, "打开窗体(指定枚举值)")] - public void OpenForm(IDynamicContext context, FromId fromId = FromId.None, bool isTop = true) + public void OpenForm(IDynamicContext context, FromValue fromId = FromValue.None, bool isTop = true) { - var fromType = EnumHelper.GetBoundValue(fromId, attr => attr.Value); + var fromType = EnumHelper.GetBoundValue(fromId, attr => attr.Value); if (fromType is null) return; if (context.Env.IOC.Instantiate(fromType) is Form form) { @@ -79,16 +69,17 @@ namespace Net461DllTest.Flow } [NodeAction(NodeType.Action, "打开窗体(使用转换器)")] - public void OpenForm2([EnumTypeConvertor(typeof(FromId))] Form form, bool isTop = true) + public void OpenForm2([EnumTypeConvertor(typeof(FromValue))] Form form, bool isTop = true) { ViewManagement.OpenView(form, isTop); } + [NodeAction(NodeType.Action, "关闭窗体")] - public void CloseForm(IDynamicContext context, FromId fromId = FromId.None) + public void CloseForm(IDynamicContext context, FromValue fromId = FromValue.None) { - var fromType = EnumHelper.GetBoundValue(fromId, attr => attr.Value); + var fromType = EnumHelper.GetBoundValue(fromId, attr => attr.Value); if (fromType is null) return; ViewManagement.CloseView(fromType); } @@ -96,5 +87,6 @@ namespace Net461DllTest.Flow + } } diff --git a/Net461DllTest/Net461DllTest.csproj b/Net461DllTest/Net461DllTest.csproj index 227a6e5..3676fab 100644 --- a/Net461DllTest/Net461DllTest.csproj +++ b/Net461DllTest/Net461DllTest.csproj @@ -39,9 +39,15 @@ + + ..\packages\IoTClient.1.0.40\lib\netstandard2.0\IoTClient.dll + + + ..\packages\System.IO.Ports.4.6.0\lib\net461\System.IO.Ports.dll + ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll @@ -54,11 +60,17 @@ - - - - + + + + + + + + + + Form @@ -66,12 +78,11 @@ FromWorkBenchView.cs - - + Form - - TeseFormView.cs + + TestFormView.cs @@ -89,14 +100,15 @@ FromWorkBenchView.cs - - TeseFormView.cs + + TestFormView.cs + diff --git a/Net461DllTest/Signal/OrderSignal.cs b/Net461DllTest/Signal/OrderSignal.cs index 6ad3bf6..7eeb8a8 100644 --- a/Net461DllTest/Signal/OrderSignal.cs +++ b/Net461DllTest/Signal/OrderSignal.cs @@ -1,18 +1,15 @@ -using Serein.Library.Attributes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using static Serein.Library.Attributes.PLCValueAttribute; - -namespace Net461DllTest.Signal +namespace Net461DllTest.Signal { public enum OrderSignal { - View_1, - View_2, Command_1, Command_2, + Command_3, + Command_4, + Command_5, + Command_6, + Command_7, + Command_8, + Command_9, } } diff --git a/Net461DllTest/Signal/PLCVarSignal.cs b/Net461DllTest/Signal/PLCVarSignal.cs new file mode 100644 index 0000000..9cb5a1c --- /dev/null +++ b/Net461DllTest/Signal/PLCVarSignal.cs @@ -0,0 +1,64 @@ +using Serein.Library.Attributes; +using System; +using static Net461DllTest.Signal.PlcValueAttribute; + +namespace Net461DllTest.Signal +{ + + [AttributeUsage(AttributeTargets.Field)] + public class PlcValueAttribute : Attribute + { + /// + /// 变量类型 + /// + public enum VarType + { + /// + /// 只读取的值 + /// + ReadOnly, + /// + /// 可写入的值 + /// + Writable, + } + + /// + /// 变量属性 + /// + public PlcVarInfo PlcInfo { get; } + + + public PlcValueAttribute(Type type, + string @var, + VarType varType + ) + { + PlcInfo = new PlcVarInfo(type, var, varType); + } + } + + public class PlcVarInfo + { + public PlcVarInfo(Type type, + string @var, + VarType varType + ) + { + DataType = type; + VarAddress = @var; + Type = varType; + } + public bool IsProtected { get; } + public Type DataType { get; } + public string VarAddress { get; } + public VarType Type { get; } + + public override string ToString() + { + return $"数据类型:{DataType} 地址:{VarAddress}"; + } + } + + +} diff --git a/Net461DllTest/Signal/Signal.cs b/Net461DllTest/Signal/Signal.cs deleted file mode 100644 index 4dd4c0b..0000000 --- a/Net461DllTest/Signal/Signal.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Net461DllTest.Flow; -using Serein.Library.Attributes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Net461DllTest.Signal -{ - - -} diff --git a/Net461DllTest/Utils/ToValue.cs b/Net461DllTest/Utils/ToValue.cs new file mode 100644 index 0000000..db045ff --- /dev/null +++ b/Net461DllTest/Utils/ToValue.cs @@ -0,0 +1,231 @@ +using IoTClient; +using IoTClient.Clients.PLC; +using IoTClient.Enums; +using Net461DllTest.Signal; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Net461DllTest.Utils +{ + internal static class MyPlcExtension + { + public static DataTypeEnum ToDataTypeEnum(this PlcVarInfo varInfo) + { + Type dataType = varInfo.DataType; + DataTypeEnum plcDataType; + switch (dataType) + { + case Type _ when dataType == typeof(string): + plcDataType = DataTypeEnum.String; + break; + case Type _ when dataType == typeof(char): + plcDataType = DataTypeEnum.String; + break; + case Type _ when dataType == typeof(bool): + plcDataType = DataTypeEnum.Bool; + break; + case Type _ when dataType == typeof(float): + plcDataType = DataTypeEnum.Float; + break; + case Type _ when dataType == typeof(double): + plcDataType = DataTypeEnum.Double; + break; + case Type _ when dataType == typeof(byte): + plcDataType = DataTypeEnum.Byte; + break; + case Type _ when dataType == typeof(short): + plcDataType = DataTypeEnum.Int16; + break; + case Type _ when dataType == typeof(ushort): + plcDataType = DataTypeEnum.UInt16; + break; + case Type _ when dataType == typeof(int): + plcDataType = DataTypeEnum.Int32; + break; + case Type _ when dataType == typeof(uint): + plcDataType = DataTypeEnum.UInt32; + break; + case Type _ when dataType == typeof(long): + plcDataType = DataTypeEnum.Int64; + break; + case Type _ when dataType == typeof(ulong): + plcDataType = DataTypeEnum.UInt64; + break; + default: + plcDataType = DataTypeEnum.None; + break; + } + + + return plcDataType; + } + + /// + /// 读取设备的值 + /// + /// + /// + /// + /// + public static object ReadToPlcValue(this SiemensClient client,PlcVarInfo varInfo) + { + Type dataType = varInfo.DataType; + object resultvalue; + if (dataType == typeof(string)) + { + var result = client.ReadString(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(char)) + { + var result = client.ReadString(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(bool)) + { + var result = client.ReadBoolean(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(float)) + { + var result = client.ReadFloat(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(double)) + { + var result = client.ReadDouble(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(byte)) + { + var result = client.ReadByte(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(short)) + { + var result = client.ReadInt16(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(ushort)) + { + var result = client.ReadUInt16(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(int)) + { + var result = client.ReadInt32(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(uint)) + { + var result = client.ReadUInt32(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(long)) + { + var result = client.ReadInt64(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else if (dataType == typeof(ulong)) + { + var result = client.ReadUInt64(varInfo.VarAddress); + if (!result.IsSucceed) throw new Exception(result.Err); + resultvalue = result.Value; + } + else + { + resultvalue = default; + } + return resultvalue; + } + + public static void WriteToPlcValue(this SiemensClient client, PlcVarInfo varInfo ,object value) + { + if(client == null) throw new ArgumentNullException("client"); + Type dataType = varInfo.DataType; + Result result = null; + if (dataType == typeof(string)) + { + result = client.Write(varInfo.VarAddress, value.ToString()); + } + else if (dataType == typeof(char)) + { + result = client.Write(varInfo.VarAddress, value.ToString()); + } + else if (dataType == typeof(bool)) + { + var @bool = bool.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @bool); + } + else if (dataType == typeof(float)) + { + var @float = float.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @float); + } + else if (dataType == typeof(double)) + { + var @double = double.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @double); + } + else if (dataType == typeof(byte)) + { + var @byte = byte.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @byte); + } + else if (dataType == typeof(short)) + { + var @short = short.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @short); + } + else if (dataType == typeof(ushort)) + { + var @ushort = ushort.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @ushort); + } + else if (dataType == typeof(int)) + { + var @int = int.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @int); + } + else if (dataType == typeof(uint)) + { + var @uint = uint.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @uint); + } + else if (dataType == typeof(long)) + { + var @long = long.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @long); + } + else if (dataType == typeof(ulong)) + { + var @ulong = ulong.Parse(value.ToString()); + result = client.Write(varInfo.VarAddress, @ulong); + } + if (result is null) + { + throw new Exception($"未定义的数据类型"); + } + if(!result.IsSucceed) + { + throw new Exception(result.Err); + } + } + + } +} diff --git a/Net461DllTest/View/FromWorkBenchView.Designer.cs b/Net461DllTest/View/FromWorkBenchView.Designer.cs index 2d14bf7..caffe5e 100644 --- a/Net461DllTest/View/FromWorkBenchView.Designer.cs +++ b/Net461DllTest/View/FromWorkBenchView.Designer.cs @@ -29,33 +29,35 @@ private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); - this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBoxPlcInfo = new System.Windows.Forms.TextBox(); this.button2 = new System.Windows.Forms.Button(); this.listBox1 = new System.Windows.Forms.ListBox(); + this.textBoxSpaceNum = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // button1 // - this.button1.Location = new System.Drawing.Point(187, 22); + this.button1.Location = new System.Drawing.Point(220, 56); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(98, 23); + this.button1.Size = new System.Drawing.Size(65, 23); this.button1.TabIndex = 0; this.button1.Text = "查看状态"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // - // textBox1 + // textBoxPlcInfo // - this.textBox1.Location = new System.Drawing.Point(35, 24); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(137, 21); - this.textBox1.TabIndex = 1; + this.textBoxPlcInfo.Location = new System.Drawing.Point(35, 24); + this.textBoxPlcInfo.Name = "textBoxPlcInfo"; + this.textBoxPlcInfo.ReadOnly = true; + this.textBoxPlcInfo.Size = new System.Drawing.Size(250, 21); + this.textBoxPlcInfo.TabIndex = 1; // // button2 // - this.button2.Location = new System.Drawing.Point(178, 179); + this.button2.Location = new System.Drawing.Point(205, 181); this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(107, 23); + this.button2.Size = new System.Drawing.Size(80, 23); this.button2.TabIndex = 2; this.button2.Text = "触发"; this.button2.UseVisualStyleBackColor = true; @@ -70,14 +72,23 @@ this.listBox1.Size = new System.Drawing.Size(250, 88); this.listBox1.TabIndex = 6; // + // textBoxSpaceNum + // + this.textBoxSpaceNum.Location = new System.Drawing.Point(35, 183); + this.textBoxSpaceNum.Name = "textBoxSpaceNum"; + this.textBoxSpaceNum.Size = new System.Drawing.Size(106, 21); + this.textBoxSpaceNum.TabIndex = 7; + this.textBoxSpaceNum.Text = "104"; + // // FromWorkBenchView // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(341, 251); + this.Controls.Add(this.textBoxSpaceNum); this.Controls.Add(this.listBox1); this.Controls.Add(this.button2); - this.Controls.Add(this.textBox1); + this.Controls.Add(this.textBoxPlcInfo); this.Controls.Add(this.button1); this.Name = "FromWorkBenchView"; this.Text = "Form1"; @@ -89,8 +100,9 @@ #endregion private System.Windows.Forms.Button button1; - private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBoxPlcInfo; private System.Windows.Forms.Button button2; private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.TextBox textBoxSpaceNum; } } \ No newline at end of file diff --git a/Net461DllTest/View/FromWorkBenchView.cs b/Net461DllTest/View/FromWorkBenchView.cs index 92f204b..4719625 100644 --- a/Net461DllTest/View/FromWorkBenchView.cs +++ b/Net461DllTest/View/FromWorkBenchView.cs @@ -31,17 +31,21 @@ namespace Net461DllTest private void button1_Click(object sender, EventArgs e) { - textBox1.Text = ViewModel.GetDeviceInfo(); + textBoxPlcInfo.Text = ViewModel.GetDeviceInfo(); } private void button2_Click(object sender, EventArgs e) { + if(listBox1.SelectedItem is null) + { + return; + } string type = listBox1.SelectedItem.ToString(); - if (Enum.TryParse(type, out OrderSignal signal) && Enum.IsDefined(typeof(OrderSignal), signal)) + if (!string.IsNullOrEmpty(type) && Enum.TryParse(type, out OrderSignal signal) && Enum.IsDefined(typeof(OrderSignal), signal)) { Console.WriteLine($"Trigger : {type}"); - ViewModel.Trigger(signal); + ViewModel.Trigger(signal,textBoxSpaceNum.Text); } } diff --git a/Net461DllTest/View/TeseFormView.cs b/Net461DllTest/View/TeseFormView.cs deleted file mode 100644 index 7bf4128..0000000 --- a/Net461DllTest/View/TeseFormView.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Net461DllTest.Data; -using Net461DllTest.Signal; -using Serein.Library.Attributes; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using static System.Windows.Forms.VisualStyles.VisualStyleElement; - -namespace Net461DllTest.View -{ - public partial class TeseFormView : Form - { - [AutoInjection] - public MyData MyData { get; set; } - - public TeseFormView() - { - InitializeComponent(); - - } - - private void button1_Click(object sender, EventArgs e) - { - MyData.Count = 0; - } - } -} diff --git a/Net461DllTest/View/TeseFormView.Designer.cs b/Net461DllTest/View/TestFormView.Designer.cs similarity index 90% rename from Net461DllTest/View/TeseFormView.Designer.cs rename to Net461DllTest/View/TestFormView.Designer.cs index 9c580dd..41ea4a4 100644 --- a/Net461DllTest/View/TeseFormView.Designer.cs +++ b/Net461DllTest/View/TestFormView.Designer.cs @@ -1,6 +1,8 @@ -namespace Net461DllTest.View +using System; + +namespace Net461DllTest.View { - partial class TeseFormView + partial class TestFormView { /// /// Required designer variable. @@ -37,17 +39,17 @@ this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; - this.button1.Text = "清空"; + this.button1.Text = "测试"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // - // TeseFormView + // TestFormView // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(254, 118); this.Controls.Add(this.button1); - this.Name = "TeseFormView"; + this.Name = "TestFormView"; this.Text = "TeseForm"; this.ResumeLayout(false); diff --git a/Net461DllTest/View/TestFormView.cs b/Net461DllTest/View/TestFormView.cs new file mode 100644 index 0000000..b747544 --- /dev/null +++ b/Net461DllTest/View/TestFormView.cs @@ -0,0 +1,19 @@ +using System; +using System.Windows.Forms; + +namespace Net461DllTest.View +{ + public partial class TestFormView : Form + { + + public TestFormView() + { + InitializeComponent(); + + } + + private void button1_Click(object sender, EventArgs e) + { + } + } +} diff --git a/Net461DllTest/View/TeseFormView.resx b/Net461DllTest/View/TestFormView.resx similarity index 100% rename from Net461DllTest/View/TeseFormView.resx rename to Net461DllTest/View/TestFormView.resx diff --git a/Net461DllTest/ViewModel/FromWorkBenchViewModel.cs b/Net461DllTest/ViewModel/FromWorkBenchViewModel.cs index 337ea80..31c1652 100644 --- a/Net461DllTest/ViewModel/FromWorkBenchViewModel.cs +++ b/Net461DllTest/ViewModel/FromWorkBenchViewModel.cs @@ -12,22 +12,21 @@ namespace Net461DllTest.ViewModel public class FromWorkBenchViewModel { [AutoInjection] - public PlcDevice Device { get; set; } + public SiemensPlcDevice Device { get; set; } public string Name { get; set; } public string GetDeviceInfo() { - if(Device is null) - { - return string.Empty; - } - return "PLC ID:" + Device.PlcId + " - " + Device.MyData.Count.ToString(); + return Device?.ToString(); } - public void Trigger(OrderSignal signal) + public void Trigger(OrderSignal signal,string spcaeNumber) { - Device.TriggerSignal(signal, 0); + _ = Task.Run(() => + { + Device.TriggerSignal(signal, spcaeNumber); + }); } diff --git a/Net461DllTest/Web/ApiController.cs b/Net461DllTest/Web/ApiController.cs index bf92417..658af8c 100644 --- a/Net461DllTest/Web/ApiController.cs +++ b/Net461DllTest/Web/ApiController.cs @@ -14,7 +14,7 @@ namespace Net461DllTest.Web public class ApiController : ControllerBase { [AutoInjection] - public PlcDevice PlcDevice { get; set; } + public SiemensPlcDevice PlcDevice { get; set; } [WebApi(API.POST)] public dynamic Trigger([Url] string type, int value) diff --git a/Net461DllTest/app.config b/Net461DllTest/app.config new file mode 100644 index 0000000..dd1ad41 --- /dev/null +++ b/Net461DllTest/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Net461DllTest/packages.config b/Net461DllTest/packages.config index 142ece2..cadbf4f 100644 --- a/Net461DllTest/packages.config +++ b/Net461DllTest/packages.config @@ -1,4 +1,6 @@  + + \ No newline at end of file diff --git a/NodeFlow/Base/NodeModelBaseFunc.cs b/NodeFlow/Base/NodeModelBaseFunc.cs index 4335ad6..db835e7 100644 --- a/NodeFlow/Base/NodeModelBaseFunc.cs +++ b/NodeFlow/Base/NodeModelBaseFunc.cs @@ -223,6 +223,7 @@ namespace Serein.NodeFlow.Base } catch (Exception ex) { + await Console.Out.WriteLineAsync(ex.ToString()); NextOrientation = ConnectionType.IsError; RuningException = ex; return null; @@ -292,7 +293,23 @@ namespace Serein.NodeFlow.Base inputParameter = flowData; // 使用上一节点的对象 } - + // 存在转换器 + if (ed.Convertor is not null) + { + if (Enum.TryParse(ed.ExplicitType, ed.DataValue, out var resultEnum)) + { + var value = ed.Convertor(resultEnum); + if (value is not null) + { + parameters[i] = value; + continue; + } + else + { + throw new InvalidOperationException("转换器调用失败"); + } + } + } //var attribute = ed.DataType.GetCustomAttribute(); //if (attribute is not null && attribute.EnumType.IsEnum) // 获取枚举转换器中记录的枚举 @@ -312,6 +329,8 @@ namespace Serein.NodeFlow.Base } } } + + try diff --git a/NodeFlow/FlowEnvironment.cs b/NodeFlow/FlowEnvironment.cs index 24b6215..a02dbf7 100644 --- a/NodeFlow/FlowEnvironment.cs +++ b/NodeFlow/FlowEnvironment.cs @@ -311,11 +311,11 @@ namespace Serein.NodeFlow foreach (var dll in dllPaths) { var dllFilePath = System.IO.Path.GetFullPath(System.IO.Path.Combine(filePath, dll)); - (var assembly, var list) = LoadAssembly(dllFilePath); - if (assembly is not null && list.Count > 0) + (var assembly, var registerTypes, var mdlist) = LoadAssembly(dllFilePath); + if (assembly is not null && mdlist.Count > 0) { - MethodDetailss.AddRange(list); // 暂存方法描述 - OnDllLoad?.Invoke(new LoadDLLEventArgs(assembly, list)); // 通知UI创建dll面板显示 + MethodDetailss.AddRange(mdlist); // 暂存方法描述 + OnDllLoad?.Invoke(new LoadDLLEventArgs(assembly, mdlist)); // 通知UI创建dll面板显示 } } // 方法加载完成,缓存到运行环境中。 @@ -435,6 +435,7 @@ namespace Serein.NodeFlow OnProjectLoaded?.Invoke(new ProjectLoadedEventArgs()); } + /// /// 保存项目为项目文件 /// @@ -457,17 +458,20 @@ namespace Serein.NodeFlow /// public void LoadDll(string dllPath) { - (var assembly, var list) = LoadAssembly(dllPath); + (var assembly, _, var list) = LoadAssembly(dllPath); if (assembly is not null && list.Count > 0) { MethodDetailss.AddRange(list); OnDllLoad?.Invoke(new LoadDLLEventArgs(assembly, list)); } } + /// /// 运行时创建节点 /// - /// + /// + /// + /// public void CreateNode(NodeControlType nodeControlType, Position position, MethodDetails? methodDetails = null) { var nodeModel = CreateNode(nodeControlType, methodDetails); @@ -477,8 +481,7 @@ namespace Serein.NodeFlow && nodeControlType == NodeControlType.Flipflop && nodeModel is SingleFlipflopNode flipflopNode) { - // 当前添加节点属于触发器,且当前正在运行,则加载到运行环境中 - flowStarter?.AddFlipflopInRuning(flipflopNode, this); + _ = flowStarter?.RunGlobalFlipflopAsync(this, flipflopNode); // 当前添加节点属于触发器,且当前正在运行,则加载到运行环境中 } // 通知UI更改 @@ -504,6 +507,11 @@ namespace Serein.NodeFlow { return; } + if (remoteNode is SingleFlipflopNode flipflopNode) + { + flowStarter?.TerminateGlobalFlipflopRuning(flipflopNode); // 假设被移除的是全局触发器,尝试从启动器移除 + } + // 遍历所有父节点,从那些父节点中的子节点集合移除该节点 foreach (var pnc in remoteNode.PreviousNodes) @@ -512,7 +520,6 @@ namespace Serein.NodeFlow for (int i = 0; i < pnc.Value.Count; i++) { NodeModelBase? pNode = pnc.Value[i]; - //pNode.SuccessorNodes[pCType].RemoveAt(i); pNode.SuccessorNodes[pCType].Remove(pNode); OnNodeConnectChange?.Invoke(new NodeConnectChangeEventArgs(pNode.Guid, @@ -588,13 +595,13 @@ namespace Serein.NodeFlow { fromNode.SuccessorNodes[connectionType].Remove(toNode); toNode.PreviousNodes[connectionType].Remove(fromNode); - if (toNode is SingleFlipflopNode flipflopNode) + + if (toNode is SingleFlipflopNode flipflopNode) // 子节点为触发器 { - if (flowStarter?.FlowState != RunState.Completion - && flipflopNode.NotExitPreviousNode()) + if (flowStarter?.FlowState != RunState.Completion + && flipflopNode.NotExitPreviousNode()) // 正在运行,且该触发器没有上游节点 { - // 被父节点移除连接关系的子节点若为触发器,且无上级节点,则当前流程正在运行,则加载到运行环境中 - flowStarter?.AddFlipflopInRuning(flipflopNode, this); + flowStarter?.RunGlobalFlipflopAsync(this, flipflopNode); // 被父节点移除连接关系的子节点若为触发器,且无上级节点,则当前流程正在运行,则加载到运行环境中 } } @@ -844,17 +851,19 @@ namespace Serein.NodeFlow /// 加载指定路径的DLL文件 /// /// - private (Assembly?, List) LoadAssembly(string dllPath) + private (Assembly?, List ,List) LoadAssembly(string dllPath) { try { Assembly assembly = Assembly.LoadFrom(dllPath); // 加载DLL文件 Type[] types = assembly.GetTypes(); // 获取程序集中的所有类型 + List autoRegisterTypes = assembly.GetTypes().Where(t => t.GetCustomAttribute() is not null).ToList(); + List scanTypes = assembly.GetTypes().Where(t => t.GetCustomAttribute()?.Scan == true).ToList(); if (scanTypes.Count == 0) { - return (null, []); + return (null, [], []); } List methodDetails = new List(); @@ -874,14 +883,15 @@ namespace Serein.NodeFlow } LoadedAssemblies.Add(assembly); // 将加载的程序集添加到列表中 LoadedAssemblyPaths.Add(dllPath); // 记录加载的DLL路径 - return (assembly, methodDetails); + return (assembly, autoRegisterTypes , methodDetails); } catch (Exception ex) { Console.WriteLine(ex.ToString()); - return (null, []); + return (null, [],[]); } } + /// /// 运行环节加载了项目文件,需要创建节点控件 /// @@ -985,6 +995,11 @@ namespace Serein.NodeFlow ConnectionType.IsFail, ConnectionType.IsError, ConnectionType.Upstream]; + + if (toNode is SingleFlipflopNode flipflopNode) + { + flowStarter?.TerminateGlobalFlipflopRuning(flipflopNode); // 假设被连接的是全局触发器,尝试移除 + } foreach (ConnectionType ctType in ct) { var FToTo = fromNode.SuccessorNodes[ctType].Where(it => it.Guid.Equals(toNode.Guid)).ToArray(); diff --git a/NodeFlow/FlowStarter.cs b/NodeFlow/FlowStarter.cs index e3c3ed9..d6721b6 100644 --- a/NodeFlow/FlowStarter.cs +++ b/NodeFlow/FlowStarter.cs @@ -6,6 +6,7 @@ using Serein.Library.Utils; using Serein.Library.Web; using Serein.NodeFlow.Base; using Serein.NodeFlow.Model; +using System.Collections.Concurrent; using System.ComponentModel.Design; using System.Runtime.CompilerServices; using System.Xml.Linq; @@ -238,6 +239,8 @@ namespace Serein.NodeFlow ((Action)md.MethodDelegate).Invoke(md.ActingInstance, [Context]); } + TerminateAllGlobalFlipflop(); + if (_flipFlopCts != null && !_flipFlopCts.IsCancellationRequested) { _flipFlopCts?.Cancel(); @@ -245,6 +248,7 @@ namespace Serein.NodeFlow } FlowState = RunState.Completion; FlipFlopState = RunState.Completion; + }; #endregion @@ -263,7 +267,7 @@ namespace Serein.NodeFlow // 使用 TaskCompletionSource 创建未启动的触发器任务 var tasks = flipflopNodes.Select(async node => { - await FlipflopExecute(env,node); + await RunGlobalFlipflopAsync(env,node); }).ToArray(); _ = Task.WhenAll(tasks); } @@ -288,31 +292,68 @@ namespace Serein.NodeFlow #endregion } - public void AddFlipflopInRuning(SingleFlipflopNode singleFlipFlopNode, IFlowEnvironment env) + private ConcurrentDictionary dictGlobalFlipflop = []; + + /// + /// 尝试添加全局触发器 + /// + /// + /// + public async Task RunGlobalFlipflopAsync(IFlowEnvironment env, SingleFlipflopNode singleFlipFlopNode) { - _ = Task.Run(async () => + if (dictGlobalFlipflop.TryAdd(singleFlipFlopNode, new CancellationTokenSource())) { - // 设置对象 - singleFlipFlopNode.MethodDetails.ActingInstance = env.IOC.GetOrRegisterInstantiate(singleFlipFlopNode.MethodDetails.ActingInstanceType); - await FlipflopExecute(env,singleFlipFlopNode); // 启动触发器 - }); + singleFlipFlopNode.MethodDetails.ActingInstance ??= env.IOC.GetOrRegisterInstantiate(singleFlipFlopNode.MethodDetails.ActingInstanceType); + await FlipflopExecuteAsync(env, singleFlipFlopNode, dictGlobalFlipflop[singleFlipFlopNode]); + } } + /// + /// 尝试移除全局触发器 + /// + /// + public void TerminateGlobalFlipflopRuning(SingleFlipflopNode singleFlipFlopNode) + { + if (dictGlobalFlipflop.TryRemove(singleFlipFlopNode, out var cts)) + { + if (!cts.IsCancellationRequested) + { + cts.Cancel(); + } + cts.Dispose(); + } + } + + /// + /// 总结所有全局触发器 + /// + private void TerminateAllGlobalFlipflop() + { + foreach ((var node, var cts) in dictGlobalFlipflop) + { + if (!cts.IsCancellationRequested) + { + cts.Cancel(); + } + cts.Dispose(); + } + dictGlobalFlipflop.Clear(); + } /// /// 启动全局触发器 /// /// 流程运行全局环境 /// 需要全局监听信号的触发器 /// - private async Task FlipflopExecute(IFlowEnvironment env,SingleFlipflopNode singleFlipFlopNode) + private async Task FlipflopExecuteAsync(IFlowEnvironment env, SingleFlipflopNode singleFlipFlopNode, CancellationTokenSource cts) { - var context = new DynamicContext(env); // 启动全局触发器时新建上下文 - while (!_flipFlopCts.IsCancellationRequested) + while (!_flipFlopCts.IsCancellationRequested && !cts.IsCancellationRequested) { try { - var newFlowData = await singleFlipFlopNode.ExecutingAsync(context); // 获取触发器等待Task + var waitTask = singleFlipFlopNode.ExecutingAsync(context); // 获取触发器等待Task + var newFlowData = await waitTask; await NodeModelBase.RefreshFlowDataAndExpInterrupt(context, singleFlipFlopNode, newFlowData); // 全局触发器触发后刷新该触发器的节点数据 if (singleFlipFlopNode.NextOrientation != ConnectionType.None) { @@ -339,32 +380,6 @@ namespace Serein.NodeFlow } } - //MethodDetails md = singleFlipFlopNode.MethodDetails; - //var del = md.MethodDelegate; - //object?[]? parameters = singleFlipFlopNode.GetParameters(context, singleFlipFlopNode.MethodDetails); // 启动全局触发器时获取入参参数 - //// 设置委托对象 - //var func = md.ExplicitDatas.Length == 0 ? - // (Func>)del : - // (Func>)del; - - //if(t) - //{ - // IFlipflopContext flipflopContext = await ((Func>)del.Clone()).Invoke(md.ActingInstance);// 开始等待全局触发器的触发 - // var connectionType = flipflopContext.State.ToContentType(); - // if (connectionType != ConnectionType.None) - // { - // await GlobalFlipflopExecute(context, singleFlipFlopNode, connectionType, cts); - // } - //} - //else - //{ - // IFlipflopContext flipflopContext = await ((Func>)del.Clone()).Invoke(md.ActingInstance, parameters);// 开始等待全局触发器的触发 - // var connectionType = flipflopContext.State.ToContentType(); - // if (connectionType != ConnectionType.None) - // { - // await GlobalFlipflopExecute(context, singleFlipFlopNode, connectionType, cts); - // } - //} } diff --git a/NodeFlow/Model/SingleFlipflopNode.cs b/NodeFlow/Model/SingleFlipflopNode.cs index dc2a4b2..3161a1b 100644 --- a/NodeFlow/Model/SingleFlipflopNode.cs +++ b/NodeFlow/Model/SingleFlipflopNode.cs @@ -19,6 +19,7 @@ namespace Serein.NodeFlow.Model //} + public override async Task ExecutingAsync(IDynamicContext context) { #region 执行前中断 @@ -26,11 +27,6 @@ namespace Serein.NodeFlow.Model { string guid = this.Guid.ToString(); var cancelType = await this.DebugSetting.GetInterruptTask(); - //if (cancelType == CancelType.Discard) - //{ - // this.NextOrientation = ConnectionType.None; - // return null; - //} await Console.Out.WriteLineAsync($"[{this.MethodDetails.MethodName}]中断已{cancelType},开始执行后继分支"); } #endregion @@ -42,11 +38,21 @@ namespace Serein.NodeFlow.Model try { // 调用委托并获取结果 - Task flipflopTask = md.ExplicitDatas.Length switch + //Task flipflopTask = md.ExplicitDatas.Length switch + //{ + // 0 => ((Func>)del).Invoke(md.ActingInstance), + // _ => ((Func>)del).Invoke(md.ActingInstance, GetParameters(context, this, md)), // 执行流程中的触发器方法时获取入参参数 + //}; + Task flipflopTask; + if (md.ExplicitDatas.Length == 0) { - 0 => ((Func>)del).Invoke(md.ActingInstance), - _ => ((Func>)del).Invoke(md.ActingInstance, GetParameters(context, this, md)), // 执行流程中的触发器方法时获取入参参数 - }; + flipflopTask = ((Func>)del).Invoke(md.ActingInstance); + } + else + { + var parameters = GetParameters(context, this, md); + flipflopTask = ((Func>)del).Invoke(md.ActingInstance, parameters); + } IFlipflopContext flipflopContext = (await flipflopTask) ?? throw new FlipflopException("没有返回上下文"); NextOrientation = flipflopContext.State.ToContentType(); @@ -58,12 +64,14 @@ namespace Serein.NodeFlow.Model } catch (FlipflopException ex) { + await Console.Out.WriteLineAsync(ex.ToString()); NextOrientation = ConnectionType.None; RuningException = ex; return null; } catch (Exception ex) { + await Console.Out.WriteLineAsync(ex.ToString()); NextOrientation = ConnectionType.IsError; RuningException = ex; return null; diff --git a/NodeFlow/Tool/MethodDetailsHelper.cs b/NodeFlow/Tool/MethodDetailsHelper.cs index f304788..d5cb962 100644 --- a/NodeFlow/Tool/MethodDetailsHelper.cs +++ b/NodeFlow/Tool/MethodDetailsHelper.cs @@ -4,6 +4,7 @@ using Serein.Library.Core.NodeFlow; using Serein.Library.Entity; using System; using System.Collections.Concurrent; +using System.ComponentModel; using System.Reflection; namespace Serein.NodeFlow.Tool; @@ -89,6 +90,9 @@ public static class MethodDetailsHelperTmp } + + private static ConcurrentDictionary ConvertorInstance =[]; + /// /// 获取参数信息 /// @@ -100,36 +104,90 @@ public static class MethodDetailsHelperTmp return parameters.Select((it, index) => { Type paremType; - var attribute = it.GetCustomAttribute(); - if (attribute is not null) + + if (it.GetCustomAttribute() is EnumTypeConvertorAttribute attribute1 && attribute1 is not null) { - // 存在选择器 - paremType = attribute.EnumType; + // 存在类型选择器 + paremType = attribute1.EnumType; + return GetExplicitDataOfParameter(it, index, paremType, true); + } + else if (it.GetCustomAttribute() is BindConvertorAttribute attribute2 && attribute2 is not null) + { + paremType = attribute2.EnumType; + + string key = typeof(IEnumConvertor<,>).FullName + attribute2.EnumType.FullName + attribute2.ConvertorType.FullName; + + if (!ConvertorInstance.ContainsKey(key)) + { + Type enumConvertorType = typeof(IEnumConvertor<,>); + // 定义具体类型 + Type specificType = enumConvertorType.MakeGenericType(attribute2.EnumType, it.ParameterType); + // 获取实现类的类型 + Type implementorType = attribute2.ConvertorType; + // 创建实现类的实例 + object instance = Activator.CreateInstance(implementorType); + // 调用 Convert 方法 + MethodInfo convertMethod = implementorType.GetMethod("Convertor"); + ConvertorInstance[key] = (instance, convertMethod); + } + + Func func = (enumValue) => + { + (var obj,var methodInfo) = ConvertorInstance[key]; + return methodInfo?.Invoke(obj, [enumValue]); + }; + // 确保实例实现了所需接口 + ExplicitData ed = GetExplicitDataOfParameter(it, index, paremType, true, func); + + return ed; } else { - paremType = it.ParameterType; + return GetExplicitDataOfParameter(it, index, it.ParameterType, it.HasDefaultValue); } - string explicitTypeName = GetExplicitTypeName(paremType); - var items = GetExplicitItems(paremType, explicitTypeName); - if ("Bool".Equals(explicitTypeName)) explicitTypeName = "Select"; // 布尔值 转为 可选类型 - return new ExplicitData - { - IsExplicitData = attribute is null ? it.HasDefaultValue: true, - Index = index, - ExplicitTypeName = explicitTypeName, - ExplicitType = paremType, - DataType = it.ParameterType, - ParameterName = it.Name, - DataValue = it.HasDefaultValue ? it.DefaultValue.ToString() : "", - Items = items.ToArray(), - }; - - - + //string explicitTypeName = GetExplicitTypeName(paremType); + //var items = GetExplicitItems(paremType, explicitTypeName); + //if ("Bool".Equals(explicitTypeName)) explicitTypeName = "Select"; // 布尔值 转为 可选类型 + //return new ExplicitData + //{ + // IsExplicitData = attribute is null ? it.HasDefaultValue: true, + // Index = index, + // ExplicitTypeName = explicitTypeName, + // ExplicitType = paremType, + // DataType = it.ParameterType, + // ParameterName = it.Name, + // DataValue = it.HasDefaultValue ? it?.DefaultValue?.ToString() : "", + // Items = items.ToArray(), + //}; }).ToArray(); } + private static ExplicitData GetExplicitDataOfParameter(ParameterInfo parameterInfo, + int index, + Type paremType, + bool isExplicitData, + Func func = null) + { + + string explicitTypeName = GetExplicitTypeName(paremType); + var items = GetExplicitItems(paremType, explicitTypeName); + if ("Bool".Equals(explicitTypeName)) explicitTypeName = "Select"; // 布尔值 转为 可选类型 + return new ExplicitData + { + IsExplicitData = isExplicitData, //attribute is null ? parameterInfo.HasDefaultValue : true, + Index = index, + ExplicitTypeName = explicitTypeName, + ExplicitType = paremType, + Convertor = func, + DataType = parameterInfo.ParameterType, + ParameterName = parameterInfo.Name, + DataValue = parameterInfo.HasDefaultValue ? parameterInfo?.DefaultValue?.ToString() : "", + Items = items.ToArray(), + }; + } + + + /// /// 判断使用输入器还是选择器 /// diff --git a/WorkBench/MainWindow.xaml.cs b/WorkBench/MainWindow.xaml.cs index bfd0d44..c41dbfd 100644 --- a/WorkBench/MainWindow.xaml.cs +++ b/WorkBench/MainWindow.xaml.cs @@ -213,7 +213,7 @@ namespace Serein.WorkBench private LogWindow InitConsoleOut() { var logWindow = new LogWindow(); - logWindow.Show(); + //logWindow.Show(); // 重定向 Console 输出 var logTextWriter = new LogTextWriter(msg => logWindow.AppendText(msg), () => logWindow.Clear()); ; Console.SetOut(logTextWriter); diff --git a/packages/IoTClient.1.0.40/.signature.p7s b/packages/IoTClient.1.0.40/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..e87f6b809180be10943e2e06280da037b0813609 GIT binary patch literal 11514 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

t$^_1A~1Q=yfk#&?q@B|d)@;UVo*Sj8! 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 literal 0 HcmV?d00001 diff --git a/packages/IoTClient.1.0.40/lib/netstandard2.0/IoTClient.xml b/packages/IoTClient.1.0.40/lib/netstandard2.0/IoTClient.xml new file mode 100644 index 0000000..8c9ec10 --- /dev/null +++ b/packages/IoTClient.1.0.40/lib/netstandard2.0/IoTClient.xml @@ -0,0 +1,4113 @@ + + + + IoTClient + + + +

+ 是否是连接的 + + + + + 警告日志委托 + + + + + 构造函数 + + COM端口名称 + 波特率 + 数据位 + 停止位 + 奇偶校验 + 超时时间(毫秒) + 大小端设置 + PLC地址 + + + + 发送报文,并获取响应报文 + + + + + + + 读取数据 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + + + + + 读取Int16 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + 读取UInt16 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + 读取Int32 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt32 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Int64 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt64 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Float + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Double + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取线圈 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取离散 + + + + + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 分批读取(批量读取,内部进行批量计算读取) + + + + + + + 分批读取 + + + 如果读取异常,重试次数 + + + + + 线圈写入 + + + + + + + + + 写入 + + + + + + + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 获取读取命令 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + + + + + 获取写入命令 + + 寄存器地址 + + 站号 + 功能码 + + + + + 获取线圈写入命令 + + 寄存器地址 + + 站号 + 功能码 + + + + + + + + + + 警告日志委托 + 为了可用性,会对异常网络进行重试。此类日志通过委托接口给出去。 + + + + + 是否是连接的 + + + + + 打开连接 + + + + + + 关闭连接 + + + + + + 发送报文,并获取响应报文 + + + + + + + 读取数据 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + 设置构造函数中的大小端 + + + + + 读取Int16 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取UInt16 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + 读取Int32 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取UInt32 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取Int64 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取UInt64 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取Float + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取Double + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取线圈 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 读取离散 + + + + + + + + + 从批量读取的数据字节提取对应的地址数据 + + + + + + + + + 分批读取(批量读取,内部进行批量计算读取) + + + 如果读取异常,重试次数 + + + + + 线圈写入 + + + + + + + + + 写入 + + + + + + + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + ModbusAscii + + + + + 构造函数 + + COM端口名称 + 波特率 + 数据位 + 停止位 + 奇偶校验 + 超时时间(毫秒) + 大小端设置 + PLC地址 + + + + 读取数据 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + + + + + 线圈写入 + + + + + + + + + 写入 + + + + + + + + + + ModbusRtu协议客户端 + + + + + 构造函数 + + COM端口名称 + 波特率 + 数据位 + 停止位 + 奇偶校验 + 超时时间(毫秒) + 大小端设置 + PLC地址 + + + + 读取数据 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + + + + + + 线圈写入 + + + + + + + + + 写入 + + + + + + + + + + Tcp的方式发送ModbusRtu协议报文 - 客户端 + + + + + 是否是连接的 + + + + + 构造函数 + + ip地址 + 端口 + 超时时间(毫秒) + 大小端设置 + PLC地址 + + + + 构造函数 + + ip地址和端口 + 超时时间(毫秒) + 大小端设置 + + + + 发送报文,并获取响应报文 + + + + + + + + 读取数据 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + + + + + + 读取Int16 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + 读取UInt16 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + 读取Int32 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt32 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Int64 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt64 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Float + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Double + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取线圈 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取离散 + + + + + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 分批读取(批量读取,内部进行批量计算读取) + + + + + + + 分批读取 + + + 如果读取异常,重试次数 + + + + + 线圈写入 + + + + + + + + + 写入 + + + + + + + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 获取读取命令 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + + + + + 获取写入命令 + + 寄存器地址 + + 站号 + 功能码 + + + + + 获取线圈写入命令 + + 寄存器地址 + + 站号 + 功能码 + + + + + ModbusTcp协议客户端 + + + + + 是否是连接的 + + + + + + + + 超时时间(毫秒) + 大小端设置 + PLC地址 + PLC地址 + + + + + + + + 超时时间(毫秒) + 大小端设置 + PLC地址 + + + + 连接 + + + + + + 发送报文,并获取响应报文(建议使用SendPackageReliable,如果异常会自动重试一次) + + + + + + + 读取数据 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + 大小端转换 + + + + + 读取Int16类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + + 读取UInt16类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 按位的方式读取 + + 寄存器地址:如1.00 ... 1.14、1.15 + 站号 + 功能码 + 按位取值从左边开始取 + + + + + 读取UInt16类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Int32类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Int32类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt32类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt32类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Int64类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Int64类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt64类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取UInt64类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Float类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Float类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Double类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取Double类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取字符串 + + 地址 + 站号 + 功能码 + 编码 + 读取长度 + + + + + 读取线圈类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取线圈类型数据 + + 寄存器起始地址 + 站号 + 功能码 + + + + + 读取离散类型数据 + + 读取地址 + 站号 + 功能码 + + + + + 读取离散类型数据 + + 读取地址 + 站号 + 功能码 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 从批量读取的数据字节提取对应的地址数据 + + 批量读取的起始地址 + 读取地址 + 批量读取的值 + + + + + 分批读取(批量读取,内部进行批量计算读取) + + + + + + + 分批读取 + + + 如果读取异常,重试次数 + + + + + 线圈写入 + + 写入地址 + + 站号 + 功能码 + + + + 写入 + + 写入地址 + 写入字节数组 + 站号 + 功能码 + 大小端设置 + + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写入 + + 寄存器地址 + 写入的值 + 站号 + 功能码 + + + + 写字符串 + + 地址 + 字符串值 + 站号 + 功能码 + 编码 + + + + + 获取随机校验头 + + + + + + 获取读取命令 + + 寄存器起始地址 + 站号 + 功能码 + 读取长度 + + + + + 获取写入命令 + + 寄存器地址 + 批量读取的值 + 站号 + 功能码 + + + + + 获取线圈写入命令 + + 寄存器地址 + + 站号 + 功能码 + + + + + (AB)罗克韦尔客户端 Beta + https://blog.csdn.net/lishiming0308/article/details/85243041 + + + + + 连接地址 + + + + + 是否是连接的 + + + + + 超时时间 + + + + + 插槽 + + + + + 会话句柄(由AB PLC生成) + + + + + 注册命令 + + + + + 打开连接(如果已经是连接状态会先关闭再打开) + + + + + + 发送报文,并获取响应报文(建议使用SendPackageReliable,如果异常会自动重试一次) + + + + + + + 读取Boolean + + 地址 + + + + + 读取byte + + + + + + + 读取Int16 + + + + + + + 读取UInt16 + + 地址 + + + + + 读取Int32 + + 地址 + + + + + 读取UInt32 + + 地址 + + + + + 读取Int64 + + 地址 + + + + + 读取UInt64 + + 地址 + + + + + 读取Float + + 地址 + + + + + 读取Double + + 地址 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + 数据类型 + + + + + 地址信息解析 + + + + + + + + 获取Read命令 + + + + + + + + + 获取Write命令 + + + + + + + + + + 后面内容长度 + + + + + + + 三菱plc客户端 + + + + + 版本 + + + + + 连接地址 + + + + + 是否是连接的 + + + + + 构造函数 + + 三菱型号版本 + ip地址 + 端口 + 超时时间 + + + + 打开连接(如果已经是连接状态会先关闭再打开) + + + + + + 发送报文,并获取响应报文(建议使用SendPackageReliable,如果异常会自动重试一次) + + + + + + + 发送报文,并获取响应报文 + + + + + + + + 读取数据 + + 地址 + + + + + + + 读取Boolean + + 地址 + + + + + 读取Boolean + + + + + + + + 读取Int16 + + 地址 + + + + + 读取Int16 + + + + + + + + 读取UInt16 + + 地址 + + + + + 读取Int32 + + 地址 + + + + + 读取UInt32 + + 地址 + + + + + 读取Int64 + + 地址 + + + + + 读取UInt64 + + 地址 + + + + + 读取Float + + 地址 + + + + + 读取Double + + 地址 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + + + + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + 数据类型 + + + + + 获取Qna_3E读取命令 + + + + + + + + + + 获取A_1E读取命令 + + + + + + + + + + 获取Qna_3E写入命令 + + + + + + + + + + 获取A_1E写入命令 + + + + + + + + + + Qna_3E地址解析 + + + + + + + + A_1E地址解析 + + + + + + + + Omron解析后的地址信息 + + + + + 开始地址 + + + + + 类型的代号 + + + + + 位操作 + + + + + 字操作 + + + + + 位操作 解析地址 + + + + + 是否是bit + + + + + + + + + + 欧姆龙PLC 客户端 + https://flat2010.github.io/2020/02/23/Omron-Fins%E5%8D%8F%E8%AE%AE/ + + + + + 基础命令 + + + + + 版本 + + + + + 连接地址 + + + + + 是否是连接的 + + + + + DA2(即Destination unit address,目标单元地址) + 0x00:PC(CPU) + 0xFE: SYSMAC NET Link Unit or SYSMAC LINK Unit connected to network; + 0x10~0x1F:CPU总线单元 ,其值等于10 + 单元号(前端面板中配置的单元号) + + + + + SA1 客户端节点编号 + + + + + DA1 服务器节点编号 + + + + + + + + + + + + + + 打开连接(如果已经是连接状态会先关闭再打开) + + + + + + 发送报文,并获取响应报文(建议使用SendPackageReliable,如果异常会自动重试一次) + + + + + + + 读取数据 + + 地址 + + + 返回值是否设置大小端 + + + + + 读取Boolean + + 地址 + + + + + 读取byte + + + + + + + 读取Int16 + + + + + + + 读取UInt16 + + 地址 + + + + + 读取Int32 + + 地址 + + + + + 读取UInt32 + + 地址 + + + + + 读取Int64 + + 地址 + + + + + 读取UInt64 + + 地址 + + + + + 读取Float + + 地址 + + + + + 读取Double + + 地址 + + + + + 写入数据 + + 地址 + 值 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + 数据类型 + + + + + 地址信息解析 + + + + + + + + + 获取Read命令 + + + + + + + + 获取Write命令 + + + + + + + + 批量读取 + + + 此参数设置无实际效果 + + + + + 西门子客户端 + http://www.360doc.cn/mip/763580999.html + + + + + CPU版本 + + + + + 超时时间 + + + + + 是否是连接的 + + + + + 版本 + + + + + 连接地址 + + + + + 插槽号 + + + + + 机架号 + + + + + 构造函数 + + CPU版本 + IP地址和端口号 + 超时时间 + PLC的插槽号 + PLC的机架号 + + + + 构造函数 + + CPU版本 + IP地址 + 端口号 + PLC的槽号 + PLC的机架号 + 超时时间 + + + + 打开连接(如果已经是连接状态会先关闭再打开) + + + + + + 发送报文,并获取响应报文(建议使用SendPackageReliable,如果异常会自动重试一次) + + + + + + + 读取字节数组 + + 地址 + 读取长度 + 是否Bit类型 + + + + + 分批读取,默认按19个地址打包读取 + + 地址集合 + 批量读取数量 + + + + + 最多只能批量读取19个数据? + + + + + + + 读取Boolean + + 地址 + + + + + 读取Boolean + + 地址 + 读取数量 + + + + + + + + + + + + 读取Int16 + + 地址 + 读取数量 + + + + + 读取Int16 + + 地址 + + + + + 定时读取,回调更新 + + + + + + + 读取Int16 + + 地址 + 读取数量 + + + + + 读取UInt16 + + 地址 + + + + + 读取UInt16 + + 地址 + 读取数量 + + + + + 读取Int32 + + 地址 + + + + + 读取Int32 + + 地址 + 读取数量 + + + + + 读取UInt32 + + 地址 + + + + + 读取Int32 + + 地址 + 读取数量 + + + + + 读取Int64 + + 地址 + + + + + 读取Int32 + + 地址 + 读取数量 + + + + + 读取UInt64 + + 地址 + + + + + 读取Int32 + + 地址 + 读取数量 + + + + + 读取Float + + 地址 + + + + + 读取Float + + 地址 + 读取数量 + + + + + 读取Double + + 地址 + + + + + 读取Double + + 地址 + 读取数量 + + + + + 读取String + + 地址 + + + + + 读取字符串 + + 地址 + 读取长度 + + + + + 批量写入 + TODO 可以重构后面的Write 都走BatchWrite + + + + + + + 分批写入,默认按10个地址打包读取 + + 地址集合 + 批量读取数量 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + 数据类型 + + + + + 获取区域类型代码 + + + + + + + 转换成写入需要的通讯信息 + + + + + + + + 获取读指令 + + + + + + 获取读指令 + + + + + + + 获取写指令 + + + + + + + 获取写指令 + + + + + + + 获取需要读取的长度 + + + + + + + 获取读取PLC地址的开始位置 + + + + + + + 地址 + + + + + 数据类型 + + + + + 站号 + + + + + 功能码 + + + + + 地址 + + + + + 站号 + + + + + 功能码 + + + + + 三菱解析后的地址信息 + + + + + 开始地址 + + + + + 类型的代号 + + + + + 类型的代号 + + + + + 数据的类型,0代表按字,1代表按位 + + + + + 指示地址是10进制,还是16进制的 + + + + + 数据类型 + + + + + 西门子[写]解析后的地址信息 + + + + + 要写入的数据 + + + + + 赋值 + + + + + Siemens命令常量 + + + + + Head头读取长度 + + + + + 第一次初始化指令交互报文 + + + + + 第二次初始化指令交互报文 + + + + + 第一次初始化指令交互报文 + + + + + 第二次初始化指令交互报文 + + + + + 第一次初始化指令交互报文 + + + + + 第二次初始化指令交互报文 + + + + + 西门子型号版本 + + + + + 未定义 + + + + + 西门子S7-200 【需要配置网络模块】 + + + + + 西门子S7-200Smar + + + + + 西门子S7-300 + + + + + 西门子S7-400 + + + + + 西门子S7-1200 + + + + + 西门子S7-1500 + + + + + CRC16验证 + + + + + 验证CRC16校验码 + + 校验数据 + 多项式码 + 校验码初始值 + + + + + 计算CRC16校验码 + + 校验数据 + 多项式码 + 校验码初始值 + + + + + 数据转换 + + + + + 字节数组转16进制字符 + + + + + + + 16进制字符串转字节数组 + + + 严格模式(严格按两个字母间隔一个空格) + + + + + Asciis字符串数组字符串装字节数组 + + + + + + + + Asciis数组字符串装字节数组 + 如:30 31 =》 00 01 + + + + + + + 字节数组转换成Ascii字节数组 + 如:00 01 => 30 31 + + + + + + + Int转二进制 + + + 补0长度 + + + + + 二进制转Int + + + + + + + 大小端转换 + + + + + 字节格式转换 + + + + 是否经过了反转 + + + + + 字节格式转换 + + + + 是否经过了反转 + + + + + + + + + + 去重 + + + + + + + + + + LRC验证 + + + + + + + + + + + + + + + + + + + 帮助类 + + + + + 是否为异常功能码 + + + + + + + + 异常码描述 + https://www.likecs.com/show-204655077.html?sc=5546 + + + + + + + + + + + 安全关闭 + + + + + + 三菱型号版本 + + + + + 未定义 + + + + + 三菱 MC A-1E帧 + + + + + 三菱 MC Qna-3E帧 + + + + + 数据类型 + + + + + 未定义 + + + + + Bool + + + + + Byte + + + + + Int16 + + + + + UInt16 + + + + + Int32 + + + + + UInt32 + + + + + Int64 + + + + + UInt64 + + + + + Float + + + + + Double + + + + + String + + + + + 字节格式 + https://cloud.tencent.com/developer/article/1601823 + + + + + Big-Endian + 大端序 ABCD + + + + + Big-endian byte swap(大端Byte swap) + 中端序 BADC, PDP-11 风格 + + + + + Little-endian byte swap(小端Byte swap) + 中端序 CDAB, Honeywell 316 风格 + + + + + Little-Endian + 小端序 DCBA + + + + + 西门子解析后的地址信息 + + + + + 原地址 + + + + + 数据类型 + + + + + 区域类型 + + + + + DB块编号 + + + + + 开始地址(西门子plc地址为8个位的长度,这里展开实际的开始地址。) + + + + + 读取或写入长度 + + + + + 是否读取或写入bit类型 + + + + + 以太网形式 + + + + + IPEndPoint + + + + + IIoTClient 接口 + + + + + 版本 + + + + + 是否是连接的 + + + + + 警告日志委托 + 为了可用性,会对异常网络进行重试。此类日志通过委托接口给出去。 + + + + + 打开连接(如果已经是连接状态会先关闭再打开) + + + + + + 关闭连接 + + + + + + 发送报文,并获取响应报文 + + 发送命令 + + + + + 分批读取 + + 地址集合 + 批量读取数量 + + + + + 读取Byte + + + + + + + 读取Boolean + + 地址 + + + + + 读取UInt16 + + 地址 + + + + + 读取Int16 + + 地址 + + + + + 读取UInt32 + + 地址 + + + + + 读取Int32 + + 地址 + + + + + 读取UInt64 + + 地址 + + + + + 读取Int64 + + 地址 + + + + + 读取Float + + 地址 + + + + + 读取Double + + 地址 + + + + + 读取String + + 地址 + + + + + 分批写入 + + 地址集合 + 批量读取数量 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + + + + + 写入数据 + + 地址 + 值 + 数据类型 + + + + + 请求结果 + + + + + 是否成功 + + + + + 异常消息 + + + + + 异常Code + 408 连接失败 + + + + + 详细异常 + + + + + 异常集合 + + + + + 请求报文 + + + + + 响应报文 + + + + + 请求报文2 + + + + + 响应报文2 + + + + + 耗时(毫秒) + + + + + 结束时间统计 + + + + + 开始时间 + + + + + 设置异常信息和Succeed状态 + + + + + + + 添加异常到异常集合 + + + + + 请求结果 + + + + + 数据结果 + + + + + 结束时间统计 + + + + + 赋值 + + + + + 设置异常信息和Succeed状态 + + + + + + + SerialPort基类 + + + + + 串行端口对象 + + + + + 是否自动打开关闭 + + + + + 获取设备上的COM端口集合 + + + + + + 连接 + + + + + + 打开连接 + + + + + + 关闭连接 + + + + + + 关闭连接 + + + + + + 读取 + + + + + + + 日记记录委托定义 + + + + + + + Socket基类 + + + + + 警告日志委托 + 为了可用性,会对异常网络进行重试。此类日志通过委托接口给出去。 + + + + + 分批缓冲区大小 + + + + + Socket实例 + + + + + 是否自动打开关闭 + + + + + 连接(如果已经是连接状态会先关闭再打开) + + + + + + 打开连接(如果已经是连接状态会先关闭再打开) + + + + + + 关闭连接 + + + + + + 关闭连接 + + + + + + Socket读取 + + socket + 读取长度 + + + + + 发送报文,并获取响应报文(建议使用SendPackageReliable,如果异常会自动重试一次) + + 发送命令 + + + + + 发送报文,并获取响应报文(如果网络异常,会自动进行一次重试) + TODO 重试机制应改成用户主动设置 + + + + + + diff --git a/packages/System.IO.Ports.4.6.0/.signature.p7s b/packages/System.IO.Ports.4.6.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..bc68875dfeaf56a970c9d85e9a9cfeb7766c2eb3 GIT binary patch literal 18703 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%0A+Iy>Yl@k6ug&Tp&1# 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.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