diff --git a/Modbus.Net/Modbus.Net.Modbus/ModbusUtility.cs b/Modbus.Net/Modbus.Net.Modbus/ModbusUtility.cs index 5f6cbb2..95a751f 100644 --- a/Modbus.Net/Modbus.Net.Modbus/ModbusUtility.cs +++ b/Modbus.Net/Modbus.Net.Modbus/ModbusUtility.cs @@ -27,7 +27,7 @@ namespace Modbus.Net.Modbus /// /// Modbus基础Api入口 /// - public class ModbusUtility : BaseUtility, IIUtilityMethodTime + public class ModbusUtility : BaseUtility, IUtilityMethodTime { /// /// Modbus协议类型 diff --git a/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs b/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs index f86fac3..37bfa33 100644 --- a/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs +++ b/Tests/Modbus.Net.Tests/ModbusMultiStationTest.cs @@ -22,7 +22,7 @@ namespace Modbus.Net.Tests } [TestMethod] - public async Task Get() + public async Task MultiStation() { var addresses = new List { @@ -85,56 +85,72 @@ namespace Modbus.Net.Tests _modbusRtuMachine1.GetAddresses = addresses.ToList(); _modbusRtuMachine2.GetAddresses = addresses.ToList(); - await _modbusRtuMachine1.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary() + Random r = new Random(); + var dic1 = new Dictionary() { { - "A1", 70 + "A1", r.Next(0, UInt16.MaxValue) }, { - "A2", 71 + "A2", r.Next(0, UInt16.MaxValue) }, { - "A3", 72 + "A3", r.Next(0, UInt16.MaxValue) }, { - "A4", 73 + "A4", r.Next(0, UInt16.MaxValue) }, { - "A5", 717870 + "A5", r.Next() }, { - "A6", 717871 + "A6", r.Next() }, - }); - await _modbusRtuMachine2.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary() + }; + + var dic2 = new Dictionary() { { - "A1", 74 + "A1", r.Next(0, UInt16.MaxValue) }, { - "A2", 75 + "A2", r.Next(0, UInt16.MaxValue) }, { - "A3", 76 + "A3", r.Next(0, UInt16.MaxValue) }, { - "A4", 77 + "A4", r.Next(0, UInt16.MaxValue) }, { - "A5", 717873 + "A5", r.Next() }, { - "A6", 717874 + "A6", r.Next() }, - }); + }; + + await _modbusRtuMachine1.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1); + await _modbusRtuMachine2.SetDatasAsync(MachineSetDataType.CommunicationTag, dic2); + var ans = await _modbusRtuMachine1.GetDatasAsync(MachineGetDataType.CommunicationTag); var ans2 = await _modbusRtuMachine2.GetDatasAsync(MachineGetDataType.CommunicationTag); _modbusRtuMachine1.Disconnect(); _modbusRtuMachine2.Disconnect(); - Assert.AreEqual(ans["A1"].PlcValue, 70); - Assert.AreEqual(ans2["A1"].PlcValue, 74); + Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]); + Assert.AreEqual(ans2["A1"].PlcValue, dic2["A1"]); + Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]); + Assert.AreEqual(ans2["A2"].PlcValue, dic2["A2"]); + Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]); + Assert.AreEqual(ans2["A3"].PlcValue, dic2["A3"]); + Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]); + Assert.AreEqual(ans2["A4"].PlcValue, dic2["A4"]); + Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]); + Assert.AreEqual(ans2["A5"].PlcValue, dic2["A5"]); + Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]); + Assert.AreEqual(ans2["A6"].PlcValue, dic2["A6"]); } } } diff --git a/Tests/Modbus.Net.Tests/ModbusTest.cs b/Tests/Modbus.Net.Tests/ModbusTest.cs index 6e25dd6..b4b4833 100644 --- a/Tests/Modbus.Net.Tests/ModbusTest.cs +++ b/Tests/Modbus.Net.Tests/ModbusTest.cs @@ -20,6 +20,8 @@ namespace Modbus.Net.Tests [TestMethod] public async Task ModbusCoilSingle() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -33,15 +35,17 @@ namespace Modbus.Net.Tests } }; - _modbusTcpMachine.GetAddresses = addresses; - await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary() + var dic1 = new Dictionary() { { - "0X 1.0", 1 + "0X 1.0", r.Next(0, 2) } - }); + }; + + _modbusTcpMachine.GetAddresses = addresses; + await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1); var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address); - Assert.AreEqual(ans["0X 1.0"].PlcValue, 1); + Assert.AreEqual(ans["0X 1.0"].PlcValue, dic1["0X 1.0"]); } [TestMethod] @@ -89,6 +93,8 @@ namespace Modbus.Net.Tests [TestMethod] public async Task ModbusRegSingle() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -102,20 +108,24 @@ namespace Modbus.Net.Tests } }; - _modbusTcpMachine.GetAddresses = addresses; - await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary() + var dic1 = new Dictionary() { { - "4X 1", 31125 + "4X 1", r.Next(0, UInt16.MaxValue) } - }); + }; + + _modbusTcpMachine.GetAddresses = addresses; + await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1); var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address); - Assert.AreEqual(ans["4X 1.0"].PlcValue, 31125); + Assert.AreEqual(ans["4X 1.0"].PlcValue, dic1["4X 1"]); } [TestMethod] public async Task ModbusRegMultiple() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -174,35 +184,38 @@ namespace Modbus.Net.Tests } }; - _modbusTcpMachine.GetAddresses = addresses; - await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary() + var dic1 = new Dictionary() { { - "A1", 70 + "A1", r.Next(0, UInt16.MaxValue) }, { - "A2", 71 + "A2", r.Next(0, UInt16.MaxValue) }, { - "A3", 72 + "A3", r.Next(0, UInt16.MaxValue) }, { - "A4", 73 + "A4", r.Next(0, UInt16.MaxValue) }, { - "A5", 717870 + "A5", r.Next() }, { - "A6", 717871 + "A6", r.Next() }, - }); + }; + + _modbusTcpMachine.GetAddresses = addresses; + await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1); + var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag); - Assert.AreEqual(ans["A1"].PlcValue, 70); - Assert.AreEqual(ans["A2"].PlcValue, 71); - Assert.AreEqual(ans["A3"].PlcValue, 72); - Assert.AreEqual(ans["A4"].PlcValue, 73); - Assert.AreEqual(ans["A5"].PlcValue, 717870); - Assert.AreEqual(ans["A6"].PlcValue, 717871); + Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]); + Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]); + Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]); + Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]); + Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]); + Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]); } } } diff --git a/Tests/Modbus.Net.Tests/SiemensTest.cs b/Tests/Modbus.Net.Tests/SiemensTest.cs index 313595b..6d4b9af 100644 --- a/Tests/Modbus.Net.Tests/SiemensTest.cs +++ b/Tests/Modbus.Net.Tests/SiemensTest.cs @@ -21,6 +21,8 @@ namespace Modbus.Net.Tests [TestMethod] public async Task SiemensCoilSingle() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -34,15 +36,18 @@ namespace Modbus.Net.Tests } }; - _siemensTcpMachine.GetAddresses = addresses; - await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary() + var dic1 = new Dictionary() { { - "Q 0.0", 1 + "Q 0.0", r.Next(0, 2) } - }); + }; + + _siemensTcpMachine.GetAddresses = addresses; + await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1); + var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); - Assert.AreEqual(ans["Q 0.0"].PlcValue, 1); + Assert.AreEqual(ans["Q 0.0"].PlcValue, dic1["Q 0.0"]); } [TestMethod] @@ -69,6 +74,8 @@ namespace Modbus.Net.Tests [TestMethod] public async Task SiemensMSingle() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -84,19 +91,23 @@ namespace Modbus.Net.Tests _siemensTcpMachine.GetAddresses = addresses; - await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary() + var dic1 = new Dictionary() { { - "M 0", 31125 + "M 0", r.Next(0, UInt16.MaxValue) } - }); + }; + + await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1); var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); - Assert.AreEqual(ans["M 0.0"].PlcValue, 31125); + Assert.AreEqual(ans["M 0.0"].PlcValue, dic1["M 0"]); } [TestMethod] public async Task SiemensMSingleBool() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -112,19 +123,24 @@ namespace Modbus.Net.Tests _siemensTcpMachine.GetAddresses = addresses; - await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary() + var dic1 = new Dictionary() { { - "M 0.0", 1 + "M 0.0", r.Next(0, 2) } - }); + }; + + await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1); + var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); - Assert.AreEqual(ans["M 0.0"].PlcValue, 1); + Assert.AreEqual(ans["M 0.0"].PlcValue, dic1["M 0.0"]); } [TestMethod] public async Task SiemensDbSingle() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -138,20 +154,25 @@ namespace Modbus.Net.Tests } }; - _siemensTcpMachine.GetAddresses = addresses; - await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary() + var dic1 = new Dictionary() { { - "DB2 0.0", 31125 + "DB2 0.0", r.Next(0, UInt16.MaxValue) } - }); + }; + + _siemensTcpMachine.GetAddresses = addresses; + await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1); + var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address); - Assert.AreEqual(ans["DB2 0.0"].PlcValue, 31125); + Assert.AreEqual(ans["DB2 0.0"].PlcValue, dic1["DB2 0.0"]); } [TestMethod] public async Task SiemensDbMultiple() { + Random r = new Random(); + var addresses = new List { new AddressUnit @@ -210,35 +231,37 @@ namespace Modbus.Net.Tests } }; - _siemensTcpMachine.GetAddresses = addresses; - await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, new Dictionary() + var dic1 = new Dictionary() { { - "A1", 70 + "A1", r.Next(0, UInt16.MaxValue) }, { - "A2", 71 + "A2", r.Next(0, UInt16.MaxValue) }, { - "A3", 72 + "A3", r.Next(0, UInt16.MaxValue) }, { - "A4", 73 + "A4", r.Next(0, UInt16.MaxValue) }, { - "A5", 717870 + "A5", r.Next() }, { - "A6", 717871 + "A6", r.Next() }, - }); + }; + + _siemensTcpMachine.GetAddresses = addresses; + await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1); var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.CommunicationTag); - Assert.AreEqual(ans["A1"].PlcValue, 70); - Assert.AreEqual(ans["A2"].PlcValue, 71); - Assert.AreEqual(ans["A3"].PlcValue, 72); - Assert.AreEqual(ans["A4"].PlcValue, 73); - Assert.AreEqual(ans["A5"].PlcValue, 717870); - Assert.AreEqual(ans["A6"].PlcValue, 717871); + Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]); + Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]); + Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]); + Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]); + Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]); + Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]); } } }