Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

slbuild

モデルのスタンドアロン実行可能ファイルまたはモデル参照ターゲットのビルド

説明

slbuild(model) は、現在のコンフィギュレーション パラメーター設定を使用して、指定されたモデルからスタンドアロンの Simulink® Coder™ バイナリ実行可能ファイルをビルドします。モデルが読み込まれていない場合、slbuild はビルド プロセスを開始する前にモデルを読み込みます。

slbuild(model,buildSpec) は、指定されたコード生成アクションに従ってモデルからスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。

slbuild(model,Name,Value) は、1 つ以上の名前と値の引数で指定されたモデルからスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。

blockHandle = slbuild(subsystem) は、モデルの現在のコンフィギュレーション パラメーター設定を使用して、サブシステム コードを生成し、Simulink Coder バイナリ実行可能ファイルをビルドします。選択したシステム ターゲット ファイルで S-Function ブロックが作成されると、自動生成された S-Function ラッパーへの空でないブロック ハンドルが返されます。コマンドを実行する前に、親モデルを開くか読み込まなければなりません。

blockHandle = slbuild(subsystem,'Mode','ExportFunctionCalls') は、外部のアプリケーション コードにエクスポートできる関数呼び出しを含むサブシステムからコードを生成します。このコマンドには Embedded Coder® が必要です。[ブロックの作成] コンフィギュレーション パラメーターが [SIL] に設定されている場合、SIL ブロックへのハンドルが返されます。数値的等価性のテストに SIL ブロックを使用できます。

blockHandle = slbuild(subsystem,Name,Value) は、1 つ以上の名前と値の引数で指定されたとおりに、サブシステム コードを生成し、Simulink Coder バイナリ実行可能ファイルをビルドします。

すべて折りたたむ

モデル rtwdemo_rtwintro 用の C コードを生成します。

slbuild('rtwdemo_rtwintro')
% Same operation as ...
% slbuild('rtwdemo_rtwintro','StandaloneCoderTarget') 

Generic Real-Time (GRT) ターゲットの場合、本コード生成製品は次のコード ファイルを生成し、これを rtwdemo_rtwintro_grt_rtw および slprj/grt/_sharedutils フォルダーに配置します。

モデル ファイル共有ファイルインターフェイス ファイル他のファイル

rtwdemo_rtwintro.c

rtwdemo_rtwintro.h

rtwdemo_rtwintro_private.h

rtwdemo_rtwintrotypes.h

rtwtypes.h

multiword_types.h

builtin_typeid_types.h

rtmodel.h

なし

次のモデル コンフィギュレーション パラメーター設定が満たされている場合は、本コード生成製品は追加の結果を生成します。

パラメーター設定結果
[コード生成][コード生成のみ] ペインはクリアされている実行可能ファイル rtwdemo_rtwintro.exe
[コード生成][レポート][コード生成レポートを作成] が選択されているレポートが表示され、生成されたコード ファイル、サブシステムおよびコード インターフェイス レポート、エントリポイント関数、入力端子、出力端子、インターフェイス パラメーターおよびデータ ストアなどへのリンクと情報が提供される

この例では、slbuild を使用して、2 つのモデル sldemo_mdlref_depgraphrtwdemo_counter の実行可能コードを生成します。sldemo_mdlref_depgraph はモデルを参照する最上位モデルです。この例では、参照モデルを並列にビルドする方法も示します。

ローカル フォルダーを作成します。

if exist(fullfile('.','myTempFolder'),'dir')
    rmdir('myTempFolder','s')
end
mkdir myTempFolder
cd myTempFolder

モデルを参照する sldemo_mdlref_depgraph をローカル フォルダーにコピーします。

src_dir = fullfile(matlabroot, ...
                   'toolbox', ...
                   'simulink', ...
                   'simdemos', ...
                   'simfeatures', ...
                   'modelreference');
copyfile(fullfile(src_dir, ...
                  'sldemo_mdlref_depgraph.slx'), ...
                  '.');

sldemo_mdlref_depgraph で参照されるモデルの並列ビルドを有効にします。

load_system('sldemo_mdlref_depgraph')
set_param('sldemo_mdlref_depgraph', ...
'EnableParallelModelReferenceBuilds', 'on');

参照モデルの並列ビルドに対する MATLAB® ワーカーを初期化します。

set_param('sldemo_mdlref_depgraph', ...
          'ParallelModelReferenceMATLABWorkerInit', ...
          'Copy Base Workspace');

モデルをビルドします。

slbuild({'sldemo_mdlref_depgraph', 'rtwdemo_counter'})

myTempFolder で、ビルド プロセスはスタンドアロン実行可能ファイル sldemo_mdlref_depgraph.exe および rtwdemo_counter.exe を作成します。

ビルド プロセスは、各モデルのビルド概要をコマンド ウィンドウに表示します。

モデルのチェックサムおよびパラメーターの設定に関係なく、モデル rtwdemo_mdlrefbot を参照している rtwdemo_mdlreftop 用に、コードを生成して実行可能ファイルをビルドします。

slbuild('rtwdemo_mdlreftop','StandaloneCoderTarget', ...
    'ForceTopModelBuild',true)

モデル rtwdemo_rtwintro でサブシステム Amplifier の C コードを生成します。

rtwdemo_rtwintro
slbuild('rtwdemo_rtwintro/Amplifier')

コード ジェネレーターでは Amplifier_grt_rtw フォルダーと slprj/grt/_sharedutils フォルダーにコード ファイルが作成されます。

現在の作業フォルダーで、ビルド プロセス中に実行可能ファイル (Amplifier.exe) が生成されます。

外部アプリケーション コードに関数呼び出しをエクスポートするには、Function-Call Subsystem から実行可能ファイルを作成します。

rtwdemo_exporting_functions
set_param('rtwdemo_exporting_functions','GenCodeOnly','off');
slbuild('rtwdemo_exporting_functions/rtwdemo_subsystem','Mode','ExportFunctionCalls')

作業フォルダーに実行可能ファイル rtwdemo_subsystem.exe が表示されます。

Function-Call Subsystem から、モデルから生成されたコードをテストするために使用できる SIL ブロックを作成します。

モデル rtwdemo_exporting_functions でサブシステム rtwdemo_subsystem を開き、[ブロックの作成] コンフィギュレーション パラメーターを [SIL] に設定します。

SIL ブロックを作成します。

mysilblockhandle = slbuild('rtwdemo_exporting_functions/rtwdemo_subsystem',...
'Mode','ExportFunctionCalls')

コード ジェネレーターでは、生成されたサブシステム コードの SIL ブロックが作成されます。ブロックを環境、またはテスト ベクトルやスティミュラスの入力を提供するためのテスト ハーネス モデルに追加できます。SIL テストを実行するシミュレーションを実行して、SIL ブロックに生成されたコードが元のサブシステムと同じ結果になることを確認できます。

入力引数

すべて折りたたむ

モデル名をハンドルまたは文字ベクトルとして指定すると、ビルド プロセスはスタンドアロン実行可能ファイルまたはモデル参照ターゲットを作成します。

ハンドルまたは文字ベクトルの cell 配列を使用して複数モデルを指定する場合、ビルド プロセスは buildSpec を cell 配列内の各モデルに適用します。

例: gcs

コードの生成元、または実行可能ファイルのビルド元となるサブシステムの名前。サブシステム名または完全なブロック パスを表すハンドルまたは文字ベクトルとして指定します。

ハンドルまたは文字ベクトルの cell 配列を使用して複数のサブシステムを指定できます。

例: 'rtwdemo_exporting_functions/rtwdemo_subsystem'

buildSpec は、モデルとビルド プロセス用に選択したビルド アクションを実行するようにコード ジェネレーターに指示します。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスの [モデル参照] ペインの [リビルド] パラメーターの設定に従います。

  • Simulink Coder ライセンスはモデル参照 Simulink Coder ターゲットをビルドする場合にのみ必要になり、モデル参照シミュレーション ターゲットのみをビルドする場合は不要です。

buildSpec 引数は、次のいずれかでなければなりません。

buildSpecビルド アクション

'StandaloneCoderTarget'

現在のモデル コンフィギュレーション設定を使用して、指定されたモデルのスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。参照モデルのモデル参照 Coder ターゲットもビルドされます。

指定されたモデルが読み込まれない場合、ビルド プロセスを開始する前に slbuild はモデルを読み込みます。

'ModelReferenceSimTarget'

モデル参照シミュレーション ターゲットをビルドする (Simulink Coder ライセンスは不要)。

'ModelReferenceCoderTarget'

モデル参照 Simulink Coder ターゲットおよび対応するモデル参照シミュレーション ターゲットをビルドする。

'ModelReferenceCoderTargetOnly'

モデル参照 Simulink Coder ターゲットのみをビルドする。

'CleanTopModel'

次回のビルドで最上位モデルのコードの再生成をトリガーするのに十分なモデル ビルド領域をクリーンアップする。

例: 'ModelReferenceSimTarget'

名前と値のペアの引数

オプションのコンマ区切りされた Name,Value の引数ペアを指定します。ここで、Name は引数名、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'UpdateThisModelReferenceTarget','Force'

モデル参照ビルドの条件付きリビルド オプション。'UpdateThisModelReferenceTarget' および 'Force''IfOutOfDateOrStructuralChange'、または 'IfOutOfDate' で構成されるコンマ区切りのペアとして指定します。

このオプションは指定されたモデルにのみ適用され、指定されたモデルで参照されるモデルには適用されません。

'UpdateThisModelReferenceTarget' 値同等の [リビルド] オプションリビルド アクション

'Force'

常に行う

モデルを無条件でリビルドします。

'IfOutOfDateOrStructuralChange'

任意の変更を検出

ビルド プロセスによって変更が検出された場合にモデルをリビルドします。

'IfOutOfDate'

既知の依存関係で任意の変更が検出された場合

ビルド プロセスによってこのモデルの既知の依存関係で変更が検出された場合にモデルをリビルドします。

さまざまなリビルド オプションの詳細については、リビルドを参照してください。

例: 'UpdateThisModelReferenceTarget','Force'

依存関係

このオプションを使用するには、buildSpec'ModelReferenceSimTarget''ModelReferenceCoderTarget'、または 'ModelReferenceCoderTargetOnly' に設定します。

データ型: char | string

モデルの階層構造の最上位モデルを強制的にビルドするオプション。'ForceTopModelBuild' および true または false で構成されるコンマ区切りのペアとして指定します。

値を true に設定すると、モデルのチェックサムとパラメーター設定に関係なく、コードを生成し、モデルの階層構造の最上位モデルに対する実行可能ファイルをビルドするようにコード ジェネレーターに指示されます。

例: 'ForceTopModelBuild',true

依存関係

このオプションを使用するには、buildSpec'StandaloneCoderTarget' に設定します。

データ型: logical

値を指定しない場合、[コード生成] ペインの [コード生成のみ] (GenCodeOnly) オプションでビルド プロセスの動作が制御されます。

値を指定した場合、この引数が [コード生成] ペインの [コード生成のみ] (GenCodeOnly) オプションよりも優先されます。

  • true –– コードのみ生成します。

  • false –– コードを生成して実行可能ファイルをビルドします。

  • 'ExportFunctionCalls' –– Embedded Coder がある場合は、外部アプリケーションにエクスポートできる関数呼び出しを含む subsystem からコードを生成します。

  • 'Normal' –– 関数呼び出しをエクスポートしません。

指定されたサブシステムに対してエクスポートされた関数の名前を付けます。

例: slbuild(subsystem,'Mode','ExportFunctionCalls','ExportFunctionFileName', fcnname)

ビルド情報を表示するオプション。'OpenBuildStatusAutomatically' および true または false で構成されるコンマ区切りのペアとして指定します。

ビルド情報を [ビルド ステータス] ウィンドウに表示するには、true を指定します。既定の設定は false です。ステータス ウィンドウの使用法の詳細については、参照モデルの並列ビルドのモニター (Simulink Coder)を参照してください。

[ビルド ステータス] ウィンドウは参照モデルの階層構造の並列ビルドをサポートします。シリアル ビルドに [ビルド ステータス] ウィンドウを使用しないでください。

依存関係

このオプションを使用するには、buildSpec'StandaloneCoderTarget' に設定します。

データ型: logical

難読化された C コードを生成するかどうかを指定します。

  • true ––知的所有権が侵害される可能性が低くなる、サードパーティと共有可能な難読化された C コードを生成します。

  • false –– 生成される C コードは難読化されません。

モデル参照シミュレーション ターゲットをビルドするオプション。'IncludeModelReferenceSimulationTargets' および true または false で構成されるコンマ区切りのペアとして指定します。

依存関係

このオプションを使用するには、buildSpec'StandaloneCoderTarget' に設定します。

データ型: logical

出力引数

すべて折りたたむ

自動生成された S-Function ラッパー ブロックへのブロック ハンドル。

互換性についての考慮事項

すべて展開する

R2020b での動作変更

R2019a 以降は非推奨

拡張機能

R2006a より前に導入