시리얼 모니터 사용법 — RS232/422/485·Modbus RTU를 브라우저로 테스트하기

웰컴스 조회 52

RS232·RS422·RS485 장비와 통신하는 프로그램을 개발하거나 현장 장비를 점검할 때, 프로그램 설치 없이 브라우저에서 시리얼 포트에 직접 연결해 테스트하는 무료 시리얼 모니터입니다. 체크섬·CRC-16 자동 계산, 커스텀 프로토콜 프레임 조립, 자동 폴링, Modbus RTU 마스터까지 지원하며 모든 데이터는 PC 안에서만 처리됩니다.

공장·빌딩 자동화 현장의 장비를 만지다 보면 RS232·RS422·RS485로 통신하는 장비를 만나게 됩니다. 임베디드 펌웨어를 개발할 때도, 출입기·표시기·인버터 같은 현장 장비를 수리할 때도 "내가 보낸 명령에 장비가 뭐라고 답하는지" 확인해야 하는데, 이게 생각보다 번거롭습니다. 테라텀이나 PuTTY를 설치해야 하고, 프로토콜 문서를 보며 체크섬을 손으로 계산해야 하고, HEX로 입력하려면 터미널 설정을 하나하나 맞춰야 하죠. 웰 시리얼 모니터는 이 과정 전부를 브라우저 하나로 처리합니다. USB-시리얼 변환기만 있으면 설치도, 회원가입도 없이 바로 시작할 수 있습니다.

시작 전 준비 것

항목 내용
브라우저 데스크톱 Chrome 또는 Edge (Firefox·Safari·모바일은 시리얼 포트 접근 미지원)
변환기 RS232·RS422·RS485용 USB-시리얼 변환기(CH340·CP2102·FT232 등)
배선 RS232는 TX/RX 교차, RS422는 TX±/RX± 4선, RS485는 A/B 두 선 (장비 매뉴얼 확인)
장비 사양 Baud 속도·패리티·데이터비트 등은 장비 매뉴얼의 통신 설정 페이지 참고

변환기가 PC에 인식만 되어 있으면 별도 프로그램 설치는 없습니다. CH340 계열은 Windows 10/11에서 보통 드라이버가 자동으로 잡힙니다.

RS232·RS422·RS485 차이

세 표준은 전기 신호 방식의 차이일 뿐, 데이터 형식(프레임)은 완전히 같습니다. 웰 시리얼 모니터에서는 변환기만 바꾸면 사용법이 동일합니다.

구분 RS232 RS422 RS485
배선 TX/RX/GND 3선 TX±·RX± 4선 A/B 2선
통신 방식 전이중 1:1 전이중 1:N 반이중 1:N
권장 거리 약 15m 최대 약 1.2km 최대 약 1.2km
수신 장비 수 1대 최대 10대 32대(저부하 트랜시버 256대)
대표 용도 PC와 계측기 직결 장거리 전이중(프린터·분전반) 공장·빌딩 다중 슬레이브 버스

RS422는 전이중이라 송신과 수신을 동시에 할 수 있고, RS485처럼 방향 제어(DE/RE)를 신경 쓸 필요도 없습니다. 폴링 테스트 때 한 장비의 응답 지연이 버스를 막을 일이 없어 여러 장비를 나란히 두고 테스트하기에도 좋습니다.

포트 연결하기

flowchart TD
 A["USB-시리얼 변환기를 PC에 연결"] --> B["장비와 배선 — RS232는 TX/RX 교차, RS485는 A/B"]
 B --> C["포트 선택 — 목록에 없으면 새 포트 찾기"]
 C --> D["Baud·Data·Parity·Stop을 장비 사양에 맞게 설정"]
 D --> E["CONNECT 클릭"]
 E --> F{"PWR LED 점등?"}
 F -- "예" --> G["통신 준비 완료"]
 F -- "아니오" --> H["다른 프로그램의 포트 점유 여부 확인"]

상단 연결 바에서 포트를 선택하면 Baud(기본 115200), Data 비트, Parity, Stop 비트, Flow Control을 장비 사양에 맞춰 설정합니다. 목록에 포트가 보이지 않으면 "+ 새 포트 찾기…"를 선택해 브라우저 포트 선택 창을 여세요. 연결이 되면 헤더의 PWR LED가 파란색으로 점등하고 LCD 패널에 ONLINE 115200 8N1처럼 현재 통신 파라미터가 표시됩니다.

일부 장비는 DTR이나 RTS 신호가 켜져 있어야 통신을 준비합니다. 연결 바의 DTR·RTS 토글로 이 신호들을 자유롭게 켜고 끄면서 장비 반응을 볼 수 있습니다(기본값은 DTR ON). 연결 중에는 파라미터 변경이 잠기고, 해제 후 변경하고 다시 연결하면 됩니다.

화면 구성과 LED

시리얼 모니터 메인 화면 — 좌측 패널과 콘솔, 상단 LED

영역 설명
헤더 브랜드, LCD 상태 패널(ONLINE/OFFLINE·통신 파라미터), PWR/TX/RX/ERR LED, 사용 설명서·홈 버튼
연결 바 포트·Baud·통신 파라미터 설정, DTR/RTS 토글, CONNECT 버튼
좌측 패널 터미널 / 프로토콜 / Modbus / 설정 네 개 탭
우측 뷰 콘솔(실시간 송수신 로그)과 데이터(파싱된 응답 테이블) 탭
하단 상태바 ONLINE 표시, 통신 설정, TX/RX/FRAME/ERR 카운터, 접속 유지 시간

LED는 실제 계기처럼 동작합니다. PWR은 연결 중 상시 점등, TX는 데이터를 보낼 때, RX는 받을 때 깜빡이고, ERR은 응답 시간 초과나 체크섬 불일치가 생길 때 빨간색으로 점등됩니다. 장비와 말이 통하는지는 콘솔 글자보다 이 LED 먼저 보게 됩니다.

터미널 — 송수신의 기본

터미널 탭은 가장 단순한 송수신 도구입니다.

  • HEX 모드01 03 00 00 00 02처럼 바이트를 16진수로 입력합니다. 공백·쉼표·0x 접두어는 자동으로 정리되고, 자릿수가 홀수면 전송 전에 오류를 알려줍니다.
  • ASCII 모드 — 입력한 문자가 그대로 전송됩니다. *IDN?처럼 텍스트 명령을 받는 계측기에 사용합니다.
  • EOL — 전송 시 CR / LF / CRLF를 자동으로 붙여 줍니다. 줄 단위 명령을 받는 장비에 필요합니다.
  • 반복 — 입력란의 내용을 지정한 주기(ms)마다 계속 전송합니다. LED 깜빡임 테스트나 장비 상태 감시에 유용합니다.
  • 패킷 목록 — 자주 쓰는 패킷에 이름을 붙여 등록합니다. 목록 행을 클릭하면 전송 입력창으로 불러와 전송하거나 반복(자동 재전송)과 조합할 수 있고, 행별 수정·삭제도 지원합니다.
  • 바이너리 파일 전송 — 펌웨어·이미지 파일을 불러 청크 크기(바이트)와 지연(ms)을 정해 분할 전송합니다. 파일 전체의 CRC-16·SUM-8을 자동 계산·표시하므로 장비에서 받은 데이터 검증에 바로 쓸 수 있습니다.

콘솔에는 모든 송수신이 기록됩니다. TX(보낸 것)는 주황색, RX(받은 것)는 초록색으로 구분되고, 밀리초 단위 타임스탬프가 붙습니다. 상단 도구에서 표시 형식을 HEX / ASCII / BOTH로 바꾸거나, 화면을 일시정지하고, 전체 로그를 복사·저장(.txt)할 수 있습니다.

프로토콜 빌더 — 프레임 자동 조립

대부분의 시리얼 프로토콜은 아래처럼 정해진 뼈대에 데이터를 얹는 구조입니다.

flowchart LR
 A["헤더 STX"] --> B["주소 ADDR"]
 B --> C["명령 CMD"]
 C --> D["길이 LEN"]
 D --> E["데이터 DATA"]
 E --> F["체크섬 CRC·BCC"]
 F --> G["꼬리 ETX"]

프로토콜 탭에서는 이 뼈대를 한 번 정의해 두면 이후에는 데이터만 넣으면 나머지를 전부 자동으로 계산해 조립합니다.

프로토콜 빌더 — 프레임 구조 정의와 체크섬 설정, 조립 미리보기

  • 길이 필드 — 바이트 수(1~4), 엔디안(Big/Little), 보정값(+/-)과 산출 범위(데이터만 / 주소+CMD+데이터 / 전체)를 지정하면 전송 시 자동 계산됩니다.

보정(+/-)은 계산된 길이에 더하거나 빼는 상수입니다. 장비 매뉴얼마다 LEN을 제각각 정의하기 때문에 그 차이를 맞추는 용도입니다. 데이터가 16바이트일 때 예시:

산출 범위 보정 결과 LEN
데이터만 0 16 (0x10)
주소+CMD+데이터 0 18 (0x12)
데이터만 +5 21 (0x15) — 매뉴얼이 "전체 프레임 = 데이터+5"로 정의한 경우
데이터만 -1 15 (0x0F) — "첫 바이트 제외" 정의

맞춘 뒤에는 조립 미리보기의 주황색 LEN 칩을 매뉴얼의 예시 프레임과 대조해 확인하세요.

  • 체크섬 — 아래 표의 11종을 지원합니다. 삽입 위치(프레임 맨 뒤 / ETX 앞)와 계산 범위, 16비트 이상의 바이트 오더도 지정할 수 있습니다.
  • 조립 미리보기 — 입력하는 즉시 세그먼트별 색상 칩으로 프레임이 표시되므로, 프로토콜 문서와 나란히 놓고 대조하며 확인할 수 있습니다.
  • 템플릿 — 여러 프로토콜을 이름을 붙여 저장할 수 있고, 설정 탭의 내보내기/가져오기로 JSON 파일 백업도 됩니다.
체크섬 길이 주로 쓰는 곳
SUM-8 · XOR · 2's 보수 · LRC 1바이트 구형 임베디드·표시기·도어 장비
CRC-8 1바이트 소형 센서
CRC-16 MODBUS 2바이트 (Lo→Hi) Modbus RTU 표준
CRC-16 CCITT-FALSE · XMODEM · X-25 · KERMIT 2바이트 계열 장비별 자체 프로토콜
CRC-32 4바이트 무결성 검증이 중요한 프로토콜

응답 자동 파싱을 켜면 응답 프레임의 체크섬을 검증하고 순수 데이터 부분만 뽑아 데이터 탭에 기록합니다. 시각·주소·명령·데이터(HEX/ASCII)·CRC 판정(OK/NG)이 표로 쌓이고 CSV로 저장할 수 있어, 장비 응답을 케이스별로 정리해 기록으로 남기기 좋습니다.

  • 파일 첨부 (청크 전송) — 데이터 형식을 '파일'로 하면 바이너리 파일(펌웨어·이미지)을 DATA 필드로 불러와, 청크 크기로 나눠 프레임마다 길이·체크섬을 자동 계산해 순차 전송합니다. 프레임 지연(ms) 조절과 진행 표시가 함께 제공됩니다.

자동 폴링 — 주기적으로 계속 물어보기

센서값처럼 계속 변하는 데이터는 매번 버튼을 누를 수 없습니다. 폴링을 시작하면 아래 흐름을 설정한 주기로 반복합니다.

flowchart TD
 A["프레임 전송"] --> B{"타임아웃 안에 응답 수신?"}
 B -- "예" --> C["OK 통계 증가 — 데이터 탭에 기록"]
 B -- "아니오" --> D{"재시도 남았나?"}
 D -- "예" --> A
 D -- "아니오" --> E["타임아웃 기록"]
 C --> F["주기만큼 대기 후 다음 대상"]
 E --> F
 F --> A

주기(ms)·타임아웃(ms)·재시도 횟수를 지정하고 폴링 시작을 누르면 실시간으로 OK / 타임아웃 통계가 올라갑니다. 주소 모드를 "범위(폴링 순회)"로 바꾸면 시작~끝 주소를 한 바퀴씩 돌면서 여러 슬레이브를 순차 조회할 수 있어, RS485 버스에 장비가 여러 개 물려 있을 때 전체 스캔에 유용합니다.

응답기 — 장비 없이 마스터 소프트웨어 테스트

반대 상황도 있습니다. 만들어 둔 마스터 프로그램을 테스트할 때 실제 장비가 아직 없는 경우입니다. 응답기 탭에서 "수신 프레임이 이 바이트로 시작하면 이 응답을 보낸다"는 규칙을 등록하고 응답기를 켜두면, 앱이 가상 장비처럼 동작합니다.

응답기 규칙 등록 화면

  • 트리거는 수신 프레임의 접두어입니다(예: AA 01 03). 규칙은 여러 개 등록할 수 있고 위에서부터 순서대로 매칭됩니다.
  • 응답 본체는 체크섬을 뺀 나머지 바이트만 입력하면, 선택한 알고리즘(SUM-8·XOR·CRC-16 MODBUS 등)으로 체크섬이 자동 계산되어 전송 직전에 붙습니다.
  • 지연(ms)을 설정하면 실제 장비처럼 응답 타이밍을 늦출 수 있습니다. 꼬리(ETX)는 체크섬 뒤에 부가됩니다.

예를 들어 트리거 AA 01 03 · 본체 AA 01 03 04 10 02 00 0A · 체크섬 SUM-8 · 꼬리 0D로 등록해 두면, AA 01 03으로 시작하는 요청이 들어올 때 체크섬 CE가 자동 계산된 AA 01 03 04 10 02 00 0A CE 0D가 응답으로 전송됩니다. Modbus RTU 스타일의 CRC-16도 체크섬 종류를 바꾸는 것만으로 같은 방식으로 응답할 수 있습니다.

Modbus RTU 마스터

Modbus 탭은 Modbus RTU 표준을 그대로 구현한 마스터 기능입니다. 펑션 코드 키를 누르고 슬레이브 ID·시작 주소·수량(또는 쓰기 값)만 넣으면 CRC-16이 포함된 요청 프레임이 완성됩니다.

Modbus 탭 — 펑션 코드 키와 응답 레지스터 테이블

펑션 코드 동작
01 / 02 코일·입력 접점 읽기 (비 단위)
03 / 04 홀딩·입력 레지스터 읽기 (16비트 워드 단위)
05 / 06 코일 1개·레지스터 1개 쓰기
15 / 16 코일·레지스터 여러 개 한 번에 쓰기

응답은 응답 레지스터 테이블에 주소별로 표시됩니다. 값 형식은 DEC(u16/s16)·HEX·BIN 중 고를 수 있고, 두 워드를 묶어 쓰는 32비트 값은 ABCD / CDAB / BADC / DCBA 워드 순서를 선택해 INT32·UINT32·FLOAT32로 해석할 수 있습니다. 제조사마다 워드 순서가 제각각이라 같은 값이 완전히 다르게 보이는 경우가 많은데, 이 스왑 선택으로 바로 맞춰 볼 수 있습니다. 장비가 예외(0x8x)로 응답하면 예외 코드를 알려줍니다.

데이터 확인과 저장

  • 콘솔 — 모든 송수신 원본. 타임스탬프와 함께 남고 .txt로 저장하거나 클립보드로 복사할 수 있습니다.
  • 데이터 탭 — 프로토콜 파싱을 켰을 때 추출된 데이터만 시각별로 정리. CSV 저장은 엑셀에서 바로 열립니다.
  • 상태바 — TX/RX 바이트 수, 프레임 수, 오류 수, 접속 유지 시간이 항상 보입니다.

설정 탭에서는 수신 프레임 분리 갭(바이트 사이 침묵 시간)을 조절할 수 있습니다. 한 응답이 여러 줄로 쪼개져 보이면 갭을 늘리고(예: 50~100ms), 다른 응답이 한 줄로 붙으면 줄이세요.

문제해결

통신이 안 될 때는 LED부터 보면 원인이 절반은 좁혀집니다.

flowchart TD
 A["응답이 없다"] --> B{"전송 시 TX LED 깜빡?"}
 B -- "아니오" --> C["포트 연결 상태·드라이버 확인"]
 B -- "예" --> D{"RX LED는 깜빡?"}
 D -- "아니오" --> E["배속·패리티 불일치 또는 배선 확인"]
 D -- "예" --> F["프레임 갭·타임아웃 값 조정"]
증상 해결
한 응답이 여러 줄로 쪼개져 보임 설정 → 수신 프레임 분리 갭 늘리기 (50~100ms)
서로 다른 응답이 한 줄로 붙음 분리 갭 줄이기
포트가 열리지 않음 다른 시리얼 프로그램이 포트를 사용 중인지 확인 후 종료
TX는 깜빡이는데 응답 없음 배속·패리티 불일치, RS232 TX/RX 교차, RS422 TX±/RX±, RS485 A/B 반전 확인
RX만 되고 TX가 안 됨 RS485 변환기의 송신 허가(DE/RE) 자동 제어 여부 확인

자주 묻는 질문

Q. 스마트폰이나 태블릿에서도 쓸 수 있나요?
아니요. 브라우저의 시리얼 포트 접근 기능(Web Serial)이 데스크톱 Chrome과 Edge에만 있어서, 모바일·Firefox·Safari에서는 지원 안내 배너가 표시됩니다. PC의 Chrome/Edge로 접속해 주세요.

Q. 통신 데이터가 서버로 전송되나요?
아니요. 연결도 PC의 브라우저가 시리얼 포트와 직접 하고, 체크섬 계산·프로토콜 파싱도 전부 브라우저 안에서 처리합니다. 산업 현장 데이터라도 서버를 경유하지 않습니다.

Q. Modbus TCP(이더넷) 장비도 되나요?
이 버전은 시리얼(RS232/485) 통신인 Modbus RTU를 지원합니다. 브라우저 구조상 이더넷 raw 소켓 접속이 불가해 Modbus TCP는 지원하지 않습니다.

Q. 어떤 USB 변환기를 사면 되나요?
RS232·RS422·RS485용 변환기면 무방합니다(CH340·CP2102·FT232 계열). RS485 장비라면 반드시 USB-RS485 변환기, RS422 장비라면 USB-RS422 변환기를 사용하세요.

정리

준비물은 USB-시리얼 변환기와 Chrome/Edge뿐입니다. 포트를 연결해 터미널로 송수신을 확인하고, 프로토콜 빌더로 프레임을 자동 조립해 폴링을 돌리고, Modbus 장비라면 FC 키로 레지스터를 바로 읽어 보세요. 체크섬 계산과 파싱은 전부 자동이고, 모든 데이터는 PC 안에만 있습니다.

웰 시리얼 모니터 — 브라우저에서 RS232/422/485·Modbus RTU 테스트

💬 댓글 0
글보기
제목시리얼 모니터 사용법 — RS232/422/485·Modbus RTU를 브라우저로 테스트하기2026-09-11 05:04
카테고리웰컴스 Tools 설명서
작성자
RS232·RS422·RS485 장비와 통신하는 프로그램을 개발하거나 현장 장비를 점검할 때, 프로그램 설치 없이 브라우저에서 시리얼 포트에 직접 연결해 테스트하는 무료 시리얼 모니터입니다. 체크섬·CRC-16 자동 계산, 커스텀 프로토콜 프레임 조립, 자동 폴링, Modbus RTU 마스터까지 지원하며 모든 데이터는 PC 안에서만 처리됩니다.

공장·빌딩 자동화 현장의 장비를 만지다 보면 RS232·RS422·RS485로 통신하는 장비를 만나게 됩니다. 임베디드 펌웨어를 개발할 때도, 출입기·표시기·인버터 같은 현장 장비를 수리할 때도 "내가 보낸 명령에 장비가 뭐라고 답하는지" 확인해야 하는데, 이게 생각보다 번거롭습니다. 테라텀이나 PuTTY를 설치해야 하고, 프로토콜 문서를 보며 체크섬을 손으로 계산해야 하고, HEX로 입력하려면 터미널 설정을 하나하나 맞춰야 하죠. [웰 시리얼 모니터](https://www.wellcoms.co.kr/serial-monitor/)는 이 과정 전부를 브라우저 하나로 처리합니다. USB-시리얼 변환기만 있으면 설치도, 회원가입도 없이 바로 시작할 수 있습니다.

## 시작 전 준비 것

| 항목 | 내용 |
| --- | --- |
| 브라우저 | 데스크톱 Chrome 또는 Edge (Firefox·Safari·모바일은 시리얼 포트 접근 미지원) |
| 변환기 | RS232·RS422·RS485용 USB-시리얼 변환기(CH340·CP2102·FT232 등) |
| 배선 | RS232는 TX/RX 교차, RS422는 TX±/RX± 4선, RS485는 A/B 두 선 (장비 매뉴얼 확인) |
| 장비 사양 | Baud 속도·패리티·데이터비트 등은 장비 매뉴얼의 통신 설정 페이지 참고 |

변환기가 PC에 인식만 되어 있으면 별도 프로그램 설치는 없습니다. CH340 계열은 Windows 10/11에서 보통 드라이버가 자동으로 잡힙니다.

## RS232·RS422·RS485 차이

세 표준은 전기 신호 방식의 차이일 뿐, 데이터 형식(프레임)은 완전히 같습니다. 웰 시리얼 모니터에서는 변환기만 바꾸면 사용법이 동일합니다.

| 구분 | RS232 | RS422 | RS485 |
| --- | --- | --- | --- |
| 배선 | TX/RX/GND 3선 | TX±·RX± 4선 | A/B 2선 |
| 통신 방식 | 전이중 1:1 | 전이중 1:N | 반이중 1:N |
| 권장 거리 | 약 15m | 최대 약 1.2km | 최대 약 1.2km |
| 수신 장비 수 | 1대 | 최대 10대 | 32대(저부하 트랜시버 256대) |
| 대표 용도 | PC와 계측기 직결 | 장거리 전이중(프린터·분전반) | 공장·빌딩 다중 슬레이브 버스 |

RS422는 전이중이라 송신과 수신을 동시에 할 수 있고, RS485처럼 방향 제어(DE/RE)를 신경 쓸 필요도 없습니다. 폴링 테스트 때 한 장비의 응답 지연이 버스를 막을 일이 없어 여러 장비를 나란히 두고 테스트하기에도 좋습니다.

## 포트 연결하기

```mermaid
flowchart TD
A["USB-시리얼 변환기를 PC에 연결"] --> B["장비와 배선 — RS232는 TX/RX 교차, RS485는 A/B"]
B --> C["포트 선택 — 목록에 없으면 새 포트 찾기"]
C --> D["Baud·Data·Parity·Stop을 장비 사양에 맞게 설정"]
D --> E["CONNECT 클릭"]
E --> F{"PWR LED 점등?"}
F -- "예" --> G["통신 준비 완료"]
F -- "아니오" --> H["다른 프로그램의 포트 점유 여부 확인"]
```

상단 연결 바에서 포트를 선택하면 Baud(기본 115200), Data 비트, Parity, Stop 비트, Flow Control을 장비 사양에 맞춰 설정합니다. 목록에 포트가 보이지 않으면 "+ 새 포트 찾기…"를 선택해 브라우저 포트 선택 창을 여세요. 연결이 되면 헤더의 **PWR LED가 파란색으로 점등**하고 LCD 패널에 `ONLINE 115200 8N1`처럼 현재 통신 파라미터가 표시됩니다.

일부 장비는 DTR이나 RTS 신호가 켜져 있어야 통신을 준비합니다. 연결 바의 **DTR·RTS 토글**로 이 신호들을 자유롭게 켜고 끄면서 장비 반응을 볼 수 있습니다(기본값은 DTR ON). 연결 중에는 파라미터 변경이 잠기고, 해제 후 변경하고 다시 연결하면 됩니다.

## 화면 구성과 LED

![시리얼 모니터 메인 화면 — 좌측 패널과 콘솔, 상단 LED](/wp-content/uploads/well-tools-guide/serial-메인화면.png "터미널 탭과 연결 바, TX/RX LED가 보이는 메인 화면")

| 영역 | 설명 |
| --- | --- |
| 헤더 | 브랜드, LCD 상태 패널(ONLINE/OFFLINE·통신 파라미터), PWR/TX/RX/ERR LED, 사용 설명서·홈 버튼 |
| 연결 바 | 포트·Baud·통신 파라미터 설정, DTR/RTS 토글, CONNECT 버튼 |
| 좌측 패널 | 터미널 / 프로토콜 / Modbus / 설정 네 개 탭 |
| 우측 뷰 | 콘솔(실시간 송수신 로그)과 데이터(파싱된 응답 테이블) 탭 |
| 하단 상태바 | ONLINE 표시, 통신 설정, TX/RX/FRAME/ERR 카운터, 접속 유지 시간 |

LED는 실제 계기처럼 동작합니다. **PWR**은 연결 중 상시 점등, **TX**는 데이터를 보낼 때, **RX**는 받을 때 깜빡이고, **ERR**은 응답 시간 초과나 체크섬 불일치가 생길 때 빨간색으로 점등됩니다. 장비와 말이 통하는지는 콘솔 글자보다 이 LED 먼저 보게 됩니다.

## 터미널 — 송수신의 기본

터미널 탭은 가장 단순한 송수신 도구입니다.

- **HEX 모드** — `01 03 00 00 00 02`처럼 바이트를 16진수로 입력합니다. 공백·쉼표·`0x` 접두어는 자동으로 정리되고, 자릿수가 홀수면 전송 전에 오류를 알려줍니다.
- **ASCII 모드** — 입력한 문자가 그대로 전송됩니다. `*IDN?`처럼 텍스트 명령을 받는 계측기에 사용합니다.
- **EOL** — 전송 시 CR / LF / CRLF를 자동으로 붙여 줍니다. 줄 단위 명령을 받는 장비에 필요합니다.
- **반복** — 입력란의 내용을 지정한 주기(ms)마다 계속 전송합니다. LED 깜빡임 테스트나 장비 상태 감시에 유용합니다.
- **패킷 목록** — 자주 쓰는 패킷에 이름을 붙여 등록합니다. 목록 행을 클릭하면 전송 입력창으로 불러와 전송하거나 반복(자동 재전송)과 조합할 수 있고, 행별 수정·삭제도 지원합니다.
- **바이너리 파일 전송** — 펌웨어·이미지 파일을 불러 청크 크기(바이트)와 지연(ms)을 정해 분할 전송합니다. 파일 전체의 CRC-16·SUM-8을 자동 계산·표시하므로 장비에서 받은 데이터 검증에 바로 쓸 수 있습니다.

콘솔에는 모든 송수신이 기록됩니다. **TX(보낸 것)는 주황색, RX(받은 것)는 초록색**으로 구분되고, 밀리초 단위 타임스탬프가 붙습니다. 상단 도구에서 표시 형식을 HEX / ASCII / BOTH로 바꾸거나, 화면을 일시정지하고, 전체 로그를 복사·저장(.txt)할 수 있습니다.

## 프로토콜 빌더 — 프레임 자동 조립

대부분의 시리얼 프로토콜은 아래처럼 정해진 뼈대에 데이터를 얹는 구조입니다.

```mermaid
flowchart LR
A["헤더 STX"] --> B["주소 ADDR"]
B --> C["명령 CMD"]
C --> D["길이 LEN"]
D --> E["데이터 DATA"]
E --> F["체크섬 CRC·BCC"]
F --> G["꼬리 ETX"]
```

프로토콜 탭에서는 이 뼈대를 한 번 정의해 두면 이후에는 **데이터만 넣으면 나머지를 전부 자동으로 계산해 조립**합니다.

![프로토콜 빌더 — 프레임 구조 정의와 체크섬 설정, 조립 미리보기](/wp-content/uploads/well-tools-guide/serial-프로토콜빌더.png "헤더·주소·CMD·길이·체크섬을 정의하면 색상 미리보기로 프레임이 조립된다")

- **길이 필드** — 바이트 수(1~4), 엔디안(Big/Little), 보정값(+/-)과 산출 범위(데이터만 / 주소+CMD+데이터 / 전체)를 지정하면 전송 시 자동 계산됩니다.

**보정(+/-)**은 계산된 길이에 더하거나 빼는 상수입니다. 장비 매뉴얼마다 LEN을 제각각 정의하기 때문에 그 차이를 맞추는 용도입니다. 데이터가 16바이트일 때 예시:

| 산출 범위 | 보정 | 결과 LEN |
| --- | --- | --- |
| 데이터만 | 0 | 16 (0x10) |
| 주소+CMD+데이터 | 0 | 18 (0x12) |
| 데이터만 | +5 | 21 (0x15) — 매뉴얼이 "전체 프레임 = 데이터+5"로 정의한 경우 |
| 데이터만 | -1 | 15 (0x0F) — "첫 바이트 제외" 정의 |

맞춘 뒤에는 조립 미리보기의 주황색 LEN 칩을 매뉴얼의 예시 프레임과 대조해 확인하세요.
- **체크섬** — 아래 표의 11종을 지원합니다. 삽입 위치(프레임 맨 뒤 / ETX 앞)와 계산 범위, 16비트 이상의 바이트 오더도 지정할 수 있습니다.
- **조립 미리보기** — 입력하는 즉시 세그먼트별 색상 칩으로 프레임이 표시되므로, 프로토콜 문서와 나란히 놓고 대조하며 확인할 수 있습니다.
- **템플릿** — 여러 프로토콜을 이름을 붙여 저장할 수 있고, 설정 탭의 내보내기/가져오기로 JSON 파일 백업도 됩니다.

| 체크섬 | 길이 | 주로 쓰는 곳 |
| --- | --- | --- |
| SUM-8 · XOR · 2's 보수 · LRC | 1바이트 | 구형 임베디드·표시기·도어 장비 |
| CRC-8 | 1바이트 | 소형 센서 |
| CRC-16 MODBUS | 2바이트 (Lo→Hi) | Modbus RTU 표준 |
| CRC-16 CCITT-FALSE · XMODEM · X-25 · KERMIT | 2바이트 | 계열 장비별 자체 프로토콜 |
| CRC-32 | 4바이트 | 무결성 검증이 중요한 프로토콜 |

**응답 자동 파싱**을 켜면 응답 프레임의 체크섬을 검증하고 순수 데이터 부분만 뽑아 데이터 탭에 기록합니다. 시각·주소·명령·데이터(HEX/ASCII)·CRC 판정(OK/NG)이 표로 쌓이고 CSV로 저장할 수 있어, 장비 응답을 케이스별로 정리해 기록으로 남기기 좋습니다.
- **파일 첨부 (청크 전송)** — 데이터 형식을 '파일'로 하면 바이너리 파일(펌웨어·이미지)을 DATA 필드로 불러와, 청크 크기로 나눠 **프레임마다 길이·체크섬을 자동 계산**해 순차 전송합니다. 프레임 지연(ms) 조절과 진행 표시가 함께 제공됩니다.

## 자동 폴링 — 주기적으로 계속 물어보기

센서값처럼 계속 변하는 데이터는 매번 버튼을 누를 수 없습니다. 폴링을 시작하면 아래 흐름을 설정한 주기로 반복합니다.

```mermaid
flowchart TD
A["프레임 전송"] --> B{"타임아웃 안에 응답 수신?"}
B -- "예" --> C["OK 통계 증가 — 데이터 탭에 기록"]
B -- "아니오" --> D{"재시도 남았나?"}
D -- "예" --> A
D -- "아니오" --> E["타임아웃 기록"]
C --> F["주기만큼 대기 후 다음 대상"]
E --> F
F --> A
```

주기(ms)·타임아웃(ms)·재시도 횟수를 지정하고 **폴링 시작**을 누르면 실시간으로 OK / 타임아웃 통계가 올라갑니다. 주소 모드를 "범위(폴링 순회)"로 바꾸면 시작~끝 주소를 한 바퀴씩 돌면서 여러 슬레이브를 순차 조회할 수 있어, RS485 버스에 장비가 여러 개 물려 있을 때 전체 스캔에 유용합니다.

## 응답기 — 장비 없이 마스터 소프트웨어 테스트

반대 상황도 있습니다. 만들어 둔 마스터 프로그램을 테스트할 때 실제 장비가 아직 없는 경우입니다. 응답기 탭에서 "수신 프레임이 이 바이트로 시작하면 이 응답을 보낸다"는 규칙을 등록하고 응답기를 켜두면, 앱이 가상 장비처럼 동작합니다.

![응답기 규칙 등록 화면](/wp-content/uploads/well-tools-guide/serial-응답기.png "트리거와 응답 본체를 등록하면 체크섬이 자동 계산된 미리보기가 표시된다")

- **트리거**는 수신 프레임의 접두어입니다(예: `AA 01 03`). 규칙은 여러 개 등록할 수 있고 위에서부터 순서대로 매칭됩니다.
- **응답 본체**는 체크섬을 뺀 나머지 바이트만 입력하면, 선택한 알고리즘(SUM-8·XOR·CRC-16 MODBUS 등)으로 체크섬이 자동 계산되어 전송 직전에 붙습니다.
- **지연(ms)**을 설정하면 실제 장비처럼 응답 타이밍을 늦출 수 있습니다. 꼬리(ETX)는 체크섬 뒤에 부가됩니다.

예를 들어 트리거 `AA 01 03` · 본체 `AA 01 03 04 10 02 00 0A` · 체크섬 SUM-8 · 꼬리 `0D`로 등록해 두면, `AA 01 03`으로 시작하는 요청이 들어올 때 체크섬 `CE`가 자동 계산된 `AA 01 03 04 10 02 00 0A CE 0D`가 응답으로 전송됩니다. Modbus RTU 스타일의 CRC-16도 체크섬 종류를 바꾸는 것만으로 같은 방식으로 응답할 수 있습니다.
## Modbus RTU 마스터

Modbus 탭은 Modbus RTU 표준을 그대로 구현한 마스터 기능입니다. 펑션 코드 키를 누르고 슬레이브 ID·시작 주소·수량(또는 쓰기 값)만 넣으면 CRC-16이 포함된 요청 프레임이 완성됩니다.

![Modbus 탭 — 펑션 코드 키와 응답 레지스터 테이블](/wp-content/uploads/well-tools-guide/serial-modbus.png "FC 01~16 키로 요청을 만들고 응답 레지스터를 표로 확인한다")

| 펑션 코드 | 동작 |
| --- | --- |
| 01 / 02 | 코일·입력 접점 읽기 (비 단위) |
| 03 / 04 | 홀딩·입력 레지스터 읽기 (16비트 워드 단위) |
| 05 / 06 | 코일 1개·레지스터 1개 쓰기 |
| 15 / 16 | 코일·레지스터 여러 개 한 번에 쓰기 |

응답은 **응답 레지스터 테이블**에 주소별로 표시됩니다. 값 형식은 DEC(u16/s16)·HEX·BIN 중 고를 수 있고, 두 워드를 묶어 쓰는 32비트 값은 **ABCD / CDAB / BADC / DCBA** 워드 순서를 선택해 INT32·UINT32·FLOAT32로 해석할 수 있습니다. 제조사마다 워드 순서가 제각각이라 같은 값이 완전히 다르게 보이는 경우가 많은데, 이 스왑 선택으로 바로 맞춰 볼 수 있습니다. 장비가 예외(0x8x)로 응답하면 예외 코드를 알려줍니다.

## 데이터 확인과 저장

- **콘솔** — 모든 송수신 원본. 타임스탬프와 함께 남고 .txt로 저장하거나 클립보드로 복사할 수 있습니다.
- **데이터 탭** — 프로토콜 파싱을 켰을 때 추출된 데이터만 시각별로 정리. CSV 저장은 엑셀에서 바로 열립니다.
- **상태바** — TX/RX 바이트 수, 프레임 수, 오류 수, 접속 유지 시간이 항상 보입니다.

설정 탭에서는 수신 프레임 분리 갭(바이트 사이 침묵 시간)을 조절할 수 있습니다. 한 응답이 여러 줄로 쪼개져 보이면 갭을 늘리고(예: 50~100ms), 다른 응답이 한 줄로 붙으면 줄이세요.

## 문제해결

통신이 안 될 때는 LED부터 보면 원인이 절반은 좁혀집니다.

```mermaid
flowchart TD
A["응답이 없다"] --> B{"전송 시 TX LED 깜빡?"}
B -- "아니오" --> C["포트 연결 상태·드라이버 확인"]
B -- "예" --> D{"RX LED는 깜빡?"}
D -- "아니오" --> E["배속·패리티 불일치 또는 배선 확인"]
D -- "예" --> F["프레임 갭·타임아웃 값 조정"]
```

| 증상 | 해결 |
| --- | --- |
| 한 응답이 여러 줄로 쪼개져 보임 | 설정 → 수신 프레임 분리 갭 늘리기 (50~100ms) |
| 서로 다른 응답이 한 줄로 붙음 | 분리 갭 줄이기 |
| 포트가 열리지 않음 | 다른 시리얼 프로그램이 포트를 사용 중인지 확인 후 종료 |
| TX는 깜빡이는데 응답 없음 | 배속·패리티 불일치, RS232 TX/RX 교차, RS422 TX±/RX±, RS485 A/B 반전 확인 |
| RX만 되고 TX가 안 됨 | RS485 변환기의 송신 허가(DE/RE) 자동 제어 여부 확인 |

## 자주 묻는 질문

**Q. 스마트폰이나 태블릿에서도 쓸 수 있나요?**
아니요. 브라우저의 시리얼 포트 접근 기능(Web Serial)이 데스크톱 Chrome과 Edge에만 있어서, 모바일·Firefox·Safari에서는 지원 안내 배너가 표시됩니다. PC의 Chrome/Edge로 접속해 주세요.

**Q. 통신 데이터가 서버로 전송되나요?**
아니요. 연결도 PC의 브라우저가 시리얼 포트와 직접 하고, 체크섬 계산·프로토콜 파싱도 전부 브라우저 안에서 처리합니다. 산업 현장 데이터라도 서버를 경유하지 않습니다.

**Q. Modbus TCP(이더넷) 장비도 되나요?**
이 버전은 시리얼(RS232/485) 통신인 Modbus RTU를 지원합니다. 브라우저 구조상 이더넷 raw 소켓 접속이 불가해 Modbus TCP는 지원하지 않습니다.

**Q. 어떤 USB 변환기를 사면 되나요?**
RS232·RS422·RS485용 변환기면 무방합니다(CH340·CP2102·FT232 계열). RS485 장비라면 반드시 USB-RS485 변환기, RS422 장비라면 USB-RS422 변환기를 사용하세요.

## 정리

준비물은 USB-시리얼 변환기와 Chrome/Edge뿐입니다. 포트를 연결해 터미널로 송수신을 확인하고, 프로토콜 빌더로 프레임을 자동 조립해 폴링을 돌리고, Modbus 장비라면 FC 키로 레지스터를 바로 읽어 보세요. 체크섬 계산과 파싱은 전부 자동이고, 모든 데이터는 PC 안에만 있습니다.

▶ [웰 시리얼 모니터 — 브라우저에서 RS232/422/485·Modbus RTU 테스트](https://www.wellcoms.co.kr/serial-monitor/)
댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)
목록으로