지멘스 S7-200 SMART Modbus RTU 레지스터 주소 매핑 완전 가이드

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

1. 개요

S7-200 SMART PLC가 Modbus RTU 마스터 또는 슬레이브로 동작할 때 내부 메모리 영역(I, Q, AIW, V)과 표준 Modbus 주소 사이에는 고정된 매핑 관계가 있습니다. 본 문서는 지멘스 공식 기술 문서를 바탕으로 S7-200 SMART의 Modbus 주소 매핑 규칙을 완전한 주소 대조표, 구성 단계, 통신 예시 및 문제 해결 가이드와 함께 자세히 설명합니다.

S7-200 SMART는 두 가지 Modbus 동작 모드를 지원합니다.

  • Modbus RTU 마스터(Master): 통신 요청을 능동적으로 발행하여 슬레이브 기기를 읽거나 제어
  • Modbus RTU 슬레이브(Slave): 마스터의 읽기/쓰기 요청에 수동으로 응답

2. Modbus 주소 유형 설명

Modbus 프로토콜은 4가지 데이터 영역을 정의하며, 각 영역에는 고정된 주소 범위와 기능 코드가 있습니다.

Modbus 주소 영역기능 코드읽기/쓰기데이터 형식대응 S7-200 SMART 메모리 영역
0xxxx(코일)01(코일 읽기) / 05(단일 코일 쓰기) / 15(여러 코일 쓰기)읽기/쓰기비트(1 bit)Q 영역 디지털 출력
1xxxx(이산 입력)02(이산 입력 읽기)읽기 전용비트(1 bit)I 영역 디지털 입력
3xxxx(입력 레지스터)04(입력 레지스터 읽기)읽기 전용워드(16 bit)AIW 아날로그 입력
4xxxx(유지 레지스터)03(유지 레지스터 읽기) / 06(단일 레지스터 쓰기) / 16(여러 레지스터 쓰기)읽기/쓰기워드(16 bit)V 메모리 영역(구성 가능)

중요 안내: Modbus 주소는 1 기반(1-based) 번호 매기기를 사용하여 1부터 셉니다. 반면 PLC 내부 주소는 보통 0 기반(0-based)으로 0부터 시작합니다.

3. S7-200 SMART Modbus 주소 매핑 표

3.1 디지털 출력 영역(Q 영역) → 0xxxx 코일

디지털 출력 Q 영역은 Modbus 0xxxx 코일 영역에 매핑되며 읽기/쓰기 동작을 지원합니다.

Modbus 주소S7-200 SMART 주소설명
00001Q0.00채널 0비트
00002Q0.10채널 1비트
00003Q0.20채널 2비트
00004Q0.30채널 3비트
00005Q0.40채널 4비트
00006Q0.50채널 5비트
00007Q0.60채널 6비트
00008Q0.70채널 7비트
00009Q1.01채널 0비트
00010Q1.11채널 1비트
00011Q1.21채널 2비트
00012Q1.31채널 3비트
00013Q1.41채널 4비트
00014Q1.51채널 5비트
00015Q1.61채널 6비트
00016Q1.71채널 7비트
00017Q2.02채널 0비트
00018Q2.12채널 1비트
......이하 동일. 8개 주소마다 1바이트에 대응
00256Q31.7최대 주소(최대 32바이트 출력)

계산 공식: Modbus 주소 = 채널 번호 × 8 + 비트 번호 + 1

예시: Q2.3에 접근할 때 Modbus 주소 = 2×8 + 3 + 1 = 00020

기능 코드:

  • 코일 상태 읽기: 기능 코드 01
  • 단일 코일 쓰기: 기능 코드 05
  • 여러 코일 쓰기: 기능 코드 15(0x0F)

주의 사항:

  • Q 영역 주소 매핑은 고정되어 있어 추가 구성이 필요 없음
  • 실제 사용 가능한 Q 포인트 수는 CPU 모델과 확장 모듈에 따라 달라짐
  • 해당 Q 포인트가 하드웨어에 없으면 읽어오는 값은 항상 0

3.2 디지털 입력 영역(I 영역) → 1xxxx 이산 입력

디지털 입력 I 영역은 Modbus 1xxxx 이산 입력 영역에 매핑되며 읽기 전용입니다.

Modbus 주소S7-200 SMART 주소설명
10001I0.00채널 0비트
10002I0.10채널 1비트
10003I0.20채널 2비트
10004I0.30채널 3비트
10005I0.40채널 4비트
10006I0.50채널 5비트
10007I0.60채널 6비트
10008I0.70채널 7비트
10009I1.01채널 0비트
10010I1.11채널 1비트
10011I1.21채널 2비트
10012I1.31채널 3비트
10013I1.41채널 4비트
10014I1.51채널 5비트
10015I1.61채널 6비트
10016I1.71채널 7비트
10017I2.02채널 0비트
10018I2.12채널 1비트
......이하 동일. 8개 주소마다 1바이트에 대응
10256I31.7최대 주소(최대 32바이트 입력)

계산 공식: Modbus 주소 = 10000 + 채널 번호 × 8 + 비트 번호 + 1

예시: I3.5에 접근할 때 Modbus 주소 = 10000 + 3×8 + 5 + 1 = 10030

기능 코드: 이산 입력 읽기에는 기능 코드 02 사용

주의 사항:

  • I 영역 주소 매핑은 고정되어 있어 추가 구성이 필요 없음
  • 이산 입력은 읽기 전용이며 마스터가 쓸 수 없음
  • 실제 사용 가능한 I 포인트 수는 CPU 모델과 확장 모듈에 따라 달라짐

3.3 아날로그 입력 영역(AIW 영역) → 3xxxx 입력 레지스터

아날로그 입력 AIW 영역은 Modbus 3xxxx 입력 레지스터 영역에 매핑되며 읽기 전용입니다.

Modbus 주소S7-200 SMART 주소설명
30001AIW01번째 아날로그 입력 채널
30002AIW22번째 아날로그 입력 채널
30003AIW43번째 아날로그 입력 채널
30004AIW64번째 아날로그 입력 채널
30005AIW85번째 아날로그 입력 채널
30006AIW106번째 아날로그 입력 채널
30007AIW127번째 아날로그 입력 채널
30008AIW148번째 아날로그 입력 채널
30009AIW169번째 아날로그 입력 채널
30010AIW1810번째 아날로그 입력 채널
......이하 동일, 스텝은 2
30056AIW11056번째 아날로그 입력 채널(최대)

계산 공식: Modbus 주소 = 30000 + AIW 번호 / 2 + 1

예시: AIW20을 읽을 때 Modbus 주소 = 30000 + 20/2 + 1 = 30011

기능 코드: 입력 레지스터 읽기에는 기능 코드 04 사용

주의 사항:

  • AIW는 워드 어드레싱이며 각 AIW는 2바이트를 차지하므로 주소 스텝 1이 AIW 스텝 2에 대응
  • 입력 레지스터는 읽기 전용이며 마스터가 쓸 수 없음
  • 아날로그 입력값 범위는 보통 0-32767(단극성) 또는 -32768~32767(양극성)
  • 실제 사용 가능한 AIW 수는 아날로그 모듈의 채널 수에 따라 달라짐

3.4 V 메모리 영역 → 4xxxx 유지 레지스터

V 메모리 영역의 매핑은 구성 가능하며 Modbus 슬레이브 명령 MBUS_INIT의 두 파라미터로 정의합니다.

  • HoldStart: 유지 레지스터 영역의 시작 V 주소(예: &VB1000)
  • MaxHold: 유지 레지스터 영역의 워드 수(단위: 워드, 즉 VW의 수)

매핑 규칙:

Modbus 주소S7-200 SMART 주소설명
40001VW[HoldStart]1번째 유지 레지스터
40002VW[HoldStart + 2]2번째 유지 레지스터
40003VW[HoldStart + 4]3번째 유지 레지스터
40004VW[HoldStart + 6]4번째 유지 레지스터
......이하 동일, 스텝은 2바이트
400XXVW[HoldStart + 2 × (XX - 1)]XX번째 유지 레지스터

완전한 예시: HoldStart = &VB1000, MaxHold = 100인 경우

Modbus 주소V 메모리 주소바이트 범위설명
40001VW1000VB1000-VB10011번째 유지 레지스터
40002VW1002VB1002-VB10032번째 유지 레지스터
40003VW1004VB1004-VB10053번째 유지 레지스터
40004VW1006VB1006-VB10074번째 유지 레지스터
40005VW1008VB1008-VB10095번째 유지 레지스터
............
40100VW1198VB1198-VB1199100번째 유지 레지스터(마지막)

기능 코드:

  • 유지 레지스터 읽기: 기능 코드 03
  • 단일 레지스터 쓰기: 기능 코드 06
  • 여러 레지스터 쓰기: 기능 코드 16(0x10)

주의 사항:

  • V 메모리 영역 매핑은 구성 가능하며 MBUS_INIT 명령의 HoldStart와 MaxHold 파라미터로 설정
  • HoldStart는 &VB1000처럼 VB 주소를 가리켜야 함
  • MaxHold의 단위는 바이트(VB)가 아니라 워드(VW)
  • 유지 레지스터 영역이 PLC 프로그램에서 이미 사용 중인 V 메모리와 충돌하면 안 됨
  • MaxHold를 100으로 설정하면 VB1000-VB1199까지 총 200바이트를 점유

4. PLC 슬레이브 구성 단계

4.1 Modbus 슬레이브 명령 라이브러리 설치

  1. STEP 7-Micro/WIN SMART 프로그래밍 소프트웨어 열기
  2. 명령 트리에서 「라이브러리」 폴더 찾기
  3. Modbus Slave 라이브러리가 없으면 먼저 가져오기: 「라이브러리」 우클릭 →「라이브러리 가져오기」→ Modbus Slave 라이브러리 파일 선택
  4. 라이브러리 파일은 보통 지멘스 공식 웹사이트에서 다운로드하며 이름은 「Modbus Slave」

4.2 MBUS_INIT 명령을 호출하여 슬레이브 초기화

첫 번째 스캔 주기(SM0.1)에서 MBUS_INIT 명령을 호출합니다. 파라미터는 다음과 같습니다.

파라미터 이름값 범위설명
Mode0 / 10=Modbus 슬레이브 비활성화하고 일반 프리포트로 복귀, 1=Modbus 슬레이브 활성화
Baud1200-115200전송 속도. 자주 쓰는 값: 9600, 19200, 38400, 115200
Parity0 / 1 / 2패리티: 0=없음, 1=홀수, 2=짝수
Port0 / 1통신 포트: 0=온보드 RS485 포트, 1=시그널 보드 SB CM01의 RS485 포트
SlaveAddr1-247Modbus 슬레이브 주소. 같은 버스에서 중복 불가
HoldStart&VBxxx유지 레지스터 영역 시작 V 주소 포인터(예: &VB1000)
MaxHold0-10000유지 레지스터 영역 워드 수(단위: 워드). 100이면 VW 100개
DoneBOOL초기화 완료 플래그 비트
오답BYTE오류 코드

4.3 MBUS_SLAVE 명령 메인 폴링

메인 프로그램 루프에서 매 스캔 주기마다 MBUS_SLAVE 명령을 호출해야 합니다.

  • 이 명령은 Modbus 마스터가 보낸 요청을 처리
  • 호출하지 않으면 슬레이브가 마스터에 응답할 수 없음
  • 파라미터: Done(완료 플래그), 오답(오류 코드)

4.4 V 메모리 영역 데이터 구성

HoldStart로 지정한 V 주소 영역에 읽고 쓸 데이터를 저장합니다.

  • 마스터가 쓴 데이터는 이 영역에 저장
  • PLC 프로그램은 이 영역에서 데이터를 읽어 처리
  • 프로그램에서 사용 중인 다른 V 주소와 충돌하지 않도록 주의

5. PLC 마스터 구성 및 읽기 예시

5.1 MBUS_CTRL 명령을 호출하여 마스터 초기화

첫 번째 스캔 주기(SM0.1)에서 MBUS_CTRL 명령을 호출하여 Modbus 마스터를 초기화합니다.

파라미터 이름값 범위설명
Mode0 / 10=Modbus 마스터 비활성화, 1=Modbus 마스터 활성화
Baud1200-115200전송 속도. 슬레이브와 일치해야 함
Parity0 / 1 / 2패리티. 슬레이브와 일치해야 함
Port0 / 1통신 포트: 0=온보드 RS485, 1=시그널 보드
Timeout1-32767 ms슬레이브 응답 대기 시간. 1000ms 권장
DoneBOOL초기화 완료 플래그 비트
오답BYTE오류 코드

5.2 MBUS_MSG 명령을 호출하여 읽기/쓰기 요청 발행

MBUS_MSG 명령은 한 번의 Modbus 읽기/쓰기 요청을 발행하는 데 사용합니다.

파라미터 이름값 범위설명
FirstBOOL최초 실행 펄스. 상승 에지 감지 시 요청 발행
Slave1-247슬레이브 주소
RW0 / 10=읽기 요청, 1=쓰기 요청
AddrModbus 주소접근할 Modbus 주소. 40001이면 1번째 유지 레지스터
Count1-120읽고 쓸 레지스터/코일 수
데이터Ptr&VBxxx데이터 버퍼 포인터(예: &VB2000)
DoneBOOL이번 요청 완료 플래그 비트
오답BYTE오류 코드

5.3 유지 레지스터 읽기 예시

주소가 1인 슬레이브 기기에서 유지 레지스터 10개(40001-40010)를 읽는다고 가정합니다.

  1. First: 펄스 신호로 트리거
  2. Slave: 1
  3. RW: 0(읽기)
  4. Addr: 40001
  5. Count: 10
  6. 데이터Ptr: &VB2000

읽기 성공 후 VB2000부터 시작하는 20바이트에 레지스터 10개의 데이터가 저장됩니다.

6. 자주 묻는 질문과 문제 해결 가이드

6.1 통신 무응답, 슬레이브가 답하지 않음

  • 배선 확인: RS485의 A+와 B-가 역접속되지 않았는지. 이것이 가장 흔한 실수
  • 파라미터 일치성 확인: 마스터와 슬레이브의 전송 속도, 데이터 비트, 정지 비트, 패리티는 완전히 일치해야 함
  • 슬레이브 주소 확인: SlaveAddr이 올바른지. 버스에 중복 주소가 없어야 함
  • 버스 전압 측정: A선(D+)은 B선(D-)보다 약 200mV 이상 높아야 함
  • 종단 저항 확인: 버스 양끝에 120Ω 종단 저항이 있는지(장거리에서 필요)
  • Port 파라미터 확인: 올바른 통신 포트(0 또는 1)를 선택했는지

6.2 데이터를 읽을 수 없거나 데이터가 올바르지 않음

  • 주소 형식 확인: Modbus 주소에는 1 기반과 0 기반 두 가지 표기가 있어 구분에 주의
  • HoldStart 확인: 유지 레지스터 시작 주소 설정이 올바른지 확인
  • MaxHold 확인: 유지 레지스터 수가 충분한지 확인
  • 주소 범위 확인: 읽을 주소가 MaxHold로 정의한 범위 내인지
  • 바이트 순서 확인: 32비트 데이터의 상위/하위 워드 순서가 마스터와 맞는지

6.3 데이터가 깨지거나 숫자가 올바르지 않음

  • 데이터 형식 확인: 16비트 정수, 32비트 정수, 부동소수점 중 무엇인지 확인
  • 바이트 순서 확인: 빅엔디안과 리틀엔디안이 일치하는지
  • 워드 순서 확인: 32비트 데이터의 상위/하위 워드 순서가 올바른지
  • 스케일링 확인: 배율이 필요한지(예: 0.1℃ 단위 값은 10으로 나눠야 함)
  • 음수 처리 확인: 음수는 2의 보수로 표현. 부호 있음과 부호 없음의 차이에 주의

6.4 간헐적 통신 실패

  • 실드 케이블 확인: RS485 선에 실드 트위스트 페어 케이블을 사용하고 실드를 편측 접지했는지
  • 버스 길이 확인: 9600bps에서 최대 1200m, 115200bps에서 최대 약 100m
  • 슬레이브 수 확인: 하나의 RS485 버스에는 슬레이브 최대 32대(리피터 없이)
  • 전자기 간섭 확인: 통신선이 동력선과 평행하게 배선되지 않았는지, 간섭원이 없는지
  • 타임아웃 설정 확인: Timeout 파라미터가 너무 작지 않은지. 적절히 늘려서 시험

6.5 오답 오류 코드 설명

오류 코드설명해결 방법
0오류 없음-
1패리티 오류패리티 설정 확인
2전송 속도 미지원전송 속도 파라미터 확인
3타임아웃 오류배선, 슬레이브 전원, 타임아웃 설정 확인
4슬레이브 주소 오류SlaveAddr 파라미터 확인
5확인 응답 미수신슬레이브 무응답. 배선과 파라미터 확인
10게이트웨이 오류게이트웨이 구성 확인

7. 요약

S7-200 SMART의 Modbus 주소 매핑 규칙은 명확하고 간단합니다.

  • 0xxxx 코일 영역 → Q 영역 디지털 출력에 대응, 읽기/쓰기
  • 1xxxx 이산 입력 영역 → I 영역 디지털 입력에 대응, 읽기 전용
  • 3xxxx 입력 레지스터 영역 → AIW 아날로그 입력에 대응, 읽기 전용
  • 4xxxx 유지 레지스터 영역 → V 메모리 영역에 대응, 구성 가능, 읽기/쓰기

이 매핑 관계를 익히면 S7-200 SMART와 서드파티 기기의 Modbus RTU 통신을 빠르게 구현할 수 있습니다. 실제 적용에서는 먼저 Modbus Poll 같은 디버깅 소프트웨어로 통신을 테스트하고 주소 매핑이 올바른지 확인한 뒤 PLC 프로그램을 작성하는 것을 권장합니다.

8. 관련 링크

  • Modbus RTU 통신 기초 튜토리얼
  • Modbus 기능 코드 상세 해설
  • 지멘스 S7-200 SMART Modbus 마스터 구성 실례
  • RS485 버스 배선 규격
실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注