基于s7-300 400 cpu pn口的modbustcp通讯

上传人:小** 文档编号:94161639 上传时间:2019-08-03 格式:DOC 页数:7 大小:102.36KB
返回 下载 相关 举报
基于s7-300 400 cpu pn口的modbustcp通讯_第1页
第1页 / 共7页
基于s7-300 400 cpu pn口的modbustcp通讯_第2页
第2页 / 共7页
基于s7-300 400 cpu pn口的modbustcp通讯_第3页
第3页 / 共7页
基于s7-300 400 cpu pn口的modbustcp通讯_第4页
第4页 / 共7页
基于s7-300 400 cpu pn口的modbustcp通讯_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于s7-300 400 cpu pn口的modbustcp通讯》由会员分享,可在线阅读,更多相关《基于s7-300 400 cpu pn口的modbustcp通讯(7页珍藏版)》请在金锄头文库上搜索。

1、主题:应用探讨基于S7-300/400 CPU PN口的Modbus/TCP通讯 Modbus/TCP 是运行在TCP/IP上的Modbus 报文传输协议,通过此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信,Modbus/TCP 协议已经成为一通用工业网络应用层的标准,在2004 年成为国家标准,因此得到了非常广泛的应用,对于西门子而言,同样有基于Modbus/TCP的通讯解决方案,包括PLC,HMI等,开设本话题主要召集大家讨论针对S7-300/400 CPU集成PN口的Modbus/TCP通讯解决方案进行探讨,主要在以下几个方面进行交流: 1 软件包中的安装和使用 2

2、如何充分利用功能块库中的例子程序 3 CPU的集成PN口如何建立TCP连接,与CP又有何不同 4 不同的块库版本的区别5 PLC与多个设备进行通讯时如何优化程序,PLC能够与多少个设备进行通讯 6 地址映射,通讯诊断 7 如何利用Open Modbus/TCP Wizard来创建参数DB 与此相关,在下载中心中推荐一篇入门文档,作为S7-300/400 CPU集成PN口的Modbus/TCP入门文档,希望能够给大家帮助 A0401 基于S7-300,400 CPU集成PN 接口 Modbus TCP通讯快速入门(更新版本V2.4) 另外西门子I&S集团也提供了基于S7-300/400 CPU集

3、成PN口的Modbus/TCP软件包的Demo版下载,在Demo版本下通讯只能维持2小时,供大家测试之用,连接如下: http:/ 主题:回复:应用探讨基于S7-300/400 CPU PN口的Modbus/TCP通讯 S7控制器通过CPU集成PN口和第三方设备间建立MODBUS/TCP通讯需要软件包MODBUS TCP PN“2XV9 450”-1MB02(V2.4),单授权(仅对一个CPU有效),支持功能码1、2、3、4、5、6、15、16,对300和400集成口CPU都适用。 主题:回复:应用探讨基于S7-300/400 CPU PN口的Modbus/TCP通讯 我想说一下不依靠软件包的

4、实现方式:ModbusTCP,相对于TCP来说无非就是在应用层上加上了Modbus的功能码。而ModbusTCP的报文规范和Modbus很像,而且没有CRC校验,而是采用TCP/IP校验机制来验证分组交换的准确性。1.调用FB63-FB66功能块和第三方建立TCP连接。参考文档用于S7-300/400系统和标准功能的系统软件的第23章:通过工业以太网的开放式通讯2.根据报文规范编写程序。客户端的非常简单,服务端麻烦一些,对于工程上的应用,基本就是03,05,16的功能。附件中是中文版的ModbusTCP报文规范,有兴趣的可以看一下:调用系统功能块建立TCP连接需要为每个连接生成连接参数。可以参

5、考技术支持资源库条目号为25209116的文章:下载 OPEN IE WIZARD向导安装后运行。主要的设置项有:PLC作为客户端还是服务器、PN口类型(315-2PN,317还是319,还是400系列)、IP地址,端口号等。设置完毕会在当前项目文件夹下生成UDT块,这时便可以建立DB块来引用了。关于问题3:CPU的集成PN口如何建立TCP连接,与CP又有何不同 ?1.CP卡通过NETPRO组态连接,通过SEND/RECEIVE接口通讯;而PN口CPU通过调用系统功能块FB63-FB66来建立连接2.CP通过NETPRO建立的连接不需编程,连接信息保存在SDB内,这是一种静态的连接,通讯资源永

6、久占用,而且下载NETPRO配置信息需要停机,所以PLC运行时不能增加和减少连接;而PN口CPU通过OPEN IE建立的连接需要编程,可以通过程序建立和断开连接,这是一种动态连接,通讯资源可以随时释放。 4 不同的块库版本的区别与V1版本相比,V2版本的功能块库可以用于S7-400H系统通过CP443-1或S7-300/400单站系统带2个CP343/443-1的场合,创建的连接与通信链路与v1版本相同对于通讯链路的选择与链路中断自动切换功能,与V1版本相比,V2版本中功能块库包含两种模式,由功能块库中的参数” use_ all_ conn”来决定与V1版本相比,V2版本功能块库同样支持S7-

7、400H系统或S7-300/400单站系统作为服务器和客户端两种模式,值得注意的是,V2版本的功能块对于服务器和客户端模式是完全分开的,其中FB906”MB_CPSRV”和FB907” MB_REDSV”为服务器端功能块,FB908”MB_CPCLI”和FB909” MB_REDCL”为客户端功能块,功能块管脚参数也不尽相同,另外功能块库中Modbus功能码的支持上也丰富了不少,支持功能码FC1, 2, 3, 4, 5, 6, 15 and 16 1由于定货号2XV9450-1MB02的程序中会占用CPU较大的装载和工作存储区,因此对于性能比较低特别是S7-300的低端CPU通讯时必须考虑一定

8、的富余量。2、对于SIMATIC S7这边,参数 DB_X的数据区必须使用不同的DB块,使用同一个DB块的不同地址会造成地址编排混乱,另外参数Start_x与END_x参数不能出现地址叠加情况。3、第三方设备的数据区与SIMATIC S7的DB块的地址对应关系可以先按照第三方的数据区域Modbus地址的偏移关系之后计算相应的偏移量。4、建议使用项目中的样例程序,只需修改连接ID、定义通讯双方的IP地址、端口号及相应的数据存储区等,能减少编程量,只需把样例程序放到到一个单独的FC块中即可,样例程序定义了足够的数据区,连接成功及错误次数指示等。5、Modbus TCP每一包的数据最多只能发送125

9、个寄存器或2000个比特位,超过范围必须分包处理。6、S7-300/400作为Client、 能与多少个Server建立通讯或者作为Server时能与多少个Client通讯取决于产品所支持的TCP连接资源数,Modbus/TCP本身对此并没有进行约束和限制。7、如果使用SIMATIC作为Modbus 服务器,那么一些CPU的可用端口号会受到限制。 为什么一包数据最多只能发送125个寄存器而不是126个呢?这是由Modbus TCP的协议规范所约束的,另外涉及到具体产品的话这个数字还会进一步缩小。按照ModbusTCP的报文规范,有一个字节代表返回字节的数量,一个字节最大255,又因为返回寄存器

10、字节数都是偶数,所以最大254,而报文的第六个字节是后续所有字节的数量,最大也为255,除去设备地址、功能码、返回字节数3个字节,所以理论请求数量应该为(255-3)/2=126个,不知道报文规范为何限制为125个查到一点资料Modbus读寄存器:请求 功能码 1字节 0x03起始地址 2字节 0x0000到0xFFFF寄存器数 2字节 1到125(0x7D)应答 功能码 1字节 0x03字节数 1字节 2 x N寄存器的值 N x 2字节(N为寄存器的数量)出错 出错码 1字节 0x83例外码 1字节 01或02或03或04软件包 支持功能玛CP: 2X8450-1MB00 3、4、16集成PN: 2X8450-1MB02 1、2、3、4、5、6、16 1、由于MODBUS的内部地址编排时基于数据链路层和应用层有一定的映射关系,因此MODBUS的地址与SIMATIC中的DB块的地址按照一定的地址映射关系来相对应。2、DB块中有一定的地址偏移量,需要根据通信伙伴设备的说明来定义,因为不同的设备其偏移量是不同的,例如如何用PN口CPU实现ModbusTCP客户端的功能,请参考这个帖子,冬日大侠做过实验的,很详细也很简单:http:/www.ad

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号