Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Simulink.ProtectedModel.Callback

保護モデル イベントに応答して実行されるコールバック コード

説明

特定の保護モデルの機能について、Simulink.ProtectedModel.Callback オブジェクトは、イベントに応答して実行されるコードを指定します。コールバック コードは、MATLAB® コマンドまたは MATLAB スクリプトの文字ベクトルになります。

保護モデルを作成する場合、コールバックを指定するために、'Callbacks' オプションを指定して関数 Simulink.ModelReference.protect を呼び出します。このオプションの値は、Simulink.ProtectedModel.Callback オブジェクトの cell 配列です。

作成

説明

Simulink.ProtectedModel.Callback(Event,AppliesTo,CallbackText) は、特定の保護モデル機能とイベントのコールバック オブジェクトを作成します。CallbackText は、コールバックに対して実行する MATLAB コマンドを指定します。

Simulink.ProtectedModel.Callback(Event,AppliesTo,callbackFile) は、特定の保護モデル機能とイベントのコールバック オブジェクトを作成します。CallbackFileName は、コールバックに対して実行する MATLAB スクリプトを指定します。スクリプトは、MATLAB パス上になければなりません。

プロパティ

すべて展開する

イベントが適用される保護モデル機能。次のいずれかの値として指定します。

  • 'CODEGEN':コード生成。

  • 'SIM':シミュレーション。

  • 'VIEW':読み取り専用 Web ビュー。

  • 'AUTO':イベントが 'PreAccess' の場合、機能ごとにコールバックが実行されます。イベントが 'Build' の場合、'CODEGEN' 機能にのみコールバックが実行されます。

例: 'SIM'

イベントに応答して実行する MATLAB スクリプト。文字ベクトルまたは string スカラーとして指定します。スクリプトは、MATLAB パス上になければなりません。

例: 'pmCallback.m'

イベントに応答して実行する MATLAB コマンド。文字ベクトルまたは string スカラーとして指定します。

例: 'A = [15 150];disp(A)'

コールバックをトリガーするイベント。次のいずれかのオプションとして指定します。

  • 'PreAccess':コールバック コードはシミュレーション、ビルドまたは読み取り専用表示の前に実行されます。

  • 'Build':コールバック コードはビルド前に実行されます。'CODEGEN' 機能にのみ有効。

例: 'PreAccess'

保護モデルのビルド プロセスをオーバーライドするオプション。論理値として指定します。オーバーライド オプションは、'CODEGEN' 機能の 'Build' イベントに対して定義したコールバック オブジェクトにのみ適用されます。このオプションは、setOverrideBuild メソッドを使用して設定します。

オブジェクト関数

setOverrideBuild保護モデルのビルドをオーバーライドする

すべて折りたたむ

  1. コールバック オブジェクトを作成します。

    pmCallback = Simulink.ProtectedModel.Callback('PreAccess',...
    'SIM','disp(''Hello world!'')')
    
  2. モデル sldemo_mdlref_counter を保護して、コールバック オブジェクトを指定します。

    Simulink.ModelReference.protect('sldemo_mdlref_counter',...
    'Callbacks',{pmCallback})
    
  3. モデル sldemo_mdlref_basic のシミュレーションを実行します。これは作成した保護モデルを参照しています。

    sim('sldemo_mdlref_basic')

    最上位モデルの保護モデル参照のインスタンスごとに、出力が表示されます。

    Hello world!
    Hello world!
    Hello world!
  1. MATLAB パス上に、次のコードを含むコールバック スクリプト pm_callback.m を作成します。

    disp('Hello world!')
  2. コールバック コードにスクリプトを使用するコールバック オブジェクトを作成します。モデル sldemo_mdlref_counter を保護して、コールバック オブジェクトを指定します。

    pmCallback = Simulink.ProtectedModel.Callback('Build',...
    'CODEGEN','pm_callback.m')
    Simulink.ModelReference.protect('sldemo_mdlref_counter',...
    'Mode', 'CodeGeneration','Callbacks',{pmCallback})

    コールバック スクリプトは、モデル保護プロセスのコード生成の段階で実行されます。

  3. モデル sldemo_mdlref_basic のコードを生成します。これは作成した保護モデルを参照しています。

    slbuild('sldemo_mdlref_basic')

    参照された保護モデルのコード生成の段階で、pm_callback.m のコードが実行されます。

バージョン履歴

R2016a で導入