내부 절대 주소(I, Q, D 등)를 아래와 같이 MODBUS 주소 공간에 매핑하였습니다.
예 (1-base 기준):
즉, 주소의 앞자리 숫자만 보고도 어떤 메모리 영역인지 바로 구분할 수 있습니다.
이중 CUBLOC2에서는 Coil과 Holding Register만 사용합니다.
CUBLOC2의 비트 데이터(I, Q, M 등)는 Modbus Coil 주소로 매핑됩니다. 타이머(T), 카운터(C)는 내부적으로 32bit 데이터이지만, 접점으로 사용할 경우 완료 상태(Done Bit)가 Coil 영역에 별도 매핑됩니다.
| 주소 (1-base) | 내부 주소 (0-base) | 영역 | 설명 |
|---|---|---|---|
| 000001 ~ 000016 | 0 ~ 15 | I | Physical Input (Read Only) |
| 000017 ~ 000032 | 16 ~ 31 | Q | Physical Output |
| 000101 ~ 000228 | 100 ~ 227 | S | Special Relay (Read Only) |
| 001001 ~ 001731 | 1000 ~ 1731 | X | Expansion Input (Read Only) |
| 002001 ~ 002731 | 2000 ~ 2731 | Y | Expansion Output |
| 004001 ~ 006048 | 4000 ~ 6047 | M | Internal Relay |
| 007001 ~ 009048 | 7000 ~ 9047 | R | Retain Bit (Read Only) |
| 010001 ~ 011000 | 10000 ~ 10999 | T | Timer Done Bit |
| 011001 ~ 012000 | 11000 ~ 11999 | C | Counter Done Bit |
T0 접점 ON → Coil 010001 = ONC5 접점 ON → Coil 011006 = ON모든 Word 및 32bit 데이터는 Holding Register(4xxxx)에 매핑되며, 5~6 digit 표기로 통일합니다.
| 주소 (1-base) | 내부 주소 (0-base) | 영역 | 타입 | 설명 |
|---|---|---|---|---|
| 400001 ~ 408000 | 0 ~ 7999 | D | 16bit | 일반 데이터 |
| 409001 ~ 409100 | 9000 ~ 9099 | SD | 16bit | 시스템 데이터 |
| 410001 ~ 412000 | 10000 ~ 11999 | T | 32bit | 타이머 현재값 |
| 415001 ~ 417000 | 15000 ~ 16999 | C | 32bit | 카운터 현재값 |
| 420001 ~ 436000 | 20000 ~ 35999 | DD | 32bit | 더블워드 |
| 440001 ~ 456000 | 40000 ~ 55999 | DF | Float | 실수 데이터 |
Retain 영역(RD, RDD, RDF)은 Modbus에서 읽기 전용(Read Only) 입니다.
| 주소 (1-base) | 내부 주소 (0-base) | 영역 | 타입 | 설명 |
|---|---|---|---|---|
| 460001 ~ 460100 | 60000 ~ 60099 | RD | 16bit | Retain (Read Only) |
| 460301 ~ 460500 | 60300 ~ 60499 | RDD | 32bit | Retain Double (Read Only) |
| 460501 ~ 460700 | 60500 ~ 60699 | RDF | Float | Retain Float (Read Only) |
32bit 데이터는 2개의 Holding Register를 사용합니다.
하위 워드 (Low Word) → 낮은 주소 상위 워드 (High Word) → 다음 주소
예:
DD0 = [420001, 420002]
주의 사항 : HMI(또는 SCADA)는 대부분 1-base 주소를 사용하지만, 일부 장비나 설정에 따라 0-base 주소를 요구하기도 합니다.