获取通信事件计数器与获取通信事件记录

描述

10.5.9

(0x0B)获取通信事件计数器

1. 功能说明

11功能码主要用于获取从设备通信计数器中的状态字和事件计数的值,本功能码不支持广播模式。通过在通信报文之前和之后读取通信事件计数值,可以确定从设备是否正常处理报文。

对于正常完成报文处理和传输的场合,事件计数器增加1;而对于异常响应、轮询命令或读事件计数器(即0x0B功能码)的场合,则计数器不变。通过【0x08诊断功能】中的子功能码【Restart Communication Option(0x0001)】和【Clear Counters and Diagnostic Register(0x000A)】可以复位事件寄存器。

2. 查询报文

下表中的示例表示获取通信事件计数器的查询报文内容,其中从站设备地址为5。

功能码11查询报文示例:

字段
(Hex)
ASCII模式字符型 RTU模式8位
(Hex)
帧头   “:”  
从设备地址 0x05 “0”,“5” 0x05
功能码 0x0B “0”,“B” 0x0B
差错校验   LRC(2字符) CRC(2字节)
帧尾   CR/LF  
  合计字节数 9 4

3. 响应报文

对于从设备,在正常情况下,响应报文返回2字节的状态字和2字节的事件计数。其中,如果从站设备处于忙状态,那么状态字为0xFFFF,否则状态字为0x0000。在表4-18的示例中,状态字为0x0000,表示从站设备外于空闲状态。事件计数的值为0x03E8,表示记录了1000(0x03E8)个事件。

功能码11响应报文示例

字段
(Hex)
ASCII模式字符型 RTU模式8位
(Hex)
帧头   “:”  
从设备地址 0x05 “0”,“5” 0x05
功能码 0x0B “0”,“B” 0x0B
子功能码
(高位)
0x00 “0”,“0” 0x00
子功能码
(低位)
0x00 “0”,“0” 0x00
数据
(高位)
0x03 “0”,“3” 0x03
数据
(低位)
0xE8 “E”,“8” 0xB8
差错校验   LRC(2字符) CRC(2字节)
帧尾   CR/LF  
  合计字节数 17 8

10.5.10

(0x0C)获取通信事件记录

1. 功能说明

12功能码主要用于从从设备获取状态字、事件计数、报文计数以及事件字节字段。其中,状态字和事件计数与功能码11(0x0B)获取的值一致。报文计数包含加电重启、清除计数器之后的报文数量,报文计数与通过诊断功能码08(0x08)、子功能码11(0x0B)获取的值一致。事件字节字段包含0~64字节,用来定义各种事件。

2. 查询报文

下表中的示例表示获取通信事件记录的查询报文内容,其中从站地址位5。

功能码12查询报文示例:

字段 例(Hex) ASCII模式字符型 RTU模式8位(Hex)
帧头   “:”  
从设备地址 0x05 “0”,“5” 0x05
功能码 0x0c “0”,“c” 0x0c
差错校验   LRC(2字符) CRC(2字节)
帧尾   CR/LF  
  合计字节数 9 4

3. 响应报文

对于从站设备,在正常情况下,响应报文包括一个2字节的状态字字段、一个2字节的事件计数字段、一个2字节的消息计数字段以及0~64字节的事件字段。因为事件字段是变长的,所以增加了一个1节的数据长度字段,以方便读取响应数据,如下表所示。

功能码12响应报文示例:

字段
(Hex)
ASCII模式字符型 RTU模式8位
(Hex)
帧头   “:”  
从设备地址 0x05 “0”,“5” 0x05
功能码 0x0c “0”,“c” 0x0c
字节数 0x08 “0”,“8” 0x08
状态字
(高位)
0x00 “0”,“0” 0x00
事件计数
(高位)
0x03 “0”,“3” 0x03
事件计数
(低位)
0xE8 “E”,“8” 0xE8
消息计数
(高位)
0x01 “0”,“1” 0x01
消息计数
(低位)
0xF6 “F”,“6” 0xF6
事件0 0x20 “2”,“0” 0x20
事件1 0x00 “0”,“0” 0x00
差错校验   LRC(2字符) CRC(2字节)
帧尾   CR/LF  
  合计字节数 17 8

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分