diff --git a/Modbus.Net/Modbus.Net.HJ212/HJ212Machine.cs b/Modbus.Net/Modbus.Net.HJ212/HJ212Machine.cs index f2583eb..ebb5023 100644 --- a/Modbus.Net/Modbus.Net.HJ212/HJ212Machine.cs +++ b/Modbus.Net/Modbus.Net.HJ212/HJ212Machine.cs @@ -27,8 +27,8 @@ namespace Modbus.Net.HJ212 /// /// 设备的ID号 /// 连接地址 - public HJ212Machine(TKey id, string connectionString, string st, string cn, string pw, string mn) - : base(id, null, true) + public HJ212Machine(TKey id, string alias, string connectionString, string st, string cn, string pw, string mn) + : base(id, alias, null, true) { BaseUtility = new HJ212Utility(connectionString); ST = st; diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusMachine.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusMachine.cs index 0e20f5f..5c62092 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusMachine.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusMachine.cs @@ -20,10 +20,10 @@ namespace Modbus.Net.Modbus /// 从站号 /// 主站号 /// 端格式 - public ModbusMachine(TKey id, ModbusType connectionType, string connectionString, + public ModbusMachine(TKey id, string alias, ModbusType connectionType, string connectionString, IEnumerable> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress, Endian endian) - : base(id, getAddresses, keepConnect, slaveAddress, masterAddress) + : base(id, alias, getAddresses, keepConnect, slaveAddress, masterAddress) { BaseUtility = new ModbusUtility(connectionType, connectionString, slaveAddress, masterAddress, endian); AddressFormater = new AddressFormaterModbus(); @@ -41,10 +41,10 @@ namespace Modbus.Net.Modbus /// 从站号 /// 主站号 /// 端格式 - public ModbusMachine(TKey id, ModbusType connectionType, string connectionString, + public ModbusMachine(TKey id, string alias, ModbusType connectionType, string connectionString, IEnumerable> getAddresses, byte slaveAddress, byte masterAddress, Endian endian) - : this(id, connectionType, connectionString, getAddresses, true, slaveAddress, masterAddress, endian) + : this(id, alias, connectionType, connectionString, getAddresses, true, slaveAddress, masterAddress, endian) { } } diff --git a/Modbus.Net/Modbus.Net.Siemens/SiemensMachine.cs b/Modbus.Net/Modbus.Net.Siemens/SiemensMachine.cs index 4bfd5ed..08562d0 100644 --- a/Modbus.Net/Modbus.Net.Siemens/SiemensMachine.cs +++ b/Modbus.Net/Modbus.Net.Siemens/SiemensMachine.cs @@ -22,9 +22,9 @@ namespace Modbus.Net.Siemens /// 主站号 /// 本机模块位,0到7,仅200使用,其它型号不要填写 /// PLC模块位,0到7,仅200使用,其它型号不要填写 - public SiemensMachine(TKey id, SiemensType connectionType, string connectionString, SiemensMachineModel model, + public SiemensMachine(TKey id, string alias, SiemensType connectionType, string connectionString, SiemensMachineModel model, IEnumerable> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress, byte src = 1, byte dst = 0) - : base(id, getAddresses, keepConnect, slaveAddress, masterAddress) + : base(id, alias, getAddresses, keepConnect, slaveAddress, masterAddress) { BaseUtility = new SiemensUtility(connectionType, connectionString, model, slaveAddress, masterAddress, src, dst); AddressFormater = new AddressFormaterSiemens(); @@ -44,9 +44,9 @@ namespace Modbus.Net.Siemens /// 主站号 /// 本机模块位,0到7,仅200使用,其它型号不要填写 /// PLC模块位,0到7,仅200使用,其它型号不要填写 - public SiemensMachine(TKey id, SiemensType connectionType, string connectionString, SiemensMachineModel model, + public SiemensMachine(TKey id, string alias, SiemensType connectionType, string connectionString, SiemensMachineModel model, IEnumerable> getAddresses, byte slaveAddress, byte masterAddress, byte src = 1, byte dst = 0) - : this(id, connectionType, connectionString, model, getAddresses, true, slaveAddress, masterAddress, src, dst) + : this(id, alias, connectionType, connectionString, model, getAddresses, true, slaveAddress, masterAddress, src, dst) { } } diff --git a/Modbus.Net/Modbus.Net/Machine/BaseMachine.cs b/Modbus.Net/Modbus.Net/Machine/BaseMachine.cs index 039885a..7fabd1e 100644 --- a/Modbus.Net/Modbus.Net/Machine/BaseMachine.cs +++ b/Modbus.Net/Modbus.Net/Machine/BaseMachine.cs @@ -25,8 +25,8 @@ namespace Modbus.Net /// 是否保持连接 /// 从站地址 /// 主站地址 - protected BaseMachine(TKey id, IEnumerable> getAddresses, bool keepConnect, byte slaveAddress, - byte masterAddress) : base(id, getAddresses, keepConnect) + protected BaseMachine(TKey id, string alias, IEnumerable> getAddresses, bool keepConnect, byte slaveAddress, + byte masterAddress) : base(id, alias, getAddresses, keepConnect) { SlaveAddress = slaveAddress; MasterAddress = masterAddress; @@ -510,8 +510,8 @@ namespace Modbus.Net /// /// 设备的ID号 /// 需要与设备通讯的地址 - protected BaseMachine(TKey id, IEnumerable> getAddresses) - : this(id, getAddresses, false) + protected BaseMachine(TKey id, string alias, IEnumerable> getAddresses) + : this(id, alias, getAddresses, false) { } @@ -521,11 +521,22 @@ namespace Modbus.Net /// 设备的ID号 /// 需要与设备通讯的地址 /// 是否保持连接 - protected BaseMachine(TKey id, IEnumerable> getAddresses, bool keepConnect) + protected BaseMachine(TKey id, string alias, IEnumerable> getAddresses, bool keepConnect) { Id = id; GetAddresses = getAddresses; KeepConnect = keepConnect; + if (alias.Contains(':')) + { + var aliasArray = alias.Split(':'); + ProjectName = aliasArray[0]; + MachineName = aliasArray[1]; + } + else + { + ProjectName = ""; + MachineName = alias; + } } private readonly int _maxErrorCount = 3; diff --git a/Samples/AnyType/Controllers/HomeController.cs b/Samples/AnyType/Controllers/HomeController.cs index ccc15eb..cf7ada0 100644 --- a/Samples/AnyType/Controllers/HomeController.cs +++ b/Samples/AnyType/Controllers/HomeController.cs @@ -56,7 +56,7 @@ namespace AnyType.Controllers Value = 0, Type = unitValue.DataType.Name }; - var machine = new ModbusMachine("1", ModbusType.Tcp, "10.10.18.251:502", addressUnits, true, 2, 0, Endian.BigEndianLsb); + var machine = new ModbusMachine("1", "", ModbusType.Tcp, "10.10.18.251:502", addressUnits, true, 2, 0, Endian.BigEndianLsb); //启动任务 await MachineJobSchedulerCreator.CreateScheduler("Trigger1", -1, 1).Result.From(machine.Id, machine, MachineDataType.CommunicationTag).Result.Query("Query1", returnValues => diff --git a/Samples/TripleAdd/Controllers/HomeController.cs b/Samples/TripleAdd/Controllers/HomeController.cs index a247f6a..d71d015 100644 --- a/Samples/TripleAdd/Controllers/HomeController.cs +++ b/Samples/TripleAdd/Controllers/HomeController.cs @@ -55,7 +55,7 @@ namespace TripleAdd.Controllers { if (machine == null) { - machine = new ModbusMachine("1", ModbusType.Tcp, "10.10.18.251", new List() + machine = new ModbusMachine("1", "", ModbusType.Tcp, "10.10.18.251", new List() { new AddressUnit() {Id = "1", Area = "4X", Address = 1, CommunicationTag = "Add1", DataType = typeof(ushort), Zoom = 1, DecimalPos = 0}, new AddressUnit() {Id = "2", Area = "4X", Address = 2, CommunicationTag = "Add2", DataType = typeof(ushort), Zoom = 1, DecimalPos = 0}, diff --git a/Tests/Modbus.Net.Tests/BaseTest.cs b/Tests/Modbus.Net.Tests/BaseTest.cs index 951babc..4164299 100644 --- a/Tests/Modbus.Net.Tests/BaseTest.cs +++ b/Tests/Modbus.Net.Tests/BaseTest.cs @@ -125,7 +125,7 @@ namespace Modbus.Net.Tests }, }; - _baseMachine = new SiemensMachine(2, SiemensType.Tcp, _machineIp, SiemensMachineModel.S7_1200, _addressUnits, true, 2, 0, 1, 0) + _baseMachine = new SiemensMachine(2, "", SiemensType.Tcp, _machineIp, SiemensMachineModel.S7_1200, _addressUnits, true, 2, 0, 1, 0) { ProjectName = "Project 1", MachineName = "Test 2" diff --git a/Tests/Modbus.Net.Tests/EndianTest.cs b/Tests/Modbus.Net.Tests/EndianTest.cs index 907f71a..46f3cc8 100644 --- a/Tests/Modbus.Net.Tests/EndianTest.cs +++ b/Tests/Modbus.Net.Tests/EndianTest.cs @@ -16,9 +16,9 @@ namespace Modbus.Net.Tests [TestInitialize] public void Init() { - _modbusTcpMachine = new ModbusMachine("1", ModbusType.Tcp, _machineIp, null, true, 1, 0, Endian.BigEndianLsb); + _modbusTcpMachine = new ModbusMachine("1", "",ModbusType.Tcp, _machineIp, null, true, 1, 0, Endian.BigEndianLsb); - _modbusTcpMachine2 = new ModbusMachine("2", ModbusType.Tcp, _machineIp, null, true, 1, 0, Endian.LittleEndianLsb); + _modbusTcpMachine2 = new ModbusMachine("2", "", ModbusType.Tcp, _machineIp, null, true, 1, 0, Endian.LittleEndianLsb); } [TestMethod] diff --git a/Tests/Modbus.Net.Tests/MachineMethodTest.cs b/Tests/Modbus.Net.Tests/MachineMethodTest.cs index ff72f0f..1b04f5c 100644 --- a/Tests/Modbus.Net.Tests/MachineMethodTest.cs +++ b/Tests/Modbus.Net.Tests/MachineMethodTest.cs @@ -13,7 +13,7 @@ namespace Modbus.Net.Tests [TestMethod] public void GetUtility() { - BaseMachine baseMachine = new ModbusMachine(1, ModbusType.Tcp, _machineIp, null, true, 2, 0, Endian.BigEndianLsb); + BaseMachine baseMachine = new ModbusMachine(1, "", ModbusType.Tcp, _machineIp, null, true, 2, 0, Endian.BigEndianLsb); var utility = baseMachine.GetUtilityMethods(); var methods = utility.GetType().GetRuntimeMethods(); Assert.AreEqual(methods.FirstOrDefault(method => method.Name == "GetDatasAsync") != null, true); @@ -24,7 +24,7 @@ namespace Modbus.Net.Tests [TestMethod] public async Task InvokeUtility() { - BaseMachine baseMachine = new ModbusMachine(1, ModbusType.Tcp, _machineIp, null, true, 2, 0, Endian.BigEndianLsb); + BaseMachine baseMachine = new ModbusMachine(1, "", ModbusType.Tcp, _machineIp, null, true, 2, 0, Endian.BigEndianLsb); await baseMachine.BaseUtility.ConnectAsync(); var success = await baseMachine.BaseUtility.GetUtilityMethods().SetDatasAsync("4X 1", new object[] { (byte)11 }, 1); Assert.AreEqual(success.IsSuccess, true); @@ -36,7 +36,7 @@ namespace Modbus.Net.Tests [TestMethod] public async Task InvokeMachine() { - BaseMachine baseMachine = new ModbusMachine(1, ModbusType.Tcp, _machineIp, new List + BaseMachine baseMachine = new ModbusMachine(1, "",ModbusType.Tcp, _machineIp, new List { new AddressUnit { diff --git a/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs b/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs index 0300503..4f4edb0 100644 --- a/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs +++ b/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs @@ -16,8 +16,8 @@ namespace Modbus.Net.Tests [TestInitialize] public void Init() { - _modbusRtuMachine1 = new ModbusMachine("1", ModbusType.Rtu, _machineCom, null, true, 1, 0, Endian.BigEndianLsb); - _modbusRtuMachine2 = new ModbusMachine("2", ModbusType.Rtu, _machineCom, null, true, 2, 0, Endian.BigEndianLsb); + _modbusRtuMachine1 = new ModbusMachine("1", "", ModbusType.Rtu, _machineCom, null, true, 1, 0, Endian.BigEndianLsb); + _modbusRtuMachine2 = new ModbusMachine("2", "", ModbusType.Rtu, _machineCom, null, true, 2, 0, Endian.BigEndianLsb); } [TestMethod] diff --git a/Tests/Modbus.Net.Tests/ModbusTest.cs b/Tests/Modbus.Net.Tests/ModbusTest.cs index 0a288e2..8cd03eb 100644 --- a/Tests/Modbus.Net.Tests/ModbusTest.cs +++ b/Tests/Modbus.Net.Tests/ModbusTest.cs @@ -22,11 +22,11 @@ namespace Modbus.Net.Tests [TestInitialize] public void Init() { - _modbusTcpMachine = new ModbusMachine("1", ModbusType.Tcp, _machineIp, null, true, 2, 0, Endian.BigEndianLsb); + _modbusTcpMachine = new ModbusMachine("1", "", ModbusType.Tcp, _machineIp, null, true, 2, 0, Endian.BigEndianLsb); - _modbusRtuMachine = new ModbusMachine("2", ModbusType.Rtu, _machineCom, null, true, 2, 0, Endian.BigEndianLsb); + _modbusRtuMachine = new ModbusMachine("2", "", ModbusType.Rtu, _machineCom, null, true, 2, 0, Endian.BigEndianLsb); - _modbusAsciiMachine = new ModbusMachine("3", ModbusType.Ascii, _machineCom2, null, true, 2, 0, Endian.BigEndianLsb); + _modbusAsciiMachine = new ModbusMachine("3", "", ModbusType.Ascii, _machineCom2, null, true, 2, 0, Endian.BigEndianLsb); } [TestMethod] diff --git a/Tests/Modbus.Net.Tests/SiemensTest.cs b/Tests/Modbus.Net.Tests/SiemensTest.cs index 83c9722..8c861ea 100644 --- a/Tests/Modbus.Net.Tests/SiemensTest.cs +++ b/Tests/Modbus.Net.Tests/SiemensTest.cs @@ -18,9 +18,9 @@ namespace Modbus.Net.Tests [TestInitialize] public void Init() { - _siemensTcpMachine = new SiemensMachine("1", SiemensType.Tcp, _machineIp, SiemensMachineModel.S7_1200, null, true, 2, 0); + _siemensTcpMachine = new SiemensMachine("1", "", SiemensType.Tcp, _machineIp, SiemensMachineModel.S7_1200, null, true, 2, 0); - _siemensPpiMachine = new SiemensMachine("2", SiemensType.Ppi, _machineCom, SiemensMachineModel.S7_200, null, true, 2, 0, 1, 0); + _siemensPpiMachine = new SiemensMachine("2", "", SiemensType.Ppi, _machineCom, SiemensMachineModel.S7_200, null, true, 2, 0, 1, 0); } [TestMethod]