|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
|
Windows 11 тормозит обмены через СОМ-порт06.05.2024, 13:36. Показов 5797. Ответов 85
Метки нет (Все метки)
Добрый день, коллеги.
Столкнулся с проблемкой, вынесенной в название темы. Есть приложение. написанное много лет назад на Delphi 7, и без вопросов работавшее на многих ПК с Windows XP и Windows 7. Приложение через СОМ порт (компонент BComPort) посылает запрос контроллеру, контроллер, приняв пакет, отвечает, приложение, приняв ответ, посылает новый запрос (или не приняв ответ, посылает запрос по таймеру). Все просто и отлажено в десятках приложений/устройств. И вот эта отлаженная пара (приложение - контроллер) отказывается нормально работать по Windows 11 - существенно падает скорость обмена (со 120 до 40-50 обмен/с) и в обменах наблюдаются паузы до 0.5 с, что недопустимо. Причем сразу после запуска приложения показывает скорость 120 обмен/с, но через пару секунд скорость падает до 40, затем повышается до 60, снова падает и т.д. Т.к. предположили, что проблема в новой (для нас) ОС, то отключили антивирусы, One Drive, пробовали режимы совместимости в разными ОС, устанавливали приоритет real_time, и пр. Существенного изменения скорости и непрерывности обмена получить не удалось. Соответственно вопрос: как настроить Windows 11 под работу в режиме real_time? Спасибо.
0
|
|
| 06.05.2024, 13:36 | |
|
Ответы с готовыми решениями:
85
Примеры использования Async Free (СОМ-порт) или Async Pro (СОМ-порт) управление через СОМ порт Обмен данными через СОМ-порт |
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
||||||
| 09.05.2024, 08:25 | ||||||
|
ay007, так чтоб проще - давай КРУПНЫЕ фотки платы состороны чипа, жопы, и крупное фото чипа.
northener, да на событиях. компорт вобще сам в себе. читает пишет. тока флаги выставляет. поток отслеживает это и заполняет структуру. выставляя соответствующее событие. ну и обращение: read/writefile
попробуй это вроде не далеко отошел от BCom. https://github.com/CWBudde/Com... ree/master ставил 10.3 поставилось нормально. на виртуальных сом-ах нульмодемом пашет. есть также и компонент для мониторинга. вобщем почитай. на железе проверить пока негде. правда система после установки виртуальных портов так ностальжЫ от Пласидо Доминга завывать начала, что у соседнем курятнике, у коровах молоко нахрен поскисало....
0
|
||||||
|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
|
| 09.05.2024, 08:42 [ТС] | |
|
Коллеги, почему вы концентрируетесь на железе, но не на ОС? Ведь скорость обмена очень сильно нестабильна: то 120 об/с, то 40 об/с. Может все-таки ОС по какой-то причине тормозит работу приложения? Типа, чтобы экономить энергию или снизить температуру процессора.
На другой машине под Win 7 когда запускаешь программу с обменом через СОМ порт, построенным по такому же принципу, сразу слышишь как вентилятор процессора начинает работать существенно интенсивней.
0
|
|
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 09.05.2024, 09:19 | |
|
потому что COM это ИНТЕРФЕЙС. и роботоспособность платы СИЛЬНО зависит от чипа который вы купили. есть полноценные а есть х.... предназначеная для мелких пакетов типа барреадеров И ДРОВАМ написЯными криворукими.
еще раз спрашиваю ВЫ НА НОВОЙ МАШИНЕ 7 СТАВИЛИ, ПРОВЕРЯЛИ??? винтелятор жужит это не показатель. он нато и винтелятор. уже попростому попросил. фото сделайте. это как переходники comusb. есть на FTDI а есть на СР. первые для железа годятся. а вторые х.... которой тока в шнурках работать.... Б... задолбало прописные истины 15-й год обьяснять..... Жду фото. ну или хотябы марку платы....
0
|
|
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,489
|
||
| 09.05.2024, 14:31 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
|
| 09.05.2024, 14:41 [ТС] | |
|
Пожалуйста.
Устанавливать семерку на обсуждаемый ПК не пробовали, люди, которые покупали комп и устанавливали ОС утверждают, что это невозможно (технически или из-за политики IT службы не знаю). И да, новый комп с новой платой.
0
|
|
|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
|
| 09.05.2024, 14:45 [ТС] | |
|
П.С. Получается, что я в компы уже лет пять не забирался, сфера деятельности/интересов немного изменилась, ранее разработанное и отлаженное работало без вопросов.. Приходится вспоминать..
0
|
|
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 09.05.2024, 17:03 | |
|
Итак коллега. плата более менее чесная.( правда вариант не ахти). а вот с дровами...... явно чтото не донастроили=доставили.
это пдф на чип CH382DS0.PDF это дрова CH38XDRV.ZIP твое DRV_2S. как прикручивать думаю поймешь. желательно принудительно и ручками. есть даже хелп правда китаезный. но у нас есть гугл.... ))) сразу - вынь 11 нету. а вот на 10 аж два. ПРЕДУПРЕЖДЕНИЕ если не электронщик - конфигуратор щупай очень осторожно. как я понял вариант с вЫнь7 невозможен по технЫчнЫм причинам. если не выйдет есть другой вариант решения - тоже рабочий. и проверенный. ну об этом потом.
1
|
|
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 09.05.2024, 17:05 | |
|
зыбыл урл на сайт разрабов чипа.
https://wch-ic.com/downloads/CH382DS0_PDF.html
1
|
|
|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
|
| 09.05.2024, 18:10 [ТС] | |
|
Спасибо. Вроде //WIN 10&11&2016&2019 для Win 11. Попробую завтра.
0
|
|
|
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||
| 10.05.2024, 01:09 | ||
|
0
|
||
|
839 / 453 / 39
Регистрация: 05.05.2022
Сообщений: 3,177
|
|
| 10.05.2024, 01:22 | |
|
Если этот код ранее работал, то он правильный, по крайней мере, для той ОС под которой изначально тестировался. Если этот код работает не так, как от него ожидается на конкретном устройстве или конкретной ОС, то без знания таких особенностей по коду ничего понятно не будет.
А вообще, что мешает взять преобразователь USB<->RS-232 (оно потом не идет на какой-нибудь RS-485?) и проверить, как с ним будет? Я не вижу здесь никакого иного способа, кроме последовательного исключения виновника через замену оборудования и ОС. Вообще ситуация, когда нельзя просто взять отдельный комп для тестов - это какая-то дикость. ИМХО у программиста просто обязан быть комп, которому в любой момент можно сделать format C и поставить нужную конфигурацию.
0
|
|
|
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||
| 10.05.2024, 02:43 | ||
|
Скорее всего ТС использует синхронные методы компонента. Надеясь на то, что он выставил высокий приоритет. Ну так "отколется ему, как тому бздиловатому." (c) Роберт Хайнлайн. "Луна жестко стелет"
0
|
||
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 10.05.2024, 07:39 | |
|
ну так фото и просил, чтобы выяснить что это не топовая плата от топового производителя - Выкиньнах.....
на тему СИНХР \ АСИНХ он так и не ответил. вариант отключить старый винт и на НОВОМ поставить 7\10 тоже предложили. вариант с FTDI я оставил на последок. если вариант с проверкой на новой системе - религия не позволяет. НО очень похоже что чегото не доставили. толи на на плату толи на чипсет. возможно и такое, переставить дрова - нах надо они же в уже винде есть.......
0
|
|
|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
||||||
| 10.05.2024, 10:27 [ТС] | ||||||
|
Обмен осуществляется с тремя контроллерами, инициируется ПК. Первый байт пакета - адрес контроллера (бит паритета равен 0), несколько байт данных (бит паритета равен 1), которые повторяются два раза.
Обмен построен по следующему алгоритму: 1 По таймеру (20 мс) отсылается байт адреса очередного контроллера, формируется пакет данных и по событию, что байт адреса передан, отсылается пакет данных. 2 По приему адреса и пакета данных от запрашиваемого контроллера проверяется на соответствие адреса и данных, данные обрабатываются и вызывается событие OnTimer. 3 Если же контроллер не ответил, то через 20 мс будет запрошен следующий.
И да, по моему опыту USB преобразователи имеют невысокую помехоустойчивость на промплощадке и часто (для непрерывных технологических процессов) виснут.
0
|
||||||
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 10.05.2024, 11:46 | |
|
Мдя что сказать....
![]() это какже вы на технологии point to point(com) сделали Npoint to point. программа похоже досталась по наследству... ибо goto....... да еще и времен 98 - 03. оригинал - Fortran и всетаки RS485 > COM правильные USBCOM живут нормально - проверено на заводах. главное чтобы хотябы +\- 9 Вольт выполнялось. со стороны железки. И главное 20мс это времен ХР. 7 както еще вытягивала. есть такая весчь тик системы в 7 - 25мс 10 - уже 50мс как что влезло в список первочередных обработок.... сам черт знает. что в 11 напихано - даже в ОЧЕНЬ СТРАШНОМ СНЕ типа кошмара на улице вязов. в пятницу и синансе в 24:00 - нужно умножить на 10. И ВСЕТАКИ ВОЗМИТЕ ВИНТ СТАВТЕ 10. ВЕШАЕТЕ ВСЕ ДРОВА (А НЕ УМОЛЧАНИЕ ВИНДЫ). СТАВИТЕ ДРОВА НА ПЛАТУ. И ПО РЕЗУЛЬТАТУ - РЕШЕНИЕ. и рекомендую почитать чем отличается RTS ot RTOS.
0
|
|
|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
|
| 10.05.2024, 12:19 [ТС] | |
|
Если по наследству, то от меня же конца прошлого века.
И если по Вашей оценке программа дремуча и пр. то расскажите, пожалуйста, как бы Вы с т.з. сегодняшнего дня реализовали программное управление технологической установкой, со скоростью обмена 100 об/с, пакеты 10 - 20 байт, перерывы не приветствуются, ОС - Win 11? Если получится, то без эмоций и со ссылкой на пример кода. И, к сожалению, на нашем предприятии одни специалисты обеспечивают производство ПК и отвечают за политику в сфере лицензионного обеспечения ОС и компьютерную безопасность, а другие вынуждены подлаживать имеющееся ПО под новые ОС. Сам бы я с ХР никуда не уходил. Соответственно накатывать Win 10 - путь в никуда, потребуется замена следующего ПК, снова принесут с 11-й, затем с 12-й и т.д.
0
|
|
|
Модератор
4150 / 2360 / 813
Регистрация: 15.11.2015
Сообщений: 9,489
|
||
| 10.05.2024, 12:22 | ||
|
И в чём смысл перезапуска таймера каждое его срабатывание?
0
|
||
|
839 / 453 / 39
Регистрация: 05.05.2022
Сообщений: 3,177
|
|||
| 10.05.2024, 12:38 | |||
|
Я бы при таких таймерах, скорее всего, слал не по таймеру, а по факту приема или таймаута. Но тут начинает попахивать уже высокоточными таймерами для графических движков. Насчет переключения четности для адресации, и оборудования, то у меня в системе точно так же, но у меня в комп воткнут USB<->RS-485 адаптер напрямую и с ним такой финт работает на отлично, и вообще вещь, реализующая отправку и прием одним пакетом. Вот только стоило взять комбинацию из RS-232 во внешний преобразователь RS-485, то отвечать перестало, т. к. стала нужна задержка м\у посылками. А какие сюрпризы с железом могут быть у вас...
1
|
|||
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
||
| 10.05.2024, 13:22 | ||
|
ay007,
А современная и древняя ПРАВИЛЬНАЯ система 2 уровня безопасности в пром аппаратуре - QNX. дорого но как говорится.... второй вариант подсказал Beltar, выкинуть все промежуточное. третий на одноплатнике типа малины с сетевой потдержкой делается сервер который благополучно собирает данные с нужным интервалом. а винда забирает буфер из N пакетов. ЧЕРЕЗ СЕТЬ. принцип FIFO или невеб.... обьем памяти суток на 5. пофигу. И как бы печально не было, но - не надо ждать от системы расчитаной и заточенной на дебилов из поколения "Я - ТЕЛЕФОНА" чегото из рязряда хотябы RTOS. И всетаки просто поставте 7\10 просто для того чтобы окончательно ОТБРОСИТЬ НЕСПОСОБНОСТЬ ЖЕЛЕЗА. Винда виндой. это понятно. но железо - тоже бывает виновато. И всетаки хотябы скажите с чем работает ваше железячное хозяйство. многим из нас стариков очень поможет..... вам в советах.
1
|
||
|
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 35
|
|
| 10.05.2024, 14:05 [ТС] | |
|
Таймер (20 или 50 мс) предназначен для инициализации посылки следующего пакета, если предыдущий пришел с ошибкой.
Нормальный процесс работы: формирование пакета, отправка данных, ожидание ответа не намного больше длительности пакета (скорость 115200 контроллер отвечает быстро, там ассемблер), прием пакета, его обработка (все это занимает время меньше, чем 20 мс) и вызов прерывания по срабатыванию таймера. Т.е. в нормальной ситуации таймер не досчитывает до вызова события OnTimer. В случае, если пакет не принят (контроллер не ответил), то через 20 мс посылается запрос следующему контроллеру - как бы автоматическое восстановление связи. Смысл перезапуска Таймера - чтобы он отсчитывал один и тот же интервал времени, условных "20 мс". У меня тоже стоит преобразователь 232-485. Делал сам - задержка 1 байт. Программа управляет Установкой автоматической сварки внутренних швов сильфонов - масса пневмосутройств, источников сварочного тока, пресс, видеокамера и пр. ПО анализирует состояние датчиков и по заданной циклограмме выдает команды на пневмораспределители, клапаны газа и пр.Контроллеры просто транслируют сигналы от датчиков и команды на пневмораспределители и пр. Поэтому чем выше скорость обмена, тем выше производительность. И еще. Программу ставили на два разных ПК от НР под Win 11. Результат одинаково негативный. На моноблоке MSI аналогичная программа встала под Win 10 без проблем, но там встроенные СОМ порты. Драйвер переустановил (стоял 2014 года) . Фраза "Требуется дальнейшая установка" исчезла, но скорость не увеличилась.
0
|
|
| 10.05.2024, 14:05 | |
|
Помогаю со студенческими работами здесь
40
Отправка запроса на прибор через сом-порт Не работает СОМ порт RS-232 через PCI Express Передача пакета по протоколу ОВЕН через СОМ порт Как запустить купюроприемник для теста через сом порт ? Код программы на С# для управления прибором через СОМ-порт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|