본문 바로가기
외부 라이브러리/Modbus

LibModbus RTU(serial) Windows 사용기. RealSYS.-(1)

by 공작사 2022. 12. 6.

안녕하세요. 공작사입니다.

제가 이번에 포토센서를 사용해야 할 일이 생겨서 modbus protocol로 값을 받아 썼습니다.

센서도 프로토콜도 처음 사용해봐서 바닥부터 공부했던 내용을 가볍게 정리하려고 합니다.

개발 환경은 windows 10, LibModbus 라이브러리를 사용했고 하드웨어는 포토센서, 리얼시스, usb컨버터 사용했습니다.

개발하면서 modbus에 대해서 공부를 하게 됐는데 이론적인 내용은 후에 작성해 보겠습니다.

 

모드 버스 TCP

 

tcpport:modbus-tcp_프로토콜이란:index [Comfile Technology's Online Documentation]

MODBUS-TCP란 MODBUS-TCP는 산업용 필드버스 분야에서 자주 사용되는 통신 프로토콜 입니다. TCP/IP 네트워크 상에서 상위장치와 하위장치간의 인터페이스를 위하여 고안된 통신방법입니다. MODBUS-TCP 통

comfilewiki.co.kr

전 RTU 통신을 했지만 가볍게 이해하기엔 도움이 될 것 같습니다.

 

https://libmodbus.org/

 

libmodbus

The most popular Open Source library to communicate with Modbus devices. 🚀 Introduction libmodbus is an Open Source library to communicate with Modbus devices: RTU (serial) and TCP (Ethernet) support available for Linux (packaged), FreeBSD, Mac OS and W

libmodbus.org

위는 제가 사용한 라이브러리입니다. Modbus RTU 통신은 그냥 modbus 프로토콜로 Serial 통신하는 겁니다. 검색창에 'Windows Serial port' 등으로 검색하면 윈도우api로 통신할 수 있고, Modbus 프로토콜을 이해했다는 전제 하에 값을 파싱 하시면 됩니다.(사서 고생하실 분들 혹은 더 상세하게 공부하실 분들이 아니라면 굳이...?)

 

TCP, RTU 통신 모두 가능하고 플랫폼도 거의 가리지 않는다고 나오네요. 깃헙 링크에서 다운 받을 수 있고, 사용법은 좌측 상단에 Reference 들어가면 잘 나와 있습니다.

 

끝.

 

이면 글을 쓸 필요도 없었겠죠? 해당 라이브러리는 윈도우에서 빌드해 사용하기 까다롭고(버그가 있어서 코드를 일일이 뜯어보고 살짝 수정해야 합니다.), 심지어 RTU 통신은 레퍼런스데로 사용하면 작동하지도 않습니다.

해결법을 다 적기엔 글이 길어지니

1. libmodbus 윈도우 빌드하기.

2. 적절한 함수 사용 및 modbus 이해하기.

정도로 나누고 이어서 글 쓰겠습니다.

 

아래는 제가 빌드해 놓은 .dll 파일입니다. 급하게 우선 사용하실 분은 사용하세요!

modbus.dll
0.69MB

 

 

 

댓글