MQTTBL192 설정

BL192 MQTT 설정 가이드

BL192 를 MQTT 브로커에 붙여 I/O 값을 올리고 출력을 제어하기까지의 절차입니다. 화면은 펌웨어 V1.1.16 기준이며, 판올림에 따라 배치가 조금 다를 수 있습니다.

시작 전 준비

  • BL192 의 ETH 0 를 PC 와 같은 네트워크에 연결합니다. 공장 출하 IP 는 192.168.3.2 입니다.
  • PC 의 IP 를 같은 대역(예: 192.168.3.1)으로 맞춥니다.
  • 브로커로 쓸 PC 에서 1883 포트가 방화벽에 막혀 있지 않은지 확인합니다.
  • 브로커는 Mosquitto·EMQX 같은 정식 제품을 권합니다. 현장 시험만 하실 때는 아래 예제 브로커로도 충분합니다.

브로커나 수집 프로그램을 직접 만드실 때는 MQTT 브로커·클라이언트 구현 가이드를 함께 보십시오.

Step 1웹 설정 화면 로그인

1. 웹 설정 화면 로그인

브라우저 주소창에 BL192 의 IP 를 넣으면 로그인 화면이 나옵니다.

보안 주의
출고 상태에는 관리자 비밀번호가 지정되어 있지 않습니다. 현장에 설치하기 전에 System 메뉴에서 반드시 비밀번호를 지정하십시오. 설비망이라도 비밀번호 없이 두면 누구나 출력을 조작할 수 있습니다.
브라우저에서 http://192.168.3.2 로 접속한 화면
브라우저에서 http://192.168.3.2 로 접속한 화면
Step 2펌웨어와 상태 확인

2. 펌웨어와 상태 확인

로그인하면 Status 화면이 열립니다. 모델명과 펌웨어 버전을 먼저 확인해 두시면 기술 문의 때 빠릅니다.

Local Time 이 실제 시각과 다르면 MQTT 로 올라오는 time 값도 그대로 어긋납니다. 시각 동기가 필요하면 System 메뉴에서 NTP 를 설정하십시오.

Status 화면 — 모델명, 펌웨어 버전, 가동 시간
Status 화면 — 모델명, 펌웨어 버전, 가동 시간
Step 3I/O 모듈과 레지스터 주소 확인

3. I/O 모듈과 레지스터 주소 확인

장착한 Y 보드가 슬롯 순서대로 인식되었는지 확인합니다.

여기 나오는 Modbus Address 가 MQTT 식별자의 번호가 됩니다. 예를 들어 2슬롯 Y24 의 DO 가 1000~1003 이면 MQTT 에서는 REG1000~REG1003 입니다.

이 화면을 캡처해 두시면 나중에 어느 채널이 어느 번호인지 찾기 쉽습니다.

I/O Module → IO status — 슬롯별 모듈과 Modbus 주소
I/O Module → IO status — 슬롯별 모듈과 Modbus 주소
Step 4Cloud platform → Custom Cloud

4. Cloud platform → Custom Cloud

직접 세운 브로커에 붙일 때는 Custom Cloud 를 씁니다. Ali Cloud · AWS · Huawei · ThingsBoard 는 각 플랫폼 전용 항목입니다.

상단 메뉴에서 Cloud platform → Custom Cloud
상단 메뉴에서 Cloud platform → Custom Cloud
Step 5연결 추가

5. 연결 추가

Add 를 눌러 새 연결을 만듭니다. 등록이 끝나면 목록의 Connect State 가 Connected 로 바뀝니다.

Enable 체크를 풀면 설정은 남긴 채 연결만 끊을 수 있습니다.

Add 로 연결을 추가하면 목록에 나타납니다
Add 로 연결을 추가하면 목록에 나타납니다
Step 6연결 항목 입력

6. 연결 항목 입력

아래 표가 각 항목의 뜻입니다. 입력이 끝나면 오른쪽 아래 Save & Apply 를 눌러야 적용됩니다.

Custom Cloud 설정 항목
Custom Cloud 설정 항목
설정 항목
Cloud platformCustom Cloud — 직접 세운 브로커에 붙일 때 선택합니다.
Cloud Name설정을 구분하는 이름입니다. 동작에는 영향이 없습니다.
Host IP or Domain브로커가 도는 PC·서버의 IP 또는 도메인. BL192 자신의 IP 가 아닙니다.
Port브로커 포트. 일반적으로 1883(평문), TLS 는 8883.
MQTT Client ID브로커가 장치를 구분하는 이름입니다. 여러 대를 붙일 때는 반드시 서로 다르게 지정하십시오. 같으면 뒤에 붙은 장치가 앞의 연결을 끊습니다.
User Name · Password브로커에 인증을 걸었을 때만 채웁니다. 비워 두면 익명 접속입니다.
EncryptionTLS 사용 여부. 사내망 밖으로 내보내신다면 켜십시오.
Publish data formatDefault data format 이면 평면 JSON 으로 올라갑니다.
Publish Topic장치가 값을 올리는 토픽. 수집 프로그램은 이 토픽을 구독합니다.
Subscribe Topic장치가 명령을 받는 토픽. 출력 제어는 이 토픽으로 보냅니다.
Publish Period(s)올리는 주기(초). 1 이면 1초마다 전체 채널을 보냅니다.
Publisher QOS0=최대 한 번, 1=최소 한 번. 값이 빠지면 안 되는 용도라면 1 로 두십시오.
Data Retransmission Enable연결이 끊긴 동안의 데이터를 복구 후 다시 보냅니다.
Data packing · Number of data여러 채널을 한 메시지에 묶습니다. 20 이면 최대 20개씩 묶입니다.
Publish when data changes켜면 주기와 무관하게 값이 바뀔 때 보냅니다. 통신량을 크게 줄일 수 있습니다.
Payload데이터 형식

올라오는 데이터 형식

Default data format 으로 올라오는 메시지는 아래와 같은 평면 JSON 입니다. 키의 REG 뒤 번호가 곧 Modbus 주소입니다.

{
  "REG2000": 0, "REG2001": 0, "REG2002": 0, "REG2003": 0,
  "REG2004": 1, "REG2005": 0, "REG2006": 0, "REG2007": 0,
  "REG1000": 0, "REG1001": 0, "REG1002": 0, "REG1003": 0,
  "ipv4-address": "192.168.3.2",
  "time": 1107303581,
  "seq": 1
}
레지스터 번호와 채널 종류
Modbus 주소MQTT 식별자채널 종류접근
1000 ~ 1999REG1000 …디지털 출력 (DO)읽기 · 쓰기
2000 ~ 2999REG2000 …디지털 입력 (DI)읽기 전용
3000 ~ 3999REG3000 …아날로그 입력 (AI)읽기 전용
4000 ~ 4999REG4000 …아날로그 출력 (AO)읽기 · 쓰기
5000 ~ 8999REG5000 …펄스 출력 · DI 카운팅읽기 · 쓰기

BL192·BL192Pro 사용자 매뉴얼 4.3 Modbus 레지스터 매핑 기준입니다. 실제 장착 구성에 따른 번호는 IO status 화면에서 확인하십시오.

출력 제어

구독 토픽(예: BL192-SUB)으로 아래와 같은 JSON 을 보내면 해당 채널이 바뀝니다.

DI 처럼 읽기 전용인 주소로 보내면 무시됩니다.

{ "REG1000": 1 }
Verify동작 확인

브로커에서 확인하기

설정이 끝나면 브로커 쪽에서 접속과 메시지가 보이는지 확인합니다. 아래 화면은 어큐시스가 제공하는 Windows 시험 도구로 확인한 것입니다. 설치 없이 실행되며, 브로커·클라이언트와 전체 소스가 함께 들어 있습니다.

  1. 압축을 푼 폴더에서 mqtt_broker_gui.exe 를 실행합니다.
  2. 포트가 1883 인지 확인하고 [시작] 을 누릅니다. Windows 방화벽 경고가 뜨면 반드시 [액세스 허용] 을 눌러야 장치가 붙습니다.
  3. BL192 의 Host IP or Domain 에 이 PC 의 IP 를 넣고 Save & Apply 를 누릅니다.
  4. 왼쪽 목록에 장치가 나타나고 오른쪽 로그에 값이 올라오면 정상입니다.
실행 전 확인
코드 서명이 되어 있지 않아 Windows SmartScreen 이나 백신이 경고를 띄울 수 있습니다. 사내 보안 정책상 실행이 어려우시면 함께 들어 있는 소스를 직접 빌드해 쓰십시오(build.bat · Visual Studio 필요). 시험용이므로 외부망에 열린 PC 에서는 쓰지 마시고, 확인이 끝나면 프로그램을 종료하십시오.
브로커를 실행하면 처음에는 중지 상태입니다
브로커를 실행하면 처음에는 중지 상태입니다
장치가 응답할 때까지 기다리게 해 둘 수도 있습니다 (ICMP 확인)
장치가 응답할 때까지 기다리게 해 둘 수도 있습니다 (ICMP 확인)
시작을 누르면 지정한 포트에서 대기합니다
시작을 누르면 지정한 포트에서 대기합니다
BL192 가 접속하면 클라이언트 목록과 통계에 나타납니다
BL192 가 접속하면 클라이언트 목록과 통계에 나타납니다
수신 메시지 — 주기마다 전체 채널 값이 올라옵니다
수신 메시지 — 주기마다 전체 채널 값이 올라옵니다

브로커·수집 프로그램을 직접 만드실 때의 예제 코드는 구현 가이드에 있습니다.

Trouble문제 해결

잘 안 될 때

Connect State 가 Connected 로 바뀌지 않습니다Host IP 가 브로커 PC 의 IP 인지, 1883 포트가 방화벽에 막혀 있지 않은지 확인하십시오. BL192 에서 그 PC 로 ping 이 가는지부터 보시면 빠릅니다.
연결은 되는데 메시지가 오지 않습니다수집 프로그램이 구독한 토픽과 BL192 의 Publish Topic 이 정확히 같아야 합니다. 대소문자도 구분합니다.
잠시 붙었다가 계속 끊깁니다같은 MQTT Client ID 를 쓰는 장치가 또 있는지 확인하십시오. 브로커는 같은 ID 의 기존 연결을 끊습니다.
값이 전부 0 으로만 올라옵니다IO status 에서 모듈이 정상으로 인식되었는지, 구독 중인 레지스터 번호가 그 슬롯의 주소와 맞는지 확인하십시오.
time 값이 엉뚱합니다장치 시각이 동기되지 않은 상태입니다. System 메뉴에서 NTP 를 설정하시거나, 수집 쪽에서 수신 시각을 쓰십시오.
출력 제어 명령이 먹지 않습니다Subscribe Topic 으로 보내고 계신지, 쓰기가 가능한 주소(DO·AO)인지 확인하십시오.

그래도 해결되지 않으면 설정 화면과 브로커 로그를 함께 보내 주십시오. 기술 문의 →