Здравствуйте!
Есть библиотека NModbus - реализация протокола для использования в CLR. Я намерен использовать её для связи ПК и ПЛК160. В принципе, она работает, но по неведомой мне причине если в течение 12 секунд не передавать данные, а потом попытаться это сделать, то вылетает исключение "The operation is not allowed on non-connected sockets". Если же поддерживать активность - периодически передавать или принимать Modbus-данные - всё работает нормально. На ПЛК настроен стандартный Modbus TCP Slave.
Подскажите пожалуйста, где вероятнее всего разрывается соединения при "длительном" простое - на ПЛК или в этой библиотеке?
Здорово упрощённый, но воспроизводящий ошибку код:
Спасибо.Код:static void Main(string[] args) { var client = new TcpClient("192.168.0.18", 502); var master = ModbusIpMaster.CreateIp(client); client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); while (true) { master.WriteSingleRegister(0, 0); Console.ReadKey(); // Ждём 12 секунд и получаем ошибку в очередном цикле } }


Ответить с цитированием
