Main Content

AUTOSAR ランナブルの実行順序の設定

複数のランナブルを含む AUTOSAR Classic Platform ソフトウェア コンポーネントでは、AUTOSAR タイミング拡張仕様で実行順序の制約が定義されます。これらの制約は、コンポーネント内のランナブル エンティティの実行順序を指定します。制約の表示と操作はコンポーネント レベルで実行でき、AUTOSAR アーキテクチャ モデルでは仮想機能バス (VFB) レベルで実行できます。

Simulink® では、以下のことができます。

  • ARXML ファイルからコンポーネント レベルおよび VFB レベルの実行順序の制約をインポートする。

  • AUTOSAR コンポーネント モデルまたはアーキテクチャ モデルを開き、スケジュール エディターを使用してランナブルの実行順序を変更する。

  • コンポーネント レベルおよび VFB レベルの実行順序の制約を ARXML ファイルにエクスポートする。

  • コンポーネント モデルで、ARXML の変更をインポートして実行順序の制約を更新する。

AUTOSAR ソフトウェア コンポーネント モデルで、スケジュール エディターを使用して、そのコンポーネントに属するランナブルの実行順序をスケジュールして指定します。スケジュール エディターには、モデルの分割、分割間のデータ接続、およびそれらの分割の順序が表示されます。AUTOSAR コンポーネント モデルでは、分割は独立して実行されるランナブル エンティティに相当します。エディターで、次を実行できます。

  • AUTOSAR コンポーネントでの分割としてランナブルのグラフィカルな表現を表示する。

  • 分割を作成し、それらを AUTOSAR ランナブルにマッピングする。

  • ランナブルの実行順序を直接指定する。

スケジュール エディターは、レートベースおよびエクスポート関数モデリングを含む、複数のモデリング スタイルをサポートします。詳細については、スケジュール エディターの使用および分割の作成を参照してください。AUTOSAR アーキテクチャ モデリングでスケジュール エディターを使用することもできます。AUTOSAR のスケジューリングとシミュレーションの構成を参照してください。

スタンドアロンの AUTOSAR コンポーネント モデルでスケジュール エディターを開くには、[モデル化] タブを開き、[スケジュール エディター] を選択します。AUTOSAR コンポーネント モデルのランナブルでは、スケジュール エディターには最初に、コンポーネント モデリング スタイルに基づいて作成された暗黙的な分割が表示されます。暗黙的な分割を表示および設定するか、明示的な分割を作成し、それらを新規または既存の AUTOSAR ランナブルにマッピングできます。

暗黙的な分割を表示し構成するには次のようにします。

  1. AUTOSAR のモデル例 autosar_swc_expfcns を開きます。これは Simulink のエクスポートされた関数を使用して AUTOSAR ランナブルをモデル化します。

  2. [モデル化] タブを開いて [スケジュール エディター] を選択します。スケジュール エディターには周期的にエクスポートされた関数が表示され、これらは暗黙的な分割として AUTOSAR ランナブルにマッピングされます。

    エディターのコントロールを使用して分割を並べ替えます。たとえば、[順序] セクションで、方向矢印をクリックするか、テーブル エントリをドラッグします。

AUTOSAR ソフトウェア コンポーネントで明示的な分割を作成するには次のようにします。

  1. AUTOSAR モデル例 matlabroot/help/toolbox/autosar/examples/mAutosarMultitasking.slx を開きます。これは、複数のサンプル レートをもつ周期的なランナブルをモデル化します。

    最初に、スケジュール エディターのパースペクティブから、モデルに暗黙的な分割 D1、D2、D3 および D4 が含まれます。

  2. 分割を作成するには、SS1 サブシステムのブロック パラメーター ダイアログ ボックスを開きます。[Atomic サブシステムとして扱う] を選択した状態で、パラメーター [名前を付けてスケジュール][周期的分割] に設定します。P1 などの分割名とサンプル時間 1 を指定します。[適用] をクリックします。モデル ブロック線図を更新します。

  3. [モデル化] タブを開いて [スケジュール エディター] を選択します。スケジュール エディターにモデルの明示的な周期的分割が表示されます。

  4. モデル ウィンドウで、コード マッピング エディターを開き [関数] タブを選択します。分割関数 P1 を AUTOSAR ランナブルにマッピングします。

    1. 構成にマッピングする AUTOSAR ランナブルが含まれていない場合は、ランナブルを追加します。AUTOSAR ディクショナリを開き、[ランナブル] ビューで [追加] ボタン をクリックします。この例では、ランナブル [Runnable_P1] を作成します。次に、そのランナブルを選択してタイミング イベントを作成します。

    2. [関数] タブで、P1 を [Runnable_P1] にマッピングします。

実行順序の制約を含む AUTOSAR モデルを作成すると、コンポーネントのタイミング情報がエクスポートされます。AUTOSAR ディクショナリの XML オプション [エクスポートされた XML ファイルのパッケージ化][モジュラー] に設定すると、タイミング情報がファイル modelname_timing.arxml にエクスポートされます。次の ARXML コードは、スケジュール エディターの設定に基づいた、mAutosarMultitasking のランナブルに対してエクスポートされた実行順序の制約を示しています。

<SWC-TIMING UUID="...">
    <SHORT-NAME>mAutosarMultitasking</SHORT-NAME>
    <TIMING-REQUIREMENTS>
        <EXECUTION-ORDER-CONSTRAINT UUID="...">
            <SHORT-NAME>EOC</SHORT-NAME>
            <ORDERED-ELEMENTS>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_P1
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_P1</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_P1
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_Step1
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step1</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step1
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_Step2
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step2</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step2
                    </EXECUTABLE-REF>
                    <SUCCESSOR-REFS>
                        <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
                          /Timing/mAutosarMultitasking/EOC/Runnable_Step3
                        </SUCCESSOR-REF>
                    </SUCCESSOR-REFS>
                </EOC-EXECUTABLE-ENTITY-REF>
                <EOC-EXECUTABLE-ENTITY-REF UUID="...">
                    <SHORT-NAME>Runnable_Step3</SHORT-NAME>
                    <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
                      /pkg/swc/mAutosarMultitasking/IB/Runnable_Step3
                    </EXECUTABLE-REF>
                </EOC-EXECUTABLE-ENTITY-REF>
            </ORDERED-ELEMENTS>
        </EXECUTION-ORDER-CONSTRAINT>
    </TIMING-REQUIREMENTS>
    <BEHAVIOR-REF DEST="SWC-INTERNAL-BEHAVIOR">
      /pkg/swc/mAutosarMultitasking/IB
    </BEHAVIOR-REF>
</SWC-TIMING>

参考

関連する例

詳細