ModBus Опрос по команде

Помечено: , ,

Просмотр 9 сообщений - с 61 по 69 (из 69 всего)
  • Автор
    Записи
  • #41064
    manjey73
    Участник

    Прочитайте ещё раз внимательнее, пожалуйста.
    Как только вы используете опрос по команде, все, связанное с периодом опроса ложится полностью на вас.

    #41065
    Spawn
    Участник

    manjey73, одна линия, на ней два устройства (протокол Modbus, если это имеет значение), мне нужно, по моему хотению, в понедельник, например, остановить/отключить опрос устройства под номером один и чтобы устройство номер два продолжало опрашиваться, только не периодами и интервалами с таймерами, а так как опрашиваются устройства на линии со снятой галкой «Опрос только по команде». Всё. В общем случае, мне нужно оптимизировать опрос устройств, минимизировав время цикла опроса всей линии, путем исключения из него (опроса) не нужных в данный момент времени устройств.

    Шина RS485, протокол Modbus RTU.

    #41066
    manjey73
    Участник

    Да пофигу шина и протокол, мне тоже не нравится этот подход с опросом по команде, так как этим по моему мнению должен рулить Коммуникатор, а не я.

    Но так сделано, ввели Опрос по команде, будьте добры всем остальным озадачиться сами и подавать номер устройства в «импульсном» режиме для постоянного опроса.

    а например в ЖКХ на одной линии может находиться больше сотни устройств — приплыли 🙁

    #41068
    Spawn
    Участник

    Да пофигу шина и протокол, мне тоже не нравится этот подход с опросом по команде, так как этим по моему мнению должен рулить Коммуникатор, а не я.

    Но так сделано, ввели Опрос по команде, будьте добры всем остальным озадачиться сами и подавать номер устройства в «импульсном» режиме для постоянного опроса.

    а например в ЖКХ на одной линии может находиться больше сотни устройств — приплыли 🙁

    Так вот именно, что в «импульсном», С ЗАРАНЕЕ ОПРЕДЕЛЕННЫМИ МНОЙ интервалами, но это не есть правильная работа шины RS485, с протоколом Modbus RTU. Опрос следующего на линии (шине) устройства должен начинаться СРАЗУ, как только закончился опрос предыдущего (с определенной паузой между запросами, если она используется) и это СРАЗУ должна определять система (ПО), а не я подбирать интервалы ручками. С ОПРЕДЕЛЕННЫМИ МНОЙ ИНТЕРВАЛАМИ на импульсы — это изврат RS485/Modbus RTU и «минимизировав время цикла опроса всей линии», с таким подходом, я никогда не добьюсь. Вывод: моя задача не реализуема, в данной конкретной ситуации и с данным конкретным ПО без допиливания собственноручно его исходников.

    #41069
    manjey73
    Участник

    а вы попробуйте подать импульс на второе устройство сразу после первого, тут Коммуникатор может кинет в очередь на опрос сразу после первого.

    скрипты же работают в цикле от меньшего канала к большему. И там скорость раз 10 в секунду.

    еще раз, протокол тут ни при чем вообще, это не его проблемы и задачи.

    • Ответ изменён 8 месяцев, 2 недели назад пользователем manjey73.
    #41071
    Spawn
    Участник

    еще раз, протокол тут ни при чем вообще, это не его проблемы и задачи.

    Протокол, как раз-таки, причем, потому как конкретно протокол Modbus RTU и конкретно в двухпроводном RS485 — это полудуплексный обмен по принципу ведомый-ведущий, т.е. во-первых, прием и передача разнесены и выполняются не одновременно, во-вторых, все устройства на ШИНЕ опрашиваются по очереди, один за другим, следующий начнет опрашиваться не ранее, чем закончит опрашиваться предыдущий. Это Вам не сети Ethernet, не нужно путать.

    а вы попробуйте подать импульс на второе устройство сразу после первого, тут Коммуникатор может кинет в очередь на опрос сразу после первого.

    А смысл заниматься колхозом, если работа ПО не подразумевает это делать должным образом штатно? Опять же вопрос к ручным интервалам на импульсы (которых априори быть не должно), какой интервал выбирать, 10mS, 20mS, 150mS, 200mS? Кто и как будет контролировать очередь запросов коммуникатора? А если «переборщишь» и очередь переполнится? Бред.

    #41072
    Mikhail
    Модератор

    одна линия, на ней два устройства (протокол Modbus, если это имеет значение), мне нужно, по моему хотению, в понедельник, например, остановить/отключить опрос устройства под номером один и чтобы устройство номер два продолжало опрашиваться, только не периодами и интервалами с таймерами, а так как опрашиваются устройства на линии со снятой галкой «Опрос только по команде». Всё. В общем случае, мне нужно оптимизировать опрос устройств, минимизировав время цикла опроса всей линии, путем исключения из него (опроса) не нужных в данный момент времени устройств

    На данный момент такой функции, чтобы временно исключить устройство из опроса, причём без передачи конфигурации, нет.
    Пожелание вполне логичное, оно добавлено в список возможных доработок.

    #41080
    Spawn
    Участник

    Mikhail, спасибо.

    #41081
    manjey73
    Участник

    еще бы в доработки добавить создание словаря опроса не только по номеру девайса, но еще добавить некий идентификатор.
    Чтобы не требовалось создавать два и более устройств если требуется один прибор опрашивать разными параметрами и периодами.

    Чтобы устройство было одно, адрес один и разные или одинаковые шаблоны опроса.

    такие вопросы тоже возникали очень давно.

Просмотр 9 сообщений - с 61 по 69 (из 69 всего)
  • Для ответа в этой теме необходимо авторизоваться.