資源簡介
MODBUS RTU協議中浮點數的相互轉換
從浮點數到整形,以及從整形到浮點數
帶簡單的協議說明文檔

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
namespace?CsharpModbusFloatConverter
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????Program?p?=?new?Program();
????????????//浮點數轉ModbusRTU格式的2個32位整數
????????????float?f?=?-234.563F;
????????????int[]?r1?=?p.parseFloat2Int(f);
????????????Console.WriteLine(r1[0].ToString()?+?““?+?r1[1].ToString());
????????????//Modbus整數轉浮點數
????????????//實例:C3?6A?90?21?--?x1=50026??x2=36897?--?浮點數結果-234.56
????????????int?x1?=?50026;
????????????int?x2?=?36897;
????????????float?r2?=?p.parseInt2Float(x1?x2);
????????????Console.WriteLine(“浮點數結果:“?+?r2.ToString());
????????????Console.ReadLine();
????????}
????????//浮點數轉ModbusRTU格式的2個32位整數
????????public?int[]?parseFloat2Int(float?f)?{
????????????int[]?result?=?new?int[2];
????????????byte[]?byteBuffer?=?BitConverter.GetBytes(f);//4個byte?示例:[0]33?[1]144?[2]106?[3]195?合16進制[0]21?[1]90?[2]6A?[3]C3?
????????????string?high?=?byteBuffer[3].ToString(“X2“)?+?byteBuffer[2].ToString(“X2“);//結果示例:C36A
????????????string?low?=?byteBuffer[1].ToString(“X2“)?+?byteBuffer[0].ToString(“X2“);//結果示例:9021
????????????result[0]?=?Convert.ToInt32(high?16);
????????????result[1]?=?Convert.ToInt32(low?16);
????????????return?result;
????????}
????????//ModbusRTU格式的2個32位整數轉浮點數
????????public?float?parseInt2Float(int?x1?int?x2)?{
????????????int?f?fRest?exponent?exponentRest;
????????????float?value?weishu;
????????????f?=?x1?/?32768;
????????????fRest?=?x1?%?32768;
????????????exponent?=?fRest?/?128;
????????????exponentRest?=?fRest?%?128;
????????????weishu?=?(float)(exponentRest?*?65536?+?x2)?/?8388608;
????????????value?=?(float)Math.Pow(-1?f)?*?(float)Math.Pow(2?exponent?-?127)?*?(weishu?+?1);
????????????return?value;
????????}
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-03?07:05??CsharpModbusFloatConverter\
?????目錄???????????0??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\
?????文件?????????920??2016-12-03?06:48??CsharpModbusFloatConverter\CsharpModbusFloatConverter.sln
?????文件???????17408??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter.suo
?????目錄???????????0??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\bin\
?????目錄???????????0??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\bin\Debug\
?????文件????????6144??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\bin\Debug\CsharpModbusFloatConverter.exe
?????文件???????11776??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\bin\Debug\CsharpModbusFloatConverter.pdb
?????文件???????11600??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\bin\Debug\CsharpModbusFloatConverter.vshost.exe
?????文件?????????490??2010-03-17?22:39??CsharpModbusFloatConverter\CsharpModbusFloatConverter\bin\Debug\CsharpModbusFloatConverter.vshost.exe.manifest
?????文件????????2473??2016-12-03?06:48??CsharpModbusFloatConverter\CsharpModbusFloatConverter\CsharpModbusFloatConverter.csproj
?????目錄???????????0??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\
?????目錄???????????0??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\x86\
?????目錄???????????0??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\x86\Debug\
?????文件?????????702??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\x86\Debug\CsharpModbusFloatConverter.csproj.FileListAbsolute.txt
?????文件????????6144??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\x86\Debug\CsharpModbusFloatConverter.exe
?????文件???????11776??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\x86\Debug\CsharpModbusFloatConverter.pdb
?????文件????????5960??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????目錄???????????0??2016-12-03?06:48??CsharpModbusFloatConverter\CsharpModbusFloatConverter\obj\x86\Debug\TempPE\
?????文件????????2022??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\Program.cs
?????目錄???????????0??2016-12-03?07:04??CsharpModbusFloatConverter\CsharpModbusFloatConverter\Properties\
?????文件????????1402??2016-12-03?06:48??CsharpModbusFloatConverter\CsharpModbusFloatConverter\Properties\AssemblyInfo.cs
?????文件???????67885??2016-12-03?07:05??CsharpModbusFloatConverter\附:Modbus?IEEE?754標準浮點數舉例.pptx
- 上一篇:QT5.5.1串口實現在線熱拔插檢測
- 下一篇:vas5054usb驅動
評論
共有 條評論