メインコンテンツ

エクスターナル モード機能の有効化

エクスターナル モードは、パラメーターの調整と信号の監視を有効にしてアルゴリズム コードを検証するために使用されます。このセクションでは、エクスターナル モード機能をターゲットに追加します。

ハードウェアが次の条件に該当する場合は、後述の手順に従ってください。

  • Linux® または VxWorks® オペレーティング システムを実行している

  • TCP/IP ソフトウェア スタックが含まれている

  • イーサネット インターフェイスを介してホスト コンピューターに接続されている

カスタム エクスターナル モードの作成の詳細については、XCP 通信を使用したエクスターナル モード シミュレーションを参照してください。

  1. このエクスターナル モード構成に使用する名前 (例: 'My New External Mode') を指定して addNewExternalMode を呼び出すことで、ExternalMode オブジェクト ext を作成して Target オブジェクト tgt に追加します。

    ext = addNewExternalMode(tgt,'My New External mode');

    ターゲットを保存する前に、MATLAB® ワークスペースから ExternalMode オブジェクトを削除しないでください。

  2. 'My New External Mode' という名前のエクスターナル モード構成がターゲットに追加されていることを確認します。

    show(tgt);
                                   My ARM Cortex A Board
    Display Name                   My ARM Cortex A Board
    My New Deployer                         1
    My New PIL                     My Ethernet Interface
    Linux                                   1
    My New External Mode                    0
    

    エクスターナル モード構成 'My New External Mode' がターゲットに追加されています。ただし、0 は、そのエクスターナル モード構成がハードウェア 'My ARM Cortex A Board' に使用されていないことを示しています。

  3. ExternalMode オブジェクトを Hardware オブジェクト hw および 'My Ethernet Interface' という名前のその I/O インターフェイスにマッピングします。

    map(tgt,hw,ext,'My Ethernet Interface');
  4. そのエクスターナル モード構成が、ハードウェアおよびその I/O インターフェイスに使用されていることを確認します。

    show(tgt);
                                     My ARM Cortex A Board
    Display Name                     My ARM Cortex A Board
    My New Deployer                           1
    My New PIL                       My Ethernet Interface
    Linux                                     1
    My New External Mode             My Ethernet Interface
    

    エクスターナル モード構成 'My New External Mode' がハードウェア 'My ARM Cortex A Board' に使用されています。これは、その I/O インターフェイス 'My Ethernet Interface' がそのハードウェアの対応する位置に表示されていることで示されています。

  5. ExternalMode オブジェクトのプロパティを表示します。

    ext
             ext =
    
            ExternalMode with properties:
    
                    Name: 'My New External Mode'
             SourceFiles: {}
           PreConnectFcn: ''
                SetupFcn: ''
                CloseFcn: ''
    
  6. ご使用のハードウェアに合わせて、必要に応じてプロパティ値を設定します。詳細については、matlabshared.targetsdk.ExternalMode を参照してください。

  7. ExternalMode オブジェクトの SourceFiles プロパティを設定して、エクスターナル モード機能を使用するモデルをビルドするときに使用するソース ファイルを指定します。たとえば、イーサネット I/O インターフェイスを使用したエクスターナル モードのソース ファイルを設定するには、次のように入力します。

    ext.SourceFiles = {'$(TARGET_ROOT)/src/rtiostream_serial.c', ...
    	'$(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/ext_serial_pkt.c', ...  
    	'$(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/rtiostream_serial_interface.c', ... 
    	'$(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/ext_svr_serial_transport.c'}

    メモ

    $(MATLAB_ROOT) は、MATLAB のルート フォルダーを表すトークンです。このトークンは、コード生成ソフトウェアによって解決されます。

  8. Simulink® と生成されたコードの間でエクスターナル モード接続が確立される前に、MATLAB で関数を実行するように指定します。ExternalMode オブジェクトの PreConnectFcn プロパティを 'pause(5);' などに設定します。

    ext.PreConnectFcn = 'pause(5);'
  9. ターゲットを説明する情報をそのフレームワークに保存します。

    saveTarget(tgt);
  10. エクスターナル モードが正しく機能することをテストします。

    testTarget(tgt,'externalmode');

    テストが完了すると、結果の概要が表示されます。テストが PASSED の場合、次の機能の追加に進むことができます。それ以外の場合、テストが FAILED または INCOMPLETE であれば、テストの概要の下にテスト診断ログへのリンクが表示されます。

エクスターナル モードがハードウェアに登録されていることの確認

  1. test いう名前の空の Simulink モデルを作成します。

  2. [アプリ] タブで [ハードウェア ボードで実行] をクリックします。[ハードウェア ボードで実行] ダイアログ ボックスで、[ハードウェア ボード] を登録したハードウェア (たとえば、'My ARM Cortex A Board') に設定します。

  3. [ハードウェア] タブの [ハードウェア設定] をクリックします。

  4. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー] を選択します。

  5. [タイプ] リストで [固定ステップ] を選択します。[ソルバー] リストで [自動] を選択します。

  6. [Target Hardware Resources] セクションで、[External mode] グループを選択します。エクスターナル モードのプロパティがハードウェアに対して正しく表示されていることを確認します。

    The External mode options for your Target Hardware Resources include detailed hardware properties.

エクスターナル モードの動作の確認

  1. test いう名前の空の Simulink モデルを作成します。

  2. [アプリ] タブで [ハードウェア ボードで実行] をクリックします。[ハードウェア ボードで実行] ダイアログ ボックスで、[ハードウェア ボード] を登録したハードウェア (たとえば、'My ARM Cortex A Board') に設定します。

  3. [ハードウェア] タブの [ハードウェア設定] をクリックします。

  4. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー] を選択します。

  5. [タイプ] リストで [固定ステップ] を選択します。[ソルバー] リストで [自動] を選択します。

  6. [Sources] ライブラリの Constant ブロックをモデルに追加します。

  7. [Math Operations] ライブラリの Gain ブロックをモデルに追加します。Constant ブロックと Gain ブロックを接続します。

  8. [Sinks] ライブラリの Scope ブロックをモデルに追加します。Scope ブロックと Gain ブロックを接続します。

  9. Scope ブロックを開きます。

  10. [ハードウェア] タブで [監視と調整] をクリックして、エクスターナル モードでシミュレーションを実行します。Scope ブロックの出力が 1 であることを確認します。