В этой теме уже ответили все ветераны форума)) Как именно слейвы должны подготовиться? Есть ли у кого-нибудь пример программы микроконтроллера (ну мало ли откуда)
Разумных объяснений целых 2:
1. Не все Slave достаточно умные, чтобы понять, что другой Slave закончил ответ и не смогут понять, где находится конец ответа, а где - начало следующего запроса. Такой болезнью, в частности, раньше болели ТРМы. Сейчас не знаю.
2. Без таймаута надпись в паспорте Вашего устройства "Modbus" будет откровенной ложью.
это вопрос к разработчикам. Возможно у Вас есть факты , на которые опираетесь. У меня таких фактов и опыта разработки подобных устройств (например серия МВ) нет.Master после передачи пакета какое-то время (время тишины) тоже удерживает линию.
Последний раз редактировалось spectrum48k; 20.09.2015 в 11:12.
Какого ответа?
Вы понимаете, что в общем случае слэйв не один? И те, которые не отвечали в текущем цикла, должны понять, что пошел новый цикл, надо слушать линию.
Для понимания нового цикла достаточно отправить буффер ответа и снять сигнал с ноги "DE" и инвертированного "RE" драйвера, отправив передатчик в "высокоимпедансное состояние" .
Разве есть еще какие-то премудрости? Кажца, здесь завелся инсайдер. ))
Отвлеклись от темы.
Предлагаю подытожить тему по 3м вариантам использования: 1) конфигуратор, 2) modbus.lib 3) самописные бибки, нарушающие стандарты. Плюсы и минусы. А научить меня-выскочку уму-разуму сможете при удобном случае в разделе "Курилка"
Вы совсем не понимаете?
Пример - в сети 2 слейва с адресами 1 и 2.
Мастер опросил 1.
Как 2 определит, что 1 закончил передачу ответа?
По теме
1. Для стандартных случаев.
2. Для нестандартных, если нужен неравномерный опрос и т.п.
3. Если заняться нечем.