资源简介
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驱动
相关资源
- TwinCAT3 Modbus TCP通讯.pdf
- ModScan+ModSim最新版
- modbus 从站源程序
- fpga实现浮点数加减乘除四则运算
- SPM93MODBUS串行通信协议V1.0
- SMPP短信客户端,可直接用于你的应用
- CSharp英文背单词源代码
- qt实现modbus
- 基于TCP协议的客户端demo,内涵服务端
- SMART LINE系列触摸屏通过MODBUS协议直接
- 单位点餐系统
- 实验2,TCP+UDP通信实验
- 基于UDP,P2P的网络通信
- 北邮 专业实验 数字信号发生器
- 北邮 专业实验 设计电路并输出到模拟
- 贪吃蛇小游戏窗体程序
- 按下快捷键播放指定音乐,托盘时也
- fpu(浮点加减乘除运算单元)的veri
- MSchart多Y轴实现
- 基于.NET的酒店管理系统
- LINUX 串口与SPI操作
- 串口通讯+modbus通讯协议
- 设置RichTextBox的文本对齐方式
- ajax异步刷新,一般处理程序返回dat
- ArcEngine二次开发中AOI书签开发实现的
- 表白小程序,有源代码,不会写代码
- 使用treeview listview实现我的资源管理器
- modbus仿真调试
- GDI+绘图功能软件
- MODBUS-CSharp tcp测试正常
评论
共有 条评论