技术论坛

 请教一下,S7200与智能仪表的Modbus通讯

返回主题列表
作者 主题
520yhlily
新手

经验值:37
发帖数:30
精华帖:1
楼主    2012-04-05 13:44:28
主题:请教一下,S7200与智能仪表的Modbus通讯
大家好,我最近做个通讯的项目,用的是S7200 CPU226和5个智能仪表的通讯,走的modbus协议,这里面遇到几个奇怪的问题,拿出来和大家说说,希望大家多给点建议!
先把编程思路简单说一下:
我用的MBUS指令库直接调用的程序,设置好参数即可;
MBUS_CTRL:波特率9600,无校验,超时时间1000ms,上电初始化后,Done=1,无错误
MBUS_MSG:Slave=1(和仪表地址一样),RW=0,Addr=30001,Count=2,DataPtr=&VB100,上电执行,Done=1,无错误;
我的仪表上需要读取到的工程量显示1000,我的程序读上来的数据VW100=17865,VW101=19875,不管我怎么转换都得不到1000,我尝试改变Addr(只要不是30001)这个地址,程序初始化后MBUS_MSG就会报错102,改变Count值也报错102,我郁闷了~~
最后没有办法,我改回原来的30001,接着我改变仪表上显示的工程量,程序里读出来的数据也变,搞得我不知道是Addr不对,还是程序哪里有问题;
这个仪表的地址和PLC时怎么对应的呢?那个30001和40001不知道是什么意思~~~

请大家帮忙看一下,不胜感激啊~~~
520yhlily
新手

经验值:37
发帖数:30
精华帖:1
22楼    2012-04-16 09:59:57
精华帖  主题:回复:请教一下,S7200与智能仪表的Modbus通讯
大家好啊,目前问题得到解决,谢谢各位大力的帮助!!!

仪表的数据格式为国际标准的32位浮点数,进过modbus协议读取后进入PLC,在PLC里被转化成16进制数,其实在监控里面,把对应的指针指向的数据区格式调成浮点数格式,一切就明了了,地址是30001,计数2,这些参数都是对的,关键还是没有和做仪表的软件工程师仔细的沟通,这里也尝试了版主的方法,完全一样~

其实没有想象的那么难,因为第一次做这个通讯,好多都不明白,造成好多不应该的错误,再次感谢大家的帮忙~~~~~~
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。