본문으로 건너뛰기

검증

이 장에서 할 일​

이 장에서는 LIN 버스까지 마친 토폴로지에 결함 세 개를 일부러 넣고, PAIO 검증이 그것을 어떻게 보고하는지 본다. PAIO 는 열려 있는 프로젝트를 스스로 검증하므로, 푸터의 V 아이콘으로 VALIDATION 패널을 열어 오류 세 행과 배지 3 을 읽기만 하면 된다. 그다음 행을 클릭해 문제 요소 가까이로 이동하고, 화면에서 값을 고쳐 저장한다.

고칠 곳은 세 군데이다. HPC 의 이더넷 커넥터 EthernetConnector 의 유니캐스트 주소를 192.168.0.11 로 되돌리고, SLAVE_ECU 의 LIN 커넥터 LinConnector 에 컨트롤러 LinSlaveController 를 다시 지정하고, LIN 슬레이브 컨트롤러 LinSlaveController 의 프로토콜 버전을 LIN 2.0 으로 되돌린다. HPC 의 커넥터를 처음부터 끝까지 절차로 보이고, 나머지 둘도 같은 흐름으로 따라간다.

이 장을 마치면 VALIDATION 패널에 No validation issues. 가 보인다. 고친 토폴로지는 LIN 버스를 마친 설계와 같아진다.

시작하기 전에​

  • LIN 버스를 마친 상태에서 시작한다. 이때 VALIDATION 패널에는 No validation issues. 가 보인다.
  • 이 장의 화면은 그 설계에 아래 결함 세 개가 들어 있는 상태이다. 편집기는 하나도 열려 있지 않고, VALIDATION 패널도 닫혀 있다.
결함위치원래 값바뀐 값
HPC 커넥터의 유니캐스트 주소가 멀티캐스트 주소임노드 HPC 의 EthernetConnector › UNICAST IPV4 ADDRESS192.168.0.11224.0.0.1
SLAVE_ECU 커넥터에 컨트롤러가 없음노드 SLAVE_ECU 의 LinConnector › CONTROLLERLinSlaveController빈 값(Select controller...)
LIN 슬레이브 컨트롤러에 프로토콜 버전이 없음노드 SLAVE_ECU 의 LinSlaveController › PROTOCOL VERSIONLIN 2.0빈 값(켜진 버튼 없음)

참고. 결함 세 개는 모두 화면에서 만들 수 있다. EDITOR 뷰의 DESIGN 아래에서 System 을 클릭해 탭 TopologyDesign:System 을 열고, 아래처럼 바꾼 뒤 Ctrl+S 로 저장한다. 저장한 다음 탭 TopologyDesign:System 의 × 를 클릭해 탭을 닫고, VALIDATION 패널이 열려 있으면 푸터의 V 아이콘을 클릭해 닫는다. 그래야 이 장의 화면(그림 6-1)과 같은 상태에서 시작한다. 첫째는 HPC 의 EthernetConnector 를 클릭하고 UNICAST IPV4 ADDRESS 에 224.0.0.1 을 입력한 뒤 Tab 키를 누르면 된다. 칸은 이 값을 그대로 받아들이고 오류로 표시하지 않는다. 둘째는 SLAVE_ECU 의 LinConnector 를 클릭하고 CONTROLLER 칸 안, 아래 화살표 왼쪽의 ×(Clear Controller)를 클릭하면 된다. 칸이 Select controller... 로 바뀌고, 라벨이 빨개지며 안내문 Controller is required 가 보인다. × 는 칸에 값이 있을 때만 보인다. 셋째는 LinSlaveController 를 클릭하고 PROTOCOL VERSION 아래에서 켜져 있는 LIN 2.0 을 한 번 더 클릭해 끄면 된다. 켜진 버튼이 하나도 남지 않는다.

이 장에서 키보드로 입력하는 값은 UNICAST IPV4 ADDRESS 의 192.168.0.11 하나뿐이다. 나머지는 클릭, 드롭다운 선택, Ctrl+S 이다.

검증을 돌리고 VALIDATION 패널 읽기​

VALIDATION 패널 열기​

  1. 화면 왼쪽 아래 푸터의 V 아이콘을 본다. PAIO 는 편집기를 열지 않아도 열려 있는 프로젝트를 스스로 검증하므로, 아이콘에는 이미 빨간 배지 3 이 붙어 있다. 아이콘에 마우스를 올리면 툴팁이 Validation: 3 error(s), 0 warning(s), 0 info(s) 이다.

  2. 푸터의 V 아이콘을 클릭한다. 화면 아래에 VALIDATION 패널이 열린다. 제목 옆에 빨간 배지 3(툴팁 3 error(s))이 있고, 열 머리글은 ELEMENT TYPE, NAME, DESCRIPTION, CONSTR 이다. 그 아래 오류 세 행이 있다.

    결함 세 개가 있는 토폴로지를 검증한 VALIDATION 패널

    그림 6-1. 패널을 연 화면. ① 푸터의 V 아이콘(배지 3), ② 오류 세 행, ③ 패널 제목 VALIDATION 옆의 배지 3. 편집기는 열려 있지 않아 가운데는 빈 편집기 영역(Open a file to start editing)이다. 기본 열 너비에서는 NAME 과 DESCRIPTION 이 … 로 잘린다.

열 읽기​

패널의 한 행은 오류 하나이다. 열의 뜻은 다음과 같다.

열내용
ELEMENT TYPE문제가 있는 요소의 종류
NAME그 요소의 이름. SLAVE_ECU/LinConnector 처럼 노드 이름이 앞에 붙는 행도 있다
DESCRIPTION무엇이 잘못됐는지 설명하는 문장
CONSTRAUTOSAR 제약 번호(constr_*)
  1. 글자가 잘려 보이면 NAME 과 DESCRIPTION 머리글의 오른쪽 경계를 오른쪽으로 끌어 넓힌다. 이 단계는 선택 사항이다. 넓히면 세 문장이 모두 끝까지 보인다.

    NAME 과 DESCRIPTION 열을 넓혀 세 문장이 모두 보이는 패널

    그림 6-2. NAME 과 DESCRIPTION 열을 넓힌 VALIDATION 패널. ① constr_3288 행, ② constr_5398 행, ③ constr_5449 행.

세 행은 패널 순서대로 다음과 같다. 모두 오류이다.

#ELEMENT TYPENAMEDESCRIPTIONCONSTR
1EthernetCommunicationConnectorEthernetConnectorConnector "EthernetConnector" unicast IPv4 "224.0.0.1" is not in the unicast range (first octet 224 > 223).constr_3288
2CommunicationConnectorSLAVE_ECU/LinConnectorConnector "LinConnector" on "SLAVE_ECU" has no commController reference; each CommunicationConnector shall reference exactly one communication controller.constr_5398
3LinSlaveSLAVE_ECU/LinSlaveControllerLIN slave controller "LinSlaveController" on "SLAVE_ECU" has no protocolVersion.constr_5449

참고. 행은 한 번 클릭 하면 이동한다. 이동할 수 있는 행에 마우스를 올리면 툴팁 Go to the element to fix 가 뜬다. 이 장의 세 행 가운데 결함이 있는 요소의 속성 패널을 바로 여는 것은 constr_5398 행뿐이다. 나머지 두 행은 그 요소 가까이까지만 이동하므로, 고칠 요소는 캔버스에서 직접 클릭한다.

HPC 커넥터의 유니캐스트 주소 고치기​

행을 클릭해 System 편집기로 이동하기​

  1. VALIDATION 패널의 첫째 행(constr_3288)을 클릭한다. System 편집기 탭 TopologyDesign:System 이 열리고, 노드 ZONE 의 이더넷 커넥터 EthernetConnector 가 선택된다. 오른쪽 속성 패널의 제목은 ETHERNET CONNECTOR, CONTROLLER 는 EthernetCommController, UNICAST IPV4 ADDRESS 는 192.168.0.19 이다. VALIDATION 패널은 열린 채로 남는다.

    constr_3288 행을 클릭해 선택된 ZONE 의 이더넷 커넥터

    그림 6-3. 첫째 행을 클릭한 결과. ① constr_3288 행, ② 새로 열린 탭 TopologyDesign:System, ③ 선택된 ZONE 의 이더넷 커넥터(캔버스 아래쪽), ④ UNICAST IPV4 ADDRESS = 192.168.0.19. EDITOR 뷰에서는 DESIGN 아래의 System 이 강조된다.

주의. 이 행은 결함이 있는 HPC 의 커넥터가 아니라 ZONE 의 커넥터로 이동한다. 두 노드의 이더넷 커넥터 이름이 똑같이 EthernetConnector 이고, 행은 그중 ZONE 쪽을 고른다. 캔버스의 빨간 검증 표시도 ZONE 의 커넥터에 붙는다. ZONE 커넥터의 값은 바꾸지 않는다.

HPC 커넥터 선택하기​

  1. 캔버스 아래 툴바의 Fit to View 를 클릭한다. 노드 네 개가 모두 보인다.

  2. 노드 HPC 의 아래 가장자리에 있는 커넥터(EthernetConnector)를 클릭한다. 패널 제목은 그대로 ETHERNET CONNECTOR 이고, CONTROLLER 는 EthernetController 이다. UNICAST IPV4 ADDRESS 와 MULTICAST IPV4 ADDRESS 가 둘 다 224.0.0.1 이다.

    HPC 커넥터의 UNICAST IPV4 ADDRESS 와 MULTICAST IPV4 ADDRESS

    그림 6-4. HPC 의 커넥터를 선택한 화면. ① HPC 의 커넥터, ② UNICAST IPV4 ADDRESS = 224.0.0.1, ③ MULTICAST IPV4 ADDRESS = 224.0.0.1. 빨간 검증 표시는 아직 ZONE 의 오른쪽 커넥터에 남아 있다.

참고. UNICAST IPV4 ADDRESS 칸은 224.0.0.1 을 오류로 표시하지 않는다. 이 결함은 VALIDATION 패널에서만 보인다.

192.168.0.11 입력하기​

  1. UNICAST IPV4 ADDRESS 의 224.0.0.1 을 지우고 192.168.0.11 을 입력한 뒤 Tab 키를 누른다. ADDRESS SOURCE 의 FIXED 와 MULTICAST IPV4 ADDRESS 는 그대로 둔다.

  2. 탭 TopologyDesign:System 의 이름 옆에 파란 점(수정됨 표시)이 붙는다. 저장하지 않아도 VALIDATION 패널이 바로 두 행으로 줄고, 패널 제목 옆과 푸터의 배지가 2 가 된다. ZONE 커넥터의 빨간 표시도 사라진다.

    UNICAST IPV4 ADDRESS 를 192.168.0.11 로 고친 HPC 커넥터

    그림 6-5. 고친 뒤의 화면. ① HPC 의 커넥터, ② UNICAST IPV4 ADDRESS = 192.168.0.11. VALIDATION 패널에는 constr_3288 이 빠진 두 행이 남는다.

SLAVE_ECU 커넥터에 컨트롤러 지정하기​

커넥터 선택하기​

  1. VALIDATION 패널의 constr_5398 행(이제 첫째 행)을 클릭한다. 이번에는 행이 결함이 있는 요소 자체, 곧 노드 SLAVE_ECU 의 위 가장자리에 있는 커넥터(LinConnector)를 선택하므로 캔버스를 클릭할 필요가 없다.

  2. 속성 패널을 확인한다. 패널 제목은 LIN CONNECTOR 이고, CONTROLLER 에는 기울임꼴 안내 글자 Select controller... 가, CONNECTED CHANNEL 에는 LinCluster / PhysicalChannel 이 보인다. CONTROLLER 는 필수 입력란이라 라벨이 빨갛고 안내문 Controller is required 가 보인다. 캔버스에는 이 커넥터와 컨트롤러를 잇는 주황 선이 없다.

    컨트롤러가 비어 있는 SLAVE_ECU 의 LIN 커넥터

    그림 6-6. constr_5398 행을 클릭한 결과. ① constr_5398 행, ② 선택된 SLAVE_ECU 의 커넥터, ③ 빨간 라벨과 Controller is required 가 보이는 CONTROLLER = Select controller....

LinSlaveController 고르기​

  1. CONTROLLER 칸을 클릭한다. 칸이 안내 글자 Type to search... 가 있는 검색 칸으로 바뀌고, 목록에는 LinSlaveController 하나만 보인다.

    CONTROLLER 목록의 LinSlaveController

    그림 6-7. 열린 CONTROLLER 목록. ① SLAVE_ECU 의 커넥터, ② CONTROLLER 칸(Type to search...), ③ 하나뿐인 항목 LinSlaveController.

  2. LinSlaveController 를 클릭한다. VALIDATION 패널이 한 행으로 줄고 배지가 1 이 된다.

캔버스에는 커넥터와 컨트롤러를 잇는 주황 선이 다시 생긴다(그림 6-9).

LIN 슬레이브 컨트롤러의 프로토콜 버전 고르기​

행을 클릭해 SLAVE_ECU 로 이동하기​

  1. constr_5449 행(이제 하나 남은 행)을 클릭한다. 노드 SLAVE_ECU 가 선택되고 노드 안이 빨갛게 칠해진다. 패널 제목은 ECU, NAME 은 SLAVE_ECU 이다. 이 행은 컨트롤러가 아니라 컨트롤러가 들어 있는 노드를 고른다.

    constr_5449 행을 클릭해 선택된 노드 SLAVE_ECU

    그림 6-8. constr_5449 행을 클릭한 결과. ① constr_5449 행, ② 빨갛게 표시된 노드 SLAVE_ECU 의 머리글, ③ 패널 제목 ECU. VALIDATION 패널에는 한 행이 남아 있다.

LIN 2.0 고르기​

  1. 노드 SLAVE_ECU 안의 컨트롤러 사각형(LinSlaveController)을 클릭한다. 패널 제목은 LIN SLAVE 이고, LIN SETTINGS 의 PROTOCOL VERSION 은 LIN 1.3, LIN 2.0, LIN 2.1, LIN 2.2, ISO 17987 버튼 묶음이며 켜진 버튼이 없다. CONTROLLER 와 달리 이 칸은 빨갛게 표시되지 않는다.

  2. PROTOCOL VERSION 아래에서 LIN 2.0 을 클릭한다. 버튼이 켜지고 VALIDATION 패널에서 마지막 행이 사라져 No validation issues. 가 보인다. 패널 제목 옆과 푸터 V 아이콘의 배지도 사라진다.

    PROTOCOL VERSION 을 LIN 2.0 으로 고른 LinSlaveController

    그림 6-9. 고친 뒤의 화면. ① SLAVE_ECU 안의 컨트롤러 사각형, ② PROTOCOL VERSION = LIN 2.0. 커넥터와 컨트롤러 사이에 주황 선이 다시 보이고, VALIDATION 패널에는 No validation issues. 가 보인다.

세 행을 클릭했을 때 선택되는 것과 실제로 고칠 요소를 모으면 다음과 같다.

행클릭하면 선택되는 것고칠 요소
constr_3288탭 TopologyDesign:System 이 열리고 ZONE 의 EthernetConnectorHPC 의 EthernetConnector 를 직접 클릭
constr_5398SLAVE_ECU 의 LinConnector(패널 LIN CONNECTOR)선택된 커넥터 그대로. 캔버스를 클릭할 필요 없음
constr_5449노드 SLAVE_ECU(패널 ECU)노드 안의 LinSlaveController 를 한 번 더 클릭

저장하고 다시 검증하기​

  1. 노드가 없는 빈 캔버스를 클릭한다. 속성 패널이 닫힌다.

  2. Ctrl+S 를 눌러 저장한다. 탭 TopologyDesign:System 의 파란 점이 사라진다.

  3. 열린 채로 있는 VALIDATION 패널을 본다. 여전히 No validation issues. 가 보이고, 패널 제목 옆과 푸터의 V 아이콘에는 배지가 없다.

    세 결함을 고친 뒤 다시 검증한 화면

    그림 6-10. 저장한 뒤의 화면. ① 배지가 없는 푸터의 V 아이콘, ② No validation issues. 행. 속성 패널은 닫혀 있다.

참고. 빈 캔버스를 클릭해 속성 패널을 닫으면 캔버스 배율이 Fit to View 를 누르기 전(그림 6-3)의 배율로 돌아간다. 그래서 그림 6-10 에서는 아래쪽의 SLAVE_ECU 와 ZONE 이 VALIDATION 패널 위에서 잘려 보인다. 화면 배율만 바뀐 것이고 설계는 그대로이다. Ctrl+S 는 배율을 바꾸지 않는다.

참고. 건수가 0으로 돌아오면 V 아이콘의 배지는 사라지지만, V 아이콘의 툴팁에는 마지막 건수 Validation: 1 error(s), 0 warning(s), 0 info(s) 가 그대로 남는다. 현재 결과는 VALIDATION 패널에서 확인한다.

패널은 값을 고칠 때마다 저장하지 않아도 다시 계산되므로, 이 단계는 저장한 뒤에도 결과가 같은지를 확인하는 것이다. 고칠 때마다 배지는 다음과 같이 줄어든다.

고친 뒤패널에 남은 행패널 배지푸터 배지
시작333
HPC 커넥터 UNICAST IPV4 ADDRESS → 192.168.0.112 (constr_5398, constr_5449)22
SLAVE_ECU 커넥터 CONTROLLER → LinSlaveController1 (constr_5449)11
LinSlaveController PROTOCOL VERSION → LIN 2.00 (No validation issues.)없음없음
Ctrl+S 로 저장0 (No validation issues.)없음없음

세 결함을 고치면 남는 행이 없다. 고친 세 값은 LIN 버스를 마친 설계와 같다.

왜 이렇게 설계하는가​

  • 유니캐스트 주소는 노드 하나의 주소이다. 224.0.0.1 은 이더넷 버스에서 MULTICAST IPV4 ADDRESS 에 넣은, SOME/IP 서비스 디스커버리(SD)에 쓰는 멀티캐스트 주소이다. 유니캐스트 주소는 첫 옥텟이 223 이하여야 하므로 검증은 first octet 224 > 223 으로 이 값을 거부한다. HPC 자신의 주소는 참조 설계의 HPC_Endpoint 인 192.168.0.11 이다.
  • 커넥터는 컨트롤러 하나를 가리켜야 한다. 문장 그대로 each CommunicationConnector shall reference exactly one communication controller. 이다. 커넥터는 컨트롤러를 거쳐 버스에 붙으므로, 컨트롤러가 없으면 캔버스에서도 둘을 잇는 주황 선이 사라진다.
  • LIN 컨트롤러에는 프로토콜 버전이 필요하다. 참조 설계의 LinSlaveController 는 프로토콜 버전 LIN20 을 가지며, PROTOCOL VERSION 의 LIN 2.0 이 이 값에 해당한다. LIN 버스의 "이 장에서 넣지 않는 값"에서 이 대응을 설명한다.

확인하기​

  • VALIDATION 패널에 No validation issues. 가 보인다.
  • VALIDATION 패널 제목 옆과 푸터 V 아이콘에 배지가 없다.
  • HPC 의 EthernetConnector 를 선택하면 UNICAST IPV4 ADDRESS 가 192.168.0.11, MULTICAST IPV4 ADDRESS 가 224.0.0.1 이다.
  • ZONE 의 EthernetConnector 의 UNICAST IPV4 ADDRESS 는 192.168.0.19 그대로이다.
  • SLAVE_ECU 의 LinConnector 를 선택하면 CONTROLLER 가 LinSlaveController 이고, 캔버스에 커넥터와 컨트롤러를 잇는 주황 선이 있다.
  • LinSlaveController 를 선택하면 PROTOCOL VERSION 이 LIN 2.0 이다.
  • 탭 TopologyDesign:System 에 수정됨 표시가 없다.

다음 단계​

ARXML 익스포트에서 고친 토폴로지를 ARXML 파일로 내보내고 참조 설계와 비교한다.