有效기능 코드설명(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) | 게이트웨이目标设备未能晌应 | 在네트워크中不存在从设备。 |
답글 작성