본문으로 건너뛰기

엣지 게이트웨이

v1.0.3 기준 · 동기화일 2026-07-17

linkboard-gateway는 LinkBoard 본체와 별도로 관리되는 오픈소스 엣지 게이트웨이입니다. 현장 장비(PLC·OPC-UA 서버·MQTT 장치 등)의 데이터를 수집·변환해 단일 MQTT 연결로 LinkBoard 백엔드에 중계합니다. Python asyncio 기반이며, ThingsBoard IoT Gateway를 아키텍처 레퍼런스로 삼았습니다.

노트

LinkBoard 본체와 별도 버전으로 관리되며, 아직 Pre-Alpha 단계입니다.

지원 커넥터

시뮬레이터

외부 장비 없이 랜덤 텔레메트리를 생성합니다 (테스트/데모용).

simulator
MQTT

외부 MQTT 브로커를 구독해 JSON 필드를 매핑하거나 그대로 전달합니다. 와일드카드(+, #) 토픽을 지원합니다.

mqtt
Modbus

TCP/RTU로 레지스터를 폴링합니다. 정수/float32/float64 변환과 scale/offset, 쓰기 가능한 포인트를 지원합니다.

modbus
OPC-UA

노드를 구독하거나 폴링합니다. 쓰기 가능한 노드로 다운링크 제어를 지원합니다.

opcua
CC-Link

미쓰비시 SLMP/MELSEC MC 프로토콜로 연결합니다 (선택 설치).

cclink
FOCAS

FANUC CNC 컨트롤러와 연동합니다 (별도 라이선스 라이브러리 필요, 선택 설치).

focas
DeviceNet

CAN 기반 CIP 프로토콜로 연결합니다 (선택 설치).

devicenet
PROFINET

S7 통신(S7comm)으로 지멘스 PLC와 연동합니다 (선택 설치).

profinet

CC-Link · FOCAS · DeviceNet · PROFINET 4종은 선택 의존성으로, 필요한 라이브러리가 없어도 다른 커넥터 동작에는 영향을 주지 않습니다(지연 임포트).

LinkBoard로의 연결 (Northbound)

게이트웨이 토큰({gw}) 기반 MQTT로 연결합니다.

v1/gateway/{gw}/connect # 게이트웨이 연결
v1/gateway/{gw}/telemetry # 텔레메트리 업링크
v1/gateway/{gw}/attributes # 속성 업링크
v1/gateway/{gw}/attributes/request # 속성 조회 요청
v1/gateway/{gw}/rpc/response # RPC 응답 업링크

자식 장치는 이름으로 식별되며, LinkBoard 백엔드가 자동으로 프로비저닝합니다.

오프라인 복원력

storage.type: sqlite 설정으로 영속 큐를 사용합니다. 네트워크가 끊겨도 데이터가 유실되지 않고, 재연결 시 밀린 데이터를 순서대로 전송합니다. 메모리 큐도 대안으로 제공됩니다.

배포

Docker 배포를 기본으로 하며(Dockerfile, docker-compose.yml), YAML 설정 파일 (config/gateway.yaml + config/connectors/*.yaml)로 커넥터를 구성합니다. 잘못된 설정은 pydantic 검증에 의해 기동 시점에 거부됩니다.