12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using ModbusSimulationProtocol.Interface;
- using ModbusSimulationProtocol.Services;
- using ModBusTcp;
- using NModbus;
- using ProtocalGeneral;
- 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, 1);
- modbusSlaveService.Open();
- var coilDiscretes = modbusSlaveService.SlaveDataStore.CoilDiscretes;
- modbusSlaveService.TryWriteValues(coilDiscretes, 0, [true, false, true, true]);
- modbusSlaveService.TryReadValues(coilDiscretes,0,5,out var outPoints);
- if (outPoints is not null)
- {
- foreach (var point in outPoints)
- {
- Console.WriteLine(point);
- }
- }
- //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, 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);
- modbus_Tcp.GetBuffer(10, 8, 1);
- Task.Delay(Timeout.Infinite).GetAwaiter().GetResult();
- }
- }
- public class ConnectionNotify : ITcpConnectNority
- {
- public void Connect(string ip, int port)
- {
-
- }
- public void DisConnect(string ip, int port)
- {
-
- }
- }
|