Modscan과 Modsim은 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 권장)
✅ 필요한 소프트웨어
- Modsim 다운로드 (Modbus 슬레이브)
- Modscan 다운로드 (Modbus 마스터)
✅ 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 서버 시작
- Setup → Start 클릭
- 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 값이 업데이트됨
'Computer Science > CS 지식' 카테고리의 다른 글
ModScan과 Python을 이용한 Modbus 통신 (feat. Pymodbus) (0) | 2025.04.16 |
---|---|
교류 전력과 역률(Power Factor) (0) | 2025.03.10 |
모드버스(Modebus) 프로토콜 (feat. RTU, TCP/IP, Function Code) (0) | 2025.03.07 |
LoRa (Long Range)와 LoRaWAN(Long Range Wide Area Network) (1) | 2025.03.05 |
시리얼 통신(Serial Communication) (0) | 2025.03.05 |