5a96a696b1
- 펌웨어(program), C# 대시보드(TestProgram), 시뮬레이터(Simulator), 프로토콜/문서(Protocol, doc) 전체를 단일 저장소로 통합 - program 폴더의 별도 git 저장소를 제거하고 통합 저장소에 흡수 - 빌드 산출물(program/build, bin/obj, *.o/.elf/.bin/.hex 등) .gitignore 처리 - 사내 Synology NAS Git 원격 연결 예정 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6.2 KiB
6.2 KiB
소스 ↔ 개발사양서 비교 분석 (260520)
- 작성일: 2026-06-02
- 대상 사양서:
각실제어시스템_개발사양서_DL_동작로직_260520.pptx(2026.05.20, 전경선 수석) - 대상 소스:
d:\project\nuvoton\HERV\program\User\(Nuvoton NANO100SE3BN, arm-gnu-gcc 빌드) - 시스템: 각실제어 시스템(DL) — ERV 본체 + 각실 디퓨저(거실=room1, 침실1
3=room24) - 연관 문서:
260602_소스_개발사양서_260318.md
검증 방식: 핵심 항목(자동모드 풍량 산출, 쾌적조리, 스마트수면)은 소스 직접 확인.
0. 260318 → 260520 주요 변경점
- 이력관리에 "2026.05.20 동작로직 수정 (26.04.28 DL 자료 기반) (9~10P)" 추가
- 자동모드 로직 전면 개편 (슬라이드9~10):
- 부하점수(Score) 기반 풍량 단수 결정
- Eco / Normal / Turbo 모드별 임계값 (3세트)
- 4종 센서 (CO2 / PM2.5 / PM10 / VOC) — PM10 추가
- 거실 가중치 및 P_max 강제보상 삭제 → 점수 기반으로 직관적 동작
- 히스테리시스(데드밴드) 모드·센서별 정의
- 용어 변경: 전실모드 → 분산모드, 집중급기 → 집중모드
- 배선도: 각실분배기 PBA가 휴벤ECO에 부착, AC전원 2구 필요
1. ✅ 일치 (260318과 동일 유지)
| 항목 | 사양(260520) | 코드 | 위치 |
|---|---|---|---|
| 집중/분산 판정 | dP = P_max − P_2nd ≥ 2 → 집중, 아니면 분산, P_max=0 → 전체 OFF | (vars[0].value - vars[1].value) >= 2 (qsort 내림차순) |
My_system.c:972, 1080 |
| 집중 시 댐퍼 | P_max 실만 ON(100%), 나머지 OFF | Focus_Mode 시 Focus_Room만 110, 타실 0 | My_system.c:1126~ |
| 안심회복 | 침실1 음압(급기X/배기O), 환기 2단 | 선택실 SA=0/RA=110, 타실 SA=110/RA=0, Fan=2 | My_system.c:732-770 |
| 공청 PM2.5 단계 | 0 |
m_PM2_5_Level 15/30/50/70 |
My_Uart.c:1323-1326 |
| 풍량 CMH | 환기 100/150/200/250, 공청 80/100/120/150, 바이패스 150 | 단계 구조 동일, 공청 EA팬 OFF | MyMotor.c:1294-1307 |
| 디퓨저 LED | 댐퍼 1개라도 열리면 ON, 0~9 디밍, 단색 | SA|RA≠0 → ON, Light_Bright 0~9 |
My_system.c:714-724 |
| 팬 VSP(환기 1~3단) | 1단 EA56/SA57, 2단 61/63, 3단 67/69 | s_FAN*_VEN_* 동일 |
MyControl.c:124-152 |
2. ❌ 핵심 불일치 — 자동모드 로직(26.04.28 개정) 미반영
현재 코드는 개정 전(점수기반 이전) 로직으로, 사양이 삭제하라고 명시한 P_max 기반 동작이 남아 있음.
2.1 풍량 단수 산출 방식 상이 (가장 큰 차이)
- 사양 260520: 부하점수 Score = 4실 Level 합산(0
16) → **0: OFF / 14: 1단 / 58: 2단 / 912: 3단 / 13~16: 4단** - 코드 현재:
- 분산:
Tmp_Air_Volume = 4실 합산후if(>=4) =4(= min(합,4)) —My_system.c:935, 948 - 집중:
Tmp_Air_Volume = vars[0].value(= P_max) —My_system.c:1082
- 분산:
| 예시 (Score) | 사양 최종단수 | 코드 최종단수 |
|---|---|---|
| 합 3 (1,1,1,0) 분산 | 1단 | 3단 |
| 합 6 (2,2,1,1) 분산 | 2단 | 4단(cap) |
| 침실 단독 4 (집중) | 1단 | 4단(P_max) |
| 합 16 (4,4,4,4) | 4단 | 4단 |
→ 슬라이드10 QA 진리표(7개 케이스)로 유닛 테스트 검증 필요.
2.2 Eco / Normal / Turbo 모드별 임계값 미구현
- 사양: 모드별 CO2/PM2.5/PM10/VOC 임계표 3세트
(예: Normal CO2 0
700 / 7011000 / 10011300 / 13011600 / 1601~) - 코드: 단일 임계값
m_*_Level(CO2 600/700/800/900) 한 세트, 모드 분기 없음
2.3 4종 센서 중 PM10 미사용
- 사양: CO2 / PM2.5 / PM10 / VOC 4종으로 Level 산출
- 코드:
room_CVP_quality = CO2 | VOC | PM2.5(3종).SEN66_pm10p0는 수신만 하고 Level 계산에 미사용 —My_system.c:890
2.4 히스테리시스(데드밴드) 부분 적용
- 사양: 모드·센서별 하강 데드밴드 (CO2 −50, PM2.5 −2, PM10 −5, VOC −5/−3)
- 코드: CO2만
CO2_Histeresys=50적용, PM2.5/PM10/VOC 없음 —My_system.c:673
3. ❌ 260318부터 이어진 미반영 (260520에서도 동일)
| 항목 | 사양 260520 | 코드 | 위치 |
|---|---|---|---|
| 쾌적조리 ERV 풍량 | 3단 (각실 급기만 ON) | Tmp_Air_Volume = 4 (4단), Set_Run_Mode = MODE_AUTO |
My_system.c:1026, 1030 |
| 스마트수면 | 1단 고정 / 초기 거실 CLOSE·침실 OPEN / 1시간마다 CO2≥1000 OPEN | 구버전 "자동−1", 전용 댐퍼·CO2 1시간 로직 없음 | My_system.c:1191-1200 |
| 공기질 색상등급 | (구성 변경) | Air_Quality_color_process() return(0) dead code |
My_system.c:1216 |
4. ⚠️ 확인 필요 (변동 없음)
- 팬 VSP 4단: 코드 SA87/EA84 vs 사양(슬라이드11·12) SA86/EA85 (실측 기반) → EEPROM 저장값 확인 권장
- 센서/제어 주기: 사양 "매 제어 주기(예 1분)" (슬라이드10) vs 코드 분배기 폴링 1초
5. 결론
260520의 핵심 개정(자동모드 점수기반 풍량 + Eco/Normal/Turbo + PM10 + 모드별 히스테리시스)은 현재 소스에 거의 미반영 상태. 다만 집중/분산 판정(dP≥2) 및 댐퍼 개폐 패턴은 이미 일치하므로, "풍량 단수 결정 로직"을 점수기반(Score 테이블 매핑)으로 교체하는 것이 핵심 작업.
후속 작업 후보(TODO)
- 자동모드 풍량을 Score(0~16) → 단수(0/1/2/3/4) 테이블 매핑으로 교체 (P_max·cap 방식 제거)
- Eco/Normal/Turbo 모드별 임계표 도입 (현재 단일
m_*_Level→ 3세트) - PM10(
SEN66_pm10p0) Level 산출 반영 (3종 → 4종) - PM2.5/PM10/VOC 히스테리시스 추가
- 쾌적조리 3단 수정, 스마트수면 26.03.18 로직 구현
- 슬라이드10 QA 진리표(7케이스) 기반 검증
부록. 주요 소스 위치
| 파일 | 역할 |
|---|---|
My_system.c |
자동모드 풍량 산출(Air_Quality_damper_process), 집중/분산, 시나리오 모드(Ext_Run_Mode) |
My_Uart.c |
센서 임계값/기본값, 분배기 파싱(Diffuser_parsing), VSP 테스트 |
MyMotor.c |
디퓨저 댐퍼, 팬 속도, BLDC_SPEED_TABLE |
MyControl.c |
팬 duty 기본값 / EEPROM |
My_define.h |
모드·핀·EEPROM 정의 |