Описание слайда:
I-OMS-Solver. Расчет масс операций.
Программный продукт предназначен для расчета масс операций, имеющихся в БД операций, за определенный период времени. Программа написана на VB.Net 2005 и представлена в виде библиотеки InduSoft.IOMSSolver.dll. I-OMS-Solver работает непосредственно с сервером БДРВ, платформой и БД операций.
Результат работы I-OMS-Solver – коллекция посчитанных операций. Дублирующиеся операции или имеющие какие-то отклонения от шаблона помечаются флагом удаления.
При загрузке I-OMS-Solver получает интервал времени, временную метку начала периода учета движения, пользовательские настройки (названия свойств, модулей….) и указание на сервер БДРВ.
Программа загружает из БД операций все операции за интервал времени (операции могут начинаться и (или) заканчиваться вне интервала). Затем применяется алгоритм фильтрации и коррекции операций:
отбрасываются операции, которые не относятся к системе учета движения, имеют флаг удаления или не удовлетворяют шаблону операций,
отбрасываются дубликаты операций (дубликатами считаются операции, пересекающиеся во времени, с одинаковыми объектами (резервуар, поток установки), имеющие более позднее «Время создания операции»),
корректируются границы операций: если операция начинается раньше времени начала интервала / позже времени конца интервала, то время начала заменяется временем начала операции / время конца – временем конца интервала.
Если операция началась в первую минуту от начала периода учета движения, то время начало сдвигается на 1 минуту назад, чтобы не потерять 1 минуту (из клиента I-OMS пользователи могут указывать время начала операции не раньше 1 минуты после времени начала периода учета движения).
После фильтрации и корректировки все операции распределяются по «объектам расчета». Если имеются 2 и более пересекающиеся кучки операций по одному объекту, то идет разделение на 2 и более «объектов расчета». Т.е. «объект расчета» имеет одну операцию или полный набор пересекающихся операций.
В зависимости от типа объекта, разница массового тега может считаться по-разному, но общее у них то, что время начала – это время самой ранней пересекающейся операции, а время конца – время самой поздней пересекающейся операции.
Для объекта типа «резервуар» и «установка» берется разница значений массового тега на начало и окончание.
Для объекта типа «отгрузка» берется разница значения массового тега на конец и значения массы за предыдущий период (из свойства операции).
После того как все операции разобраны по «объектам расчета», и у каждого «объекта расчета» посчитана разность массового тега, наступает пора осуществить расчет всех операций. Далее идут циклы тестов – расчетов для всех полностью не рассчитанных «объектов». Циклы бывают нескольких видов. Общее у них то, что внутри цикла идет перебор тестов-расчетов для всех полностью не рассчитанных «объектов» до тех пор, пока в результате полного перебора ни один «объект» полностью не будет рассчитан (рассчитаны все операции по «объекту расчета»).