using ModbusSimulationProtocol.Interface; using ModbusSimulationProtocol.Services; using NModbus; using System.Net.Sockets; namespace ModbusMasterSlaveSim; internal class Program { static void Main(string[] args) { IModbusLogger logger =new ModbusLogger(); IModbusSlaveService modbusSlaveService =new ModbusSlaveService(logger); modbusSlaveService.Initialize("127.0.0.1", 1502); modbusSlaveService.AddSlave(1, 64, 64, 64, 64); modbusSlaveService.AddSlave(2, 128, 128, 128, 128); modbusSlaveService.ActivateNetwork(); 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); master.WriteSingleCoil(1, 0, true); var rst = master.ReadCoils(1, 0, 2); }); Task.Delay(Timeout.Infinite).GetAwaiter().GetResult(); } }