Modbus/TCP协议相对于其他通讯协议来说是相对比较简单的应用层协议,因此对于用户来说开发应用程序是相对比较容易掌握的。
在本次交流过程中,我们着重讨论了如何基于S7-300/400 CPU集成PN口由用户自己开发Modbus/TCP应用程序和MModbus/TCP软件包的使用,主要涉及到如何使用软件包提供的例子程序在实际项目中利用的一些注意事项,同时大家一起分享了宝贵的现场应用经验
通过本次讨论,网友交流非常积极,可以看到大家交流了彼此使用的经验,并澄清了一些技术要点,如软件包授权,地址映射等,为以后实际项目中提供宝贵的经验,没有用过的网友也得到了学习和提高。
下面是一些基于软件包使用的相关注意事项,在实际的第三方设备与CPU的集成PN口进行通讯时需要注意以下几点:
1) 由于订货号2XV9450-1MB02程序中会占用CPU 较大的装载和工作存储区,因此对于性能比较低特别是S7-300的低端CPU进行通讯时必须考虑一定的富余量。
2) 对于SIMATIC S7这边,参数DB_x的数据区必须使用不同的DB 块,使用同一个DB的不同地址区会造成地址编排混乱,另外参数Start_x与END_x 参数不能出现地址叠加情况
3) 第三方设备的数据区与SIMATIC S7的数据DB块的地址对应关系可以先按照第三方的数据区域Modbus地址的偏移关系之后计算相应的偏移量
4)建议使用项目中的样例程序,只须修改连接ID,定义通讯双方的IP地址、端口号及相应的数据存储区等,能减少编程量,只须把样例程序放到一个单独的FC块中即可,样例程序中定义了足够的数据区,连接成功及错误次数指示等
5) Modbus TCP每一包的数据最多只能发送125个寄存器或2000个比特位,超过该范围必须进行分包处理
6) S7-300/400作为Client能与多少个Server建立通讯或者作为Server时能与多少个Client通讯取决于产品所支持的TCP连接数,Modbus/TCP协议并没有对此进行约束和限制
7)如果使用SIMATIC作为Modbus服务器,那么一些CPU的可用端口号会受到限制,以下端口号可用于本地端口,如下图所示:

详细情况可参考以下FAQ连接:
http://support.automation.siemens.com/CN/view/zh/34010717在本总结帖发布前所有探讨参与者都将获得加倍发帖积分和金币,每一位精华帖作者还将获得每星5分的额外经验值奖励!
再次感谢大家!祝大家工作愉快!