欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:10分 | 解决时间:2012-08-20 19:19
产品版区:
SIMATIC S7-200
寻梦海角
我现在在做一个实验,就是两台之间200plc的自由口通讯可以,但是3台200plc通信就会乱动作,,就是从站如何知道主站发来的消息是给自己的,而不是别的从站,怎样解决?
小程序:
最佳答案
后回复数据给主站,其他站都不回复数据。05站在回复数据时,主站和所有从站都会接收数据,同样的从站在接收到数据后会将数据丢弃,因为数据不是给它的。
4 就好像一个领导和N个员工开会一样,领导:“张三,报一下这个月的生产量”,张三:“1000”,领导:“李四,报一下这个月的生产量”,李四:“1200”等等。如果领导说
:“报一下这个月的生产量”,没有报姓名,那么都会一起回答,这样就会乱了。这个姓名和地址的意义是一样的。
回答者:
Laohuai
回答时间:2012-08-19 18:26
提问者对于答案的评价:
非常感谢
自己定义消息格式,比如前2个字节定义目的PLC地址,第34字节定义为自己PLC地址,然后是数据,校验玛,结束字符,这样所有数据收到后,判定前面4个字节,就知道目前modbus总线上信息是给谁的,谁发的。
<<网络读写指令向导使用指南>>
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=6659&loginID=&srno=&sendtime=
楼主估计是采用自定义协议的通讯方式吧,其实为了简化编程操作,建议楼主采用modbus的通讯方式。首先S7-200支持modbus的类库,编程简单,直接调用相应功能块即可。其次,modbus协议对所有从站是通过从站地址来识别的,因此就避免楼主现在存在的所有问题了。
建议采用PPI通信。西门子PLC高级应用实例精解上面讲的很详细,。
发送信息的 首字符不一样就行了
直接用PLC中的现成的modbus库编写程序就可以了,也不会出现你说的问题。
西门子的手册上有这样的实例啊,你看看就知道 了
现赠您1张1847体验会员卡,可免费领取,畅学1847会员内容,是否领取?
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!