Тестовая страница 1

Материал из docs.kb-agava.ru
Версия от 14:19, 1 октября 2026; KuznetsovME (обсуждение | вклад) (Новая страница: «== Документы == {{Внимание|Тип=Восклицание желтый.png|Текст=Формирование документов выполня...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

1 Документы

Восклицание желтый.png Формирование документов выполняется только в среде проектирования. В среде исполнения узел «Документ» не используется.

Документ – узел, предназначенный для формирования документации по узлам проекта: карт регистров, перечней транспортов и протоколов, списков сигналов и других документов, содержимое которых определяется настройками самих узлов.

Документ состоит из макета и наборов данных. Макет – шаблон документа, который составляется в редакторе макета так же, как макет отчета. Набор данных – выборка узлов проекта, свойства которых становятся полями макета.

1.1 Создание нового документа

Создание документа производится в два этапа.

  1. Создание необходимых узлов в конфигурации: сам документ и необходимое количество наборов данных.
  2. Составление макета документа.

Узел типа «Документ» добавляется в узел «Отчеты» с помощью команды контекстного меню «Добавить узел». К документу аналогичным образом добавляется необходимое количество узлов типа «Набор данных документа», например, по одному на каждую таблицу в макете.

Файл:AgavaPLC–Документ с наборами данных в дереве проекта.png
Рисунок 43 – Документ с наборами данных в дереве проекта

Перед переходом к редактированию макета необходимо:

  • в свойстве набора данных «Узлы» выбрать узлы, по которым составляется документ;
  • при необходимости ограничить набор узлами нужных типов с помощью свойства «Фильтр по имени типа»;
  • задать наборам данных имена, состоящие из латинских букв (см. Наборы данных документа).

1.2 Свойства документа

Помимо общих свойств узла, узел «Документ» имеет свойство «Путь к файлу макета».

Наименование свойства Идентификатор Тип Описание Допустимые значения Режим доступа
Путь к файлу макета TemplatePath ResourceLink Файл, в котором хранится макет документа (формат .lrxml) Путь к файлу, рекомендуется относительно папки проекта Чтение/Запись

Путь к файлу макета заполняется автоматически при первом сохранении макета в редакторе.

При проверке проекта для узла «Документ» выдаются сообщения «Путь до макета отчета не задан» и «Невозможно открыть файл макета».

1.3 Наборы данных документа

Набор данных определяет, какие узлы попадают в документ, и превращается в таблицу, которая доступна в макете как источник данных. Строка таблицы соответствует одному узлу, столбец – служебному полю или свойству узла.

Набор данных – узел типа «Набор данных документа», дочерний по отношению к документу. Имя узла является именем источника данных в макете. Оно должно состоять из латинских букв, цифр и знака «_» и не должно начинаться с цифры, так как используется в макете в выражениях вида $D{Registers.Name}. По умолчанию узлу присваивается имя Dataset.

1.3.1 Свойства набора данных

Наименование свойства Идентификатор Тип Описание Допустимые значения Режим доступа
Узлы Roots NodesArray Узлы, из которых строится набор данных Любые существующие узлы проекта Чтение/Запись
Фильтр по имени типа TypeFilter string Ограничивает набор узлами указанных типов Название типа или часть названия, несколько значений через «;». Пустое значение – любые узлы Чтение/Запись
Включать вложенные Recursive bool Включать в набор потомков выбранных узлов true/false (по умолчанию true) Чтение/Запись

1.3.2 Выбор узлов

Узел попадает в набор данных, если он выбран в свойстве «Узлы» либо является потомком выбранного узла (при включенном свойстве «Включать вложенные») и при этом соответствует фильтру по имени типа. Повторяющиеся узлы включаются в набор один раз.

Выбранный узел также проверяется по фильтру. Например, если в свойстве «Узлы» выбран протокол, а в фильтре указан тип «Регистр Modbus», в набор попадут только регистры протокола, но не сам протокол.

1.3.3 Фильтр по имени типа

Фильтр состоит из одного или нескольких значений, разделенных символами «;» или «,». Узел соответствует фильтру, если хотя бы одно значение входит:

  • в системное имя типа узла, например nstSourceModbusReg;
  • в название типа или подтипа узла, отображаемое в проекте, например «Регистр Modbus».

Регистр букв не учитывается, в том числе для русских букв. Пробелы по краям значений игнорируются.

Значение фильтра Результат
(пусто) Все узлы
Регистр Modbus Регистры Modbus
регистр modbus Регистры Modbus
Протокол Modbus; Регистр Modbus Протоколы и регистры Modbus
Источник Все узлы типа «Источник»

Слишком короткое значение может привести к включению лишних узлов: фильтру «Источник» соответствуют все источники, а не только регистры Modbus.

1.3.4 Проверка набора данных

При проверке проекта для набора данных выдаются сообщения:

  • «Не заданы узлы набора данных»;
  • «Несуществующий узел включен в набор данных»;
  • «Имя набора данных должно состоять из латинских букв, цифр и '_' и не начинаться с цифры».

1.4 Поля источника данных

Поля источника данных формируются автоматически по узлам набора. Набор полей для макета не настраивается.

1.4.1 Служебные поля

Служебные поля присутствуют в любом наборе данных и расположены первыми.

Поле Тип Описание
Path string Полный путь узла от корня проекта
ParentPath string Путь родительского узла. Для узла без родителя – пустая строка. Используется для связи наборов данных по принципу «главный – подчиненный»
Name string Имя узла
Description string Описание узла
TypeName string Название типа узла

Свойства узла с теми же идентификаторами (Name, Description) служебные поля не заменяют.

1.4.2 Поля свойств узлов

Для каждого свойства узлов набора добавляется поле, имя которого совпадает с идентификатором свойства, например ReadRegister для свойства «Регистр чтения». Если в набор входят узлы разных типов, поля объединяются; для узла, не имеющего свойства, значение поля остается пустым.

Идентификаторы свойств и их названия приведены в описании соответствующего узла. Подпись и описание свойства отображаются во всплывающей подсказке поля в окне «Инспектор данных».

Тип свойства Значение поля
Целое число, беззнаковое целое число Число
Вещественное число Число без округления
Логическое значение Логическое значение
Строка Строка
Перечисление Название значения. Числовое значение содержится в дополнительном поле с именем <идентификатор>_Raw, например ValueType_Raw
Ссылка на узел Имя связанного узла
Тип узла, время, цвет, точка, размер, шрифт, значение сигнала, ссылка на значение, ссылка на ресурс Строка

В набор данных не включаются свойства:

  • скрытые в окне свойств;
  • содержащие пароль;
  • имеющие тип «массив», «список» или «карта» (например, списки узлов и операций).

Числа и логические значения передаются в макет без преобразования в строки, поэтому к ним применимы форматирование и функции.

1.4.3 Переменные макета

В макете документа доступны переменные, используемые в выражениях вида $V{DocumentName}.

Переменная Описание
DocumentName Имя узла «Документ»
GeneratedAt Дата и время формирования в формате «дд.мм.гггг чч:мм»

Стандартные переменные редактора макета (#PAGE, #PAGE_COUNT) также доступны.

1.5 Редактирование макета документа

Для редактирования макета необходимо переключиться из редактора конфигурации в редактор макета с помощью команды «Открыть редактор макета отчета», доступной из контекстного меню узла типа «Документ» (пункт «Открыть»), либо дважды щелкнуть по узлу. Окна и элементы редактора описаны в разделах Редактирование макета отчета, Элементы отчета и Разделы отчета (бэнды).

В окне «Инспектор данных» для каждого набора данных отображается источник с именем набора и его поля. Поля перетаскиваются на элементы макета либо указываются в тексте элемента в виде $D{набор.поле}.

Файл:AgavaPLC–Источник данных документа в инспекторе данных.png
Рисунок 44 – Источник данных документа в окне «Инспектор данных»

Данные наборов определяются на момент открытия редактора. После изменения узлов или их свойств необходимо вернуться из редактора с помощью команды «Назад» и открыть его повторно.

После сохранения макета путь к файлу записывается в свойство «Путь к файлу макета» узла «Документ». Результат просматривается, печатается и сохраняется штатными средствами редактора макета.

1.6 Группировка и иерархия

1.6.1 Группировка

Группировка строк выполняется бэндами GroupHeader (заголовок группы) и GroupFooter (завершение группы), см. Разделы отчета (бэнды). В свойстве groupFieldName бэнда GroupHeader указывается имя поля набора, например DeviceAddr. Для подсчета строк группы применяется функция COUNT.

1.6.2 Иерархия наборов данных

Для вывода иерархии, например «транспорт – протокол – регистры», создается отдельный набор данных для каждого уровня, а связь между ними задается в редакторе макета в окне «Инспектор данных»: по команде «Добавить источник данных» выбирается режим «Режим фильтрации», в котором указываются «Главный источник» и «Подчиненный источник». В таблице «Поля для связи источников» для главного источника указывается поле Path, для подчиненного – ParentPath.

Одна связь описывает один уровень иерархии. Связь сохраняется в файле макета.

Файл:AgavaPLC–Настройка связи наборов данных документа.png
Рисунок 45 – Настройка связи наборов данных

1.7 Пример: карта регистров Modbus

Задача: сформировать документ с перечнем регистров Modbus, сгруппированных по адресам устройств.

  1. Добавить в узел «Отчеты» узел «Документ» и задать ему имя, например ModbusMap.
  2. Добавить в документ узел «Набор данных документа» и задать ему имя Registers.
  3. В свойстве «Узлы» набора выбрать протокол Modbus (или группу, содержащую протоколы).
  4. В свойстве «Фильтр по имени типа» ввести значение «Регистр Modbus».
  5. Оставить включенным свойство «Включать вложенные».
  6. Открыть редактор макета и расположить на макете:
    • в бэнде Report Header – название документа и переменные $V{DocumentName}, $V{GeneratedAt};
    • в бэнде DataHeader – названия столбцов;
    • в бэнде GroupHeader с полем группировки DeviceAddr – текст вида «Устройство Modbus, адрес $D{Registers.DeviceAddr}»;
    • в бэнде Data с источником данных Registers – поля, приведенные в таблице ниже;
    • в бэнде GroupFooter – число регистров устройства;
    • в бэнде Page Footer – номер страницы.
  7. Сохранить макет.
Столбец макета Поле Свойство узла «Регистр Modbus»
Функция чтения ReadFunction Функция чтения
Регистр ReadRegister Регистр чтения
Имя Name Имя узла
Тип значения ValueType Тип значения
Размер, бит ParamSize Размер регистра
Порядок байт ByteOrder Порядок байт
Описание Description Описание узла

Для записываемых регистров дополнительно доступны поля WriteFunction («Функция записи») и WriteRegister («Регистр записи»), для приоритета опроса – Priority.

Файл:AgavaPLC–Результат формирования карты регистров.png
Рисунок 46 – Результат формирования карты регистров

1.8 Особенности и ограничения

  • Документ формируется в среде проектирования. Для отображения в среде исполнения узел «Документ» не предназначен; виджет отображения отчета принимает только узлы «Отчет».
  • Данные набора определяются при открытии редактора макета и не обновляются автоматически.
  • Порядок строк соответствует порядку узлов в дереве проекта. Сортировка строк по значению поля средствами набора данных не выполняется.
  • Значения регистров выводятся в том виде, в котором они хранятся в свойствах узлов (десятичное число, нумерация задается проектировщиком).
  • Результат формируется в форматах, поддерживаемых редактором макета отчета.
  • Связь наборов данных между собой не создается автоматически и настраивается в макете (см. Иерархия наборов данных).