====== VisScada - лог изменений ====== :!::!::!: [[doc:visscada:refact_rpvisual_units_20210901]] :!::!::!: ===== [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) состоящая из: * MesBar - строка последнего сообщения внизу экрана * MesMonitor - окно просмотра активных и неподтвержденных сообщений * MesView - окно просмотра архивных сообщений Включение режима V2 можно сделать в visscada Администрирование/Системные/Журнал сообщений V2. Для работы данного режима необходимо использовать модуль arcsvr jrobo версии не ниже 1.5.4. Подробней см. [[doc:jroboplc:modules:arcsvr#алгоритм_архивации_сообщений_v2|Алгоритм архивации сообщений V2]]. Основное предназначение V2 - многопользовательские и распределенные системы АСУТП, т.к. использование старой подсистемы сообщений для подобных проектов вызывает определенные трудности. Например: * необходимость подтверждения пришедшего сообщения на всех рабочих местах * невозможность фильтрации сообщений по идентификаторам места (place) * необходимость переподключения visscada-клиентов на всех рабочих местах при изменении конфигурации сообщений В 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; Старая система сообщений работает без изменений. ===== [2020-09-18] Sidebar ===== Класс Sidebar управляет нестандартными боковыми панелями, которые должны появляться при клике по объектам класса TCustomScadaObject. Пример использования: {{:doc:visscada:visscada_sidebar.png?direct&200 |}} {{:doc:visscada:visscada_sidebar_delphi.png?direct&200 |}} [[doc:visscada:visscada_sidebar_prjprocs_pas]] [[doc:visscada:visscada_sidebar_zdvatm_pas]] [[doc:visscada:visscada_sidebar_zdvatm_dfm]] ===== [2019-04-05] CommonDataboard ===== На главную панель инструментов добавлена кнопка ''Технологические параметры'' (название можно менять), при нажатии на которую открывается VisDataBoard с общими технологическими параметрами проекта. Кнопка по умолчанию скрыта. [[doc:visscada:common_databoard_prjprocs]].