大家好,我最近做个通讯的项目,用的是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不知道是什么意思~~~
请大家帮忙看一下,不胜感激啊~~~