Modbus 异常响应

무료무료 기술 자료

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

Modbus 异常响应

有效기능 코드설명(10진수)

기능 코드설명
01코일 읽기 (FC01)
02읽기입력 상태
03유지 레지스터 읽기 (FC03)
04입력 레지스터 읽기 (FC04)
05强置单코일
06단일 레지스터 설정
07읽기异常状态
08回送诊断체크섬
09编程(只用于484)
10控询
11읽기事件计数
12읽기통신事件记录
13编程(184/384/484/584等)
14探寻
15强置多코일
16预置多코일
17보고서多레지스터
18可使主机模拟编程功能
19重置통신链路
20읽기通用매개변수
21쓰기通用매개변수
22屏蔽写레지스터
23读/写多个레지스터
43读设备别识码
22-42, 44-64保留作为扩展功能
65-72保留以备用功能所用
73-119非法功能
120-127保留,留作内部作用
128-255保留,用于异常应答

异常响应

主设备(클라이언트)或从设备(服务器)中的任何一个出现异常晌应,都会导致데이터处理错误。在主设备(클라이언트)发出一个请求以后,可能出现以下事件中的一种:

  • 如果从设备(服务器)从主设备(클라이언트)수신了请求,其中没有出现通讯错误,并且正确处理了请求,那么它会返回一个正常晌应。
  • 如果从设备(服务器)因为通讯错误而没有从主设备(클라이언트)수신请求,那么它不会返回晌应。主设备程序最终会为请求处理一个超时条件。
  • 如果从设备(服务器)从主设备(클라이언트)수신了请求,但是检测到了一个通讯错误,那么它不会返回晌应。主设备程序最终会为请求处理一个超时条件。
  • 如果从设备(服务器)从主设备(클라이언트)수신了请求,其中没有出现通讯错误,但是无法处理它(比如该请求是읽기一个不存在的레지스터),那么从设备就会返回一个异常晌应,以通知主设备出现了何种错误。

异常帧

从设备向主设备보내기了一个异常帧,以보고서异常晌应。一个异常帧包括四个域:

域定义大小설명
1从设备号1 个바이트请求的目的주소1–247:唯一的目的주소
2异常功能代码1 个바이트请求功能代码 +128 (0x80)
3异常代码n 바이트参见下节
4检查2 바이트CRC16(检查传输错误)

异常代码

异常晌应帧有两个将其区别于普通晌应帧的필드:

  • 异常晌应的异常功能代码等于原请求的功能代码加上 128 (0x80)。
  • 异常代码取决于从设备所遇到的通讯错误。

下表介绍了由断路器处理的异常代码:

异常代码名称설명
01 (0x01)非法功能在请求中수신的功能代码不是从设备的一个授权操作。从设备可能处于错误状态,无法处理特定请求。
02 (0x02)非法데이터주소从设备수신的데이터주소不是从设备的一个授权주소。
03 (0x03)非法데이터值在请求데이터栏中的数值不是从设备的一个授权值。
04 (0x04)从设备故障从设备未能执行一个请求的操作,因为出现了一个无法修复的错误。
05 (0x05)确认从设备接受了请求,但是需要较长的时间来处理它。
06 (0x06)从设备繁忙从设备忙于处理另一个命令。主设备必须在从设备空闲后보내기请求。
07 (0x07)否定确认从设备无法执行主设备보내기的编程请求。
08 (0x08)存储器奇짝수 패리티错误从设备在尝试읽기扩展存储器的时候从存储器中检测到一个奇짝수 패리티错误。
10 (0x0A)게이트웨이通道不可用게이트웨이过载,或者没有正确설정。
11 (0x0B)게이트웨이目标设备未能晌应在네트워크中不存在从设备。
相关标签
실제 프로젝트에 이 자료를 활용하시겠습니까?

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

엔지니어 회원

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

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

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

답글 작성

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