PLC & Industrial Automation Field Notes

Practical solutions for industrial automation


[실무] D·W·R·Z 데이터 구조와 용도 제대로 이해하기

PLC에서 비트 디바이스가 ON/OFF 상태를 다룬다면, 워드 디바이스는 수치와 데이터를 다루는 영역입니다. 생산 수량, 설정값, 위치값, 통신 데이터, 레시피처럼 숫자로 관리해야 하는 값은 대부분 워드 단위로 처리됩니다. 미쓰비시 MELSEC Q/R 시리즈와 GX Works2/3 환경에서는 D, W, R, Z의 용도를 구분해 두어야 데이터 충돌과 주소 혼선을 줄일 수 있습니다.

워드 디바이스를 이해해야 하는 이유

PLC 로직은 단순한 접점 제어만으로 끝나지 않습니다. 실제 설비에서는 설정값을 변경하고, 현재 위치를 표시하고, 생산 수량을 누적하고, HMI나 다른 장비와 데이터를 주고받아야 합니다.

이때 사용하는 기본 단위가 워드 디바이스입니다. 워드는 일반적으로 16비트 단위로 데이터를 저장하며, 더 큰 숫자는 2워드를 묶어 32비트 데이터로 처리합니다.

미쓰비시 PLC에서는 용도에 따라 D, W, R, Z 같은 워드 디바이스를 구분해 사용합니다. 각각의 성격을 제대로 이해하지 못하면 값이 초기화되거나, 통신 주소가 밀리거나, 레시피 데이터가 덮이는 문제가 발생할 수 있습니다.

본 글은 미쓰비시 MELSEC Q/R 시리즈 및 GX Works2/3 기준의 일반적인 내용을 바탕으로 작성했습니다. 실제 사용 가능 범위와 보존 방식은 CPU 모델, 파라미터, 프로젝트 설정에 따라 달라질 수 있으므로 적용 전 사용 중인 PLC 매뉴얼과 파라미터를 확인해야 합니다.

D 데이터 레지스터의 기본 용도

D는 데이터 레지스터입니다. PLC 내부에서 숫자 데이터를 저장할 때 가장 많이 사용하는 범용 워드 디바이스입니다.

D 디바이스는 생산 수량, 설정값, 위치값, 타이머나 카운터의 기준값, 연산 결과 저장 등에 자주 사용됩니다. 현장에서 가장 많이 접하는 워드 디바이스라고 볼 수 있습니다.

예를 들어 다음과 같은 용도로 사용할 수 있습니다.

사용 예설명
생산 수량 저장카운터 결과나 생산 누적값 저장
설정값 저장HMI에서 입력한 속도, 시간, 압력 등의 기준값 저장
위치 데이터 저장서보 위치값, 원점 보정값, 이동 거리 저장
연산 결과 저장사칙연산, 비교 연산 결과 보관

D 디바이스는 기본적으로 16비트 단위입니다. 16비트 정수로 처리할 경우 표현 범위에 제한이 있으므로, 큰 수치나 정밀한 위치값을 다룰 때는 32비트 명령과 2워드 사용 여부를 확인해야 합니다.

예를 들어 D100 하나만 사용하는 경우와 D100, D101을 묶어 32비트로 사용하는 경우는 데이터 구조가 다릅니다. 이 부분을 구분하지 않으면 음수로 보이거나 값이 비정상적으로 튀는 문제가 생길 수 있습니다.

D 디바이스와 래치 설정

D 디바이스를 사용할 때 중요한 부분은 전원 OFF 후 값이 유지되는지 여부입니다.

일부 D 영역은 파라미터에서 래치 범위로 설정해야 전원 차단 후에도 값이 유지됩니다. 래치 설정이 되어 있지 않은 영역은 전원 재투입 또는 CPU 초기화 조건에 따라 값이 0으로 초기화될 수 있습니다.

따라서 생산 수량, 모델 설정값, 보정값처럼 전원 OFF 후에도 유지해야 하는 데이터는 반드시 래치 범위에 포함해야 합니다.

반대로 임시 연산값이나 순간 상태값처럼 전원 재투입 시 초기화되어도 되는 데이터는 비래치 영역에 두는 것이 관리하기 쉽습니다.

메모리 설계 시에는 다음과 같이 영역을 구분하는 것이 좋습니다.

구분사용 예
비래치 D 영역임시 연산값, 순간 상태값, 자동운전 중간 데이터
래치 D 영역생산 수량, 보정값, 모델 설정값, HMI 입력 설정값

D 레지스터의 전체 용량과 래치 가능 범위는 CPU 모델마다 다를 수 있습니다. 설계 전 해당 CPU의 디바이스 범위와 파라미터 설정을 확인해야 합니다.

W 링크 레지스터의 기본 용도

W는 링크 레지스터입니다. 주로 네트워크 통신이나 장비 간 데이터 공유에 사용됩니다.

CC-Link, Ethernet, MELSECNET, HMI 통신 등에서 다른 PLC, 터치스크린, PC, 상위 시스템과 데이터를 주고받을 때 W 영역을 사용하는 경우가 많습니다.

W 디바이스는 다음과 같은 용도로 자주 사용됩니다.

사용 예설명
HMI 표시 데이터현재 속도, 위치, 상태값 표시
장비 간 데이터 공유다른 PLC와 생산 정보 또는 인터록 정보 교환
네트워크 통신 버퍼통신 모듈이나 링크 영역 데이터 관리
상위 시스템 연동MES, PC, 검사 장비와의 데이터 전달

W 디바이스에서 특히 주의할 점은 주소 체계입니다. W는 일반적으로 16진수 주소 체계를 사용합니다. 따라서 W9 다음은 W10이 아니라 WA입니다.

이 규칙을 모르면 주소를 10진수처럼 계산해 데이터 영역을 잘못 배치할 수 있습니다. 통신 데이터가 한 칸씩 밀리거나, HMI에서 다른 값을 표시하는 문제가 발생할 수 있습니다.

W 주소를 사용할 때 주의할 점

W 주소는 16진수 체계로 관리됩니다. 숫자 0부터 9까지 사용한 뒤 A, B, C, D, E, F가 이어지고, 그 다음이 10으로 넘어갑니다.

예를 들면 다음과 같습니다.

순서W 주소
1W0
2W1
10W9
11WA
12WB
16WF
17W10

실무에서 W 주소를 배치할 때는 엑셀이나 메모리 맵에 16진수 기준으로 정리하는 것이 안전합니다. 특히 HMI, 상위 PC, 다른 PLC와 주소를 공유하는 경우에는 주소 체계를 서로 동일하게 이해하고 있어야 합니다.

W 영역도 CPU와 네트워크 구성, 파라미터에 따라 사용 가능 범위와 보존 방식이 달라질 수 있습니다. 통신 전용 영역으로 사용할 경우에는 다른 내부 연산 데이터와 섞지 않는 것이 좋습니다.

R 파일 레지스터의 기본 용도

R은 파일 레지스터입니다. D 영역만으로 데이터 저장 공간이 부족하거나, 대량의 레시피 데이터를 관리해야 할 때 사용하는 워드 디바이스입니다.

R 디바이스는 제품별 설정값, 모델별 위치값, 생산 조건, 검사 기준값처럼 여러 세트로 관리해야 하는 데이터를 저장할 때 유용합니다.

예를 들어 제품 모델이 10개이고, 각 모델마다 속도, 위치, 압력, 시간 설정값이 필요하다면 D 영역만으로 관리하기보다 R 영역을 사용해 레시피 구조로 정리하는 방식이 적합할 수 있습니다.

R 디바이스는 다음과 같은 용도로 많이 사용됩니다.

사용 예설명
모델별 레시피제품별 위치, 속도, 시간, 압력 조건 저장
생산 이력 일부 저장간단한 누적값 또는 작업 조건 보관
대용량 설정 데이터D 영역보다 많은 데이터가 필요한 경우
장비 조건 백업특정 조건 세트를 별도 영역에 보관

R 영역은 일반 D 영역과 별도 구조로 사용되는 경우가 많습니다. 다만 실제 보존 방식과 사용 가능 범위는 CPU 모델과 파라미터 설정에 따라 달라질 수 있습니다. 중요한 데이터는 반드시 백업 방식과 초기화 조건까지 함께 확인해야 합니다.

Z 인덱스 레지스터의 기본 용도

Z는 인덱스 레지스터입니다. 값을 저장하는 일반 워드 디바이스라기보다, 주소를 가변적으로 지정할 때 사용하는 보조 디바이스에 가깝습니다.

Z를 사용하면 같은 명령어로 여러 주소를 순차적으로 읽거나 쓸 수 있습니다. 배열 처리, 반복 처리, 레시피 데이터 접근, 다수의 동일 구조 데이터 관리에 활용됩니다.

예를 들어 Z0의 값이 5일 때 D100Z0을 지정하면 실제 참조 주소는 D105가 됩니다.

Z0 = 5
D100Z0 = D105

이 방식은 같은 구조의 데이터가 여러 개 반복될 때 유용합니다.

예를 들어 D100부터 D199까지 제품별 설정값이 순서대로 저장되어 있고, 현재 선택된 모델 번호에 따라 읽을 주소가 달라져야 한다면 Z를 이용해 주소를 계산할 수 있습니다.

Z 사용 시 주의할 점

Z는 주소를 바꾸는 역할을 하기 때문에 잘못 사용하면 전혀 다른 영역을 읽거나 쓸 수 있습니다.

특히 MOV, BMOV, FMOV, 비교 명령, 연산 명령과 함께 사용할 때는 Z 값이 어떤 조건에서 변경되는지 명확히 관리해야 합니다.

다음 사항을 확인하는 것이 좋습니다.

확인 항목이유
Z 값 초기화 조건이전 동작의 인덱스 값이 남아 있을 수 있음
최대 주소 범위의도하지 않은 영역 접근 방지
모델 번호와 인덱스 관계레시피 주소 계산 오류 방지
반복문 종료 조건데이터 영역 초과 접근 방지

Z는 편리하지만 추적이 어려운 디바이스입니다. 유지보수자가 로직을 볼 때 실제 주소를 바로 알기 어렵기 때문에, 주석과 메모리 맵을 함께 정리해야 합니다.

워드 디바이스를 비트 단위로 사용하는 방법

미쓰비시 PLC에서는 CPU 시리즈와 명령, 설정 조건에 따라 워드 디바이스의 특정 비트를 지정해 사용할 수 있습니다.

예를 들어 D0.0, D0.F, W10.5처럼 워드 주소 뒤에 비트 번호를 붙여 특정 비트만 상태 신호처럼 사용할 수 있습니다.

이 방식은 통신 데이터나 상태 데이터를 묶어서 관리할 때 유용합니다.

예를 들어 D100 하나에 16개의 에러 상태를 할당하면, 상위 시스템은 D100 워드 하나만 읽어도 여러 개의 에러 상태를 확인할 수 있습니다.

D100.0 = 비상정지 에러
D100.1 = 도어 열림 에러
D100.2 = 서보 알람
D100.3 = 센서 이상
...
D100.F = 예비 에러

이 방식은 통신 효율을 높일 수 있지만, 같은 워드 주소를 숫자 저장용과 비트 상태용으로 동시에 사용하면 문제가 생깁니다.

예를 들어 D100에 숫자 값을 MOV로 저장하면서 동시에 D100.0을 에러 비트로 사용하면, 숫자 값이 바뀔 때 비트 상태도 함께 바뀔 수 있습니다. 반대로 비트 제어가 숫자 데이터를 깨뜨릴 수도 있습니다.

따라서 워드 단위 데이터와 비트 단위 상태 데이터는 메모리 맵에서 영역을 분리해야 합니다.

D·W·R·Z 비교 정리

D, W, R, Z는 모두 워드 디바이스로 분류되지만 실제 용도는 다릅니다. 설계 단계에서 역할을 구분해 두면 로직 해석과 유지보수가 쉬워집니다.

디바이스주소 체계전원 OFF 시 보존실무 핵심 용도
D10진수파라미터 설정에 따라 다름범용 데이터 저장, 설정값, 위치값, 연산값
W16진수파라미터 및 구성에 따라 다름통신 데이터, 네트워크 공유, HMI 연동
R10진수보존용 데이터 관리에 주로 사용대용량 레시피, 모델 정보, 조건 데이터
Z10진수일반적으로 초기화 대상주소 간접 지정, 배열 처리, 반복 접근

이 표는 일반적인 실무 기준의 정리입니다. 실제 프로젝트에서는 CPU 모델, 파라미터, 네트워크 구성, 메모리 할당 방식에 따라 차이가 있을 수 있습니다.

워드 디바이스 설계 시 확인할 사항

워드 디바이스를 사용할 때는 단순히 비어 있는 주소를 쓰는 방식보다, 용도별로 영역을 나누는 것이 좋습니다.

예를 들어 다음과 같이 구분할 수 있습니다.

영역사용 목적
D0~D99내부 임시 연산값
D100~D199HMI 설정값
D200~D299현재 상태 표시값
D300~D399서보 위치 데이터
W 영역통신 전용 데이터
R 영역모델별 레시피 데이터
Z 영역주소 간접 지정용

이런 식으로 기준을 정해두면 나중에 로직을 수정하거나 HMI 화면을 추가할 때 주소 충돌을 줄일 수 있습니다.

또한 워드 디바이스를 사용할 때는 다음 항목을 함께 확인해야 합니다.

확인 항목설명
16비트 / 32비트 구분데이터 크기에 따라 사용하는 워드 수가 달라짐
부호 있는 값 / 부호 없는 값음수 표시나 범위 오류를 방지하기 위해 확인 필요
래치 여부전원 OFF 후 유지해야 하는 값인지 확인
주소 체계D, R은 10진수 기준, W는 16진수 기준으로 관리
통신 공유 여부HMI, PC, 다른 PLC와 공유되는 주소인지 확인
비트 사용 여부워드 단위 숫자와 비트 단위 상태를 혼용하지 않도록 관리

데이터 구조 정리

D, W, R, Z는 단순한 저장 공간이 아니라 PLC 데이터 구조의 기본입니다. D는 범용 데이터, W는 통신 공유, R은 대용량 보존 데이터, Z는 주소 간접 지정에 주로 사용됩니다.

워드 디바이스를 정확히 구분하면 HMI 표시 오류, 통신 주소 밀림, 전원 재투입 후 데이터 초기화, 레시피 데이터 충돌 같은 문제를 줄일 수 있습니다.

특히 W의 16진수 주소 체계와 D의 래치 설정, Z를 이용한 간접 주소 지정은 현장에서 자주 혼선이 생기는 부분입니다. 설계 단계에서 메모리 맵을 정리하고, 숫자 저장 영역과 비트 상태 영역을 분리해 두는 것이 안정적인 PLC 프로그램 관리의 기본입니다.

타이머와 카운터는 현재값과 접점 성격을 함께 가지는 복합 디바이스로 볼 수 있습니다. 이 부분은 일반 워드 디바이스와 구분해 별도로 정리하는 것이 좋습니다.