본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. 모드버스 통신 테스트 프로그램 추천

모드버스 통신 테스트 프로그램 추천

· 댓글개 · 바다야크

마스터 모드버스 통신 테스트 프로그램 ModbusPoll

모드버스 통신 테스트 프로그램은 읽기·쓰기를 요청하는 마스터(Master)와 마스터의 요청을 실행하고 응답하는 슬래이브(Slave)로 나뉩니다. 마스터가 클라이언트이라면 슬레이브가 서버인 것이죠. 모드버스 마스터 통신 테스트 프로그램으로는 ModbusPoll을 추천합니다. 잘 만들기도 했지만, 무엇보다도 공신력이 있어서 다른 개발자와 언쟁하는 불상사를 줄여줍니다.

내가 만든 장비와 통신이 안 된다라고 문의가 오면 ModbusPoll로 확인하라고 하면 끝입니다. ModbusPoll로는 되는데 그 개발자의 프로그램에서는 안 된다면 그분의 코드에 버그가 있는 것입니다. 계속해서 자기 쪽은 이상이 없다고 고집하면 ModbusPoll을 모르냐고 반박하면 됩니다. 그만큼 ModbusPoll은 많은 개발자가 사용하고 신뢰하는 프로그램입니다.

▲ ModbusPoll은 Serial과 TCP/IP·UDP/IP를 지원하므로 대부분의 개발 작업에서 모드버스 통신 프로그램을 테스트할 수 있을 것입니다.

▲ ModbusPoll은 특정 코일이나 레지스터 영역의 값을 모니터링할 수 있습니다. 통신 상태도 표시되어서 상대 장비와 제대로 연결되는지 확인하는데도 사용되는데요 에러 카운터로 통신 상태도 예상할 수 있습니다.

▲ 쓰기 가능한 영역의 경우 모니터링 화면에서 값을 변경 요청할 수 있어서 편리합니다. 변경하려는 코일 또는 레지스터의 셀을 더블 클릭하고 값을 넣어 전송하면 됩니다.

▲ 또는 모드버스 함수와 주소를 지정해서 요청할 수도 있습니다.

슬레이브 모드버스 통신 테스트 modRSsim2

ModbusPoll을 제공하는 modbus tools 사이트에서 모드버스 슬레이브 이뮬레이터 ModbusSlave를 제공하지만, 개인적으로 오픈소스인 ModRSsim2가 더 쉽고 편해서 추천하고 싶습니다.

▲ ModRSsim2도 시리얼과 TCP/IP를 지원하므로 대부분의 모드버스 디버깅에 활용할 수 있습니다. 다만, 주소 번호가 이상합니다. Holding Register의 주소는 40,001~49,999인데 400,001로 십만 대의 번호입니다. 그러나 실제 모드버스 함수 실행에서 주소 지정이 0번부터 시작하므로 문제 되지는 않습니다.

▲ ModbusPoll로 400001의 값을 100으로 쓰기 하겠습니다.

▲ 쓰기 요청하면 ModRSsim2의 레지스터 값이 변경됩니다. 하단에 화살표 (1)이 표시한 녹색 버튼은 최근에 통신 요청한 마스터의 ID를 표시합니다.

▲ 이번에는 ModRSsim2에서 Holding Register값을 변경해 보겠습니다. 400002의 셀을 선택한 후 값 9999를 입력했습니다.

▲ 그러면 ModbusPoll에서 값이 변경되는 것을 볼 수 있습니다. 모드버스 통신 테스트 프로그램으로 ModposPoll과 ModRSsim2를 추천합니다.

 

MODBUS-RTU 프로토콜 쉽게 이해하기

MODBUS 프로토콜 이 글은 시리얼 통신을 잘 알고 있지만, MODBUS-RTU를 처음 접하는 분을 위해 저의 경험을 바탕으로 작성했습니다. 시리얼 통신을 꽤 오랫동안 다루었지만, MODBUS-RTU를 처음 접했을 때

badayak.com

 

MODBUS-RTU 구현 시 주의 사항

MODBUS-RTU 경험담 MODBUS-RTU 프로그램을 작성하면서 겪었던 경험담을 올립니다. 좀 당황스러운 일인데, 경험에 따라 생각이 다를 수 있어서 반드시 이래야 한다는 것은 아니지만, rs485 라인에 MODBUS-RT

badayak.com

SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.