PDA

Просмотр полной версии : расчет считает два раза...



kjum4n
24.03.2022, 22:17
Доброго времени суток господа!
прикрепляю видео с описанием проблемы и экспорт проекта...
что я делаю не так, помогите разобраться)

в крации использую формулу в расчете:

ЕСЛИ (концевик_вход=1,(ЕСЛИ (переключатель_типа_топлива=0,(AbsArchIntegral(Вых од,Метка_времени,Метка_времени1,1)),0)),0)
а потом полученное значение пересчитываю еще этой формулой:

(AbsArchSum (Расчет_ДТ_А_, Начало, DateTime ()))-(AbsArchSum (Расчет_ДТ_А__, Начало, DateTime ()))
и все бы хорошо, но после перезапуска рантайма почему то последнее значение плюсуется еще раз....

https://disk.yandex.ru/i/_ph_ZB1Sh8v1Fg - видео, 3.6 мб
https://disk.yandex.ru/d/4rG3oqd-wSbYgg - проект, 15 мб

SCADAMaster
25.03.2022, 09:59
Почему у вас период приведения всего 1?
Что касается проблемы, тот ту скорее всего дело в том, что при остановке MasterSCADA производится запись последнего значения в архив с флагом Норма-Останов. А если вы производите обработку архива, то это значение тоже может обработаться.
Возможно вам стоит рассмотреть вариант выполнения ваших расчетов в скрипте.
В наши онлайн курсы мы как раз добавили раздел по работе в скриптах с архивом данных.
https://stepik.org/course/104810/info?auth=login

kjum4n
25.03.2022, 10:20
а без скрипта не как это не обойти? сроки уже поджимают)

kjum4n
25.03.2022, 10:25
Почему у вас период приведения всего 1?
Что касается проблемы, тот ту скорее всего дело в том, что при остановке MasterSCADA производится запись последнего значения в архив с флагом Норма-Останов. А если вы производите обработку архива, то это значение тоже может обработаться.
Возможно вам стоит рассмотреть вариант выполнения ваших расчетов в скрипте.
В наши онлайн курсы мы как раз добавили раздел по работе в скриптах с архивом данных.
https://stepik.org/course/104810/info?auth=login

у меня мгновенный расход кг\с
разве не такой период приведения должен быть?

SCADAMaster
25.03.2022, 11:08
Тогда да, такой интервал.
Какой вам в конечном счете надо реализовать алгоритм? Опишите полностью что хотите сделать

kjum4n
25.03.2022, 11:15
при открытии задвижки "вход" и расходе на массомере начинаем считать сколько топлива вошло в емкость. после остановки расхода через массомер расчет останавливаем. итоговое число суммируем к архиву это приход топлива
при открытии задвижки выход соответственно вычитаем из общего...

SCADAMaster
25.03.2022, 13:42
Тогда без скриптов не обойтись.
Посмотрите пример в приложении. Обратите внимание на вкладку Опрос у объекта Расчет.
Также обратите внимание у что у скрипта в объекте Расчет включено Восстановление при рестарте.

kjum4n
25.03.2022, 14:39
интегрировал ваше решение в свой проект, восторг!)))
Спасибо вам огромное!)

kjum4n
25.03.2022, 16:52
Тему можно закрывать.