Main Content

システムの入出力のレポート

この例では、モデルまたはサブシステムの入力と出力を説明するレポートの作成方法を説明します。レポートには、最上位モデルとモデル内の各サブシステムについての章が含まれます。各章には、入力と出力の節とシステム内のブロックの節が含まれます。

次の図は、レポートに含まれる入力と出力の概要を示したものです。

モデルを開く

モデルを開きます。この例では、最上位の入力ブロックと出力ブロック、および入出力のあるサブシステムをもつモデルを使用します。最上位の入力信号は変数 mappedIO に保存されますが、この変数はモデルを開く際に作成されます。

model = "slreportgen_demo_SystemIO";
open_system(model);

レポートの設定

長い完全修飾クラス名を使用せずに済むよう、Report Generator の API 名前空間をインポートします。

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 レポーターは既定でサブシステムの入出力端子に関する詳細を含めます。モデルの入力と出力については、レポーターは Inport ブロックと Outport ブロックに関する詳細を含めます。システムがモデルである場合、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);