请选择 进入手机版 | 继续访问电脑版

PLC部落-中国工控自动化电气专业网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 3098|回复: 2

S7-200与多功能电力表的ModBUS通信

[复制链接]
发表于 2016-2-18 15:23:15 | 显示全部楼层 |阅读模式
有个项目,需要200Plc与一个多功能电力表的通信,我看了不少资料,觉得200PLC与200PLC的modbus通信比较好理解并且测试成功了,但换成200PLC与仪表通信就迷糊了,仪表那边的地址还附属了命令,真的弄不清楚。我把多功能电力表的规约截图给大家看看,如果我要读取A、B、C三相的测量电压,是不是直接从40000开始还是怎么的,规约里又提到“使用0x03命令,寄存器从40000开始”这句话有什么用呢?请大家指点指点!谢谢!
发表于 2016-2-18 15:23:41 | 显示全部楼层
1、如果我要读取A、B、C三相的测量电压,是不是直接从40000开始还是怎么的?
根据你提供的协议,你直接按照协议上的地址读就可以了。因为仪表的寄存器地址是从40000开始的,而不是从40001开始的。
2、规约里又提到“使用0x03命令,寄存器从40000开始”这句话有什么用呢?
0x03是modbus协议的功能码,对该功能码的说明如下:
Function Code-3:读取AO资料,于modbus规定Register Address由40001开始。但是通信协议内取后面四位数,且由零起算,例如:于文件上Register Address为 44321,其通信协议内转换的Address为4320。
“使用0x03命令,寄存器从40000开始”,当你使用了0x03功能码时,读的是寄存器4XXXX,也就是说,功能码0x03是与寄存器4XXXX对应的。其他的比如功能码0x01与寄存器0XXXX对应,功能码0x02与寄存器1XXXX对应,功能码0x04与寄存器3XXXX对应。
寄存器从40000开始,这句话是针对"modbus规定Register Address由40001开始"说的。如果寄存器地址从40000开始,则上面所说的文件上的寄存器地址为44321,则通信协议内转换的地址就为44321,而不是44320了。
3、建议你花时间好好研究一下modbus协议,磨刀不误砍柴工,然后自己动手用PLC和仪表进行测试。
《modbus高级通讯教程》
http://wenku.baidu.com/link?url= ... zKm9ytDyI9AdvYHi8La
《modbus通讯协议中文版》
http://wenku.baidu.com/link?url= ... KbYpiOVWI5W_ddNSnie
发表于 2016-5-16 15:50:22 | 显示全部楼层
应该先用modbus poll软件测试下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC部落 ( 津ICP备14000764 )

GMT+8, 2019-4-21 08:17 , Processed in 0.078267 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表