г. Москва, ул. Азовская, 14
+7 (495) 310-97-15
Пн-пт: с 9.00 до 18.00
Заказать звонок
Обратный звонок
Ваше имя *
Ваш телефон *
Ваш Email *
Перезвоните мне
Формирование отчетов для Мастерскада

Отчетные формы Мастерскада 3

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

Все данные в таблицах запрашиваются выборкой по датам из базы данных SQLite, обрабатываются FBScript и выводятся в формах разработанных в Visual Studio.


В нашей задаче мы использовали следующий справочный материал Сергей Моисеенко "SQL Задачи и решения"

Реализация отчетов началась с того, что Заказчик под конец общего ПНР выдал нам семь связанных друг с другом таблиц, которые должны были интерактивно пересчитываться и запоминаться.

Очевидно, что это - задача работы приложения (скрипта) при обращении с выборкой к какой либо БД. У Мастерскады есть своя база данных, но отсутствовал платный инструмент обращения к ней и нам пришлось делать приложение, создавать свою БД и СУБД на SQLite. У Мастерскады, конечно, есть свой мастер создания отчетов, но, поразбиравшись в нем, было принято решение на разработку собственной подпрограммы, позволяющей гибко реагировать на любые просьбы нашего Заказчика. Решение такое было продиктовано необходимостью наследования данной системы отчетов на любые другие SCADA-системы. 

В Мастерскаде был написан ФБ скрипт, который запускается 1 раз в секунду, опрашивает переменные и сохраняет их в SQLite. Визуализация (формы отчетов) были разработаны в Visual Studio 2017. Формы отчетов выбирают из БД нужные данные (за определенный месяц) и формируют таблицу для отображения. БД у Мастерскады не закрыта, но у нас возникла сложность в дозакупке инструмента для работы с этой самой БД. Дело в том, что Заказчик и интегратор не знали, что нужно было докупать приложение для Мастерскады, которое позволяло бы работать с БД (записывать данные для дальнейшей обработки). Деньги к тому моменту были уже согласованы и никто ничего не собирался покупать - пришлось разработать свое приложение.

С выбором СУБД (СУБД - это программа для работы с БД) тоже пришлось повозиться. Тут сложности были связанны с особенностями работы операционной системы Windows 7 и не очень продвинутой конфигурацией компьютера. Все пришлось изрядно оптимизировать для обеспечения стабильной работы системы.

Почему выбрали SQLIte? Вся база состоит из единственного файла данных, что обеспечивает высочайший уровень переносимости, т.е. на компьютере ничего не надо устанавливать. Создал базу, кинул ее в проект - и все превосходно работает, не надо ставить никакой сервер + у нас небольшая нагрузка, нет огромных массивов данных.

Удобным оказалось то, что в Мастерскаде присутствует возможность вывода ActiveX, это позволило разместить отчеты непосредственно в формате мнемосхем, не выходя за пределы приложения с использованием прав оператора. Мастерскада позволяет подключать пользовательские компоненты/интерфейсы, написанные на Visual Studio. Принцип работы достаточно прост: в Visual Studio пишется визуализация - наши отчеты, собирается библиотека - dll, а дальше эта dll просто подключается в Мастерскаде через ActiveX. Затем написанный пользовательский интерфейс перетаскивается мышкой в Мастерскаде в нужное место. Таким образом, средствами Visual Studio можно хорошо допилить функционал Мастерскады.

Для сравнения, SimpleScada и Teslascada нет имеют возможности добавления в проект OLE-объектов, что делает данные программные продукты не применимыми для реализации подобного подхода.

В итоге на компьютере были задействованы две базы данных. Одна для графиков и событий (внутренние функции Мастерскады), вторая для системы отчетов. СУБД действуют независимо друг от друга, разными потоками.

Были сложности в том, что Мастерскада эпизодически отваливалась и пришлось изрядно покопаться в настройках, прежде чем мы добились устойчивой работы и приложения отчетов, и самой Мастерскады. Достаточно сложно далась обработка данных на начало дня, месяца, года. Все дело в том, что в расчетах пришлось учитывать сбросы интегральных показателей приборов учета, отключение компьютера или SCADA-системы, а также разные факторы, включая человеческий, вроде кратковременных запусков насосов. 

Была также создана возможность вывода отчетов на подключенный лазерный принтер, сохранение отчета (выборка) за указанный период времени на диске.

Техническое задание было согласовано по внешнему виду, это порядка семи таблиц в MS Word.

Внешний вид отчетных форм

Структурная схема отчетов. Как взаимодействуют между собой программные компоненты, как все устроено
Структурная схема SQL

Внешний вид окон отчетов, включая общее окно навигации по отчетам, месячные отчеты и итоговые годовые отчеты.

Видеокадр Мастерскада


Отчет в Мастерскаде


Отчет в Мастерскаде


Отчет в Мастерскаде


Отчет в Мастерскаде


Отчет в Мастерскаде


Отчет в Мастерскаде


Отчет в Мастерскаде


11-min.jpg


Отчет в Мастерскаде


#Отчеты, #Мастерскада, #SQLite, #VisualStudio, #ActiveX, #СУБД, #SCADA
2

21.04.2020

Сталкивались с такой работой, но не с отчётами а другими элементами визуализации. Отлаживали тоже всё это долго, в итоге решили свою среду визуализации делать.

21.05.2019

Вопрос не в стоимости в "коннекторах", а в том что она скрыта. Мне как интегратору только в конце пути стало ясно что я что-то не купил (заказал). А что дальше? Мне из кармана семьи достать эти средства? Или может быть Вам не важны мои проблемы? Вот поэтому и такие "выкрутасы". Зато этот недостаток лицензирования дал старт целому направлению!!

17.09.2018

Я рада, что в таком виде все заработало :-). Вопрос 1: разница между стоимостью MSRT и MAS (с коннекторами к СУБД) оказалась больше, чем ваша трудоемкость?
Ваш комментарий добавлен