Main Content

slreportgen.finder.BlockFinder クラス

パッケージ: slreportgen.finder

Simulink ブロック線図の検索

説明

Simulink® ブロック線図内のブロックを検索します。

slreportgen.finder.BlockFinder クラスは handle クラスです。

作成

説明

finder = BlockFinder(diagram) は既定で、指定された Simulink ブロック線図内のすべてのタイプのブロックを検索するファインダーを作成します。検索を特定タイプのブロックに制約するには、ファインダーのプロパティを使用します。

メモ

このファインダーには、検索結果を取得する 2 つの方法が用意されています。

  1. 検索結果を配列として返すには、find メソッドを使用します。結果をレポートに直接追加するか、for ループで結果を処理します。

  2. 一度に 1 つずつ結果を反復処理するには、while ループで hasNext メソッドと next メソッドを使用します。

これらのオプションに、パフォーマンス上の差はありません。

finder = BlockFinder(Name=Value) は、名前と値の引数を使用してプロパティを設定します。複数の名前と値の引数を任意の順序で指定できます。

入力引数

すべて展開する

Container プロパティを参照してください。

プロパティ

すべて展開する

検索の対象となるブロック線図。次のいずれかの値として指定します。

  • Simulink モデルまたはサブシステムのハンドル

  • Simulink モデルまたはサブシステムへのパス

Gain などの検索するブロックのタイプ。string 配列または文字配列として指定します。あるいは、検索する一連のブロック タイプ。string 配列、または文字配列の cell 配列として指定します。

コメントアウトされたブロックを検索結果に含めるかどうか。logical として指定します。false の場合、コメントアウトされたブロックは検索結果から除外されます。

検索結果に含めるバリアント ブロックのバリアント。次の表のいずれかの値として指定します。値は string スカラーまたは文字ベクトルとして指定できます。

説明
"Active"アクティブなバリアント (既定)
"All"すべてのバリアント
"ActivePlusCode"アクティブなバリアントとコード バリアント

Container を検索するレベルの数。非負の整数または inf として指定します。すべてのレベルを検索するには、inf を指定します。

特定の信号に接続されているブロックに検索を制限します。slreportgen.finder.SignalResult オブジェクトまたは端子ハンドルとして指定します。このプロパティが空の場合、検索は特定の信号に接続されているブロックに制限されません。

例: finder.ConnectedSignal = find_system(my_model,findall=true,type="port",name="my_signal")

検索対象とするオブジェクトのプロパティ。名前と値のペアの cell 配列として指定します。ファインダーは、指定のプロパティが指定の値をもつオブジェクトのみを返します。

例: finder.Properties = {'Gain','5'}

メソッド

すべて展開する

すべて折りたたむ

slrgex_sf_car モデル内の Inport ブロックと Output ブロックを検索します。

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

model_name = "slrgex_sf_car";
load_system(model_name)
rpt = slreportgen.report.Report("output","pdf");

add(rpt,TitlePage(Title=sprintf("I/O Blocks in %s Model",model_name)));
add(rpt,TableOfContents);

diagFinder = SystemDiagramFinder(model_name);
diagFinder.IncludeRoot = false;
while hasNext(diagFinder)
    diagram = next(diagFinder);
    chapter = Chapter(Title=diagram.Name);
    add(chapter,diagram)
    sect = Section(Title="Inport Blocks");
    ioFinder = BlockFinder(diagram.Object);
    ioFinder.BlockTypes = "Inport";
    blocks = find(ioFinder);
    for block = blocks
        add(sect,block)
    end  
    add(chapter,sect);
    sect = Section(Title="Outport Blocks");
    ioFinder = BlockFinder(diagram.Object);
    ioFinder.BlockTypes = "Outport";
    outblocks = find(ioFinder);
    for block = outblocks
        add(sect,block)
    end  
    add(chapter,sect)
    add(rpt,chapter)
end
close(rpt)
close_system(model_name)
rptview(rpt)

バージョン履歴

R2017b で導入