このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
パラメーター ソフトウェア コンポーネントと通信するための AUTOSAR ポート パラメーターの構成
AUTOSAR 規格ではパラメーター通信のポートベース パラメーターを定義しています。AUTOSAR パラメーター通信は、パラメーター ソフトウェア コンポーネント (ParameterSwComponent) およびパラメーター データへのポートベースのアクセスを要する 1 つ以上のアトミック ソフトウェア コンポーネントに依存します。ParameterSwComponent は AUTOSAR パラメーターを含むメモリを表し、接続されたアトミック ソフトウェア コンポーネントにパラメーター データを提供します。ポートベースのパラメーター ワークフローについては、ポート パラメーターを参照してください。
パラメーター通信のための AUTOSAR ソフトウェア コンポーネントの構成
Simulink® では、AUTOSAR ポートベース パラメーター通信の受信側をモデル化できます。AUTOSAR アトミック ソフトウェア コンポーネントをパラメーター受信側として設定するには、以下を行います。
AUTOSAR コンポーネント モデルで、AUTOSAR ディクショナリに AUTOSAR パラメーター インターフェイス、パラメーター データ要素、およびパラメーター受信側ポートを作成します。
Simulink モデル ワークスペースで、パラメーターを作成し、そのパラメーターを引数としてマークして、初期値を設定します。Simulink パラメーター、ルックアップ テーブル、およびブレークポイント オブジェクトを使用できます。
Simulink モデル ワークスペース パラメーターまたはルックアップ テーブルを AUTOSAR パラメーター受信ポートとパラメーター インターフェイス データ要素にマッピングします。コード マッピング エディターの [パラメーター] タブまたは関数
mapParameterを使用します。
この例では、AUTOSAR ソフトウェア コンポーネントをパラメーター通信の受信側として設定する方法を示します。
ソフトウェア コンポーネントがパラメーター データへのポートベースのアクセスを必要とする、AUTOSAR コード生成用に設定されたモデルを開きます。
AUTOSAR ディクショナリを開きます。パラメーター インターフェイスをモデルに追加するには、[パラメーター インターフェイス] ビューを選択し、[追加] ボタン
をクリックします。[インターフェイスの追加] ダイアログ ボックスで、新しいインターフェイスの名前を指定し、[データ要素数] を 1に設定します。[追加] をクリックします。
[パラメーター インターフェイス] を展開し、[DataElements] ビューを選択します。作成した関連データ要素のプロパティ (名前など) を調べて修正します。

[AtomicComponents] を展開し、コンポーネントを展開します。パラメーター受信ポートをモデルに追加するには、[ParameterReceiverPorts] ビューに移動し、[追加] ボタン
をクリックします。[ポートの追加] ダイアログ ボックスで、新しいポートの名前を指定し、[インターフェイス] を作成したパラメーター インターフェイスの名前に設定します。[追加] をクリックします。
Simulink モデル ワークスペースで、パラメーターのデータ オブジェクトを作成します。たとえば、モデル エクスプローラーを使用します。データ オブジェクトを選択した状態で、[Name] および [Value] フィールドを設定します。パラメーターをモデル引数として (複数インスタンス モデルの各インスタンスに固有) 設定するには、[引数] チェック ボックスをオンにします。

モデルのデータ オブジェクト名を参照します。たとえば、Gain ブロックの [ゲイン] パラメーター フィールドに
k1を入力します。コード マッピング エディターを開き [パラメーター] タブを選択します。[Model Parameter Arguments] グループで、作成したパラメーター データ オブジェクトを選択します。[マッピング先] メニューで、AUTOSAR パラメーター タイプ
[PortParameter]を選択します。
パラメーターの他のコードとキャリブレーション属性を表示および変更するには、[編集] アイコン
をクリックします。[ポート] を AUTOSAR ディクショナリで設定したパラメーター受信ポートの名前に設定します。
[DataElement] を AUTOSAR ディクショナリで設定したパラメーター インターフェイス データ要素の名前に設定します。
詳細については、モデル ワークスペース パラメーターの AUTOSAR コンポーネント パラメーターへのマッピングを参照してください。
AUTOSAR コンポーネント モデルのコードを生成すると、次のようになります。
エクスポートされた ARXML ファイルには、パラメーター受信側コンポーネント、パラメーター インターフェイス、パラメーター データ要素、およびパラメーター受信ポートが含まれます。
<PARAMETER-INTERFACE UUID="..."> <SHORT-NAME>myParamInterface</SHORT-NAME> <IS-SERVICE>false</IS-SERVICE> <PARAMETERS> <PARAMETER-DATA-PROTOTYPE UUID="..."> <SHORT-NAME>ParamElement</SHORT-NAME> ... </PARAMETER-DATA-PROTOTYPE> </PARAMETERS> </PARAMETER-INTERFACE>生成された C コードには、AUTOSAR ポート パラメーターの関数
Rteの呼び出しが含まれます。/* Model step function */ void mArPortParam_Step(void) { ... Rte_IWrite_mArPortParam_Step_Out2_Out2(Rte_Prm_myParamPort_ParamElement() * Rte_IRead_mArPortParam_Step_In2_In2()); }
実行時に、ソフトウェアはパラメーター データ要素にポートベース パラメーターとしてアクセスできます。
AUTOSAR Blockset アーキテクチャでの ParameterSender ポートを使用したパラメーター提供側ポートの作成
この例では、AUTOSAR アーキテクチャでコンポーネント モデルを参照し (System Composer™ が必要)、パラメーター ソフトウェア コンポーネントを追加して、パラメーター ソフトウェア コンポーネント、インターフェイス、コネクタ、およびポートの記述を含むコードを生成する方法を示します。
AUTOSAR アーキテクチャ モデルを作成し、モデル例 autosar_swc_parameter を読み込みます。
archModel = autosar.arch.createModel("AUTOSARArchitecture"); load_system("autosar_swc_parameter");
addComponent関数を使用してアーキテクチャ モデルにコンポーネントを追加します。
component = addComponent(archModel,"SensorComponent", ... Kind="SensorActuator");
linkToModel関数を使用してコンポーネント モデル autosar_swc_parameter をアーキテクチャのコンポーネントにリンクします。
linkToModel(component,"autosar_swc_parameter");addPort関数を使用してアーキテクチャ モデル キャンバスにポートを追加します。connect関数を使用してアーキテクチャをコンポーネントに接続します。
addPort(archModel,"Sender","SenderPort"); addPort(archModel,"Receiver","ReceivePort"); connect(archModel,archModel.Ports(1),component.Ports(1)); connect(archModel,archModel.Ports(2),component.Ports(2));
アーキテクチャ モデルにタイプ ParameterSender のパラメーター ソフトウェア コンポーネントを追加します。
parameterComponent = addComponent(archModel,'ParameterProvider',... Kind='ParameterComponent')
parameterComponent =
ParameterComponent with properties:
Name: 'ParameterProvider'
Parent: [1×1 autosar.arch.Model]
Ports: [0×0 autosar.arch.ParameterPort]
パラメーター コンポーネントにパラメーター送信側ポートを追加します。このポートの名前は、autosar_swc_parameter に既に存在する ParameterReceiverPort の名前に合わせて ParameterPort にする必要があります。

paramPort = addPort(parameterComponent,"ParameterSender",... "ParameterPort")
paramPort =
ParameterPort with properties:
Name: 'ParameterPort'
Parent: [1×1 autosar.arch.ParameterComponent]
export関数を使用して ARXML をエクスポートします。
evalc("export(archModel)")ans =
'Building component: autosar_swc_parameter (1 out of 1)
### Searching for referenced models in model 'autosar_swc_parameter'.
### Total of 1 models to build.
### Starting build procedure for: autosar_swc_parameter
### Generating XML files description for: autosar_swc_parameter
### Successful completion of code generation for: autosar_swc_parameter
Build Summary
Top model targets:
Model Build Reason Status Build Duration
===========================================================================================================
autosar_swc_parameter Information cache folder or artifacts were missing. Code generated. 0h 0m 13.453s
1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 14.463s
Exporting composition: AUTOSARArchitecture
### Generating XML description files for: AUTOSARArchitecture
### Successful completion of export for: AUTOSARArchitecture
### Creating HTML report Architecture Export Report
'
ARXML ファイルを検証します。パラメーター ソフトウェア コンポーネントの記述は AUTOSARArchitecture_component.arxml ファイルにあります。
<SHORT-NAME>Components</SHORT-NAME>
<ELEMENTS>
<PARAMETER-SW-COMPONENT-TYPE UUID="89c7c60b-1b6c-5f1a-2bc1-3b1995cca37a">
<SHORT-NAME>ParameterProvider</SHORT-NAME>
<PORTS>
<P-PORT-PROTOTYPE UUID="4165b1e0-469a-58e1-b9c4-178527d8eb42">
<SHORT-NAME>ParameterPort</SHORT-NAME>
<PROVIDED-COM-SPECS>
<PARAMETER-PROVIDE-COM-SPEC>
<INIT-VALUE>
<NUMERICAL-VALUE-SPECIFICATION>
<SHORT-LABEL>DefaultInitValue_float64_5</SHORT-LABEL>
<VALUE>5</VALUE>
</NUMERICAL-VALUE-SPECIFICATION>
</INIT-VALUE>
<PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">/Company/Powertrain/Interfaces/myParamInterface/ParamElement</PARAMETER-REF>
</PARAMETER-PROVIDE-COM-SPEC>
</PROVIDED-COM-SPECS>
</P-PORT-PROTOTYPE>
</PORTS>
</PARAMETER-SW-COMPONENT-TYPE>
</ELEMENTS>
AUTOSARArchitecture_composition.arxml ファイルにコネクタの記述が含まれています。パラメーター ソフトウェア コンポーネントが同じ名前のポートに接続されています。
<CONNECTORS>
<ASSEMBLY-SW-CONNECTOR UUID="feedb0dd-cf11-5623-6f5b-a68ed78a35e4">
<SHORT-NAME>ParameterProvider_ParameterPort_SensorComponent_ParameterPort</SHORT-NAME>
<PROVIDER-IREF>
<CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Components/AUTOSARArchitecture/ParameterProvider</CONTEXT-COMPONENT-REF>
<TARGET-P-PORT-REF DEST="P-PORT-PROTOTYPE">/Components/ParameterProvider/ParameterPort</TARGET-P-PORT-REF>
</PROVIDER-IREF>
<REQUESTER-IREF>
<CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Components/AUTOSARArchitecture/SensorComponent</CONTEXT-COMPONENT-REF>
<TARGET-R-PORT-REF DEST="R-PORT-PROTOTYPE">/Components/ASWC/ParameterPort</TARGET-R-PORT-REF>
</REQUESTER-IREF>
</ASSEMBLY-SW-CONNECTOR>
参考
関数
getParameter|mapParameter|addComponent|addPort|find|export