使用BacnetStack 1.0.0源码生成Bacnet客户端用于对Bacnet设备进行数据采集
发现客户端长时间运行后,会出现采集超时的情况,通过日志发现报错大量的HeaderCRC字段校验失败?
MSTP: Rx Header: BadCRC [00]
MSTP: Rx Header: BadCRC [FF]
MSTP: Rx Header: BadCRC [FF]
MSTP: Rx Header: BadCRC [FF]
使用BacnetStack 1.0.0源码生成Bacnet客户端用于对Bacnet设备进行数据采集
发现客户端长时间运行后,会出现采集超时的情况,通过日志发现报错大量的HeaderCRC字段校验失败?
MSTP: Rx Header: BadCRC [00]
MSTP: Rx Header: BadCRC [FF]
MSTP: Rx Header: BadCRC [FF]
MSTP: Rx Header: BadCRC [FF]
参考GPT和自己的思路:您的问题涉及到Bacnet MSTP帧头CRC校验失败,这是因为在Bacnet数据采集过程中,客户端发现了许多帧头CRC校验错误的信息。MSTP协议中,帧头CRC是对于整个Bacnet帧的一种校验方式,它的作用是检查信息发送端和接收端之间传输过程中是否发生了数据错误,以此保证数据的可靠性。如果帧头CRC校验失败,说明数据在传输过程中出现了错误,导致接收端无法正常解析Bacnet帧数据。
对于您的问题,可能原因如下:
校验算法:在MSTP协议中,帧头CRC校验算法是非常重要的,如果算法有错误或者缺陷,就会导致校验失败的情况。针对这一问题,您需要重新检查BacnetStack 1.0.0源码中的帧头CRC校验算法,确保其正确性。
软件问题:如果客户端长时间运行后,出现了采集超时的情况,那么可能是由软件问题引起的。您需要对BacnetStack 1.0.0源码进行审查,查找可能存在的软件bug,并进行修复。
硬件问题:除了软件问题,您还需要检查硬件设备,例如串口通讯接口是否正常工作,是否存在通讯干扰等。
针对以上问题,建议您更换一个稳定的BacnetStack版本,或者检查BacnetStack 1.0.0源码中的帧头CRC校验算法,并进行修改。同时,您还需要检查硬件设备,加强通讯电磁干扰的防护。希望我的回答能够帮助到您。