Open HerrPausL opened 2 years ago
I just came here intending to log this bug. I use ethernet serial servers, so I need RTU over TCP, which isn't an option here it seems...?
Hi, please give me a little bit time to check my source - i was abel to use RTU over TCP :-)
This is my code which is working fine :-)
private void btnConnect_Click(object sender, EventArgs e)
{
if (radioButtonRTU.Checked)
{
//_uart = new SerialPort(PortName, Baud, Parity, DataBits, StopBits);
_uart = new SerialPort(PortName, 115200, Parity.None, 8, StopBits.One);
_uart.Open();
_portClient = _uart.GetClient();
_driver = new ModbusClient(new ModbusRtuCodec()) { Address = SlaveId };
_driver.OutgoingData += DriverOutgoingData;
_driver.IncommingData += DriverIncommingData;
}
if (radioButtonRTUTCP.Checked)
{
try
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);
_socket.SendTimeout = 2000;
_socket.ReceiveTimeout = 2000;
_socket.Connect(new IPEndPoint(IPAddress, 502));
_portClient = _socket.GetClient();
_driver = new ModbusClient(new ModbusRtuCodec()) { Address = SlaveId };
_driver.OutgoingData += DriverOutgoingData;
_driver.IncommingData += DriverIncommingData;
AppendLog(String.Format("Connected using RTUoverTCP to {0}", _socket.RemoteEndPoint));
ConnectionState = 1;
}
catch (Exception ex)
{
ConnectionState = 0;
AppendLog(ex.ToString());
}
}
if (ConnectionState > 0)
{
btnConnect.Enabled = false;
btnDisconnect.Enabled = true;
ReadCoil();
ReadInput();
}
}
Maybe make a PR and get it in the next release?
Hello, is there any Plan to include RTU over TCP? See: https://www.simplymodbus.ca/TCP.htm Or https://github.com/stephane/libmodbus/pull/445
Best Regards, Bernd