У меня есть рабочий код, который я использую для отправки команд ModbusTCP на устройство, которое может их читать и выполнять действия. Когда с сетью все в порядке, она работает как положено. Но если соединение не работает, пакеты сохраняются и буферизуются где-то в буферах pyModbusTCP или Linux (на основе Debian 9), а когда соединение восстанавливается, пакеты сбрасываются, вызывая непредвиденное поведение.Еще одна вещь, которую я заметил, это то, что буфер съедает оперативную память, и в конечном итоге у меня заканчивается (хотя на машине всего 256 МБ).
Скрипт Python, который генерирует команды ModbusTCP запускаются каждую минуту через crontab, и существует ок. 10 секунд после запуска, пока он не начнется снова. Есть ли способ в это время очистить буфер либо от команд Linux, либо от самого скрипта Python?
Я попробовал установить для параметра автоматического закрытия значение True:
Код: Выделить всё
mb_client = ModbusClient(host=host, auto_open=True, auto_close = True, port=port, debug=False)
Но буферизация все равно происходит.
Подробнее здесь:
https://stackoverflow.com/questions/784 ... ats-memory