용어 사전

문서·코드에 자주 등장하는 약어와 도메인 용어. PD 모니터링 처음이면 여기부터.

도메인 (PD 모니터링)

PD — Partial Discharge (부분방전)

절연체 내부 미세 결함부에서 정상 절연 파괴 전에 발생하는 짧은 방전. ns~µs 단위 펄스. 모니터링의 대상.

PQN

제조사가 풀어쓰지 않은 약어. 데이터 의미상으로는 "한 사이클을 위상 슬롯으로 잘게 쪼개서 슬롯마다 PD 크기를 기록한 배열". 256개 uint16 / 채널·사이클. 자세히는 PQN 깊게 보기. 업계 통용 의미: Partial discharge Quantity per phaNe 또는 Pulse Quantity Number (시그널파서 정식 풀이는 미공개).

PRPS — Phase-Resolved Pulse Sequence

여러 사이클의 PQN bin 점들을 같은 위상 축에 겹쳐 그린 line/scatter. "이 위상에서 평소 어느 정도의 PD 가 뜬다" 의 시각화.

PRPD — Phase-Resolved Partial Discharge

위상 × PD 크기 격자에 발생 빈도를 색으로 칠한 heatmap. 절연 결함 종류 식별의 핵심 그래프.

TF — Time-Frequency

SCOPE 원파형에 FFT를 걸어 시간 spread × 주파수 spread 좌표를 뽑은 점. 사이클당 1점이 누적되어 PD 종류 구분 단서.

SCOPE

ADC 가 잡은 원파형. TRIG 발생 시점 직전·직후 trig_depth 개의 int16 샘플로 한 묶음. 한 채널·한 TRIG 발생당 1 패킷.

sync

AC 전원의 영교차에서 따온 사이클 0° 기준 신호. PD 분석은 "어느 위상에서 뗬느냐" 가 본질이라서 sync 가 정확해야 한다. 외부(Ext) 입력 또는 내부(Int) 발진. 못 잡으면 sync_freq = -1.

sync_freq

실측 sync 주파수 (Hz). SCOPE/PQN 패킷 둘 다에 들어옴. AC 전원이면 보통 60 (또는 50). 못 잡으면 -1.

cycle_index

장비가 사이클마다 부여하는 시퀀스. SCOPE/PQN 매칭 키. 두 스트림 도착 타이밍이 다르므로 같은 cycle_index 끼리 짝지어야 한 사이클의 데이터 한 쌍.

phase

한 사이클 내 위상 카운터. 단위 10 ns. 60 Hz면 max 1,666,666. 각도 변환: 각도 = phase × (sync_freq × 360) / 156_250_000. sync 못 잡으면 -1.

TRIG

SCOPE 발화 조건. 입력 신호가 trig_h_lv 보다 크거나(H 매칭) trig_l_lv 보다 작을 때(L 매칭) 발화 → 그 시점 주변 trig_depth 샘플을 통째로 SCOPE 패킷으로 송신.

GATING

PQN 측의 잡음 차단 회로. "다른 게이팅 소스 채널에도 동시 잡힌 펄스는 외란 → 버림" 논리. 외부 잡음과 진짜 절연 내 PD 를 구분하는 장치.

패킷 / 통신

PACKET_HEADER

모든 패킷의 맨 앞 8바이트. packet_type + packet_size(헤더 포함 총 바이트).

SET 패킷

SCOPE_SET / PQN_SET / HW_SET — 장비 설정값을 SW 가 장비로 내려보냄. 장비는 대응 MSG_*_SET_ERROR 로 ACK (에러 없어도 돌아옴).

SCOPE_DATA / PQN_DATA

장비가 SW 로 송신하는 측정 데이터.

MSG_PACKET

양방향 명령/상태/에러. msg 코드와 error 코드 + 256B padding.

MSG_SEND_DATA_START / STOP

스트리밍 시작 / 중지 명령. 보낸 동일 msg 코드로 장비가 ACK.

MSG_ALIVE

Keep-alive (Rev 4 추가). 페이로드 없이 살아있음 확인.

MSG_SELF_SYNC_ENABLE

자체 싱크 On/Off. magic byte('T','-','9','0')를 padding[0..3] 에 넣어야 받아들여짐.

NET_CFG (SET / INFO)

장비의 MAC / IP 원격 설정·조회. padding[0..5]=MAC, [6..9]=IP.

SW 측 용어

Hub

현재 Go 구현에서 다중 장비 + DB + 외부 서버 + 프런트 이벤트 fan-out 을 오케스트레이션 하는 객체. internal/pipeline/hub.go. 새 코드에선 다른 이름이어도 됨.

오프라인 모드 / 시뮬레이터

현재 프런트엔드의 자체 합성 데이터 모드. 장비가 없을 때 UI 동작 확인용. (덤프 재생과는 다름. 덤프 재생은 cmd/apm7kemul의 replay 모드.)

T90_Packet_Dump

장비가 연결된 사무실 PC 에서 기록한 와이어 트래픽 캡처. 집에서 장비 없이 개발하기 위한 도구. 자세히는 CLAUDE.mddocs/T90_프로토콜.md.

흔한 혼동

"PQN bin = FFT 결과" — 아니다

PQN 은 시간 도메인의 phase-binned PD 펄스. FFT 가 들어가는 곳은 TF 데이터(SCOPE 원파형 → FFT → spread). PQN 경로엔 FFT 없음.

"덤프에 SCOPE 도 있겠지" — 아니다 (지금까지는)

현재 saver 가 PQN 만 저장. SCOPE 까지 잡으려면 별도 raw-wire dumper 필요 (CLAUDE.md 참고).

"sync 채널은 입력 채널 9번째" — 절반 맞다

ch_number 8 로 PQN 패킷에 같이 흘러나오긴 함. 그러나 PQN_CH_PARAM 의 ch_param[8] 은 0~7 채널 설정만이고, sync(8)는 그 설정과 무관하게 항상 전송. SCOPE 측엔 8번이 아예 없음.

"PQN 한 패킷 = 8 채널 데이터" — 아니다

한 패킷 = 한 채널·한 사이클(또는 buffer_size 사이클 묶음)의 bin 데이터. 8 채널 다 받으려면 8 패킷이 와야 함.