Main Content

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

ARXML からの AUTOSAR コンポジションのインポート

AUTOSAR アーキテクチャ モデルを作成したら、最上位 AUTOSAR ソフトウェア設計を作成します。コンポジション エディターには、AUTOSAR 仮想機能バス (VFB) に基づいて AUTOSAR ソフトウェア アーキテクチャが表示されます。

AUTOSAR ソフトウェア コンポジションの ARXML 記述がある場合は、コンポジションを AUTOSAR アーキテクチャ モデルにインポートできます。インポートでは、アーキテクチャ モデルの最上位にコンポジションの Simulink® 表現が作成されます。

コンポジションのインポートには、機能コンテンツのない開いている AUTOSAR アーキテクチャ モデルが必要です。コンポジションをインポートするには、AUTOSAR インポーター アプリを開くか、アーキテクチャ関数 importFromARXML を呼び出します。

インポートする ARXML 記述がない場合は、コンポジション エディターを使用して、AUTOSAR ソフトウェア コンポジションおよびコンポーネントを追加し、接続します。AUTOSAR Classic コンポーネントおよびコンポジションの追加と接続またはAUTOSAR Adaptive コンポーネントおよびコンポジションの追加と接続を参照してください。

AUTOSAR インポーター アプリを使用した AUTOSAR コンポジションのインポート

このセクションの例では、Classic アーキテクチャ コンポジションのインポートについて説明します。Adaptive コンポジションをインポートする場合も同じワークフローです。

AUTOSAR ソフトウェア コンポジションを ARXML ファイルからアーキテクチャ モデルにインポートするには、以下を行います。

  1. 機能コンテンツのない AUTOSAR アーキテクチャ モデルを作成または開きます。

    archModel = autosar.arch.createModel("myArchModel");

    既定では、autosar.arch.createModelは、Classic Platform の AUTOSAR アーキテクチャ モデルを作成します。Adaptive Platform を指定するか、Classic Platform を明示的に指定するには、名前と値の引数 platform を使用します。同じアーキテクチャ モデル内で Classic コンポーネントと Adaptive コンポーネントを混在させることはサポートされていません。

    archModel = autosar.arch.createModel("myArchModel","platform","Classic");
    
  2. [モデル化] タブの [プラットフォーム] セクションで、アーキテクチャ モデルのプラットフォームの種類を確認します。

    必要に応じて、ARXML ファイルをインポートする前にプラットフォームの種類を変更します。

  3. [モデル化] タブで、[ARXML からインポート] を選択します。

  4. AUTOSAR インポーター アプリの [ARXML の選択] ペインにある [ARXML ファイル] フィールドで、AUTOSAR ソフトウェア コンポジションを記述する 1 つ以上の ARXML ファイル (コンマ区切り) の名前を入力します。

    この例では、ThrottlePositionControlComposition.arxml を使用して Classic アーキテクチャ コンポジションをインポートします。

    openExample('autosarblockset/ImportAUTOSARComponentToSimulinkExample',...
    'supportingfile','ThrottlePositionControlComposition.arxml');
    

    [次へ] をクリックします。アプリで、指定された ARXML ファイルが解析されます。

  5. [コンポジションの作成] ペインの [コンポジション名] メニューに、解析された ARXML ファイルで検出されたコンポジションがリストされます。コンポジション /Company/Components/ThrottlePositionControlComposition を選択します。

    オプションで、コンポジションの作成に関する追加のモデリング オプションを表示するには、[モデリング オプションの構成] を選択します。

    以下を指定できます。

    • インポートされた AUTOSAR データ型のデータ オブジェクトを配置する Simulink データ ディクショナリ。

    • インポートされた AUTOSAR コンポーネントにリンクする既存の Simulink 動作モデルの名前。

    Classic コンポジションをインポートする場合、追加で以下を指定できます。

    • コンポジションの動作を定義する AUTOSAR ソフトウェア コンポーネントを含めるか除外するか。既定では、インポートにコンポジション内のコンポーネントが含まれます。

    • インポートされた AUTOSAR ソフトウェア コンポーネントの Simulink 動作モデルを作成するときに適用されるコンポーネント オプション。周期的なランナブル、またはコンポーネント変動点を解決するために使用する PredefinedVariant または SwSystemconstantValueSet をモデル化する方法など。

    モデリング オプションと動作の詳細については、importFromARXML を参照してください。

  6. アーキテクチャ モデルへのコンポジションのインポートを完了するには、[終了] をクリックします。診断ビューアーに、コンポジションの作成の進捗状況が表示されます。

    完了すると、インポートされたコンポジションがソフトウェア アーキテクチャのキャンバスに表示されます。

このコンポジションのインポートが、AUTOSAR Classic ソフトウェア コンポーネントが含まれるように構成されているため (モデリング オプション [内部動作をインポートから除外] がオフ)、インポートによってコンポジション内のコンポーネントごとに Simulink モデルが作成されています。

次に、コンポジション内で各コンポーネントを開発します。各コンポーネント モデル用に AUTOSAR 構成を調整し、アルゴリズム モデル コンテンツを作成します。コンポーネント アルゴリズムの開発の例については、AUTOSAR コンポーネントと生成されたコードの設計とシミュレーションのセクション「AUTOSAR コンポーネント アルゴリズムの開発」を参照してください。

importFromARXML の呼び出しによる AUTOSAR コンポジションのインポート

このセクションの例では、Classic アーキテクチャ コンポジションのインポートについて説明します。Adaptive コンポジションをインポートする場合も同じワークフローです。

openExample コマンドを使用して、AUTOSAR Classic ARXML ファイル ThrottlePositionControlComposition.arxml にアクセスできます。

openExample('autosarblockset/ImportAUTOSARComponentToSimulinkExample',...
'supportingfile','ThrottlePositionControlComposition.arxml');

AUTOSAR ソフトウェア コンポジションを ARXML ファイルからアーキテクチャ モデルにプログラムによりインポートするには、関数 importFromARXML を呼び出します。この例では、次を行います。

  1. AUTOSAR アーキテクチャ モデル myArchModel を作成します。

  2. ソフトウェア コンポジション /Company/Components/ThrottlePositionControlComposition を AUTOSAR サンプル ファイル ThrottlePositionControlComposition.arxml からアーキテクチャ モデルにインポートします。

% Create AUTOSAR architecture model
modelName = "myArchModel";
archModel = autosar.arch.createModel(modelName); % Defaults to the Classic Platform 

% Import composition from file ThrottlePositionControlComposition.arxml
importerObj = arxml.importer("ThrottlePositionControlComposition.arxml");  % Parse ARXML
importFromARXML(archModel,importerObj,...
  "/Company/Components/ThrottlePositionControlComposition");
Creating model 'ThrottlePositionSensor' for component 1 of 5:
  /Company/Components/ThrottlePositionSensor
Creating model 'ThrottlePositionMonitor' for component 2 of 5:
  /Company/Components/ThrottlePositionMonitor
Creating model 'Controller' for component 3 of 5:
  /Company/Components/Controller
Creating model 'AccelerationPedalPositionSensor' for component 4 of 5:
  /Company/Components/AccelerationPedalPositionSensor
Creating model 'ThrottlePositionActuator' for component 5 of 5:
  /Company/Components/ThrottlePositionActuator
Importing composition 1 of 1:
  /Company/Components/ThrottlePositionControlComposition

インポート オプションと動作の詳細については、importFromARXML リファレンス ページを参照してください。

参考

関連するトピック