Main Content

信号エディターにインポートするカスタム ファイル タイプの作成

既定では、Simulink® は、入力データの形式にリストされている形式の信号をサポートします。サポートされている形式ではない信号を含むファイル タイプをインポートするには、独自のカスタム ファイル タイプ リーダーを作成して登録します。Simulink は、Simulink.io.FileType で書き込まれたカスタム ファイル タイプ リーダーをサポートします。

Simulink は次のファイル タイプを提供します。

  • Simulink.io.SignalBuilderSpreadsheet — Signal Builder ファイル タイプ

  • Simulink.io.BaseWorkspace — ベース ワークスペース ファイル タイプ

  • Simulink.io.MatFile — MAT ファイルのファイル タイプ

  • Simulink.io.ModelWorkspace — モデル ワークスペース ファイル タイプ

  • Simulink.io.SLDVMatFileSimulink Design Verifier™ sldvData 構造体を含む MAT ファイル

  • サンプル ファイル タイプ

    • Simulink.io.MySignalMatFile

    • Simulink.io.CreateSignals

  • Simulink Test™sltest.io.SimulinkTestSpreadsheet (Simulink Test) ファイル タイプを提供します。

ファイル リーダーを作成するには、オブジェクト指向プログラミングに関する知識が必要です。これは上級ユーザーを対象とします。

  1. パッケージ フォルダーを含めるには、フォルダーを作成し、そのフォルダー パスを MATLAB® パスに追加します。

  2. そのフォルダーには、mySignals.mat などの信号を含むカスタム ファイルを追加します。

    そのフォルダー内に +Simulink フォルダーを作成し、そのフォルダー内に +io フォルダーを作成します。

  3. Simulink.io.FileType クラスから継承するクラスを作成します。

    classdef MyFileType < Simulink.io.FileType
  4. このクラスを yourfolder/+Simulink/+io に保存します。

  5. 信号エディターに登録して操作するには、次の静的メソッドを実装します。

  6. 次のパブリック メソッドを実装します。

    • validateFileNameImpl

    • whosImpl

      実行時に、Simulink.io.FileType オブジェクトを実行する際に whos を介して whosImpl を呼び出します。whos の構文は whosImpl と同じです。

  7. クラスが登録されているかどうかを確認します。[信号エディター] タブで [インポート] をクリックし、[インポート] ダイアログ ボックス ウィンドウで [参照] をクリックします。

    custompath/mySignals.mat などの信号を含むカスタム ファイルがファイル ブラウザーに表示されます。

  8. カスタム信号が含まれているカスタム ファイルを選択します。

  9. クラス ファイルに戻り、次の追加のパブリック メソッドを実装します。

    • loadAVariableImpl

    • loadImpl

      実行時に、Simulink.io.FileType オブジェクトを実行する際に load を介して loadImpl を呼び出します。load の構文は loadImpl と同じです。

  10. カスタム信号をインポートするには、import メソッドを使用します。

    dataOnFile = import(reader)。ここで reader は、リーダーのファイル タイプ オブジェクトです。Simulink.io.FileType オブジェクトとして指定します。出力 dataOnFile は、信号の cell 配列であるフィールド structure.Data と対応する信号名の cell 配列である structure.Name をもつ構造体です。たとえば、dataOnFile.Data は信号の cell 配列であり、dataOnFile.Name には対応する信号名が含まれます。

  11. 信号エディターに戻り、[インポート] をクリックし、再度インポートを試みます。

カスタム信号を正常にインポートすると、それらを信号エディターで操作できます。完了し、exportImpl メソッドを実装すると、実行時にリーダーの export メソッドを呼び出して結果をインポートできます。または、カスタム登録されたファイル タイプへの信号のエクスポートからエクスポート ダイアログを使用できます。

実装例については、以下を参照してください。

Simulink で使用するための新しい FileType オブジェクトの定義

FileType オブジェクトは、Simulink で現在サポートされていない形式の信号のリーダーを作成するために使用できるコンポーネントです。MATLAB でリーダーを書き込み、[信号エディター] タブで [インポート] をクリックして、リーダーを登録し、カスタム形式ファイルをインポートします。

メモ

インポートする前に、カスタム ファイル タイプのクラス ファイルのすべてのエディターが閉じていることを確認します。カスタム ファイル タイプのクラス ファイルをリーダーとしてインポートしている時に編集すると、予期しない動作が発生します。

FileType オブジェクトの定義

  1. Simulink で使用するための FileType® オブジェクトを作成します。この例では、カスタム形式をもつ信号のリーダーが作成されます。

  2. テキスト形式のクラス定義ファイルを作成して FileType オブジェクトを定義します。

  3. クラス定義ファイルの最初の行で、FileType の名前を指定し、Simulink.io.FileType のサブクラス化を行います。Simulink.io.FileType 基底クラスにより、すべての、基本的な FileType オブジェクト メソッドを使用できます。

  4. クラスについて、以下を行います。

    1. 基本的な FileType オブジェクト メソッドを適宜追加して、信号エディターに登録して操作します。

    2. 信号形式を検証します。

    3. 信号ファイルの内容を決定します。

    4. 信号ファイルから変数を読み込みます。

    5. 信号をインポートします。

    これらの各メソッドの実装については、各メソッドのリファレンス ページと以下の完全なクラス定義ファイルを参照してください。カスタム信号リーダーの完全なクラス定義を確認するには、以下を実行します。open('Simulink.io.MySignalMatFile')

参考

| | | | | | | (Simulink Test) | | | | | |

関連するトピック