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

Помечено: , ,

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

    Группы придется разделить на два устройства.
    Тут тоже минус есть.

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

    > как привязывать команду, при установленной галочке «Опрос только по команде»
    Нужно создать канал типа Выходной с кодом тега App.Comm.PollDevice и отправить команду на него. Значение команды — это номер устройства.

    Если линия или устройство не активно (снята галочка), считайте, что его нет.

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

    Получается нужно в каждом устройстве создать такую команду с тегом App.Comm.PollDevice и жестко указать номер этого устройства. (если мы хотим формулами рулить опросом)

    в случае если устройств на линии несколько и каждым надо управлять?

    Отсюда вопрос — посылая номер через эту команду в одну точку времени, тут же подавать через такую же команду номер второго устройства, потом третьего — как они попадут в пул опроса?

    По сути на команду будут подаваться импульсы, если простыми словами описать.

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

    з.ы. было бы неплохо иметь в качестве команды опроса не номер девайса, а массив номеров девайсов для линии.
    Если устройства все нужны и все важны, посылается один и тот же массив. Если какое-то из устройств надо исключить, то он просто не попадет в массив.

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

    чисто предложение…

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

    App.Comm.PollDevice — это команда сервису, а не конкретному устройству. Поэтому достаточно создать один такой канал и отправлять на него команды с разными значениями (номерами устройств).

    #41051
    manjey73
    Участник

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

    Сильно упростит скрипты в данном случае.

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

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

    App.Comm.PollDevices

    Я про вот так, типа ещё одна команда для галочки Опрос по команде. 😂

    #41054
    Spawn
    Участник

    В каналах пустого устройства создал канал с кодом тега этим App.Comm.PollDevice. В каналах устройств (линии вязи) добавил по одному каналу с типом Расчетный/выходной, формулы ВКЛ, Выходная формула — значения три и два, соответственно, в представлении добавил динамические надписи, привязал к ним соответствующие каналы устройств с действиями «Отправить команду сразу».

    Журнал линий связи: «Команда с ид. ххххххххххххххххххх на устройство 2 от ScadaServer».

    Статистика линии: 2025-11-07 HH:MM:SS Устройство 2 не поддерживает отправку команд

    В представлении, соответственно, ничего не происходит, потому как опрос устройств не происходит.

    Что я делаю не так?

    #41055
    manjey73
    Участник

    В сам канал, с кодом PollDevice если подавать номера устройств опрос происходит?

    #41056
    Spawn
    Участник

    Всё, разобрался. Работает по номерам устройств.
    Осталось придумать, как этот функционал прикрутить к «мне нужно одно (или несколько) устройств на линии ВЫКЛ или ВКЛ делать»…

    #41057
    manjey73
    Участник

    Я же писал, что надо с нужным периодом слать команды с номерами для опроса.
    По крайней мере так Михаил предлагал ранее.
    Устройство перестало быть нужным, блокируем отправку.

    Привет таймеры со всеми прелестями. Это если без МАУ можно сделать.
    Ну или смотрите в МАУ повторяющийся триггер и возможность его блокировки из scada.

    #41058
    Spawn
    Участник

    manjey73, мне нужно, как я писал выше, включать/отключать опрос тех или иных устройств на линии без привязки к каким-либо периодам/интервалам.

    Если верить Вашим постам #40995 и #41027, то моя задача не реализуема.

    Поэтому я и просил Михаила дать разъяснения из разряда «да, это сделать можно» или «нет, это сделать нельзя», чтобы не сидеть и не тратить зря время на эту (пока что еще возможно) пустую затею.

    #41059
    manjey73
    Участник

    Что в вашем понимании включать? — начнем с этого.

    Вы включили и дальше что? устройство должно опрашиваться пока включен опрос?

    Если да, читайте выше еще раз, другого пути нет.

    #41060
    manjey73
    Участник

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

    #41063
    Spawn
    Участник

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

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