Получение идентификационной информации Modbus-функция 0x11 Report Slave Identification в поле Additional Data ответного пакета возвращает служебную информацию об устройстве в виде zero-terminated строк в таком порядке: Название устройства (BTE-5DI.21RO.4AI) Версию программного обеспечения Уникальный идентификатор устройства (12-байтное 16-ричное число в виде ASCII-строки) Ответ на этот запрос, отправленный на адрес 0, отправляют все устройства, используя простой механизм избежания коллизий на шине. Таким образом, можно получить список всех устройств этого типа на шине, отправив один запрос и ожидая ответы с таймаутом в 1 сек после каждого. Задание Modbus-адреса по уникальному идентификатору устройства Для задания Modbus-адреса по уникальному идентификатору устройства используется нестандартная функция 0x42. В первых 12 байтах отправляемого пакета должен находиться уникальный идентификатор устройства, в 13-м - назначаемый адрес. Ответ на этот пакет присылает только устройство с заданным уникальным идентификатором.

Комментарии: 12

  1. Dmitry

    Хороший вопрос - а что за механизм? Вот допустим, все железки получили широковещательный пакет на запрос ID одновременно. По идее, что им мешает одновременно проверить занятость шины и убедившись, что всё ок, совершенно одновременно начать передачу?

    • Anonim

      Рандомное же время)

      • Lexszero

        говорю же, рандомная задержка

        • Dmitry

          а зачем бродкаст-то? всего 255 устройств — можно каждое опросить

          • Lexszero

            ну так у всех адрес не задан

            • Dmitry

              а пусть задан

        • Anonim

          Ответь потом на вопрос: как рандом делал

          • Lexszero

            http://bpaste.net/show/7ccef42a3971

          • Dmitry

            У F4 серии есть же генератор. А так, вариантов куча. Например, приментить LFSR к CPUID А я бы взял LFSR. Алгоритм там простой

            • Anonim

              • Lexszero

                мне было максимально лень думать и я взял первый попавшийся кусок кода с вики. worse is better, KISS, вот это все.

        • Dmitry

          А, всё, вопросов нет. Но со стандартом совместимо жуть как плохо, увы

Не нашли ответ?

Вам также может быть интересно