본문으로 건너뛰기

프로젝트와 HPC 머신 만들기

이 장에서 할 일​

이 장에서는 프로젝트가 열려 있지 않은 PAIO 창에서 출발해 Adaptive Application 설계의 뼈대를 만든다. 프로젝트 AADesign 을 만들고, System 편집기에 HPC 노드 하나를 놓아 이름을 Ecu 로 바꾸고, VFB 편집기에 컴포지션 HPC 를 만들어 그 노드에 매핑한다. 마지막으로 컴포지션에 붙은 머신 아이콘으로 Machine Configuration 다이얼로그를 열어 네 개의 탭을 둘러보고 저장한다.

이 장을 마치면 design/ 아래에 파일 7개가 생기고, VALIDATION 패널에는 오류 1건(constr_10641)이 남는다. 이 1건은 정상이며 머신 설정에서 고친다.

시작하기 전에​

  • PAIO 가 설치되어 있고 실행할 수 있어야 한다.
  • 프로젝트가 열려 있지 않은 PAIO 창에서 시작한다. 창 제목이 PAIO 이고, 왼쪽 EDITOR 뷰에 No project open 이 보이고, Welcome 탭(Welcome to PAIO)이 열려 있으면 된다. PAIO 가 전에 작업한 프로젝트를 열면 PROJECT › New Window 를 선택해 이런 창을 연다.
  • 이 튜토리얼은 다른 튜토리얼이나 예제 프로젝트에 기대지 않는다. 이 장부터 차례로 따라가면 된다.

이 장에서 입력하는 값은 프로젝트를 둘 폴더를 빼면 세 개뿐이다. 이 이름들은 이후 모든 장에서 그대로 쓰이므로 바꾸지 않는다.

요소입력하는 값어디서
프로젝트 이름AADesignNew Project 대화상자
HPC 노드 이름EcuSystem 편집기 속성 패널 NAME
컴포지션 이름과 프로토타입 이름HPC (두 번)VFB 편집기 속성 패널 NAME 과 AS PROTOTYPE

참고. 노드 이름 Ecu 는 머신 파일 이름(Ecu.machine.io.model), 이후 장에서 만드는 Ethernet 엔드포인트 이름(Ecu_eth0_UDP_20001 등), DLT ECU 경로에 그대로 들어간다. 컴포지션 이름 HPC 는 시스템 매핑과 Machine Configuration 다이얼로그 제목에 쓰인다.

새 프로젝트 만들기​

Project 메뉴에서 New Project 열기​

  1. 화면 위쪽 메뉴에서 PROJECT 를 클릭한다.

  2. 드롭다운에서 New Project... 를 클릭한다. 단축키는 없다. Welcome 탭의 New Project 버튼도 같은 대화상자를 연다.

    Project 메뉴의 New Project

    그림 1-1. 프로젝트가 열려 있지 않은 창에서 연 PROJECT 메뉴. ① PROJECT 메뉴 버튼, ② New Project... 항목. 같은 드롭다운에 Save, Save All 이 있다. 이 장에서 여러 번 쓴다. 메뉴 뒤의 EDITOR 뷰에는 No project open 이 보이고 Welcome 탭이 열려 있다.

이름을 입력하고 만들기​

  1. New Project 대화상자의 Name 에 AADesign 을 입력한다.

  2. Location 에 프로젝트를 둘 폴더를 지정한다. 경로를 직접 입력하거나 Browse… 를 클릭해 폴더를 고른다. PAIO 는 그 안에 프로젝트 폴더 AADesign 을 만들고, 입력란 아래 줄에 그 경로를 The project will be created in …\AADesign 으로 보여 준다. Create 는 Name 과 Location 이 모두 채워져야 켜진다.

  3. Create 버튼을 클릭한다.

    New Project 대화상자

    그림 1-2. New Project 대화상자. ① AADesign 을 입력한 Name, ② Location 과 Browse… 버튼, ③ 새 프로젝트 폴더를 알려 주는 The project will be created in … 줄, ④ Create 버튼. 그림의 폴더는 예시일 뿐이므로 직접 고른 폴더를 쓰면 된다.

EDITOR 뷰 둘러보기​

  1. 같은 창이 새 프로젝트로 들어간 것을 확인한다. 창 제목이 PAIO [AADesign] 이고, 왼쪽 뷰의 머리글이 EDITOR: AADesign 이다.

  2. EDITOR 뷰에 DESIGN 과 MODULE 이 펼쳐져 있는 것을 확인한다. DESIGN 아래에 System, VFB, Interface, DataType, Diagnostic 이, MODULE 아래에 Definition, Configuration 이 있다.

    새 프로젝트의 EDITOR 뷰

    그림 1-3. Create 뒤의 창. ① 창 제목 PAIO [AADesign], ② 뷰 머리글 EDITOR: AADesign, ③ DESIGN 의 행 System, VFB, Interface, DataType, Diagnostic, ④ MODULE 의 행 Definition, Configuration. 창이 프로젝트로 들어갈 때 Welcome 탭이 닫히므로 편집기 영역에는 아직 열린 탭이 없다.

EDITOR 뷰의 각 항목은 다음과 같다.

항목역할이 튜토리얼에서
DESIGN › System차량 네트워크 토폴로지(노드, 커넥터, 클러스터) 편집기이 장, 3장
DESIGN › VFB소프트웨어 컴포지션과 Adaptive Application 편집기이 장, 8장 이후
DESIGN › Interface서비스 인터페이스 편집기5장
DESIGN › DataType데이터 타입 편집기4장
DESIGN › Diagnostic진단 편집기쓰지 않는다
MODULE › Definition, Configuration모듈 정의와 설정쓰지 않는다
DOC프로젝트 문서쓰지 않는다
CODE, EXPORT코드와 익스포트 산출물EXPORT 는 13장

프로젝트를 만든 직후 design/ 에는 IVC.io.model, SYSTEM.io.model, VFB.io.model 세 파일이 있다. 이 장이 끝나면 일곱 파일이 된다.

HPC 노드 만들기​

System 편집기 열기​

  1. 왼쪽 EDITOR 뷰의 DESIGN 아래에서 System 을 클릭한다. 한 번 클릭하면 System 편집기가 열린다.
  2. 탭 AADesign:System 이 열리고 캔버스 왼쪽 위에 System 이 보이는 것을 확인한다. 캔버스는 비어 있다.

캔버스에 HPC 추가하기​

  1. 캔버스의 빈 곳을 마우스 오른쪽 버튼으로 클릭한다. 메뉴에 Add ECU, Add HPC 두 항목이 보인다.

  2. Add HPC 를 클릭한다.

    System 편집기 캔버스 메뉴의 Add HPC

    그림 1-4. 빈 System 편집기 캔버스의 오른쪽 클릭 메뉴. ① Add HPC.

  3. 캔버스에 노드 HPC_0 이 생긴다. 탭 제목 옆에 파란 점(수정됨 표시)이 붙는다.

  4. 노드의 헤더 HPC_0 을 클릭한다. 오른쪽에 제목이 HPC 인 속성 패널이 열린다.

    기본 이름 HPC_0 의 노드

    그림 1-5. 방금 만든 노드. ① 선택된 노드 HPC_0, ② 속성 패널의 NAME 입력란. 아래에 DESCRIPTION, CONNECTORS (No connectors), CONTROLLERS (No controllers), PARTIAL NETWORK 섹션이 있다. 이 장에서는 NAME 만 바꾼다.

이름을 Ecu 로 바꾸기​

  1. 속성 패널의 NAME 입력란에 있는 HPC_0 을 지우고 Ecu 를 입력한다.

  2. Tab 키를 누른다. 캔버스의 노드 헤더가 Ecu 로 바뀐다.

  3. Ctrl+S 를 눌러 저장한다. 탭 제목의 파란 점이 사라진다.

    이름을 Ecu 로 바꾼 노드

    그림 1-6. 저장 뒤의 System 편집기. ① 헤더가 Ecu 로 바뀐 노드, ② NAME 입력란의 Ecu. 탭 AADesign:System 에 수정됨 표시가 없다.

컴포지션 HPC 만들기​

노드에 올릴 소프트웨어 컴포지션은 VFB 편집기에서 만든다.

VFB 편집기에서 컴포지션 추가하기​

  1. EDITOR 뷰의 DESIGN 아래에서 VFB 를 클릭한다. 탭 AADesign:VFB 가 열린다. 루트 컴포지션 System 의 캔버스는 비어 있고, 오른쪽 속성 패널은 요소를 선택할 때까지 닫혀 있다.

  2. 캔버스의 빈 곳을 마우스 오른쪽 버튼으로 클릭한다. 메뉴에 Add Composition, Attach Composition, Add Interface Mapping 세 항목이 보인다.

  3. Add Composition 을 클릭한다. 캔버스에 컴포지션 Composition_0 이 생긴다.

    VFB 루트 캔버스 메뉴의 Add Composition

    그림 1-7. 빈 VFB 루트 캔버스의 오른쪽 클릭 메뉴. ① Add Composition. 탭 표시줄에 AADesign:System 과 AADesign:VFB 가 함께 열려 있다.

이름과 프로토타입 이름을 HPC 로 바꾸기​

  1. 새 컴포지션을 클릭한다. 오른쪽에 제목이 COMPOSITION 인 속성 패널이 열린다.

  2. NAME 입력란에 HPC 를 입력하고 Tab 키를 누른다.

  3. AS PROTOTYPE 입력란에도 HPC 를 입력하고 Tab 키를 누른다.

  4. Ctrl+S 를 눌러 저장한 뒤, PROJECT › Save All 을 클릭한다.

    이름을 HPC 로 바꾼 컴포지션

    그림 1-8. 이름을 바꾼 컴포지션. ① 컴포지션 노드 HPC, ② NAME = HPC, ③ AS PROTOTYPE = HPC. PORTS 는 No ports available, PORT GROUPS 는 No port groups 이다.

주의. NAME 을 바꿔도 AS PROTOTYPE 는 Composition_0 으로 남는다. 두 칸을 모두 HPC 로 입력해야 시스템 매핑과 루트 캔버스의 라벨이 HPC 가 된다.

컴포지션을 노드에 매핑하기​

System 편집기에서 SW Mapping 실행하기​

  1. 탭 AADesign:System 을 클릭해 System 편집기로 돌아간다.

  2. 노드 Ecu 의 빈 몸통을 마우스 오른쪽 버튼으로 클릭한다. 메뉴에 Add Connector, Add Controller, Add Ethernet Switch, Add Gateway, SW Mapping, Extract Machine, Delete 일곱 항목이 보인다.

  3. SW Mapping 에 마우스를 올린다. 하위 메뉴에 HPC 와 New Composition 이 보인다.

  4. HPC 를 클릭한다.

    SW Mapping 하위 메뉴

    그림 1-9. 노드 Ecu 의 오른쪽 클릭 메뉴. ① SW Mapping, ② 하위 메뉴의 HPC, ③ New Composition. 이 튜토리얼에서는 ②를 클릭하고 ③은 쓰지 않는다.

  5. 저장할 것은 없다. 클릭하는 즉시 매핑이 design/SYSTEM.io.model 에 기록되고, 어느 탭에도 수정됨 표시가 붙지 않는다. 캔버스의 노드 헤더는 이제 Ecu [HPC] 이며, 대괄호 안이 매핑된 컴포지션이다.

참고. New Composition 은 노드 이름으로 컴포지션을 새로 만들어 매핑한다. 노드가 Ecu 이므로 컴포지션도 Ecu 가 된다. 이 설계는 노드 Ecu 와 컴포지션 HPC 를 따로 두므로, VFB 에서 만든 HPC 를 SW Mapping › HPC 로 매핑한다.

VFB 편집기에서 매핑 확인하기​

  1. 탭 AADesign:VFB 를 클릭한다.

  2. 루트 캔버스의 컴포지션 라벨이 HPC [Ecu] 로 바뀌고, 헤더 오른쪽에 파란 3단 막대 모양의 머신 아이콘이 붙은 것을 확인한다. 대괄호 안이 매핑된 HPC 노드이다.

    머신 아이콘이 붙은 HPC 컴포지션

    그림 1-10. 매핑 뒤의 VFB 루트 캔버스. ① 컴포지션 HPC [Ecu], ② 헤더 오른쪽의 머신 아이콘. 속성 패널의 NAME 과 AS PROTOTYPE 는 모두 HPC 이다.

Machine Configuration 다이얼로그 열어 보기​

머신 아이콘을 클릭하면 Machine Configuration 다이얼로그가 열린다. 이 장에서는 값을 바꾸지 않고 네 탭을 둘러본 뒤 저장만 한다. 다이얼로그를 처음 열 때 함수 그룹 MachineFG, 프로세서 CPU, 모듈 11개가 기본값으로 채워지고, 다이얼로그 안에서 Ctrl+S 를 눌러야 그 기본값이 머신 파일로 저장된다.

다이얼로그 열기​

  1. 탭 AADesign:VFB 의 × 를 클릭해 탭을 닫는다.
  2. EDITOR 뷰의 DESIGN 아래에서 VFB 를 다시 클릭한다.
  3. 컴포지션 HPC [Ecu] 헤더의 머신 아이콘을 클릭한다. 제목이 Machine Configuration [HPC] 인 다이얼로그가 열린다. 대괄호 안은 컴포지션 이름이다.

주의. 매핑하기 전부터 열려 있던 VFB 탭에서는 머신 아이콘이 보여도 클릭해도 다이얼로그가 열리지 않는다. 1~2번처럼 탭을 닫았다가 다시 열어야 한다. 앱을 다시 시작할 필요는 없다.

MACHINE 탭​

다이얼로그는 MACHINE 탭이 선택된 채 열린다.

Machine Configuration 다이얼로그의 MACHINE 탭

그림 1-11. Machine Configuration [HPC] 다이얼로그. ① MACHINE, ② FUNCTION GROUP, ③ PROCESSES, ④ MODULE 탭. 가운데 캔버스에 머신 Ecu 박스가 있고, 오른쪽 위에 PARA Platform Import 버튼, 오른쪽 아래에 Close 버튼이 있다.

오른쪽 MACHINE 패널에는 다음이 보인다.

항목지금 값비고
OS비어 있음, 빨간 안내 Name is required머신 설정에서 채운다. 지금은 정상이다
TRUSTED PLATFORMNO SUPPORT (선택지 STRICT, MONITOR, NO SUPPORT)바꾸지 않는다
DESCRIPTION비어 있음 (안내 Text)바꾸지 않는다
PROCESSOR › PROCESSORCPU기본값
PROCESSOR › CORE / CORE ID 표Core0 / 0 한 줄, + 버튼(툴팁 Add Core)코어는 머신 설정에서 추가한다
REFERENCED HPCHPC EcuSystem 편집기에서 매핑한 HPC 노드

FUNCTION GROUP 탭​

  1. FUNCTION GROUP 탭을 클릭한다.

  2. 왼쪽 FUNCTION GROUPS 목록에 MachineFG 하나가 있고, 선택된 상태인 것을 확인한다.

    Machine Configuration 다이얼로그의 FUNCTION GROUP 탭

    그림 1-12. FUNCTION GROUP 탭. ① FUNCTION GROUPS 목록(+, −, 번개 아이콘), ② CONFIGURATION 패널, ③ STATE MACHINE 다이어그램.

가운데 CONFIGURATION 패널의 값은 다음과 같다. 모두 기본값이며 이 튜토리얼은 이 함수 그룹을 그대로 쓴다.

항목값
NAMEMachineFG
FUNCTION GROUP › GROUP NAMEMachineState
FUNCTION GROUP › INITIAL MODEOff
MODE DECLARATION 표 (NAME / VALUE / DESCRIPTION)Off, Startup, Shutdown, Restart, Verify (VALUE 는 모두 빈 값)

오른쪽 STATE MACHINE 다이어그램에는 상태 5개와 전이 화살표가 그려져 있고, 초기 상태 표식은 Off 에 붙어 있다.

PROCESSES 탭​

  1. PROCESSES 탭을 클릭한다.

  2. 본문에 No Adaptive Application processes found in this Composition 한 줄만 보이는 것을 확인한다. 아직 Adaptive Application 을 만들지 않았으므로 정상이다.

    Machine Configuration 다이얼로그의 PROCESSES 탭

    그림 1-13. 비어 있는 PROCESSES 탭. 프로세스는 Executable 과 Process에서 생긴다.

MODULE 탭​

  1. MODULE 탭을 클릭한다.

  2. 왼쪽 MODULES 목록에 모듈 11개가 있고 첫 항목 Log and Trace 가 선택된 것을 확인한다.

    Machine Configuration 다이얼로그의 MODULE 탭

    그림 1-14. MODULE 탭. ① MODULES 목록. 모듈마다 앞에 붙은 초록 점은 그 모듈이 켜져 있다는 뜻이다(툴팁 Enabled. Right-click to disable.). 가운데 DLT 탭에는 섹션 DLT ECU 의 ECU ID (비어 있음, 안내 e.g. ECU1)와 DLT APPLICATION 의 No processes configured 가 있다. 오른쪽 DLT HIERARCHY 탭에는 No DLT applications 가 보인다.

목록의 모듈 11개는 순서대로 Log and Trace, Communication Management, State Management, Diagnostic Management, Network Management, Platform Health Management, Time Synchronization, Cryptography, Persistency, Intrusion Detection, Update and Configuration Management 이다. 이 장에서는 어느 것도 바꾸지 않는다.

저장하고 닫기​

  1. 다이얼로그 안에서 Ctrl+S 를 누른다. 어느 탭에서 눌러도 된다.
  2. 오른쪽 아래 Close 버튼을 클릭한다.
  3. PROJECT › Save All 을 클릭한다.

주의. Close 만 누르면 머신 파일이 만들어지지 않는다. 다이얼로그를 열 때 채워지는 기본값은 변경 이력에 남지 않아 저장 확인도 뜨지 않는다. 반드시 다이얼로그 안에서 Ctrl+S 를 누른다. 그래야 design/Module/Machine/Ecu.machine.io.model 이 생긴다.

검증 결과 보기​

  1. 화면 아래 푸터의 왼쪽에서 다섯 번째 아이콘인 V 를 본다. 이미 빨간 배지 1 이 붙어 있고, 툴팁은 Validation: 1 error(s), 0 warning(s), 0 info(s) 이다.

  2. V 아이콘을 클릭해 VALIDATION 패널을 연다.

    오류 1건이 보이는 Validation 패널

    그림 1-15. VALIDATION 패널. 헤더 배지는 1, 열은 ELEMENT TYPE / NAME / DESCRIPTION / CONSTR 이고, 행이 하나 있다.

패널의 한 행은 다음과 같다.

ELEMENT TYPENAMEDESCRIPTIONCONSTR
StateManagementModuleInstantiationSMState-Management module "SM" of machine "Ecu" is missing maxActionListDuration.constr_10641

심각도는 error 이고 정확히 1건이다. 이 결과는 정상이다. 다이얼로그가 기본으로 넣은 State Management 모듈에 아직 값을 주지 않았기 때문이며, 머신 설정에서 Max Action List Duration 을 채우면 사라진다.

왜 이렇게 설계하는가​

  • 노드 Ecu 와 컴포지션 HPC 를 따로 이름 짓는다. 머신 파일, Ethernet 엔드포인트, DLT ECU 경로는 노드 이름 Ecu 를 따르고, 시스템 매핑과 머신 다이얼로그 제목은 컴포지션 이름 HPC 를 따른다. 두 이름이 같으면 이후 장에서 어느 쪽을 가리키는지 구별하기 어렵다.
  • 컴포지션은 VFB 에서 먼저 만들고 System 편집기에서 매핑한다. New Composition 은 컴포지션 이름을 노드 이름으로 정하므로 위 이름 규칙을 지킬 수 없다.
  • 머신 다이얼로그는 값을 바꾸지 않아도 한 번 열어 저장한다. 그래야 함수 그룹 MachineFG, 프로세서 CPU, 모듈 11개의 기본값이 머신 파일에 기록되고, 다음 장부터 그 위에 값을 채울 수 있다.

확인하기​

  • 창 제목이 PAIO [AADesign] 이고, EDITOR 뷰의 DESIGN 아래에 System, VFB, Interface, DataType, Diagnostic 이 보인다.
  • System 편집기(탭 AADesign:System)에 노드 Ecu 하나가 있고 그 헤더가 Ecu [HPC] 이며, 탭에 수정됨 표시가 없다.
  • VFB 편집기(탭 AADesign:VFB)의 루트 캔버스에 컴포지션 HPC [Ecu] 가 있고, 헤더 오른쪽에 머신 아이콘이 붙어 있다.
  • 속성 패널의 NAME 과 AS PROTOTYPE 가 모두 HPC 이다.
  • 머신 아이콘을 클릭하면 Machine Configuration [HPC] 다이얼로그가 열리고, FUNCTION GROUP 탭에 MachineFG, MODULE 탭에 모듈 11개가 있다.
  • 프로젝트 폴더의 design/ 아래에 파일 7개가 있다: IVC.io.model, SYSTEM.io.model, VFB.io.model, Module/Machine/Ecu.machine.io.model, SWC/Composition/HPC.swc.io.model, SWC/Composition/System.swc.io.model, SWC/Layout/System.vfb.layout.
  • VALIDATION 패널에 constr_10641 한 건만 보인다.

다음 단계​

머신 설정에서 Machine Configuration 다이얼로그의 OS, 코어, Log and Trace 의 ECU ID, State Management 의 Max Action List Duration 을 채워 이 장에 남은 오류 1건을 없앤다.