====== 수 시스템 (Number System) ====== 래더로직에서 사용하는 기본 데이터 처리 단위는 **워드(16비트)**와 **더블워드(32비트)**입니다. \\ 큐블록 레더 환경은 시스템 예약 주소와의 간섭을 방지하기 위해 엄격한 수치 범위를 준수해야 합니다. ===== 1. 메모리 구조 (D영역) ===== * **D영역(Data Register):** 기본적으로 16비트(1 Word) 단위로 구성됩니다. * **더블워드 처리:** 32비트 데이터를 다루기 위해서는 연속된 **2개의 D영역**이 필요합니다. (예: D0와 D1을 합쳐 하나의 32비트 값 저장) ===== 2. 데이터 타입 및 범위 제한 ===== 본 시스템은 하드웨어 제어 포트(P, WP 등)와의 데이터 충돌을 방지하기 위해 **부호 없는 양수(Unsigned Integer)** 사용을 원칙으로 합니다. ^ 단위 ^ 비트 수 ^ 10진수 사용 범위 ^ 16진수 사용 범위 ^ | 워드 (Word) | 16-bit | 0 ~ 65,535 | 0000H ~ FFFFH | | 더블워드 (D-Word) | 32-bit | 0 ~ 2,147,418,111 | 00000000H ~ 7FFEFFFFH | ===== 3. 상한치 제한 ===== ==== 시스템 예약 주소와의 충돌 ==== * **0x7FFF1000 ~ 0x7FFFFFFF** 영역은 하드웨어 입출력 포트(P0, WP0 등)를 제어하기 위한 **Memory-Mapped I/O** 주소로 예약되어 있습니다. * ** 워드(Word)와 더블워드(D-Word) 모두 **양수(Unsigned)** 처리를 권장합니다. 특히 더블워드는 시스템 예약 주소 영역(0x7FFF1000 이상)을 침범하지 않도록 상한치 **0x7FFEFFFF** 이내에서만 사용해야 합니다. ==== 잘못된 사용 예시 ==== 더블워드에 시스템 상한을 초과하는 값(예: 0xEE6B4000)을 입력하면 아래와 같이 에러가 발생하거나 잘못된 연산 결과가 나옵니다. {{ :cubloc:laddernumber:dwerr.png?nolink |}} 반드시 아래와 같이 상한치 미만의 양수 값을 사용하십시오. {{ :cubloc:laddernumber:dwval.png?nolink |}} 아래와 같이 음수를 DWMOV로 넣을 수는 있지만, 이는 예기치 못한 시스템 에러가 발생할 수 있으므로, 피해야 합니다. {{ :cubloc:laddernumber:dwval2.png?nolink |}} [[cubloc:index#래더_로직:|CUBLOC 래더로직 목록으로 가기]]