登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:请教S7 200的modbus的个数的概念

点击:1554 回复:13

请教前辈们,在S7 200的modbus的读和写时,这个个数应该是怎么计,是以VB的方式计,还是VW双字的方式计,
位置又怎么说呢,比如我要写一个频率进去,频率存在VW1500中,那地址应该写呢,起始地址是&VB1500吗?还是什么地址?
多谢各位了!
附件 2222.jpg
最后修改:2018/8/18 20:16:10
18-08-18 20:15
频率存在VW1500中,就写&VB1500
最后修改:2018/8/18 20:35:28
18-08-18 20:33
Count 数据个数 通讯的数据个数(位或字的个数)
注意: Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)
何时为位?何时为字?
Addr 选择读写的数据类型
数据地址:
00001 至 0xxxx - 开关量输出 位
10001 至 1xxxx - 开关量输入 位
30001 至 3xxxx - 模拟量输入 字
40001 至 4xxxx - 保持寄存器 字
18-08-18 22:32
这个解决了我的问题,非常感谢。就是不知道什么时候用位什么时候用字
但是,双字的时候呢,它的个数是双字的个数吗,还是单字的个数?
最后修改:2018/8/19 1:48:09
18-08-19 00:49
想的有点多了。你读写的是开关量,那肯定是“位”了;读写的是模拟量,那肯定是“字”了。至于你说的双字,读写个数设为2,就是读写2个字,不就是一个双字。
最后修改:2018/8/19 10:37:35
18-08-19 10:35

引用 gk_0 在 2018/8/18 20:33:46 发言【内容省略】

目测他的程序,寄存器起始地址是48193,如果从站是变频器的话,根据判断此48193的寄存器应该是负责变频器启动停止的,如果下一个寄存器48194是给定频率的话、如果他频率值保存在VW1500里,那么数据指针应该是&VB1498,而不是&VB1500。目测他的变频器可能是台达(不含VFD-F(E)系列)、信捷(不含VH3系列)、永宏FID-E10系列、英威腾系列、罗克韦尔系列之一吧?!或者其他杂牌子的??
最后修改:2018/8/19 11:43:29
18-08-19 11:39

引用 qjj740210 在 2018/8/18 22:32:42 发言【内容省略】

保持寄存器范围可为400001~465536,对应实际地址为16进制的0000~FFFF
18-08-19 11:41
是英威腾的变频器。
为什么指针是&VB1498而不是&VB1500呢?
数据存在VB1500里,不是应该从&VB1500开始的地址吗?
18-08-19 11:56

引用 fnachille 在 2018/8/19 11:56:09 发言【内容省略】

根据你贴出的部分程序
寄存器起始地址是48193,48193这个寄存器负责变频器启动停止、48194负责给定频率!然后数据指针是&VB1500,那么VW1500里保存的势必是启动停止相关数据,而VW1502才是保存的频率值!
附件 image.jpg
18-08-19 12:22
还有,你启停、给定频率的话,一次性写入2个保持寄存器就可以了,寄存器数量也不用填写16的!
18-08-19 13:05

上一页下一页

工控新闻

更多新闻资讯