メインコンテンツ

サードパーティからの保護モデルの参照

知的財産を開示することなくモデルを配布するよう、サードパーティは配布前にモデルを保護することができます。保護モデルは、編集をサポートしない参照モデルです。保護モデルの作成者は、読み取り専用表示、シミュレーション、コード生成、パスワード保護を有効にするかどうかを選択します。操作がパスワード保護されているときは、AES-256 暗号化テクノロジーがサポートしているファイルの内容を保護します。

メモ

保護モデルを作成するには、Simulink® Coder™ ライセンスが必要です。

保護モデルの識別

保護モデルを識別するには、以下を特定します。

  • バッジ アイコン .slxp 拡張子が付いた、MATLAB® の [ファイル] パネル内のファイル。保護モデルは、モデル エクスプローラーのモデルの階層構造には表示されません。

  • 左下隅のバッチ アイコンの付いた、Simulink エディター内の Model ブロック:

    A Model block that references a protected model displays the badge icon in addition to the protected model name, input port names, and output port names.

Model ブロックでファイル拡張子なしでモデル名が指定されていて、その名前をもつ保護モデル (.slxp) と元のモデル (.slx) の両方が同じフォルダー内にある場合、Model ブロックは元のモデルではなく保護モデルを参照します。

保護モデルでサポートされる機能の識別

利用可能な場合、保護モデル レポートにはサポートされる機能が記載されます。レポートを開くには、以下のいずれかのオプションを使用します。

  • MATLAB の [ファイル] パネルで、保護モデルを右クリックして [レポートを開く] をクリックする。

  • Simulink エディターで、Model ブロック上にある保護モデルのバッジ アイコンを右クリックして [レポートの表示] をクリックする。

あるいは、slxpinfo 関数を使用します。この関数は、レポートを使用できない場合でも保護モデルに関する概要情報を提供します。

保護モデルのサポート ファイルの読み込み

保護モデルは単独で受け取る場合も、プロジェクト アーカイブまたはパッケージの一部として受け取る場合もあります。

プロジェクト アーカイブ (.mlproj) を受け取る場合は、[ファイル] パネルでプロジェクト アーカイブをダブルクリックし、抽出先フォルダーを指定します。または、プロジェクト アーカイブを右クリックして [ここに抽出] をクリックします。プロジェクトが開き、抽出されたファイルが、プロジェクト アーカイブに従って名前が付けられた新しいフォルダーに入ります。必要に応じて、別のプロジェクトから保護モデル プロジェクトを参照します。詳細については、大規模なプロジェクトのコンポーネント化を参照してください。

保護モデルまたはサポート ファイルを別の方法で受け取る場合は、提示された指示に従ってください。たとえば、ワークスペース定義を含む MAT ファイルを読み込まなければならない場合があります。LoadFcn などのコールバック関数を構成して MAT ファイルを自動的に読み込むことができます。コールバックを使用したモデル動作のカスタマイズを参照してください。

保護モデルのデジタル署名の検証

作成者が保護モデルに署名した場合、デジタル署名を検証します。[ファイル] パネルで、保護モデルをダブルクリックします。[詳細] ペインの [署名者] フィールドは、モデルに署名したパブリッシャーと、シグネチャが信頼済み認証機関によって検証されたかどうかを示します。検証は、次のような場合に失敗します。

  • 署名後に保護モデルが変更された。

  • 保護モデルに署名が行われていない。

  • 保護モデルが期限切れの証明書で署名されている。

  • 作成者により発行された証明書で保護モデルが自己署名されている。

  • 保護モデルが不明または無効な証明書で署名されている。

  • CA の証明書がシステムにないまたは無効である。

既定で保護モデルのシグネチャを検証するには、[Simulink 設定] ダイアログ ボックスで [開く前に保護モデルのデジタル署名を検証] を選択します。

保護モデルの内容の表示

読み取り専用表示で、システムの内容、ブロック パラメーター、および信号のプロパティを表示できます。

読み取り専用表示を開くには、保護モデルを参照している Model ブロックまたは [ファイル] パネルの .slxp ファイルをダブルクリックします。読み取り専用表示がパスワードで保護されている場合は、保護モデル バッジ アイコンを右クリックして、[承認] を選択します。[モデル表示] ボックスで、パスワードを入力し、[OK] をクリックします。

モデルの階層構造を移動するには、Model ブロックまたは Subsystem ブロックをダブルクリックします。あるいは、[すべて表示] タブに移動して、表示するシステムを選択します。保護モデルに含まれる保護された参照モデルの内容を表示することはできません。

ブロック パラメーターおよび信号プロパティを表示するには、ブロックまたは信号線をそれぞれ選択します。

読み取り専用表示内で検索するには、検索ボタンをクリックします。表示されたボックスに、検索する名前または値を入力します。検索で返されるモデルの要素は強調表示されます。検索結果には、返された各要素の名前と親が含まれます。

分離された環境での保護モデルのテスト

保護モデルを使用する場合、通常は接尾辞 _harness が付いているハーネス モデルを受け取る可能性があります。ハーネス モデルは、保護モデルをテストするための分離された環境を提供します。サポート ファイルが不足している場合、ハーネス モデルのコードをシミュレーションまたは生成することでそれらを特定できます。

ハーネス モデルを作成するには、[ファイル] パネルで保護モデル ファイルを右クリックし、[ハーネス モデルの作成] をクリックします。作成されたハーネス モデルは保護モデルのシミュレーション用に設定されています。

保護モデルの参照

保護モデルを参照するには、以下を行います。

  1. 保護モデルが MATLAB パス上にあることを確認します。

  2. ハーネス モデルがある場合は、ハーネス モデルの Model ブロックを自分のモデルにコピーします。それ以外の場合、保護モデルを新しい Model ブロックで参照します。[モデル名] ブロック パラメーターを保護モデルの名前に設定します。

    Model ブロックが保護モデルを参照している場合、ブロックの [シミュレーション モード][アクセラレータ] になります。このモードを変更することはできません。

  3. 保護モデルがパスワードで保護されている場合、Model ブロック上にある保護モデルのバッジ アイコンを右クリックして、[承認] をクリックします。[モデル表示] ボックスで、パスワードを入力し、[OK] をクリックします。

  4. 入出力端子の要件が一致する Model ブロックに信号線を接続します。詳細については、モデル参照インターフェイスの定義を参照してください。

    保護モデルではインラインでない S-Function を直接的にも間接的にも使用できないことに注意してください。

  5. 必要なモデル引数の値を指定します。詳細については、モデル引数を使用するように参照モデルを構成するを参照してください。

保護モデルの使用

保護モデルを参照するモデルのシミュレーションまたはコード生成を行うには、保護モデルの作成に使用したものと同じプラットフォームとコンパイラを使用します。

  • プラットフォーム — 保護モデル レポートで、または slxpinfo 関数を使用して、保護モデルの作成に使用されたプラットフォームを確認します。たとえば、win64 は、プラットフォームが 64 ビット バージョンの Windows® でなければならないことを示します。

  • コンパイラ — 保護モデル レポートで、[保護モデル コンフィギュレーション パラメーター設定] をクリックします。次に、[コード生成] ペインで、[ツールチェーン] コンフィギュレーション パラメーター設定を確認します。[ツールチェーン][Automatically locate an installed toolchain] に設定されている場合、コード ジェネレーターには選択されているツールチェーンまたはコンパイラの名前が表示されます。たとえば、MinGW64 は、コンパイラが MinGW®-w64 コンパイラでなければならないことを示します。詳細については、ツールチェーン (Simulink Coder)を参照してください。

既定のコンパイラを表示または変更するには、MATLAB コマンド ウィンドウで「mex -setup」と入力します。詳細については、mex を参照してください。

保護モデルを参照するモデルのシミュレーションまたはコード生成を行うと、保護モデルはコンパイル済みの MEX バイナリとして保存されます。

以前のリリースで保護モデルの使用

場合によっては、現在のリリースよりも古い Simulink リリースからの保護モデルを使用できることがあります。保護モデルの作成に使用されたリリース バージョンを確認するには、保護モデル レポートを開くか、slxpinfo 関数を使用します。

現在のリリースより新しいリリースで作成された保護モデルは使用できません。たとえば、R2024b では、R2025a で作成された保護モデルは使用できません。

保護モデルが現在のリリースよりも古いリリースで作成されている場合は、現在のリリースでその保護モデルがサポートされているかどうかを確認します。

モデル化要件保護モデルの下位互換性
読み取り専用表示

R2019a 以降のリリースにおいて制限付きでサポート

  • 保護モデルは R2018b 以降のリリースで作成されていなければならない。

  • 保護モデルは現在のリリースの 10 リリース以内で作成されていなければならない。

ノーマル モードでのシミュレーション

R2019a 以降のリリースにおいて制限付きでサポート

  • 保護モデルは R2018b 以降のリリースで作成されていなければならない。

  • 保護モデルは現在のリリースの 10 リリース以内で作成されていなければならない。

アクセラレータ モードでのシミュレーション

R2020a 以降のリリースにおいて制限付きでサポート

  • 保護モデルは R2018b 以降のリリースで作成されていなければならない。

  • 保護モデルの親を直接シミュレーションしなければならない。親モデルが参照モデルとして含まれるモデルの階層構造のシミュレーションはサポートされません。親モデルの対話型シミュレーションを行うには、その独自のウィンドウで最上位モデルとして開かなければなりません。詳細については、Navigate Model Hierarchyを参照してください。

  • 保護モデルは Just-In-Time アクセラレーションを使用しなければならず、C コード生成を要求してはならない。アクセラレーション モードの詳細については、アクセラレータ モードの動作を参照してください。

  • 保護モデルは現在のリリースの 10 リリース以内で作成されていなければならない。

SIL モードまたは PIL モードのシミュレーション

R2020b 以降のリリースにおいて制限付きでサポート

  • 保護モデルには、R2018b 以降のリリースで生成された ERT、ERT ベース、AUTOSAR、GRT、または GRT ベースの各コードが含まれる。保護モデルを参照する Model ブロック SIL および PIL シミュレーションを実行できます。詳細については、Use Protected Models from Previous Releases to Perform SIL Testing and Generate Code (Embedded Coder)を参照してください。

    保護モデルの ERT または AUTOSAR コードに共有ユーティリティ コードが必要な場合、sharedCodeUpdate (Embedded Coder) を使用して必要なコードを既存の共有ユーティリティ コード フォルダーにコピーする。詳細については、リリース間での共有ユーティリティ コードの再利用 (Embedded Coder)を参照してください。

  • Simulink.ModelReference.ProtectedModel.addTarget または Simulink.ModelReference.ProtectedModel.removeTarget を使用して、異なるリリースで作成された保護モデルに対して生成コードの追加または削除を行うことはできない。

  • 保護モデルは現在のリリースの 10 リリース以内で作成されていなければならない。

ラピッド アクセラレータ モードのシミュレーションサポートなし
コード生成

R2020b 以降のリリースにおいて制限付きでサポート

  • 保護モデルには、[モデル参照] コード インターフェイスを使用して R2018b 以降のリリースで生成された ERT、ERT ベース、AUTOSAR、GRT、または GRT ベースの各コードが含まれる。詳細については、Use Protected Models from Previous Releases to Perform SIL Testing and Generate Code (Embedded Coder)を参照してください。

    保護モデルの ERT または AUTOSAR コードに共有ユーティリティ コードが必要な場合、sharedCodeUpdate (Embedded Coder) を使用して必要なコードを既存の共有ユーティリティ コード フォルダーにコピーする。詳細については、リリース間での共有ユーティリティ コードの再利用 (Embedded Coder)を参照してください。

  • Simulink.ModelReference.ProtectedModel.addTarget または Simulink.ModelReference.ProtectedModel.removeTarget を使用して、異なるリリースで作成された保護モデルに対して生成コードの追加または削除を行うことはできない。

  • 保護モデルは現在のリリースの 10 リリース以内で作成されていなければならない。

新しいリリースにおいて保護モデルでモデル化要件がサポートされなくなった場合は、保護モデルの作成に使用されたのと同じ Simulink リリースを使用してください。

参考

|

トピック