Содержание

VisScada - лог изменений

:!::!::!:

Необходимые преобразования для старых проектов

:!::!::!:

[2022-01-27] Добавлена аутентификация

1. Каталог bpl перенесен в common и включен в репозиторий 2. В каталог bpl добавлен файл libeay32.dll 3. Добавлена поддержка аутентификации. Для работы приложения необходима библиотека libeay32.dll

[2021-11-05] Рефакторинг переподключения к серверу данных и работа без стандартных баз

Теперь при упавшей/отсутствующей базе тегов и/или сообщений визуализация выдаст сообщение и продолжит работу (оператор не остается без управления). Работает как при старте,так и после. Выполнен рефакторинг реконнекта при потери связи с сервером данных. Добавлены параметры позиции/размера главного окна в Администрирование/Системные.

[2021-10-15] Управление предупредительным звонком

Добавлен новый способ управления предупредительным звонком, который необходимо подавать при одиночном ручном запуске машин. Например, в одном проекте есть два отделения, каждое из которых расположено в отдельном помещении со своим оборудованием и звонком. Оператор из первого отделения запускает шнек вручную с предупредительной подачей звонка, при этом он ожидает, что зазвенит звонок именно первого отделения, а не оба сразу. Старый способ работы с предупредительными звонками через тег _PrjProcs._PrjStartAlarmBtnInputTagName этого сделать не позволяет.

Решение данной проблемы заключается в делегировании функции включения предупредительного звонка самой машине в roboplant-проекте. Для этого в MCHB добавлен выход CtrlBeep, который включается на определенное время, когда машина меняет свое состояние в результате изменения значения в Control. Выход CtrlBeep соединяется с соответствующим звонком. Подробнее о новых функциях в MCHB можно ознакомится в roboplant-справке по MCHB, выходы Control и CtrlBeep.

Для того, чтобы включить режим управления предупредительным оповещением через MCHB.CtrlBeep в visscada необходимо при старте проекта:

modeMchbCtrlBeep := true; // глобальная переменная из RpVisualGlobal

Старый способ работает без изменений.

[2021-09-01] Сообщений V2

Добавлена новая (написана с нуля) подсистема работы с сообщениями с условным названием «Сообщения V2» (далее - V2) состоящая из:

Включение режима V2 можно сделать в visscada Администрирование/Системные/Журнал сообщений V2. Для работы данного режима необходимо использовать модуль arcsvr jrobo версии не ниже 1.5.4. Подробней см. Алгоритм архивации сообщений V2.

Основное предназначение V2 - многопользовательские и распределенные системы АСУТП, т.к. использование старой подсистемы сообщений для подобных проектов вызывает определенные трудности. Например:

В V2 убрана логика обработки сообщений, теперь этим полностью занимается архиватор jrobo.arcsvr, а visscada только следит за тем, что происходит в базе данных. Например, если произошла авария, то arcsvr создаст сообщение в базе, которое отобразится на всех visscada-клиентах. Далее, если на одном из клиентов данное сообщение будет подтверждено, то оно также отобразится подтвержденным на всех остальных visscada-клиентах с указанием пользователя и места.

Также в V2 усовершенствован способ сброса аварийного звонка. Старый вариант использует переменную _PrjAlarmResetTagName, в которую можно прописать один или несколько тегов для сброса звонка аварии - при подтверждении оператором всех активных сообщений во все теги запишется 1. Как правило в _PrjProcs это выглядит вот так:

  _PrjAlarmResetTagName = _PrjCodeName + '.BTN_Beep1_Input';

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

В V2 для решения данной проблемы используется идентификатор места (place) оборудования. В roboplant-проекте блокам, имеющим сообщения на выходах, прописывается идентификатор места, после чего в viscada в _PrjProcs данные идентификаторы связываются с соответствующими тегами сброса аварий:

procedure _PrjInitForms;
begin
  addAlarmResetTag('SCHML.BTN_Beep0_Input', 'zo_razmol');     // для общего оборудования
  addAlarmResetTag('SCHML.BTN_Beep1_Input', 'zernoochistka'); // для оборудования зерноочистки
  addAlarmResetTag('SCHML.BTN_Beep2_Input', 'razmol');        // для оборудования размола
 
  // дальнейшая инициализация...
end;  

Старая система сообщений работает без изменений.

Класс Sidebar управляет нестандартными боковыми панелями, которые должны появляться при клике по объектам класса TCustomScadaObject.

Пример использования:

_PrjProcs.pas

SidebarZdvaTm.pas

SidebarZdvaTm.dfm

[2019-04-05] CommonDataboard

На главную панель инструментов добавлена кнопка Технологические параметры (название можно менять), при нажатии на которую открывается VisDataBoard с общими технологическими параметрами проекта. Кнопка по умолчанию скрыта. Пример использования CommonDataboard.