DATA · MOV

D Register와 MOV: Scan 순서가 값을 바꾸는 방식

D Register는 숫자를 저장하고, MOV의 위치는 같은 Scan에서 비교와 최종 값에 영향을 줍니다.

D RegisterMOVScan order

D는 숫자를 저장한다

X/Y/M이 ON/OFF 상태를 다루는 Bit라면 D Register는 Setpoint, 현재값, 계산 결과 같은 숫자 데이터를 저장합니다.

MOV K100 D0

위 명령은 상수 100을 D0에 복사합니다. rung이 OFF됐다고 D0가 자동으로 0이 되는 것은 아닙니다.

같은 Scan에서 순서가 결과를 바꾼다

PLC가 위에서 아래로 실행되기 때문에 MOV를 먼저 실행하면 아래 비교는 새 값을 봅니다. 비교가 위에 있으면 그 Scan에서는 이전 값을 보고, MOV된 값은 다음 Scan의 비교에서 보게 됩니다.

// A
MOV K110 D0
[D0 >= K100] -> Y0   // same scan: new value is seen

// B
[D0 >= K100] -> Y0   // same scan: old value is seen
MOV K110 D0

한 D에 여러 MOV가 쓰면

같은 Scan에서 여러 MOV가 같은 D Register에 값을 쓰면 아래쪽 명령이 나중에 실행됩니다. 그래서 Auto/Manual/Stop 우선순위를 rung 순서로 명확히 해야 합니다.

Y0 AND X5  -> MOV D100 D120
Y0 AND /X5 -> MOV D110 D120
/Y0        -> MOV K0 D120

HMI와 D Register

HMI Numeric Input은 지정된 D Register에 직접 숫자를 씁니다. 예를 들어 37.5%를 정수 스케일 0–1000으로 표현하면 D110=375처럼 저장할 수 있습니다.