PortDock

MC 프로토콜 종료 코드(C050~C061) 확인 순서

MC 프로토콜(SLMP) 응답의 종료 코드가 0000 이 아닐 때 볼 순서. 종료 코드·오류 정보의 위치, C050~C061 코드마다 요청에서 고칠 곳.

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

MC 프로토콜(SLMP) 응답의 종료 코드가 0000 이면 완료, 아니면 오류입니다. 오류 응답에는 값 대신 «오류 정보» 가 붙습니다. 이 글은 오류가 났을 때 보는 순서와, PortDock PLC Simulator 가 쓰는 C050~C061 코드마다 요청에서 고칠 곳을 정리합니다.

1. 응답이 왔는가

응답 자체가 없으면 종료 코드 문제가 아닙니다. 연결(주소·포트·방화벽), 프레임(3E/4E)과 데이터 코드(이진/ASCII)가 받는 쪽과 같은지, 감시 타이머·클라이언트 시간 초과를 먼저 봅니다. PortDock PLC Simulator 는 형식이 다른 프레임에 답하지 않고 «IGNORED» 줄만 남깁니다.

2. 종료 코드 읽기

형식종료 코드 자리C059 의 모양
3E 이진10~11번째 바이트(작은 자리 먼저)59 C0
4E 이진14~15번째 바이트59 C0
3E ASCII19~22번째 글자C059
4E ASCII27~30번째 글자C059

이진에서는 «59 C0» 를 뒤집어 C059 로 읽습니다. 이 자리를 잘못 잡아 «C059» 를 «59C0» 으로 찾으면 매뉴얼 표에서 찾을 수 없습니다.

3. 오류 정보로 어느 요청인지 보기

종료 코드 뒤 9바이트(ASCII 18글자)는 요청의 네트워크 번호·PC 번호·I/O 번호·국번과 명령·서브명령입니다. 예: «… 0B 00 59 C0 00 FF FF 03 00 01 01 00 00» 은 명령 0101·서브명령 0000 요청이 C059 로 거절됐다는 뜻입니다. 요청을 여러 개 보내는 프로그램은 이 칸으로 어느 요청인지 맞춥니다(4E 면 일련번호도).

4. 코드마다 볼 곳

코드뜻요청에서 볼 곳
C050ASCII 변환 불가ASCII 코드에 16진이 아닌 글자가 있음, 10진 디바이스(D·M 등) 번호에 A~F
C051점 수 범위 밖(워드)일괄 읽기·쓰기 워드 점 수가 0 이거나 960 초과 — 나눠서 읽기
C052점 수 범위 밖(비트)비트 점 수가 0 이거나 이진 7168·ASCII 3584 초과
C053랜덤 점 수 범위 밖(비트)1402 비트 점 수가 0 이거나 188(서브 0003 은 94) 초과
C054랜덤 점 수 범위 밖(워드)0403 은 워드 + 더블워드 점 수 합이 0 이거나 192(0002 는 96) 초과, 1402 는 워드×12 + 더블워드×14 가 1920(0002 는 960) 초과
C056주소 범위 밖디바이스 크기를 넘는 번호. 비트 디바이스를 워드 단위로 읽으면 1워드 = 16점이라 끝 번호가 빨리 커짐. X·Y 번호를 16진으로 보냈는지
C057요청 길이 불일치머리의 요청 데이터 길이 = 감시 타이머부터 끝까지의 바이트 수(ASCII 는 글자 수)
C059명령·서브 명령 틀림명령·서브명령 값과 바이트 순서(이진 0401 은 01 04). 받는 쪽이 지원하는 명령인지
C05B디바이스 지정 틀림디바이스 코드 오타, 워드 디바이스(D 등)를 비트 단위(서브 0001)로 요청
C05C요청 데이터 틀림PortDock PLC Simulator 에서는 루프백 데이터 수가 1~960 밖(0.6.0 부터 원격 조작의 모드 값이 틀릴 때도)
C05D모니터 등록 전 실행모니터 등록(0801)을 먼저 보냈는지 — PortDock PLC Simulator 는 0.6.0 부터
C05F접근 대상 틀림국 정보(네트워크·PC·I/O·국번). PortDock PLC Simulator 는 «자기 국 요청만 받기» 를 켰을 때만
C060비트 값 틀림비트 쓰기 값이 0·1 이 아님 — 이진 비트 쓰기는 1점이 4비트(«11 00» = ON ON OFF OFF)
C061데이터 길이 불일치쓰기 값의 개수가 점 수와 맞지 않음, 명령 데이터 뒤에 남는 바이트

뜻은 MELSEC iQ-R Ethernet User's Manual (Application) SH-081257ENG 3.5 «List of Error Codes» 의 설명을 줄인 것이고, «요청에서 볼 곳» 은 PortDock PLC Simulator 가 그 코드를 내는 조건입니다. 실제 PLC·통신 모듈은 같은 잘못에 다른 코드를 낼 수 있습니다. 이 표에 없는 코드는 그 PLC·모듈 매뉴얼의 오류 코드 목록에서 찾습니다.

5. 오류 처리를 미리 시험하기

받은 응답을 웹 도구 «MC 프로토콜(SLMP) 프레임 해석기» 에 붙여 넣으면 종료 코드와 오류 정보를 칸마다 풀어 줍니다. 요청을 넣으면 PortDock PLC Simulator 가 어떤 종료 코드로 답할지도 보여 줍니다.

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

근거

작성 2026-10-29