Modbus/TCP 是运行在TCP/IP上的Modbus 报文传输协议。通过此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信,Modbus/TCP 协议已经成为一通用工业网络应用层的标准,在2004 年成为国家标准,因此得到了非常广泛的应用。对于西门子而言,同样有基于Modbus/TCP的通信解决方案,包括PLC、HMI等。
开设本话题主要召集大家讨论针对S7-300/400以太网通讯模块CP的Modbus/TCP通信解决方案进行探讨。主要在以下几个方面进行交流:
1 软件包中的安装和使用
2 如何充分利用功能块库中的例子程序
3 功能块库参数设置
4 不同的块库版本的区别
5 通信长度与通信资源
6 地址映射,通信诊断
与此相关,在下载中心中推荐一篇入门文档
A0394,作为S7-300/400以太网通信模块CP的Modbus/TCP入门文档,希望能够给大家帮助。
Modbus/TCP协议相对于其他通信协议来说是相对比较简单的应用层协议,因此对于用户来说开发应用程序是相对比较容易掌握的。
在本次交流过程中,我们着重讨论了基于用户自己开发和使用软件包的使用,主要涉及到如何使用软件包提供的例子程序在实际项目中利用的一些注意事项,同时大家一起分享了宝贵的现场应用经验。
通过本次讨论,可以看到大家交流了彼此使用的经验,并澄清了一些技术要点,如软件包授权,地址映射等,为以后实际项目中提供宝贵的经验。
下面是根据此次讨论中进行的整理总结:
1) 由于订货号2XV9450-1MB00程序中会占用CPU 较大的装载和工作存储区,因此对于性能比较低特别是S7-300的低端CPU进行通信时必须考虑一定的富余量。
2) 对于SIMATIC S7这边,参数DB_x的数据区必须使用不同的DB 块,使用同一个DB的不同地址区会造成地址编排混乱,另外参数Start_x与END_x 参数不能出现地址叠加情况。
3)建议使用项目中的样例程序,只须修改连接ID,CP的硬件物理地 址及相应的数据存储区等,能减少编程量,只须把样例程序放到一个单独的FC块中即可,样例程序中定义了足够的数据区,连接成功及错误次数、指示等。
4) Modbus TCP每一包的数据最多只能发送125个寄存器或2000个比特位,超过该范围必须进行分包处理。
5) S7-300/400作为Client能与多少个Server建立通信或者作为Server时能与多少个Client通信取决于产品所支持的TCP连接数,Modbus/TCP协议并没有对此进行约束和限制。
以下为本次探讨的发帖整理,查看原始交流内容请点击
此处。