bkqwz
级别: 略有小成
精华主题: 0
发帖数量: 167 个
工控威望: 216 点
下载积分: 611 分
在线时间: 49(小时)
注册时间: 2009-01-02
最后登录: 2019-08-22
查看bkqwz的 主题 / 回贴
楼主  发表于: 2010-08-07 15:23
我刚用S7-200不久,想学MODBUS  RTU通讯,我想用实现两个PLC之间的通信,用主站的输入控制从站输出,用从站的输入控制主站的输出,能实现吗,该怎样编程,谢谢!
问题补充:1比如主站指令的读操作,可以把从站的输入读到主站的dataPtr指向的V存储区,然后用传送指令把这个数据传到QB0是否就能实现从站控制主站的输出了?反之,我把主站的输入传送到V存储区然后用主站的写指令把数据写进从站的QB0,是否就实现了主站的输入控制了从站的输出了,我做了个实验咋不行啊,2两个PLC用MODBUS通讯是不是主站用主站库,从站用从站库,要配对使用啊,3从站指令的HOIDSTART寄存器放的是啥数据,有何作用?4主站寻址10001-19999是离散输入,它对应的不是主站侧的输入啊,而从站寻址010001-010128是实际输入I0.0-I15.7它是从站的实际输入吗,那么主站寻址中10001对应的不是主站侧的实际输入吗?
bkqwz
级别: 略有小成
精华主题: 0
发帖数量: 167 个
工控威望: 216 点
下载积分: 611 分
在线时间: 49(小时)
注册时间: 2009-01-02
最后登录: 2019-08-22
查看bkqwz的 主题 / 回贴
1楼  发表于: 2010-08-07 17:54
谁会啊,请帮帮我!!!!!!
小菜
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看小菜的 主题 / 回贴
2楼  发表于: 2010-08-23 10:00
当然要主站的用主站库,从站的用从站库。但我建议200PLC通信走网络读写指令,就是走PPI,非常的方便。加入你非要走Modbus通信,主站的你就一边读从站的数字量输入,一边用V来输出给从站的V,然后从站就用v写Q。主站也可以读从站的V,这样从站就能控制主站了
小菜
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看小菜的 主题 / 回贴
3楼  发表于: 2010-08-23 10:01
Modbus地址总是以00001、30004之类的形式出现。S7-200内部的数据存储区与Modbus的0、1、3、4共4类地址的对应关系如下:

表1. Modbus地址对应表
Modbus地址 S7-200数据区
00001 ~ 00128  Q0.0 ~ Q15.7  
10001 ~ 10128 I0.0 ~ I15.7  
30001 ~ 30032  AIW0 ~ AIW62
40001 ~ 4xxxx  T ~ T + 2 * (xxxx -1)

其中T为S7-200中的缓冲区起始地址,即 HoldStart。

如果已知S7-200中的V存储区地址,推算Modbus地址的公式如下:

Modbus地址 = 40000 + (T/2+1) ; T为偶数