SERIAL COMMUNICATION

RS-485 · RS-232 시리얼 통신 프로그램 개발

시리얼 통신은 장비와 PC가 데이터를 한 비트씩 순서대로 주고받는 방식입니다. RS-232는 PC와 장비를 짧은 거리에서 1:1로 잇고, RS-485(RS485)는 두 가닥 차동 신호선 하나에 여러 장비를 묶어 먼 거리까지 연결합니다.

program1472는 장비가 내보내는 데이터 형식을 분석해, 사람이 장비 화면을 보고 옮겨 적던 값을 프로그램이 자동으로 받아 저장하도록 만듭니다.

최종 수정

이런 현장에 필요합니다

  • 장비 화면에 뜬 숫자를 사람이 보고 엑셀에 다시 적는다
  • 장비 제조사 프로그램이 단종되어 새 윈도우에서 실행되지 않는다
  • 여러 대의 장비 값을 한 화면에서 보고 싶다
  • 측정값을 사내의 다른 시스템으로 넘기고 싶다
  • 장비에 이상이 생겨도 현장에 가 봐야만 안다
  • USB 케이블이 빠지거나 PC가 재부팅되면 수집이 멈춘다

RS-232 · RS-485 시리얼 통신 주요 기능

아래는 대표 구성이며, 실제 범위는 현장 업무에 맞춰 필요한 기능만 골라 정합니다.

통신 설정 관리

  • COM 포트·보레이트·데이터비트·패리티·스톱비트 설정(예: 9600 8N1)
  • 흐름제어(RTS/CTS, XON/XOFF) 지원
  • 장비별 설정을 파일로 저장해 장비 교체 때 그대로 재사용

프로토콜 해석

  • 장비가 계속 내보내는 ASCII 연속 출력 처리
  • PC가 요청하면 응답하는 폴링(요청-응답) 방식 처리
  • STX·ETX 같은 시작·끝 문자로 프레임 구분, 바이너리 프레임 해석
  • CRC-16·LRC·BCC 체크섬으로 깨진 데이터 걸러내기

다중 포트·다중 장비 수집

  • 여러 COM 포트를 동시에 열어 병렬 수집
  • RS-485 국번(주소)별 순차 폴링
  • 응답 타임아웃과 재시도 횟수 설정

무인 운전과 자동 복구

  • USB 변환기 분리·전원 차단 후 다시 연결되면 자동 복구
  • 윈도우 서비스 또는 시작 프로그램으로 등록
  • 장시간 운전을 고려한 로그 용량 관리

저장과 전송

  • MySQL·MariaDB·MSSQL 등 DB 저장
  • CSV·엑셀 파일 저장
  • REST API로 서버 전송, 네트워크가 끊기면 PC에 임시 보관 후 재전송

모니터링·알람

  • 실시간 값과 추세 그래프
  • 상한·하한 이탈 시 화면·소리·메시지 알림

통신 로그

  • 송수신 원문을 HEX·ASCII로 기록
  • 장애가 난 시점의 원본 데이터로 원인 추적

연동 가능한 연결 방식

시리얼 장비 연결 방식 비교
연결 방식구성이럴 때 적합합니다
PC 시리얼 포트 직결산업용 PC의 COM 포트에 장비 케이블 연결장비가 PC 가까이 있고 PC에 COM 포트가 있을 때
USB-시리얼 변환기USB에 꽂으면 가상 COM 포트로 인식일반 사무용 PC·노트북에 연결할 때
시리얼 디바이스 서버시리얼 신호를 TCP/IP로 바꿔 네트워크로 전달장비가 멀리 있거나 여러 곳에 흩어져 있을 때
RS-232↔RS-485 변환기신호 방식을 바꿔 거리를 늘리거나 여러 대를 묶음RS-232 장비 여러 대를 한 선로로 모을 때

RS-485 배선에서 먼저 확인할 것

  • 선로 양 끝에만 종단저항(일반적으로 120Ω)을 단다
  • 장비를 한 줄로 차례차례 잇는 데이지체인으로 배선하고, 별 모양으로 가지를 치는 배선은 피한다
  • 차폐가 있는 꼬임쌍선을 쓴다
  • 같은 선로의 장비 국번(주소)이 겹치지 않게 한다
  • A/B(+/−) 표기가 제조사마다 반대인 경우가 있어, 통신이 전혀 안 되면 두 선을 바꿔 본다

개발 방식

C#·VB.NET의 SerialPort, Python의 pyserial, Node.js의 serialport 가운데 현장 PC 환경에 맞는 것을 고릅니다. 개발 전에는 시리얼 모니터로 실제 송수신 데이터를 캡처해 형식을 먼저 확인합니다.

진행 방식

  1. 장비 모델명과 통신 매뉴얼(없으면 장비 후면 포트 사진)을 먼저 받아 연동 가능 여부를 확인합니다.
  2. 실제 장비에 연결해 데이터를 캡처한 뒤 화면과 저장 형식을 확정하고 개발합니다.
  3. 현장 PC에서 시운전과 병행 운영으로 누락이 없는지 확인한 뒤 인수합니다.

전체 진행 단계 자세히 보기

RS-232 · RS-485 시리얼 통신 관련 자주 묻는 질문

RS-232와 RS-485는 무엇이 다른가요?

RS-232는 PC와 장비를 1:1로, 보통 15m 안팎의 짧은 거리에서 연결합니다. RS-485(RS485)는 차동 신호를 써서 한 선로에 여러 장비를 묶을 수 있고, 저속에서는 최대 약 1.2km까지 연결할 수 있습니다.

장비 통신 매뉴얼이 없어도 개발할 수 있나요?

송수신 데이터를 캡처해 형식을 분석하는 방법으로 진행할 수 있습니다. 다만 매뉴얼이 있으면 분석 시간이 줄어 기간과 비용도 줄어듭니다. 장비 제조사나 대리점에 통신 프로토콜 문서(통신 사양서)를 요청해 보시기를 권합니다.

PC에 시리얼(COM) 포트가 없습니다.

USB-시리얼 변환기를 쓰면 일반 PC에서도 가상 COM 포트로 연결할 수 있습니다. 장비가 멀리 있다면 시리얼 신호를 네트워크로 바꿔 주는 디바이스 서버를 사용합니다.

장비가 수백 미터 떨어져 있습니다.

RS-485로 배선하거나, 장비 쪽에 시리얼 디바이스 서버를 두고 사내 네트워크를 거쳐 받는 방법이 있습니다. 현장 거리와 배선 가능 여부를 보고 맞는 방식을 제안합니다.

기존 장비 프로그램과 함께 쓸 수 있나요?

하나의 COM 포트는 한 번에 한 프로그램만 열 수 있습니다. 기존 프로그램을 대체하거나, 기존 프로그램이 남기는 파일을 읽거나, 신호를 나누는 장치를 쓰는 방식 가운데에서 검토합니다.

장비마다 보레이트나 주소가 다르면 어떻게 하나요?

보레이트·패리티·국번 같은 세부 설정은 장비 매뉴얼 값이 우선이며, 프로그램에서 장비별로 따로 설정할 수 있게 만듭니다.

관련 기술 가이드

장비 모델명만 알려 주셔도 시작할 수 있습니다

연동하려는 장비의 모델명이나 지금 쓰는 기록지 사진을 보내 주시면, 연동 가능 여부와 시작하기 좋은 범위를 먼저 알려 드립니다.

문의하기