Создаем тип для аналоговой величины (например, AI_Type) с получением данных их ПЛК и красивым отображением, который содержит выходной параметр с типом float (например, AI_val). Для AI_val настраиваем события: включаем «Генерировать события» «По уровню» и заполняем параметры: значения уровней, сообщения… Также настраиваем историю и пересчёт.
На базе AI_Type создаем объекты, например, для двух давлений и уровня (AI_Prers1, AI_Prers2, AI_Level).
Проблемы:
1. Уровни, сообщения событий для разных параметров в большинстве случаев разные, но изменить их в объекте нельзя. Параметры истории и пересчёта также нельзя изменить в объекте.
Видимо необходимо создавать типы на базе базового и в них определять параметры событий, истории, пересчёта, но как-то странно плодить сущности, если такие вещи лучше было бы определять в объекте.
Или отказываться от типов…
Для меня выглядит не логичным закрытая возможность изменять атрибуты, события, историю, перечёт параметра в объекте, созданном на базе типа.
2. Можно конечно добавить в тип параметры со значениями уровней событий, но нет доступа через формулы к настойкам событий (атрибутов, истории, пересчёта), т.е. переприсвоить нельзя.
Можно ещё сделать свой механизм формирования сообщений, с зоной нечувствительности снятия сообщения и может даже задержкой при формировании, чего нет в Альфе. Но это же, как изобретать велосипед и огромное количество параметров, для которых надо будет задать начальные значения в карте атрибутов.
3. В Alpha.HMI нет доступа (или не нашёл) к настойкам событий (атрибутов, истории, пересчёта), следовательно, например, нельзя сделать подсветку значения в зависимости от состояния нарушения (например, красным, когда выше номы и т.п.).
4. Есть задачи, которые работают абсолютно непрерывно, а загрузка новой версии – это дыра в работе сервера.
Изменения в карте атрибутов – новая версия, которую надо грузить на сервер. Почему бы не сделать выгрузку из сервера в проект текущих значений (может, есть, но не нашёл).
Изменения параметров перечёта, событий, истории и т.п. – новая версия, которую надо грузить на сервер. Почему бы не сделать загрузку не всего, а части, например, объекта (может, есть, но не нашёл).
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Определение событий и истории в типах
Модератор: специалисты Атомик Софт
-
- специалист Атомик Софт
- Сообщения: 21
- Зарегистрирован: 15 фев 2023, 11:40
- Имя: Сергей
- Страна: Россия
- город/регион: Томск
- Благодарил (а): 1 раз
- Поблагодарили: 11 раз
Определение событий и истории в типах
Здравствуйте, Евгений!
1-2. Переопределение значений атрибутов для объектов, созданных на основе типов, можно реализовать с помощью карты атрибутов Также, можно использовать возможность вычисления значений атрибутов 3. В Alpha.HMI.Alarms реализована настройка визуального оформления событий В самом проекте HMI визуальную составляющую элементов можно реализовать в зависимости от поступающих данных.
4. Для безостановочной работы и безударной прогрузки системы, обычно используется резервирование серверов ввода-вывода. Внутрисистемный компонент AccessPoint выполняет роль единой точки доступа для HMI, позволяет непрерывно получать данные, переключаясь между источниками. Всё происходит в фоновом режиме без участия пользователя.
Для получения более развёрнутых комментариев и рекомендаций по настройке, можете создать обращение на портале технической поддержки и приложить ваш проект.
1-2. Переопределение значений атрибутов для объектов, созданных на основе типов, можно реализовать с помощью карты атрибутов Также, можно использовать возможность вычисления значений атрибутов 3. В Alpha.HMI.Alarms реализована настройка визуального оформления событий В самом проекте HMI визуальную составляющую элементов можно реализовать в зависимости от поступающих данных.
4. Для безостановочной работы и безударной прогрузки системы, обычно используется резервирование серверов ввода-вывода. Внутрисистемный компонент AccessPoint выполняет роль единой точки доступа для HMI, позволяет непрерывно получать данные, переключаясь между источниками. Всё происходит в фоновом режиме без участия пользователя.
Для получения более развёрнутых комментариев и рекомендаций по настройке, можете создать обращение на портале технической поддержки и приложить ваш проект.
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 29 дек 2023, 08:18
- Имя: Евгений
- Страна: Россия
- город/регион: Пермский край
- Благодарил (а): 1 раз
Определение событий и истории в типах
Спасибо, Сергей!
3. По поводу анимации Alpha.HMI. Например, показания уровня привязаны к индикатору гистограммы. Надо задать нижнее пороговое, верхнее пороговое значения, равные нижней и верхней границе сигнализации. Конечно, можно ввести непосредственно значения. Но вот как взять эти пороги с сервера? Тут вроде напрашивается вариант через атрибуты, ну хоть пользовательские. Но такой возможности не нашёл. Только через дополнительные переменные. Аналогично, вывел показания уровня в текстовом поле, а под ним разместил прямоугольник, чтобы раскрашивать его в зависимости от уровня сигнализации. Можно через непосредственные значения, но лучше бы значения из сервера.
1-2.
«Переопределение значений атрибутов с помощью карты атрибутов» - рабочий вариант и даже может оптимальный, если смириться с тем, что надо делать это в JSON и проблемой 3 (см. выше).
«Вычисление значений атрибутов» - хорошая идея, но:
- Совместить с «Переопределение значений атрибутов с помощью карты атрибутов» не выходит, т.к. тогда при изменении атрибута с типом «unit.Server.Attributes.Alarm» возникает «Error Alpha.Server: Ошибка десериализации объекта типа Omx.Server.Events.MemberEvents. Обнаружен непредвиденный символ "@". AI.HMI.val LibTypes.omx LibTypes».
- Если задать верхнюю и нижнюю границы сигнала для сигнализации нарушения диапазона (2 атрибута), задать верхнюю и нижнюю аварийную и предупредительную границы сигнализации (4 атрибута), задать возможность отключения событий и 6-ти границ (7 атрибутов), итого добавить 13 атрибутов, то редактировать каждый из них придётся в разных 13-ти картах атрибутов, что будет очень запутано. Как предложение – возможность создания групп атрибутов для редактирования в карте атрибутов.
- проблема 3 опять не решается.
В любом случае остаётся проблема отсутствия зоны нечувствительности при сбросе тревоги, что приведёт к формированию множества сообщений при колебании сигнала на границе тревоги. И было бы уместным иметь возможность настроить задержку по времени при формировании сигнала тревога, чтобы в некоторых случаях иметь возможность отфильтровать кратковременные непринципиальные нарушения. Наверное, это предложения.
4. Согласен, Вы описали правильное решение. Но допустим, для изменения границы сигнализации надо звать программиста и перезагружать сервер, хотя можно было бы реализовать механизм изменения границ сигнализации ещё каких-то переменных пользователем с определённым уровнем доступа в ходе эксплуатации, а при более серьёзных изменениях проекта выгрузка измененных параметров с сервера в проект и последующее редактирование. Мысль об этом. Хотя с тревогами не выйдет (в Alpha.HMI к атрибутам доступа нет или не нашёл).
Мне, наверное, в портал технической поддержки рано, т.к. пока только стадия выбора SCADA системы в замен импортных решений.
3. По поводу анимации Alpha.HMI. Например, показания уровня привязаны к индикатору гистограммы. Надо задать нижнее пороговое, верхнее пороговое значения, равные нижней и верхней границе сигнализации. Конечно, можно ввести непосредственно значения. Но вот как взять эти пороги с сервера? Тут вроде напрашивается вариант через атрибуты, ну хоть пользовательские. Но такой возможности не нашёл. Только через дополнительные переменные. Аналогично, вывел показания уровня в текстовом поле, а под ним разместил прямоугольник, чтобы раскрашивать его в зависимости от уровня сигнализации. Можно через непосредственные значения, но лучше бы значения из сервера.
1-2.
«Переопределение значений атрибутов с помощью карты атрибутов» - рабочий вариант и даже может оптимальный, если смириться с тем, что надо делать это в JSON и проблемой 3 (см. выше).
«Вычисление значений атрибутов» - хорошая идея, но:
- Совместить с «Переопределение значений атрибутов с помощью карты атрибутов» не выходит, т.к. тогда при изменении атрибута с типом «unit.Server.Attributes.Alarm» возникает «Error Alpha.Server: Ошибка десериализации объекта типа Omx.Server.Events.MemberEvents. Обнаружен непредвиденный символ "@". AI.HMI.val LibTypes.omx LibTypes».
- Если задать верхнюю и нижнюю границы сигнала для сигнализации нарушения диапазона (2 атрибута), задать верхнюю и нижнюю аварийную и предупредительную границы сигнализации (4 атрибута), задать возможность отключения событий и 6-ти границ (7 атрибутов), итого добавить 13 атрибутов, то редактировать каждый из них придётся в разных 13-ти картах атрибутов, что будет очень запутано. Как предложение – возможность создания групп атрибутов для редактирования в карте атрибутов.
- проблема 3 опять не решается.
В любом случае остаётся проблема отсутствия зоны нечувствительности при сбросе тревоги, что приведёт к формированию множества сообщений при колебании сигнала на границе тревоги. И было бы уместным иметь возможность настроить задержку по времени при формировании сигнала тревога, чтобы в некоторых случаях иметь возможность отфильтровать кратковременные непринципиальные нарушения. Наверное, это предложения.
4. Согласен, Вы описали правильное решение. Но допустим, для изменения границы сигнализации надо звать программиста и перезагружать сервер, хотя можно было бы реализовать механизм изменения границ сигнализации ещё каких-то переменных пользователем с определённым уровнем доступа в ходе эксплуатации, а при более серьёзных изменениях проекта выгрузка измененных параметров с сервера в проект и последующее редактирование. Мысль об этом. Хотя с тревогами не выйдет (в Alpha.HMI к атрибутам доступа нет или не нашёл).
Мне, наверное, в портал технической поддержки рано, т.к. пока только стадия выбора SCADA системы в замен импортных решений.
-
- специалист Атомик Софт
- Сообщения: 21
- Зарегистрирован: 15 фев 2023, 11:40
- Имя: Сергей
- Страна: Россия
- город/регион: Томск
- Благодарил (а): 1 раз
- Поблагодарили: 11 раз
Определение событий и истории в типах
Евгений, полагаю, что большую часть потребностей закроет HMI-приложение SetPoints.
Предварительно сконфигурированные карты уставок управляются из проекта HMI онлайн без необходимости прогрузки серверной части.
Возможна работа как с внутренними уставками HMI, так и расположенными в ПЛК.
При необходимости, напишите в форму обратной связи для получения демо и документации.
Предварительно сконфигурированные карты уставок управляются из проекта HMI онлайн без необходимости прогрузки серверной части.
Возможна работа как с внутренними уставками HMI, так и расположенными в ПЛК.
При необходимости, напишите в форму обратной связи для получения демо и документации.
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 29 дек 2023, 08:18
- Имя: Евгений
- Страна: Россия
- город/регион: Пермский край
- Благодарил (а): 1 раз
Определение событий и истории в типах
После заполнения формы обратной связи для получения демо и документации, никакой обратной связи не возникает, тишина…