登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:求助S7200作从站的modbus通讯的2个问题

点击:1138 回复:7

1.PLC使用串口线通过485转232转换器直接与电脑相连时,modscan和mopc软件均可以读取从站上的数据,
但是我改用C2000  N2A1串口转网口转换器时(虚拟串口3),modscan可以正常通讯但是mopc无法读取,请问这是
什么原因?是否因为mopc不支持虚拟串口??
2.modbus地址为4XXXX时,假如从站的保持寄存器VB0到VB7依次输入10、11。。。17,那么正常情况下读取4..1、4..2时会读到什么数据??
14-11-14 08:28

引用 191897090 在 2014/11/14 8:28:20 发言【内容省略】

1、应该跟Mopc有关系
2、VB0、VB1组成VW0,VB2、VB3组成VW2,。。。。。。
如果从站指令库中的HoldStart为&VB0的话
且如果你说的数据10 11等是10进制的话
那么依次读过来的数据
400001:16#0A0B
400002:16#0C0D
。。。。。。
14-11-14 09:35
先感谢;
也就是说如果我想实现主机某个软件通过modbus读取PLC采集的数据,那么PLC采集的模拟量最后要转化保存为VW0/2/4....??
14-11-14 09:54

引用 191897090 在 2014/11/14 9:54:40 发言【内容省略】

MODBUS中4开始的寄存器都是16位的!
西门子里诸如VW0 VW2 VW4也是一个字16位的!
这样才能一一对应!
14-11-14 10:11
不好意思再打搅一下,因为之前在200程序的数据库里赋值的都是VB,但是没办法赋值给MAXHOLD范围内的VW,那么如果PLC采集到数据是否只能保存进VBXXX中??
14-11-15 09:49

引用 191897090 在 2014/11/15 9:49:51 发言【内容省略】

VW0本身就是由VB0和VB1组成的啊!
14-11-15 13:36
不好意思,因为我刚接触这个东西,表达的不是很清楚。。我在VB0/1中输入十进制的10、11,通过MOPC软件读取VW0得到的是2XXX即为16进制的0A0B;如果我直接在PLC从站程序中数据块里定义VW的值则显示报错,除非定义的VW不在设置保持寄存器的范围;
我看到的程序里采集的数据存储在VD中,那么应该在程序中怎么转化才可以让MOPC软件读出正确的值呢?因为我直接赋值VW失败了,是否表示最后数据只能以VB的形式存储呢?
14-11-15 15:59

引用 191897090 在 2014/11/15 15:59:52 发言【内容省略】

VB0 VB1分别是两个字节
VW0是一个字,由VB0作为高8位、VB1作为低8位
14-11-15 20:42

工控新闻

更多新闻资讯