PortDock

PLC 없이 MC 프로토콜 통신 시험하기 — 시뮬레이터·127.0.0.1·흔한 실수

PLC 가 오기 전에 HMI·수집 프로그램의 MC 프로토콜(SLMP) 통신을 같은 PC 에서 시험하는 순서. 3E/4E·이진/ASCII·포트·국번 불일치 같은 흔한 실수.

이 글에서 쓰는 도구PLC Simulator 윈도우 프로그램 · 무료TCP 윈도우 프로그램 · 무료MC 프로토콜(SLMP) 프레임 해석기 웹 · 설치 없음IP 서브넷 계산기 웹 · 설치 없음

HMI 화면, 데이터 수집 프로그램, 상위 프로그램이 PLC 값을 MC 프로토콜(SLMP)로 읽고 쓰게 만들 때, PLC 가 오기 전에도 통신 부분은 시험할 수 있습니다. PortDock PLC Simulator 는 PC 가 PLC 의 이더넷 포트처럼 MC 프로토콜 요청에 답하게 하는 무료 윈도우 프로그램입니다. 이 글은 같은 PC 에서 자기 프로그램과 시뮬레이터를 127.0.0.1 로 잇는 순서와, 처음에 자주 막히는 곳을 정리합니다.

1. 시뮬레이터 설정

설정고를 것
연결 방식TCP 서버(클라이언트 여러 개, 최대 64) 또는 UDP — 자기 프로그램이 쓰는 쪽
프레임3E(서브헤더 5000) 또는 4E(5400 + 일련번호) — 자기 프로그램과 같게
데이터 코드이진 또는 ASCII — 자기 프로그램과 같게
묶을 주소127.0.0.1(기본) — 이 PC 안의 프로그램만 붙습니다
포트기본 5000. 이 프로그램의 기본값일 뿐이고, 매뉴얼은 포트를 정해 두지 않습니다(PLC 쪽 설정에서 정함)

가운데 위에서 디바이스 D 를 고르고 D100~D102 에 값을 넣은 뒤 «시작»(F4)을 누릅니다. 값은 시작 전에 넣어도 되고, 시작한 동안 바꾸면 다음 요청부터 그 값으로 답합니다.

2. 자기 프로그램 설정

3. 첫 요청 — D100 부터 3워드 읽기

50 00 00 FF FF 03 00 0C 00 10 00 01 04 00 00 64 00 00 A8 03 00

3E 이진의 일괄 읽기(0401) 요청입니다. 칸마다의 뜻은 «MC 프로토콜 3E 이진 프레임 읽는 법» 에 있습니다. 시뮬레이터의 D100~D102 에 0x1995·0x1202·0x1130 을 넣어 두었다면 응답은 이렇습니다.

D0 00 00 FF FF 03 00 08 00 00 00 95 19 02 12 30 11

종료 코드 00 00(완료) 뒤에 값이 작은 자리 바이트부터 붙습니다. 같은 요청을 ASCII 로 보내면 «500000FF03FF000018001004010000D*0001000003» 입니다. 시뮬레이터의 통신 기록에는 «0401 일괄 읽기 (워드) D100 ×3», «종료 0000 완료 · 6바이트» 같은 풀이가 붙습니다.

흔한 실수

증상볼 것
접속이 안 됨시뮬레이터를 시작했는지, 포트가 같은지. 127.0.0.1 은 같은 PC 에서만 붙습니다. 다른 PC 의 HMI 라면 «다른 PC 에서 연결 허용 (0.0.0.0)» 을 켜고 윈도우 방화벽에서 이 프로그램을 허용합니다
«포트가 이미 사용 중»다른 프로그램(또는 다른 PortDock 창)이 그 포트를 씁니다
요청은 들어오는데(RX) 응답이 없음EV 줄에 «IGNORED» 가 있으면 3E/4E 또는 이진/ASCII 가 서로 다릅니다. 장애 주입 «응답 안 함» 이 켜져 있지 않은지도 봅니다
TCP 와 UDP 를 섞음자기 프로그램이 UDP 로 보내면 시뮬레이터 연결 방식도 UDP 여야 합니다
종료 코드 C057머리의 요청 데이터 길이가 실제와 다릅니다. 길이는 감시 타이머부터 끝까지의 바이트 수(ASCII 는 글자 수)입니다
종료 코드 C059시뮬레이터에 없는 명령·서브명령입니다(구현: 0401·1401·0403·1402·0619, 0.6.0 부터 0406·1406 블록·0801·0802 모니터·1001~1006 원격 조작·0101 형명 읽기도)
종료 코드 C056디바이스 크기(점 수)를 넘는 번호입니다. 시뮬레이터 «크기(점)» 를 늘립니다
종료 코드 C05F«자기 국 요청만 받기» 를 켰는데 국 정보가 00·FF·03FF·00 이 아닙니다
32비트·실수 값이 이상함번호가 작은 워드가 아래 자리입니다(D200 아래, D201 위). 시뮬레이터 «칸 설정» 의 순서 기본값은 CDAB
X·Y 값이 엉뚱한 칸에 나옴X·Y·B·W·ZR 는 16진 번호입니다(X10 은 X0 부터 17번째) — 디바이스 번호 표기 글

오류 처리도 시험하기

시뮬레이터로 알 수 없는 것

PortDock PLC Simulator 는 공개 매뉴얼의 메시지 형식으로만 만들었고 실기와 견주지 않았습니다. 래더 프로그램은 돌리지 않으며, 오류 코드·응답 시간·연결 수 제한·기종별 디바이스 범위는 실제와 다를 수 있습니다. 통신 부분을 미리 맞춰 두는 도구로 쓰고, 마지막 시험은 실제 PLC 로 합니다. 공장망에서 실제 PLC 와 같은 IP·포트로 띄우지 마세요 — 실제 PLC 대신 답하게 됩니다.

이 글은 미쓰비시 전기의 공개 매뉴얼(SLMP·MC 프로토콜)을 기준으로 썼으며, 제휴 관계가 아닙니다.

근거

작성 2026-10-29