ZPi Controller v1 (운영자용 ZView + MCP + Modbus + Programs) 까지 정리하고 보니, v2 에서 추가할 만한 것들이 명확해졌습니다. 우선순위와 이유를 정리합니다.

🥇 MQTT 1순위 — Modbus 만으로는 부족

PLC MQTT 연동이 1순위입니다. 산업 PLC 의 Modbus 는 검증된 표준이지만 IoT 생태계와는 다리가 약합니다. MQTT 가 있으면:

  • Home Assistant 자동발견 (auto-discovery) → 스위치/센서 자동 등록
  • Node-RED 와 양방향 연동 (코드 한 줄 없이 플로우 빌딩)
  • Grafana 시각화 (MQTT → InfluxDB → 대시보드)
  • 클라우드 (AWS IoT, Azure IoT Hub, ThingsBoard) 게이트웨이 0설정
  • 다중 ZPi 간 P2P 통신

설계:

zpi/<deviceId>/io              → publish, 1Hz
zpi/<deviceId>/io/outputs/{i}  → publish on change
zpi/<deviceId>/cmd/output/{i}  → subscribe (외부에서 토글)
zpi/<deviceId>/cmd/data/{i}    → subscribe (D[] 쓰기)
zpi/<deviceId>/event           → publish (룰 발동 / 알람)
zpi/<deviceId>/status          → LWT online/offline retain

MQTTnet 으로 .NET 측 client/broker 모두 가능합니다. 작업량 약 3일입니다.

🥈 WebSocket — 라이브 모니터의 정의

WebSocket 실시간 모니터가 두 번째입니다. 현재 모니터 페이지는 /api/io 를 1Hz 로 polling 합니다. 입력 변화 보는데 1초 지연 + 폴링 트래픽 낭비입니다. WebSocket push 로 바꾸면 50ms 이내 반응합니다.

ZView 도 활용 가능합니다 — /api/io polling 대신 WS subscribe → CPU 부담 대폭 감소합니다.

작업량 약 2일입니다.

🥉 알람 + 알림 — 무인 운영의 핵심

PLC 알람 알림은 룰엔진 카드 액션에 “알림” 을 추가하는 것입니다:

  • 텔레그램 봇 (가장 즉시)
  • 슬랙 incoming webhook
  • 이메일 (SMTP)
  • 일반 webhook (다른 시스템 연동)
# 예: 룰 카드
Trigger: OnInputRising IN[0]   (비상정지 입력)
Action:  AlarmSend "🚨 비상정지 발생 - LINE2 컨베이어" → Telegram + Slack

야간 무인 공장 / 원격 모니터링에 필수입니다. 작업량 약 1-2일입니다.

있으면 좋은 다음 기능 목록

기능작업가치
로컬 히스토리 DB (SQLite)2일IO 변화 / 알람 / 룰 발동 영구 기록. 사고 분석 / 트렌드 / 보고서
백업/복원0.5일admin UI 에서 zip export/import. 새 SD 카드 클론 즉시
OTA 펌웨어 업데이트1-2일시스템 페이지에서 dll 업로드. 현장 출장 줄임
여러 ZPi 동기화2-3일큰 공장의 multi-board 묶음 (master/slave)
i18n1일한/영 토글. 해외 고객 대응
모바일 PWA0.5일manifest + service worker. 폰에서 앱처럼
감사 로그1일누가 언제 무엇을 바꿨나. 인증 환경 (제약/식품)

ZView 진화 로드맵

ZView 로드맵은 v1 에서 가장 흥미로운 부분이라 별도로 정리했습니다.

항목현재v2
활성 슬롯1개N개 + 메뉴 (/zview/, /zview/pump, /zview/oven)
사용자 프로그램 통합충돌 경고만프로그램이 자체 ZView 동봉 가능 (program.json 매니페스트)
AI 분석 깊이룰 스크립트만사용자 프로그램 소스도 분석해서 그에 맞는 ZView 자동 생성
미리보기새 탭admin UI 안에서 iframe 라이브 미리보기 (편집 → 즉시 확인)
권한admin/operator 단일그룹 / 사용자별 분리 가능

가장 큰 도전 — 사용자 프로그램 모드의 충돌 해결

사용자 프로그램 GPIO 충돌이 가장 큰 도전입니다. 현재 사용자 프로그램 (Programs 페이지) 이 GPIO 점유하면 룰엔진과 ZView 가 자동 정지합니다. v2 에서 풀어야 할 것들입니다.

  • 프로그램이 자체 HTTP API 노출하면 ZView 가 그걸 분석해서 적응합니다
  • 프로그램이 매니페스트 (program.json) 로 control point 선언합니다:
    {
      "controlPoints": [
        { "label": "펌프 시작", "endpoint": "POST /pump/on" },
        { "label": "비상정지", "endpoint": "POST /pump/estop", "danger": true }
      ]
    }
    AI 가 매니페스트 보고 ZView 자동 생성합니다

이건 단순 기능 추가가 아니라 아키텍처 결정이라 v2 의 첫 작업입니다.

미쓰비시·지멘스 PLC 와 가격·기능 비교

기능미쓰비시 FX5지멘스 S7-1200ZPi Controller (목표)
가격~80만원~120만원부품 ~5만원 (판매가 미정)
Modbus옵션 모듈 (+10만원)통합통합
MQTT별도 게이트웨이 필요TIA Portal 확장 (+)통합 (v2)
HMI별도 패널 (+30만원~)WinCC 별도 (+)웹 + AI 자연어 생성
클라우드벤더 클라우드 (+)벤더 클라우드 (+)표준 MQTT → 어디든
프로그래밍GX Works (전용 IDE)TIA Portal (전용 IDE)웹 + Python

ZPi 의 위치: “PLC 가 너무 비싸거나 닫혀있어서 못 쓰던 영역” — 교육, R&D, 메이커, 소형 OEM, IoT 게이트웨이입니다.

v2 작업 순서 (제안)

Week 1: 백업 / 롤백 정리 (완료)
Week 2: MQTT 통합 + Home Assistant 자동발견
Week 3: WebSocket + 라이브 모니터 개선 + ZView 멀티슬롯
Week 4: 알람 + 텔레그램/슬랙
Week 5: 로컬 히스토리 DB + Grafana 연동 가이드
Week 6: 사용자 프로그램 매니페스트 + AI ZView 자동생성 v2

마지막 한마디 — AI 친화 인프라

AI 친화 인프라가 ZPi Controller v1 을 만들면서 가장 크게 배운 관점입니다. 도구 description 이 LLM 의 행동지침이 되고, AI 가 만든 산출물의 인프라 부분을 서버가 보완하고, 사용자 설정 실수도 자동 복구되는 시스템입니다.

이런 디자인 패턴은 ZPi 가 아니라도 적용 가능합니다 — 사내 백오피스 도구, 데이터 대시보드, IoT 디바이스 운영자 UI 등입니다.

v2 도 같은 방향입니다. 더 단순하고, 더 안전하고, AI 가 더 잘 다룰 수 있게 만듭니다.

MQTT · WebSocket · 알람이 v2 의 1~3순위이고, 그 위에 AI 친화 인프라를 넓히는 것이 ZPi Controller 의 방향입니다.

의견 / 협업

이 글 보고:

  • “이런 기능도 있으면 좋겠다” 의견
  • 직접 써보고 싶다 (HW 보드 협찬 / 데모)
  • 다른 산업 도메인 (반도체, 제약, 식품) 응용 아이디어
  • 코드 보고 싶다 (오픈소스 공개 시점 알림)

연락 환영합니다. (문의 페이지 / 이메일)


시리즈 마무리

ZPi Controller 시리즈 7편 끝입니다.

  1. 라즈베리파이로 PLC 만들기 — ZPi Controller 소개
  2. ZView: AI 가 자연어로 만드는 산업 HMI
  3. Claude Desktop MCP — ‘한 번 더블클릭’ 설치자를 만들기까지의 삽질
  4. 디버깅한 세 가지 함정 — Modbus 포트, mDNS 캐시, Regex $1
  5. 라즈베리파이 WiFi 복원력 + 부팅 1분 31초 → 33초
  6. (이 글) v2 로드맵
  7. ZView 샘플 — Modbus IO 모니터링 화면 한 장으로 만들기

읽어주셔서 감사합니다.

문의