본문 바로가기
PLC 기초

PLC MOV·BMOV·FMOV 명령어 차이와 사용법|미쓰비시 PLC 데이터 전송 예제

by PLC 엔지니어 2026. 9. 3.
반응형

미쓰비시 PLC MOV BMOV FMOV 명령어 차이와 데이터 전송 래더 프로그램 예제

미쓰비시 PLC 프로그램을 보다 보면 MOV, BMOV, FMOV 명령어를 자주 볼 수 있습니다.

세 명령 모두 데이터를 이동시키는 데 사용하지만 한 개의 값을 이동하는지, 여러 데이터를 한 번에 복사하는지, 같은 값을 여러 주소에 채우는지에 따라 사용 방법이 달라집니다.

이번 글에서는 PLC MOV·BMOV·FMOV 명령어의 차이와 사용법을 미쓰비시 PLC와 GX Works2 기준의 간단한 래더 예제로 알아보겠습니다.


1. PLC 데이터 전송 명령어란?

데이터 전송 명령어는 PLC 내부에 저장된 숫자나 데이터를 다른 디바이스로 복사하거나 지정된 값을 데이터 레지스터에 저장하기 위해 사용합니다.

대표적으로 다음 세 가지를 많이 접하게 됩니다.

  • MOV : 하나의 데이터를 전송
  • BMOV : 연속된 여러 데이터를 블록 단위로 전송
  • FMOV : 같은 값을 여러 개의 연속 디바이스에 반복 저장

쉽게 말하면 MOV는 하나, BMOV는 여러 개 복사, FMOV는 같은 값으로 여러 곳 채우기라고 기억하면 이해하기 쉽습니다.


2. MOV 명령어란?

MOV는 하나의 데이터를 다른 위치로 전송하는 가장 기본적인 명령어입니다.

기본 형식은 다음과 같습니다.

MOV 원본(Source) 목적지(Destination)

예를 들어 다음 프로그램을 보겠습니다.

MOV K100 D0

이 명령이 실행되면 10진수 상수 100이 D0에 저장됩니다.

D0 = 100

또한 D0에 저장된 값을 D100으로 복사할 수도 있습니다.

MOV D0 D100

이 경우 D0의 원래 값은 그대로 유지되고 해당 값이 D100에도 저장됩니다.


3. MOV 래더 프로그램 예제

X0가 ON되었을 때 D200에 500을 저장한다고 가정해보겠습니다.

X0 -------------------- [ MOV K500 D200 ]

동작은 다음과 같습니다.

X0 OFF → MOV 실행 안 됨

X0 ON

MOV K500 D200 실행

D200 = 500

GX Works2에서 모니터링하면 조건이 성립했을 때 D200의 값이 변경되는 것을 확인할 수 있습니다.


4. BMOV 명령어란?

BMOV(Block Move)는 연속된 여러 개의 데이터를 한 번에 다른 연속 영역으로 복사할 때 사용하는 명령어입니다.

기본적인 형태는 다음과 같습니다.

BMOV 원본 시작주소 목적지 시작주소 전송개수

예를 들어 다음 명령을 살펴보겠습니다.

BMOV D0 D100 K10

이 명령은 D0부터 시작하는 10개의 데이터를 D100부터 시작하는 영역으로 복사합니다.

D0 → D100
D1 → D101
D2 → D102
D3 → D103
···
D9 → D109

여러 개의 설정값이나 통신 데이터를 한꺼번에 이동해야 할 때 유용합니다.


5. BMOV는 언제 사용할까?

BMOV는 실제 PLC 프로그램에서 다음과 같은 상황에 활용할 수 있습니다.

  • 여러 개의 제품 설정값 복사
  • 차종별 데이터 영역 변경
  • 통신 수신 데이터를 작업 영역으로 복사
  • 현재 설정값 백업
  • HMI 설정값 일괄 이동
  • 레시피 데이터 변경

예를 들어 D0~D9에 1번 차종의 설정값이 저장되어 있고 D100~D109를 현재 작업 영역으로 사용한다면 BMOV를 이용해 한 번에 설정값을 복사할 수 있습니다.


6. FMOV 명령어란?

FMOV는 하나의 동일한 데이터를 지정된 개수만큼 연속된 목적지 디바이스에 저장할 때 사용하는 명령어입니다.

기본 형태는 다음과 같습니다.

FMOV 원본 목적지 시작주소 개수

예를 들어 다음과 같이 작성할 수 있습니다.

FMOV K50 D0 K10

이 명령이 실행되면 D0부터 D9까지 모두 같은 값 50이 저장됩니다.

D0 = 50
D1 = 50
D2 = 50
D3 = 50
D4 = 50
D5 = 50
D6 = 50
D7 = 50
D8 = 50
D9 = 50

따라서 많은 데이터 레지스터를 같은 값으로 초기화하거나 기본값으로 설정할 때 편리합니다.


7. FMOV 실무 사용 예제

설비 초기화 조건 X2가 들어오면 D100부터 D119까지 값을 모두 0으로 초기화한다고 가정해보겠습니다.

X2 -------------------- [ FMOV K0 D100 K20 ]

X2 조건이 성립하면 다음 영역이 모두 0으로 변경됩니다.

D100 ~ D119 = 0

초기화 프로그램을 작성할 때 MOV를 20번 작성하는 것보다 FMOV 한 줄을 사용하면 프로그램을 훨씬 간단하게 구성할 수 있습니다.


8. MOV·BMOV·FMOV 차이 한눈에 보기

명령어 동작 예제 주요 활용
MOV 1개 데이터 전송 MOV K100 D0 설정값 저장
BMOV 연속 데이터 복사 BMOV D0 D100 K10 데이터 블록 이동
FMOV 같은 값 반복 저장 FMOV K0 D100 K20 초기화·일괄 설정

기억하기 쉽게 정리하면 다음과 같습니다.

MOV = 하나 이동
BMOV = 여러 값을 그대로 복사
FMOV = 하나의 값을 여러 곳에 반복 저장


9. BMOV와 FMOV를 헷갈리지 않는 방법

PLC 초보자라면 BMOV와 FMOV를 헷갈리기 쉽습니다.

다음 예제를 비교하면 이해하기 쉽습니다.

BMOV

D0 = 10
D1 = 20
D2 = 30

BMOV D0 D100 K3

실행 결과:

D100 = 10
D101 = 20
D102 = 30

FMOV

FMOV K10 D100 K3

실행 결과:

D100 = 10
D101 = 10
D102 = 10

BMOV는 각각의 원본 데이터를 그대로 복사하고, FMOV는 하나의 값을 여러 주소에 반복해서 저장한다는 차이가 있습니다.


10. 데이터 범위를 잘못 지정하면?

BMOV와 FMOV를 사용할 때는 시작 주소와 데이터 개수를 특히 주의해야 합니다.

예를 들어

BMOV D0 D100 K100

이라고 작성하면 D0부터 매우 넓은 영역을 D100 이후에 복사하게 됩니다.

예상보다 큰 범위를 지정하면 다른 용도로 사용 중인 데이터까지 덮어쓸 수 있으므로 프로그램 작성 전 사용 중인 디바이스 영역을 반드시 확인해야 합니다.


11. D값이 이상하게 바뀔 때 확인 방법

현장에서 특정 D 레지스터의 값이 이유 없이 바뀌는 것처럼 보인다면 데이터 전송 명령을 먼저 확인해보는 것이 좋습니다.

  1. 해당 D 주소를 사용하는 MOV 명령 검색
  2. BMOV 범위 안에 해당 주소가 포함되는지 확인
  3. FMOV 범위 안에 해당 주소가 포함되는지 확인
  4. HMI에서 해당 주소에 값을 쓰는지 확인
  5. 통신 프로그램에서 값을 변경하는지 확인
  6. 설비 초기화 시 데이터가 변경되는지 확인

특히 BMOV나 FMOV는 한 줄의 명령으로 여러 D 영역을 변경하기 때문에 개별 D 주소만 검색해서는 원인을 바로 찾지 못하는 경우도 있습니다.


12. GX Works2에서 확인하면 좋은 부분

GX Works2에서 PLC를 온라인 모니터링할 수 있다면 실제 데이터 변화를 확인하면서 프로그램을 분석하는 것이 좋습니다.

다음 순서로 보면 문제를 찾기 쉽습니다.

명령 실행 조건 확인

원본 데이터 확인

MOV·BMOV·FMOV 실행 확인

목적지 D값 확인

HMI 또는 실제 설비 동작 확인

특히 여러 데이터가 한꺼번에 변경된다면 BMOV나 FMOV가 사용되고 있는지 확인해보는 것이 좋습니다.


13. MOV·BMOV·FMOV 핵심 정리

MOV는 하나의 데이터를 전송할 때 사용하는 가장 기본적인 명령어입니다.

BMOV는 연속된 여러 데이터를 다른 연속 영역으로 복사할 때 사용합니다.

FMOV는 하나의 값을 여러 개의 연속 디바이스에 반복해서 저장할 때 사용합니다.

실제 자동화 설비에서는 MOV는 설정값 저장, BMOV는 차종·레시피 데이터 복사, FMOV는 데이터 초기화와 기본값 설정 등에 활용할 수 있습니다.

데이터 전송 명령을 사용할 때는 원본 주소, 목적지 주소, 전송 개수를 정확하게 확인하는 습관이 중요합니다.


함께 보면 좋은 글

MOV 명령을 공부하기 전에 이전 글인 「PLC 데이터 레지스터(D)란? MOV 명령어와 데이터 저장 방법 쉽게 이해하기」를 먼저 보면 이번 내용을 이해하는 데 도움이 됩니다.

다음 글에서는 PLC 비교 명령어와 데이터 비교 방법을 실제 래더 예제로 알아보겠습니다.



함께 보면 좋은 글

 

 

반응형

댓글