public static float GetFloat(ushort P1, ushort P2)
            int intSign, intSignRest, intExponent, intExponentRest;
            float faResult, faDigit;
            intSign = P1 / 32768;
            intSignRest = P1 % 32768;
            intExponent = intSignRest / 128;
            intExponentRest = intSignRest % 128;
            faDigit = (float)(intExponentRest * 65536 + P2) / 8388608;
            faResult = (float)Math.Pow(-1, intSign) * (float)Math.Pow(2, intExponent - 127) * (faDigit + 1);
            return faResult;

转载于:https://www.cnblogs.com/derekhan/p/10041679.html

输入参数P1,P2代表PLC中浮点数储存的两个寄存器获取的数据public static float GetFloat(ushort P1, ushort P2) { int intSign, intSignRest, intExponent, intExponentRest; float faResult, faDig...
VB6自行编写的源代码,实现ModbusRTU协议四个字节整形 转换成浮点数据,也可以浮点数据转换为4字节整形,bas形式,用户可以直接在自己程序调用。 Public Function MODBUSLongtoFloat32(input1 As String) As Double ‘输入格式16进制:33 46 5E 3F字符串格式 '如果是10进制数 可以调用 hex(dex1) & " " & hex(dex2) & " " & hex(dex3) & " " & hex(dex4) Public Function MODBUSFloattoLong32(inputS As Single) As String 'IEEE754标准 浮点格式转换 我看网上介绍需要把整数部分和小数部分分开转成二进制,太复杂了,其实有非常简单的方法,看程序就知道了。相互学习。
资源名:c#与485MODBUS接口的PLC进行串口通信程序源码 资源类型:程序源代码 源码说明: c#与485MODBUS串口通信源代码,通过串口读取设备数据,c#的源代码,比如读取PLC数据(AD采集的或设置的),可以控制PLC(支持MODBUS)动作,485通信可以达到500M(稳定通信),也可和单片机通信,我资源里有关于8051MODBUS程序。 适合人群:新手及有一定经验的开发人员
首先膜拜大佬,感谢大佬造好的轮子,这里是原链接。 最近在搞一个modbusTCP的通讯,我对modbus的了解基本停留在最最最简单的应用,突然一个读取浮点数的问题我就蒙圈了!!!,再此感谢大佬们!!!代码如下: 寄存器一般读到的是unsigned short,两个字节,float占两个寄存器,value1、value2对应两个寄存器的值。 float getFloat(unsigned s...
一般modbus的数据是四个16进制数,我们可以通过一些工具来直接转换成十进制读取,但是如果自己写程序应该怎么做呢,我是这么做的,在此记录帮助大家少走弯路。 我们用C#举例,将下面这串modbus解析一下: byte[] b = {0x34, 0x03, 0x04, 0x42, 0xB6, 0xBC, 0x45, 0xDB, 0x9D}; //这里的顺序要注意:字节在内存的排列顺序,intel的cpu按little endian顺序(低字节在前),motorola的cpu按big endian顺序(
前面连续写了关于SOCKET编程的东西,似乎有点高大上,为了学习而学习。因此这里我们来整点实际应用的东西。C#如何读取Modbus数据,Modbus很多人可能一点都不知道,也正常,隔行如隔山嘛。Modbus在自动化行业就不一样,属于路人皆知的东西,很多设备、程序都与Modbus息息相关。 Modbus这个东西,本人也是个二把刀,只有半瓶水,所以在这里晃荡,写点Mo...
private ModbusFactory modbusFactory; private IModbusMaster master; private TcpClient tcpClient; public string IPAdress { get; set; } public int Port { get; set; } public bo
是的,可以使用 Python 求浮点数的熵。在 Python ,可以使用第三方库 scipy 来计算熵。scipy 是一个用于科学和工程计算的 Python 库,包含了很多有用的算法和工具。 下面是一个简单的例子,展示了如何使用 scipy 库计算浮点数列表的熵: ```python from scipy.stats import entropy # 浮点数列表 floats = [0.1, 0.2, 0.3, 0.4] # 计算熵 e = entropy(floats) print(e) 运行上面的代码,会得到结果为 1.0986122886681098,即为给定浮点数列表的熵值。 需要注意的是,在这里假设你使用的序列是概率分布,也就是每个元素的值都在 0 和 1 之间且它们的总和为 1