본문 바로가기
PLC 전기제어 기술자료/PLC 기초

PLC 래더 기초 5편: 비교/연산 명령과 D 레지스터 다루기

by 위치결정JP 2026. 6. 17.
728x90
반응형

이전 글 — PLC 래더 기초 4편: SET/RST 사용법과 자기유지 회로 대체

 

 

PLC 래더에서 숫자(워드 데이터)를 다루는 MOV(전송), 비교 명령, 사칙연산을 정리합니다.
미쓰비시 Q시리즈를 기준으로 데이터 레지스터(D)에 값을 넣고, 크기를 비교해 접점을 ON 시키고, 더하고 빼는 방법을 실제 래더 화면과 함께 다룹니다.

지금까지 1~4편에서는 입력/출력이 ON 인가 OFF 인가 하는 비트 신호를 다뤘습니다.
이번에는 "온도가 80 이상이면", "카운트 값을 1 더해서" 처럼 숫자(값) 를 다루는 명령으로, 실전 제어의 핵심인 데이터 처리를 시작합니다.

1. MOV: 데이터 옮기기와 D 레지스터

숫자를 저장하는 그릇이 데이터 레지스터(D) 입니다.
D0, D1, D2 ... 각각 16비트 숫자 하나를 담을 수 있습니다.
이 그릇에 값을 넣거나 옮기는 명령이 MOV 입니다.

미쓰비시 PLC에서는 MOV K100 D0 형태로 사용합니다.
여기서 K100 은 상수 100, D0 는 목적지입니다. "100 을 D0 에 넣어라" 라는 뜻입니다.
MOV D0 D1 처럼 쓰면 D0 의 값을 D1 로 복사합니다.

 

 

 

위 래더는 입력 X0 이 ON 되면 D0 에 100 이 들어갑니다.
모니터링 모드에서 D0 의 값이 0 에서 100 으로 바뀌는 것을 확인할 수 있습니다.

📝 NOTE

데이터 레지스터(D) 한 개는 16비트이므로 담을 수 있는 범위는 -32768 ~ 32767 입니다.
더 큰 값이나 32비트 데이터를 다룰 때는 DMOV 처럼 명령 앞에 D 를 붙인 더블 워드 명령을 사용해 D0/D1 두 개를 묶어 처리합니다.

2. 비교 명령: 크기를 판단해 접점 ON

비교 명령은 두 값의 크기를 견주어, 조건이 맞으면 접점이 도통(ON)되는 요소입니다.
미쓰비시에서는 =, >, <, >=, <=, <>(같지 않음) 비교 접점을 래더에 직접 놓을 수 있습니다.

> D0 K50 은 "D0 가 50 보다 크면 ON" 이라는 비교 접점입니다.
일반 A접점 자리에 이 비교 접점을 넣어, 뒤에 출력을 연결합니다.

 

 

 

위 래더는 D0 의 값이 50 을 넘으면 Y20 이 켜지는 구조입니다.
예를 들어 D0 에 온도 값을 받아 두면, "온도가 50 이상일 때 경고등 ON" 같은 판단을 래더 한 줄로 만들 수 있습니다.
[GIF] 로 D0 값을 조금씩 올려 보면 50 을 넘는 순간 출력이 살아나는 것을 볼 수 있습니다.

D0 값 0 30 50 51 100
> D0 K50 결과 OFF OFF OFF ON ON
Y20 출력 OFF OFF OFF ON ON

>초과이므로 D0 가 정확히 50 일 때는 아직 OFF 이고 51 부터 ON 입니다. 50 을 포함("50 이상")하려면 >= D0 K50 을 씁니다.

💡 TIP

비교에는 접점형(> D0 K50 처럼 접점 자리에 놓는 방식)과 명령형(CMP K50 D0 로 크다/같다/작다 결과를 비트 3개로 받는 방식)이 있습니다.
단순히 "크면 동작" 정도면 접점형이 직관적이고, 한 번 비교해 세 가지 분기를 모두 쓰려면 CMP 가 편합니다.

3. 사칙연산: 더하고 빼기

값을 더하고 빼고 곱하고 나누는 것은 +, -, *, / 명령으로 합니다.
+ D0 D1 D2 는 "D0 + D1 의 결과를 D2 에 넣어라" 라는 뜻입니다(피연산자 2개 + 결과 1개).

 

 

1 씩 더하거나 빼는 일이 잦다면 INC D0(D0 을 1 증가), DEC D0(D0 을 1 감소) 명령이 간단합니다.
곱셈 * 과 나눗셈 / 도 같은 형식이며, 나눗셈은 몫과 나머지를 함께 돌려줍니다(/ D0 K3 D10 이면 몫은 D10, 나머지는 D11).

⚠️ 주의

연산 결과가 레지스터 범위(-32768 ~ 32767)를 넘으면 오버플로가 나고, 나눗셈에서 0 으로 나누면 연산 에러가 발생합니다.
입력 값의 범위를 비교 명령으로 먼저 점검하거나, 큰 값은 D+/D* 같은 더블 워드 연산으로 처리해 오류를 예방합니다.

마무리

MOV 로 값을 넣고, 비교 명령으로 크기를 판단하고, 사칙연산으로 계산합니다.
비트 신호만 다루던 1~4편에서 한 걸음 나아가, 이제 "값에 따라 동작이 달라지는" 제어를 만들 수 있습니다.
3편의 카운터 현재값을 비교 명령으로 읽어 분기하거나, 연산 결과를 출력 조건으로 쓰는 식으로 앞선 편들과 자연스럽게 이어집니다.
다음 6편에서는 버튼을 누르는 그 순간만 1회 동작시키는 펄스 명령(PLS/PLF)을 다룹니다.

💡 TIP

비교/연산을 실전에서 묶어 쓰는 대표 예가 아날로그 값 환산입니다.
센서 입력을 실제 물리량으로 바꾸는 계산을 함수로 만들어 두면 여러 곳에서 재사용할 수 있습니다.
함수화 1편: 스케일 변환 에서 MOV/연산/XCALL 을 엮은 실전 예제를 볼 수 있고, 래더 기초 3편: 타이머/카운터 의 카운터 현재값을 비교 명령으로 읽으면 활용 폭이 넓어집니다.

728x90
반응형