西門子PLC Modbus寫入float字節排列

分類: C# modbus 2014-04-19 17:28 900人閱讀 評論(1) 收藏 舉報
寫保存寄存器功能碼16示意:

這裏寫圖片描述
在西門子PLC中,實數,float,的保存方式遵循“高字節低地址,低字節高地址”的方式。
假設使用16功能碼向PLC的40005寫入一個float,先利用BitConverter.GetBytes(f)得到要寫的float的byte[] A 。根據PLC中的存儲方式,要想獲得正確的float,在字40005的低字節存儲的應是A[3],高位存儲的是A[2],40006的低字節存儲的A[1],高字節存儲的是A[0].而根據16傳遞數據的順序爲:40005高字節,40005低字節,40006高字節,40006低字節,所以在16功能碼中正確的排列順序爲:A[2] A[3] A[0]A[1].

發佈了19 篇原創文章 · 獲贊 9 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章