ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
1390223 Топик полностью
Eddy_Em (06.01.2024 19:03, просмотров: 74) ответил Argon на Не то что "неправильно понимает", скорее есть неясности, которые бы прояснить. Из описания на модбас одного из слейвов:
Ну написано же все в протоколе: пауза между пакетами составляет 3.5 байта. Откуда адовы 10мс взялись? Даже на 9600 бод будет 3мс... 

Все рабы слушают линию постоянно, но реагируют лишь на пакеты с нужным адресом. И когда послать следующий пакет решает господин: если он не ожидает ответа, то может сразу же послать запрос следующему рабу. А при работе с широковещательным адресом достаточно вообще, не парясь, молотить эти пакеты друг за другом - рабы не будут отвечать.

Вот раб может ответить с задержкой, поэтому господину нужно задавать время поллинга, исходя из характеристик всех рабов. Ну и, опять же, в убогом модбасе нет никаких гарантий, что раб не протупит настолько, что начнет выдавать данные, когда господин начнет следующий опрос. А т.к. в 485 не предусмотрен контроль линии во время передачи, будет очень весело - одна надежда, что в таком "убитом" пакете CRC не совпадет, а все рабы ее проверяют ☺

Кстати, исходя из последнего сказанного, наконец-то до меня дошло, на кой черт угребищному модбасу CRC: исключительно для избежания приема неверных данных в случае подобных коллизий! Правда, господин вообще никак не узнает, что произошла коллизия: лишь поймет, что ожидаемого ответа нет.

eddy-em.livejournal.com github.com/eddyem