PLC 어드레스 맵 작성법 — 구성도의 묶음을 구획으로 만들고, 쓰는 쪽을 하나로 정한다
마지막 수정: 2026-09-25 / 분류: PLC 프로그래밍, 하드웨어 I/O 할당
어드레스 맵은 어느 번호를 누가 어떤 의미로 쓰는지를 한곳에서 정하는 표입니다. PLC 번호를 이제부터 할당할 분, 화면이나 도면 담당자와 번호를 나누어 쓰는 분을 위해 썼습니다.
1. 도면·프로그램·화면은 번호로만 이어져 있다
도면, PLC 프로그램, 터치패널은 서로의 내용을 모릅니다. 이어 주는 것은 X10이나 D200 같은 번호뿐입니다. 번호를 정하는 규칙을 아무도 갖고 있지 않으면, 추가로 인해 번호가 밀리는 일과 같은 번호를 서로 덮어쓰는 일이 일어납니다.
둘 다 시운전 때나 가동이 시작된 뒤에 발견되는 종류의 사고입니다. 어드레스 맵에서 정하는 것은 두 가지. 번호의 구획을 어떻게 나누는가와, 번호에 누가 쓰는가입니다.
2. 어드레스 맵에서 정하는 것은 두 가지
① 구성도의 묶음을 그대로 메모리 구획으로 만든다
첫째는 시스템 구성도에서 정한 "스테이션 1", "로봇", "조작반"을 그대로 메모리 구획으로 만드는 규칙입니다. 기기 묶음마다 사용할 디바이스와 점수를 정하고, 10~20 %의 예비를 포함해 확보합니다. 번호는 그 구획 안에서 매깁니다.
왜 필요한가 — 물리적 구성과 구획이 일치하면 현장의 추가가 그 구획 안에서 끝나기 때문입니다. 여유 없는 배열에 1점을 더하면 뒤의 번호가 모두 밀려, 참조하는 곳을 수백 군데 고치게 됩니다. 구성도와 같은 방식으로 나누면 스테이션 1에 센서를 추가해도 로봇의 번호는 움직이지 않습니다.
② 번호마다 쓰는 쪽을 하나로 정한다
둘째는 "이 구획은 터치패널이 쓴다", "여기는 PLC가 쓴다"처럼 번호마다 쓰는 쪽을 선언해 두는 것입니다. 예를 들어 터치패널이 생산 수량을 쓰는 D200을 프로그램이 계산 중간값의 저장소로도 썼다고 합시다. 생산 수량은 가끔 이상한 값이 되고, 어느 쪽 탓인지는 화면을 봐도 알 수 없습니다.
왜 필요한가 — 덮어쓰기 버그는 현장에서 가장 찾기 어렵기 때문입니다. 쓰는 쪽끼리 타이밍이 겹쳤을 때만 값이 이상해집니다. 표에 쓰는 쪽이 적혀 있으면 덮어쓰기는 번호를 할당하는 단계에서 발견됩니다.
3. 입출력·이름·32비트 값은 이 규칙으로 할당한다
- 입출력은 유닛 위치로 정해지는 번호를 전제로 한다 — 많은 PLC가 장착 순서와 점수로 번호를 매기기 때문입니다. 중간에 유닛을 더하면 뒤의 번호가 밀립니다. 증설용 위치와 점수를 먼저 확보하거나, I/O 할당 설정에서 번호를 고정해 둡니다
- 이름은 "방향·장소·기기·신호" 순서 —
i_Press_TopLS는 입력·프레스·상한 리밋 스위치. 정렬했을 때 같은 장소의 신호가 모여 도면과 대조하기 쉬워집니다 - 32비트 값은 연속된 2워드를 짝수 번호부터 잡는다 — DINT나 REAL은 2워드를 쓰기 때문입니다. 터치패널이나 통신 상대 중에는 2워드 단위 경계를 전제로 하는 것이 있습니다
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 | 조작반 처리 | PLC | 20 % |
| M (내부 릴레이) | M500 - M999 | 스테이션 1의 자동 운전 | PLC | 공정마다 100씩 |
| M (내부 릴레이) | M1000 - M1199 | 로봇으로의 지령 | PLC | 20 % |
| M (내부 릴레이) | M1200 - M1399 | 로봇으로부터의 상태 | 로봇 | 20 % |
| M (내부 릴레이) | M2000 - M2999 | 이상·경보 | PLC | 중고장과 경고장으로 나눔 |
| D (데이터 레지스터) | D0 - D999 | 설정값 | 터치패널 | 품종별로 묶음 |
| D (데이터 레지스터) | D1000 - D1999 | 현재값·모니터 | PLC | 32비트 값은 짝수부터 |
5. 만드는 순서는 기기 → 구획 → 변수 → 번호 → 확인
- 구성도에서 기기와 블록을 받는다 PLC, 리모트 I/O, 로봇과 그 안의 묶음 (유닛·기능). 구성도가 그대로 원본이 됩니다.
- 기기마다 구획과 예비를 확보한다 블록마다 사용할 디바이스와 점수를 먼저 정합니다. 점수는 예비를 포함한 수입니다.
- 구획마다 쓰는 쪽을 적는다 PLC, 터치패널, 로봇, 배선 중 하나입니다.
- 구획 안에 변수를 나열하고 번호를 매긴다 원본은 타이밍 차트의 행이나 기계 설계에서 받은 I/O 리스트입니다. 32비트 값은 짝수부터 시작합니다.
- 중복·범위 밖을 확인하고 PLC 소프트웨어로 넘긴다 디바이스 코멘트나 라벨로 내보냅니다. 번호 변경은 표에서 시작하고, 프로그램과 도면에는 표에서 반영하는 것이 규칙입니다.
6. 걸려 넘어지는 곳은 16진수 세는 법과 구획을 넘은 번호
- 16진수와 10진수의 혼동 — 미쓰비시전기의 X / Y는 16진수로,
X009다음은X00A. 10진수 감각으로X010이라 하면 6점만큼 어긋납니다. 오므론은 "채널.비트" (0.00~0.15)로 셉니다 - 담당자가 구획을 넘어 번호를 쓴다 — 여러 사람이 만들 때는 구획마다 담당을 정합니다. 구획 밖을 쓸 때는 표에서 빈자리를 확인한 뒤에 씁니다
- 표를 거치지 않고 번호를 바꾼다 — 현장에서 배선을 바꾸고 도면만 고치면 표와 프로그램 코멘트가 어긋난 채 남습니다. 번호 변경은 표에서 시작합니다
이 글의 절차에 쓸 수 있는 도구
- Address Map Editor — 구성도에서 받은 기기마다 블록의 디바이스와 점수를 할당합니다. 할당한 범위는 빈 행으로 나열되고, 이름을 입력하면 번호가 붙는 구조입니다. 중복과 범위 밖은 자동으로 검출하고, PLC 소프트웨어에 붙여 넣을 디바이스 코멘트나 라벨 표로 내보낼 수 있습니다.
- System Diagram Editor — 기기와 블록의 구성을 그리고, 그대로 어드레스 맵의 그릇으로 씁니다.
- Timing Chart Editor — 할당한 신호가 어떤 순서로 바뀌는지를 그리는 곳.
설치도 등록도 필요 없이 브라우저만으로 쓸 수 있습니다.
관련 글
- 시스템 구성도 작성법
- 타이밍 차트 작성법
- PLC 제어 플로차트 작성법
- AI에게 사양서를 그리게 한다
- JSON 데이터 구조 사양 — 4개 에디터가 읽고 쓰는 형식과 Schema·검증·예
- 제어 사양서 작성법
yk.builds