IO-Link Collector
IO-Link 스마트 센서를 연결하고 센서별 구성 없이 명명되고 스케일링된 엔지니어링 값을 얻으세요. IO-Link 마스터와 그 뒤의 센서 및 액추에이터를 연결하고, 프로세스 데이터를 플릿 데이터베이스로 곧바로 스트리밍하세요. 모든 것이 브라우저에서 구성됩니다: 코딩도, 재배포도, 다운타임도 없습니다.
이 앱은 마스터별로 선택되는 세 가지 전송 방식으로 작동합니다: HTTP/REST(ifm IoT Core API, Balluff 마스터가 구현하는 벤더 중립적 IO-Link Community JSON 표준, 그리고 그 외 모든 것을 위한 일반 구성 가능 REST 방언), OPC UA(예: OPC UA IO-Link Companion Spec), 그리고 MQTT(예: Pepperl+Fuchs). OPC UA와 MQTT 전송 방식은 구독 기반입니다 — 값이 변경될 때 푸시됩니다. 어떤 전송 방식이든 연결된 센서는 IODD에서 자동으로 디코딩됩니다 — 원시 프로세스 데이터가 센서별 설정 없이 명명되고 스케일링된 엔지니어링 값이 됩니다.
이 앱을 사용하는 이유
자동 센서 검색. 앱을 IO-Link 마스터로 향하게 하면 모든 포트를 프로빙하여 어떤 센서가 연결되어 있는지 감지하고 그 디바이스 ID, 벤더 ID, 제품명을 읽습니다. 연결된 각 포트는 자동으로 데이터포인트가 됩니다.
자동 IODD 디코딩 — 매핑 없이 명명되고 스케일링된 값. 이것이 앱이 기본적으로 작동하는 방식입니다. 연결된 모든 센서를 인식하고 그 원시 프로세스 데이터를 완성된 엔지니어링 값으로 스스로 변환합니다 — 공개 IODD Finder에서 센서의 공식 IODD(IO-Link Device Description)를 계정 없이, API 키 없이 조회하고, 각 값을 올바른 이름, 스케일링, 단위로 디코딩합니다. 센서를 연결하면 그 온도가 °C로, 압력이 bar로, 거리가 mm로 그냥 나타납니다. 오프라인 또는 에어갭 게이트웨이의 경우 IODD를 내장 카탈로그에 붙여넣으면 동일한 디코더가 그것을 사용합니다(붙여넣은 IODD는 항상 가져온 것보다 우선합니다).
핫플러그 인식. 센서를 교체하거나, 하나를 분리하거나, 새 것을 추가하면 앱이 자동으로 알아챕니다 — 마스터를 다시 검색하고 재시작 없이 데이터포인트 카탈로그를 업데이트합니다.
중요한 것만 저장. 개별 데이터포인트를 일시 중지하거나, 변경 시 저장(store-on-change)을 켜서 값이 실제로 변경될 때만 기록되도록 하세요 — 잡음이 많거나 빠르게 순환하는 신호가 데이터베이스를 부풀리지 않도록 합니다.
지원 마스터, 전송 방식 및 센서
모든 검색, 핫플러그, IODD/프로세스 데이터 디코딩은 모든 전송 방식에서 공유됩니다; Master Type 설정은 단지 앱이 주어진 마스터에 어떻게 도달하는지만 선택합니다.
전송 방식
| Master Type | 전송 방식 | API / 소스 |
|---|---|---|
ifm | HTTP / REST (폴링) | ifm IoT Core REST (getdatamulti) — ifm AL-series 및 호환 마스터 |
iolink_json (기본값) | HTTP / REST (폴링) | IO-Link Community “JSON for IO-Link” 표준 (/iolink/v1/...) |
balluff | HTTP / REST (폴링) | Balluff 마스터 — JSON for IO-Link 표준을 구현 |
generic | HTTP / REST (폴링) | 구성 가능한 포트별 REST — HTTP URL을 노출하는 모든 마스터 |
opcua | OPC UA (구독/푸시) | IO-Link 데이터를 노출하는 OPC UA 서버, 예: OPC UA IO-Link Companion Spec |
mqtt | MQTT (구독/푸시) | 브로커에 게시하는 마스터/게이트웨이, 예: Pepperl+Fuchs ICE2/ICE3 |
Turck (TBEN / FEN) 마스터는 IO-Link를 이러한 방식이 아니라 Modbus/TCP와 필드버스를 통해 노출합니다 — 그런 경우 Modbus Collector를 사용하세요.
마스터 벤더
- ifm — IoT Core REST (AL13xx / AL19xx / AL11xx 및 호환); 모든 포트가 사이클당 하나의 배치 요청으로 읽힙니다.
- Balluff — BNI(현재 펌웨어) 및 CMTK, JSON-for-IO-Link 표준을 통해.
- Pepperl+Fuchs — ICE2 / ICE3, MQTT(또는 OPC UA)를 통해.
- 모든 마스터 — IO-Link Community JSON 표준을 구현하거나, OPC UA 서버를 노출하거나, MQTT에 게시하거나, 포트별 REST URL(
generic)을 제공하는 것.
IO-Link 센서 및 프로세스 데이터 디코딩
- 자동 포트별 검색: 디바이스 ID, 벤더 ID, 제품명.
- 자동 재검색을 갖춘 핫플러그 감지 — 재시작 없음.
- 자동 IODD 디코딩 — IODD Finder에서 키 없는 자동 가져오기와 수동 IODD 붙여넣기 카탈로그(붙여넣은 IODD가 가져온 것보다 우선).
- 포트별 수동 YAML 디코드 사양 재정의.
- 디코드 타입:
UINT8/16/32,INT8/16/32,FLOAT32,BOOL. - 바이트 정렬 및 비트 필드 디코딩 — 예: 측정값과 상태 비트가 하나의 프로세스 데이터 워드에 묶인 경우(IODD 스타일).
- 값별 선형 스케일링(
value = raw × scale + bias) 및 엔지니어링 단위. - 디코드가 구성되지 않은 경우 원시 프로세스 데이터(16진수) 패스스루.
보안 및 인증
- OPC UA — 보안 정책(
None,Basic256Sha256,Basic256,Basic128Rsa15), 보안 모드(None,Sign,SignAndEncrypt), 그리고 클라이언트 인증서 + 개인 키. - MQTT — TLS, 선택적 CA 인증서 포함.
- OPC UA 및 MQTT를 위한 사용자명 / 비밀번호.
무엇을 얻나요
프로젝트에 앱을 설치하고 엣지 PC(게이트웨이)를 할당하세요. 그런 다음 앱 보드를 열고 설정 보기로 가서 마스터 연결을 추가하세요: 게이트웨이를 선택하고, 마스터 타입(기본값 iolink_json)을 선택하고, 마스터의 주소(타입에 따라 192.168.0.10 같은 REST URL, opc.tcp://… 엔드포인트, 또는 mqtt://… 브로커)를 입력하고, 수집 간격을 설정하세요. 연결된 센서는 IODD에서 자동으로 디코딩됩니다.
그 순간부터 앱은 마스터에서 수집하며 — HTTP 마스터를 구성된 간격으로 폴링하거나, OPC UA / MQTT를 통해 푸시된 업데이트를 수신 — 모든 값을 플릿 데이터베이스의 measurements 테이블에 저장합니다. 각 측정값은 포트의 연결 상태(그리고 가능한 경우 OPC UA 품질 및 소스 타임스탬프, 또는 MQTT 소스 토픽)를 가집니다; 마스터당 사이클당 한 행이 기록되고, 각 마스터의 실시간 온라인/오프라인 상태는 assetstatus 테이블에서 추적됩니다. 수집된 측정값은 기본적으로 3개월간 보관됩니다(조정 가능).
수동 디코드 사양 (폴백)
디코딩은 IODD를 통해 자동으로 이루어지므로 이것은 거의 필요하지 않습니다 — 센서에 공개된 IODD가 없거나 커스텀 레이아웃이 필요한 경우에만 사용하세요. 마스터의 Datapoints 필드에 YAML 배열을 넣으세요; 각 항목은 포트 프로세스 데이터의 일부를 명명되고 스케일링된 값에 매핑합니다.
- label: Temperature
port: 1
offset: 0 # byte offset into the port's process data
length: 2 # number of bytes
type: INT16 # UINT8/16/32, INT8/16/32, FLOAT32, BOOL
scale: 0.1 # value = raw × scale + bias
unit: degC비트 필드 — 값과 상태 비트를 하나의 프로세스 데이터 워드에 묶는 센서의 경우(비트는 LSB부터 계산, IODD 스타일), 예: ifm O5D 거리 센서:
- label: Distance
port: 1
type: UINT
bit_offset: 4
bit_length: 12
scale: 10
unit: mm
- label: OUT1
port: 1
type: BOOL
bit_offset: 0공통 수집기 기능
모든 IronFlock 수집기와 마찬가지로 IO-Link Collector는 브라우저에서 완전히 구성됩니다 — 파라미터 파일과 재시작 없이 내장 앱 보드에서 마스터 연결을 추가, 편집, 일시 중지하며; 폼은 선택한 전송 방식에 관련된 필드만 표시하고, 게이트웨이당 무제한의 마스터를 연결하여 벤더와 전송 방식을 자유롭게 혼합할 수 있습니다. 엣지에서 안정적입니다: 각 마스터는 격리 상태로 수집되며(도달할 수 없는 하나의 마스터가 절대 다른 것을 멈추지 않음), 게이트웨이가 플랫폼과의 연결을 잃으면 앱이 계속 읽으면서 로컬에 버퍼링한 다음 재연결 시 효율적인 대량 따라잡기를 통해 모든 것을 순서대로 전달합니다(버퍼 크기는 게이트웨이별로 구성 가능하며, 선택적 전달 전용 모드 포함). 그리고 하드웨어 없이 시도할 수 있습니다: 모든 마스터를 데모 모드로 전환하면 앱이 현실적인 센서 데이터(온도, 압력, 유량, 스위치)를 생성하므로 실제 하드웨어를 연결하기 전에 전체 경험을 탐색할 수 있습니다.
데이터 위에 구축하기
포함된 앱 보드는 들어오는 데이터에 대한 즉각적인 개요를 제공합니다. 맞춤형 표현을 위해 커스텀 대시보드를 구축하여 IO-Link 측정값을 다른 앱의 데이터와 나란히 표시하고, Data Backend를 통해 쿼리하며, 알람 앱을 사용하여 SMS 또는 이메일 알림으로 수집된 값을 실시간으로 모니터링하세요. 장비를 온라인으로 가져오고 앱을 설치하려면 디바이스 관리 및 앱 관리를 참조하세요.