說明:
讀取Modbus slave的input register,1個register為2 bytes,
因此要得到一個float數值,需2個registers。
而Modbus資料排列為big-endian格式,需轉換為little-endian以得到正確數值。
另IEEE-754下float有效位數為7-8位,若寫入slave數值超過有效位數,會造成誤差,
而C#的float有效數值為7位。
參考資料:
https://www.h-schmidt.net/FloatConverter/IEEE754.html
http://ftp.icpdas.com.tw/pub/cd/8000cd/napdos/modbus/nmodbus/nmodbus_api_manual_v1.2_cht.pdf
https://www.mesta-automation.com/modbus-with-c-sharp-libraries-examples/
沒有留言:
張貼留言