주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

식별자에 사용자 지정 명명 규칙 적용

이 예제는 신호, 파라미터, 데이터 저장소 메모리 변수 등을 포함한 Simulink® 데이터 객체에 일관된 명명 규칙을 적용하는 방법을 보여줍니다.

모델에서 Simulink 패키지의 Simulink 데이터 객체를 사용하는 경우, 생성된 코드의 식별자는 기본적으로 해당 객체의 이름을 그대로 따릅니다. 예를 들어, Speed라는 이름의 Simulink.Signal 객체는 생성된 코드에서 Speed라는 식별자로 나타납니다.

Simulink 데이터 객체에 특화된 명명 규칙을 지정하여 이러한 식별자를 제어할 수 있습니다. 코드 생성 시 생성된 코드의 명명 규칙을 지정할 때는 식별자 명명에 관한 ANSI® C/C++ 규칙을 따르십시오.

소문자 명명 규칙 적용

1. 모델을 엽니다.

model='NameRules';
open_system(model)

ApplyCustomNamingConventionsToIdentifiersExample.png

2. C 코드 탭을 열고 코드 뷰를 클릭합니다.

3. 모델 구성 파라미터에서 식별자 > 고급 파라미터 > Simulink 데이터 객체 명명 규칙으로 이동합니다. 이 모델에서는 세 가지 규칙이 Force lower case로 설정되어 있습니다.

4. 모델에 대한 코드를 생성합니다. 생성된 파일 NameRules .c는 파라미터에 소문자 식별자를 사용합니다.

/* Exported block parameters */
real_T f1 = 2.0;                       /* Variable: F1
                                        * Referenced by: '<Root>/Chart'
                                        */
real_T g1 = 3.0;                       /* Variable: G1
                                        * Referenced by:
                                        *   '<Root>/Chart'
                                        *   '<S3>/Gain1'
                                        */
real_T g2 = 4.0;                       /* Variable: G2
                                        * Referenced by: '<S3>/Gain2'
                                        */
real_T g3 = 5.0;                       /* Variable: G3
                                        * Referenced by: '<S2>/Gain'
                                        */

함수를 사용하여 명명 규칙 적용하기

MATLAB® 함수를 정의하여 생성된 코드의 식별자를 사용자 지정할 수 있습니다.

1. 데이터 객체 이름을 수정하여 식별자를 반환하는 MATLAB 함수를 작성한 다음, 해당 함수를 작업 폴더에 저장합니다. 예를 들어, 다음 함수는 데이터 객체의 이름 뒤에 해당 데이터 객체의 데이터형을 덧붙여 식별자 이름을 반환합니다.

function revisedName = append_text(name, object)
% APPEND_TEXT: Returns an identifier for generated
% code by appending text to a data object name.
%
% Input arguments:
% name: data object name as spelled in model
% object: information about model
%
% Output arguments:
% revisedName: altered identifier returned for use in
% generated code.
%
%
DataType = Simulink.data.evalinGlobal(object.modelName,[name,'.DataType']);

revisedName = [name,'_',DataType];

2. 모델 구성 파라미터에서 식별자 > 고급 파라미터 > Simulink 데이터 객체 명명 규칙으로 이동합니다. 파라미터 이름 지정 드롭다운 목록에서 Custom MATLAB function을 선택합니다.

3. Parameter naming 아래의 MATLAB 함수 필드에 MATLAB 함수를 정의하는 파일 이름인 append_text.m를 입력한 다음, 적용을 클릭합니다.

Simulink data object naming rules parameters. Parameter naming is set to Custom MATLAB function and MATLAB function is set to append_text.m.

4. 모델에 대한 코드를 생성합니다. 생성된 코드는 NameRules의 .c 파라미터 객체 명명 규칙을 구현합니다.

/* Exported block parameters */
real_T F1_auto = 2.0;                  /* Variable: F1
                                        * Referenced by: '<Root>/Chart'
                                        */
real_T G1_auto = 3.0;                  /* Variable: G1
                                        * Referenced by:
                                        *   '<Root>/Chart'
                                        *   '<S3>/Gain1'
                                        */
real_T G2_auto = 4.0;                  /* Variable: G2
                                        * Referenced by: '<S3>/Gain2'
                                        */
real_T G3_auto = 5.0;                  /* Variable: G3
                                        * Referenced by: '<S2>/Gain'
                                        */

스토리지 클래스 define에 대한 명명 규칙 지정

스토리지 클래스를 Define으로 설정한 Simulink 데이터 객체에만 적용되는 명명 규칙을 지정할 수 있습니다.

1. 코드 매핑 편집기를 엽니다. C 코드 탭에서 코드 인터페이스 > 기본 코드 매핑을 선택합니다.

2. 코드 매핑 편집기파라미터 탭에서 External Parameter Objects라는 레이블이 붙은 데이터 테이블 행을 찾으십시오. 해당 행에 있는 새로 고침 버튼을 클릭하십시오.

3. 기본 작업 공간에 있는 Simulink.Parameter 객체 G1에 해당하는 데이터 테이블의 행을 찾으십시오. 드롭다운 메뉴에서 G1의 스토리지 클래스를 Define으로 설정하십시오.

3.png

4. 모델 구성 속성에서 식별자 > 고급 파라미터 > Simulink 데이터 객체 명명 규칙으로 이동합니다. #define naming 드롭다운 목록에서 사용자 지정 MATLAB 함수를 선택하십시오.

5. #define naming 아래의 MATLAB 함수 필드에 MATLAB 함수를 정의하는 파일 이름인 append_text.m을 입력하십시오.

6. 파라미터 이름 지정 드롭다운 목록에서 Force lower case를 선택한 다음, 적용을 클릭합니다.

7. 모델에 대한 코드를 생성합니다. 생성된 파일 NameRules .hG1G1_auto로, K1K1_auto로 나타냅니다.

/* Definition for custom storage class: Define */
#define G1_auto                        3.0                       /* Referenced by:
                                                                  * '<Root>/Chart'
                                                                  * '<S3>/Gain1'
                                                                  */
#define K1_auto                        6.0                       /* Referenced by: '<Root>/Chart' */

데이터 객체 명명 규칙 재정의

Identifier 속성을 지정하면 개별 데이터 객체에 대해 데이터 객체 명명 규칙을 재정의할 수 있습니다. 코드 생성은 명명 규칙과 관계없이 사용자가 식별자로 지정한 텍스트를 사용하여 데이터 객체를 나타냅니다.

1. 코드 매핑 편집기파라미터 탭에서, 데이터 테이블 내에서 Simulink.Parameter 객체 G2에 해당하는 행을 찾으십시오. 해당 행을 마우스 오른쪽 버튼으로 클릭한 다음 열기를 선택합니다.

2. 속성 인스펙터에서 코드 생성 탭으로 이동합니다. Identifier 속성을 myIdentifier로 지정하십시오. 적용을 클릭합니다.

3. 모델에 대한 코드를 생성합니다. 생성된 파일 NameRules .c는 변수 myIdentifier를 사용하여 G2를 나타냅니다.

/* Exported block parameters */
real_T f1 = 2.0;                       /* Variable: F1
                                        * Referenced by: '<Root>/Chart'
                                        */
real_T myIdentifier = 4.0;             /* Variable: G2
                                        * Referenced by: '<S3>/Gain2'
                                        */
real_T g3 = 5.0;                       /* Variable: G3
                                        * Referenced by: '<S2>/Gain'
                                        */