온체인지 입력 다운샘플링¶
도입¶
이번 장에서는 다음 사항들을 배우게 됩니다:
- 변경 시에만 실행하는 온체인지 다운샘플링(on-change downsampling) 및 선택적으로 주기적 입력 다운샘플링(cyclic input downsampling)을 사용하여 TCU가 수신하여 처리할 CAN 메시지 수를 줄입니다
- 적절한 다운샘플링 방법을 결정하는 데 도움이 되도록 signal profile(신호 프로필)을 고려합니다
- DOD 버전 관리를 사용해 봅니다
신호 프로필¶
연료 탱크 용량이 500리터이고 평균 연료 소비량이 시간당 20리터인 유압 굴삭기가 있다고 가정해 보겠습니다. 연료 레벨 신호로 측정 가능한 최소 변화 값이 1%라면, 엔진이 고출력으로 작동하는 동안은 약 10분마다, 혹은 공회전 중이라면 약 20분마다 새로운 연료 레벨 값(매번 1%씩 감소)을 TCU에 전송해야 합니다.
Signal profile(신호 프로필)이라는 용어는 신호 값이 변경될 때의 시간 차이 Δt와 변화량 차이 |Δx|(즉, 신호 값 변경 분포)를 의미합니다.
위에서 설명한 연료 레벨의 경우 :
Δt_min = 10분,Δt_mean = 15분,Δt_max = 20분|Δx_min| = |Δx_mean| = |Δx_max| = 1%
간단하게 요약하자면, 추가 급유 하지 않는 다는 가정하에, 연료 레벨의 프로필은 기계 작동 중 10~20분마다 1%씩 감소하는 것입니다.
Info
여기서는 신호분해능(signal resolution)이 비트당 1%이므로, 1%씩의 변화량을 보기에는 복잡하지 않습니다. 신호분해능이 관찰하고자 하는 최소 단위 변화량과 상이한 경우는 다른 장에서 다루겠습니다.
Note
실제 시스템에서는, 센서의 부정확성으로 인해 연료 레벨이 불안정하게 등락을 보이거나, 한 번에 1% 이상 변화할 수도 있습니다. 이러한 상황에 대처하는 방법은 다른 장에서 살펴보겠습니다.
온체인지 다운샘플링¶
이전 장에서는, 1초에 한 번 CAN 버스로 전송되는 fuel_level 신호가 다운샘플링되면서 1분당 하나의 CAN 메시지를 기록함으로써 상당한 비용을 절감할 수 있는 방법을 살펴보았습니다.
그러나 신호 프로필로 인해 1분에 한 번씩 기록하는 것은 실제 필요 이상으로 과할 수 있습니다. 변경 사항이 있을 시에만 실행하는 On-Change Downsampling(온체인지 다운샘플링)을 사용하면, TCU는 데이터 바이트가 변경될 때, 즉 신호 값이 변할 때만 CAN 메시지를 수신하여 처리 진행되도록 설정할 수 있습니다.
이전 장에서 생성한 DOD를 사용하여 다운샘플링 방법을 변경합니다.

DOD 버전 관리¶
TCU에 DOD를 전송하고 새로운 기능을 테스트하기 전에, 버전 관리(versioning)의 중요성을 강조할 필요가 있습니다. 단일 TCU에서는 어떤 DOD가 기록되었는지 쉽게 알 수 있지만, 10,000개의 TCU를 DOD 버전 관리 없이 작업하기에는 매우 벅찬 과제가 될 것입니다.
Device Configuration Version String 파라미터의 값은 DataPlatform으로 전송되는 모든 로그 파일에 기록됩니다. TCU가 DataPlatform으로 데이터를 전송할 때마다 어떤 DOD가 데이터 로그에 사용되었는지 알 수 있습니다.

DOD 템플릿의 DOD 버전은 PROEMION Default로 세팅되어 있습니다. 1a으로 변경하여 봅시다.

간단한 DOD 버전 관리 전략 이용법:
#a-> 알파 버전에 사용. DOD를 개발하는 기술자 전용#b-> 베타 버전에 사용. 더 넓은 범위 테스트용으로, 전체 플릿의 소규모 하부 집합 단위에서 사용#r-> 일반 버전에 사용. 일반 릴리즈용으로, 플릿 전체로 전개 시 사용
#의 숫자는 항상 상향 조정.
Tip
실수로 이전 파일을 덮어쓰지 않으려면, 변경 작업 시작 전에 DOD를 다른 파일로 저장하세요.
CAN 데이터 전송하기¶
이전 장에서 CAN을 통해 DOD를 TCU로 전송하는 방법을 배웠습니다. 버전 1a에서도 동일한 방법으로 테스트 데이터를 준비해 보겠습니다.
fuel_level 값을 100%, 99%, 98%, 그리고 다시 100%로 빠르게 연속해서 전송해 보겠습니다.

https://dataportal.proemion.com > Reports > Reporting Tools > Plots에서 로그된 포인트들을 확인할 수 있습니다.
Warning
DataPortal에 데이터가 표시되지 않는다면, TCU가 아직 로그 파일을 DataPlatform으로 보내지 않았기 때문일 수 있습니다. Configurator를 사용하여 이전 장에서 설명한 대로 Logging - Send File Command 파라미터를 설정합니다.
Tip
새로운 기능을 확인하려면, 단일 CAN 메시지를 전송한 다음 Logging - Send File Command을 설정하고 DataPortal 장비 페이지에서 결과를 점검하는 것이 유용할 때가 많습니다.
DOD 버전 관리 점검¶
각 DOD가 TCU에 설치된 날짜와 시간은 DataPortal에서 확인할 수 있습니다.
https://dataportal.proemion.com > Settings > Communication Unit Management > Firmware and Configuration Updates > Details