Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › ModBus Опрос по команде
- В этой теме 68 ответов, 6 участников, последнее обновление 8 месяцев, 1 неделя назад сделано
manjey73.
-
АвторЗаписи
-
05.11.2025 в 06:10 #41021
manjey73УчастникГруппы придется разделить на два устройства.
Тут тоже минус есть.05.11.2025 в 12:24 #41023
MikhailМодератор> как привязывать команду, при установленной галочке «Опрос только по команде»
Нужно создать канал типа Выходной с кодом тегаApp.Comm.PollDeviceи отправить команду на него. Значение команды — это номер устройства.Если линия или устройство не активно (снята галочка), считайте, что его нет.
-
Ответ изменён 8 месяцев, 2 недели назад пользователем
Mikhail.
05.11.2025 в 13:19 #41027
manjey73УчастникПолучается нужно в каждом устройстве создать такую команду с тегом
App.Comm.PollDeviceи жестко указать номер этого устройства. (если мы хотим формулами рулить опросом)в случае если устройств на линии несколько и каждым надо управлять?
Отсюда вопрос — посылая номер через эту команду в одну точку времени, тут же подавать через такую же команду номер второго устройства, потом третьего — как они попадут в пул опроса?
По сути на команду будут подаваться импульсы, если простыми словами описать.
-
Ответ изменён 8 месяцев, 2 недели назад пользователем
manjey73.
06.11.2025 в 13:27 #41038
manjey73Участникз.ы. было бы неплохо иметь в качестве команды опроса не номер девайса, а массив номеров девайсов для линии.
Если устройства все нужны и все важны, посылается один и тот же массив. Если какое-то из устройств надо исключить, то он просто не попадет в массив.С массивом номеров девайсов работать было бы гораздо удобнее скриптами, нежели управлением каждым устройством на линии.
чисто предложение…
06.11.2025 в 14:16 #41042
MikhailМодераторApp.Comm.PollDevice — это команда сервису, а не конкретному устройству. Поэтому достаточно создать один такой канал и отправлять на него команды с разными значениями (номерами устройств).
06.11.2025 в 17:18 #41051
manjey73Участникя именно про это и говорю, когда у нас на одной линии несколько устройств и каждым надо рулить, было бы неплохо, чтобы эта команда принимала не только номер устройства, но и массив номеров устройств.
Сильно упростит скрипты в данном случае.
по аналогии с командой — можем послать double, а можем послать байтовый массив.
тут же, либо одно число (номер одного устройства), либо массив чисел (номеров устройств с одним периодом опроса)-
Ответ изменён 8 месяцев, 2 недели назад пользователем
manjey73.
06.11.2025 в 19:00 #41053
manjey73УчастникApp.Comm.PollDevices
Я про вот так, типа ещё одна команда для галочки Опрос по команде. 😂
07.11.2025 в 01:57 #41054Spawn
УчастникВ каналах пустого устройства создал канал с кодом тега этим App.Comm.PollDevice. В каналах устройств (линии вязи) добавил по одному каналу с типом Расчетный/выходной, формулы ВКЛ, Выходная формула — значения три и два, соответственно, в представлении добавил динамические надписи, привязал к ним соответствующие каналы устройств с действиями «Отправить команду сразу».
Журнал линий связи: «Команда с ид. ххххххххххххххххххх на устройство 2 от ScadaServer».
Статистика линии: 2025-11-07 HH:MM:SS Устройство 2 не поддерживает отправку команд
В представлении, соответственно, ничего не происходит, потому как опрос устройств не происходит.
Что я делаю не так?
07.11.2025 в 06:35 #41055
manjey73УчастникВ сам канал, с кодом PollDevice если подавать номера устройств опрос происходит?
07.11.2025 в 07:24 #41056Spawn
УчастникВсё, разобрался. Работает по номерам устройств.
Осталось придумать, как этот функционал прикрутить к «мне нужно одно (или несколько) устройств на линии ВЫКЛ или ВКЛ делать»…07.11.2025 в 08:03 #41057
manjey73УчастникЯ же писал, что надо с нужным периодом слать команды с номерами для опроса.
По крайней мере так Михаил предлагал ранее.
Устройство перестало быть нужным, блокируем отправку.Привет таймеры со всеми прелестями. Это если без МАУ можно сделать.
Ну или смотрите в МАУ повторяющийся триггер и возможность его блокировки из scada.07.11.2025 в 08:18 #41058Spawn
Участникmanjey73, мне нужно, как я писал выше, включать/отключать опрос тех или иных устройств на линии без привязки к каким-либо периодам/интервалам.
Если верить Вашим постам #40995 и #41027, то моя задача не реализуема.
Поэтому я и просил Михаила дать разъяснения из разряда «да, это сделать можно» или «нет, это сделать нельзя», чтобы не сидеть и не тратить зря время на эту (пока что еще возможно) пустую затею.
07.11.2025 в 09:00 #41059
manjey73УчастникЧто в вашем понимании включать? — начнем с этого.
Вы включили и дальше что? устройство должно опрашиваться пока включен опрос?
Если да, читайте выше еще раз, другого пути нет.
07.11.2025 в 09:01 #41060
manjey73Участникреализуема, такой подход когда-то Михаил и предложил, потому что более простого в Коммуникаторе не реализовано.
07.11.2025 в 09:39 #41063Spawn
Участникmanjey73, одна линия, на ней два устройства (протокол Modbus, если это имеет значение), мне нужно, по моему хотению, в понедельник, например, остановить/отключить опрос устройства под номером один и чтобы устройство номер два продолжало опрашиваться, только не периодами и интервалами с таймерами, а так как опрашиваются устройства на линии со снятой галкой «Опрос только по команде». Всё. В общем случае, мне нужно оптимизировать опрос устройств, минимизировав время цикла опроса всей линии, путем исключения из него (опроса) не нужных в данный момент времени устройств.
-
Ответ изменён 8 месяцев, 2 недели назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.