怎么实现西门子S7-200的modbus通讯?
lmx989868
lmx989868 Lv.2
2005年08月09日 15:31:34
只看楼主

我是PLC的初学者,有那位好心人可以给我一个MODBUS例子或者帮我调试一个程序发给我最好了,非常感谢!我的邮箱是lmx989868@163.com

我是PLC的初学者,有那位好心人可以给我一个MODBUS例子或者帮我调试一个程序发给我最好了,非常感谢!我的邮箱是lmx989868@163.com
免费打赏
ihf
2005年08月10日 10:32:07
2楼
向经销商要个Modbus指令库

从西门子网站上下载的示例程序,S7-200做Modbus RTU ,PLC为从站,见以下压缩文件.
回复
lmx989868
2005年08月11日 12:40:49
3楼
非常感谢斑竹给我的回复!我已经那两个指令库了,就是里面的HOLDSTART不知道怎么去设置,还有如果通讯成功的话,MODBUS-INIT的DONE会把你指定的中间继电器置1,那这个继电器要不要连接到其他地方作为什么标志用呢,第二个指令MODBUS-SLAVE也有两个通讯成功标志寄存器要不要连接到其他地方做为什么标志用呢?或者这些标志和其他地方有没有什么关系呢?如果不做处理会有问题吗?
回复
ihf
2005年08月12日 15:18:30
4楼
我的Modbus指令库不知为何装不上,帮你找了点资料,希望对你有帮助.

编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。关于参数的详细说明,可在子程序的局部变量表中找到;
图中参数意义如下:
a.模式选择:启动/停止MODBUS,1=启动;0=停止
b.从站地址:MODBUS从站地址,取值1~247
c.波特率:可选1200,2400,4800,9600,19200,38400,57600,115200
d.奇偶校验:0=无校验;1=奇校验;2=偶校验
e.延时:附加字符间延时,缺省值为0
f.最大I/Q位:参与通讯的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128
g.最大AI字数:参与通讯的最大AI通道数,可为16或32
h.最大保持寄存器区:参与通讯的V存储区字(VW)
i.保持寄存器区起始地址:以&VBx指定(间接寻址方式)
j.初始化完成标志:成功初始化后置1
k.初始化错误代码
l.MODBUS执行:通讯中时置1
m.错误代码:0=无错误
回复
lmx989868
2005年08月15日 14:15:42
5楼
非常感谢斑竹的支持与帮助,您跟我讲的那些我这边有资料了,是在西门子网站上找到的.
我现在编程是做好了,但我原来是用PC/PPI电缆通讯,现在改成用MODBUS RTU通讯,电缆好像
不能用原来的那条了吧,我现在苦于不知道怎么办,好像可以自己做,但我不懂,请问大侠可懂,教小第一下,谢谢.还有怎么去测试MODBUS,请教了,谢谢!
回复
ihf
2005年08月15日 17:35:21
6楼
要看你的S7200PLC与什么设备进行modbus通讯,PLC本身是RS485通讯口,如果你所要通讯的设备是RS232,那么就可以用PC/PPI电缆,如果设备的RS485或RS422那么就要重做线了,如果设备的通讯口是RS485那么就简单了,只要知道PLC和该设备的通讯引脚定义就可以自制(S7200的你知道吧?),如果是RS422的话就要做(或买)一个转换器.
回复
ihf
2005年08月16日 18:49:51
7楼
MODBUS测试软件

E文的,怎么用自己摸索吧,成了告诉我一声.
回复
ihf
2005年08月18日 09:21:50
8楼
我曾经用施耐德的PLC做过Modbus实验,施耐德的PLC提供Modbus master 、Modbus slave ,不象S7-200只支持Modbus slave ,可以用施耐德的PLC做主机,S7-200做从机来试试。
另外我找到了一个中文的Modbus测试软件,可以通过PC与PLC进行Modbus测试,由于我的PLC是CPU212,不支持Modbus ,所以我没办法试,具体测试方法可以和我联系,愿意与你共同探讨。
回复
lmx989868
2005年09月15日 21:45:51
9楼
感谢以上所有斑竹的帮助,我已经调通了。如有需要的可以发邮件,我们一起探讨。
回复
dannyzuo
2005年09月23日 21:08:17
10楼
版主的热心我很感动,支持版主。
回复
syd1414
2005年11月26日 17:13:21
11楼
您好!我也想询问关于用S7-200的modbus通讯问题,现在我主要想知道程序编好之后怎么测试是否可行,需要下载什么软件
回复

相关推荐

APP内打开