このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
キャリブレーションおよび測定のための AUTOSAR データの設定
Simulink® では、AUTOSAR ソフトウェア データ定義のプロパティをインポートおよびエクスポートし、一部の AUTOSAR データのプロパティを変更できます。
ソフトウェア データ定義プロパティ (SwDataDefProps
) について
Embedded Coder® では、次の AUTOSAR ソフトウェア データ定義プロパティ (SwDataDefProps
) について ARXML インポートおよびエクスポートをサポートしています。
ソフトウェア キャリブレーション アクセス (
SwCalibrationAccess
) — データ オブジェクトに対するキャリブレーション ツールおよび測定ツールのアクセスを指定します。表示形式 (
DisplayFormat
) — データ オブジェクトに対するキャリブレーションおよび測定の表示形式を指定します。ソフトウェア アドレス メソッド (
SwAddrMethod
) — 指定されたアドレスに応じてデータ オブジェクト (測定パラメーターやキャリブレーション パラメーターなど) にアクセスする方法を指定します。実行時キャリブレーション ツールと測定ツールからアクセスできるように、データをメモリにグループ化するために使用されます。ソフトウェア アライメント (
SwAlignment
) — メモリ セクション内のデータ オブジェクトの意図された配置を指定します。ソフトウェア実装ポリシー (
SwImplPolicy
) — 変数の一貫性メカニズムに配慮したデータ オブジェクトの実装ポリシーを指定します。ソフトウェア レコード レイアウト (
SwRecordLayout
) — AUTOSAR ECU のメモリでデータを直列化する方法を指定します。
Simulink 環境では一部の AUTOSAR データのソフトウェア データ定義プロパティを直接変更できます。SwImplPolicy
プロパティまたは SwRecordLayout
プロパティは変更できませんが、これらのプロパティは ARXML コードでエクスポートされます。
詳細については、SwCalibrationAccess の設定、DisplayFormat の設定、SwAddrMethod の設定、SwAlignment の設定、SwImplPolicy のエクスポートおよびルックアップ テーブル データの SwRecordLayout のエクスポートを参照してください。
SwCalibrationAccess
の設定
SwCalibrationAccess
プロパティは、測定変数、キャリブレーション パラメーター、信号データ オブジェクトおよびパラメーター データ オブジェクトに対して指定できます。有効な値は次のとおりです。
[ReadOnly]
— データ要素は、生成された読み取りアクセス専用の記述ファイルに出力されます。[ReadWrite]
— データ要素は、生成された読み取りと書き込みの両方のアクセスが可能な記述ファイルに出力されます。NotAccessible
— データ要素は、生成された記述ファイルに出力されますが、キャリブレーション ツールおよび測定ツールによってアクセスできません。
信号やパラメーターを含むモデルを開く場合、次の方法で SwCalibrationAccess
プロパティを指定できます。
AUTOSAR データ要素の SwCalibrationAccess
を指定する
AUTOSAR ディクショナリまたは MATLAB® の関数呼び出しを使用して、次の AUTOSAR データ要素の SwCalibrationAccess
プロパティを指定できます。
送信側/受信側インターフェイス データ要素
不揮発性インターフェイス データ要素
クライアント/サーバー引数
インターランナブル変数
次に例を示します。
AUTOSAR 向けに構成されたモデルを開きます。
AUTOSAR ディクショナリを開きます。次のうちいずれかのビューに移動します。
S-R または NV インターフェイス、[DataElements] ビュー
C-S インターフェイス、[Arguments] ビュー
アトミック コンポーネント、[IRV] ビュー
[SwCalibrationAccess] ドロップダウン リストを使用して、データ要素に許可するキャリブレーション ツールおよび測定ツールのアクセス レベルを選択します。
別の方法として、AUTOSAR プロパティ関数を使用して AUTOSAR のデータ要素の SwCalibrationAccess
プロパティを指定できます。たとえば、次のコードはモデル例 autosar_swc_fcncalls
を開いて、インターランナブル変数 IRV2 のキャリブレーションおよび測定のアクセスを ReadWrite
に設定します。
hModel = 'autosar_swc_fcncalls'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel) arProps = autosar.api.getAUTOSARProperties(hModel); get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess') set(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess','ReadWrite'); get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess')
ans = 'ReadOnly' ans = 'ReadWrite'
同じモデルで S-R インターフェイス データ要素の SwCalibrationAccess
を設定するために、AUTOSAR プロパティ関数 set
を呼び出す例を次に示します。
set(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess','ReadWrite'); get(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess')
ans = 'ReadWrite'
アプリケーション データ型の既定の SwCalibrationAccess
を指定する
AUTOSAR XML オプションは、SwCalibrationAccess DefaultValue (プロパティ SwCalibrationAccessDefault
) を含みます。これは、モデルの AUTOSAR アプリケーション データ型の既定の SwCalibrationAccess
値を定義します。AUTOSAR プロパティ関数を使用して既定値を変更できます。たとえば、次のコードはモデル例 autosar_swc_fcncalls
を開いて、AUTOSAR アプリケーション データ型に対するキャリブレーションおよび測定の既定のアクセスを、ReadOnly
から ReadWrite
に変更します。
hModel = 'autosar_swc_fcncalls'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel) arProps = autosar.api.getAUTOSARProperties(hModel); get(arProps,'XmlOptions','SwCalibrationAccessDefault') set(arProps,'XmlOptions','SwCalibrationAccessDefault','ReadWrite'); get(arProps,'XmlOptions','SwCalibrationAccessDefault')
ans = 'ReadOnly' ans = 'ReadWrite'
DisplayFormat
の設定
AUTOSAR の表示形式仕様は、キャリブレーション データおよび測定データを表示する幅と精度を制御します。AUTOSAR の表示形式仕様はインポートおよびエクスポートでき、Simulink で仕様を編集することもできます。次の AUTOSAR 要素の表示形式を指定できます。
インターランナブル変数
送信側/受信側インターフェイス データ要素
クライアント/サーバー インターフェイスのオペレーション引数
CompuMethods
表示形式指定は、以下の形式で表される ANSI® C printf
指定子のサブセットです。
%[flags][width][.precision]type
フィールド | 説明 |
---|---|
flags (オプション) | AUTOSAR スキーマによってサポートされるフラグを指定する文字。
|
width (オプション) | 表示する最小文字数を指定する正の整数。 |
precision (オプション) | 表示する精度を指定する正の整数。
|
type | AUTOSAR スキーマによってサポートされる数値変換の型を指定する文字。
|
たとえば、%2.1d
という書式指定子は、幅が 2、精度が 1 の符号付き 10 進数を指定しており、表示される値は 12.2 のようになります。
[DisplayFormat] 属性は、それが適用される AUTOSAR 要素のダイアログ ボックスに表示されます。表示形式はダイアログ ボックスで指定することも、あるいは属性を変更できる要素 API を使用して指定することもできます。
hModel = 'autosar_swc_counter'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); slMap = autosar.api.getSimulinkMapping(hModel); mapParameter(slMap,'INC','ConstantMemory','DisplayFormat','%2.6f')
表示形式を指定する場合、ARXML コードをエクスポートすることで対応する DISPLAY-FORMAT 仕様が生成されます。
<PARAMETER-DATA-PROTOTYPE UUID="..."> <SHORT-NAME>INC</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> <SW-DATA-DEF-PROPS> <SW-DATA-DEF-PROPS-VARIANTS> <SW-DATA-DEF-PROPS-CONDITIONAL> <SW-CALIBRATION-ACCESS>READ-WRITE</SW-CALIBRATION-ACCESS> <DISPLAY-FORMAT>%2.6f</DISPLAY-FORMAT> <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY> </SW-DATA-DEF-PROPS-CONDITIONAL> </SW-DATA-DEF-PROPS-VARIANTS> </SW-DATA-DEF-PROPS> ... </PARAMETER-DATA-PROTOTYPE>
SwAddrMethod
の設定
AUTOSAR ソフトウェア コンポーネントでは、ソフトウェア アドレス メソッド (SwAddrMethod
) を使用してデータと関数をメモリ セクションにグループ化し、実行時キャリブレーション ツールと測定ツールからアクセスできるようにします。AUTOSAR ソフトウェア コンポーネントにマッピングされる Simulink モデルの場合は、SwAddrMethod
を次の要素に関連付けることができます。
次にマッピングされたモデル パラメーターまたはルックアップ テーブル:
AUTOSAR 定数メモリ
AUTOSAR 内部キャリブレーション パラメーター
AUTOSAR ポート パラメーター
次にマッピングされる信号、状態、またはデータ ストア:
AUTOSAR の静的メモリ
AUTOSAR のインスタンスごとのメモリ
AUTOSAR ランナブルにマッピングされるモデルのエントリポイント関数
モデルのエントリポイント関数内の内部データ
SwAddrMethod
を作成して AUTOSAR モデルで使用するには、次のようにします。
SwAddrMethod
を ARXML ファイルからインポートするか、SwAddrMethod
を Simulink に作成します。SwAddrMethod
を ARXML ファイルからインポートするには、関数arxml.importer
(新しいモデルの場合はcreateComponentAsModel
またはcreateCompositionAsModel
、既存のモデルの場合はupdateModel
またはupdateAUTOSARProperties
) を使用します。既存のモデルで
SwAddrMethod
を作成するには、AUTOSAR ディクショナリの [SwAddrMethods] ビューを開き、[追加] ボタンをクリックします。または、等価の AUTOSAR プロパティ関数を使用します。詳細については、Simulink での SwAddrMethod の作成を参照してください。
SwAddrMethod
をモデル データと関数に関連付けます。コード マッピング エディターを開き [Parameters]、[Data Stores]、[Signals/States]、または [Functions] タブを選択します。タブ内の要素を選択します。[SwAddrMethod] 属性を設定するには、アイコンをクリックします。または、等価の AUTOSAR map 関数を使用します。詳細については、SwAddrMethod とモデル データまたは関数の関連付けを参照してください。
AUTOSAR モデルのコードを生成します (この例では、モデル
autosar_swc_counter
で AUTOSAR 静的メモリにマッピングされている信号を使用します)。生成されたファイルでは、以下のようになります。エクスポートされた ARXML ファイルに
SwAddrMethod
の記述と参照が含まれます。<VARIABLE-DATA-PROTOTYPE UUID="..."> <SHORT-NAME>SM_equal_to_count</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> <SW-DATA-DEF-PROPS> <SW-DATA-DEF-PROPS-VARIANTS> <SW-DATA-DEF-PROPS-CONDITIONAL> <SW-ADDR-METHOD-REF DEST="SW-ADDR-METHOD"> /Company/Powertrain/DataTypes/SwAddrMethods/VAR </SW-ADDR-METHOD-REF> <SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS> <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY> </SW-DATA-DEF-PROPS-CONDITIONAL> </SW-DATA-DEF-PROPS-VARIANTS> </SW-DATA-DEF-PROPS> <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE"> /Company/Powertrain/DataTypes/Boolean_volatile_my_qualifier</TYPE-TREF> </VARIABLE-DATA-PROTOTYPE>
AUTOSAR 準拠の C コードには、各
SwAddrMethod
メモリ セクションに属しているデータのラッパーまたは関数定義を提供するコメントおよび#define
と#include
ステートメントが含まれます。/* Static Memory for Internal Data */ /* SwAddrMethod VAR for Internal Data */ #define autosar_swc_counter_START_SEC_VAR #include "autosar_swc_counter_MemMap.h" volatile my_qualifier boolean SM_equal_to_count; #define autosar_swc_conter_STOP_SEC_VAR #include "autosar_swc_counter_MemMap.h"
Simulink での SwAddrMethod
の作成
既存のモデルで SwAddrMethod
を作成するには、AUTOSAR ディクショナリの [SwAddrMethods] ビューを開き、[追加] ボタン をクリックします。
または、等価の AUTOSAR プロパティ関数を使用します。このコードによって SwAddrMethods myCODE と myVAR が AUTOSAR コンポーネント モデルに追加されます。
hModel = 'autosar_swc_counter'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel) arProps = autosar.api.getAUTOSARProperties(hModel); addPackageableElement(arProps,'SwAddrMethod',... '/Company/Powertrain/DataTypes/SwAddrMethods','myCODE',... 'SectionType','Code') swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',... 'SectionType','Code') addPackageableElement(arProps,'SwAddrMethod',... '/Company/Powertrain/DataTypes/SwAddrMethods','myVAR',... 'SectionType','Var') swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',... 'SectionType','Var')
swAddrPaths = {'/Company/Powertrain/DataTypes/SwAddrMethods/CODE'} {'/Company/Powertrain/DataTypes/SwAddrMethods/myCODE'} swAddrPaths = {'/Company/Powertrain/DataTypes/SwAddrMethods/VAR'} {'/Company/Powertrain/DataTypes/SwAddrMethods/myVAR'}
SwAddrMethod
とモデル データまたは関数の関連付け
SwAddrMethod
をモデル データおよび関数と関連付けるには、コード マッピング エディターを開き、[Parameters]、[Data Stores]、[Signals/States]、または [Functions] タブを選択します。タブ内の要素を選択します。[SwAddrMethod] 属性を設定するには、 アイコンをクリックします。この例では、信号の
equal_to_count
に SwAddrMethod
VAR が選択され、AUTOSAR の静的なメモリにマッピングされます。
または、等価の AUTOSAR map 関数を使用します。詳細については、mapFunction
、mapParameter
、mapSignal
、mapState
、または mapDataStore
のリファレンス ページを参照してください。
SwAlignment
の設定
SwAlignment
プロパティは、メモリ セクション内の AUTOSAR データの意図された配置を記述します。SwAlignment
はビット数を定義します。有効な値には 8、12、32、UNKNOWN (推奨されない)、UNSPECIFIED および BOOLEAN があります。数値データの場合、一般的な SwAlignment
の値は 8、16 および 32 です。
SwAlignment
プロパティを定義しない場合、参照されている SwAlignment
の swBaseType
サイズと memoryAllocationKeywordPolicy
によって配置が決まります。
AUTOSAR プロパティ関数 set
を使用して、S-R インターフェイス データ要素およびインターランナブル変数の SwAlignment
を設定できます。以下に例を示します。
interfacePath = '/A/B/C/Interfaces/If1/'; dataElementName = 'El1'; swAlignmentValue = '32'; set(dataObj,[interfacePath dataElementName],'SwAlignment',swAlignmentValue);
ラウンドトリップ ワークフローをサポートするために、ARXML インポーターは次の AUTOSAR データの SwAlignment
プロパティをインポートして保持します。
インスタンスごとのメモリ
ソフトウェア コンポーネント パラメーター
パラメーター インターフェイス データ要素
クライアント/サーバー インターフェイスのオペレーション引数
静的メモリおよび定数メモリ
SwImplPolicy
のエクスポート
SwImplPolicy
プロパティは、変数の一貫性メカニズムに関して、データ要素の実装ポリシーを指定します。SwImplPolicy
プロパティは変更できませんが、このプロパティはエクスポートされた ARXML コード内の AUTOSAR データについて standard
または queued
に設定されます。値は次のように設定されます。
standard
インスタンスごとのメモリ
インターランナブル変数
ソフトウェア コンポーネント パラメーター
パラメーター インターフェイス データ要素
クライアント/サーバー インターフェイスのオペレーション引数
静的メモリおよび定数メモリ
standard
またはqueued
送信側/受信側インターフェイス データ要素
ルックアップ テーブル データの SwRecordLayout
のエクスポート
AUTOSAR ソフトウェア コンポーネントはソフトウェア レコード レイアウト (SwRecordLayout
) を使用して AUTOSAR ECU のメモリでデータを直列化する方法を指定します。ARXML インポーターは、AUTOSAR データの SwRecordLayout
プロパティをインポートして保持します。
SwRecordLayout
は、次の 2 つのいずれかの方法で ARXML ファイルからインポートできます。
インポーター関数
createComponentAsModel
を使用して AUTOSAR モデルを ARXML ファイルから作成する場合は、インポートにSwRecordLayout
定義を含む ARXML ファイルを含めます。インポートされたSwRecordLayout
は保持され、後で ARXML コードでエクスポートされます。Simulink で AUTOSAR モデルを作成する場合は、ARXML ファイルから
SwRecordLayout
の共有の定義をインポートできます。インポーター関数updateAUTOSARProperties
を使用します。次に例を示します。importerObj = arxml.importer(arxmlFileName); updateAUTOSARProperties(importerObj,modelName);
モデル コードを生成すると、エクスポートされた ARXML コードにはインポートされた読み取り専用
SwRecordLayout
要素への参照が含まれますが、定義への参照は含まれません。詳細については、共有 AUTOSAR 要素定義のインポートと参照を参照してください。
関連する例
- Simulink への AUTOSAR XML 記述のインポート
- AUTOSAR キャリブレーション パラメーターとルックアップ テーブルのモデル化
- AUTOSAR CompuMethod の設定
- AUTOSAR コード生成の構成