Inverter R&D · 데이터 안내서

인버터에서 무슨 데이터가 들어오고,
그걸 어떻게 가공해야 기능이 되나

전기·통신을 모르는 사람도 읽을 수 있게 쓴 안내서입니다. 마이크로인버터에서 실제로 들어오는 원시 숫자가 무엇이고, 그 숫자들을 어떻게 계산·가공해야 화면에서 보는 기능(발전량·효율·고장알림·예측)이 만들어지는지를 그림으로 정리했습니다.

대상 기기: TSUN G4 마이크로인버터 · 350W · 1채널 데이터 길: 무선/유선 → 수집기(DTU) → 서버
독자 페이지(추후 통합) · 디자인 임시(추후 교체) · 수치는 사양·문서 기반, 실측 검증 전

용어 — 딱 5개만 알면 됩니다

쉬운 뜻
RAW(원시) 데이터인버터가 보내는 가공 전 날것의 숫자. 예: "지금 전압 2301".
레지스터인버터 안의 '정보 칸' 하나. 칸마다 번호(주소)가 있고, 읽으면 숫자 하나가 나옴.
주소그 칸의 번지수. 0x1200처럼 적음(0x = 16진수 표기).
계수(Unit rate)인버터는 소수점을 못 보내 정수로만 줌. 그래서 받은 값에 계수를 곱해야 진짜 값. 예: 2301 × 0.1V = 230.1V.
가공받은 RAW를 계산·비교·학습해 사람이 쓰는 정보로 바꾸는 일. 이 문서의 핵심.
한 줄 요약: 화면의 모든 숫자·그래프·알림은 RAW 데이터 몇 개를 "가공"한 결과. 아래는 그 레시피를 기능마다 그림으로 보여줍니다.

가장 기초 — 전선 2가닥으로 숫자를 보내는 법 (RS-485)

모든 데이터는 결국 전선에 1과 0을 빠르게 실어 보내는 데서 시작합니다. 산업용 기기는 전선 2가닥(A·B)에 서로 반대 전압을 실어 보내는 RS-485 방식을 씁니다(두 선의 차이로 0/1을 읽어 노이즈에 강함). 1초에 9600번(=9600 baud) 신호를 바꾸므로 1비트 ≈ 0.0001초로 눈에는 순식간이에요. 아래는 그 과정을 아주 느리게 재생한 애니메이션입니다.

보내는 값:
지금 비트:
모인 2진수:
→ 16진수 / 정수:
두 바이트 합치기:   →   실제값 —
 예시: A상 전압 레지스터 0x1200 응답 = 2바이트

프레임 한 묶음 = 대기(1) → 시작비트(0) → 데이터 8비트(작은 자리부터) → 정지비트(1). 8비트가 모이면 한 바이트(0~255). 전압 같은 큰 값은 2바이트를 이어 붙여 만듭니다. 위 애니메이션이 바로 RAW 숫자가 만들어지는 순간 — 비트 → 바이트 → 정수 → ×계수 → 실제값까지 보여줍니다.

참고: 위 애니메이션은 이해를 위해 데이터 2바이트(08 FD)만 따로 보여줍니다. 실제 Modbus 한 묶음은 이 데이터 앞뒤로 [슬레이브 주소][기능코드][바이트 수] … [CRC 오류검출]로 감싸여 전송됩니다(전체 프레임 구성은 §1 ③ 응답 패킷 표 참고).

왜 2줄(A·B)인가: RS-485는 전선 A·B 두 가닥을 씁니다. A선이 1이면 B선은 0, A가 0이면 B는 1 — 항상 서로 반대예요. 받는 쪽은 한 선의 절대 전압이 아니라 A−B(두 선의 차이)로 1/0을 판별합니다. 그래서 주변 노이즈가 껴도 두 선이 똑같이 흔들려 차이는 그대로 → 잡음에 강함(=공장처럼 시끄러운 환경에서 쓰는 이유). 위 애니메이션의 위/아래 줄이 바로 A·B입니다.
왜 이게 중요한가: §1·§5의 "받은 값 × 계수 = 실제값"이 바로 이 비트들이 모여 만든 정수에 적용되는 것. 즉 여기가 모든 RAW 데이터의 출발점입니다.

0데이터가 오는 길 — 무선(RF)이 진짜 출발점

방금 본 전선 전송은 "수집기 ↔ 서버" 구간에서 쓰입니다. 그런데 인버터는 멀리 떨어진 패널 옆에 있어, 먼저 무선(RF)으로 자기 상태를 쏘고(이때 쓰는 신호 규칙은 제조사가 만든 자체 통신규격), 그걸 받아 정리하는 중간 장치(DTU=수집기)가 따로 있습니다. 인버터가 Modbus로 말하는 게 아닙니다.

인버터 (패널 옆)전기를 만들며 상태를
무선(RF)으로 쏨
RF · 자체 통신규격
(제조사 고유)
DTU (수집기)RF를 받아 숫자로
형성·정리
정리된 데이터
MQTT / 자체 프로토콜
서버저장·계산·화면·알림

① 공식 수집기 — DTU-Pro-S

정품 수집기. 인버터 RF(제조사 자체 통신규격)를 받아, 서버에는 제조사 자체 프로토콜(S-Miles 등)로 내보냄.
즉 인버터도 수집기도 Modbus가 아닌 자체 규격을 씀. 수집기는 RF를 받아 다시 포장하는 중계기. 느림(약 120초), 인버터 1대 단위 요약.

② 직접 만든 수집기 — OpenDTU

그 RF 자체 통신규격을 직접 해독(reverse-engineering, 일종의 신호 해킹)한 오픈소스 수집기. 작은 칩(ESP32+무선모듈)이 RF를 가로채 읽고, 서버에는 MQTT로 내보냄. 빠름(약 5초), 패널 단위로 촘촘 → AI·세밀 분석에 유리.

잠깐 — MQTT · Modbus · 자체 프로토콜이 뭐가 다른가

통신 규격방식특징여기서
MQTT발행/구독 (push)값이 바뀌면 곧바로 밀어줌. 가볍고 실시간. 사물인터넷 표준.OpenDTU → 서버
Modbus요청/응답 (polling)마스터가 물어볼 때만 답함. 산업 표준, 단순·견고.TSUN 레지스터(§5)
자체 프로토콜제조사 고유제조사가 비공개로 만든 규칙. 인버터↔DTU의 RF, DTU-Pro-S→서버.Hoymiles RF / DTU-Pro-S

셋 다 "통신 규격(데이터를 주고받는 약속)"이라는 점은 같습니다. MQTT는 밀어주기(push)·Modbus는 물어보기(poll)가 핵심 차이.

핵심 정정: 인버터 ↔ 수집기 = 무선(RF) + 제조사 자체 통신규격. 수집기 → 서버 = MQTT(OpenDTU) 또는 자체 프로토콜(DTU-Pro-S). TSUN의 Modbus(§5)는 유선/레지스터로 값을 읽는 별도 경로.

1인버터에서 들어오는 원시(RAW) 데이터

우리가 쓰는 TSUN G4(350W·1채널=태양광 입력 1줄)에서 읽는 값들. 같은 값도 수집기마다 이름·단위가 달라 "통일 이름"으로 묶어 다룹니다. DC=태양광 입력 AC=출력(전력망) 상태/안전

받은 값이 실제값이 되기까지 (변환 과정 자세히)

# RS-485로 도착한 응답 안의 데이터 바이트를 꺼내 계산 1) 받은 바이트(16진수) : 08 FD (2바이트 = U16 한 칸) 2) 정수로 해석 : 0x08FD = 8×256 + 253 = 2301 3) 계수 곱하기 : 2301 × 0.1V = 230.1 V ← 실제 전압 # 형식별 처리 U16 : 2바이트 → 0~65535 정수 (예: 전압·전류) U32 : 4바이트 → 상위 2바이트·하위 2바이트 이어 붙임 (예: 누적 발전량) s16 : 2바이트, 맨 앞 비트가 1이면 음수 (예: 배터리 전류 = 충전(+)/방전(−)) 온도 : 계수 대신 값 − 40 (예: 85 → 45℃)

왜 "0x1200"이 230.1V가 되나 — 주소·진수·바이트순서·CRC까지

0x1200은 "값"이 아니라 "번지수(주소)"예요. 230.1V가 곧 0x1200인 게 아니라, 0x1200번 칸을 읽어달라고 요청하면 인버터가 그 칸의 내용물을 돌려줍니다. 우편함 비유 = 0x1200은 몇 호 우편함, 2301은 그 안의 쪽지.

① 0x는 뭔가요? — 16진수 표기
0x = "이 숫자는 16진수"라는 꼬리표. 16진수는 0~9 다음 A~F를 써서 한 자리에 16가지를 셈. 0x08 = 8 0x0F = 15 0xFD = 15×16 + 13 = 253 왜 16진수? 1바이트(8비트)가 딱 두 자리 0x00~0xFF(0~255)로 떨어져 읽기 편함.
② 요청 패킷 — 마스터의 질문 01 03 12 00 00 01 CRC (한 바이트씩)
바이트설명
01슬레이브 주소몇 번 인버터에게 (1번)
03기능코드"읽어줘"(0x03)
12 00시작 주소0x1200 칸부터
00 01읽을 개수1칸
CRC오류검출 (2B)⑤ 참고
③ 응답 패킷 — 인버터의 답 01 03 02 08 FD CRC
바이트설명
01 03주소·기능코드1번 인버터, 읽기 응답
02데이터 길이이어지는 데이터가 2바이트
08 FD데이터← 0x1200 칸의 내용
CRC오류검출
④ 08 FD가 왜 2301인가 — 진수 변환 + 바이트 순서(엔디안)
받은 2바이트: 08 FD (상위 바이트가 먼저 = 빅엔디안) 상위 0x08 = 8 하위 0xFD = 253 합치기: 8 × 256 + 253 = 2301 × 계수 0.1V → 230.1 V ※ 바이트 순서(엔디안) = 어느 바이트를 앞에 두느냐. 빅엔디안(상위 먼저, 08 FD) → 2301 ← Modbus 레지스터 값은 보통 이쪽 리틀엔디안(하위 먼저, FD 08) → 64776 (거꾸로 읽으면 완전히 틀린 값!) → 그래서 규격에서 바이트 순서를 꼭 확인해야 함.
⑤ CRC — 데이터가 깨졌는지 검사

전선·무선은 노이즈로 비트가 뒤집힐 수 있어요. CRC는 앞 내용 전체로 계산한 검사 숫자(2바이트)입니다. 받는 쪽이 같은 방법으로 다시 계산해 붙어온 CRC와 같으면 정상, 다르면 도중에 깨진 것 → 버리고 다시 요청. (바코드 끝자리·주민번호 끝자리 검증과 같은 원리.)

직접 변환해 보기 — 받은 바이트를 넣으면 실제값으로

받은 바이트(16진수) 항목 230.1 V
통일 이름무슨 값단위OpenDTU
(MQTT)
DTU-Pro-S
(자체 프로토콜)
TSUN
(Modbus·레지스터)
dc.voltage DC태양광 입력 전압V<sn>/1/voltagepv_voltage0x1302 ×0.1
dc.current DC태양광 입력 전류A<sn>/1/currentpv_current0x1303 ×0.01
dc.power DC태양광 입력 전력W<sn>/1/powerpv_power0x1304 ×0.1
ac.voltage AC전력망(출력) 전압V<sn>/0/voltagegrid_voltage0x1200 ×0.1
ac.current AC출력 전류A<sn>/0/current(전력÷전압)0x1201 ×0.01
ac.power AC지금 만드는 출력 전력W<sn>/0/powerpv_power0x1211 ×0.1
ac.frequency AC전력망 주파수Hz<sn>/0/frequencygrid_frequency0x1209 ×0.01
ac.powerfactor AC역률<sn>/0/powerfactor(계산)
temperature 상태인버터 온도°C<sn>/0/temperaturetemperature0x120D 값−40
yield.day AC오늘 발전량Wh<sn>/0/yielddaytoday_production0x1212 ×10
yield.total AC누적 발전량kWh<sn>/0/yieldtotaltotal_production0x1213 ×10 (U32)
iso.rx/ry 안전절연저항0x1216/7 ×0.001
gfci 안전누설전류mA0x120C
status.run 상태운전 상태status/producingoperating_status0x1100
alarm.code 상태고장 코드비트(고장 토픽)alarm_code0x1105~

왜 통일 이름? 화면·계산·알림은 통일 이름만 봅니다. 수집기를 바꾸거나 인버터를 교체해도 "이름 연결표"만 갈아끼우면 나머지는 그대로. (규격엔 태양광 6줄까지 있지만 350W 기기는 PV1 1줄만 사용.)

2A기본 기능 — RAW를 이렇게 가공합니다

모든 인버터의 기본 3가지. 각 기능마다 ① RAW → ② 가공 → ③ 표출 순서로, 그리고 표출은 전부 아래 그림으로 보여줍니다.

① 발전량 & 효율

① RAW
  • dc.power (들어온 전력)
  • ac.power (내보낸 전력)
  • yield.day
② 가공
효율 = ac.power ÷ dc.power × 100 손실(열) = dc.power − ac.power 오늘 kWh = yield.day ÷ 1000
③ 표출
  • 출력 게이지(W)
  • 효율 막대
  • 발전량(일·월·년)

③ 표출 — 화면엔 이렇게

338 W (지금 출력)
출력 게이지 — 지금 ac.power
DC 입력 348W AC 출력 338W (97%) 빨강=손실 10W(열)
효율 막대 — 나간÷들어온
발전량 오늘 이달 올해
일·월·년 발전량 — yield

MPPT (최대 전력점 추적)

① RAW
  • dc.voltage
  • dc.current
  • dc.power
② 가공
전력 = 전압 × 전류 (P=V×I) 전압을 조금씩 바꿔가며 '전력이 가장 큰 점(MPP)'을 추적
③ 표출
  • I-V / P-V 곡선
  • 지금 동작점 위치
  • MPPT 효율 %

③ 표출 — 화면엔 이렇게

MPP(봉우리) 전압→
I-V(파랑)·P-V(초록) — §3에서 직접 움직여보기
MPPT 효율 99.2% 봉우리에 얼마나 가깝게 머무나
MPPT 효율 — 동작점이 봉우리 근처면 100%

③ 보호 (안전장치)

① RAW
  • ac.voltage, ac.frequency
  • gfci, iso
  • alarm.code
② 가공
정상 범위와 비교: 전압 195~253V 밖 → 과·저전압 차단 주파수 59.3~60.5Hz 밖 → 과·저주파 차단 누설↑·절연↓ → 지락 차단 전력망 끊김 → 단독운전 차단
③ 표출
  • 상태 배지
  • 알람 로그
  • 전압 정상범위 표시

③ 표출 — 화면엔 이렇게

상태 배지
● 정상 발전 ▲ 경고 ■ 차단
운전 상태를 한눈에 — status.run
13:24 TEMP_HIGH 모듈온도 54℃
11:02 COMM_OK 재동기화
09:50 RSSI 약함 −86dBm
알람 로그 — alarm.code 풀이 + 시각
정상 195~253V 지금 229.8V ✓
전압이 범위 안인지 — 밖이면 차단(OVP/UVP)
기본 인버터의 보호는 "이상하면 무조건 끈다(탈락)"가 전부. 이 한계를 넘는 게 다음 '스마트 기능'.

2B스마트 기능 — 끄는 대신 전력망을 도움

전력망이 흔들릴 때 바로 끄지 않고 전압·주파수를 능동적으로 받쳐줍니다.

① 전압 도움 (무효전력 조절)

그런데 무효전력을 어떻게 '감지'하나?

인버터는 전압 파형과 전류 파형을 1초에 수천~수만 번 빠르게 측정합니다. 이 두 파형이 얼마나 어긋나 있는지(위상차 φ)가 핵심이에요.

전압 전류(뒤처짐) ← 어긋난 정도 = 위상차 φ
두 파형의 어긋남(φ)으로 무효전력을 알아냄
측정한 파형으로 계산: 유효전력 P = 전압×전류×cos φ (실제 일) 무효전력 Q = 전압×전류×sin φ (전압 조절용) 겉보기 S = √(P² + Q²) 역률 = P ÷ S (1에 가까울수록 좋음) # 제어(도움)는 반대로: 전류 위상을 일부러 틀어 Q를 흡수(전압↓)/공급(전압↑) 한다

③ 표출

전압 높음→ Q 공급
전압–무효전력(Q-V) 곡선
0.99 역률 (1=최고)
역률 다이얼 — P÷S
전력 분해 유효 P 338W 무효 Q (전압 조절용)
유효/무효 분해 막대

② 주파수 도움 — 왜 낮을 땐 100%, 높을 땐 줄이나

출력 100% (포화) 59.5~60Hz (낮음) 60.2Hz↑ (높음) 60Hz
주파수–출력 곡선. 왼쪽은 평평(100%), 오른쪽만 내려감.

주파수 낮음 = 전기가 모자람. 전력망은 더 받고 싶어 합니다. 그런데 태양광은 지금 햇빛만큼만 만들 수 있어요(없는 전기를 못 만듦). 이미 최대(MPP)로 내보내는 중이라 더 못 올리고 100%에서 멈춤(포화).

주파수 높음 = 전기가 남음. 이땐 출력을 줄이는 건 언제든 가능하니, 곡선이 내려가며 발전을 줄여 과잉을 해소합니다. → 줄이긴 쉽고, 더 키우긴 불가능해서 모양이 비대칭(왼쪽 평평).

LVRT / HVRT — 전압이 출렁여도 버티기

왜 필요한가: 전력망 사고로 전압이 순간 푹 꺼졌다(LVRT) 다시 돌아오는 일이 잦습니다. 옛날 인버터는 이때 바로 탈락했는데, 태양광이 많아진 지금은 다 같이 탈락하면 전력망이 더 무너집니다. 그래서 "짧은 출렁임은 끊지 말고 버티며 전류를 계속 보내라"가 규칙(IEC 61727)이에요. 깊게 꺼질수록 버텨야 하는 시간은 짧습니다.

이 위(연결 유지) 영역에선 버텨야 함 0% 전압 시간(길어질수록)→ 0.15초
전압-시간 "버티기" 구역. 0%로 떨어져도 0.15초는 연결 유지.

LVRT(저전압 버티기): 전압이 0%까지 꺼져도 최소 0.15초, 20% 이하면 0.625초 안에 회복되면 계속 운전. 그 안에 안 돌아오면 그때 보호 차단.

HVRT(고전압 버티기): 전압이 120%를 넘어 솟아도 0.1초 내 대응하며 잠깐 버팀. 우리 기기는 이 자율 버티기가 △ 제한적 → 소프트웨어(BEMS)로 보완(§4).

2CAI 기능 — 데이터를 모아 예측·진단

RAW를 오래 모아 학습해 앞날(발전량)과 이상(고장)을 미리 압니다. AI

① 고장 미리 알기 (예지 보전)

① RAW (누적)
  • temperature 변화
  • 효율 변화
  • dc/ac 패턴
② 가공
평소 정상 패턴 학습 → 벗어남 감지: 같은 출력인데 온도 +5℃↑ → 부품 열화 효율 −2%↓ → 접촉불량/먼지 → '이상 점수'로 환산
③ 표출
  • 열화 추세 그래프
  • 부품별 위험도

③ 표출

위험 기준 시간(개월) → 같은 출력인데 온도가 서서히 오름
열화 추세 — 위험선에 닿기 전 점검 권고
부품별 위험도 캐패시터 MOSFET 커넥터
부품별 위험도 막대 — 노란색=점검 대상

② 발전량 예측

RAW + 날씨
  • 과거 yield
  • 기상청 일사·구름·기온
가공
XGBoost (머신러닝 모델): (일사,구름,기온,시각,과거발전) → 1~48시간 발전량 예측 SSL: 그늘 제약 + 루버 각도 최적화
표출
  • 예측 곡선 + 오차 범위
  • 루버 각도 추천

③ 표출

실측 예측(옅은 띠=오차) 지금
발전 예측 곡선 — VPP 참여에 활용
추천 각도 = 발전 최대 + 그늘 회피 ☀ 추천 42°
루버 각도 추천 — SSL만의 기능
SSL 차별점 = 루버 각도를 바꿀 수 있음. 예측+그늘 제약으로 "전력망 돕는 유연 자원"이 됨(주파수 남으면 루버 닫아 발전 줄여 안정화).

3I-V 곡선 — 직접 움직여 보기

dc.voltage(가로)와 dc.current(세로)를 모으면 패널의 성격 곡선(I-V)이 나옵니다. 전력(P-V)을 겹치면 봉우리가 MPP(최대 전력점) — MPPT가 머물려는 지점이에요. 상황 버튼을 눌러보세요.

I-V (전류–전압) P-V (전력–전압) MPP 봉우리 정상 기준선

상황 바꿔보기

1000 W/m²맑은 정오=1000
25 ℃기준=25℃
기준 사양(SSL 350W·1채널, 대표값): Voc 36.0V · Isc 12.5A · Vmp 30.0V · Imp 11.67A

지금 봉우리(MPP): @ /

I-V 곡선으로 알 수 있는 것 (위 기능들과 연결)

곡선의 변화무슨 뜻 (진단)연결 기능버튼
전체가 아래로 (전류↓)햇빛 약함 / 패널 더러움발전량 저하 원인 분석흐림
봉우리가 왼쪽으로 (전압↓)온도 높음 → 출력 감소온도 보정·디레이팅한여름
계단(꺾임)이 생김일부 그늘 → 패널 일부 막힘음영 분석·루버 각도부분 그늘
무릎이 둥글게 뭉개짐접촉불량·노화(내부저항↑)고장 예지(열화)열화
동작점이 봉우리에서 벗어남MPPT가 최적점 못 잡음MPPT 효율 점검
실제 운영에선 곡선을 매번 다 그리지 않고, 인버터가 지금 머무는 한 점(전압·전류)이 봉우리 근처인지로 빠르게 진단합니다.

4지금 기기의 한계와 보완

○ 됨 · △ 제한적 · ✗ 안 됨

기능등급기기보완(소프트웨어 레이어)
발전량·효율·MPPT기본OpenDTU/Modbus로 직접 수집
전압 도움(무효전력)스마트유럽 규격 준수
주파수 자율 대응스마트외부 주파수 받아 직접 제어(루버 각도)
LVRT/HVRT스마트한국 KS 미확정 → 국제기준 선행
고장 예지(AI)AI데이터 3~6개월 모아 학습
발전 예측(AI)AI날씨 연동 예측 모델
요지: 기기를 바꾸지 않고 소프트웨어(OpenDTU + BEMS)로 스마트·AI 기능을 상당 부분 보완. 규격은 한국 KS 미확정이라 국제기준(IEC 61727 / EN 50549)으로 먼저 검증.
큰 그림: 이런 기능 구현을 위해 국내 스마트 인버터 개발도 별도로 진행 중입니다. 그 전까지는 위처럼 DTU + BEMS 소프트웨어로 어느 정도 기능을 보완할 수 있고, 무엇보다 지금부터 RAW 데이터를 수집·정리하는 기반을 미리 만들어 두면 — 나중에 VPP나 국산 스마트 인버터가 준비됐을 때 그 데이터를 곧바로 효과적으로 활용·연계할 수 있습니다. (인버터가 출력·계통 대응 기능을 갖추게 되면, 우리가 쌓아 둔 데이터·판단 로직이 그 제어를 움직이는 근거가 됩니다 — 즉 지금은 "데이터 기반"을 깔아두는 단계.)

5TSUN 레지스터 표 — 계수까지 차근차근

§0대로 이 표는 수집기를 통해 읽는 값 목록. 각 줄 = 정보 칸 하나. 읽은 정수 × 계수 = 진짜 값. 출처: TSUN G4 Modbus Protocol_summary.xlsx (제조사 정본 Register Address)

통신 기본 — 표준 Modbus · 속도 9600 · 데이터 8비트 / 검사비트 없음 / 정지 1비트 (§★ 애니메이션이 이것) · 명령 0x03 읽기 · 0x06 한 칸 쓰기 · 0x10 여러 칸 쓰기 · 끝에 CRC.
연결 방식: TSUN은 §0의 무선(RF) 경로가 아니라, 유선 RS-485 2가닥(A·B)으로 인버터에 직접 연결해 레지스터를 읽고 쓰는 Modbus 방식입니다. (OpenDTU·DTU-Pro-S의 RF 수집 경로와는 별개의 직결 경로.)

누가 묻고 누가 답하나 — 마스터·슬레이브, 그리고 읽기 vs 제어

마스터 = DTU / 서버질문(명령)을 먼저 거는 쪽.
읽기도 하고 제어(쓰기)도 함
명령 →
← 응답
슬레이브 = 인버터먼저 말 못 함.
요청에 답하거나, 시키는 대로 설정 변경

즉 마스터는 그냥 보기만 하는 게 아니라 인버터를 제어할 수 있어요. 명령(기능코드)으로 읽기와 제어가 갈립니다:

기능코드하는 일분류예시
0x03레지스터 값을 읽음모니터링(읽기)전압·전류·발전량·고장코드 확인
0x06한 칸에 값을 제어(쓰기)출력 제한·보호 정정값 한 개 변경
0x10여러 칸에 한 번에 제어(쓰기)안전규격·시간 설정 묶음 변경
읽기(모니터링)란?

마스터(DTU)가 "이 레지스터 값 줘"라고 호출(요청)하면, 인버터가 그 칸의 값을 그대로 반환합니다. 받아서 화면에 보여주는 게 모니터링. 인버터 상태를 바꾸지 않고 들여다보기만 함.

쓰기(제어)란?

제어 레지스터는 "값을 쓰면 미리 정해둔 동작을 하도록" 프로토콜에 설계돼 있습니다. 예: 출력제한 칸에 70을 쓰면 → 인버터가 출력을 70%로 낮춤. 값 입력 = 명령 실행.

레지스터도 두 종류 — 읽기 전용 vs 제어 가능

구역주소대읽기/쓰기무엇
계측·상태0x1000~0x13xx읽기 전용전압·전류·전력·온도·발전량·고장 — 관찰만
설정·보호 (제어)0x1400~읽기 + 쓰기안전규격·기동/재접속 시간·과저전압/주파수 정정값 — 바꿀 수 있음
제어(쓰기)로 할 수 있는 것 (0x06 / 0x10)
주소항목계수제어 의미
(출력 제한)출력 제한 / 끄기% 또는 W역송 방지·계통 명령 시 출력을 낮추거나 정지 (OpenDTU cmd/limit)
0x1400안전규격(Safety)나라별 계통연계 규정 선택
0x1401기동 시간0.5s전원 켜고 출력 시작까지
0x1402재접속 시간0.5s고장 풀린 뒤 다시 붙기까지
0x1404/0x1405과·저전압 복귀값0.1V차단이 풀리는 기준 전압
0x1406과주파수 복귀값0.01Hz차단이 풀리는 기준 주파수

이 "제어" 능력이 §2B 스마트 기능(주파수 대응·출력 조절)을 소프트웨어로 구현하는 손잡이입니다.

계수 변환 — 한 번 더 (예시)

0x1200 = 받은바이트 08 FD → 정수 2301 → × 0.1V = 230.1 V 0x1209 = 받은바이트 17 71 → 정수 6001 → × 0.01Hz= 60.01 Hz 0x120D = 받은바이트 00 55 → 정수 85 → − 40 = 45 ℃ 0x1212 = 받은바이트 00 96 → 정수 150 → × 10Wh = 1500Wh = 1.5 kWh
자주 읽는 값 (읽기 0x03)
주소무슨 값형식계수설명
0x1100운전 상태U16정상/대기/고장 — 먼저 확인
0x1200전력망 전압(A상)U160.1V한국 205~253V
0x1201출력 전류U160.01A날씨로 변함
0x1209주파수U160.01Hz한국 60Hz → 6000 근처
0x120C누설전류(GFCI)U16mA커지면 누전 위험
0x120D온도(방열판)U16값−40℃85 → 45℃
0x1211지금 출력 전력U160.1W핵심 값
0x1212오늘 발전량U1610Wh자정 0으로 리셋
0x1213누적 발전량U3210Wh두 칸 합산 — 상위워드(0x1213)가 앞, 하위워드(0x1214)가 뒤
0x1216/7절연저항 RX/RYU160.001MΩ전기 새는지(안전)
0x1302~4태양광 입력 V/I/PU160.1V·0.01A·0.1W우리는 PV1만(1채널)

형식: U16=0~65535 정수, U32=큰 정수(두 칸), s16=음수 가능(배터리 충·방전), char[16]=글자(일련번호).

고장 코드 해석기 (한 숫자에 여러 고장이 섞임)

고장 값은 2진수 비트로 풀어 읽음. 값 48 = 16+32 = 통신끊김 + 원격종료. 숫자를 넣어보세요.

고장값 해석기   (Fault 0)
Fault 0 — 전력망/회로
4GFDI 지락 고장
8과온
16통신 끊김
32원격 종료
256전력망 상실(정전)
1024/2048릴레이 단선/단락
4096/8192계통 과/저전압
16384/32768계통 과/저주파수
Fault 1 — 태양광(DC)
1태양광 과전압
2태양광 저전압
4태양광 과전류
16단락 보호
32자가진단 고장