网站大量收购闲置独家精品文档,联系QQ:2885784924

S7通信协议之你不知道的事儿.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

S7通信协议之你不知道的事儿--第1页

S7通信协议之你不知道的事儿

在电气学习的路上,西门子PLC应该是我的启蒙PLC,从早期的S7-300/400PLC搭建Profibus-DP

网络开始接触,到后来的S7-200SmartPLC,再到现在的S7-1200/1500PLC博途软件,基本上西门子的

每款PLC都接触并使用过。

在上位机开发的路上,西门子PLC也一直是我钟爱的一个品牌,仍然记得刚开始做的第一个上位

机就是基于S7-300PLC的S7协议。最近又将S7协议巩固了一遍,发现了一些自己之前都不知道的事,

这才发现,西门子S7协议是非常强大的一个协议。

1.S7协议之布尔操作

对于布尔操作,很多协议都有,但是这里的布尔操作是指寄存器布尔,比如DB100.DBX0.0,很多

时候,我们都是通过先读取DB100.DBB0的值,再通过位运算结果,写入到DB100.DBB0中,实现

DB100.DBX0.0的操作,但是这种方式有弊端,第一:每次操作一个布尔值都需要与PLC进行两次数据

交互,第二:安全性和稳定性无法保障,你不知道在你读取和写入之间,这个字节的值是否已经发生

了改变。

这样的问题也存在于Modbus协议的寄存器位操作,如40001.05,三菱、欧姆龙的寄存器位操作,

如D100.06、W12.04,给上位机开发者带来很多苦恼。

但是S7协议支持直接位操作,有专门的报文指令实现这样的功能。

2.S7协议之PDU读取

大部分人都知道S7协议一次性读取有限制,但是具体是多少?怎么计算出来的?

S7协议的一次性读取长度是根据PDU计算出来的,这个PDU的值是来自于PLC本身,不同型号

的CPU,它的PDU是不一样的,大家可以通过KepServer结合PLC来测试,如果手头没有PLC,可以

关注本公众号的一篇文章《手把手教你搭建西门子PLC仿真环境》。

图表1S7-1200的PDU

S7通信协议之你不知道的事儿--第1页

S7通信协议之你不知道的事儿--第2页

图表2S7-1500的PDU

经过研究发现,西门子PLC的PDU大小是和CPU息息相关的,一般会有240、480、960三个档

次,知道PDU之后,那么一次性读取的字节长度,就是在PDU的基础上减去18,这个18是指包头

包尾会有18个字节,这样我们就知道了一般的PLC,一次性能读取222个字节(240-18=222),但是

对于S7-1516这样的PLC,我们一次性是可以读取942个字节的(960-18=942),这个一次性能读取的

字节越长,越能提高上位机的通信效率。

但是刚刚的方式是通过KepServer测试的,实际开发过程中,该怎么获取CPU的PDU呢,实际上

在建立连接的第二次握手时,返回的报文中就包含PDU的值。

图表3S7-1200PDU报文

第二次握手返回的报文长度是27个字节,最后两个字节就是PDU的值,上图展示的是S7-1200PLC

返回的报文,0和240的组合即为240。

对于S7-1500,我这里也做了一下测试,结果如下,返回结果为3和192,3和192的组合恰好是

960(960=3*256+192)。

S7通信协议之你不知道的事儿--第2页

S7通信协议之你不知道的事儿--第3页

图表4S7-1500PDU报文

虽然PDU是由硬件做了限制,但是我们可以通过软件的方式,实现大量数据的读取,只需要在

底层做一些封装即可。做了一下测试,针对S7-1200和S7-1500同时读取M区的8000个字节的耗时

比较,S7-12

您可能关注的文档

文档评论(0)

132****9540 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档