Files
2026-08-07 13:44:56 +09:00

2.7 KiB

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이라, 동시에 버스에 연결하면 응답이 충돌합니다. 반드시 한 번에 하나씩만 연결한 상태로 진행하세요.

순서

  1. 드라이버 A만 연결 → 기본값 그대로 ID 1 유지 (변경 불필요)

  2. 드라이버 A 전원 off, 분리

  3. 드라이버 B만 연결 → ID를 2로 변경

    ./.venv/bin/python zltech_set_id.py --port /dev/tty.usbserial-XXXX --old-id 1 --new-id 2
    
  4. 드라이버 B 전원을 껐다 켜서(파워사이클) 변경 사항 완전 반영

  5. 이제 드라이버 A(ID 1), B(ID 2)를 같은 버스에 함께 연결

  6. 확인:

    ./.venv/bin/python zltech_scan_ids.py --port /dev/tty.usbserial-XXXX --range 1 2
    

    ID 1, 2 모두 응답하면 성공.

참고: 레지스터 주소

주소 이름 범위 비고
0x2001 RS485 Custom Drive Node Number 1~127 기본값 1
0x2002 RS485 custom communication baud rate 16 (1280009600bps) 기본값 2 (115200bps)
0x2010 RW 속성 파라미터 EEPROM 저장 0/1 1 = 저장

자세한 레지스터 목록은 동봉 매뉴얼의 "Address Directionary" 섹션 참고.