이전 작성 되었던 블로그의 복구 입니다.
📝 Note: 이 글은 현재 개발 중인 프로젝트의 Modbus Monitor와 Modbus Simulator의 readme.md 파일을 기반으로 작성되었습니다.
개발자에게 퇴근 후 시간은 또 다른 창작의 시간입니다. 이번에는 딱 2일, 하루 4시간씩 총 8시간을 투자해 개인 프로젝트로 Modbus TCP/RTU 모니터링 및 시뮬레이션 툴의 프로토타입을 만들어보았습니다.
아직 완성된 프로그램은 아니지만, 구글의 Antigravity IDE 덕분에 짧은 시간 안에 TCP/IP 통신 검증까지 마칠 수 있었습니다. 이 프로젝트의 초기 개발 과정을 공유합니다.
🚀 프로젝트 시작: 왜 직접 만드나?
시중에는 이미 많은 Modbus 툴이 있지만, **"내 입맛에 딱 맞는 테스트 환경"**을 구축하기엔 아쉬움이 있었습니다. 특히 클라이언트(Monitor)와 서버(Simulator) 간에 설정을 매번 따로 잡아줘야 하는 번거로움을 해결하고 싶었습니다.
그래서 **"설정을 공유하는 쌍둥이 프로그램"**을 목표로 개발을 시작했습니다.
🛠️ 개발 환경 및 현황
개발 기간: 2일 (퇴근 후 4시간 × 2일 = 총 8시간)
핵심 도구: Google Antigravity IDE (초기 구조를 잡는 데 결정적 역할)
개발 언어: Python 3.x, PySide6, Pymodbus
현재 상태:
✅ TCP/IP Server/Client: 구현 및 검증 완료
🚧 Serial RTU: 코드 구현 완료 (테스트 예정)
🚧 UI/UX: 기능 추가 및 고도화 진행 중
📦 현재까지 구현된 핵심 기능
1. Modbus Monitor (Client) - TCP 검증 완료
현장의 장비 데이터를 모니터링하는 메인 툴입니다. 현재 TCP/IP 통신을 우선적으로 테스트하고 있습니다.
MDI 인터페이스: 여러 데이터 영역(Coils, Holding Registers 등)을 개별 창으로 띄워 관리할 수 있는 기본 골격을 완성했습니다.
워크스페이스 저장: 현재 창의 배치와 주소 설정을 JSON으로 저장하는 기능을 구현했습니다.
기능 확장성: 현재는 TCP 위주로 테스트 중이지만, Serial RTU 연결 설정(Baudrate, Port 등) UI도 미리 구성해 두었습니다.
2. Modbus Simulator (Server) - 설정 연동 성공
이 프로젝트의 핵심 아이디어인 "클라이언트 설정 흡수" 기능이 동작합니다.
Config Import:
Monitor에서 저장한 워크스페이스 파일(.json)을 불러오면, 시뮬레이터가 자동으로 해당 주소 번지와 데이터 영역을 생성합니다. 일일이 주소를 입력할 필요가 없어 테스트가 매우 빨라집니다.양방향 동기화: 시뮬레이터와 클라이언트가 TCP로 연결된 상태에서, 양쪽의 값 변경이 실시간으로 반영되는 것을 확인했습니다.
⚡ Antigravity IDE와 함께한 8시간
MDI 구조의 GUI와 소켓 통신을 바닥부터 짜려면 꽤 많은 시간이 걸립니다. 하지만 Antigravity IDE를 활용한 덕분에 보일러플레이트 코드를 줄이고 핵심 로직에만 집중할 수 있었습니다.
단 8시간 만에 **"기획 → UI 구성 → TCP 통신 연동"**까지 사이클을 돌려볼 수 있었던 것은 도구의 힘이 컸습니다. 덕분에 퇴근 후 짧은 시간에도 몰입도 높게 개발할 수 있었습니다.
🔮 앞으로의 계획 (To-Do)
이 프로젝트는 이제 막 걸음마를 뗐습니다. 앞으로 퇴근 후 시간을 활용해 다음과 같은 기능을 추가해 나갈 예정입니다.
Serial RTU 검증: 실제 컨버터 장비를 연결해 RTU 통신 안정성을 테스트할 계획입니다.
데이터 시각화: 단순 테이블 뷰를 넘어, 데이터 변화를 그래프로 보여주는 기능을 고려 중입니다.
로그(Log) 기능: 통신 패킷과 에러 로그를 기록하여 디버깅을 돕는 기능을 추가하려 합니다.
아직 갈 길이 멀지만, Antigravity IDE와 함께 발전해 나갈 이 프로젝트의 여정을 지켜봐 주세요! 👋
댓글 없음:
댓글 쓰기