05ea17dfb2b863544778c6a3c71577223ca50197
ZLAC8015D V4 RS485 슬레이브 ID 운용 가이드
ZLTECH ZLAC8015D V4 듀얼 드라이버의 RS485(Modbus RTU) 슬레이브 ID를 확인/변경하기 위한 파이썬 스크립트 모음.
프로토콜 세부 사항은 동봉된 ZLAC8015D V4 Series RS485 Communication Version 1.06 매뉴얼 기준.
사전 준비
python3 -m venv .venv
./.venv/bin/pip install -r requirements.txt # pymodbus + pyserial
- 통신 라이브러리로
pymodbus(ModbusSerialClient, RTU) 사용 - RS485-USB 어댑터로 드라이버와 연결 (A/B 라인, GND 공통)
- 기본 통신 설정: Baud rate 115200, 8 data bit, No parity, Stop bit 1
- 드라이버 출고 시 기본 슬레이브 ID는 1
- 실제 하드웨어 운용 테스트는 우분투 환경에서 진행 예정 (개발/문법 검증은 macOS에서 완료)
파일 구성
| 파일 | 역할 |
|---|---|
zltech_modbus.py |
pymodbus 기반 통신 공용 함수 (read/write register) |
zltech_scan_ids.py |
버스에 연결된 슬레이브 ID 스캔 |
zltech_set_id.py |
슬레이브 ID 변경 (EEPROM 저장 포함) |
requirements.txt |
의존 패키지 (pymodbus, pyserial) |
1. 슬레이브 ID 확인 (스캔)
./.venv/bin/python zltech_scan_ids.py --port /dev/tty.usbserial-XXXX --range 1 16
--port: 시리얼 포트 (Ubuntu:/dev/ttyUSB0등, macOS:/dev/tty.usbserial-XXXX, Windows:COM5등)--baud: 기본값 115200--range START END: 스캔할 ID 범위 (기본 1~16)
응답한 ID 목록이 출력됨.
2. 슬레이브 ID 변경 (1과 2로 설정)
⚠️ 두 드라이버 모두 기본 ID가 1이라, 동시에 버스에 연결하면 응답이 충돌합니다. 반드시 한 번에 하나씩만 연결한 상태로 진행하세요.
순서
-
드라이버 A만 연결 → 기본값 그대로 ID 1 유지 (변경 불필요)
-
드라이버 A 전원 off, 분리
-
드라이버 B만 연결 → ID를 2로 변경
./.venv/bin/python zltech_set_id.py --port /dev/tty.usbserial-XXXX --old-id 1 --new-id 2 -
드라이버 B 전원을 껐다 켜서(파워사이클) 변경 사항 완전 반영
-
이제 드라이버 A(ID 1), B(ID 2)를 같은 버스에 함께 연결
-
확인:
./.venv/bin/python zltech_scan_ids.py --port /dev/tty.usbserial-XXXX --range 1 2ID 1, 2 모두 응답하면 성공.
참고: 레지스터 주소
| 주소 | 이름 | 범위 | 비고 |
|---|---|---|---|
0x2001 |
RS485 Custom Drive Node Number | 1~127 | 기본값 1 |
0x2002 |
RS485 custom communication baud rate | 1 |
기본값 2 (115200bps) |
0x2010 |
RW 속성 파라미터 EEPROM 저장 | 0/1 | 1 = 저장 |
자세한 레지스터 목록은 동봉 매뉴얼의 "Address Directionary" 섹션 참고.
Description
Languages
Python
100%