1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Определение событий и истории в типах

Модератор: специалисты Атомик Софт

Ответить

Автор темы
b_jam
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 29 дек 2023, 08:18
Имя: Евгений
Страна: Россия
город/регион: Пермский край
Благодарил (а): 1 раз

Определение событий и истории в типах

Сообщение b_jam »

Создаем тип для аналоговой величины (например, AI_Type) с получением данных их ПЛК и красивым отображением, который содержит выходной параметр с типом float (например, AI_val). Для AI_val настраиваем события: включаем «Генерировать события» «По уровню» и заполняем параметры: значения уровней, сообщения… Также настраиваем историю и пересчёт.

На базе AI_Type создаем объекты, например, для двух давлений и уровня (AI_Prers1, AI_Prers2, AI_Level).

Проблемы:
1. Уровни, сообщения событий для разных параметров в большинстве случаев разные, но изменить их в объекте нельзя. Параметры истории и пересчёта также нельзя изменить в объекте.
Видимо необходимо создавать типы на базе базового и в них определять параметры событий, истории, пересчёта, но как-то странно плодить сущности, если такие вещи лучше было бы определять в объекте.
Или отказываться от типов…
Для меня выглядит не логичным закрытая возможность изменять атрибуты, события, историю, перечёт параметра в объекте, созданном на базе типа.
2. Можно конечно добавить в тип параметры со значениями уровней событий, но нет доступа через формулы к настойкам событий (атрибутов, истории, пересчёта), т.е. переприсвоить нельзя.
Можно ещё сделать свой механизм формирования сообщений, с зоной нечувствительности снятия сообщения и может даже задержкой при формировании, чего нет в Альфе. Но это же, как изобретать велосипед и огромное количество параметров, для которых надо будет задать начальные значения в карте атрибутов.
3. В Alpha.HMI нет доступа (или не нашёл) к настойкам событий (атрибутов, истории, пересчёта), следовательно, например, нельзя сделать подсветку значения в зависимости от состояния нарушения (например, красным, когда выше номы и т.п.).
4. Есть задачи, которые работают абсолютно непрерывно, а загрузка новой версии – это дыра в работе сервера.
Изменения в карте атрибутов – новая версия, которую надо грузить на сервер. Почему бы не сделать выгрузку из сервера в проект текущих значений (может, есть, но не нашёл).
Изменения параметров перечёта, событий, истории и т.п. – новая версия, которую надо грузить на сервер. Почему бы не сделать загрузку не всего, а части, например, объекта (может, есть, но не нашёл).

vasilex
специалист Атомик Софт
специалист Атомик Софт
Сообщения: 21
Зарегистрирован: 15 фев 2023, 11:40
Имя: Сергей
Страна: Россия
город/регион: Томск
Благодарил (а): 1 раз
Поблагодарили: 11 раз

Определение событий и истории в типах

Сообщение vasilex »

Здравствуйте, Евгений!

1-2. Переопределение значений атрибутов для объектов, созданных на основе типов, можно реализовать с помощью карты атрибутов
[+]
Alpha.DevStudio > Руководство пользователя > Разработка проекта > Переопределение значений атрибутов с помощью карты атрибутов
Также, можно использовать возможность вычисления значений атрибутов
[+]
Alpha.DevStudio > Руководство пользователя > Разработка проекта > Вычисление значений атрибутов
3. В Alpha.HMI.Alarms реализована настройка визуального оформления событий
[+]
Alpha.HMI.Alarms > Руководство пользователя > Привлечение внимания к важным событиям > Цвет и мигание сообщения
В самом проекте HMI визуальную составляющую элементов можно реализовать в зависимости от поступающих данных.

4. Для безостановочной работы и безударной прогрузки системы, обычно используется резервирование серверов ввода-вывода. Внутрисистемный компонент AccessPoint выполняет роль единой точки доступа для HMI, позволяет непрерывно получать данные, переключаясь между источниками. Всё происходит в фоновом режиме без участия пользователя.

Для получения более развёрнутых комментариев и рекомендаций по настройке, можете создать обращение на портале технической поддержки и приложить ваш проект.

Автор темы
b_jam
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 29 дек 2023, 08:18
Имя: Евгений
Страна: Россия
город/регион: Пермский край
Благодарил (а): 1 раз

Определение событий и истории в типах

Сообщение b_jam »

Спасибо, Сергей!

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 системы в замен импортных решений.

vasilex
специалист Атомик Софт
специалист Атомик Софт
Сообщения: 21
Зарегистрирован: 15 фев 2023, 11:40
Имя: Сергей
Страна: Россия
город/регион: Томск
Благодарил (а): 1 раз
Поблагодарили: 11 раз

Определение событий и истории в типах

Сообщение vasilex »

Евгений, полагаю, что большую часть потребностей закроет HMI-приложение SetPoints.
Предварительно сконфигурированные карты уставок управляются из проекта HMI онлайн без необходимости прогрузки серверной части.
Возможна работа как с внутренними уставками HMI, так и расположенными в ПЛК.
[+] Все доступные на текущий момент HMI-приложения
Alpha.HMI.Alarms - просмотр событий технологического процесса
Alpha.HMI.Trends - просмотр графиков изменений параметров технологического процесса
Alpha.HMI.SecurityConfigurator – конфигурирование подсистемы безопасности Alpha.Security
Alpha.HMI.Explorer – просмотр и изменение значений сигналов Alpha.Server
Alpha.HMI.SetPoints - просмотр и редактирование уставок параметров технологического процесса
Alpha.HMI.IntegrityControl - контроль целостности файлов и папок на локальных/удаленных узлах и просмотра результатов проверки. Приложение используется как дополнение к компонентам Alpha.Security и Alpha.HMI.Security, т.к. контроль целостности выполняется с помощью этих компонентов.

Приложения HMI можно встраивать в проекты, работающие на ОС Windows и ОС Linux, запускать как отдельное приложение.
Конечно же, всё что разработано в HMI, доступно и через Web-Portal.

Все HMI-приложения разработаны средствами самого HMI, исходные коды открыты.
При необходимости, напишите в форму обратной связи для получения демо и документации.

Автор темы
b_jam
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 29 дек 2023, 08:18
Имя: Евгений
Страна: Россия
город/регион: Пермский край
Благодарил (а): 1 раз

Определение событий и истории в типах

Сообщение b_jam »

После заполнения формы обратной связи для получения демо и документации, никакой обратной связи не возникает, тишина…
Ответить

Вернуться в «Альфа платформа»