exponenta event banner

Ввод и вывод системы отчетов

В этом примере показано, как создать отчет, описывающий входные и выходные данные модели или подсистемы. Отчет содержит главу для модели верхнего уровня и каждой подсистемы модели. Каждая глава содержит раздел для входов и выходов и раздел для блоков в системе.

На этом рисунке показаны входные и выходные сводки, включенные в отчет.

Открыть модель

Откройте модель. В этом примере используется модель с блоками ввода и вывода верхнего уровня и подсистемой с входами и выходами. Входные сигналы верхнего уровня хранятся в переменной, mappedIO, который создается при открытии модели.

model = "slreportgen_demo_SystemIO";
open_system(model);

Настройка отчета

Импортируйте пакеты API Report Generator, чтобы не использовать длинные, полные имена классов.

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*

Создайте и откройте объект отчета Simulink. Чтобы создать отчет Microsoft ® Word, HTML или однофайловый HTML, измените "pdf" комуdocx", "html", или "html-file"соответственно.

rpt = slreportgen.report.Report(model + "_SystemIO_Report","pdf");
open(rpt);

Добавление титульной страницы и оглавления.

titlepage = TitlePage("Title",model + ": System I/O Report","Author","Jane Doe");
add(rpt,titlepage);
toc = TableOfContents();
add(rpt, toc);

Отчет о вводимых и выводимых ресурсах

Поиск и петля по всем системам в модели.

finder = SystemDiagramFinder(model);
while hasNext(finder)
    system = next(finder);

Создайте новую главу и добавьте результат диаграммы.

    ch = Chapter("Title",sprintf("System %s",system.Name));
    add(ch,system);   

Создание раздела «Входы и выходы» и SystemIO репортер.

    ioSect = Section("Inputs and Outputs");
    ioRptr = SystemIO(system);    

Для входов и выходов подсистемы: SystemIO по умолчанию содержит сведения о входных и выходных портах подсистемы. Для входных и выходных данных модели репортер содержит сведения о блоках ввода и вывода. Если система является моделью, установите SystemIO возможность опустить эти сведения о блоке, поскольку этот отчет содержит ту же информацию в разделе «Блоки» главы.

    if strcmp(system.Type,"Simulink.BlockDiagram")
        ioRptr.ShowDetails = false;
    end
    add(ioSect,ioRptr);
    add(ch,ioSect);

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

    blkSect = Section("Blocks");
    blkFinder = BlockFinder(system);
    results = find(blkFinder);
    add(blkSect,results);
    add(ch,blkSect);

Добавьте главу в отчет.

    add(rpt,ch);
end

Закрыть отчет

Закройте и просмотрите отчет.

close(rpt);
rptview(rpt);