SenGao hai 1 semana
pai
achega
41c00a1435

+ 4 - 4
CommunicationProtocols/ModBusTcp/Modbus_Tcp.cs

@@ -62,7 +62,7 @@ public class Modbus_Tcp : IModBus<byte[]?>
         {
             lock (this)
             {
-                Span<byte> bytes = this._master.ReadHoldingRegisters(0x00, index, count);
+                Span<byte> bytes = this._master.ReadHoldingRegisters(slaveAddress, index, count);
                 if (bytes == null)
                     return null;
                 return bytes.ToArray();
@@ -91,7 +91,7 @@ public class Modbus_Tcp : IModBus<byte[]?>
         try
         {
             lock (this)
-                this._master.WriteMultipleRegisters(0x00, (int)index, bytes);
+                this._master.WriteMultipleRegisters(slaveAddress, (int)index, bytes);
         }
         catch
         {
@@ -125,7 +125,7 @@ public class Modbus_Tcp : IModBus<byte[]?>
         try
         {
             lock (this)
-                this._master.WriteMultipleRegisters(0x00, (int)index, bytes);
+                this._master.WriteMultipleRegisters(slaveAddress, (int)index, bytes);
         }
         catch
         {
@@ -144,7 +144,7 @@ public class Modbus_Tcp : IModBus<byte[]?>
         try
         {
             lock (this)
-                this._master.WriteSingleRegister(0x00, index, result);
+                this._master.WriteSingleRegister(slaveAddress, index, result);
         }
         catch
         {

+ 1 - 0
Tools/ModbusMasterSlaveSim/ModbusMasterSlaveSim.csproj

@@ -11,6 +11,7 @@
 
   <ItemGroup>
     <ProjectReference Include="..\..\CommunicationProtocols\ModbusSimulationProtocol\ModbusSimulationProtocol.csproj" />
+    <ProjectReference Include="..\..\CommunicationProtocols\ModBusTcp\ModBusTcp.csproj" />
   </ItemGroup>
 
 </Project>

+ 39 - 18
Tools/ModbusMasterSlaveSim/Program.cs

@@ -1,11 +1,13 @@
 using ModbusSimulationProtocol.Interface;
 using ModbusSimulationProtocol.Services;
+using ModBusTcp;
 using NModbus;
+using ProtocalGeneral;
 using System.Net.Sockets;
 
 namespace ModbusMasterSlaveSim;
 
-internal class Program
+internal class Program 
 {
     static void Main(string[] args)
     {
@@ -24,27 +26,46 @@ internal class Program
             }
         }
 
-        TcpClient masterTcpClient = new TcpClient("127.0.0.1", 1502);
-        var factory = new ModbusFactory();
-        var master = factory.CreateMaster(masterTcpClient);
+        //TcpClient masterTcpClient = new TcpClient("127.0.0.1", 1502);
+        //var factory = new ModbusFactory();
+        //var master = factory.CreateMaster(masterTcpClient);
 
-        Task.Factory.StartNew(async () => 
-        {
-            Console.WriteLine("Waiting for 3s...");
-            await Task.Delay(3000);
+        //Task.Factory.StartNew(async () => 
+        //{
+        //    Console.WriteLine("Waiting for 3s...");
+        //    await Task.Delay(3000);
 
-            master.WriteSingleCoil(1, 10, true);
-            var rst = master.ReadCoils(1, 10, 2);
-            if (rst is not null)
-            {
-                foreach (var point in rst)
-                {
-                    Console.WriteLine(point);
-                }
-            }
-        });
+        //    master.WriteSingleCoil(1, 10, true);
+        //    var rst = master.ReadCoils(1, 10, 2);
+        //    if (rst is not null)
+        //    {
+        //        foreach (var point in rst)
+        //        {
+        //            Console.WriteLine(point);
+        //        }
+        //    }
+        //});
 
+        Modbus_Tcp modbus_Tcp=new Modbus_Tcp();
+        modbus_Tcp.Initialize("Master", new ConnectionNotify());
+        modbus_Tcp.Open("127.0.0.1", 1502);
 
+        modbus_Tcp.SetValue(10, 100);
+        Task.Delay(3000).Wait();
+        modbusSlaveService.TryReadValues(modbusSlaveService.SlaveDataStore.HoldingRegisters, 10, 5, out var outPoints2);
         Task.Delay(Timeout.Infinite).GetAwaiter().GetResult();
     }
 }
+
+public class ConnectionNotify : ITcpConnectNority
+{
+    public void Connect(string ip, int port)
+    {
+        
+    }
+
+    public void DisConnect(string ip, int port)
+    {
+        
+    }
+}