PLC 어드레스 맵 작성법 — 구성도의 묶음을 구획으로 만들고, 쓰는 쪽을 하나로 정한다

마지막 수정: 2026-09-25 / 분류: PLC 프로그래밍, 하드웨어 I/O 할당

어드레스 맵은 어느 번호를 누가 어떤 의미로 쓰는지를 한곳에서 정하는 표입니다. PLC 번호를 이제부터 할당할 분, 화면이나 도면 담당자와 번호를 나누어 쓰는 분을 위해 썼습니다.

1. 도면·프로그램·화면은 번호로만 이어져 있다

도면, PLC 프로그램, 터치패널은 서로의 내용을 모릅니다. 이어 주는 것은 X10이나 D200 같은 번호뿐입니다. 번호를 정하는 규칙을 아무도 갖고 있지 않으면, 추가로 인해 번호가 밀리는 일과 같은 번호를 서로 덮어쓰는 일이 일어납니다.

둘 다 시운전 때나 가동이 시작된 뒤에 발견되는 종류의 사고입니다. 어드레스 맵에서 정하는 것은 두 가지. 번호의 구획을 어떻게 나누는가와, 번호에 누가 쓰는가입니다.

2. 어드레스 맵에서 정하는 것은 두 가지

① 구성도의 묶음을 그대로 메모리 구획으로 만든다

첫째는 시스템 구성도에서 정한 "스테이션 1", "로봇", "조작반"을 그대로 메모리 구획으로 만드는 규칙입니다. 기기 묶음마다 사용할 디바이스와 점수를 정하고, 10~20 %의 예비를 포함해 확보합니다. 번호는 그 구획 안에서 매깁니다.

왼쪽 구성도에 조작반·스테이션 1·로봇의 3개 기기. 오른쪽 메모리 공간 X0–X2F가 같은 이름의 3개 구획으로 나뉘고, 각 구획 끝에 예비가 있다. 스테이션 1에 추가한 센서는 스테이션 1의 예비 X1C에 들어가고, 로봇의 구획 X20 이후는 움직이지 않는다.
구성도의 기기가 그대로 구획의 이름이 됩니다. 현장에서 추가한 센서는 그 기기의 예비에 들어갑니다.

왜 필요한가 — 물리적 구성과 구획이 일치하면 현장의 추가가 그 구획 안에서 끝나기 때문입니다. 여유 없는 배열에 1점을 더하면 뒤의 번호가 모두 밀려, 참조하는 곳을 수백 군데 고치게 됩니다. 구성도와 같은 방식으로 나누면 스테이션 1에 센서를 추가해도 로봇의 번호는 움직이지 않습니다.

② 번호마다 쓰는 쪽을 하나로 정한다

둘째는 "이 구획은 터치패널이 쓴다", "여기는 PLC가 쓴다"처럼 번호마다 쓰는 쪽을 선언해 두는 것입니다. 예를 들어 터치패널이 생산 수량을 쓰는 D200을 프로그램이 계산 중간값의 저장소로도 썼다고 합시다. 생산 수량은 가끔 이상한 값이 되고, 어느 쪽 탓인지는 화면을 봐도 알 수 없습니다.

왼쪽: 터치패널의 "생산 수량"과 프로그램의 "계산 중간값" 두 화살표가 같은 D200에 써서 값을 서로 덮어쓴다. 오른쪽: 터치패널은 D0–D999의 설정값에, PLC는 D1000–D1999의 현재값에 각각 하나씩 쓴다.
왼쪽은 쓰는 쪽을 정하지 않은 번호. 오른쪽은 구획마다 쓰는 쪽을 하나로 정한 번호.

왜 필요한가 — 덮어쓰기 버그는 현장에서 가장 찾기 어렵기 때문입니다. 쓰는 쪽끼리 타이밍이 겹쳤을 때만 값이 이상해집니다. 표에 쓰는 쪽이 적혀 있으면 덮어쓰기는 번호를 할당하는 단계에서 발견됩니다.

3. 입출력·이름·32비트 값은 이 규칙으로 할당한다

4. 구획의 예 — 구성도의 묶음마다 범위와 쓰는 쪽을 표로 만든다

미쓰비시전기 PLC 표기로 든 예입니다 (입출력 번호는 16진수). 구획의 개념은 다른 PLC에서도 같습니다.

디바이스범위구성도의 묶음쓰는 쪽예비 확보 방법
X (입력)X000 - X01F조작반 스위치배선끝의 8점
X (입력)X020 - X05F스테이션 1의 기상 센서배선끝의 16점. 스테이션마다 선두를 구분
Y (출력)Y000 - Y01F조작반 표시등·부저PLC끝의 8점
Y (출력)Y020 - Y05F스테이션 1의 전자밸브PLC밸브 매니폴드의 최대 연수까지
M (내부 릴레이)M0 - M499조작반 처리PLC20 %
M (내부 릴레이)M500 - M999스테이션 1의 자동 운전PLC공정마다 100씩
M (내부 릴레이)M1000 - M1199로봇으로의 지령PLC20 %
M (내부 릴레이)M1200 - M1399로봇으로부터의 상태로봇20 %
M (내부 릴레이)M2000 - M2999이상·경보PLC중고장과 경고장으로 나눔
D (데이터 레지스터)D0 - D999설정값터치패널품종별로 묶음
D (데이터 레지스터)D1000 - D1999현재값·모니터PLC32비트 값은 짝수부터

5. 만드는 순서는 기기 → 구획 → 변수 → 번호 → 확인

  1. 구성도에서 기기와 블록을 받는다 PLC, 리모트 I/O, 로봇과 그 안의 묶음 (유닛·기능). 구성도가 그대로 원본이 됩니다.
  2. 기기마다 구획과 예비를 확보한다 블록마다 사용할 디바이스와 점수를 먼저 정합니다. 점수는 예비를 포함한 수입니다.
  3. 구획마다 쓰는 쪽을 적는다 PLC, 터치패널, 로봇, 배선 중 하나입니다.
  4. 구획 안에 변수를 나열하고 번호를 매긴다 원본은 타이밍 차트의 행이나 기계 설계에서 받은 I/O 리스트입니다. 32비트 값은 짝수부터 시작합니다.
  5. 중복·범위 밖을 확인하고 PLC 소프트웨어로 넘긴다 디바이스 코멘트나 라벨로 내보냅니다. 번호 변경은 표에서 시작하고, 프로그램과 도면에는 표에서 반영하는 것이 규칙입니다.

6. 걸려 넘어지는 곳은 16진수 세는 법과 구획을 넘은 번호

이 글의 절차에 쓸 수 있는 도구

  • Address Map Editor — 구성도에서 받은 기기마다 블록의 디바이스와 점수를 할당합니다. 할당한 범위는 빈 행으로 나열되고, 이름을 입력하면 번호가 붙는 구조입니다. 중복과 범위 밖은 자동으로 검출하고, PLC 소프트웨어에 붙여 넣을 디바이스 코멘트나 라벨 표로 내보낼 수 있습니다.
  • System Diagram Editor — 기기와 블록의 구성을 그리고, 그대로 어드레스 맵의 그릇으로 씁니다.
  • Timing Chart Editor — 할당한 신호가 어떤 순서로 바뀌는지를 그리는 곳.

설치도 등록도 필요 없이 브라우저만으로 쓸 수 있습니다.

관련 글

yk.builds