주요 콘텐츠

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

데이터 인터페이스 구성

Embedded Coder®는 모델 전체에서 데이터 요소 및 함수 범주에 대한 디폴트 구성을 지정하는 방법을 제공함으로써 데이터 및 함수 인터페이스를 구성하는 데 드는 노력을 줄여줍니다. 디폴트 구성을 적용하면 시간을 절약하고 코드에서 오류가 발생할 위험을 줄일 수 있습니다. 특히 대규모 모델이나 다중 인스턴스 코드를 생성하는 모델의 경우 더욱 그렇습니다. 디폴트 구성을 적용한 후 개별 데이터 요소와 함수에 대한 디폴트 설정을 선택적으로 재정의할 수 있습니다.

RollAxisAutopilot_step 함수를 구성하여 RollAxisAutopilot 모델의 데이터 인터페이스를 사용자 지정합니다.

  • 외부 파일 roll_input_data.hroll_input_data.c에 선언되고 정의된 전역 변수에서 입력 데이터를 읽습니다.

  • 코드 생성기에 의해 output_data.h에 선언되고 output_data.c에 정의된 전역 변수에 출력 데이터를 씁니다.

내용을 변경하려면 현재 MATLAB® 작업 폴더에 있는 다음 외부 코드 파일을 사용하십시오.

  • roll_input_data.c

  • roll_input_data.h

  • roll_heading_mode.c

  • roll_heading_mode.h

사용자가 수행하는 데이터 인터페이스 구성 변경 사항은 코드 생성 및 빌드 프로세스에서 이러한 파일에 액세스할 수 있는지 여부에 따라 달라집니다. 빌드 프로세스는 이러한 파일에 있는 코드를 사용하여 생성 코드를 컴파일합니다.

데이터에 대한 디폴트 코드 생성 구성

모델 인포트와 아웃포트에 대한 디폴트 코드 생성 구성을 구성하십시오.

  1. C 코드 탭에서 코드 인터페이스 > 디폴트 코드 매핑을 선택합니다.

  2. 모델의 루트 수준에서 Inport 블록을 구성하여 외부 코드에서 정의한 별도의 전역 변수로 생성 코드에 나타나도록 합니다. 코드 매핑 편집기의 인포트 및 아웃포트 아래에서 인포트 범주를 선택합니다. 디폴트 스토리지 클래스를 ImportFromFile로 설정합니다.

    이 설정을 사용하면 생성된 코드는 인포트 데이터를 나타내는 전역 변수를 정의하지 않습니다. 대신 #include 문에 입력 변수를 선언하는 헤더 파일이 포함됩니다. 속성 인스펙터를 사용하여 헤더 파일의 이름을 지정합니다.

  3. Icon to configure additional code mapping properties 아이콘을 클릭하고 HeaderFileroll_input_data.h로 설정합니다.

  4. 외부 헤더 파일 roll_input_data.hextern 선언이 입력 변수의 이름을 어떻게 지정하는지 보려면 MATLAB 명령 창에서 현재 작업 폴더에 있는 roll_input_data.h를 엽니다.

    extern boolean_T AP_Eng;
    extern real32_T HDG_Ref;
    extern real32_T Rate_FB;
    extern real32_T Phi;
    extern real32_T Psi;
    extern real32_T TAS;
    extern real32_T Turn_Knob;
    
  5. 전역 변수에 대한 코드 생성 명명 규칙을 구성합니다. 기본적으로 코드 생성기는 전역 변수의 이름을 접두사 rt로 지정합니다. 코드 생성기가 roll_input_data.h의 외부 변수 선언과 일치하는 코드를 생성하도록 하려면 전역 변수에 대한 코드 생성 명명 규칙을 이에 맞게 구성해야 합니다.

    1. 모델 구성 파라미터 대화 상자를 엽니다. 툴스트립의 C 코드 탭에서 설정을 클릭합니다.

    2. 코드 생성 > 식별자 창으로 이동합니다.

    3. 파라미터 전역 변수를 명명 규칙 $N$M으로 설정합니다(rt 접두사 제거). 토큰 $N은 모델의 데이터 요소 이름을 나타냅니다. 예를 들어, Inport 또는 Outport 블록의 이름이 됩니다. 토큰 $M은 코드 생성기가 필요한 경우 코드의 다른 전역 변수와 이름 충돌을 피하기 위해 삽입하는 이름 변형(mangling) 텍스트를 나타냅니다.

    4. 변경 사항을 적용합니다.

  6. 모델의 루트 수준에서 Outport 블록을 구성하여 생성 코드에 별도의 전역 변수로 나타나도록 합니다. 코드 매핑 편집기의 데이터의 디폴트 값 탭에서 범주 아웃포트에 대해 스토리지 클래스ExportToFile로 설정합니다.

    생성된 코드는 속성 인스펙터를 사용하여 지정한 헤더 및 정의 파일에 있는 출력 변수를 선언하고 정의합니다.

  7. Icon to configure additional code mapping properties 아이콘을 클릭하고 HeaderFileroll_output_data.h로, DefinitionFileroll_output_data.c로 설정합니다.

  8. 모델에 외부 소스 파일 roll_input_data.croll_heading_mode.c를 포함하도록 코드 생성을 구성합니다. 구성 파라미터 대화 상자에서 코드 생성 > 사용자 지정 코드 > 코드 정보 > 소스 파일roll_input_data.c roll_heading_mode.c로 설정합니다. 그런 다음 적용확인을 클릭합니다.

  9. 모델을 저장합니다. 빌드를 클릭하여 코드를 다시 생성합니다.

    컴파일러 오류는 변수 HDG_Mode가 선언되지 않았음을 나타냅니다. 해당 변수는 인포트의 디폴트 헤더 파일로 선언한 헤더 파일 roll_input_data.h에 선언되어 있지 않습니다. 이 오류는 이 튜토리얼의 다음 섹션에서 해결합니다.

    이 모델은 코드 생성이 완료된 후 코드 생성 리포트를 열도록 구성되어 있습니다. 이 튜토리얼의 뒷부분에서 살펴볼 수 있도록 이 리포트 창을 최소화하십시오.

  10. 외부 헤더 파일을 사용하여 입력 변수를 선언하고 정의하도록 Inport 블록을 구성했습니다. 코드 보기에서 roll_input_data.h를 검색하여 생성된 코드에 이 외부 헤더 파일이 포함되어 있는지 확인합니다.

  11. 루트 레벨 Inport 블록 이름인 HDG_Ref를 검색합니다. 입력하면서 녹색 V 아이콘이 있는 검색 제안을 선택하십시오. 이 검색 제안은 생성된 코드에서 변수로 사용된 HDG_Ref의 인스턴스를 찾습니다. HDG_Ref가 별도의 전역 변수로 정의되어 있는지 확인하십시오.

  12. 모델 RollAxisAutopilot에서 Outport 블록 Ail_Cmd를 클릭합니다. 커서를 블록 위의 줄임표 메뉴에 올려 놓은 다음 코드 탐색을 클릭합니다. 코드 보기는 블록에 해당하는 RollAxisAutopilot.c의 코드를 강조 표시합니다. 코드에서 출력 변수 Ail_Cmd 위에 커서를 올려놓으십시오. 추적성 대화 상자에는 변수 정의가 표시됩니다. 대화 상자는 Ail_Cmd가 별도의 전역 변수로 정의되어 있음을 확인합니다. 정의 코드를 클릭하면 roll_output_data.c의 정의를 볼 수 있습니다.

개별 데이터 요소에 대한 디폴트 설정 재정의

데이터의 디폴트 값 아래의 범주에 대해 선택한 설정은 모델 전체에서 해당 카테고리에 속한 요소에 적용됩니다. 개별 데이터 요소에 대한 디폴트 설정을 재정의하려면 코드 매핑 편집기를 사용하십시오.

인포트와 아웃포트에 대한 디폴트 설정을 구성한 후 코드를 생성했을 때, 컴파일러 오류가 발생하여 변수 HDG_Mode가 선언되지 않았다는 것을 나타냈습니다. Inport 블록 HDG_Mode의 디폴트 구성을 재정의하면 해당 오류를 해결할 수 있습니다.

  1. 코드 매핑 편집기의 인포트 탭에서 소스 HDG_Mode를 선택합니다.

  2. 스토리지 클래스ImportFromFile로 설정합니다.

  3. Icon to configure additional code mapping properties 아이콘을 클릭하고 식별자HDG_Mode로, 헤더 파일roll_heading_mode.h로 설정합니다.

    이러한 설정에 따라 코드 생성기는 헤더 파일 roll_heading_mode.h에서 외부 변수 HDG_Mode에 대한 선언을 가져옵니다.

    extern boolean_T HDG_Mode;
    
  4. 모델을 저장하고 코드를 재생성합니다.

    나중에 이 튜토리얼에서 찾아볼 수 있도록 코드 생성 리포트 창을 최소화하십시오.

  5. 코드 보기에서 roll_heading_mode.h를 검색하여 디폴트 구성 파일 roll_input_data.h와 함께 생성 코드에 포함되어 있는지 확인합니다.

  6. HDG_Mode를 검색하여 별도의 전역 변수로 정의되어 있는지 확인합니다.

다음으로, 생성된 코드에서 모델 파라미터를 전역 변수로 구성합니다. 전역 변수로 사용하면 런타임에 파라미터 값을 조정할 수 있습니다.