PDA

Просмотр полной версии : MasterSCADA 4D Отчет



KrAssor
13.06.2019, 15:35
Добрый день!
В хелпнике в примере создания отчета указано:
Шаг 2. Добавляем в проект служебный ФБ из библиотеки: BaseObjects.ФБ.Системные.ReportFB. Данный ФБ управляет формированием отчета. В настройках входа Name необходимо указать в качестве значения по умолчанию имя файла отчета, которым будет управлять данный ФБ. А вход Execute соединить с параметром Сформировать
Шаг 3. Отчет добавляется в дереве системы, при помощи контекстного меню узла. На панели настройки нужно указать имя файла, которое было указано в предыдущем пункте.

Я не нашел, где в шаге 3 указывать имя файла.

SCADAMaster4D
13.06.2019, 16:34
Отчет не обязательно добавлять в узел, можно и в объект. В поле Name ФБ ReportFB должно подаваться полное имя отчета в виде: Объект 1.Объект 2.Отчет 1 (объекты по структуре вложенности друг в друга).

KrAssor
14.06.2019, 09:54
Отчет не обязательно добавлять в узел, можно и в объект. В поле Name ФБ ReportFB должно подаваться полное имя отчета в виде: Объект 1.Объект 2.Отчет 1 (объекты по структуре вложенности друг в друга).
Добрый день!
Еще глупый вопрос - имя отчета как должно выглядеть?
ReportFB выдает мне ошибку при попытке сгенерировать отчет: Not found report: Объекты.Котельная.Отчет.Ресурсы.Отчеты.Отчет 1
Я пробовал в различных вариациях строку на вход передавать: Объекты.Котельная.Отчет.Ресурсы.Отчеты.Отчет 1, 'Объекты.Котельная.Отчет.Ресурсы.Отчеты.Отчет 1', "Объекты.Котельная.Отчет.Ресурсы.Отчеты.Отчет 1"

SCADAMaster4D
14.06.2019, 12:15
В данном случае Котельная.Отчет 1.

KrAssor
14.06.2019, 14:08
В данном случае Котельная.Отчет 1.

Получилось, спасибо.
Появился еще один вопрос: На вход InPath ФБ reportFB можно задать строку, где будет указан путь для сохранения отчета.
Если я присваиваю значение по умолчанию c:\Users\UserName\Google Диск\Documents\MS4 project\Reports\, то при компиляции появится ошибка:
14.06.2019 14:03:28 Error: Внутренняя ошибка : [string "chunk"]:708: invalid escape sequence near '"c:\U' Источник: 'Система.АРМ' [Id=109969]
Если значение по умолчанию оставить пустым, подключится к узлу и в среде разработки присвоить входу InPath то же самое значение, то отчет сформируется и сохранится без всяких ошибок.
Так же вопрос, на какую последовательность символов конкретно ругается компилятор и как это исправить? В хелпнике нашел только комбинации с символом $

melky
14.06.2019, 14:16
KrAssor Возможно весь путь надо взять в кавычки "С:\Весь Путь к файлу или папке" так как в имени одной папки есть пробел. Это вроде правило для всех вариантов на Windows

KrAssor
14.06.2019, 14:26
KrAssor Возможно весь путь надо взять в кавычки "С:\Весь Путь к файлу или папке" так как в имени одной папки есть пробел. Это вроде правило для всех вариантов на Windows
Нет, не в кавычках дело:
14.06.2019 14:23:58 Error: Внутренняя ошибка : [string "chunk"]:708: invalid escape sequence near '""c:\U' Источник: 'Система.АРМ' [Id=109969] Детали: Положение: Код:
И опять же, почему когда эту строку вставляю в InPath при подключении к узлу - все ок?

SCADAMaster4D
14.06.2019, 15:05
Нужно экранировать слэши. Вводите C:\\report\\123\\ и т.д.

KrAssor
14.06.2019, 16:00
Нужно экранировать слэши. Вводите C:\\report\\123\\ и т.д.

Понял, спасибо.

Владимир Протопланов
20.06.2019, 08:17
У меня смежный вопрос: Как вывести отчет на визуализацию с возможностью сохранить его куда нужно или отправить на печать? Либо же вывести уже сформированный файл или дать доступ на скачивание.

UPD:Сам разобрался благодаря этому комментарию https://www.owen.ru/forum/showthread.php?t=30428&p=296728&viewfull=1#post296728

akphantom
12.08.2019, 07:53
Я использовал системный блок SysProcessCreate. С выхода PATH блока ReportFB подал строку на вход блока SysProcessCreate, на вход Command подал сигнал по заднему фронта с выхода Building. Открывается редактором по умолчанию. Но думаю можно попробовать открыть редактором каким нужно если его вписать в Command, а выход PATH подать на вход Args.

UPD: Да, так работает. На вход Command подаёте экзешник pdf-ридера, а на Args (SysProcessCreate) выход PATH блока ReportFB.

KrAssor
26.08.2019, 14:27
Возможно ли динамизировать отчет по выводимой переменной? Необходимо выводить отчет по архивным данным + график за выбранный период времени по одной переменной из нескольких. Или для каждой переменной нужно создавать свой отчет?

SCADAMaster4D
26.08.2019, 16:34
В отчете каждый параметр или группу добавьте в свой источник данных, а потом у него задавайте начало и конец выборки. Если же отчет по этому параметру не нужен, то просто начало и конец задаёте одинаковыми, чтобы выборки вообще не было.

nnnn1
11.12.2019, 14:30
Добрый день!
Версия: 1.2.7.14416 hmi v2
Использование элемента ввода дата и время в окне для отчета.
Если ввожу дату и время в окне(напривмер 11.12.2019 16:00) то в отчет передается 11.12.2019 22:00. В hmi v1 дата и время передается правильно. Как можно исправить?

b_aleks
11.12.2019, 15:39
Добрый день!
Версия: 1.2.7.14416 hmi v2
Использование элемента ввода дата и время в окне для отчета.
Если ввожу дату и время в окне(напривмер 11.12.2019 16:00) то в отчет передается 11.12.2019 22:00. В hmi v1 дата и время передается правильно. Как можно исправить?

Пока что наверное никак. У них в новой визуализации какие-то массовые проблемы со временем, то отстает, то бежит вперед.

VladGC
11.12.2019, 17:39
Добрый день!
Версия: 1.2.7.14416 hmi v2
Использование элемента ввода дата и время в окне для отчета.
Если ввожу дату и время в окне(напривмер 11.12.2019 16:00) то в отчет передается 11.12.2019 22:00. В hmi v1 дата и время передается правильно. Как можно исправить?
Пока что надо вычитать время с учетом часового пояса, там вроде как пишется время по Гринвичу

Stab
22.03.2022, 10:35
Добрый день!
Подскажите, можно ли генерировать отчет без вставки текущей даты/времени в его имя? То есть что бы в папке отчета лежал всего один файл, перезаписываемый при каждом формировании.
Задача - формировать отчет по таймеру, круглосуточно, через каждые несколько часов. Хочется избежать очистку папки отчета.

VladGC
23.03.2022, 12:11
Добрый день!
Подскажите, можно ли генерировать отчет без вставки текущей даты/времени в его имя? То есть что бы в папке отчета лежал всего один файл, перезаписываемый при каждом формировании.
Задача - формировать отчет по таймеру, круглосуточно, через каждые несколько часов. Хочется избежать очистку папки отчета.

Добрый день!
Да можно
В поле InPath даете полный путь для сохранения, например так:

E:\REPORTS\2022\3\23\report_1.xlsx

Поле Name оставляете пустым
Поле Format можно тоже оставить пустым

Для себя сделал разбивку по годам, месяцам и дню.
Имя отчета всегда одно и тоже

Stab
04.04.2022, 18:28
Спасибо, все получилось!

AWA1971
07.04.2022, 11:48
Добрый день. Пытаюсь сделать отчет всего по одному каналу (галочка архивировать установлена). На панели свойств канала Id элемента есть, но при перетаскивании канала в "Архив данных" словаря отчета и просмотре его свойств , поле "ID связи" пустое. Судя по справке (где это поле отображает Id), что-то я делаю не так. Данных в отчете нет, при попытке формирования, связь с АРМ разрывается. Демоверсия MasterSCADA4D 1,2

Stab
08.04.2022, 07:18
То же обратил внимание, что это поле пустое, но при наведении мыши на перетащенный параметр в Архив данных словаря должна появляться всплывающая подсказка связи, где отображен путь к параметру в проекте . Попробуйте повводить данные вручную в процессе исполнения. Так же не забудьте привязать Начало (тип DT), Конец(DT) и Интервал(TIME) к параметрам проекта соответсвующих типов. Они должны иметь отличные от нуля значения, а так же Начало (тип DT) должно быть меньше Конец(DT). Проверьте, что у блока Report_FB настроены все связи - к отчету, пути и тп. Если при генерации возникает ошибка выход Err содержит строку с сообщением об ошибке, которое можно посмотреть.
Кстати, если у Вас канал напрямую привязан к отчету, то попробуйте создать параметр в каком либо объекте проекта, привязать к каналу, и делать отчет по нему. Сам я не пробовал отчет с привязкой к каналу, но возможно дело в этом

VladGC
08.04.2022, 08:20
Добрый день. Пытаюсь сделать отчет всего по одному каналу (галочка архивировать установлена). На панели свойств канала Id элемента есть, но при перетаскивании канала в "Архив данных" словаря отчета и просмотре его свойств , поле "ID связи" пустое. Судя по справке (где это поле отображает Id), что-то я делаю не так. Данных в отчете нет, при попытке формирования, связь с АРМ разрывается. Демоверсия MasterSCADA4D 1,2

Как выше уже написали, надо начало и конец указать для отчета по изменению, для периодического еще и интервал нужен
версия 1.2 а дальше какая?
сейчас 1.2.15 отображение связей вроде как работает, раньше не отображались, но фактически она была

AWA1971
08.04.2022, 09:11
Версия свежая - 1.2.15. Пробовал и напрямую и через привязку к тэгу в "Объекте". Параметры "Начало" и "Конец" типа DT. Начальные значения: 2022-04-06-14:00:00 и 2022-04-07-00:00:00. Параметр Интервал типа TIME. Начальное значение: 01:00:00. После перезагрузки ПК ID связи появляются, потом пропадают. Мистика какая-то. Данные в базе точно есть (на тренде ползунком показывает значения и график). При формировании обрыв связи с ОРС-сервером и сообщение: АРМ1:(АРМ1) Нет соединения с узлом. Папки Report в проекте не появляется. Предварительный просмотр всегда отражает 10 строк (хотя пробовал менять интервал на минуту) и всегда с нулями (начальное значение канала в свойствах проекта), а в колонке Время вообще пусто. Все делал в точности как в справке. Раз 5 удалял проект и переделывал снова. На том же ПК и с тем же ОРС другие СКАДА-системы (тоже отечественные и демоверсии) работают спокойно, включая архивы, графики и отчеты. Упор именно на отчеты (периодические за смену, месяц и т.д.). А тут элементарно 1 значение из БД вытащить не могу...

VladGC
08.04.2022, 09:28
Версия свежая - 1.2.15. Пробовал и напрямую и через привязку к тэгу в "Объекте". Параметры "Начало" и "Конец" типа DT. Начальные значения: 2022-04-06-14:00:00 и 2022-04-07-00:00:00. Параметр Интервал типа TIME. Начальное значение: 01:00:00. После перезагрузки ПК ID связи появляются, потом пропадают. Мистика какая-то. Данные в базе точно есть (на тренде ползунком показывает значения и график). При формировании обрыв связи с ОРС-сервером и сообщение: АРМ1:(АРМ1) Нет соединения с узлом. Папки Report в проекте не появляется. Предварительный просмотр всегда отражает 10 строк (хотя пробовал менять интервал на минуту) и всегда с нулями (начальное значение канала в свойствах проекта), а в колонке Время вообще пусто. Все делал в точности как в справке. Раз 5 удалял проект и переделывал снова. На том же ПК и с тем же ОРС другие СКАДА-системы (тоже отечественные и демоверсии) работают спокойно, включая архивы, графики и отчеты. Упор именно на отчеты (периодические за смену, месяц и т.д.). А тут элементарно 1 значение из БД вытащить не могу...

Покажите пару скриншотов, где отчет и где fb report , что пишет в поле с ошибкой ?

AWA1971
08.04.2022, 12:20
602236022460225

AWA1971
08.04.2022, 12:25
При предварительном просмотре нормально, что время вообще никак не отражается?
60226
Вот сам момент попытки сформировать отчет. Видно, что Building в состоянии TRUE. И тут же зависание проекта с ошибкой:
60227

Stab
08.04.2022, 12:47
При предварительном просмотре нормально, что время вообще никак не отражается?

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

Ау авторы-скадописцы!!! есть тут кто?
1. данные при добавлении в архив данных получают доп свойство Nullable, поменять это нельзя - выбор другого типа (без Nullable) в свойствах элемента просто не реагирует на клик мыши. А ваши функции разности, умножения (пока только эти проверялись) ругаются на эти типы (см скрины выше).
2. при попытке генерации даже простого периодического отчета винда завершает процесс mplc.exe. при смене свойства аржива данных с периодического на По изменению отчет формируется.

Прошу что то ответить, возвращаться на предыдущую версию или ждать пояснений техподдержки, в версии 1.2.13 этих проблем не было

AWA1971
08.04.2022, 13:04
Спасибо за рекомендацию! Поменял свойства с периодического на изменение. Действительно, все заработало. И папка Reports появилась, и отчет в ней нарисовался Но мне нужен именно периодический. Надеюсь что разработчики что-то решат с этим.

VladGC
11.04.2022, 13:39
Спасибо за рекомендацию! Поменял свойства с периодического на изменение. Действительно, все заработало. И папка Reports появилась, и отчет в ней нарисовался Но мне нужен именно периодический. Надеюсь что разработчики что-то решат с этим.

Для периодического отчета необходимо задать интервал - тип TIME, а единица измерения интервала секунда, тогда интервал будет равен времени в TIME
Если выбираете единицу измерения интервала что то отличное от секунды, надо подавать конкретное значение типа INT

Stab
11.04.2022, 14:12
Для периодического отчета необходимо задать интервал - тип TIME, а единица измерения интервала секунда, тогда интервал будет равен времени в TIME
Если выбираете единицу измерения интервала что то отличное от секунды, надо подавать конкретное значение типа INT

Добрый день!

Дело тут не в интервале. В версии 1.2.13 все работало. Мой периодический отчет перестал формироваться после обновления версии среды разработки на новую 1.2.15. Тут в соседней теме попробовал Ваш совет по поводу явно преобразования типов и проставил перед каждым значением его тип (double) или (DateTime)? и все заработало. отчет стал формироваться. Подозрение такое, что функции которые я использовал MaxD и MinD для поиска расчета разницы минимального и максимального значений в редакторе не ругаются на тип дополненный признаком Nullable, но не могут с ним работать и создают ошибку, приводящую к завершению процесса mplc.exe. Когда я явно указал везде в расчетах тип без признака Nullable, то отчет стал формироваться.
AWA1971 - попробуйте в своем отчете принудительно указать тип параметрам

AWA1971
12.04.2022, 13:36
Спасибо. Попробовал. {Архив_данных.Время} в {(DateTime)Архив_данных.Время}, {Архив_данных.Расходомер} во {(float)Архив_данных.Расходомер} и т.д. Безрезультатно. Поставил демоверсию 1.2.14 - там и безо всяких форматирований все отлично формируется. Отослал проект в техподдержку. Может чего подскажут...

AWA1971
12.04.2022, 16:39
Помог традиционный "метод тыка". В 15-ой версии для построения периодического отчета (в моем конкретном случае) нужно в настройках редактора перейти на настройки среды и там на вкладке "Компиляция" поставить галку в "использовать генератор отчетов на NET Core" (по-умолчанию галка была снята) . После этого отчет начал формироваться

Stab
13.04.2022, 09:50
Помог традиционный "метод тыка". В 15-ой версии для построения периодического отчета (в моем конкретном случае) нужно в настройках редактора перейти на настройки среды и там на вкладке "Компиляция" поставить галку в "использовать генератор отчетов на NET Core" (по-умолчанию галка была снята) . После этого отчет начал формироваться

Да, действительно установка галки "использовать генератор отчетов на NET Core" снимает проблему завершения процесса mplc при генерации периодического отчета. Однако не снимает проблему с арифметикой у параметров. К примеру, если записать в текстовой ячейке {Архив_данных.ПотребленнаяЭнергия1* Переменные.Тариф} то внизу окна редактирования будет надпись :
Ошибка! There is no matching overloaded method for 'op_Mult(Nullable'1, Nullable'1)'
картинка 60304
Но если записать {(double)Архив_данных.ПотребленнаяЭнергия1* (double)Переменные.Тариф} то ошибки нет и расчет производится верно.
А простое отображение данных в текстовой ячейке работает и без (double). {(double)Архив_данных.ПотребленнаяЭнергия1} и {Архив_данных.ПотребленнаяЭнергия1} одинаково выводят значение.

Stab
22.04.2022, 14:12
После обращения в техподдержку по поводу ошибки из за добавления к параметрам признака Nullable получил такой ответ -
Это не ошибка, такая реализация была сделана специально по ряду причин, а в расчетах требуется применять Параметр.Value , например
{Архив_данных.ПотребленнаяЭнергия1.Value * Переменные.Тариф.Value}.

Larrrik
17.05.2022, 15:50
Коллеги, доброго дня.
Может кто подскажет: можно ли сделать так, чтобы отчеты формировались в структурированные каталоги (год \ месяц \ день, в соответствии с датой формирования) внутри дефолтной папки \reports?
Вся масса отчетов за годы одним куском выглядела бы удручающе.

Stab
18.05.2022, 09:27
Коллеги, доброго дня.
Может кто подскажет: можно ли сделать так, чтобы отчеты формировались в структурированные каталоги (год \ месяц \ день, в соответствии с датой формирования) внутри дефолтной папки \reports?
Вся масса отчетов за годы одним куском выглядела бы удручающе.

Добрый день, у ФБ ReportFB есть вход InPath. На него подавайте нужный путь и имя файла.
Так же посмотрите этот пост из текущей темы - https://owen.ru/forum/showthread.php?t=31379&p=377430&viewfull=1#post377430

Larrrik
18.05.2022, 12:27
у ФБ ReportFB есть вход InPath
Большое спасибо, работает.
К стыду признаться, перед тем как задать вопрос сперва пробежал по диагонали всю ветку, но, видимо, не шибко внимательно:rolleyes:

Larrrik
18.05.2022, 15:00
Может кто еще подскажет, можно ли в MS4D реализовать вызов стандартного окна проводника (или как-то иначе) для произвольного выбора и просмотра в среде исполнения любого из файлов отчетов сформированных ранее?
В справке показана лишь реализация открытия только что сформированного отчета по выходу Path блока ReportFB.

b_aleks
18.05.2022, 16:38
Может кто еще подскажет, можно ли в MS4D реализовать вызов стандартного окна проводника (или как-то иначе) для произвольного выбора и просмотра в среде исполнения любого из файлов отчетов сформированных ранее?
В справке показана лишь реализация открытия только что сформированного отчета по выходу Path блока ReportFB.

Использовать ФБ SysProcessCreateAsync, на вход которого подавать команду explorer
Можно, например, вот так подать команду: explorer C:\ProgramData\MPSSoft\MasterSCADA4DRT1_2\Server\h tdocs\resources
Тогда откроется папка с ресурсами проекта.

Larrrik
20.05.2022, 12:32
Использовать ФБ SysProcessCreateAsync
Спасибо. Будем разбираться

Larrrik
26.05.2022, 15:32
Можно, например, вот так подать команду: explorer C:\ProgramData\MPSSoft\MasterSCADA4DRT1_2\Server\h tdocs\resources
Тогда откроется папка с ресурсами проекта.
Что-то не получается повторить. Не найдется ли тестового примера, чтобы вживую разобраться с работой этого ФБ? (сухая справка совсем не помогает)

b_aleks
26.05.2022, 15:49
Что-то не получается повторить. Не найдется ли тестового примера, чтобы вживую разобраться с работой этого ФБ? (сухая справка совсем не помогает)

Да там и без справки все предельно понятно и просто.
60916

Triceraptor
05.08.2022, 21:09
Добрый день, нужна помощь, пытаюсь создать отчет в MasterScada 4D Версия: 1.2.16.27525(MPLCD_1_2_20220718.2),

по MODBUS читаю регистр и складываю значения в основной архив данных, в базе данных sqlite данные присутствуют, проверил
создал ReportFB и настроил по примеру из документации, получал ошибку Column 'Вход' from data source 'Архив_данных' not found in table 'table1'
пересоздал таблицу и теперь ни ошибки ни отчета.

Поделитесь пожалуйста рабочим примером отчета для MasterScada 4D Версия: 1.2.16.27525(MPLCD_1_2_20220718.2)

Minarion
17.03.2023, 12:26
Добрый день!
Есть логический параметр состояния аварии прибора. Подскажите пожалуйста как в отчетах реализовать следующее:
1. Количество включений: тут через бэнд данные и итог Count, второй вариант через периодический отчет и счетчик включений, но он как-то криво работает если надо что-то отредактировать...
2. Время неработоспособности: общее за весь период отчета, и для каждой конкретной аварии (то есть временной интервал между ближайшими true и false)
3. Как в отчете привязать комментарий оператора к аварии? (из журнала или отдельного параметра)

iscander7
02.05.2023, 19:12
Добрый вечер!
Никак не удаётся настроить в отчёте итог по дискреному входу (время работы станка), архив данных настраивал и по изменению и как итоговый, переменную настраивал как по пробегу так и по переднему фронту и по последнему значению. Помогите, может я по бубну не так бью?