본문으로 건너뛰기

엣지 연동 가이드

Bridge.Host에서 설비를 구성하고, Engine과 mDNS로 자동 연동하여, AAS(Asset Administration Shell) 디지털 트윈을 생성하는 전체 과정을 안내합니다.

📋 사전 요구사항​

항목포트역할
Caffeine Engine5001 (HTTP), 5050 (gRPC)중앙 서버
Caffeine Admin5233관리 대시보드
Caffeine Bridge.Host5100엣지 게이트웨이
Redis6379캐시/스트림
MQTT Broker1883메시지 브로커
Caffeine CLI 설치

cafe 명령어를 사용하려면 CLI를 먼저 설치하세요:

dotnet tool install -g NEXCODE.Caffeine.Cli
cafe --version

이미 설치된 경우 업데이트: dotnet tool update -g NEXCODE.Caffeine.Cli

# 배포 파일 추출 (최초 1회)
cafe setup extract

# Caffeine 서비스 시작 (Engine + Admin + Bridge.Host + 인프라)
cafe setup
# 프로파일 선택: app

# 서비스 상태 확인
cafe setup status

🚀 Step 1: Bridge.Host 최초 설정​

Bridge.Host를 처음 실행하면 First-Run Setup 화면이 표시됩니다.

  1. 브라우저에서 http://localhost:5100 접속
  2. 관리자 비밀번호 설정 (4자 이상)
  3. "설정 완료" 클릭 → 로그인 화면으로 전환
  4. admin / 설정한 비밀번호로 로그인

🔧 Step 2: 설비 정보 등록​

로그인 후 설비 정보 탭에서 엣지 장비의 기본 정보를 입력합니다.

설비 정보 등록

필드예시설명
설비명CNC-Pump-01장비 고유 식별 이름
카테고리Pump장비 유형 (Pump/Motor/Conveyor/Robot/CNC/PLC/Sensor/Other)
위치2F-Line3-Bay5설비 물리적 위치 (층-라인-베이)

저장 버튼을 클릭하면 "설비 정보 저장됨" 토스트가 표시됩니다.

설비명 규칙

설비명은 {카테고리}-{용도}-{번호} 형식을 권장합니다. 이 이름이 AAS Shell의 IdShort로 사용됩니다.

🏷️ Step 3: 태그(Tag) 등록​

태그 관리 탭에서 수집할 센서 데이터 포인트를 등록합니다.

태그 추가​

  1. + 태그 추가 버튼 클릭
  2. 태그 정보 입력

태그 추가 모달

필드예시설명
이름Temperature_01태그 고유 이름
주소D100드라이버별 메모리 주소 (Modbus: 레지스터, PLC: 디바이스 주소)
데이터 타입FloatInt16, Int32, Float, Double, Bool, String
센서 속성Temperature센서 물리량 (AAS Submodel 매핑에 사용)
스캔 주기(ms)500데이터 수집 간격 (ms)
  1. 추가 클릭

등록된 태그 확인​

여러 태그를 등록하면 테이블에서 편집/삭제가 가능합니다.

태그 목록

Community 라이선스 제한

Community(무료) 라이선스에서는 최대 50개 태그까지 등록할 수 있습니다. Professional 라이선스로 업그레이드하면 제한이 해제됩니다.

🔌 Step 4: 드라이버 설정​

드라이버 탭에서 장비 통신 프로토콜을 설정합니다.

드라이버 유형용도설정
Simulation테스트용 가상 드라이버IP/포트 불필요
ModbusTcpModbus TCP 장비IP + 포트(502)
ModbusRtuModbus RTU (시리얼)COM 포트 + 보드레이트
OmronFinsOmron PLC (FINS)IP + 포트(9600)
MitsubishiSlmpMitsubishi PLC (SLMP)IP + 포트(5000)

개발/테스트 시에는 Simulation 드라이버를 선택하면 실제 장비 없이 데이터가 생성됩니다.

🌐 Step 5: Engine에서 Bridge 검색 (mDNS Discovery)​

Admin 대시보드에서 네트워크의 Bridge.Host를 자동으로 검색합니다.

  1. Admin (http://localhost:5233) 로그인
  2. 좌측 메뉴 → 드라이버 및 통신 → Bridge Discovery 또는 URL 직접 접속: /bridge-discovery

Bridge Discovery

  1. 스캔 버튼 클릭 → 같은 네트워크의 Bridge.Host가 자동 감지됩니다
상태설명
검색됨mDNS로 발견된 Bridge 수
미바인딩아직 Engine에 등록되지 않은 Bridge
바인딩됨Engine에 등록 완료된 Bridge
온라인현재 연결 활성 상태인 Bridge
mDNS가 동작하지 않을 때

같은 머신에서 실행하는 경우 mDNS 데몬(Bonjour/Avahi)이 설치되지 않으면 자동 검색이 안 될 수 있습니다. 이 경우 Bridge.Host의 REST API(http://localhost:5100/api/bridge/status)를 통해 수동으로 등록할 수 있습니다.

🌐 Step 6: AAS (Asset Administration Shell) 확인​

Bridge에서 등록한 설비 정보는 AAS Shell로 변환되어 Admin에서 조회할 수 있습니다.

  1. Admin → /aas 접속

AAS Shell Viewer

  1. 등록된 AAS Shell 목록에서 설비를 선택하면:
    • Nameplate Submodel: 설비 기본 정보 (제조사, 모델, 위치)
    • TechnicalData Submodel: 기술 사양
    • OperationalData Submodel: 실시간 운영 데이터 (태그 값)
    • AlarmCondition Submodel: 알람 상태
AAS가 비어있을 때

"등록된 AAS가 없습니다"라고 표시되면:

  • Bridge.Host가 실행 중인지 확인
  • Engine과의 gRPC 연결 상태 확인 (Bridge 콘솔에서 [GrpcTransport] 연결 완료 메시지)
  • AASX 파일을 직접 임포트하려면 /aas/import 페이지 사용

📊 Step 7: 감사 로그 확인​

Bridge.Host의 감사 로그 탭에서 모든 작업 이력을 확인할 수 있습니다.

감사 로그

작업설명
SETUP최초 설정 완료
LOGIN관리자 로그인
UPDATE설비/드라이버 설정 변경
CREATE태그 추가
DELETE태그 삭제
LICENSE_ACTIVATE라이선스 활성화

📄 라이선스 관리​

Community vs Professional​

항목Community (무료)Professional
최대 태그50개무제한
최대 드라이버1개무제한
허용 서브모델3종7종
감사 로그비활성활성

Professional 활성화​

PKV(Partial Key Verification) 키가 있으면:

# Bridge.Host API로 활성화
curl -X POST http://localhost:5100/api/bridge/license/activate \
-H "Content-Type: application/json" \
-b "bridge_session=YOUR_SESSION_TOKEN" \
-d '{"key": "YOUR-PKV-KEY"}'

Community로 다운그레이드​

라이선스를 제거하면 자동으로 Community 모드로 전환됩니다. 50개 이상의 태그가 등록된 경우 초과분은 비활성화됩니다.

🔌 엣지 연동 끊기​

Bridge.Host를 Engine에서 분리하려면:

  1. Bridge.Host 프로세스 종료 (Ctrl+C)
  2. Admin → Bridge Discovery에서 해당 Bridge가 "오프라인"으로 표시됨
  3. Engine은 자동으로 연결 재시도를 중단하고 graceful degradation
데이터 보존

Bridge.Host를 종료해도 로컬 설정(bridge_config.json)은 보존됩니다. 재시작하면 동일한 설비/태그 구성으로 자동 복구됩니다.

🔧 트러블슈팅​

Bridge.Host가 Engine에 연결되지 않음​

[GrpcTransport] 연결 중... http://localhost:5001
[GrpcTransport] raw 전송 실패 — Connection refused

확인사항:

  1. Engine이 실행 중인지 확인: curl http://localhost:5001/health
  2. Engine의 gRPC 포트(5050) 방화벽 확인
  3. Bridge의 driver_settings.json에서 EngineUrl 확인

태그가 50개 제한에 걸림​

Community 라이선스 제한입니다. Professional 키를 활성화하거나, 불필요한 태그를 삭제하세요.

mDNS 검색에 Bridge가 안 보임​

  • macOS: Bonjour 기본 내장 (정상 동작)
  • Linux: avahi-daemon 설치 필요 (sudo apt install avahi-daemon)
  • Windows: Bonjour Print Services 설치 또는 수동 등록 사용

📚 다음 단계​