Program.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using ModbusSimulationProtocol.Interface;
  2. using ModbusSimulationProtocol.Services;
  3. using NModbus;
  4. using System.Net.Sockets;
  5. namespace ModbusMasterSlaveSim;
  6. internal class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. IModbusLogger logger =new ModbusLogger();
  11. IModbusSlaveService modbusSlaveService =new ModbusSlaveService(logger);
  12. modbusSlaveService.Initialize("127.0.0.1", 1502);
  13. modbusSlaveService.AddSlave(1, 64, 64, 64, 64);
  14. modbusSlaveService.AddSlave(2, 128, 128, 128, 128);
  15. modbusSlaveService.ActivateNetwork();
  16. TcpClient masterTcpClient = new TcpClient("127.0.0.1", 1502);
  17. var factory = new ModbusFactory();
  18. var master = factory.CreateMaster(masterTcpClient);
  19. Task.Factory.StartNew(async () =>
  20. {
  21. Console.WriteLine("Waiting for 3s...");
  22. await Task.Delay(3000);
  23. master.WriteSingleCoil(1, 0, true);
  24. var rst = master.ReadCoils(1, 0, 2);
  25. });
  26. Task.Delay(Timeout.Infinite).GetAwaiter().GetResult();
  27. }
  28. }