哪位大侠能够详细解释一下MODBUS协议中CRC校验码是如何形成的,以及它被发送到下位机时,下位机有没有改变它,还有主机收下位机发送回来的CRC校验码,又是如何确定数据是正确的?

解决方案 »

  1.   

    CRC有8位和16位之说,是根据发送的数据生成的,有具体的算法,你可以在网上查一下
      

  2.   

    强烈建议找一些MODBUS的文档。
    简单来说,CRC检验码是通过对之前的数据进行计算而得出的。不管是发送端还是接收端都是需要进行CRC计算的。
    CRC的作用就是为了,防止在传输数据的时候,有数据丢失。
    上位机这块的话,有现成的模版可以使用。可以去codeproject查找,好像是C#写的
    下位机的话,就看你是用PLC 还是什么了,针对于PLC的话,一般性PLC公司都会提供这样的类库,只需简单的调用即可。