본문 바로가기
Computer Science/CS 지식

[Modbus] Modscan & Modsim 으로 TCP 통신하기

by rnasterofmysea 2025. 3. 9.
728x90
반응형

 

ModscanModsim은 Modbus 프로토콜을 사용하는 장치와 통신을 테스트하고 시뮬레이션하는 도구입니다. 이들은 산업 자동화, SCADA 시스템, PLC(Programmable Logic Controller) 및 기타 Modbus 기반 장치의 진단과 디버깅에 유용합니다.


1. Modscan

  • 개발사: WinTECH Software
  • 용도: Modbus 장치의 데이터를 모니터링하고 테스트하는 Modbus 마스터 시뮬레이터
  • 주요 기능:
    • Modbus RTU, ASCII, TCP/IP를 지원
    • 특정 Modbus 주소를 폴링하여 데이터 값을 읽고 분석 가능
    • 여러 데이터 형식(정수, 부동소수점, 바이트 등)으로 값을 표시
    • 연속적으로 데이터를 요청하고 응답 시간을 측정하여 성능 분석 가능
    • 통신 오류 감지 및 디버깅 기능 제공
  • 활용 예시:
    • PLC와의 통신 테스트
    • SCADA 시스템의 데이터 확인
    • Modbus 네트워크 문제 해결

2. Modsim

  • 개발사: WinTECH Software
  • 용도: Modbus 장치를 에뮬레이션하는 Modbus 슬레이브 시뮬레이터
  • 주요 기능:
    • Modbus RTU, ASCII, TCP/IP 프로토콜 지원
    • PLC 또는 SCADA 시스템이 요청하는 데이터를 가상으로 제공
    • 다양한 데이터 유형(코일, 입력, 홀딩 레지스터, 입력 레지스터) 설정 가능
    • Modbus 마스터 소프트웨어(예: Modscan)와 연동하여 테스트 가능
  • 활용 예시:
    • SCADA/PLC 시스템이 올바르게 데이터를 읽는지 검증
    • Modbus 장치 없이도 네트워크 테스트 가능
    • 통신 프로토콜 및 데이터 매핑 테스트

Modscan vs. Modsim 비교

기능 Modscan Modsim

역할 Modbus 마스터 (테스트) Modbus 슬레이브 (시뮬레이션)
사용 목적 Modbus 장치 모니터링 및 데이터 요청 Modbus 장치 에뮬레이션
프로토콜 지원 Modbus RTU, ASCII, TCP/IP Modbus RTU, ASCII, TCP/IP
주요 기능 데이터 조회, 통신 테스트, 오류 감지 데이터 제공, 가상 장치 시뮬레이션
사용 예 PLC/SCADA 테스트 및 디버깅 PLC/SCADA 개발 및 검증

어떤 경우에 사용해야 할까?

  • PLC나 SCADA 시스템의 데이터를 읽어와 확인하려면?Modscan 사용
  • Modbus 장치가 없지만 데이터를 가상으로 제공해야 한다면?Modsim 사용
  • 테스트 환경에서 Modbus 네트워크의 마스터와 슬레이브를 함께 시뮬레이션해야 한다면?
    Modscan과 Modsim을 함께 사용

Windows 환경에서 Modsim과 Modscan을 이용한 Modbus TCP 내부 통신 구축

이 가이드에서는 Modsim을 이용하여 가상의 Modbus 데이터를 생성하고, Modscan을 사용하여 해당 데이터를 읽는 방법을 설명합니다. Modbus TCP 프로토콜을 사용하여 동일한 PC 내에서 테스트를 진행합니다.


🛠 1. 환경 준비

운영체제: Windows (Windows 10, 11 권장)
필요한 소프트웨어

 Modbus TCP를 위한 방화벽 설정(인바운드 규칙 생성)

 

Winodw 10, 11 동일

제어판 - 시스템 및 보안 - Windows Defender 방화벽 - [고급 설정]

 

인바운드 규칙 - 새 규칙 생성

 

 

포트 - TCP - 특정 로컬 포트 "507" 입력 - 다음 

 

연결 허용 확인 후 다음

 

다음

 

이름 - "Mod" (아무거나 상관없음)


📌 2. Modsim (Modbus 슬레이브) 설정

Modsim을 사용하여 가상의 Modbus 장치를 생성하고 데이터를 설정합니다.

1️⃣ Modsim 실행 및 기본 설정

Modsim 실행 (modsim32.exe 실행)

  • 상단 메뉴에서 Connection - Connect - Modbus/TCP port 클릭
    • "Modbus TCP/IP" 선택
    • TCP 포트: 502 (기본값)

데이터 레지스터 설정

  • Holding Register (40001)에 데이터를 입력 
  • Discrete Inputs(디지털 입력) 및 Coils(디지털 출력)도 필요시 설정 가능
    • 지금은 03: Holding register 로 진행

 

Address(해당센서의 주소값)

Length(보여줄 개수)

Device Id(기기번호)

ModBus type을 설정

ModBus Point Type (원하는 타입을 선택)

 

2️⃣ Modsim 서버 시작

  1. Setup → Start 클릭
  2. Modsim이 Listening on TCP Port 502 메시지를 출력하면 준비 완료

📌 3. Modscan (Modbus 마스터) 설정

Modscan을 사용하여 Modsim에서 생성한 데이터를 읽어옵니다.

1️⃣ Modscan 실행 및 연결 설정

 

Modscan 실행 (modscan32.exe 실행)

 

"Connection" → "Connect" 클릭

  • Modbus TCP/IP 선택
  • Remote Host: 127.0.0.1 (Local host 주소)
  • Port: 502
  • Device ID: 1 입력

OK 클릭 → 연결이 정상적으로 이루어지면 다음 단계 진행

2️⃣ 데이터 읽기 설정

"Read/Write Definitions" 창에서 설정

  • Function Code: 03 - Read Holding Registers
  • Address: 40001 (Modsim에서 설정한 주소)
  • Slave ID: 1
  • Number of Points: 1 (읽을 레지스터 개수)
  • Polling Rate: 기본값 유지=

OK 클릭 → 데이터가 정상적으로 표시되면 통신 성공! 🎉


📌 4. 테스트 및 검증

Modsim에서 값을 변경

  • 예: 40001 주소 값을 5678로 변경

✅ Modscan에서 값 확인

  • Poll을 실행하면 5678 값이 업데이트됨

 

728x90
반응형