ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
23 февраля
1500021 Топик полностью
Tyмблep (20.02.2025 17:31, просмотров: 129) ответил reZident на Почему нереально? У меня где-то валяется PCI-card с 4мя аппаратными RS485/RS422 портами. Там временем удержания трансивера в состоянии передачи можно было через софтовый драйвер управлять. Кроме того, если не волнует общая скорость передачи (не битовая!), то паузу 3,5 символа можно выдерживать произвольно длинную, но не менее 3,5 символов. Большей проблемой бывают разрывы данных в пакете более 1,5 длины символа. По стандарту Modbus RTU такой пакет должен
Проблема 

Делаем чего-нибудь.

Например, пишем пакет в выводной буфер (в много-поточной среде Виндус).

И тут вдруг квант 20 [мс] нашего потока заканчивается на середине пакета.

И запускается другой поток.

А половинка пакета уходит.

Возможны варианты - появление потока с бОльшим приоритетом.

В этом случае потоки с низшим приоритетом прерываются сразу.

И опять те же проблемы, хотя и с небольшой вероятностью.

Для аппаратного преодаления таких проблем надо делать

свою "сетевую станцию" - те делаем некий модуль с микроконтроллером.

Который получает пакеты от компа с любыми задержками любых

порций. Но отправляет всё всегда слитно, при необходимости

выдерживая любые задержки своими аппаратными средствами.

---

Софтовым путём можно только снизить вероятность проблемы - например,

в случае не получения ответа абонента делать ещё N попыток послать

пакет. Не 100% гарантии, но помогает.