现在主流的选择配置都是“无校验”,没有校验的话,那么这个数据万一有错怎么知道?
为什么不选择奇或偶校验,而更多的选择无校验,这个选择无校验有啥好处?无校验的优点在哪里?缺点又在哪里?
最佳答案
modbus-RTU具有两种错误检验方式:奇偶校验和帧校验。
奇偶校验 (偶或奇) 是针对每个字符采用校验,奇偶检验只能检测到一个字符帧在传输过程中奇数个的增加或丢失的位,本身作用有限。
帧检验是针对整个报文内容执行的(包括地址域、功能码和数据),它是基于循环冗余校验算法的错误检验域(CRC)。发送端与接收端各自根据规则独立计算整个帧的CRC。发送端在帧的尾端发送计算的CRC;接收端根据接收到的帧内容计算出CRC值并与接收到的CRC值作比较,相符则接收整个数据帧的内容,做相应处理,不符则丢弃数据,并做相应处理(从站发送异常码,主站重新请求数据等)。
由上可知,在modbus-RTU中帧校验已可靠地完成了所有数据的校验,因此没必要再做奇偶校验,来增加处理器的负担。
换言之,即使加入了奇偶校验,并且发现错误,也不会及时得到相应的响应,还是要等到整帧数据交换完成,进行了帧校验后,才会根据帧校验,产生相应的响应。(这是modbus协议的规则决定的)
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc194423.html