Особенности обработки архивов модулем Расчетом

<< Click to Display Table of Contents >>

Navigation:  Проект > Архивы > Рекомендации по настройке архивной системы >

Особенности обработки архивов модулем Расчетом

Расчеты в MasterSCADA имеют специальный набор функций для извлечения из архивов, как мгновенных значений, ближайших к заданному моменту времени, так и предварительно обработанных значений за указанный интервал времени (интегральных, суммарных и т.п.). Поскольку в любом случае для извлечения данных из архива требуется задавать время или интервал в расчетах имеется специальная группа функций для работы со временем, не только абсолютным, но и относительным (например, начало часа или смены). Учитывая, что расчет позволяет производить арифметические операции со временем (сложение, вычитание), мы получаем абсолютно гибкую систему запросов к архиву. Таким образом, расчеты можно использовать, как для использования архивных данных в каких-либо вычислениях, так и просто в качестве мастера запросов для извлечения архивных данных с целью их отображения на мнемосхемах, использования в рапортах и т.д.

Proekt.Arhivy_img22

Proekt.Arhivy_img23

Однако при работе с обработками данных в Расчете следует проявлять аккуратность. Дело в том, что если установить периодический опрос (например раз в секунду) и делать обработку архива за большие интервалы времени (месяц или более), то это вызовет большую нагрузку на систему, так как MasterSCADA придется постоянно запрашивать и обрабатывать большие объемы данных.

Рекомендуется сделать следующее.

1. Положить Расчет выполняющие обработку архивов в отдельный объект, у которого включить флаг Собственный цикл.

Proekt.Arhivy.osobennosti_obrabotki_arhivov_modulem_raschetom

В этом случае объект будет работать в отдельном потоке и не будет мешать выполнению остальных объектов, выполняющих работу с текущими данными.

2. Выполнять опрос данного объекта только тогда, когда это требуется. Например - по нажатию кнопки оператора или по расписанию. Для того, чтобы объект работал только в определенное время есть поле Условие выполнения - перетащите в это поле дискретную переменную (например Команду которая является кнопкой на мнемосхеме), и тогда объект посчитается только когда на выходе команды будет Истина.

Proekt.Arhivy.osobennosti_obrabotki_arhivov_modulem_raschetom1

Также вместо Расчетов вы можете использовать ФБ "Скрипт C#" - в нем также есть возможность обрабатывать архивы (причем по любому алгоритму, а не только предопределенному системой), а также он может выполнять асинхронные (в отдельном потоке) запросы к архиву, а также обращаться к архиву через штатный механизм. Подробнее вы можете посмотреть в справке к данному ФБ.