지멘스 S7
지멘스 (SIEMENS) SIMATIC S7 시리즈의 표준 통신 규약(ISO-on-TCP / S7 프로토콜) 으로 통신합니다.
지원 시리즈: S7-300 / S7-400 / S7-1200 / S7-1500 (+ S7-200 / S7-200 SMART / SINUMERIK 828D)
등록 폼 입력값
| 입력 칸 | 무엇을 적나요 | 예시 |
|---|---|---|
| IP 주소 | PLC 의 IP | 192.168.0.70 |
| 포트 | S7 통신 포트 | 102 (표준 / 변경 비추천) |
| Controller Type (controller-type) | PLC 시리즈 | S7_400 (기본) / S7_300 / S7_200 / S7_200_SMART / S7_1200 / S7_1500 / SINUMERIK_828D |
| Rack (local-rack) | rack 번호 | 보통 0 |
| Slot (local-slot) | CPU slot 번호 | 시리즈별 다름 (아래 표) — 미지정 시 3 |
| 멀티 리드 (multi-read) | 청크별 1왕복 일괄 읽기 사용 여부 | 체크 시 true (기본 미사용 — 태그별 개별 읽기) |
| 멀티 리드 최대 아이템 (multi-read-max-items) | 청크당 아이템 수 상한 | 18 (기본, PDU 240 예산) |
시리즈별 rack / slot
| 시리즈 | rack | slot |
|---|---|---|
| S7-300 | 0 | 2 |
| S7-400 | 0 | 3 (CPU 슬롯에 따라 다를 수 있음) |
| S7-1200 | 0 | 0 (또는 1) |
| S7-1500 | 0 | 0 (또는 1) |
TIA Portal 측 사전 설정
지멘스 PLC 는 보안상 외부에서 값을 읽으려면 다음 설정이 필요합니다.
- TIA Portal 에서 PLC 속성 → Protection & Security → “Permit access with PUT/GET communication from remote partner” 활성화
- 데이터 블록(DB) 의 속성 → Optimized block access OFF (절대주소 모드로 변경)
이 두 설정이 안 되어 있으면 “Address out of range” 또는 “Connection rejected” 가 발생합니다.
태그의 PLC 주소 표기
지멘스 표준 메모리 표기를 그대로 사용합니다. % 로 시작합니다.
| 표기 | 의미 |
|---|---|
%DB1.DBX0.0 | DB1 의 byte 0 의 bit 0 (불 값) |
%DB1.DBB0 | DB1 의 byte 0 (8-bit) |
%DB1.DBW0 | DB1 의 word 0 (16-bit) |
%DB1.DBD0 | DB1 의 double word 0 (32-bit / 실수) |
%I0.0 | 입력 비트 0.0 |
%Q0.0 | 출력 비트 0.0 |
%M0.0 | 메모리 비트 0.0 |
%MW100 | 메모리 word 100 |
%MD100 | 메모리 double 100 (32-bit) |
% 없이 적어도 동작은 하지만 매뉴얼 / 다른 도구와의 일관성을 위해 % 를 붙이시기를 권장합니다.
데이터 형식 매칭
| PLC 의 값 | 데이터 형식 | 형식 보조 | PLC 주소 예 |
|---|---|---|---|
| 불 (Bool) | Boolean | (비움) | %DB1.DBX0.0, %I0.0, %M0.0 |
| 8-bit | Integer | B | %DB1.DBB0 |
| 16-bit 정수 | Integer | (비움) | %DB1.DBW0, %MW100 |
| 32-bit 정수 | Integer | DW | %DB1.DBD0, %MD100 |
| 32-bit 실수 (가장 흔한 실수형) | Float | REAL | %DB1.DBD0 |
| 64-bit 실수 | Double | LREAL | %DB1.DBD8 |
| 문자열 (S7 STRING) | String | STR[N] | %DB1.DBB100 |
Bool 표기 확인
Bool 은 반드시 %DB1.DBX{byte}.{bit} 형식. 끝의 .0 ~ .7 빠뜨리지 마세요.
흔한 문제와 해결
| 증상 / 메시지 | 가능한 원인 | 해결 |
|---|---|---|
| “Connection refused” | 포트 102 차단, PUT/GET 비활성 | TIA Portal 의 PUT/GET 통신 허용 활성화 |
| “Connection rejected by remote” | rack/slot 불일치 | 위 표 참고하여 rack/slot 정정 |
| “Address out of range” | DB 가 Optimized 모드 (절대주소 모드 아님) | TIA Portal 에서 DB 속성 → Optimized block access 끄기 |
모든 값 0 | DB 번호 / 오프셋 오류 | TIA Portal Watch table 에서 같은 주소가 실제로 동작하는지 확인 |
| Bool 만 안 읽힘 | .bit 누락 | %DB1.DBX0.0 처럼 .bit 까지 정확히 |
자주 쓰는 예시
라인 PLC 한 대에 자주 묶이는 태그
| 태그 이름 | PLC 주소 | 데이터 형식 | 형식 보조 |
|---|---|---|---|
| 펌프 가동 (DB) | %DB1.DBX0.0 | Boolean | (비움) |
| 입력 신호 | %I0.0 | Boolean | (비움) |
| 압력 (kPa, 실수) | %DB1.DBD8 | Float | REAL |
| 누적 카운터 | %MD100 | Integer | DW |
| 배치 이름 | %DB1.DBB100 | String | STR[16] |
더 자세한 예제 / 자동화 등록
고급 — REST API 의 S7 예제를 참고하세요.