PDA

Просмотр полной версии : Помогите с отчетом в Мaster Scada



KDS
19.07.2011, 15:14
Помогите разобраться с отчетом!!!!! Не могу в отчетах сформировать первоначальное (предыдущее) значение переменной для подсчета циклов отпуска продукции... Пробовал по примеру из документации - компиляция не проходит. может можно еще как-то выловить это значение???? скада 3,4 на 32 точки. И как можно сохранить чило импульсов с выхода ФБ "счетчик дискр импульсов", так как после стопа выход ФБ обнуляется??? (восстановление после рестарта не помогает)

SCADAMaster
19.07.2011, 16:21
Не могу в отчетах сформировать первоначальное (предыдущее) значение переменной для подсчета циклов отпуска продукции...
Что именно у вас не получается? У вас идет нарастающий итог и вам необходимо вычислить разность?



И как можно сохранить чило импульсов с выхода ФБ "счетчик дискр импульсов", так как после стопа выход ФБ обнуляется??? (восстановление после рестарта не помогает)
Нужно поставить галочку "Восстановление при рестарте" у всего Фб "Счетчик дискретрых импульсов".

KDS
19.07.2011, 17:09
На весь ФБ галочку поставил заработало. Спасибо) Но зачем же тогда отдельно на выход можно ставить если не работает? Да, идет нарастающий итог циклов и мне надо выдать рапорт- за час работы сколько было циклов, а потом еще и за сутки. Не могу понять как эту разность подсчитать. Я уже извратился - использовал звено запаздывания с запаздыванием на час и опросом 1. закинул в рапорт- периодический. Как и в примере получил колонку "время начальное" "значение начальное (из выхода звена зап)" "Время и значение конечное" и даже разность подсчитал вроде работает, но если Время опроса рапорта и время запаздывания поменять с часа на сутки ,например, (вроде так же должно работать всего то интервал другой ) то начальное значение уже совсем не то какое должно быть...

SCADAMaster
19.07.2011, 18:55
Если вам нужно построить отчет нарастающего итога (сколько было выпущено изделий за такой то промежуток времени), то есть вам нужна разность между началом времени построения отчета и концом.
Очевидно, что вначале периода значение счетчика будет минимальным, а в конце - максимальным.
Поэтому можно применить такой прием. Создайте в отчете источник данных, перетащите в него переменную счетчика, вызовите контекстное меню и измените имя, назовите - минимум. Перейдите на закладку свойств и установите обработку - минимум. Снова перетащите в отчет переменную счетчика, переименуйте - назовите максимум, обработка параметра - тоже максимум. Тип построения отчета - итоговый.
Теперь вытащите источник в рабочую область, сделайте чтобы бэнд данных был скрытым (в документации описывалось - нужно уменьшить до нуля его высоту), а в итоге данных просто вычислите разность между переменными источника "Максимум" и "Минимум"
Пример в приложении.

KDS
20.07.2011, 09:44
Спасибо за пример, так и сделаю. Но хочется разобраться до конца с тем что, я намудрил и описал в предыдущем сообщении. А суть в следующем: составляю отчет в режиме исполнения... отчет за каждые 2 минуты (начальное знач и время , конечные и разность м/у конечным и начальным). Все работает отлично. Далее меняю время периода составления рапорта и опрос звена запаздывания через минуту и получается следующее.....

SCADAMaster
20.07.2011, 11:00
Да, идет нарастающий итог циклов и мне надо выдать рапорт- за час работы сколько было циклов, а потом еще и за сутки. Не могу понять как эту разность подсчитать.
То есть вам нужно при каждом выводе строки данных, вычесть предыдущее значение?
Это можно сделать при помощи события "После печати" - сохранять в переменную текущее значение из источника данных, а затем вычитать ее при построении следующей строки. Данный пример разбирался в документации по отчетам - в 4 примере.
Сделайте так, без всяких звеньев.

KDS
22.07.2011, 07:59
Спасибо за помощь. Разобрался, работает..))