Вопрос по МАУ

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 43 всего)
  • Автор
    Записи
  • #32439
    sergyltd
    Участник

    Действительно полезная штука. В принципе я ожидал (поначалу) что этот функционал встроен в скаду изначально. Ну модуль так модуль. Так вот не могу разобраться с событиями.
    Скрин
    Есть дискретный канал. Формулой настроен так, что ==1 это тревога статус 23. Сам по себе работает — появляется и в нотифаере и в событиях. А вот если я ставлю триггер на событие в этом канале, не работает. Почту не посылает. Сама почта работает. Если этот же канал поставить триггер на изменение данных, все работает.
    Что же, событие рожей не вышло? Ему (МАУ) какое-то специальное нужно? Или я где не то сделал?

    #32440
    manjey73
    Участник

    Ну так если канал ==1 то это ведь значение канала, а не значение события.

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

    Сработку триггера проверяйте по журналу модуля. Если не срабатывает, значит какое-то условие не выполнено. Добавляйте условия в триггер по одному, чтобы определить, какое не выполняется. Либо откройте файл события утилитой (где-то на форуме есть ссылка) и проверьте, все ли поля события такие как в условии.

    Когда Сервер генерирует событие, значение канала записывается в событие. Оно и проверяется.

    #32448
    sergyltd
    Участник

    Вычислил. Такое же я уже встречал вроде бы в редакторе схем. Кажется это ошибка в коде. Не уверен правда.
    Суть вот в чем. Если условие =1, то не работает. Если >0 работает. Я думаю вопрос в передаче условия в код. В коде должно быть ==, а в combobox =.
    Хотя если передавать по индексу…..? Не знаю вобщем.
    Во всяком случае утилитой все поля события проверил, все адекватно, как и ожидалось.

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

    Хочу уточнить. Некорректно работает условие на значение канала?

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

    Триггер на значение канала в событии, показанный на скриншоте https://ibb.co/XbY840S , работает нормально.
    Если проблема не решилась, напишите, как её воспроизвести.
    Для триггера на событие есть особенность — он в том числе реагирует на событие, которое записывается при отправке команды, если в канале стоит соответствующая галочка в маске событий.

    #32629
    manjey73
    Участник

    Добавлю сюда вопрос.

    Как заставить МАУ срабатывать при перезагрузке устройства, если не было Нормализации?
    Помнится раньше при рестарте происходила сработка по каналам, потом это отключили чтобы первый раз не происходило сработки.
    Но все-таки из практики это часто необходимо. Может вернете в качестве настройки для требуемых каналов?

    Пример. Сработка при превышении температуры > 25C, произошла сработка. Температура никуда не делась, как была выше 25 так и осталась. Происходит перезагрузка устройства (питание выключали, делали загрузку конфигурации) и все. Первая команда пропускается, а нужна, так как исполнительные устройства обнулились в том числе.

    #32630
    manjey73
    Участник

    И еще такой момент, МАУ должен отправлять команду в устройство, когда оно уже готово после перезагрузки.

    А то даже с расчетными каналами в логах МАУ есть команды, а в Коммуникаторе они отсутствуют. Возможно устройство еще не подключилось и команды уходят в пустоту.

    #32631
    manjey73
    Участник
    Connection refused [::ffff:127.0.0.1]:10000
    2024-05-02 13:55:35 [orangepizero3][root][ERR] Невозможно запустить линии связи, потому что база конфигурации не получена
    2024-05-02 13:55:52 [orangepizero3][root][ACT] Источник данных ScadaServer: Приём базы конфигурации
    2024-05-02 13:55:52 [orangepizero3][root][ERR] Источник данных ScadaServer: Ошибка при проверке соединения с сервером:
    Connection refused [::ffff:127.0.0.1]:10000
    2024-05-02 13:55:52 [orangepizero3][root][ERR] Невозможно запустить линии связи, потому что база конфигурации не получена
    2024-05-02 13:56:02 [orangepizero3][root][ACT] Источник данных ScadaServer: Приём базы конфигурации
    2024-05-02 13:56:03 [orangepizero3][root][ERR] Источник данных ScadaServer: Ошибка при проверке соединения с сервером:
    Connection refused [::ffff:127.0.0.1]:10000
    2024-05-02 13:56:03 [orangepizero3][root][ERR] Невозможно запустить линии связи, потому что база конфигурации не получена
    2024-05-02 13:56:13 [orangepizero3][root][ACT] Источник данных ScadaServer: Приём базы конфигурации
    2024-05-02 13:56:13 [orangepizero3][root][ACT] Источник данных ScadaServer: База конфигурации получена успешно
    

    Собственно пока линия связи не запустилась, с командами проблема, уходят в пустоту…

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

    И еще такой момент, МАУ должен отправлять команду в устройство, когда оно уже готово после перезагрузки.

    С учётом этого требования, функция отправки команд после старта модуля не решит проблему.

    Нужно попробовать такой подход: завести расчётные каналы, которые будут показывать желаемое положение реле. Каналы с реальным положением уже есть. В модуле настроить два триггера, каждый на данные двух каналов, чтобы отправлять команды, которые будут приводить в соответствие желаемое и фактическое положение. Для команд задать параметр повтора.

    #32633
    manjey73
    Участник

    Ставил задержку 0с, период 10с, повтор 1 раз
    Команда похоже вообще не отправилась, или надо ставить количество повторов 2?

    Вообще команды отправляет же не сам МАУ а Сервер или МАУ отправляет команду в обход Сервера?
    Почему команда уходит в пустоту?

    Давно заметил что на ARM компьютерах Коммуникатор пытается запуститься раньше Сервера или параллельно, и пока Сервер не загрузится висит ошибка запуска Коммуникатора.
    Это как-то решить можно?

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

    #32634
    JurasskPark
    Участник

    В виндус можно сделать зависимость служб, что пока одна служба не запустится, вторая не стартует. Возможно, в Linux тоже есть такое.

    #32635
    manjey73
    Участник

    з.ы. посмотрел дополнительные поля на последнем МАУ — на кой они все, если толку от них ноль? Собственно для чего все эти

    Объекты, Устройства, Величины? Каков их смысл? В документации МАУ пока не добавлен.

    А вот банального сравнения двух и более каналов как не было так и нет. Чтобы как раз сам МАУ мог контролировать ту же температуру и доступность устройства как банальный пример сравнения 2-х каналов.
    И возможность добавлять для сравнения более 2-х каналов не помешала бы с указанием логики и группировки.
    Например (канал1 И канал2) ИЛИ канал3
    А так же добавить функцию ЕСЛИ, то есть после перезагрузки увидел ЕСЛИ то не смотри на отсутствие Нормализации — отправь все равно.

    И описания в окне настроек, которые можно самому заполнить. Давно писал об этом.

    #32636
    manjey73
    Участник

    @JurasskPark в Linux тоже это есть и можно. Надо разобраться в правилах udev, было там такое. Только вот МАУ принадлежит Серверу и не является вроде службой отдельной, Сервер стартанул, МАУ отработал, а то, что Коммуникатор (ScadaComm) еще не поднялся его не волнует почему-то, хотя по всей логике должно волновать.

    #32637
    manjey73
    Участник

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

    Тут я не знаю механизма, как реализовано.

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