做MODBUS RTU通讯时,如何读取设备寄存器40001中的浮点数

比如设备寄存器40001存的实数是0.11,我用200做modbus通讯的时候,MBUS_MSG中寄存器还是设40001吗?我理解是40001寄存器在PLC里面应该是整形的数据,要怎样可以转换为实数?

最佳答案

首先澄清一点:
做modbus通讯时,modbus传回的数据只有Byte数据,实数还是整数是由您的地址来决定的。
如果您调用的是浮点数的地址,浮点数占用4个字节,即2个连续的整数地址。
所以转换为实数时和您使用的地址有关。
接阿鸣的描述,补充如下:
西门子所有数据以字节为单位,顺序都是按照低字节、高字节的依次顺序排列的。
而modbus协议是按照字或位为单位(因此,字地址和位地址不会发生冲突,可以任意调用)。顺序(以浮点数的2个字举例)是按照低字的高字节、低字的低字节、高字的高字节、高字的高字节的顺序排列的,因此,所有顺序与西门子的顺序完全是反的。
注意是字中的高低字节的位置发生变化,而非阿鸣说的高低字发生变化。
如果需要转换,用移位等指令很容易可以实现。

提问者对于答案的评价:
明白了,多谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc309872.html

(3)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午2:29
下一篇 2020年11月1日 下午2:29

相关推荐

  • 局部变量符号下的绿色波浪下划线

    S7-200局部变量符号下的绿色波浪下划线是什么意思呢?该如何解决呢? 最佳答案 S7-200在定义局部变量时,变量下面总带绿色下划波浪线的原因:1、是你没有给变量定义它的数据类型…

    SIMATIC S7-200 2020年10月31日
  • s7-200不能运行

    s7-200打到Run位置不能运行,但可以用编程软件强制运行 程序是好的。 是什么原因? 最佳答案 是的,在你用MICRO/WIN V4.0软件进行调…

    SIMATIC S7-200 2017年6月2日
  • 谁有TD400文本组态程序让我学习一下,谢谢!

    谁有TD400文本组态程序让我学习一下,也可以发我邮箱里17902103@qq.com,谢谢! 最佳答案 S7-200PLC>HMI>TD400C向导 来做&…

    SIMATIC S7-200 2018年12月3日
  • PTO/PWM控制电机

    用PTO/PWM可以直接输出脉冲信号控制电机吗?如果可以,是什么类型的电机?(步进电机?还有吗?)是否还要加其它的设备?(如变频器)。   &nbsp…

    SIMATIC S7-200 2021年7月5日
  • 200伺服定位原点

    200PLC脉冲输出,不用脉冲库和定位模块,用普通的PLS指令时,原点怎样实行?请各位高工们详细指教谢谢! 最佳答案 http://support.automation.sieme…

    SIMATIC S7-200 2020年10月31日
  • TD400C 文本菜单显示问题

    在TD400C使用过程中,有时会出现最后一个文本菜单最后一个屏幕无法正常显示,总是显示正在初始化,然后屏幕就返回第一个文本菜单的第0个屏幕,没查出什么原因,不知大家有没有遇到,需要…

    SIMATIC S7-200 2021年7月5日
  • 在触摸屏上如何显示模拟量值?

    请教各位这段程序怎么编 我用的是WEINVIEW 的屏,S7-200的231模拟量输入模块.传感器的量程是50Pa到—400Pa,输入信号是4—20MA.&nb…

    SIMATIC S7-200 2021年7月5日
  • CPU226右侧模式选择开关拨到停止后,输出不复位

    CPU226右侧模式选择开关拨到运行时,程序运行、输出正常,当拨到停止时,程序停了,输出却还在,保持着,怎么回事呢?应该是输出也停止复位的 最佳答案 首先查看程序设置,系统块–输…

    2017年6月4日
  • S7-200存储卡读写

    请问S7-200存储卡读写方法,是直接通过D**读取,还是其它方法?谢谢! 最佳答案 《S7-200 可编程序控制器系统手册》下载地址:http://www.ad.sie…

    SIMATIC S7-200 2018年12月2日
  • S7-200存储区数据

    请教下:S7-200PLC中 ,L存储器最多64个字节,如果要用字的话只能从LW0-LW32了?还有个累加器AC0-AC3,可以在一个程序段里多次使用吗?谢谢 最佳答案 …

    SIMATIC S7-200 2020年11月1日