西門(mén)子的數據存儲是低字高位,所以通常而言,浮點(diǎn)數是不需要高低位對換的,你這個(gè)項目居然要對換,所以我往上看了下。呃,不出意外的話(huà),西門(mén)子對應MODBUSRTU的首地址,應該是40001對應0,那么你讀取的首地址,應該是40007才對,而你讀了40006。。。我覺(jué)得你應該回頭看看這個(gè)項目了。
畢竟因為浮點(diǎn)數的計算方法,你對換以后,6 8 10這種主要數據位可以保證符號位指數位和主要數據部分沒(méi)有問(wèn)題,但是精度一定會(huì )受影響。220.123456789對應43 5C 1F 9A,380.123456789對應43 BE 0F CD,你讀取了7.8然后對換得到的是43 BE 1F 9A,這個(gè)數是380.24688720703125。差別很小,但是你的做法確實(shí)不正確。如果你讀的不是電壓電流功率這種相對恒定的變量而是讀了有功總電能的話(huà),累加越大,誤差會(huì )越大。
數據首地址+1,無(wú)需對換高低位;仡^有空還是去看下吧。
[ 此帖被phoenixyqc在2021-07-20 11:38重新編輯 ]