본문으로 건너뛰기

PLC 프로파일링 — 테스트 키트(건조로 #2)

PLC 프로파일링 은 IO 주소 목록이 없는 PLC 를 엣지가 읽기 전용으로 훑어 실제로 쓰는 주소를 찾고, 이름을 붙여 태그로 등록하게 해 주는 기능입니다. 이 쪽의 테스트 키트는 실제 설비 없이 그 흐름을 처음부터 끝까지 시험해 보는 묶음입니다 — 가상의 «건조로 #2» 를 흉내 내는 Modbus TCP 시뮬레이터와, 그 값에 맞춘 HMI 화면 사진 · PLC 코멘트 파일입니다.

출시 전 기능입니다

PLC 프로파일링은 아직 정식 출시 전이라, 이 기능이 들어간 시험 빌드에서만 보입니다. 화면 머리줄의 칩 아이콘으로 열고, AI 가 설정돼 있을 때만 보입니다. 기능 소개는 엣지 제안서 의 «⑥ 주소 목록이 없어도 붙입니다» 쪽을 보세요.

키트 내려받기​

파일무엇내려받기
HMI 화면 사진가상 HMI «건조로 #2 운전 화면»(1280×800). 설정값 · 생산 수량 · 램프가 시뮬레이터 값과 맞습니다hmi-dryer2.png
PLC 코멘트PLC 코멘트 내보내기 예시. Modicon 주소(4xxxx · 3xxxx · 0xxxx · 1xxxx, 1부터 셈), UTF-8, 23줄dryer2-comments.csv
시뮬레이터위 둘과 값이 맞는 Modbus TCP 시뮬레이터. Python 3 표준 라이브러리만 쓰고, 읽기 전용입니다dryer2_sim.py

사진과 코멘트는 선택 첨부입니다. 없어도 스캔 결과만으로 기본 이름을 짓습니다 — 첨부하면 AI 가 그 근거로 태그명 · 설명 · 단위를 제안합니다.

가상 HMI «건조로 #2 운전 화면» — 시뮬레이터 값과 맞춘 사진

시뮬레이터 실행​

python3 dryer2_sim.py 5020
  • 포트를 빼면 5020 입니다. 켜지면 dryer2 simulator listening on :5020 이 찍힙니다.
  • 엣지와 같은 호스트에서 돌리면 엣지에 넣을 IP 는 127.0.0.1 입니다(엣지 컨테이너는 host 네트워크를 씁니다). 다른 PC 에서 돌리면 그 PC 의 IP 를 넣습니다.
  • 다른 PC 라면 그 PC 의 방화벽에서 5020/tcp 를 열어야 할 수 있습니다.
  • Unit ID 는 무엇을 넣어도 받습니다.

시뮬레이터가 내는 값​

주소는 Modbus 프로토콜 주소(0부터)와 Modicon 표기(1부터)를 함께 적었습니다. 코멘트 CSV 는 Modicon 표기입니다.

영역 · 주소Modicon뜻값
holding 040001건조로 현재 온도 (×0.1 ℃)99.0~102.0 사이에서 움직임
holding 140002배기 댐퍼 현재 개도 (×0.1 %)움직임
holding 240003배치 번호35 (고정)
holding 340004생산 카운터3초마다 +1
holding 440005누적 가동 시간 (h)111 (고정)
holding 540006레시피 번호640 (고정)
holding 1040011건조로 설정 온도 (×0.1 ℃)1008 → 100.8 ℃
holding 1140012배기 댐퍼 설정 (×0.1 %)1009 → 100.9 %
holding 1240013공급 압력 설정 (×0.01 bar)1015 → 10.15 bar
holding 1340014컨베이어 속도 설정 (×0.01 m/min)1016 → 10.16 m/min
holding 1440015상한 경보 설정 (×0.1 ℃)1020 → 102.0 ℃
holding 20–2140021–40022공급 압력 현재값, FLOAT32 상위 워드 먼저10.0~10.3 bar 사이에서 움직임
input 030001생산 수량 표시 (EA)999
input 130002가동 시간 표시 (h)111
coil 0~300001~00004운전 · 정지 · 자동 · 이상 램프1 · 0 · 1 · 0
discrete 010001도어 닫힘1
discrete 110002비상 정지 눌림0
discrete 210003버너 화염 감지5초마다 깜박임
  • 네 영역 모두 주소 0~1999 를 내고, 위 표에 없는 주소는 0 입니다.
  • 2000 이상은 «없는 주소»(Modbus 예외 02)로 답합니다 — 스캔의 경계 탐색이 여기서 끝을 찾습니다.
  • 쓰기 요청(기능 코드 5 · 6 · 15 · 16)은 예외 01 로 거절합니다.

시험 순서​

  1. 엣지 화면 머리줄의 PLC 프로파일링 을 엽니다.
  2. 새 PLC 정보 입력 을 고르고 이름 «건조로 #2», 설명(필수), 프로토콜 Modbus, 위에서 정한 IP 와 포트 5020 을 넣습니다.
  3. 스캔 시간을 5분 으로 정합니다.
  4. 키트의 HMI 사진과 코멘트 CSV 를 첨부합니다(선택).
  5. 시작 합니다.
  6. 스캔이 끝나면 AI 로 이름 만들기 를 누릅니다.
  7. ④ 확인 · 등록 화면에서 정확도와 근거를 보고, 맞는 것을 체크해 등록합니다.

기대 결과​

  • 사진의 설정값 100.8 · 100.9 · 10.15 · 10.16 · 102.0 이 40011~40015 와 짝지어집니다.
  • 사진의 35 · 640 · 111 · 999 도 각 주소와 짝지어집니다.
  • 사진의 램프(운전 · 정지 · 자동 · 이상)는 코일 00001~00004 와 짝지어집니다.
  • 코멘트 CSV 의 49001 은 스캔 영역 밖이라 버려집니다 — 정상입니다.
  • 사진에 촬영 시각(EXIF)이 없으면 올린 시각의 값과 비교합니다. 그래서 온도 · 개도 · 압력처럼 움직이는 값은 맞지 않을 수 있습니다 — 고정값과 설정값이 짝의 기준입니다.
시험용입니다

이 키트는 실제 가동 중인 PLC 가 아니라 시험용입니다. 시뮬레이터는 쓰기를 거절하고(읽기 전용) 모든 네트워크 주소에서 연결을 받으므로, 시험망에서만 돌리고 시험이 끝나면 끕니다.

프로토콜별 사전 설정과 제약​

실제 PLC 를 스캔하기 전에 아래를 확인하세요. 엣지 화면도 시작 화면에서 프로토콜을 고르면 같은 내용을 대상 영역 위에 보여 줍니다.

공통

  • 동시 접속 수가 제한된 PLC 는, 기존 수집이 연결을 쓰고 있으면 스캔 연결이 거절될 수 있습니다. 이때 스캔은 «두 번째 연결 거절» 사유로 멈춥니다.
  • 방화벽에서 PLC 포트가 열려 있어야 합니다.

지멘스 S7 (1200/1500)

  • CPU 속성 › 보호 & 보안 › 연결 메커니즘 › «원격 파트너의 PUT/GET 통신 액세스 허용» 이 켜져 있어야 M · I · Q 도 읽힙니다. 보호 수준이 «전체 접근 금지» 여도 읽을 수 없습니다.
  • TIA Portal 에서 «최적화된 블록 액세스» 로 만든 DB 는 주소로 읽을 수 없어 스캔에서 빠집니다(현장 1200/1500 에 많습니다). 그 DB 의 «최적화된 블록 액세스» 를 끄고 다시 다운로드해야 읽힙니다.

미쓰비시

  • PLC 이더넷 설정에 MC 프로토콜(SLMP) 포트가 열려 있고, 통신 데이터 코드가 «바이너리» 여야 합니다.
  • FX3 는 이더넷 어댑터(FX3U-ENET 등)의 MC 프로토콜 설정이, A 시리즈는 이더넷 모듈의 1E 프레임 통신이 필요합니다.
  • ZR(확장 파일 레지스터)은 기본 스캔 영역에 들어 있지 않습니다.

LS

  • FEnet 모듈의 «XGT 전용 프로토콜»(기본 포트 2004)이 켜져 있고, 접속 허용 IP 에 엣지가 들어 있어야 합니다.
  • XGI / XEC 에서 직접 주소(%MW · %MX 등) 없이 이름만 있는 변수는 주소로 읽을 수 없어 스캔에서 빠집니다.

Modbus

  • 어느 주소에 무엇이 있는지는 장비마다 다릅니다. Unit ID 가 틀리면 아무것도 읽히지 않습니다.
  • RTU-TCP 게이트웨이를 거치면 매우 느리므로 스캔 시간을 30분 이상으로 잡으세요.

관련 문서​