メインコンテンツ

slreportgen.finder.BlockFinder クラス

名前空間: slreportgen.finder
スーパークラス: mlreportgen.finder.Finder

Simulink ブロック線図の検索

説明

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

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

作成

説明

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

メモ

このファインダーには、検索結果の取得方法として次のオプションが用意されています。

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

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

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

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

入力引数

すべて展開する

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

プロパティ

すべて展開する

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

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

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

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

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

検索結果に含めるバリアント ブロックのバリアント。次のいずれかの値として指定します。

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

データ型: char | string

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

ファインダーの結果の並べ替えメソッド。次のいずれかの値として指定します。

説明
"none"結果を並べ替えません。
"alphabetical"結果を名前のアルファベット順に並べ替えます。
"systemAlpha"結果を親システム名のアルファベット順に並べ替えます。
"fullPathAlpha"結果を絶対パスのアルファベット順に並べ替えます。
"blockType"結果をタイプのアルファベット順に並べ替えます。
"depth"結果をモデルの階層構造の深さ順に並べ替えます。並べ替えられたリストの最初の結果は、階層構造内で最上位のシステムのものです。たとえば、サブシステム内の最上位モデルとブロックの結果は、 myModel/block1myModel/subsystem1/block2myModel/subsystem1/nestedSubststem/block3 の順に並べ替えられます。
"leftToRight"結果を、左から右への行を使用したモデル レイアウト内の場所によって並べ替えます。モデル内のブロックの行は、2 つの水平ラインの間に配置されているブロックのサブグループです。最小行は、サブ行に分割できない行です。アルゴリズムはまず、ブロックを最小行にグループ化し、各行を左から右に並べ替えます。アルゴリズムは次に、並べ替えられた行を上から下に連結させます。
"topToBottom"結果を、上から下への列を使用したモデル レイアウト内の場所によって並べ替えます。モデル内のブロックの列は、2 つの垂直ラインの間に配置されているブロックのサブグループです。最小列は、サブ列に分割できない列です。アルゴリズムはまず、ブロックを最小列にグループ化し、各行を上から下に並べ替えます。アルゴリズムは次に、並べ替えられた行を右から左に連結させます。
"runtime"非バーチャル ブロックを、モデル内または非バーチャル サブシステム内での実行順に並べ替えます。このオプションは、指定されたブロックを含むモデルをコンパイルします。バーチャル ブロックまたは Container で指定されたシステムの一部ではないブロックを表すブロックの結果は、並べ替えられたブロック リストの最後に追加されます。マルチタスク システムでは、ブロックは実行されるタスク別にグループ化されます。

属性:

GetAccess
public
SetAccess
public

データ型: char | string

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

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

属性:

GetAccess
public
SetAccess
public

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

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

属性:

GetAccess
public
SetAccess
public

データ型: cell

メソッド

すべて展開する

すべて折りたたむ

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

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

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

add(rpt,TitlePage(Title="I/O Blocks in "+model_name+" Model"));
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 で導入