diff --git a/.vs/IoTGateway/DesignTimeBuild/.dtbcache.v2 b/.vs/IoTGateway/DesignTimeBuild/.dtbcache.v2 index ed87df4..b0c4795 100644 Binary files a/.vs/IoTGateway/DesignTimeBuild/.dtbcache.v2 and b/.vs/IoTGateway/DesignTimeBuild/.dtbcache.v2 differ diff --git a/.vs/IoTGateway/project-colors.json b/.vs/IoTGateway/project-colors.json index 08d64a6..d28775e 100644 --- a/.vs/IoTGateway/project-colors.json +++ b/.vs/IoTGateway/project-colors.json @@ -85,7 +85,27 @@ "ProjectGuid": "dabb562d-5eb7-4f9d-90ef-424c2bf63a4d", "DisplayName": "DriverOPCUaClient", "ColorIndex": 15 + }, + "0602dc6c-fb26-41b1-972e-298679826e3f": { + "ProjectGuid": "0602dc6c-fb26-41b1-972e-298679826e3f", + "DisplayName": "DriverMTConnect", + "ColorIndex": 0 + }, + "6d926cd7-5ff9-489b-9049-7030ae8059c9": { + "ProjectGuid": "6d926cd7-5ff9-489b-9049-7030ae8059c9", + "DisplayName": "DriverMitsubishi", + "ColorIndex": 1 + }, + "92e2bb84-c7ec-418e-879a-40b891cae6e7": { + "ProjectGuid": "92e2bb84-c7ec-418e-879a-40b891cae6e7", + "DisplayName": "DriverOmronFins", + "ColorIndex": 2 + }, + "c8c82c05-defd-4e79-9772-b5ea3d2e5d88": { + "ProjectGuid": "c8c82c05-defd-4e79-9772-b5ea3d2e5d88", + "DisplayName": "DriverAllenBradley", + "ColorIndex": 3 } }, - "NextColorIndex": 0 + "NextColorIndex": 4 } \ No newline at end of file diff --git a/.vs/IoTGateway/v17/.futdcache.v1 b/.vs/IoTGateway/v17/.futdcache.v1 index d1fdcd6..d09b8b8 100644 Binary files a/.vs/IoTGateway/v17/.futdcache.v1 and b/.vs/IoTGateway/v17/.futdcache.v1 differ diff --git a/.vs/IoTGateway/v17/.suo b/.vs/IoTGateway/v17/.suo index f2121a5..9b1b4c1 100644 Binary files a/.vs/IoTGateway/v17/.suo and b/.vs/IoTGateway/v17/.suo differ diff --git a/.vs/IoTGateway/v17/fileList.bin b/.vs/IoTGateway/v17/fileList.bin index ec1a1e6..ffdd117 100644 Binary files a/.vs/IoTGateway/v17/fileList.bin and b/.vs/IoTGateway/v17/fileList.bin differ diff --git a/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs b/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs index 1aefdab..e419ae9 100644 --- a/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs +++ b/IoTGateway.ViewModel/BasicData/DeviceVariableVMs/DeviceVariableListVM.cs @@ -9,12 +9,14 @@ using System.ComponentModel.DataAnnotations; using IoTGateway.Model; using PluginInterface; using Plugin; +using Newtonsoft.Json; namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs { public partial class DeviceVariableListVM : BasePagedListVM { public List AllDevices { get; set; } + public List DevicesTree { get; set; } protected override List InitGridAction() { return new List @@ -36,15 +38,20 @@ namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs .OrderBy(x => x.Parent.Index).ThenBy(x => x.Parent.DeviceName) .OrderBy(x => x.Index).ThenBy(x => x.DeviceName) .GetTreeSelectListItems(Wtm, x => x.DeviceName); + + var deviceService = Wtm.ServiceProvider.GetService(typeof(DeviceService)) as DeviceService; foreach (var device in AllDevices) { foreach (var item in device.Children) { + var deviceThread = deviceService.DeviceThreads.Where(x => x.Device.ID.ToString() == (string)item.Value).FirstOrDefault(); + item.Text = item.Text; - item.Icon = "layui-icon layui-icon-link"; + item.Icon = deviceThread.Device.AutoStart ? (deviceThread.Driver.IsConnected ? "layui-icon-link" : "layui-icon-unlink") : "layui-icon-pause"; item.Expended = true; } } + DevicesTree = GetLayuiTree(AllDevices); base.InitListVM(); } protected override IEnumerable> InitGridHeader() @@ -114,6 +121,60 @@ namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs return query; } + private List GetLayuiTree(List tree, int level = 0) + { + List rv = new List(); + foreach (var s in tree) + { + var news = new LayuiTreeItem + { + Id = (string)s.Value, + Title = s.Text, + Icon = s.Icon, + Url = s.Url, + Expand = s.Expended, + Level = level, + Checked = s.Selected + //Children = new List() + }; + if (s.Children != null && s.Children.Count > 0) + { + news.Children = GetLayuiTree(s.Children, level + 1); + if (news.Children.Where(x => x.Checked == true || x.Expand == true).Count() > 0) + { + news.Expand = true; + } + } + rv.Add(news); + } + return rv; + } + public class LayuiTreeItem + { + [JsonProperty(PropertyName = "title")] + public string Title { get; set; } + + [JsonProperty(PropertyName = "icon")] + public string Icon { get; set; } + + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + [JsonProperty(PropertyName = "children")] + public List Children { get; set; } + + [JsonProperty(PropertyName = "href")] + public string Url { get; set; } + + [JsonProperty(PropertyName = "spread")] + public bool Expand { get; set; } + + [JsonProperty(PropertyName = "checked")] + public bool Checked { get; set; } + + [JsonProperty(PropertyName = "level")] + public int Level { get; set; } + } } public class DeviceVariable_View : DeviceVariable diff --git a/IoTGateway.sln b/IoTGateway.sln index e21106d..ebda7cf 100644 --- a/IoTGateway.sln +++ b/IoTGateway.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31313.79 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31919.166 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IoTGateway", "IoTGateway\IoTGateway.csproj", "{68ABBDF2-1485-4756-9A94-6AFA874D69A3}" EndProject @@ -35,6 +35,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DriverOPCUaClient", "Plugin EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DriverMTConnect", "Plugins\Drivers\DriverMTConnect\DriverMTConnect.csproj", "{0602DC6C-FB26-41B1-972E-298679826E3F}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DriverMitsubishi", "Plugins\Drivers\DriverMitsubishi\DriverMitsubishi.csproj", "{6D926CD7-5FF9-489B-9049-7030AE8059C9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DriverOmronFins", "Plugins\Drivers\OmronFins\DriverOmronFins.csproj", "{92E2BB84-C7EC-418E-879A-40B891CAE6E7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DriverAllenBradley", "Plugins\Drivers\DriverAllenBradley\DriverAllenBradley.csproj", "{C8C82C05-DEFD-4E79-9772-B5EA3D2E5D88}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -93,6 +99,18 @@ Global {0602DC6C-FB26-41B1-972E-298679826E3F}.Debug|Any CPU.Build.0 = Debug|Any CPU {0602DC6C-FB26-41B1-972E-298679826E3F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0602DC6C-FB26-41B1-972E-298679826E3F}.Release|Any CPU.Build.0 = Release|Any CPU + {6D926CD7-5FF9-489B-9049-7030AE8059C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D926CD7-5FF9-489B-9049-7030AE8059C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D926CD7-5FF9-489B-9049-7030AE8059C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D926CD7-5FF9-489B-9049-7030AE8059C9}.Release|Any CPU.Build.0 = Release|Any CPU + {92E2BB84-C7EC-418E-879A-40B891CAE6E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92E2BB84-C7EC-418E-879A-40B891CAE6E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92E2BB84-C7EC-418E-879A-40B891CAE6E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92E2BB84-C7EC-418E-879A-40B891CAE6E7}.Release|Any CPU.Build.0 = Release|Any CPU + {C8C82C05-DEFD-4E79-9772-B5EA3D2E5D88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8C82C05-DEFD-4E79-9772-B5EA3D2E5D88}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8C82C05-DEFD-4E79-9772-B5EA3D2E5D88}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8C82C05-DEFD-4E79-9772-B5EA3D2E5D88}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -108,6 +126,9 @@ Global {B884FBE3-C8C5-471E-B629-12ECA0FC5DAC} = {52D96C24-2F2F-49B5-9F29-00414DEA41D8} {DABB562D-5EB7-4F9D-90EF-424C2BF63A4D} = {52D96C24-2F2F-49B5-9F29-00414DEA41D8} {0602DC6C-FB26-41B1-972E-298679826E3F} = {52D96C24-2F2F-49B5-9F29-00414DEA41D8} + {6D926CD7-5FF9-489B-9049-7030AE8059C9} = {52D96C24-2F2F-49B5-9F29-00414DEA41D8} + {92E2BB84-C7EC-418E-879A-40B891CAE6E7} = {52D96C24-2F2F-49B5-9F29-00414DEA41D8} + {C8C82C05-DEFD-4E79-9772-B5EA3D2E5D88} = {52D96C24-2F2F-49B5-9F29-00414DEA41D8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1F219808-E6E8-4C1D-B846-41F2F7CF20FA} diff --git a/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml b/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml index 559b26e..8edf80b 100644 --- a/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml +++ b/IoTGateway/Areas/BasicData/Views/DeviceVariable/Index.cshtml @@ -1,18 +1,462 @@ @model IoTGateway.ViewModel.BasicData.DeviceVariableVMs.DeviceVariableListVM @inject IStringLocalizer Localizer; +@using Newtonsoft.Json + +
+
+
+
+
+
+
+
+
+

+ 搜索条件 +
+ 搜索 + +
+

+
+ + +
+ +
+ +
+ +
+ +
+
+ +
+ + + + +
+ +
+ +
+ +
+
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ + + +
+ +
+
+
+ +
+ + +
+ + + + + + + +
+ +
+ + + + + + + + + - - - - - - - - - - - - @@ -45,7 +489,7 @@ //加工值 $('#id' + objmsg.VarId + '_CookedValue').text(objmsg.CookedValue); - $('#id' + objmsg.VarId + '_CookedValue').addClass('animated bounceIn'); + $('#id' + objmsg.VarId + '_CookedValue').addClass('animated bounceIn'); setTimeout(function(){ $('#id' + objmsg.VarId + '_CookedValue').removeClass('bounceIn'); }, 1500); diff --git a/IoTGateway/iotgateway.db b/IoTGateway/iotgateway.db index 444b00c..119f243 100644 Binary files a/IoTGateway/iotgateway.db and b/IoTGateway/iotgateway.db differ diff --git a/IoTGateway/wwwroot/layui/lay/modules/tree.js b/IoTGateway/wwwroot/layui/lay/modules/tree.js index 5776481..726b916 100644 --- a/IoTGateway/wwwroot/layui/lay/modules/tree.js +++ b/IoTGateway/wwwroot/layui/lay/modules/tree.js @@ -1,6 +1,7 @@ /** - @Name:tree 树组件 + @Name:layui.tree 树 + @Author:star1029 @License:MIT */ @@ -27,7 +28,7 @@ layui.define('form', function(exports){ return that; } - //事件 + //事件监听 ,on: function(events, callback){ return layui.onevent.call(this, MOD_NAME, events, callback); } @@ -183,7 +184,7 @@ layui.define('form', function(exports){ if(hasChild){ return ''; }else{ - return ''; + return ''; }; }else{ return ''; @@ -199,8 +200,9 @@ layui.define('form', function(exports){ ,function(){ if(options.isJump && item.href){ return ''+ (item.title || item.label || options.text.defaultNodeName) +''; - }else{ - return ''+ (item.title || item.label || options.text.defaultNodeName) +''; + } else { + return '' + (item.title || item.label || options.text.defaultNodeName) + ''; + //return '' + (item.title || item.label || options.text.defaultNodeName) + ''; } }() ,'' diff --git a/Plugins/Drivers/DriverAllenBradley/AllenBradley.cs b/Plugins/Drivers/DriverAllenBradley/AllenBradley.cs new file mode 100644 index 0000000..05b6bd3 --- /dev/null +++ b/Plugins/Drivers/DriverAllenBradley/AllenBradley.cs @@ -0,0 +1,160 @@ +using IoTClient.Clients.PLC; +using IoTClient.Enums; +using PluginInterface; +using System; +using System.Text; + +namespace DriverAllenBradley +{ + [DriverSupported("AllenBradley")] + [DriverInfoAttribute("AllenBradley", "V1.0.0", "Copyright WHD-IoTClient© 2022-01-15")] + public class AllenBradley : IDriver + { + private AllenBradleyClient plc = null; + #region 配置参数 + + [ConfigParameter("设备Id")] + public Guid DeviceId { get; set; } + + [ConfigParameter("IP地址")] + public string IpAddress { get; set; } = "127.0.0.1"; + + [ConfigParameter("端口号")] + public int Port { get; set; } = 44818; + + [ConfigParameter("超时时间ms")] + public int Timeout { get; set; } = 3000; + + [ConfigParameter("最小通讯周期ms")] + public uint MinPeriod { get; set; } = 3000; + + #endregion + + public AllenBradley(Guid deviceId) + { + DeviceId = deviceId; + } + + + public bool IsConnected + { + get + { + return plc != null && plc.Connected; + } + } + + public bool Connect() + { + try + { + plc = new AllenBradleyClient(IpAddress, Port); + plc.Open(); + } + catch (Exception) + { + return false; + } + return IsConnected; + } + + public bool Close() + { + try + { + plc?.Close(); + return !IsConnected; + } + catch (Exception) + { + + return false; + } + } + + public void Dispose() + { + try + { + plc = null; + } + catch (Exception) + { + + } + } + + [Method("读西门子PLC标准地址", description: "读西门子PLC标准地址")] + public DriverReturnValueModel Read(DriverAddressIoArgModel ioarg) + { + var ret = new DriverReturnValueModel { StatusType = VaribaleStatusTypeEnum.Good }; + + if (plc != null && this.IsConnected) + { + try + { + switch (ioarg.ValueType) + { + case PluginInterface.DataTypeEnum.Bit: + ret.Value = plc.ReadBoolean(ioarg.Address).Value == true ? 1 : 0; + break; + case PluginInterface.DataTypeEnum.Bool: + ret.Value = plc.ReadBoolean(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.UByte: + ret.Value = plc.ReadByte(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Byte: + ret.Value = (sbyte)plc.ReadByte(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint16: + ret.Value =plc.ReadUInt16(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int16: + ret.Value = plc.ReadInt16(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint32: + ret.Value =plc.ReadUInt32(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int32: + ret.Value = plc.ReadInt32(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Float: + ret.Value = plc.ReadFloat(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Double: + ret.Value = plc.ReadDouble(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint64: + ret.Value = plc.ReadUInt64(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int64: + ret.Value = plc.ReadInt64(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.AsciiString: + ret.Value = plc.ReadString(ioarg.Address); + break; + case PluginInterface.DataTypeEnum.Utf8String: + ret.Value = plc.ReadString(ioarg.Address); + break; + default: + break; + } + } + catch (Exception ex) + { + + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = $"读取失败,{ex.Message}"; + } + } + else + { + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = "连接失败"; + } + return ret; + } + + } +} \ No newline at end of file diff --git a/Plugins/Drivers/DriverAllenBradley/DriverAllenBradley.csproj b/Plugins/Drivers/DriverAllenBradley/DriverAllenBradley.csproj new file mode 100644 index 0000000..0269645 --- /dev/null +++ b/Plugins/Drivers/DriverAllenBradley/DriverAllenBradley.csproj @@ -0,0 +1,17 @@ + + + + net5.0 + ../../../IoTGateway/bin/Debug/net5.0/drivers + true + + + + + + + + + + + diff --git a/Plugins/Drivers/DriverMTConnect/MTConnectClient.cs b/Plugins/Drivers/DriverMTConnect/MTConnectClient.cs index 81e70cd..e423222 100644 --- a/Plugins/Drivers/DriverMTConnect/MTConnectClient.cs +++ b/Plugins/Drivers/DriverMTConnect/MTConnectClient.cs @@ -15,7 +15,7 @@ namespace DriverMTConnect public string Uri { get; set; } [ConfigParameter("超时时间ms")] - public uint Timeout { get; set; } = 3000; + public int Timeout { get; set; } = 3000; [ConfigParameter("最小通讯周期ms")] public uint MinPeriod { get; set; } = 3000; @@ -51,6 +51,7 @@ namespace DriverMTConnect try { m_client = new EntityClient(Uri); + m_client.RequestTimeout = Timeout; IsConnected = true; } catch (Exception) diff --git a/Plugins/Drivers/DriverMitsubishi/DriverMitsubishi.csproj b/Plugins/Drivers/DriverMitsubishi/DriverMitsubishi.csproj new file mode 100644 index 0000000..0830062 --- /dev/null +++ b/Plugins/Drivers/DriverMitsubishi/DriverMitsubishi.csproj @@ -0,0 +1,17 @@ + + + + net5.0 + ../../../IoTGateway/bin/Debug/net5.0/drivers + true + + + + + + + + + + + diff --git a/Plugins/Drivers/DriverMitsubishi/Mitsubishi.cs b/Plugins/Drivers/DriverMitsubishi/Mitsubishi.cs new file mode 100644 index 0000000..fae7134 --- /dev/null +++ b/Plugins/Drivers/DriverMitsubishi/Mitsubishi.cs @@ -0,0 +1,164 @@ +using IoTClient.Clients.PLC; +using IoTClient.Enums; +using PluginInterface; +using System; +using System.Text; + +namespace DriverMitsubishi +{ + [DriverSupported("A_1E")] + [DriverSupported("Qna_3E")] + [DriverInfoAttribute("Mitsubishi", "V1.0.0", "Copyright WHD-IoTClient© 2022-01-15")] + public class Mitsubishi : IDriver + { + private MitsubishiClient plc = null; + #region 配置参数 + + [ConfigParameter("设备Id")] + public Guid DeviceId { get; set; } + + [ConfigParameter("PLC类型")] + public MitsubishiVersion CpuType { get; set; } = MitsubishiVersion.Qna_3E; + + [ConfigParameter("IP地址")] + public string IpAddress { get; set; } = "127.0.0.1"; + + [ConfigParameter("端口号")] + public int Port { get; set; } = 6000; + + [ConfigParameter("超时时间ms")] + public int Timeout { get; set; } = 3000; + + [ConfigParameter("最小通讯周期ms")] + public uint MinPeriod { get; set; } = 3000; + + #endregion + + public Mitsubishi(Guid deviceId) + { + DeviceId = deviceId; + } + + + public bool IsConnected + { + get + { + return plc != null && plc.Connected; + } + } + + public bool Connect() + { + try + { + plc = new MitsubishiClient(MitsubishiVersion.Qna_3E, IpAddress, Port); + plc.Open(); + } + catch (Exception) + { + return false; + } + return IsConnected; + } + + public bool Close() + { + try + { + plc?.Close(); + return !IsConnected; + } + catch (Exception) + { + + return false; + } + } + + public void Dispose() + { + try + { + plc = null; + } + catch (Exception) + { + + } + } + + [Method("读西门子PLC标准地址", description: "读西门子PLC标准地址")] + public DriverReturnValueModel Read(DriverAddressIoArgModel ioarg) + { + var ret = new DriverReturnValueModel { StatusType = VaribaleStatusTypeEnum.Good }; + + if (plc != null && this.IsConnected) + { + try + { + switch (ioarg.ValueType) + { + case PluginInterface.DataTypeEnum.Bit: + ret.Value = plc.ReadBoolean(ioarg.Address).Value == true ? 1 : 0; + break; + case PluginInterface.DataTypeEnum.Bool: + ret.Value = plc.ReadBoolean(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.UByte: + ret.Value = plc.ReadByte(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Byte: + ret.Value = (sbyte)plc.ReadByte(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint16: + ret.Value =plc.ReadUInt16(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int16: + ret.Value = plc.ReadInt16(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint32: + ret.Value =plc.ReadUInt32(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int32: + ret.Value = plc.ReadInt32(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Float: + ret.Value = plc.ReadFloat(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Double: + ret.Value = plc.ReadDouble(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint64: + ret.Value = plc.ReadUInt64(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int64: + ret.Value = plc.ReadInt64(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.AsciiString: + ret.Value = plc.ReadString(ioarg.Address); + break; + case PluginInterface.DataTypeEnum.Utf8String: + ret.Value = plc.ReadString(ioarg.Address); + break; + default: + break; + } + } + catch (Exception ex) + { + + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = $"读取失败,{ex.Message}"; + } + } + else + { + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = "连接失败"; + } + return ret; + } + + } +} \ No newline at end of file diff --git a/Plugins/Drivers/DriverModbusMaster/ModbusMaster.cs b/Plugins/Drivers/DriverModbusMaster/ModbusMaster.cs index 440ae77..0af9dbe 100644 --- a/Plugins/Drivers/DriverModbusMaster/ModbusMaster.cs +++ b/Plugins/Drivers/DriverModbusMaster/ModbusMaster.cs @@ -57,7 +57,7 @@ namespace DriverModbusMaster public byte SlaveAddress { get; set; } = 1; [ConfigParameter("超时时间ms")] - public uint Timeout { get; set; } = 3000; + public int Timeout { get; set; } = 3000; [ConfigParameter("最小通讯周期ms")] public uint MinPeriod { get; set; } = 3000; @@ -101,43 +101,61 @@ namespace DriverModbusMaster { case Master_TYPE.Tcp: clientTcp = new TcpClient(IpAddress.ToString(), Port); + clientTcp.ReceiveTimeout = Timeout; + clientTcp.SendTimeout = Timeout; master = ModbusIpMaster.CreateIp(clientTcp); break; case Master_TYPE.Udp: clientUdp = new UdpClient(IpAddress.ToString(), Port); + clientUdp.Client.ReceiveTimeout = Timeout; + clientUdp.Client.SendTimeout = Timeout; master = ModbusIpMaster.CreateIp(clientUdp); break; case Master_TYPE.Rtu: port = new SerialPort(PortName, BaudRate, Parity, DataBits, StopBits); + port.ReadTimeout = Timeout; + port.WriteTimeout = Timeout; port.Open(); adapter = new SerialPortAdapter(port); master = ModbusSerialMaster.CreateRtu(adapter); break; case Master_TYPE.RtuOnTcp: clientTcp = new TcpClient(IpAddress.ToString(), Port); + clientTcp.ReceiveTimeout = Timeout; + clientTcp.SendTimeout = Timeout; master = ModbusSerialMaster.CreateRtu(clientTcp); break; case Master_TYPE.RtuOnUdp: clientUdp = new UdpClient(IpAddress.ToString(), Port); + clientUdp.Client.ReceiveTimeout = Timeout; + clientUdp.Client.SendTimeout = Timeout; master = ModbusSerialMaster.CreateRtu(clientUdp); break; case Master_TYPE.Ascii: port = new SerialPort(PortName, BaudRate, Parity, DataBits, StopBits); + port.ReadTimeout = Timeout; + port.WriteTimeout = Timeout; port.Open(); adapter = new SerialPortAdapter(port); master = ModbusSerialMaster.CreateAscii(adapter); break; case Master_TYPE.AsciiOnTcp: clientTcp = new TcpClient(IpAddress.ToString(), Port); + clientTcp.ReceiveTimeout = Timeout; + clientTcp.SendTimeout = Timeout; master = ModbusSerialMaster.CreateAscii(clientTcp); break; case Master_TYPE.AsciiOnUdp: clientUdp = new UdpClient(IpAddress.ToString(), Port); + clientUdp.Client.ReceiveTimeout = Timeout; + clientUdp.Client.SendTimeout = Timeout; master = ModbusSerialMaster.CreateAscii(clientUdp); break; default: break; } + master.Transport.ReadTimeout = Timeout; + master.Transport.WriteTimeout = Timeout; } catch (Exception ex) { @@ -224,6 +242,76 @@ namespace DriverModbusMaster return ret; } + + [Method("功能码:01", description: "ReadCoil读线圈")] + public DriverReturnValueModel ReadCoil(DriverAddressIoArgModel ioarg) + { + DriverReturnValueModel ret = new(); + try + { + if (IsConnected) + { + var retBool = master.ReadCoils(SlaveAddress, ushort.Parse(ioarg.Address), 1)[0]; + if (ioarg.ValueType == DataTypeEnum.Bit) + { + if (retBool) + ret.Value = 1; + else + ret.Value = 0; + } + else + ret.Value = retBool; + } + else + { + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = "TCP连接异常"; + } + } + catch (Exception ex) + { + ret.StatusType = VaribaleStatusTypeEnum.UnKnow; + ret.Message = ex.Message; + + } + return ret; + } + + [Method("功能码:02", description: "ReadInput读输入")] + public DriverReturnValueModel ReadInput(DriverAddressIoArgModel ioarg) + { + DriverReturnValueModel ret = new(); + try + { + if (IsConnected) + { + var retBool = master.ReadInputs(SlaveAddress, ushort.Parse(ioarg.Address), 1)[0]; + if (ioarg.ValueType == DataTypeEnum.Bit) + { + if (retBool) + ret.Value = 1; + else + ret.Value = 0; + } + else + ret.Value = retBool; + } + else + { + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = "TCP连接异常"; + } + } + catch (Exception ex) + { + ret.StatusType = VaribaleStatusTypeEnum.UnKnow; + ret.Message = ex.Message; + + } + return ret; + } + + [Method("Read方法样例", description: "Read方法样例描述")] public DriverReturnValueModel Read(DriverAddressIoArgModel ioarg) { diff --git a/Plugins/Drivers/DriverOPCUaClient/OPCUaClient.cs b/Plugins/Drivers/DriverOPCUaClient/OPCUaClient.cs index 5861d75..9554941 100644 --- a/Plugins/Drivers/DriverOPCUaClient/OPCUaClient.cs +++ b/Plugins/Drivers/DriverOPCUaClient/OPCUaClient.cs @@ -25,7 +25,7 @@ namespace DriverOPCUaClient public string Uri { get; set; } = "opc.tcp://localhost:62541/Quickstarts/ReferenceServer"; [ConfigParameter("超时时间ms")] - public uint Timeout { get; set; } = 3000; + public int Timeout { get; set; } = 3000; [ConfigParameter("最小通讯周期ms")] public uint MinPeriod { get; set; } = 3000; @@ -36,7 +36,6 @@ namespace DriverOPCUaClient { DeviceId = deviceId; - opcUaClient = new OpcUaClientHelper(); } @@ -53,7 +52,8 @@ namespace DriverOPCUaClient { try { - opcUaClient.ConnectServer(Uri).Wait((int)Timeout); + opcUaClient = new OpcUaClientHelper(); + opcUaClient.ConnectServer(Uri).Wait(Timeout); } catch (Exception) { diff --git a/Plugins/Drivers/DriverSiemensS7/SiemensS7.cs b/Plugins/Drivers/DriverSiemensS7/SiemensS7.cs index 2cb6ec6..31a1946 100644 --- a/Plugins/Drivers/DriverSiemensS7/SiemensS7.cs +++ b/Plugins/Drivers/DriverSiemensS7/SiemensS7.cs @@ -36,7 +36,7 @@ namespace DriverSiemensS7 public short Slot { get; set; } = 0; [ConfigParameter("超时时间ms")] - public uint Timeout { get; set; } = 3000; + public int Timeout { get; set; } = 3000; [ConfigParameter("最小通讯周期ms")] public uint MinPeriod { get; set; } = 3000; @@ -62,6 +62,8 @@ namespace DriverSiemensS7 try { plc = new Plc(CpuType, IpAddress, Port, Rack, Slot); + plc.ReadTimeout = Timeout; + plc.WriteTimeout = Timeout; plc.Open(); } catch (Exception) diff --git a/Plugins/Drivers/OmronFins/DriverOmronFins.csproj b/Plugins/Drivers/OmronFins/DriverOmronFins.csproj new file mode 100644 index 0000000..0269645 --- /dev/null +++ b/Plugins/Drivers/OmronFins/DriverOmronFins.csproj @@ -0,0 +1,17 @@ + + + + net5.0 + ../../../IoTGateway/bin/Debug/net5.0/drivers + true + + + + + + + + + + + diff --git a/Plugins/Drivers/OmronFins/OmronFins.cs b/Plugins/Drivers/OmronFins/OmronFins.cs new file mode 100644 index 0000000..c887eba --- /dev/null +++ b/Plugins/Drivers/OmronFins/OmronFins.cs @@ -0,0 +1,160 @@ +using IoTClient.Clients.PLC; +using IoTClient.Enums; +using PluginInterface; +using System; +using System.Text; + +namespace DriverOmronFins +{ + [DriverSupported("OmronFins")] + [DriverInfoAttribute("OmronFins", "V1.0.0", "Copyright WHD-IoTClient© 2022-01-15")] + public class OmronFins : IDriver + { + private OmronFinsClient plc = null; + #region 配置参数 + + [ConfigParameter("设备Id")] + public Guid DeviceId { get; set; } + + [ConfigParameter("IP地址")] + public string IpAddress { get; set; } = "127.0.0.1"; + + [ConfigParameter("端口号")] + public int Port { get; set; } = 6000; + + [ConfigParameter("超时时间ms")] + public int Timeout { get; set; } = 3000; + + [ConfigParameter("最小通讯周期ms")] + public uint MinPeriod { get; set; } = 3000; + + #endregion + + public OmronFins(Guid deviceId) + { + DeviceId = deviceId; + } + + + public bool IsConnected + { + get + { + return plc != null && plc.Connected; + } + } + + public bool Connect() + { + try + { + plc = new OmronFinsClient(IpAddress, Port); + plc.Open(); + } + catch (Exception) + { + return false; + } + return IsConnected; + } + + public bool Close() + { + try + { + plc?.Close(); + return !IsConnected; + } + catch (Exception) + { + + return false; + } + } + + public void Dispose() + { + try + { + plc = null; + } + catch (Exception) + { + + } + } + + [Method("读西门子PLC标准地址", description: "读西门子PLC标准地址")] + public DriverReturnValueModel Read(DriverAddressIoArgModel ioarg) + { + var ret = new DriverReturnValueModel { StatusType = VaribaleStatusTypeEnum.Good }; + + if (plc != null && this.IsConnected) + { + try + { + switch (ioarg.ValueType) + { + case PluginInterface.DataTypeEnum.Bit: + ret.Value = plc.ReadBoolean(ioarg.Address).Value == true ? 1 : 0; + break; + case PluginInterface.DataTypeEnum.Bool: + ret.Value = plc.ReadBoolean(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.UByte: + ret.Value = plc.ReadByte(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Byte: + ret.Value = (sbyte)plc.ReadByte(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint16: + ret.Value =plc.ReadUInt16(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int16: + ret.Value = plc.ReadInt16(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint32: + ret.Value =plc.ReadUInt32(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int32: + ret.Value = plc.ReadInt32(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Float: + ret.Value = plc.ReadFloat(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Double: + ret.Value = plc.ReadDouble(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Uint64: + ret.Value = plc.ReadUInt64(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.Int64: + ret.Value = plc.ReadInt64(ioarg.Address).Value; + break; + case PluginInterface.DataTypeEnum.AsciiString: + ret.Value = plc.ReadString(ioarg.Address); + break; + case PluginInterface.DataTypeEnum.Utf8String: + ret.Value = plc.ReadString(ioarg.Address); + break; + default: + break; + } + } + catch (Exception ex) + { + + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = $"读取失败,{ex.Message}"; + } + } + else + { + ret.StatusType = VaribaleStatusTypeEnum.Bad; + ret.Message = "连接失败"; + } + return ret; + } + + } +} \ No newline at end of file diff --git a/Plugins/PluginInterface/IDriver.cs b/Plugins/PluginInterface/IDriver.cs index 3da7a14..4aa337a 100644 --- a/Plugins/PluginInterface/IDriver.cs +++ b/Plugins/PluginInterface/IDriver.cs @@ -6,7 +6,7 @@ namespace PluginInterface { public Guid DeviceId { get; } public bool IsConnected { get; } - public uint Timeout { get; } + public int Timeout { get; } public uint MinPeriod { get; } public bool Connect(); public bool Close(); diff --git a/drivers/net5.0/DriverAllenBradley.deps.json b/drivers/net5.0/DriverAllenBradley.deps.json new file mode 100644 index 0000000..b7a8ad9 --- /dev/null +++ b/drivers/net5.0/DriverAllenBradley.deps.json @@ -0,0 +1,233 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v5.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v5.0": { + "DriverAllenBradley/1.0.0": { + "dependencies": { + "IoTClient": "1.0.22", + "PluginInterface": "1.0.0" + }, + "runtime": { + "DriverAllenBradley.dll": {} + } + }, + "IoTClient/1.0.22": { + "dependencies": { + "System.IO.Ports": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/IoTClient.dll": { + "assemblyVersion": "1.0.22.0", + "fileVersion": "1.0.22.0" + } + } + }, + "Microsoft.NETCore.Platforms/3.0.0": {}, + "Microsoft.Win32.Registry/4.6.0": { + "dependencies": { + "System.Security.AccessControl": "4.6.0", + "System.Security.Principal.Windows": "4.6.0" + } + }, + "Newtonsoft.Json/13.0.1": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1.25517" + } + } + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-arm/native/System.IO.Ports.Native.so": { + "rid": "linux-arm", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-arm64/native/System.IO.Ports.Native.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-x64/native/System.IO.Ports.Native.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.native.System.IO.Ports/4.6.0": { + "dependencies": { + "runtime.linux-arm.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.linux-arm64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.linux-x64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.osx-x64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14" + } + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/osx-x64/native/System.IO.Ports.Native.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "System.IO.Ports/4.6.0": { + "dependencies": { + "Microsoft.Win32.Registry": "4.6.0", + "runtime.native.System.IO.Ports": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/System.IO.Ports.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + }, + "runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + }, + "runtimes/win/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Security.AccessControl/4.6.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "3.0.0", + "System.Security.Principal.Windows": "4.6.0" + } + }, + "System.Security.Principal.Windows/4.6.0": {}, + "PluginInterface/1.0.0": { + "dependencies": { + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "PluginInterface.dll": {} + } + } + } + }, + "libraries": { + "DriverAllenBradley/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "IoTClient/1.0.22": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UqkeoTFWpDiskvtuPiwdk7XLkvb2no1iJSE0sJusjccapbs6J5GPCf/0eGqu4ftlrHxG8E4fd7lgTA1R5Ztbgw==", + "path": "iotclient/1.0.22", + "hashPath": "iotclient.1.0.22.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TsETIgVJb/AKoYfSP+iCxkuly5d3inZjTdx/ItZLk2CxY85v8083OBS3uai84kK3/baLnS5/b5XGs6zR7SuuHQ==", + "path": "microsoft.netcore.platforms/3.0.0", + "hashPath": "microsoft.netcore.platforms.3.0.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Xuqo5Lf5h1eUAbT8sJwNSEgusyEcQQQcza1R8dxJ6q/1vLSU1SG/WxtgiCPAth14dz/IjBXCxWT/+6E9glX33w==", + "path": "microsoft.win32.registry/4.6.0", + "hashPath": "microsoft.win32.registry.4.6.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "path": "newtonsoft.json/13.0.1", + "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iPSWmmEhl0TNIVKHEOvgYEwpXoL7+KRxINcP9ni8JmfdeYPDVzTZXK/d0/1BxlLZIqXC3uMKjFhXFSFLxVlLAg==", + "path": "runtime.linux-arm.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-arm.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ii8t2RrqsHoBwnvpN8CwQYiukabVJnBYHE6ee/Yl+jKRpkbavlnA9pktxLQARsL1YJ4AKrNT/pAdQCuxTKECBA==", + "path": "runtime.linux-arm64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-arm64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zc0JugELjZ3MCPzYAroQyuTiChrw8lVUQlMc0bKolAsjpWcCECaLOLd9NRms1sfI52r4ILPvKFlqJwelc88Qhw==", + "path": "runtime.linux-x64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-x64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.native.System.IO.Ports/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rbYF/0jSnO+Q6hY1/e/MGXG2MLMj7Enth1Euma85w/r1R+1u/kuEFYNc5bkqG8mpdY3EbVpGn5RTuRU0kVQ6rw==", + "path": "runtime.native.system.io.ports/4.6.0", + "hashPath": "runtime.native.system.io.ports.4.6.0.nupkg.sha512" + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2+r1sZd8zeBh7omYsd1ZnwxVZ8POBR1JmvcwUXK82R+XWtf2/RMFZenJFfuy1ii507hB79JvNCFj7ZF0+WhCQ==", + "path": "runtime.osx-x64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.osx-x64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "System.IO.Ports/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9mh48ySrW31fi8JZdcXSKKSrtCH/ZgRkpOMYWwmN//KtCFGIgsyjxpft2wRKlGW/YHG70SG6Xsr/TCLf53fQOA==", + "path": "system.io.ports/4.6.0", + "hashPath": "system.io.ports.4.6.0.nupkg.sha512" + }, + "System.Security.AccessControl/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gmlk6khICtVhiUnVBBtlsH0H/5QFDqhTZgtpp3AX14wWE6OIE+BX95NLD+X4AolXnIy/oXpNNmXYnsNfW1KuDQ==", + "path": "system.security.accesscontrol/4.6.0", + "hashPath": "system.security.accesscontrol.4.6.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Mdukseovp0YIGaz16FMH6nbfgZkrCFOJbtXQptv0aeBO9h775Ilb9+TDwLVTKikoW7y7CY7lpoXl9zmZ5G3ndA==", + "path": "system.security.principal.windows/4.6.0", + "hashPath": "system.security.principal.windows.4.6.0.nupkg.sha512" + }, + "PluginInterface/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/drivers/net5.0/DriverAllenBradley.dll b/drivers/net5.0/DriverAllenBradley.dll new file mode 100644 index 0000000..616a22c Binary files /dev/null and b/drivers/net5.0/DriverAllenBradley.dll differ diff --git a/drivers/net5.0/DriverAllenBradley.pdb b/drivers/net5.0/DriverAllenBradley.pdb new file mode 100644 index 0000000..e4cc869 Binary files /dev/null and b/drivers/net5.0/DriverAllenBradley.pdb differ diff --git a/drivers/net5.0/DriverMTConnect.dll b/drivers/net5.0/DriverMTConnect.dll index 3f1b447..501917e 100644 Binary files a/drivers/net5.0/DriverMTConnect.dll and b/drivers/net5.0/DriverMTConnect.dll differ diff --git a/drivers/net5.0/DriverMTConnect.pdb b/drivers/net5.0/DriverMTConnect.pdb index f2af689..2455e6a 100644 Binary files a/drivers/net5.0/DriverMTConnect.pdb and b/drivers/net5.0/DriverMTConnect.pdb differ diff --git a/drivers/net5.0/DriverMitsubishi.deps.json b/drivers/net5.0/DriverMitsubishi.deps.json new file mode 100644 index 0000000..c3b55f7 --- /dev/null +++ b/drivers/net5.0/DriverMitsubishi.deps.json @@ -0,0 +1,233 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v5.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v5.0": { + "DriverMitsubishi/1.0.0": { + "dependencies": { + "IoTClient": "1.0.22", + "PluginInterface": "1.0.0" + }, + "runtime": { + "DriverMitsubishi.dll": {} + } + }, + "IoTClient/1.0.22": { + "dependencies": { + "System.IO.Ports": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/IoTClient.dll": { + "assemblyVersion": "1.0.22.0", + "fileVersion": "1.0.22.0" + } + } + }, + "Microsoft.NETCore.Platforms/3.0.0": {}, + "Microsoft.Win32.Registry/4.6.0": { + "dependencies": { + "System.Security.AccessControl": "4.6.0", + "System.Security.Principal.Windows": "4.6.0" + } + }, + "Newtonsoft.Json/13.0.1": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1.25517" + } + } + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-arm/native/System.IO.Ports.Native.so": { + "rid": "linux-arm", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-arm64/native/System.IO.Ports.Native.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-x64/native/System.IO.Ports.Native.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.native.System.IO.Ports/4.6.0": { + "dependencies": { + "runtime.linux-arm.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.linux-arm64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.linux-x64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.osx-x64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14" + } + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/osx-x64/native/System.IO.Ports.Native.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "System.IO.Ports/4.6.0": { + "dependencies": { + "Microsoft.Win32.Registry": "4.6.0", + "runtime.native.System.IO.Ports": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/System.IO.Ports.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + }, + "runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + }, + "runtimes/win/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Security.AccessControl/4.6.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "3.0.0", + "System.Security.Principal.Windows": "4.6.0" + } + }, + "System.Security.Principal.Windows/4.6.0": {}, + "PluginInterface/1.0.0": { + "dependencies": { + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "PluginInterface.dll": {} + } + } + } + }, + "libraries": { + "DriverMitsubishi/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "IoTClient/1.0.22": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UqkeoTFWpDiskvtuPiwdk7XLkvb2no1iJSE0sJusjccapbs6J5GPCf/0eGqu4ftlrHxG8E4fd7lgTA1R5Ztbgw==", + "path": "iotclient/1.0.22", + "hashPath": "iotclient.1.0.22.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TsETIgVJb/AKoYfSP+iCxkuly5d3inZjTdx/ItZLk2CxY85v8083OBS3uai84kK3/baLnS5/b5XGs6zR7SuuHQ==", + "path": "microsoft.netcore.platforms/3.0.0", + "hashPath": "microsoft.netcore.platforms.3.0.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Xuqo5Lf5h1eUAbT8sJwNSEgusyEcQQQcza1R8dxJ6q/1vLSU1SG/WxtgiCPAth14dz/IjBXCxWT/+6E9glX33w==", + "path": "microsoft.win32.registry/4.6.0", + "hashPath": "microsoft.win32.registry.4.6.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "path": "newtonsoft.json/13.0.1", + "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iPSWmmEhl0TNIVKHEOvgYEwpXoL7+KRxINcP9ni8JmfdeYPDVzTZXK/d0/1BxlLZIqXC3uMKjFhXFSFLxVlLAg==", + "path": "runtime.linux-arm.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-arm.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ii8t2RrqsHoBwnvpN8CwQYiukabVJnBYHE6ee/Yl+jKRpkbavlnA9pktxLQARsL1YJ4AKrNT/pAdQCuxTKECBA==", + "path": "runtime.linux-arm64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-arm64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zc0JugELjZ3MCPzYAroQyuTiChrw8lVUQlMc0bKolAsjpWcCECaLOLd9NRms1sfI52r4ILPvKFlqJwelc88Qhw==", + "path": "runtime.linux-x64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-x64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.native.System.IO.Ports/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rbYF/0jSnO+Q6hY1/e/MGXG2MLMj7Enth1Euma85w/r1R+1u/kuEFYNc5bkqG8mpdY3EbVpGn5RTuRU0kVQ6rw==", + "path": "runtime.native.system.io.ports/4.6.0", + "hashPath": "runtime.native.system.io.ports.4.6.0.nupkg.sha512" + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2+r1sZd8zeBh7omYsd1ZnwxVZ8POBR1JmvcwUXK82R+XWtf2/RMFZenJFfuy1ii507hB79JvNCFj7ZF0+WhCQ==", + "path": "runtime.osx-x64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.osx-x64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "System.IO.Ports/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9mh48ySrW31fi8JZdcXSKKSrtCH/ZgRkpOMYWwmN//KtCFGIgsyjxpft2wRKlGW/YHG70SG6Xsr/TCLf53fQOA==", + "path": "system.io.ports/4.6.0", + "hashPath": "system.io.ports.4.6.0.nupkg.sha512" + }, + "System.Security.AccessControl/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gmlk6khICtVhiUnVBBtlsH0H/5QFDqhTZgtpp3AX14wWE6OIE+BX95NLD+X4AolXnIy/oXpNNmXYnsNfW1KuDQ==", + "path": "system.security.accesscontrol/4.6.0", + "hashPath": "system.security.accesscontrol.4.6.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Mdukseovp0YIGaz16FMH6nbfgZkrCFOJbtXQptv0aeBO9h775Ilb9+TDwLVTKikoW7y7CY7lpoXl9zmZ5G3ndA==", + "path": "system.security.principal.windows/4.6.0", + "hashPath": "system.security.principal.windows.4.6.0.nupkg.sha512" + }, + "PluginInterface/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/drivers/net5.0/DriverMitsubishi.dll b/drivers/net5.0/DriverMitsubishi.dll new file mode 100644 index 0000000..cbda5b2 Binary files /dev/null and b/drivers/net5.0/DriverMitsubishi.dll differ diff --git a/drivers/net5.0/DriverMitsubishi.pdb b/drivers/net5.0/DriverMitsubishi.pdb new file mode 100644 index 0000000..d5230cd Binary files /dev/null and b/drivers/net5.0/DriverMitsubishi.pdb differ diff --git a/drivers/net5.0/DriverModbusMaster.dll b/drivers/net5.0/DriverModbusMaster.dll index ae7a28b..3ac487f 100644 Binary files a/drivers/net5.0/DriverModbusMaster.dll and b/drivers/net5.0/DriverModbusMaster.dll differ diff --git a/drivers/net5.0/DriverModbusMaster.pdb b/drivers/net5.0/DriverModbusMaster.pdb index 4c9b74b..80f58d2 100644 Binary files a/drivers/net5.0/DriverModbusMaster.pdb and b/drivers/net5.0/DriverModbusMaster.pdb differ diff --git a/drivers/net5.0/DriverOPCUaClient.dll b/drivers/net5.0/DriverOPCUaClient.dll index 21096dc..57a622a 100644 Binary files a/drivers/net5.0/DriverOPCUaClient.dll and b/drivers/net5.0/DriverOPCUaClient.dll differ diff --git a/drivers/net5.0/DriverOPCUaClient.pdb b/drivers/net5.0/DriverOPCUaClient.pdb index e231bbd..b4272f3 100644 Binary files a/drivers/net5.0/DriverOPCUaClient.pdb and b/drivers/net5.0/DriverOPCUaClient.pdb differ diff --git a/drivers/net5.0/DriverOmronFins.deps.json b/drivers/net5.0/DriverOmronFins.deps.json new file mode 100644 index 0000000..ae1953a --- /dev/null +++ b/drivers/net5.0/DriverOmronFins.deps.json @@ -0,0 +1,233 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v5.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v5.0": { + "DriverOmronFins/1.0.0": { + "dependencies": { + "IoTClient": "1.0.22", + "PluginInterface": "1.0.0" + }, + "runtime": { + "DriverOmronFins.dll": {} + } + }, + "IoTClient/1.0.22": { + "dependencies": { + "System.IO.Ports": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/IoTClient.dll": { + "assemblyVersion": "1.0.22.0", + "fileVersion": "1.0.22.0" + } + } + }, + "Microsoft.NETCore.Platforms/3.0.0": {}, + "Microsoft.Win32.Registry/4.6.0": { + "dependencies": { + "System.Security.AccessControl": "4.6.0", + "System.Security.Principal.Windows": "4.6.0" + } + }, + "Newtonsoft.Json/13.0.1": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1.25517" + } + } + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-arm/native/System.IO.Ports.Native.so": { + "rid": "linux-arm", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-arm64/native/System.IO.Ports.Native.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/linux-x64/native/System.IO.Ports.Native.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.native.System.IO.Ports/4.6.0": { + "dependencies": { + "runtime.linux-arm.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.linux-arm64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.linux-x64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14", + "runtime.osx-x64.runtime.native.System.IO.Ports": "4.6.0-rc2.19462.14" + } + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "runtimeTargets": { + "runtimes/osx-x64/native/System.IO.Ports.Native.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "System.IO.Ports/4.6.0": { + "dependencies": { + "Microsoft.Win32.Registry": "4.6.0", + "runtime.native.System.IO.Ports": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/System.IO.Ports.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + } + }, + "runtimeTargets": { + "runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "linux", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + }, + "runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + }, + "runtimes/win/lib/netstandard2.0/System.IO.Ports.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Security.AccessControl/4.6.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "3.0.0", + "System.Security.Principal.Windows": "4.6.0" + } + }, + "System.Security.Principal.Windows/4.6.0": {}, + "PluginInterface/1.0.0": { + "dependencies": { + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "PluginInterface.dll": {} + } + } + } + }, + "libraries": { + "DriverOmronFins/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "IoTClient/1.0.22": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UqkeoTFWpDiskvtuPiwdk7XLkvb2no1iJSE0sJusjccapbs6J5GPCf/0eGqu4ftlrHxG8E4fd7lgTA1R5Ztbgw==", + "path": "iotclient/1.0.22", + "hashPath": "iotclient.1.0.22.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TsETIgVJb/AKoYfSP+iCxkuly5d3inZjTdx/ItZLk2CxY85v8083OBS3uai84kK3/baLnS5/b5XGs6zR7SuuHQ==", + "path": "microsoft.netcore.platforms/3.0.0", + "hashPath": "microsoft.netcore.platforms.3.0.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Xuqo5Lf5h1eUAbT8sJwNSEgusyEcQQQcza1R8dxJ6q/1vLSU1SG/WxtgiCPAth14dz/IjBXCxWT/+6E9glX33w==", + "path": "microsoft.win32.registry/4.6.0", + "hashPath": "microsoft.win32.registry.4.6.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "path": "newtonsoft.json/13.0.1", + "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" + }, + "runtime.linux-arm.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iPSWmmEhl0TNIVKHEOvgYEwpXoL7+KRxINcP9ni8JmfdeYPDVzTZXK/d0/1BxlLZIqXC3uMKjFhXFSFLxVlLAg==", + "path": "runtime.linux-arm.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-arm.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.linux-arm64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ii8t2RrqsHoBwnvpN8CwQYiukabVJnBYHE6ee/Yl+jKRpkbavlnA9pktxLQARsL1YJ4AKrNT/pAdQCuxTKECBA==", + "path": "runtime.linux-arm64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-arm64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.linux-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zc0JugELjZ3MCPzYAroQyuTiChrw8lVUQlMc0bKolAsjpWcCECaLOLd9NRms1sfI52r4ILPvKFlqJwelc88Qhw==", + "path": "runtime.linux-x64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.linux-x64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "runtime.native.System.IO.Ports/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rbYF/0jSnO+Q6hY1/e/MGXG2MLMj7Enth1Euma85w/r1R+1u/kuEFYNc5bkqG8mpdY3EbVpGn5RTuRU0kVQ6rw==", + "path": "runtime.native.system.io.ports/4.6.0", + "hashPath": "runtime.native.system.io.ports.4.6.0.nupkg.sha512" + }, + "runtime.osx-x64.runtime.native.System.IO.Ports/4.6.0-rc2.19462.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2+r1sZd8zeBh7omYsd1ZnwxVZ8POBR1JmvcwUXK82R+XWtf2/RMFZenJFfuy1ii507hB79JvNCFj7ZF0+WhCQ==", + "path": "runtime.osx-x64.runtime.native.system.io.ports/4.6.0-rc2.19462.14", + "hashPath": "runtime.osx-x64.runtime.native.system.io.ports.4.6.0-rc2.19462.14.nupkg.sha512" + }, + "System.IO.Ports/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9mh48ySrW31fi8JZdcXSKKSrtCH/ZgRkpOMYWwmN//KtCFGIgsyjxpft2wRKlGW/YHG70SG6Xsr/TCLf53fQOA==", + "path": "system.io.ports/4.6.0", + "hashPath": "system.io.ports.4.6.0.nupkg.sha512" + }, + "System.Security.AccessControl/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gmlk6khICtVhiUnVBBtlsH0H/5QFDqhTZgtpp3AX14wWE6OIE+BX95NLD+X4AolXnIy/oXpNNmXYnsNfW1KuDQ==", + "path": "system.security.accesscontrol/4.6.0", + "hashPath": "system.security.accesscontrol.4.6.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Mdukseovp0YIGaz16FMH6nbfgZkrCFOJbtXQptv0aeBO9h775Ilb9+TDwLVTKikoW7y7CY7lpoXl9zmZ5G3ndA==", + "path": "system.security.principal.windows/4.6.0", + "hashPath": "system.security.principal.windows.4.6.0.nupkg.sha512" + }, + "PluginInterface/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/drivers/net5.0/DriverOmronFins.dll b/drivers/net5.0/DriverOmronFins.dll new file mode 100644 index 0000000..a0996b6 Binary files /dev/null and b/drivers/net5.0/DriverOmronFins.dll differ diff --git a/drivers/net5.0/DriverOmronFins.pdb b/drivers/net5.0/DriverOmronFins.pdb new file mode 100644 index 0000000..0d49c59 Binary files /dev/null and b/drivers/net5.0/DriverOmronFins.pdb differ diff --git a/drivers/net5.0/DriverSiemensS7.dll b/drivers/net5.0/DriverSiemensS7.dll index 7cd79ea..905a9f1 100644 Binary files a/drivers/net5.0/DriverSiemensS7.dll and b/drivers/net5.0/DriverSiemensS7.dll differ diff --git a/drivers/net5.0/DriverSiemensS7.pdb b/drivers/net5.0/DriverSiemensS7.pdb index 06a3d55..24bd948 100644 Binary files a/drivers/net5.0/DriverSiemensS7.pdb and b/drivers/net5.0/DriverSiemensS7.pdb differ diff --git a/drivers/net5.0/IoTClient.dll b/drivers/net5.0/IoTClient.dll new file mode 100644 index 0000000..213be82 Binary files /dev/null and b/drivers/net5.0/IoTClient.dll differ diff --git a/drivers/net5.0/OpenNETCF.RestConnector.dll b/drivers/net5.0/OpenNETCF.RestConnector.dll new file mode 100644 index 0000000..b1e71d7 Binary files /dev/null and b/drivers/net5.0/OpenNETCF.RestConnector.dll differ diff --git a/drivers/net5.0/PluginInterface.dll b/drivers/net5.0/PluginInterface.dll index 18d9e33..9aff761 100644 Binary files a/drivers/net5.0/PluginInterface.dll and b/drivers/net5.0/PluginInterface.dll differ diff --git a/drivers/net5.0/PluginInterface.pdb b/drivers/net5.0/PluginInterface.pdb index 2578aec..7ff8553 100644 Binary files a/drivers/net5.0/PluginInterface.pdb and b/drivers/net5.0/PluginInterface.pdb differ diff --git a/drivers/net5.0/System.IO.Ports.dll b/drivers/net5.0/System.IO.Ports.dll new file mode 100644 index 0000000..e2af6d1 Binary files /dev/null and b/drivers/net5.0/System.IO.Ports.dll differ diff --git a/drivers/net5.0/ref/DriverAllenBradley.dll b/drivers/net5.0/ref/DriverAllenBradley.dll new file mode 100644 index 0000000..c2453a5 Binary files /dev/null and b/drivers/net5.0/ref/DriverAllenBradley.dll differ diff --git a/drivers/net5.0/ref/DriverMTConnect.dll b/drivers/net5.0/ref/DriverMTConnect.dll new file mode 100644 index 0000000..fadda70 Binary files /dev/null and b/drivers/net5.0/ref/DriverMTConnect.dll differ diff --git a/drivers/net5.0/ref/DriverMitsubishi.dll b/drivers/net5.0/ref/DriverMitsubishi.dll new file mode 100644 index 0000000..1c53f2d Binary files /dev/null and b/drivers/net5.0/ref/DriverMitsubishi.dll differ diff --git a/drivers/net5.0/ref/DriverModbusMaster.dll b/drivers/net5.0/ref/DriverModbusMaster.dll index ef6793c..d22122d 100644 Binary files a/drivers/net5.0/ref/DriverModbusMaster.dll and b/drivers/net5.0/ref/DriverModbusMaster.dll differ diff --git a/drivers/net5.0/ref/DriverOPCUaClient.dll b/drivers/net5.0/ref/DriverOPCUaClient.dll index d5414f3..fd3c8f3 100644 Binary files a/drivers/net5.0/ref/DriverOPCUaClient.dll and b/drivers/net5.0/ref/DriverOPCUaClient.dll differ diff --git a/drivers/net5.0/ref/DriverOmronFins.dll b/drivers/net5.0/ref/DriverOmronFins.dll new file mode 100644 index 0000000..0ad0827 Binary files /dev/null and b/drivers/net5.0/ref/DriverOmronFins.dll differ diff --git a/drivers/net5.0/ref/DriverSiemensS7.dll b/drivers/net5.0/ref/DriverSiemensS7.dll index 851e6f5..195974c 100644 Binary files a/drivers/net5.0/ref/DriverSiemensS7.dll and b/drivers/net5.0/ref/DriverSiemensS7.dll differ diff --git a/drivers/net5.0/runtimes/linux-arm/native/System.IO.Ports.Native.so b/drivers/net5.0/runtimes/linux-arm/native/System.IO.Ports.Native.so new file mode 100644 index 0000000..ebe7e5c Binary files /dev/null and b/drivers/net5.0/runtimes/linux-arm/native/System.IO.Ports.Native.so differ diff --git a/drivers/net5.0/runtimes/linux-arm64/native/System.IO.Ports.Native.so b/drivers/net5.0/runtimes/linux-arm64/native/System.IO.Ports.Native.so new file mode 100644 index 0000000..266e5d2 Binary files /dev/null and b/drivers/net5.0/runtimes/linux-arm64/native/System.IO.Ports.Native.so differ diff --git a/drivers/net5.0/runtimes/linux-x64/native/System.IO.Ports.Native.so b/drivers/net5.0/runtimes/linux-x64/native/System.IO.Ports.Native.so new file mode 100644 index 0000000..8af62f2 Binary files /dev/null and b/drivers/net5.0/runtimes/linux-x64/native/System.IO.Ports.Native.so differ diff --git a/drivers/net5.0/runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll b/drivers/net5.0/runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll new file mode 100644 index 0000000..69712b6 Binary files /dev/null and b/drivers/net5.0/runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll differ diff --git a/drivers/net5.0/runtimes/osx-x64/native/System.IO.Ports.Native.dylib b/drivers/net5.0/runtimes/osx-x64/native/System.IO.Ports.Native.dylib new file mode 100644 index 0000000..b4500b6 Binary files /dev/null and b/drivers/net5.0/runtimes/osx-x64/native/System.IO.Ports.Native.dylib differ diff --git a/drivers/net5.0/runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll b/drivers/net5.0/runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll new file mode 100644 index 0000000..20cf4c4 Binary files /dev/null and b/drivers/net5.0/runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll differ diff --git a/drivers/net5.0/runtimes/win/lib/netstandard2.0/System.IO.Ports.dll b/drivers/net5.0/runtimes/win/lib/netstandard2.0/System.IO.Ports.dll new file mode 100644 index 0000000..3e1d69b Binary files /dev/null and b/drivers/net5.0/runtimes/win/lib/netstandard2.0/System.IO.Ports.dll differ diff --git a/webscada-project b/webscada-project new file mode 100644 index 0000000..4cf207d --- /dev/null +++ b/webscada-project @@ -0,0 +1 @@ +{"devices":{"d_c87336e7-d651446f":{"id":"d_c87336e7-d651446f","property":{"address":"mqtt://172.17.0.1:1888","port":null,"slot":null,"rack":null,"baudrate":9600,"databits":8,"stopbits":1,"parity":"None"},"enabled":true,"tags":{"t_6dcb0c08-269e4a6f":{"id":"t_6dcb0c08-269e4a6f","type":"raw","address":"v1/gateway/telemetry/Modbus/random4","memaddress":"v1/gateway/telemetry/Modbus/random4","options":{"subs":["v1/gateway/telemetry/Modbus/random4"]},"name":"v1/gateway/telemetry/Modbus/random4"},"t_d74440d5-2c834a1d":{"id":"t_d74440d5-2c834a1d","type":"raw","address":"v1/gateway/telemetry/Modbus/random","memaddress":"v1/gateway/telemetry/Modbus/random","options":{"subs":["v1/gateway/telemetry/Modbus/random"]},"name":"v1/gateway/telemetry/Modbus/random"},"t_4e032f5f-835b4679":{"id":"t_4e032f5f-835b4679","type":"raw","address":"v1/gateway/telemetry/OPClient/uaNode1","memaddress":"v1/gateway/telemetry/OPClient/uaNode1","options":{"subs":["v1/gateway/telemetry/OPClient/uaNode1"]},"name":"v1/gateway/telemetry/OPClient/uaNode1"},"t_c6a37e56-b5844de9":{"id":"t_c6a37e56-b5844de9","type":"raw","address":"v1/gateway/telemetry/Modbus/temperature","memaddress":"v1/gateway/telemetry/Modbus/temperature","options":{"subs":["v1/gateway/telemetry/Modbus/temperature"]},"name":"v1/gateway/telemetry/Modbus/temperature"},"t_e7c98df3-7e32478e":{"id":"t_e7c98df3-7e32478e","type":"raw","address":"v1/gateway/telemetry/Modbus/humidity","memaddress":"v1/gateway/telemetry/Modbus/humidity","options":{"subs":["v1/gateway/telemetry/Modbus/humidity"]},"name":"v1/gateway/telemetry/Modbus/humidity"},"t_b624bcb4-651440f3":{"id":"t_b624bcb4-651440f3","type":"raw","address":"v1/gateway/telemetry/Modbus/random2","memaddress":"v1/gateway/telemetry/Modbus/random2","options":{"subs":["v1/gateway/telemetry/Modbus/random2"]},"name":"v1/gateway/telemetry/Modbus/random2"},"t_51ab778e-f570445b":{"id":"t_51ab778e-f570445b","type":"raw","address":"v1/gateway/telemetry/Modbus/random3","memaddress":"v1/gateway/telemetry/Modbus/random3","options":{"subs":["v1/gateway/telemetry/Modbus/random3"]},"name":"v1/gateway/telemetry/Modbus/random3"}},"name":"iotgateway","type":"MQTTclient","polling":3000}},"hmi":{"views":[{"id":"v_514346b2-713117","name":"MainView","profile":{"width":1000,"height":550,"bkcolor":"","margin":10},"items":{"VAL_520cb1f2-f3214444":{"id":"VAL_520cb1f2-f3214444","type":"svg-ext-value","name":"shape_1","property":{"events":[],"actions":[],"variableId":"t_c6a37e56-b5844de9","ranges":[{"type":"unit","min":20,"max":80,"color":"","stroke":"","textId":null,"fractionDigitsId":null,"fractionDigits":"2","text":"℃"}]},"label":"Value"},"VAL_fdb8ef5d-16e24feb":{"id":"VAL_fdb8ef5d-16e24feb","type":"svg-ext-value","name":"shape_2","property":{"events":[],"actions":[],"variableId":"t_e7c98df3-7e32478e","ranges":[{"type":"unit","min":20,"max":80,"color":"","stroke":"","textId":null,"fractionDigitsId":null,"text":"%"}]},"label":"Value"},"SHE_fe35bb94-b0784a1a":{"id":"SHE_fe35bb94-b0784a1a","type":"svg-ext-ape-eli","name":"shape_4","property":{"events":[{"actoptions":{"variablesMapping":[]},"type":"click"}],"actions":[{"options":{},"range":{"min":"0","max":"50"},"variableId":"t_6dcb0c08-269e4a6f","type":"clockwise"},{"options":{},"range":{"min":"50","max":"85"},"variableId":"t_6dcb0c08-269e4a6f","type":"anticlockwise"}],"variableId":"t_6dcb0c08-269e4a6f","ranges":[{"type":"range","min":0,"max":"50","color":"#0ac97dff","stroke":"#0ac97dff"},{"type":"range","color":"#ffd04aff","stroke":"#ffd04aff","min":"50","max":"85"},{"type":"range","color":"#ff0000ff","stroke":"#ff0000ff","min":"85","max":100}]},"label":"AnimProcEng"},"BAG_007e8c11-547f44bc":{"id":"BAG_007e8c11-547f44bc","type":"svg-ext-html_bag","name":"gauge_1","property":{"events":[],"actions":[],"variableId":"t_6dcb0c08-269e4a6f","options":{"minValue":0,"maxValue":"100","animationSpeed":40,"colorStart":"#6fadcf","colorStop":"#6fadcf","gradientType":"","strokeColor":"#e0e0e0","pointer":{"length":0.6,"strokeWidth":0.05,"iconScale":1,"color":"#000000"},"angle":-0.25,"lineWidth":0.2,"radiusScale":0.9,"fontSize":18,"textFilePosition":20,"limitMax":false,"limitMin":false,"highDpiSupport":true,"backgroundColor":"rgba(255, 255, 255, 0)","shadowColor":"#d5d5d5","fractionDigits":0,"ticksEnabled":true,"renderTicks":{"divisions":5,"divWidth":1.1,"divLength":0.7,"divColor":"#333333","subDivisions":3,"subLength":0.5,"subWidth":0.6,"subColor":"#666666"},"staticLabelsText":"200;500;2100;2800","staticFontSize":10,"staticFontColor":"#000000","staticLabels":{"labels":[0,20,40,60,80,100],"font":"10px Sans-serif","color":"#000000"},"staticZones":[{"strokeStyle":"#30B32D","min":"0","max":"50"},{"strokeStyle":"#FFDD00","min":"50","max":"85"},{"strokeStyle":"#F03E3E","min":"85","max":"100"}],"type":2}},"label":"HtmlBag"},"SLI_5e3b35ee-0d7442ed":{"id":"SLI_5e3b35ee-0d7442ed","type":"svg-ext-html_slider","name":"slider_1","property":{"events":[],"actions":[],"variableId":"t_6dcb0c08-269e4a6f","options":{"orientation":"vertical","direction":"ltr","fontFamily":"Sans-serif","shape":{"baseColor":"#dcdcdc","connectColor":"#49b2ff","handleColor":"#018ef5"},"marker":{"color":"#000","subWidth":5,"subHeight":1,"fontSize":18,"divHeight":2,"divWidth":12},"range":{"min":0,"max":100},"step":1,"pips":{"mode":"values","values":[0,50,100],"density":4},"tooltip":{"type":"none","decimals":0,"background":"#FFF","color":"#000","fontSize":12}}},"label":"HtmlSlider"},"GSE_2aa7afdc-1f7c4f95":{"id":"GSE_2aa7afdc-1f7c4f95","type":"svg-ext-gauge_semaphore","name":"led_1","property":{"events":[],"actions":[],"variableId":"t_6dcb0c08-269e4a6f","ranges":[{"type":"range","min":0,"max":"50","color":"#00b050ff","stroke":"#00b050ff"},{"type":"range","color":"#ffd04aff","stroke":"#ffd04aff","min":"50","max":"85"}]},"label":"HtmlSemaphore"},"PIE_923c051b-31124bd3":{"id":"PIE_923c051b-31124bd3","type":"svg-ext-pipe","name":"pipe_1","property":{"events":[],"actions":[{"options":{},"range":{"min":"0","max":"50"},"variableId":"t_6dcb0c08-269e4a6f","type":"clockwise"},{"options":{},"range":{"min":"50","max":"85"},"variableId":"t_6dcb0c08-269e4a6f","type":"anticlockwise"},{"options":{},"range":{"min":"85","max":"100"},"variableId":"t_6dcb0c08-269e4a6f","type":"clockwise"}],"options":{"borderWidth":40,"border":"#000000","pipeWidth":30,"pipe":"#0000ff","contentWidth":30,"content":"#0044ff","contentSpace":48}},"label":"Pipe"},"HXC_08496c4d-a1884164":{"id":"HXC_08496c4d-a1884164","type":"svg-ext-html_chart","name":"chart1","property":{"id":"b1313a46a6-129013","options":{"title":"Title","fontFamily":"Roboto-Regular","legendFontSize":12,"colorBackground":"rgba(0,0,0,0)","legendBackground":"rgba(0,0,0,0)","titleHeight":18,"axisLabelFontSize":12,"labelsDivWidth":0,"axisLineColor":"rgba(0,0,0,1)","axisLabelColor":"rgba(0,0,0,1)","legendMode":"follow","series":[],"width":360,"height":200,"decimalsPrecision":2,"realtime":60,"dateFormat":"MM_DD_YYYY","timeFormat":"hh_mm_ss"}},"label":"HtmlChart"},"SHE_71aa5b9e-df9b470d":{"id":"SHE_71aa5b9e-df9b470d","type":"svg-ext-ape-piston","name":"shape_3","property":{"events":[],"actions":[{"options":{},"range":{"min":"0","max":"50"},"variableId":"t_6dcb0c08-269e4a6f","type":"downup"},{"options":{},"range":{"min":"50","max":"100"},"variableId":"t_6dcb0c08-269e4a6f","type":"stop"}],"variableId":"t_6dcb0c08-269e4a6f","ranges":[{"type":"range","min":0,"max":"50","color":"#0ac97dff","stroke":"#0ac97dff"},{"type":"range","color":"#ffd04aff","stroke":"#ffd04aff","min":"50","max":"85"},{"type":"range","color":"#ff0000ff","stroke":"#ff0000ff","min":"85","max":100}]},"label":"AnimProcEng"},"PIE_90df4605-332b4535":{"id":"PIE_90df4605-332b4535","type":"svg-ext-pipe","name":"pipe_2","property":{"events":[],"actions":[],"options":{"borderWidth":78,"border":"#000000","pipeWidth":65,"pipe":"#0000ff","contentWidth":40,"content":"#0044ff","contentSpace":48}},"label":"Pipe"}},"variables":{},"svgcontent":"\n \n \n \n \n Layer 1\n \n ##.##\n \n 温度\n 湿度\n \n ##.##\n \n \n \n \n \n \n \n
\n \n
\n
0
\n \n
\n
\n
\n
\n
\n 0-100模拟值\n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
0
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
50
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
100
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n 指示灯\n 滑块\n 欢迎使用iotgateway在线组态\n 动画1\n 动画2\n \n \n \n \n \n 管道动画\n 目前在线组态还没有与网关有机结合,以后考虑深度集成\n 请不要修改网关已有数据\n 在线组态工程,可以修改 但不要保存\n \n \n \n
\n \n
\n \n \n
\n
\n
chart1
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n
"}],"layout":{"start":"v_514346b2-713117","navigation":{"mode":"void","type":"block","items":[]},"header":{"bkcolor":"#ffffff","fgcolor":"#000000"},"showdev":false,"inputdialog":"true","hidenavigation":"false","theme":"default","zoom":"enabled"}},"version":"1.00","charts":[{"id":"b1313a46a6-129013","name":"chart1","lines":[{"id":"t_c6a37e56-b5844de9","name":"v1/gateway/telemetry/Modbus/temperature","device":"iotgateway","color":"#4484ef","label":"温度","yaxis":1},{"id":"t_e7c98df3-7e32478e","name":"v1/gateway/telemetry/Modbus/humidity","device":"iotgateway","color":"#ef0909","label":"湿度","yaxis":1},{"id":"t_6dcb0c08-269e4a6f","name":"v1/gateway/telemetry/Modbus/random4","device":"iotgateway","color":"#00b050","label":"随机数","yaxis":1}]}],"server":{"id":"0","name":"FUXA Server","type":"FuxaServer","property":{}}} \ No newline at end of file diff --git a/webscada-project.json b/webscada-project.json deleted file mode 100644 index bd0620c..0000000 --- a/webscada-project.json +++ /dev/null @@ -1 +0,0 @@ -{"devices":{"d_c87336e7-d651446f":{"id":"d_c87336e7-d651446f","property":{"address":"mqtt://172.17.0.1:1888","port":null,"slot":null,"rack":null,"baudrate":9600,"databits":8,"stopbits":1,"parity":"None"},"enabled":true,"tags":{"t_32568b1c-c6d44cff":{"id":"t_32568b1c-c6d44cff","type":"raw","address":"v1/gateway/telemetry/ModbusTcp/humidity","memaddress":"v1/gateway/telemetry/ModbusTcp/humidity","options":{"subs":["v1/gateway/telemetry/ModbusTcp/humidity"]},"name":"v1/gateway/telemetry/ModbusTcp/humidity"},"t_3afbea1a-47aa4e3f":{"id":"t_3afbea1a-47aa4e3f","type":"raw","address":"v1/gateway/telemetry/ModbusTcp/random","memaddress":"v1/gateway/telemetry/ModbusTcp/random","options":{"subs":["v1/gateway/telemetry/ModbusTcp/random"]},"name":"v1/gateway/telemetry/ModbusTcp/random"},"t_426b8357-4fa74aa1":{"id":"t_426b8357-4fa74aa1","type":"raw","address":"v1/gateway/telemetry/ModbusTcp/random2","memaddress":"v1/gateway/telemetry/ModbusTcp/random2","options":{"subs":["v1/gateway/telemetry/ModbusTcp/random2"]},"name":"v1/gateway/telemetry/ModbusTcp/random2"},"t_589c38a3-f0e24c54":{"id":"t_589c38a3-f0e24c54","type":"raw","address":"v1/gateway/telemetry/ModbusTcp/random3","memaddress":"v1/gateway/telemetry/ModbusTcp/random3","options":{"subs":["v1/gateway/telemetry/ModbusTcp/random3"]},"name":"v1/gateway/telemetry/ModbusTcp/random3"},"t_48cc7c34-17294a01":{"id":"t_48cc7c34-17294a01","type":"raw","address":"v1/gateway/telemetry/ModbusTcp/temperature","memaddress":"v1/gateway/telemetry/ModbusTcp/temperature","options":{"subs":["v1/gateway/telemetry/ModbusTcp/temperature"]},"name":"v1/gateway/telemetry/ModbusTcp/temperature"},"t_ab152868-8d3a474f":{"id":"t_ab152868-8d3a474f","type":"raw","address":"v1/gateway/telemetry/ModbusTcp/random4","memaddress":"v1/gateway/telemetry/ModbusTcp/random4","options":{"subs":["v1/gateway/telemetry/ModbusTcp/random4"]},"name":"v1/gateway/telemetry/ModbusTcp/random4"}},"name":"iotgateway","type":"MQTTclient","polling":3000}},"hmi":{"views":[{"id":"v_514346b2-713117","name":"MainView","profile":{"width":1000,"height":550,"bkcolor":"","margin":10},"items":{"VAL_520cb1f2-f3214444":{"id":"VAL_520cb1f2-f3214444","type":"svg-ext-value","name":"shape_1","property":{"events":[],"actions":[],"variableId":"t_48cc7c34-17294a01","ranges":[{"type":"unit","min":20,"max":80,"color":"","stroke":"","textId":null,"fractionDigitsId":null}]},"label":"Value"},"VAL_fdb8ef5d-16e24feb":{"id":"VAL_fdb8ef5d-16e24feb","type":"svg-ext-value","name":"shape_2","property":{"events":[],"actions":[],"variableId":"t_32568b1c-c6d44cff","ranges":[{"type":"unit","min":20,"max":80,"color":"","stroke":"","textId":null,"fractionDigitsId":null}]},"label":"Value"},"SHE_fe35bb94-b0784a1a":{"id":"SHE_fe35bb94-b0784a1a","type":"svg-ext-ape-eli","name":"shape_4","property":{"events":[{"actoptions":{"variablesMapping":[]},"type":"click"}],"actions":[{"options":{},"range":{"min":"0","max":"50"},"variableId":"t_ab152868-8d3a474f","type":"clockwise"},{"options":{},"range":{"min":"50","max":"85"},"variableId":"t_ab152868-8d3a474f","type":"anticlockwise"}],"variableId":"t_ab152868-8d3a474f","ranges":[{"type":"range","min":0,"max":"50","color":"#0ac97dff","stroke":"#0ac97dff"},{"type":"range","color":"#ffd04aff","stroke":"#ffd04aff","min":"50","max":"85"},{"type":"range","color":"#ff0000ff","stroke":"#ff0000ff","min":"85","max":100}]},"label":"AnimProcEng"},"BAG_007e8c11-547f44bc":{"id":"BAG_007e8c11-547f44bc","type":"svg-ext-html_bag","name":"gauge_1","property":{"events":[],"actions":[],"variableId":"t_ab152868-8d3a474f","options":{"minValue":0,"maxValue":"100","animationSpeed":40,"colorStart":"#6fadcf","colorStop":"#6fadcf","gradientType":"","strokeColor":"#e0e0e0","pointer":{"length":0.6,"strokeWidth":0.05,"iconScale":1,"color":"#000000"},"angle":-0.25,"lineWidth":0.2,"radiusScale":0.9,"fontSize":18,"textFilePosition":20,"limitMax":false,"limitMin":false,"highDpiSupport":true,"backgroundColor":"rgba(255, 255, 255, 0)","shadowColor":"#d5d5d5","fractionDigits":0,"ticksEnabled":true,"renderTicks":{"divisions":5,"divWidth":1.1,"divLength":0.7,"divColor":"#333333","subDivisions":3,"subLength":0.5,"subWidth":0.6,"subColor":"#666666"},"staticLabelsText":"200;500;2100;2800","staticFontSize":10,"staticFontColor":"#000000","staticLabels":{"labels":[0,20,40,60,80,100],"font":"10px Sans-serif","color":"#000000"},"staticZones":[{"strokeStyle":"#30B32D","min":"0","max":"50"},{"strokeStyle":"#FFDD00","min":"50","max":"85"},{"strokeStyle":"#F03E3E","min":"85","max":"100"}],"type":2}},"label":"HtmlBag"},"SLI_5e3b35ee-0d7442ed":{"id":"SLI_5e3b35ee-0d7442ed","type":"svg-ext-html_slider","name":"slider_1","property":{"events":[],"actions":[],"variableId":"t_ab152868-8d3a474f","options":{"orientation":"vertical","direction":"ltr","fontFamily":"Sans-serif","shape":{"baseColor":"#dcdcdc","connectColor":"#49b2ff","handleColor":"#018ef5"},"marker":{"color":"#000","subWidth":5,"subHeight":1,"fontSize":18,"divHeight":2,"divWidth":12},"range":{"min":0,"max":100},"step":1,"pips":{"mode":"values","values":[0,50,100],"density":4},"tooltip":{"type":"none","decimals":0,"background":"#FFF","color":"#000","fontSize":12}}},"label":"HtmlSlider"},"GSE_2aa7afdc-1f7c4f95":{"id":"GSE_2aa7afdc-1f7c4f95","type":"svg-ext-gauge_semaphore","name":"led_1","property":{"events":[],"actions":[],"variableId":"t_ab152868-8d3a474f","ranges":[{"type":"range","min":"0","max":"50","color":"#00b050ff","stroke":"#00b050ff"},{"type":"range","color":"#ffd04aff","stroke":"#ffd04aff","min":"50","max":"85"}]},"label":"HtmlSemaphore"},"PIE_923c051b-31124bd3":{"id":"PIE_923c051b-31124bd3","type":"svg-ext-pipe","name":"pipe_1","property":{"events":[],"actions":[{"options":{},"range":{"min":"0","max":"50"},"variableId":"t_ab152868-8d3a474f","type":"clockwise"},{"options":{},"range":{"min":"50","max":"85"},"variableId":"t_ab152868-8d3a474f","type":"anticlockwise"},{"options":{},"range":{"min":"85","max":"100"},"variableId":"t_ab152868-8d3a474f","type":"clockwise"}],"options":{"borderWidth":40,"border":"#000000","pipeWidth":30,"pipe":"#0000ff","contentWidth":30,"content":"#0044ff","contentSpace":48}},"label":"Pipe"},"HXC_08496c4d-a1884164":{"id":"HXC_08496c4d-a1884164","type":"svg-ext-html_chart","name":"chart1","property":{"id":"b1313a46a6-129013","options":{"title":"Title","fontFamily":"Roboto-Regular","legendFontSize":12,"colorBackground":"rgba(0,0,0,0)","legendBackground":"rgba(0,0,0,0)","titleHeight":18,"axisLabelFontSize":12,"labelsDivWidth":0,"axisLineColor":"rgba(0,0,0,1)","axisLabelColor":"rgba(0,0,0,1)","legendMode":"follow","series":[],"width":360,"height":200,"decimalsPrecision":2,"realtime":60,"dateFormat":"MM_DD_YYYY","timeFormat":"hh_mm_ss"}},"label":"HtmlChart"},"SHE_71aa5b9e-df9b470d":{"id":"SHE_71aa5b9e-df9b470d","type":"svg-ext-ape-piston","name":"shape_3","property":{"events":[],"actions":[{"options":{},"range":{"min":"0","max":"50"},"variableId":"t_ab152868-8d3a474f","type":"downup"},{"options":{},"range":{"min":"50","max":"100"},"variableId":"t_ab152868-8d3a474f","type":"stop"}],"variableId":"t_ab152868-8d3a474f","ranges":[{"type":"range","min":0,"max":"50","color":"#0ac97dff","stroke":"#0ac97dff"},{"type":"range","color":"#ffd04aff","stroke":"#ffd04aff","min":"50","max":"85"},{"type":"range","color":"#ff0000ff","stroke":"#ff0000ff","min":"85","max":100}]},"label":"AnimProcEng"}},"variables":{},"svgcontent":"\n \n \n \n \n Layer 1\n \n ##.##\n \n 温度\n 湿度\n \n ##.##\n \n \n \n \n \n \n \n
\n \n
\n
0
\n \n
\n
\n
\n
\n
\n 0-100模拟值\n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
0
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
50
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
100
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n 指示灯\n 滑块\n 欢迎使用iotgateway在线组态\n 动画1\n 动画2\n \n \n \n \n \n 管道动画\n 目前在线组态还没有与网关有机结合,以后考虑深度集成\n 请不要修改网关已有数据\n 在线组态工程,可以修改 但不要保存\n \n \n \n
\n \n
\n \n \n
\n
\n
chart1
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
"}],"layout":{"start":"","navigation":{"mode":"void","type":"block","items":[]},"header":{"bkcolor":"#ffffff","fgcolor":"#000000"},"showdev":false,"inputdialog":"false","hidenavigation":"true","theme":"default"}},"version":"1.00","server":{"id":"0","name":"FUXA Server","type":"FuxaServer","property":{}},"charts":[{"id":"b1313a46a6-129013","name":"chart1","lines":[{"id":"t_32568b1c-c6d44cff","name":"v1/gateway/telemetry/ModbusTcp/humidity","device":"iotgateway","color":"#4484ef","label":"湿度","yaxis":1},{"id":"t_ab152868-8d3a474f","name":"v1/gateway/telemetry/ModbusTcp/random4","device":"iotgateway","color":"#ef0909","label":"随机数","yaxis":1},{"id":"t_48cc7c34-17294a01","name":"v1/gateway/telemetry/ModbusTcp/temperature","device":"iotgateway","color":"#00b050","label":"温度","yaxis":1}]}]} \ No newline at end of file