Последовательный порт перестает получать данные через определенное время в Windows 10 - PullRequest
0 голосов
/ 29 октября 2019

Уже пару месяцев я являюсь разработчиком довольно большой системы измерения веса автомобиля. Система разработана как распределенное программное обеспечение (на основе .NET) и имеет много компонентов, которые взаимодействуют с помощью RabbitMQ. Эта информация только для общего обзора.

Наши реальные устройства взаимодействуют с системными локальными службами с использованием TCP-сокетов и последовательных портов, доступных в Windows. Пока у нас не было никаких проблем со связью, но недавно мы установили наше программное обеспечение на промышленный терминал с установленной на нем Windows 10 Professional.

У меня большие проблемы с масштабируемой связью через последовательный порт. Шкала предназначена для отправки фрейма данных, содержащего значение, снова и снова, на неопределенный срок, через последовательный порт (RS232). Моя программа получает данные, и все работает как положено (односторонняя связь, я не отправляю что-либо в масштабе). Проблема, после ок. Через 1 час программа перестает получать данные - обновления значений не отображаются. Если я закрою и снова открою приложение, все снова заработает, и через ~ 1 час произойдет то же самое.

Однажды, когда связь прервалась, я отключил кабель RS232 и снова подключил через 1-2 минуты -Приложение снова начало получать данные - перезапуск не требовался. У меня даже получился какой-то грязный хак, например:

, если программа получает один и тот же кадр в течение n минут, закрывает и снова открывает соединение с портом - к сожалению, все равно не повезло (я знаю, что это плохой подход в любом случае),Все настройки энергосбережения были отключены в Windows. Программа работает на других машинах без хлопот. Проблема возникает только на этом конкретном промышленном терминале (с сенсорным экраном). Возможно, вы сталкивались с подобными проблемами? Мне не хватает дальнейших идей, и я расстраиваюсь ...

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...