-
- ЕМНИП в некоторых протоколах связи, очень похожих на Modbus, в коде
команды есть признак ответа - "1" в старшем бите. Т.е. если код
команды <=0x3F, то это запрос мастера, если же >0x80, то
это ответ ведомого. - rezident(03.07.2021 16:59)
- Так вот же, само напрашивается, но не заложили. Когда модбас
разрабатывался было два гендера: мастер и слейв. А современный мир
требует полового разнообразия... хочу одним кодом и слейва отодрать
и мастеру подмахивать. - IBAH(03.07.2021 17:30)
- Всё в модбасе хорошо. Вы бы хоть задачу описали, а то гомосятина одна. - evgeniy1294(03.07.2021 17:38)
- Нет, старший бит в коде команды модбаса сигнализирует об ошибке. - evgeniy1294(03.07.2021 17:02)
- он об однозначном признаке ответа. если в старшем разряде 1, то это
однозначно ответ слейва мастеру. - LordN(03.07.2021 17:09)
- Его может не быть при нормальной работе железок. Так что сложно будет применить этот бит для чего-то ещё. - evgeniy1294(03.07.2021 17:13)
- он об однозначном признаке ответа. если в старшем разряде 1, то это
однозначно ответ слейва мастеру. - LordN(03.07.2021 17:09)
- Так вот же, само напрашивается, но не заложили. Когда модбас
разрабатывался было два гендера: мастер и слейв. А современный мир
требует полового разнообразия... хочу одним кодом и слейва отодрать
и мастеру подмахивать. - IBAH(03.07.2021 17:30)
- Нет таких примечаний, маршрутизаторы разбираются в принадлежности
пакета простой логикой. На мой взгляд, самый лучший граббер -
обычный логический анализатор, все умеет вплоть до поиска пакета по
паттерну. - evgeniy1294(03.07.2021 14:07)
- Ээээ... С утра пытаюсь понять эту "логику". И прихожу к мысли, что
такой логики не существует. Вот блд, упомянул слово грабер... мне
не нужен грабер, мне не нужен логический анализатор. Мне нужно
узнать где пакет мастера, а где пакет слэйва. - IBAH(03.07.2021 14:27)
- Там втупую по машине состояний для каждого порта. Маршрутизатор
всегда знает, что принял пакет от мастера и переадресовал его
слейву, от которого теперь ждет ответ, который вернет нужному
мастеру. В Modbus TCP маршрутизаторы могут работать с несколькими
мастерами одновременно. - evgeniy1294(03.07.2021 15:19)
- Все равно не складывается... как инициализировать машину состояний?
А у этих маршрутизаторов случайно не указывается за каким портом
мастер? - IBAH(03.07.2021 15:34)
- В общем виде - возможно и никак. Tyмблep(212 знак., 06.07.2021 13:07)
- У них часто выделены TCP-порты для мастеров. - evgeniy1294(03.07.2021 16:05)
- Все равно не складывается... как инициализировать машину состояний?
А у этих маршрутизаторов случайно не указывается за каким портом
мастер? - IBAH(03.07.2021 15:34)
- На чтении мастер запрашивает регистры и длину. Ответ ессно будет
больше. - POV_(03.07.2021 14:39, )
- Все пакеты по составу не разобрать, какой-нибудь set single coil будет одинаковый. - evgeniy1294(03.07.2021 15:15)
- Те. нужно разобрать пакет мастера, чтобы определить что это пакет
мастера.... Разрешать пакеты по длине не получается. Например
команда 3 пакет мастера 6+CRC, ответ пакет слейва (5 и больше
кратно 2)+СRC. Казалось бы можно различать пакеты по четности
длинны, но CRC может совпасть на любой длине. Короче, приемник, по любому, должен знать кто он, мастер или слейв - IBAH(03.07.2021 14:55)
- для функции 0х03 запрос восемь байт, ответ либо семь, либо больше восьми. т.е. уже признак. - LordN(03.07.2021 17:16)
- "Короче, приемник, по любому, должен знать кто он, мастер или слейв" - да, в чем очень помогает джампер или dip-переключатель. - evgeniy1294(03.07.2021 15:20)
- Там втупую по машине состояний для каждого порта. Маршрутизатор
всегда знает, что принял пакет от мастера и переадресовал его
слейву, от которого теперь ждет ответ, который вернет нужному
мастеру. В Modbus TCP маршрутизаторы могут работать с несколькими
мастерами одновременно. - evgeniy1294(03.07.2021 15:19)
- Ээээ... С утра пытаюсь понять эту "логику". И прихожу к мысли, что
такой логики не существует. Вот блд, упомянул слово грабер... мне
не нужен грабер, мне не нужен логический анализатор. Мне нужно
узнать где пакет мастера, а где пакет слэйва. - IBAH(03.07.2021 14:27)
- ЕМНИП в некоторых протоколах связи, очень похожих на Modbus, в коде
команды есть признак ответа - "1" в старшем бите. Т.е. если код
команды <=0x3F, то это запрос мастера, если же >0x80, то
это ответ ведомого. - rezident(03.07.2021 16:59)