이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
생성된 ASAP2 파일 사용자 지정
다음 방법 중 하나를 사용하여 코드 생성기를 통해 ASAP2 파일의 필드를 사용자 지정할 수 있습니다:
계산 방법 이름 사용자 지정
생성된 ASAP2 파일에서, 계산 방법은 전자 제어 장치(ECU) 내부의 측정 및 보정 수치를 물리적 모델 기반의 표현으로 변환합니다. Simulink® Coder™ 소프트웨어를 사용하면 계산 방법의 이름을 사용자 지정할 수 있습니다. ASAP2 파일의 가독성을 높여주는 더 직관적인 이름을 지정하거나, 조직의 요구 사항을 충족하는 이름을 지정할 수 있습니다.
계산 방법 이름을 사용자 지정하려면 MATLAB® 함수인 getCompuMethodName를 사용하십시오. 이 함수는 에 정의되어 있습니다.matlabroot/toolbox/rtw/targets/asap2/asap2/user/getCompuMethodName.m
getCompuMethodName 함수는 계산 메서드 이름을 생성합니다. 함수 프로토타입은 다음과 같습니다:
cmName = getCompuMethodName(dataTypeName, cmUnits)
여기서
는 해당 계산 방식과 관련된 데이터형의 이름입니다.dataTypeName는cmUnitsSimulink.Parameter또는Simulink.Signal객체(예:rpm또는m/s)의Unit속성에 지정된 단위입니다.는 생성된 계산 메서드 이름을 반환합니다.cmName
이 함수가 반환하는 기본 생성된 이름의 형식은 다음과 같습니다:
<localPrefix><datatype>_<cmUnits>
여기서
<local_Prefix>는에 정의된 로컬 접두사인matlabroot/toolbox/rtw/targets/asap2/asap2/user/getCompuMethodName.mCM_입니다.<datatype>와<cmUnits>는getCompuMethodName함수에 지정하신 인수입니다.
ASAP2 파일의 계산 방법 이름에는 에 포함된 특수 문자가 지원되지 않습니다. 특수 문자는 이 테이블에 나와 있는 대로 변환됩니다.cmUnits
| 특수 문자 | 변환 |
|---|---|
| % | _percent_ |
| - | _dash_ |
| / | _per_ |
| * | _into_ |
| ° | _deg_ |
예를 들어, 인수 dataTypeName'int16'와 인수 cmUnits'm/s'를 사용하여 getCompuMethodName 함수를 호출한 다음 ASAP2 파일을 생성하면, 생성된 파일에 계산 방법 이름이 표시됩니다:
/begin COMPU_METHOD /* Name of CompuMethod */ CM_int16_m_per_s /* Units */ "m/s" ... /end COMPU_METHOD
참조된 모델 요소 제외
R2024b 버전부터 생성된 A2L 파일에서 참조된 모델 요소를 제외할 수 있습니다. 기본적으로 참조된 모델 요소는 A2L 파일에 포함됩니다.
sldemo_fuelsys모델을 엽니다.open_system("sldemo_fuelsys")모델을 빌드합니다.
다음 명령어를 사용하여 ASAP2 파일을 생성합니다:
coder.asap2.export("sldemo_fuelsys", IncludeReferencedModels=false)생성된 ASAP2 파일에는 참조된 모델 요소가 없습니다.
구조체 및 64비트 정수 제외
R2022a 버전부터는 생성된 A2L 파일에서 구조체 요소와 64비트 정수를 제외할 수 있습니다. 기본적으로 구조체와 64비트 정수는 A2L 파일에 포함됩니다.
sldemo_fuelsys모델을 엽니다.open_system("sldemo_fuelsys")모델을 빌드합니다.
다음 명령어를 사용하여 ASAP2 파일을 생성합니다:
coder.asap2.export("sldemo_fuelsys", SupportStructureElements=false, ... Support64bitIntegers=false)
생성된 ASAP2 파일에는 64비트 정수 및 구조체 요소가 포함되어 있지 않습니다.
특성 및 측정 객체를 그룹별로 내보내기
R2021b 버전부터 ASAP2 파일 내의 특성 및 측정 객체를 해당 속성에 따라 그룹화할 수 있습니다. 기본적으로, 생성된 ASAP2 파일에는 모델에 존재하는 서브시스템에 따라 GROUPS 및 SUB_GROUPS가 포함되지만, 이는 해당 서브시스템에서 ASAP2 파일로 내보내진 데이터 요소가 하나 이상 있는 경우에만 해당됩니다.
sldemo_fuelsys모델을 엽니다.openExample("sldemo_fuelsys")모델의 코드 퍼스펙티브로 이동한 후 C 코드 > Quick Start를 클릭하여 Simulink Coder Quick Start 앱을 사용하세요.
모델을 빌드합니다.
Generate Calibration Files툴을 사용하거나 다음 명령어를 실행하여 ASAP2 파일을 생성합니다:coder.asap2.export("sldemo_fuelsys")데이터 요소들은 모델 아키텍처에 따라 그룹화됩니다. 최상위 모델은
GROUP라고 하며, 이 모델 내의 서브시스템들은SUB_GROUPS라고 합니다. 생성된 파일에는 다음과 같은 줄들이 포함되어 있습니다:/begin GROUP /* Name */ sldemo_fuelsys /* Long identifier */ "sldemo_fuelsys" /* Root */ ROOT /begin SUB_GROUP sldemo_fuelsys.Engine_Gas_Dynamics sldemo_fuelsys.fuel_rate_control /end SUB_GROUP /end GROUPASAP2 파일에서
scalar객체들을GROUP_TYPE_SCALAR라는 이름의 그룹으로 묶으려면 다음 명령을 사용하십시오:coder.asap2.export("sldemo_fuelsys",CustomizeGroupsBy={'SCALAR'})
또한 array 유형의 객체와 룩업 테이블을 테이블의 차원에 따라 MAP, CURVE, CUBOID, CUBE_4 및 CUBE_5로 그룹화할 수도 있습니다.
기본 이벤트 목록이 포함된 ASAP2 생성
R2022a부터 멀티레이트 모델의 경우, ASAP2 파일에 DEFAULT_EVENT_LIST가 포함된 IF_DATA 섹션이 포함되어 있어, 보정 툴에서 데이터 요소별 래스터 값을 확인할 수 있습니다.
sldemo_fuelsys모델을 엽니다.open_system("sldemo_fuelsys")모델을 빌드합니다.
Generate Calibration Files툴을 사용하거나 다음 명령어를 실행하여 ASAP2 파일을 생성하십시오:coder.asap2.export("sldemo_fuelsys")이 모델은
0.01의 싱글레이트를 가집니다. 생성된 파일에서는 측정값을 다음과 같이 정의합니다:/begin MEASUREMENT /* Name */ rtB.es_o.throttle /* Long identifier */ "" /* Data type */ FLOAT32_IEEE /* Conversion method */ CM_single /* Resolution (Not used) */ 0 /* Accuracy (Not used) */ 0 /* Lower limit */ -3.4E+38 /* Upper limit */ 3.4E+38 ECU_ADDRESS 0x0000 /* @ECU_Address@rtB.es_o.throttle@ */ /end MEASUREMENT다음 명령어를 사용하여 모델을 멀티레이트 모델로 변환하십시오:
blockName = ['sldemo_fuelsys' '/EGO Fault Switch']; set_param(blockName, 'SampleTime', '0.02');
모델을 빌드합니다.
다음 명령어를 사용하여 ASAP2 파일을 생성합니다:
coder.asap2.export("sldemo_fuelsys")생성된 파일에서는 이제 측정값을 다음과 같이 정의하고 있습니다:
/begin MEASUREMENT /* Name */ rtB.es_o.throttle /* Long identifier */ "" /* Data type */ FLOAT32_IEEE /* Conversion method */ CM_single /* Resolution (Not used) */ 0 /* Accuracy (Not used) */ 0 /* Lower limit */ -3.4E+38 /* Upper limit */ 3.4E+38 ECU_ADDRESS 0x0000 /* @ECU_Address@rtB.es_o.throttle@ */ /begin IF_DATA XCP /begin DAQ_EVENT VARIABLE /begin DEFAULT_EVENT_LIST EVENT 0x0001 /end DEFAULT_EVENT_LIST /end DAQ_EVENT /end IF_DATA /end MEASUREMENTDEFAULT_EVENT_LIST가 포함되지 않은 ASAP2 파일을 생성하려면 다음 명령을 사용하십시오:coder.asap2.export("sldemo_fuelsys",IncludeDefaultEventList=false);
레코드 레이아웃을 별도의 파일로 생성하기
sldemo_fuelsys모델을 엽니다.open_system("sldemo_fuelsys")모델을 빌드합니다.
다음 명령어를 사용하여 ASAP2 파일을 생성합니다:
coder.asap2.export("sldemo_fuelsys",IncludeAllRecordLayouts=true)RecordLayouts.a2l파일은 ASAP2 파일의 버전에 따라 생성됩니다. ASAP2 파일에서 다음 줄을 확인해 주세요:/include "RecordLayouts.a2l"
생성된
RecordLayouts.a2l파일에는 모델에 포함된 데이터형의 레코드 레이아웃이 담겨 있습니다.참고
RecordLayouts.a2l파일은 ASAP2 파일과 동일한 폴더에 있어야 합니다.coder.asap2.export("sldemo_fuelsys",IncludeAllRecordLayouts=false)는 별도의 레코드 레이아웃 파일을 생성하지 않고, 내보낸 데이터 객체의 데이터형에 대한 레코드 레이아웃을 ASAP2 파일에 포함시킵니다./begin RECORD_LAYOUT Scalar_FLOAT32_IEEE FNC_VALUES 1 FLOAT32_IEEE COLUMN_DIR DIRECT /end RECORD_LAYOUT /begin RECORD_LAYOUT Scalar_FLOAT64_IEEE FNC_VALUES 1 FLOAT64_IEEE COLUMN_DIR DIRECT /end RECORD_LAYOUT ...
ASAP2 파일 병합
R2023a부터 여러 A2L 파일의 데이터 요소를 Simulink 모델로 병합할 수 있습니다. coder.asap2.merge 함수를 사용하여 병합된 디스크립터 객체를 생성하고, 모델의 데이터 요소와 병합된 A2L 파일을 포함하는 A2L 파일을 생성합니다.
Vehicle Network Toolbox™는 coder.asap2.merge (Embedded Coder) 함수를 사용하여 A2L 파일을 병합하는 데 필요합니다.
sldemo_fuelsys모델을 엽니다.open_system("sldemo_fuelsys")모델을 빌드합니다.
다음 명령어를 사용하여 A2L 파일의 데이터 요소를 모델에 병합합니다:
mergeObj = coder.asap2.merge("sldemo_fuelsys",{"ASAP2File1.a2l"})
두 개 이상의 A2L 파일을 병합하려면 파일을 쉼표로 구분하여 지정하십시오. 예를 들면 다음과 같습니다.
mergeObj = coder.asap2.merge("sldemo_fuelsys",{"ASAP2File1.a2l","ASAP2File2.a2l"})
mergeObj를 사용하여 A2L 파일을 생성합니다.coder.asap2.export("sldemo_fuelsys",CustomEcuDescriptions=mergeObj)
생성된 A2L 파일에는 sldemo_fuelsys 모델과 ASAP2File1 A2L 파일에 포함된 데이터 요소들이 담겨 있습니다.
ECU 주소 확장 지정
R2022a부터 EcuAddressExtension 속성에 정수 값을 지정하여 ASAP2 파일에 추가 주소 정보를 포함시킬 수 있습니다. 기본적으로 추가 주소 정보는 제공되지 않습니다.
sldemo_fuelsys모델을 엽니다.open_system("sldemo_fuelsys")모델을 빌드합니다.
다음 명령어를 사용하여 ASAP2 파일을 생성합니다:
coder.asap2.export("sldemo_fuelsys",EcuAddressExtension=4)특성, 측정값 및 축 점에 대한
ECU_ADDRESS_EXTENSION키워드는 ASAP2 파일에 포함되어 있어, 추가 주소 정보를 지정할 수 있습니다./begin MEASUREMENT /* Name */ rtB.MinMax /* Long identifier */ "" /* Data type */ FLOAT64_IEEE /* Conversion method */ CM_double /* Resolution (Not used) */ 0 /* Accuracy (Not used) */ 0 /* Lower limit */ -1.7E+308 /* Upper limit */ 1.7E+308 ECU_ADDRESS 0x0000 /* @ECU_Address@rtB.MinMax@ */ ECU_ADDRESS_EXTENSION 4 /end MEASUREMENT
참고 항목
coder.asap2.export | coder.asap2.getEcuDescriptions