技术论坛

产品技术介绍——基于S7-1200的Modbus/TCP通信

作者 主题
奇侠

经验值: 6089
发帖数: 3970
精华帖: 20
主题:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 楼主 2011-03-28 19:32:28
Modbus/TCP 则是运行在TCP/IP上的Modbus 报文传输协议。通过此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信。Modbus/TCP 协议已经成为一通用工业网络应用层的标准,在2004 年成为国家标准,因此得到了非常广泛的应用。对于西门子而言,同样有基于Modbus/TCP的通信解决方案,包括PLC、HMI等。
开设本话题主要召集大家讨论针对S7-1200的Modbus/TCP通信解决方案进行探讨,主要在以下几个方面进行交流:
1 如何巧妙利用针对PAC3200的Modbus TCP功能块库与第三方设备进行通信
2 功能块的参数设置及限制性
3 不同的块库版本与CPU固件之间的兼容性
4 通信长度与通信资源
与此相关,在下载中心中推荐一篇入门文档A0500,作为S7-1200的Modbus/TCP入门文档,希望能够给大家帮助。
另外对于S7-1200 Modbus/TCP的功能块库软件包下载连接地址如下:http://support.automation.siemens.com/CN/view/en/40614428
希望大家能够各抒己见,一起探讨,从而能够为以后的工程项目中起到借鉴作用。
活动奖励
此次集中探讨将持续至4月22日,其中所有精华帖作者将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖积分。更多积分带给您更多奖品兑换的自由。
对于有突出发言贡献的网友,还可以在当前的可兑换奖品中免费挑选任一款奖品。
交流结束后也将专门整理重要内容,供广大网友分享参考。
预祝大家交流愉快,收获丰富!

 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=50&a_id=823332&s_id=0&num=0

侠士

经验值: 1495
发帖数: 155
精华帖: 39
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 1楼 2011-03-30 08:32:08
S7-1200的Modbus/TCP的功能块库只能作为Client使用,什么时候官方能够发布Server版的块库啊?有一个项目客户有这方面的需求,自己编又很麻烦
来自西门子技术支持
以下网友喜欢您的帖子:

  
游民

经验值: 141
发帖数: 14
精华帖: 0
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 3楼 2011-04-05 16:05:23
我用Modbus/TCP 与机器人通讯就是走的这个协议,还是需要写不少程序的。通讯的速度好像比较慢。
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1495
发帖数: 155
精华帖: 39
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信
精华帖精华帖星级2级


只看楼主 只看精华 7楼 2011-04-07 10:37:11
其实对于S7-1200来说Modbus/TCP的功能块库还是很使用的,一是因为功能块库可以免费从网站下载,二是无需额外硬件,通过CPU的集成PN口即可,比较遗憾的是目前Server版本的功能块库还没有发布,有些项目有这方面的需求
来自西门子技术支持
以下网友喜欢您的帖子:

  
侠客

经验值: 913
发帖数: 514
精华帖: 1
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 9楼 2011-04-07 17:58:44
今年是不是要大力推广1200啊?我还没机会用过,我朋友现在装上这个软件,老出问题,现在只好把它装在虚拟机里面,隔离,呵呵,不过看起来那个界面,感觉有点亲切感哈哈哈,用习惯300的了,看起来顺眼。
200的plc现在不支持这个modbus_tcpip吗?
嘿嘿……
以下网友喜欢您的帖子:

  
侠士

经验值: 1495
发帖数: 155
精华帖: 39
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信
精华帖精华帖星级2级


只看楼主 只看精华 11楼 2011-04-08 15:44:21
quote:以下是引用嘿嘿在2011-04-07 17:58:44的发言:
今年是不是要大力推广1200啊?我还没机会用过,我朋友现在装上这个软件,老出问题,现在只好把它装在虚拟机里面,隔离,呵呵,不过看起来那个界面,感觉有点亲切感哈哈哈,用习惯300的了,看起来顺眼。
200的plc现在不支持这个modbus_tcpip吗?

S7-200目前还不支持Modbus/TCP协议,因为其未嵌套TCP协议栈
来自西门子技术支持
以下网友喜欢您的帖子:

  
侠士

经验值: 1495
发帖数: 155
精华帖: 39
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 12楼 2011-04-08 16:13:24
quote:以下是引用GEMINIF在2011-04-05 16:05:23的发言:
我用Modbus/TCP 与机器人通讯就是走的这个协议,还是需要写不少程序的。通讯的速度好像比较慢。

如果熟悉通讯协议,自己编写程序也是可以的,建议从网上下载客户端程序,可以节省时间,提高效率,另外功能块还是比较完善的
来自西门子技术支持
以下网友喜欢您的帖子:

  
游民

经验值: 120
发帖数: 26
精华帖: 1
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信
精华帖精华帖星级2级


只看楼主 只看精华 13楼 2011-04-11 17:00:05
用Modbus通讯还算是比较方便。直接带用库指令,程序可以少写不少,硬件成本也低。
学无止境
以下网友喜欢您的帖子:

  
游民

经验值: 71
发帖数: 21
精华帖: 1
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 14楼 2011-04-13 10:54:41
先学习一下,看看能否用上。不知道和DP比起来哪个通信速度更快一些?
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1495
发帖数: 155
精华帖: 39
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 15楼 2011-04-15 16:04:15
quote:以下是引用CAOJIAN在2011-04-13 10:54:41的发言:
先学习一下,看看能否用上。不知道和DP比起来哪个通信速度更快一些?

对于Modbus/TCP来说,由于其基于以太网的TCP/IP,因此通讯速度肯定是优于DP的,另外从以太网的OSI的7层来说,其直接是在TCP/IP上进行应用层的封装,因此解压包的速度也是相对比较快的
来自西门子技术支持
以下网友喜欢您的帖子:

  
侠士

经验值: 1495
发帖数: 155
精华帖: 39
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 17楼 2011-04-19 15:55:46
quote:以下是引用梦会飞在2011-04-19 13:55:39的发言:
S71200 不恨熟悉,有机会学习下,与300 200什么区别啊?

S7-1200是西门子推出面向中低端的产品,介于S7-200与S7-300/400之间,简单来说可以归纳为S7-1200采用了与S7-200类似的外形结构,但是其内核是接近于S7-300,支持包括Profinet,Profibus等网络扩展,需要使用TIA Portal软件进行组态配置
来自西门子技术支持
以下网友喜欢您的帖子:

  
侠客

经验值: 864
发帖数: 241
精华帖: 1
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信
精华帖精华帖星级4级


只看楼主 只看精华 18楼 2011-04-19 16:35:02
这个文档中的说明不是很详细,有一些没有说清楚如TX_BUFFER的格式及数量和一些CON_ERROR代码。

掠影匆匆 的一个帖子看看还是有所启发的。
http://www.ad.siemens.com.cn/club/bbs/post_elite.asp?b_id=50&a_id=775728
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 6089
发帖数: 3970
精华帖: 20
回复:产品技术介绍——基于S7-1200的Modbus/TCP通信


只看楼主 只看精华 楼主 19楼 2011-04-22 14:51:11
Modbus/TCP协议相对于其他通讯协议来说是相对比较简单的应用层协议,因此对于用户来说开发应用程序是相对比较容易掌握的。
在本次交流过程中,我们着重讨论了基于网站提供的基于S7-1200的Modbus/TCP的功能块库的使用,主要涉及到了功能块库中使用的一些注意事项,同时大家一起分享了宝贵的现场应用经验。
可以看到,通过此次讨论,大家能够较好掌握功能块库的使用,并澄清了某些误区,为以后实际的项目应用中提供一些有价值的思路。
下面是根据此次讨论中的功能块库的使用总结:
1)功能块库虽然是针对SENTRON PAC3200推出的,但是同样适用于任何支持 Modbus /TCP通讯的设备,包括PAC4200,WinCC V7、S7-300/400及第三方设备,只不过是功能块库中针对PAC3200具体定义了相关的PLC变量、DB块监控表等
2)当与非PAC3200的第三方设备通讯时只要调用PAC_FB(FB500),填写相关参数即可
3)该功能块库(PAC_FB FB500)只能实现S7-1200作为Modbus/TCP 客户端(Client),通讯对方作为服务器(Server),使用上还是有一定的限制,不过相信官方将会对块库改善后能够做为服务器进行通讯
4)该功能块库(PAC_FB FB500)目前只能实现功能码FC03(读多个保持寄存器)和 FC16(写多个保持寄存器),目前功能上来说还比较简单,还不能实现离散量的读写,对于离散量的读写必须合并到一个寄存器中来完成(即将16个Bit转换成一个Word),相信未来功能块库会进一步完善功能码
5)对于功能块FB500的发送区参数“Tx-Buffer”中DB区的格式已固定,只能为“Array [1 .. 121] of uint”。这主要是由功能块库开发者定死了无法更改

而接收区参数“Rx-Buffer“相对比较灵活,可以定义为“Array [1 .. x] of uint”、 “Array [1 .. x] of word”,“Array [1 .. x] of real”等格式,另外功能块库在版本上也进行了更新由V1.0->V1.2->V1.3->V1.4,对于V1.2的版本在CPU为V2.0之前(不包括V2.0)使用是OK的,但在V2.0中是有问题的功能块"PAC"FB500无法使用,所以建议当CPU固件升级到V2.0及以上时必须将使用V1.4版本的库文件,反之V1.4版本的快库在固件为2.0之前的CPU上也无法正常运行
6)另外关于通讯长度,根据Modbus/TCP本身的协议规范限制,寄存器最多不超过125个,而该功能块库也做了一定限制,对于读模式最多不超过125个寄存器。对于写模式不超过123个寄存器,另外通讯伙伴端可能也会对长度做一定的限制,比如PAC3200读写模式下均不超过122个寄存器,因此要综合双方来决定最终的长度
7)如果连接多个MODBUS Server从站,需要建立多个连接,Connection_ID号要不同且不能超出S7-1200通信能力8个连接

希望以上总结内容以及本次探讨的精彩发言可以给大家带来更多参考。

本次所有探讨参与者都将获得加倍发帖积分和金币,每一位精华帖作者还将获得每星5分的额外经验值奖励!

再次感谢大家!祝大家工作愉快!


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
产品技术介绍——基于S7-1200的Modbus/TCP通信
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。