Как тогда мне быть?
Я вижу два варианта.
1. KeepAlive. То есть я должен постоянно посылать какой-нибудь запрос на ПЛК. Например, читать какой-нибудь регистр. Причём когда запускается осмысленный запрос, этот keepalive нужно прерывать, так как ПЛК параллельные запросы не выдерживает и рушит соединение.
2. В начале каждого обращения к ПЛК устанавливать соединение, а в конце - разрывать. Но тут ПЛК опять капризничает: между разрывом соединения и последующим его установлением должно пройти несколько секунд, иначе ПЛК откажется его устанавливать. Для наших задач это ожидание неудобно.
То есть первый вариант? Другого выхода нет?