모드버스 TCP 통신 (Modbus TCP)

산업 자동화의 표준 프로토콜인 Modbus TCP를 통해 현장의 PLC 및 DDC 장비와 데이터를 주고받는 통신 연동 방법을 학습합니다.

1 Modbus TCP 개요

Modbus TCP는 산업용 전자 장치 간의 통신을 위해 1979년 Modicon(현재 Schneider Electric)에서 개발한 직렬 통신 프로토콜인 Modbus를 이더넷 환경(TCP/IP)에 맞게 확장한 표준 프로토콜입니다.

  • 범용성: 무료로 제한 없이 사용할 수 있어 전 세계 대부분의 산업용 플랫폼(PLC, HMI, 인버터 등)에서 지원합니다.
  • 클라이언트-서버 구조: K-SCADA 프로그램이 클라이언트(Master)가 되어 현장 장비인 서버(Slave)에게 데이터를 요청하고 응답을 받습니다.
  • 기본 포트번호: 502 번을 사용합니다.

2 Modbus 데이터 모델 (메모리 맵)

Modbus는 장비의 데이터를 4가지 메모리 영역으로 나누어 관리합니다. 태그를 생성할 때 장비 제조사의 메모리 맵(Memory Map) 매뉴얼을 참조하여 올바른 주소를 매핑해야 합니다.

데이터 영역 (Table)오브젝트 타입접근 권한주소 범위설명 (예시)
Coil (0x)단일 비트 (Bit)Read-Write00001 ~ 09999장비의 디지털 출력 상태 (ex. 펌프 기동/정지 명령)
Discrete Input (1x)단일 비트 (Bit)Read-Only10001 ~ 19999장비의 디지털 입력 상태 (ex. 밸브 열림/닫힘 감지, 알람 접점)
Input Register (3x)16비트 워드 (Word)Read-Only30001 ~ 39999아날로그 입력 값 (ex. 현재 온도, 압력 센서 측정값)
Holding Register (4x)16비트 워드 (Word)Read-Write40001 ~ 49999아날로그 출력/설정 값 (ex. 목표 온도 설정값, PID 제어 파라미터)

3 K-SCADA 통신 연동 실습 가이드

Step 1. 디바이스 추가

K-SCADA 편집기 상단의 [통신 설정] 메뉴를 열고, Modbus TCP 디바이스 추가 버튼을 클릭합니다. 연결할 PLC 장비의 IP 주소와 통신 포트(보통 502)를 입력합니다.

Step 2. I/O 태그 생성 및 메모리 주소 매핑

태그 데이터베이스 화면에서 새 태그를 추가합니다. 장비 매뉴얼이 '온도값: Holding Register 40010'을 가리킨다고 가정하면, 데이터 타입을 FLOAT 또는 INT로 선택하고 I/O 주소란에 40010 지정합니다.

Step 3. 런타임 통신 확인

설정 후 통신 시작(런타임) 버튼을 눌러 상태 표시줄의 디바이스 연결 상태가 초록색(온라인)으로 변하는지 확인합니다. 태그 데이터 브라우저를 열어 값이 실시간으로 갱신되는지 모니터링합니다.

통신 장애 해결 Tip:

통신이 연결되지 않을 때는 가장 먼저 PC의 명령 프롬프트(CMD)에서 ping [설비 IP]를 입력하여 네트워크 물리적 연결 상태를 점검하세요. 핑 통신이 정상이라면 방화벽 설정(포트 502 예외처리)이 막혀있는지 확인해야 합니다.