技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 我现在有一个基于MODBUS通讯的传感器,要用200PLC作为主站读取传感器的数据

我现在有一个基于MODBUS通讯的传感器,要用200PLC作为主站读取传感器的数据

刘玉蓉 发布于2014-10-17 16:52 4 0 标签:

我现在有一个基于MODBUS通讯的传感器,要用200PLC作为主站读取传感器的数据。厂家提供的传感器数据信息如下:为32位单精度浮点数;在传感器内存中存储方式是:占2个8位寄存器,且按照后16位,前16位的顺序存储。设备地址为:1
1.差压:单位KPa;   7052-7053
2. 压力:单位KPa; 7054-7055 
3. 温度:单位:℃;7056-7057
4. 瞬时流量:单位:Nm^3/h; 7058-7059
5.总累计流量:单位:×1000Nm^3;7060-7061
现在我的问题是如何将传感器的地址与PLC中的地址对应起来,PLC中的地址好像是40000开始的。addr如何填地址,DataPtr只能是VB型,我要读上来利用VD寄存器,如何反转读上来的数据?

问题补充:
读数据书,应该是按顺序读的吧,那么先读得是后16位的,后上来的是前16位的,这样读上来我的数据是不是不对呀?如果是这样那我如何将他改过来?


图片说明: 1,程序   2,chengxu   3,chengxu  

佳答案

需注意几个问题:
1. 你提到设备地址为:1,即传感器的Modbus从站地址为1,并非数据地址为1,因此,1楼和2楼的Addr为1有误;
2. 单精度浮点数,理论上应该占用4个8位字节或2个16位寄存器地址,是你描述有误还是厂家描述有误你需要确认;
3. 传感器按照Modbus协议打包数据格式时是按照低字的高字节、低字的低字节、高字高字节、高字高字节的顺序发送的(正常情况下)。如果确认厂家告诉你的信息与上述相反,才需要对高低字进行反转;
4. 如果楼主读取的数据地址都是连续的,为什么不用一条指令一次吧所有数据读上来呢?Modbus的单个请求一次可以读取125个字,即大概62个浮点数。所以没必要分开每次读一个浮点数,这样反而浪费PLC时钟,增加传感器响应时间。
具体编程方式详见阿鸣的链接。如果楼主想了解Modbus协议的相关内容,可以看看我以前写过的一个Modbus通讯说明的帖子。
https://www.ad.siemens.com.cn/club/bbs/post_elite.aspx?b_id=3&a_id=849645

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签