4 Commits

Author SHA1 Message Date
windpacer
b3985d77fb fix(crawler): realtime_table id bigint(시퀀스 오버플로) + HCX 폴링 비활성
운영 사고 재발 방지:
- realtime_table.id가 SERIAL(int4)이라 매 poll의 nextval 소비로 2^31 도달 →
  전체 realtime 업서트가 'reached maximum value of sequence'로 정지(현장에서 14h
  무갱신 발생, bigint ALTER로 라이브 복구 완료). 신규 배포: CREATE를 BIGSERIAL로,
  기존 배포: 기동 시 멱등 마이그레이션(integer일 때만 bigint+시퀀스 ALTER).
- gateway-config: HCX(IP·맵 없는 플레이스홀더)가 enabled=true라 50055 연결거부
  로그 양산 → enabled=false.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 05:44:11 +09:00
windpacer
7124b222c3 chore: gateway-config에 HCX 컨트롤러 항목 추가 + plant_context sub_area 도구호출 설명 정리
- gateway-config.json: HCX 컨트롤러 슬롯(grpcPort 50055) 추가.
- plant_context.md: active_alarms/find_tags/query_events 등 sub_area 인자 전달
  방식 설명을 prose로 정리.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 12:31:24 +09:00
windpacer
f9f6a04054 feat: Sinam_xlsx 기반 register-map 재생성 + C1-C4 컨트롤러 추가
- register-map.json 재생성 (C3: 328→1974 registers)
  - .PV/.SP/.OP 등 suffix 추가, write_addr 필드 도입
  - LOOP_LAYOUT 기반 고정 레이아웃 전개 + 명명되지 않은 레지스터 보존
  - FC16 쓰기를 위한 write_addr 분리 (.MD는 LOOPSTAT 읽기/MODEIN 쓰기)
- build_register_map_from_sinam.py 리팩터
  - --controller 인자 추가 (C3/C4/C5 복수 컨트롤러 지원)
  - --validate-csv 옵션 추가 (HC Designer CSV 교차검증)
  - tag명 대문자 유지 (ToLower 금지)
  - 출력 경로 Path 객체 사용
- gateway-config.json: C1-C4 컨트롤러 설정 추가
2026-06-04 09:43:14 +09:00
windpacer
16fc7a2598 Initial commit: HC900 Crawler
Honeywell HC900을 Modbus TCP로 직접 폴링 → gRPC → C# 크롤러 → PostgreSQL.
기존 Experion OPC UA 데이터 경로를 HC900 직접 통신으로 대체.

- industrial-comm/cpp: C++ Modbus 게이트웨이 (gRPC 서버)
- src: C# .NET 8 ASP.NET Core 크롤러 + 웹 UI (3-Layer)
- mcp-server: Python FastMCP (RAG/NL2SQL/P&ID)
- 다중 컨트롤러(N-Controller) 지원

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 20:28:14 +09:00