이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
SIL 시뮬레이션 구성 및 실행
SIL 및 PIL 시뮬레이션을 실행하는 방법에는 세 가지가 있습니다. 다음과 같이 사용할 수 있습니다:
최상위 모델.
Model 블록.
최상위 모델을 이용한 시뮬레이션
최상위 모델 SIL 또는 PIL 시뮬레이션을 구성하고 실행하려면:
Simulink® 편집기에서 모델을 엽니다.
앱 탭에서 SIL/PIL 관리자를 클릭합니다.
모드 섹션에서 SIL/PIL 시뮬레이션만을 선택하십시오.
준비 섹션에서 System Under Test를
최상위 모델로 설정하십시오.SIL/PIL 모드 필드에서
SIL(Software-in-the-Loop)또는PIL(Processor-in-the-Loop)중 하나를 선택하십시오. 이 옵션은 ERT, GRT 또는 AUTOSAR 시스템 타깃 파일만 지원합니다. 설정 정보는 Model Configuration Parameters: Code Generation 및 Configure AUTOSAR Code Generation (AUTOSAR Blockset) 항목을 참조하십시오.컴포넌트 신호 및 상태 데이터를 모니터링하고, 모델과 SIL 또는 PIL 시뮬레이션에서 산출된 값을 비교하려면:
로그에 기록하려는 각 신호에 대해:
Simulink 편집기에서 신호를 선택합니다.
SIL/PIL 탭에서 신호 모니터링을 클릭합니다. 갤러리에서 다음 옵션을 선택합니다:
선택한 신호 기록
선택한 신호를 테스트 지점으로 설정
신호 기록
상태 데이터를 기록하려면 신호 모니터링 갤러리에서 상태 기록을 선택하십시오.
언어 파라미터가
C++이고 코드 인터페이스 패키징이C++ 클래스인 경우, 코드 매핑 편집기에서 신호, 상태 및 내부 모델 요소 범주에 대한 데이터 가시성을퍼블릭으로 설정하십시오.
SIL 시뮬레이션을 구성하는 경우, SIL 모드와 PIL 모드 간 전환 시 발생하는 워드 크기 불일치 문제를 해결하기 위해 ‘이식 가능한 워드 크기’ 옵션을 지정하십시오. 구성 파라미터 대화 상자에서 이식 가능한 워드 크기 사용 체크박스를 선택하십시오. SIL Simulations with Target-Specific Code 항목도 참조하십시오.
필요한 경우 다음을 구성하십시오:
실행 섹션의 중지 시간 필드에 시뮬레이션 시간을 지정하십시오.
Run SIL/PIL을 클릭합니다.
시뮬레이션이 끝나면 결과 섹션에서 데이터 인스펙터를 클릭하여 시뮬레이션 결과를 확인하십시오.
참고
Windows® 운영 체제에서 Windows 방화벽이 SIL 또는 PIL 시뮬레이션을 차단할 가능성이 있습니다. 자동화된 워크플로의 일환으로 SIL 또는 PIL 시뮬레이션을 실행할 계획이라면, IT 부서에 문의하여 해당 시뮬레이션이 Windows 방화벽에 의해 차단되지 않는지 확인하십시오.
다음과 같은 작업은 할 수 없습니다:
시뮬레이션이 실행 중인 상태에서 모델을 닫기. 시뮬레이션을 중단하려면 명령 창에서 Ctrl+C를 입력하십시오.
시뮬레이션 도중에 모델 수정. 모델의 동작에 영향을 주지 않는 한 블록과 선을 이동할 수는 있습니다.
sim( 명령어를 사용하면 최상위 모델 SIL 또는 PIL 시뮬레이션을 실행할 수 있습니다. 이 소프트웨어는 값 model)'base'에 대해 sim 명령어 옵션인 SrcWorkspace을 지원합니다.
PIL 시뮬레이션의 경우, 연결 구성을 통해 타깃 환경에서 코드가 컴파일되고 실행되는 방식을 제어할 수 있습니다.
Model 블록을 사용한 시뮬레이션
SIL 또는 PIL 시뮬레이션을 위해 Model 블록을 구성하려면:
모델(예:
SILModelBlock)을 엽니다:openExample('ecoder/SILPILVerificationExample', ... supportingFile='SILModelBlock.slx')
Model 블록(예:
Counter A)을 마우스 오른쪽 버튼으로 클릭한 다음,
블록 파라미터 버튼을 클릭하면 ‘함수 블록 파라미터’ 대화 상자가 열립니다.시뮬레이션 모드 드롭다운 목록에서 필요한 모드(예:
SIL(Software-in-the-Loop))를 선택하십시오.코드 인터페이스 드롭다운 목록에서 테스트할 코드를 지정하십시오(예:
모델 참조).확인을 클릭합니다. 이 소프트웨어는 시뮬레이션 모드를 블록 레이블로 표시합니다.

최상위 모델을 선택하면, 소프트웨어는 블록 레이블(SIL: Top)을 표시합니다.SIL 시뮬레이션을 구성하는 경우, SIL 모드와 PIL 모드 간 전환 시 발생하는 워드 크기 불일치 문제를 해결하기 위해 ‘이식 가능한 워드 크기’ 옵션을 지정하십시오. 구성 파라미터 대화 상자에서 이식 가능한 워드 크기 사용 체크박스를 선택하십시오. SIL Simulations with Target-Specific Code 항목도 참조하십시오.
앱 탭에서 SIL/PIL 관리자를 클릭합니다.
모드 섹션에서 SIL/PIL 시뮬레이션만을 선택하십시오.
준비 섹션에서 System Under Test를
SIL/PIL 모드의 Model 블록으로 설정하십시오.최상위 모델 모드 필드에서
표준또는액셀러레이터중 하나를 선택하십시오.필요한 경우 다음을 구성하십시오:
상위 모델에 대한 실행 프로파일링을 구성하여 Model 블록에 대한 코드 실행 프로파일링을 수행합니다.
실행 섹션에서:
중지 시간 필드에 시뮬레이션 시간을 지정하십시오.
초기 빌드 후 코드를 다시 빌드하는 것을 피하려면 빠른 재시작을 클릭합니다. Prevent Code Changes in Multiple Simulations 항목을 참조하십시오.
Run SIL/PIL을 클릭합니다.
시뮬레이션이 끝나면 결과 섹션에서 ‘데이터 인스펙터’를 클릭하여 시뮬레이션 결과를 확인하십시오.
참고
Windows 운영 체제에서 Windows 방화벽이 SIL 또는 PIL 시뮬레이션을 차단할 가능성이 있습니다. 자동화된 워크플로의 일환으로 SIL 또는 PIL 시뮬레이션을 실행할 계획이라면, IT 부서에 문의하여 해당 시뮬레이션이 Windows 방화벽에 의해 차단되지 않는지 확인하십시오.
PIL 시뮬레이션의 경우, 연결 구성을 통해 타깃 환경에서 코드가 컴파일되고 실행되는 방식을 제어할 수 있습니다.
하드웨어 구현 설정 구성
SIL 시뮬레이션을 수행하려면 하드웨어 구현 설정을 구성해야 하며, 이를 통해 개발 컴퓨터에서 생성된 코드를 컴파일할 수 있게 됩니다. 이러한 설정은 실제 프로덕션 하드웨어에 사용할 모델을 빌드할 때 적용하는 하드웨어 구현 설정과 다를 수 있습니다. 다음 방법 중 하나를 사용하십시오.
| 방식 | 세부 정보 |
|---|---|
| 이식 가능한 워드 크기 | 코드를 다시 생성하지 않고 SIL 모드와 PIL 모드 간에 전환할 수 있습니다. 개발 컴퓨터에서 SIL 시뮬레이션을 수행할 때와 타깃 플랫폼에 배포할 때 모두 동일한 생성된 소스 코드 파일을 사용합니다. 이식 가능한 워드 크기를 사용하도록 모델을 구성하려면 다음을 설정하십시오:
|
이식 가능한 워드 크기가 지정된 모델에 대한 코드를 생성할 때, 코드 생성기는 #ifdef PORTABLE_WORDSIZES /* PORTABLE_WORDSIZES defined */ … #else /* PORTABLE_WORDSIZES not defined */ … #endif /* PORTABLE_WORDSIZES */ 타깃 플랫폼용 코드를 빌드하는 데 사용하는 템플릿 makefile에는 코드 빌드에 대한 템플릿 makefile 및 툴체인 방식의 경우, 이 소프트웨어는 호스트 기반 빌드 시에만 컴파일러로 코드 빌드에 사용되는 템플릿 makefile 및 툴체인 방식에 대한 자세한 내용은 Configure Toolchain (ToolchainInfo) or Template Makefile Build Process 항목을 참조하십시오. | |
개발 컴퓨터에서는 컴파일할 수 없는 코드를 타깃이 사용하는 경우를 생각해 봅시다. PIL 모드에서 SIL 모드로 전환한 후 모델을 시뮬레이션하려고 하면 컴파일 오류가 발생합니다. 빌드 정보 객체
| |
다음과 같은 조건 중 하나에 해당할 경우, SIL 시뮬레이션에서 실행되는 코드 생성 결과와 실제 하드웨어에서 실행되는 코드 생성 결과 간의 수치 결과가 달라질 수 있습니다:
| |
| 테스트 하드웨어 | 이 방법은 이식 가능한 워드 크기의 제한을 우회하고자 할 때에만 사용하십시오. 세트:
|
| 프로덕션 하드웨어 | 이 방법은 프로덕션 하드웨어 설정이 개발 컴퓨터의 아키텍처와 일치할 때만 사용하십시오. 세트:
|
테스트 및 프로덕션 타깃에 대한 자세한 내용은 Simulink Coder™ 문서의 Configure Run-Time Environment Options.
컴포넌트의 로그 신호
SIL 및 PIL 컴포넌트의 출력 결과를 확인하고 다른 시뮬레이션 모드 출력 결과와 비교할 수 있습니다. 내부 신호를 분석하려면, 최상위 모델 또는 Model 블록의 SIL 또는 PIL에 대해 내부 신호 로깅을 활성화할 수 있습니다. 신호 로깅을 사용하면 다음과 같은 작업을 수행할 수 있습니다:
SIL/PIL 시뮬레이션 중에 신호 로깅 출력(예:
logsout)을 수집합니다.SIL/PIL 컴포넌트의 내부 신호와 최상위 레벨 출력을 기록합니다.
Simulink 신호 로깅 선택기를 사용하여 SIL/PIL 신호 로깅 설정을 관리하십시오.
시뮬레이션 데이터 인스펙터를 사용하여 다음을 수행할 수 있습니다:
정상, SIL 및 PIL 시뮬레이션 중 스트리밍 신호를 관찰합니다.
정상, SIL 및 PIL 시뮬레이션에서 기록된 신호를 비교하십시오.
SIL 또는 PIL 시뮬레이션 중에 MATLAB 작업 공간으로 신호 로깅을 활성화하고 시뮬레이션 데이터 인스펙터로 신호를 스트리밍하려면:
모니터링하려는 각 신호에 대해:
Simulink 편집기에서 신호를 선택합니다.
SIL/PIL 탭에서 신호 모니터링을 클릭합니다. 갤러리에서 다음 옵션을 선택합니다:
선택한 신호 기록
선택한 신호를 테스트 지점으로 설정
신호 기록
언어 파라미터가
C++이고 코드 인터페이스 패키징이C++ 클래스인 경우, 코드 매핑 편집기에서 신호, 상태 및 내부 모델 요소 범주에 대한 데이터 가시성을퍼블릭으로 설정하십시오.
SIL 또는 PIL 컴포넌트의 내부 신호를 확인하기 위해 다른 방법을 사용할 수 있습니다:
신호를 최상위 레벨로 수동으로 라우팅하십시오.
전역 데이터 저장소를 사용하여 내부 신호에 액세스하려면:
컴포넌트 내부에서 Data Store Write 블록을 필요한 신호에 연결하십시오.
컴포넌트 외부에서는 Data Store Read 블록을 사용하여 신호 값에 액세스하십시오.
MAT 파일 로깅을 사용하십시오. 다음 사항에 유의하십시오:
MAT 파일 로깅은 시그널 로깅을 지원하지 않습니다. 신호 로깅이 활성화된 경우,
logsout가 생성되지만 MAT 파일에는 저장되지 않습니다.PIL의 경우, 타깃 환경이 MAT 파일 로깅을 지원해야 합니다.
자세한 내용은 다음을 참조하십시오.
여러 시뮬레이션에서 코드 변경 방지
다음과 같이 여러 SIL 또는 PIL 시뮬레이션을 실행하려는 경우, 빠른 재시작 기능이 포함된 Model 블록 SIL/PIL을 사용하십시오:
다양한 테스트 벡터(파라미터 집합 및 입력 데이터).
생성된 코드는 변경되지 않습니다. 즉, 초기 빌드 이후에는 어떤 시뮬레이션에서도 코드가 재생성되거나 재빌드되지 않습니다. 예를 들어, 초기값이 변경될 때 발생할 수 있는 증분식 코드 생성을 피하고 싶을 수 있습니다.
Model 블록의 SIL/PIL의 경우, 보호된 모델을 생성하고 소스 코드나 바이너리 코드를 생성할 수도 있습니다. 그런 다음, 보호된 모델을 테스트 하네스 모델에 삽입하십시오. 이 방법을 사용하면 (독립형 코드 인터페이스를 통해) 상위 모델 코드나 모델 참조 코드를 검증할 수 있습니다.
Model 블록 SIL/PIL을 실행하는 대체 방법에 대해, 다음 테이블은 초기 빌드 후의 코드 생성 동작을 요약한 것입니다.
| SIL 및 PIL 접근법 | 초기 빌드 후 코드 생성 동작 |
|---|---|
| 보호된 모델의 이진 코드. |
|
| 보호된 모델의 소스 코드. | 기능 2를 제외하고는 동일한 동작을 확인할 수 있습니다. 이 경우, 컴포넌트 코드 makefile이 실행됩니다. 컴포넌트 코드가 재컴파일되고 링크되어 새로운 오브젝트 코드가 생성됩니다. |
자세한 내용은 Protect Models to Conceal Contents 항목을 참조하십시오.
테스트 속도 향상
모델에 SIL/PIL 모드의 Model 블록이 포함되어 있는 경우, 다음 방법을 통해 SIL/PIL 테스트 속도를 높일 수 있습니다.
참고
SIL 및 PIL 시뮬레이션 모드는 모델 시뮬레이션 시간을 단축하기 위해 설계된 것이 아닙니다. 모델 시뮬레이션 속도를 높이고 싶다면, 고속 액셀러레이터 모드를 사용하십시오. 자세한 내용은 What Is Acceleration? 항목을 참조하십시오.
함수 호출을 이용한 시뮬레이션
다음과 같은 경우 Simulink Function 블록을 사용하십시오:
드라이버나 레거시 코드와 같은 외부 코드를 호출하는 함수를 생성하는 코드를 생성합니다.
일반 시뮬레이션, SIL 시뮬레이션 또는 PIL 시뮬레이션에서 외부 코드와 동일한 동작을 보이는 서브시스템을 제공하십시오.
Configure Calls to AUTOSAR NVRAM Manager Service (AUTOSAR Blockset)의 예제는 AUTOSAR 소프트웨어 컴포넌트에서 Basic Software(BSW) NVRAM 관리자(NvM) 서비스 인터페이스에 대한 클라이언트 호출을 구성하는 방법을 보여줍니다. 시뮬레이션에서 Simulink는 Simulink Function 및 미리 구성된 Function Caller 블록을 통해 BSW NvM 호출을 구현합니다. 최종 시스템에서는 함수 호출 스텁을 AUTOSAR 런타임 환경(RTE)에서 실행되는 외부 BSW 함수 코드와 연결합니다.
자세한 내용은 Simulink Function Blocks and Code Generation 항목을 참조하십시오.
참고 항목
도움말 항목
- SIL 및 PIL 시뮬레이션
- SIL 또는 PIL 접근법 선택
- SIL 및 PIL 시뮬레이션을 통해 생성된 코드 테스트하기
- SIL 또는 PIL 시뮬레이션 중 코드 생성 과정 디버깅
- 코드 생성 리포트에서 SIL 및 PIL 파일 보기
- SIL/PIL Manager Verification Workflow
- 프로그래밍 방식으로 시뮬레이션 실행하기
- Simulation Mode Override Behavior in Model Reference Hierarchy
- SIL and PIL Limitations
- Configure Code Coverage with Third-Party Tool
- Create Execution-Time Profile for Generated Code