将 AUTOSAR XML 描述导入 Simulink 中
在 Simulink® 中,您可以从 AUTOSAR XML (ARXML) 文件导入 AUTOSAR 软件组件、组合或共享元素包。您使用 ARXML 导入器,它是作为 arxml.importer
对象实现的。有关详细信息,请参阅AUTOSAR ARXML 导入器。
要将 ARXML 软件描述文件导入 Simulink,请首先调用 arxml.importer
函数。在函数参量中,指定一个或多个描述软件组件、组合或共享元素包的 ARXML 文件。例如:
ar = arxml.importer('ThrottlePositionControlComposition.arxml')
该函数:
解析 ARXML 文件以识别 AUTOSAR 软件描述。
如果调用函数时未使用终止分号 (;),则列出指定 ARXML 文件的 AUTOSAR 内容。
返回 ARXML 导入器对象的句柄。在后续函数调用中,该对象表示 ARXML 文件中解析的 AUTOSAR 软件描述。
有关详细信息,请参阅创建 ARXML 导入器对象。
接下来,根据您要导入的内容,调用 arxml.importer
创建或更新函数。例如:
要导入 ARXML 软件组件并创建一个 AUTOSAR 模型,请调用
createComponentAsModel
。有关详细信息,请参阅导入软件组件并创建模型。要导入 ARXML 软件组合并创建 AUTOSAR 模型,请调用
createCompositionAsModel
。有关详细信息,请参阅导入软件组合并创建模型。如果您有 System Composer™ 许可证,可以将 ARXML 软件组合作为 AUTOSAR 架构模型导入。有关详细信息,请参阅Import AUTOSAR Composition from ARXML。
要用外部 ARXML 文件更改更新现有 AUTOSAR 模型,请调用
updateModel
。有关详细信息,请参阅将组件或组合的外部更新导入模型。要用共享元素定义包更新现有 AUTOSAR 组件模型,请调用
updateAUTOSARProperties
。有关详细信息,请参阅将共享元素包导入组件模型。要从 ARXML 文件更新现有数据字典接口和数据类型定义的“架构数据”分区,请调用
updateArchitecturalData
。
为了帮助支持 AUTOSAR 元素在 AUTOSAR 编写工具 (AAT) 与 Simulink 基于模型的设计环境之间的来回处理,ARXML 导入会保留导入的 AUTOSAR XML 文件结构、元素和元素通用唯一标识符 (UUID) 以用于 ARXML 导出。有关详细信息,请参阅Round-Trip Preservation of AUTOSAR XML File Structure and Element Information。
在将 AUTOSAR 软件组件或组合导入 Simulink 后,您可以开发组件或组合模型的行为和配置。要细化组件配置,请参阅 AUTOSAR 组件配置。
要配置 ARXML 导出选项,请参阅Configure AUTOSAR XML Options。
创建 ARXML 导入器对象
在将 ARXML 描述导入 Simulink 之前,请调用 arxml.importer
函数。指定一个或多个包含 AUTOSAR 软件组件、组合或共享元素描述的 ARXML 文件的名称。该函数解析指定的 ARXML 文件中的描述,并创建一个表示解析信息的导入器对象。对 createComponentAsModel
或其他 ARXML 导入器函数的后续调用必须指定该导入器对象。
例如,打开 autosar_swc
模型并编译它。
openExample('autosar_swc');
以下调用指定主 AUTOSAR 软件组件文件 autosar_swc_component.arxml
,以及包含数据类型、实现和接口信息的相关依赖文件,这些信息完成软件组件描述。
ar = arxml.importer({'autosar_swc_component.arxml','autosar_swc_datatype.arxml',... 'autosar_swc_implementation.arxml','autosar_swc_interface.arxml'})
此调用指定 ARXML 文件 ThrottlePositionControlComposition.arxml
,该文件描述 AUTOSAR 软件组合及其聚合的 AUTOSAR 组件。
ar = arxml.importer('ThrottlePositionControlComposition.arxml')
如果调用 arxml.importer
函数时未使用终止分号 (;),导入器会列出指定 XML 文件的 AUTOSAR 内容。信息包括 AUTOSAR 包结构中软件组件的路径,您将在下一步中用到这些路径。
在此示例中,软件组合 ThrottlePositionControlComposition
的路径是 /Company/Components/ThrottlePositionControlComposition
。软件组件 Controller
的路径是 /Company/Components/Controller
。
ar =
The file "path/ThrottlePositionControlComposition.arxml" contains:
1 Composition-Software-Component-Type:
'/Company/Components/ThrottlePositionControlComposition'
2 Application-Software-Component-Type:
'/Company/Components/Controller'
'/Company/Components/ThrottlePositionMonitor'
3 Sensor-Actuator-Software-Component-Type:
'/Company/Components/AccelerationPedalPositionSensor'
'/Company/Components/ThrottlePositionActuator'
'/Company/Components/ThrottlePositionSensor'
导入软件组件并创建模型
要将解析的原子软件组件导入 Simulink 模型,请调用 createComponentAsModel
函数。指定 ARXML 导入器对象和要创建为模型的组件。解析的 ARXML 文件必须指定该组件的所有依赖项。
以下示例创建 AUTOSAR 原子软件组件的 Simulink 表示。
ar = arxml.importer('ThrottlePositionControlComposition.arxml');
names = getComponentNames(ar)
names = 5x1 cell {'/Company/Components/Controller' } {'/Company/Components/ThrottlePositionMonitor' } {'/Company/Components/AccelerationPedalPositionSensor'} {'/Company/Components/ThrottlePositionActuator' } {'/Company/Components/ThrottlePositionSensor' }
createComponentAsModel(ar,'/Company/Components/Controller',... 'ModelPeriodicRunnablesAs','AtomicSubsystem');
'ModelPeriodicRunnablesAs'
参量控制导入器是将 AUTOSAR 周期性可运行实体建模为具有周期性速率的原子子系统(默认值)还是具有周期性速率的函数调用子系统。除非您的设计需要使用函数调用子系统,否则指定 AtomicSubsystem
。有关详细信息,请参阅Import AUTOSAR Software Component with Multiple Runnables。
要将 AUTOSAR 数据的 Simulink 数据对象导入 Simulink 数据字典,您可以在模型创建时设置 'DataDictionary'
参量。如果指定的字典尚不存在,导入器将创建它。
要显式指定 AUTOSAR 可运行实体作为组件中的初始化可运行实体,请在模型创建时使用 'InitializationRunnable'
参量。
有关详细信息,请参阅 createComponentAsModel
参考页和示例将 AUTOSAR 组件导入 Simulink。
导入软件组合并创建模型
要将解析的原子软件组合导入 Simulink 模型,请调用 createCompositionAsModel
函数。指定 ARXML 导入器对象和要创建为模型的组合。解析的 ARXML 文件必须指定该组合的所有依赖项。
以下示例创建 AUTOSAR 软件组合的 Simulink 表示。
ar = arxml.importer('ThrottlePositionControlComposition.arxml'); names = getComponentNames(ar,'Composition')
names = 1x1 cell array {'/Company/Components/ThrottlePositionControlComposition'}
createCompositionAsModel(ar,'/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 Creating model 'ThrottlePositionControlComposition' for composition 1 of 1: /Company/Components/ThrottlePositionControlComposition
要在组合模型中包含现有 Simulink 原子软件组件模型,请在组合模型创建时使用 'ComponentModels'
参量。
有关详细信息,请参阅 createCompositionAsModel
参考页和示例Import AUTOSAR Composition to Simulink。
对于包含超出 20 个软件组件的组合,在组件之间共享 AUTOSAR 属性可以显著提高性能并减少组合工作流的重复。要配置组合导入以存储组件共享的 AUTOSAR 属性,请使用 'DataDictionary'
和 'ShareAUTOSARProperties'
参量。有关详细信息,请参阅 createCompositionAsModel
参考页和示例Import AUTOSAR Composition and Share AUTOSAR Dictionary。
将组件或组合的外部更新导入模型
在将解析的原子软件组件或组合导入 Simulink 模型后,该组件或组合的 ARXML 描述可能在不同 AUTOSAR 编写环境中继续演化。要用外部更改更新您的 AUTOSAR 组件或组合模型,请调用 updateModel
函数。指定表示 ARXML 更改的 ARXML 导入器对象和要更新的现有 AUTOSAR 模型。
以下示例用文件 ThrottlePositionControlComposition_updated.arxml
中的更改更新名为 Controller
的现有 AUTOSAR 组件模型。
% Create and open AUTOSAR controller component model ar = arxml.importer('ThrottlePositionControlComposition.arxml'); createComponentAsModel(ar,'/Company/Components/Controller',... 'ModelPeriodicRunnablesAs','AtomicSubsystem'); % Update AUTOSAR controller component model (model must be open) ar2 = arxml.importer('ThrottlePositionControlComposition_updated.arxml'); updateModel(ar2,'Controller');
有关详细信息,请参阅 updateModel
参考页、Update AUTOSAR Software Component和示例将 AUTOSAR 组件导入 Simulink 的更新部分。
将共享元素包导入组件模型
在创建 AUTOSAR 软件组件模型后,无论是在 Simulink 中开始还是导入 ARXML 组件描述,您都可以用组件之间共享的预定义元素和属性更新组件模型的 AUTOSAR 属性。要用共享元素定义包更新组件的 AUTOSAR 属性,请调用 updateAUTOSARProperties
函数。指定表示 ARXML 共享元素定义的 ARXML 导入器对象和要更新的现有 AUTOSAR 模型。
以下示例用文件 SwAddrMethods.arxml
中的元素定义更新 AUTOSAR 组件模型。
modelName = 'autosar_swc'; openExample(modelName); ar = arxml.importer('SwAddrMethods.arxml'); updateAUTOSARProperties(ar,modelName);
有关详细信息,请参阅 updateAUTOSARProperties
参考页、Import and Reference Shared AUTOSAR Element Definitions和示例Import AUTOSAR Package into Component Model。
另请参阅
arxml.importer
| Simulink.dictionary.ArchitecturalData
主题
- 将 AUTOSAR 组件导入 Simulink
- Import AUTOSAR Composition to Simulink
- Import AUTOSAR Composition from ARXML
- Update AUTOSAR Software Component
- Import and Reference Shared AUTOSAR Element Definitions
- Import AUTOSAR Package into Component Model
- Configure AUTOSAR XML Options
- Round-Trip Preservation of AUTOSAR XML File Structure and Element Information
- AUTOSAR ARXML 导入器
- Workflows for AUTOSAR