新闻资讯
全部分类

工业控制协议介绍之-- S7协议

  • 分类:行业洞察
  • 作者:
  • 来源:
  • 发布时间:2018-02-28 16:48
  • 访问量:

【概要描述】

工业控制协议介绍之-- S7协议

【概要描述】

  • 分类:行业洞察
  • 作者:
  • 来源:
  • 发布时间:2018-02-28 16:48
  • 访问量:
详情

  ​S7协议是西门子专有协议,广泛用于各种通讯服务,S7协议独立于西门子各种通讯总线,可以在MPI,PROFIBUS,Ethernet,PROFINET上运行。由于以太网与PLC通信使用较多,所以重点介绍ISO on TCP的通讯方式。但是由于通过MPI,PPI,PROFIBUS等方式连接的用户核心协议仍是S7协议,依然会有一定的参考意义。

  S7协议网络通信模型

  RFC 1006(ISO on TCP)

  西门子S7协议使用的是TCP/IP+ISO TP +S7协议。ISO on TCP的具体介绍可以参考RFC1006和RFC983。

  帧格式

  ISO on TCP帧分两部分,一部分为帧头,一部分为TPDU。共分为5类,分别是:

  CR: connect request(连接请求);

  CC: connect confirm (连接应答);

  DR: disconnect request(断开请求帧);

  DT: data(数据帧);

  ED: expedited data(扩展数据帧)。

  对于这5类帧,帧头格式是一样的,TPDU的格式有区别。

  帧头格式

  Vsrn版本:03; reserved:保留;packet length:从vsrn到数据结尾的长度。

  TPDU格式

  1、 CR、CC的TPDU格式

  Header length: TPDU帧长度;

  Code:TPDU类型,4bit长度;

  Credit:保留;

  Destination reference:目的reference,在S7通信中,为连续的次数。

  Class:4bits。发送端为0,接收端忽略。

  Options:4bits。发送端为0,接收端忽略。

  Variable data: S7协议中,该字段共有三组参数。参数1(C1)为PLC端连接通道号、PLC机架号、PLC槽位号;参数2(C2)为远端连接通道号、机架号、槽位号;参数3(C3)为0x0A。

  2、 ED的TPDU格式

  PDU-NR and EOT:0x80标识该帧包括帧尾,没有后续的数据,其他数据忽略。

  S7协议

  S7协议的通信过程如下:TCP三次握手建立连接、ISO_TP建立连接、S7协议连接请求、建立连接、实现S7协议读取数据。

  S7协议连接过程

  S7协议是一组复杂的协议,可以下载、上载程序、操作PLC、读取数据等。下面只针对数据读取部分功能进行解释。

  S7读取命令

  标识符:0x32标识帧开始。

  请求应答:0x1为发送命令,0x3为应答帧。

  保留:保留,填充为0。

  事务处理标识:请求、应答事务标识。

  命令长度:帧长度。

  保留:保留,填充为0。

  命令符:0x4位读取命令,0x5位写命令。

  读取数据段数:读取数据段的个数。

  读取数据段命令域:读取多个不连续的数据时,该部分可以重复出现。

  命令域字段标识头:读取数据段命令域的标识头。

  命令域字段长度:命令域字段的长度。

  未知:通常为0x10,暂不清楚具体含义。

  数据类型:0x1bit,0x2 byte,0x4位float。

  读取字节:读取字节的长度。

  数据块编号:读取数据块编号,I、Q、M等区为0。

  寄存器类型:读取寄存器类型。

  偏移地址:开始读取量的偏移地址,按bit计算。

  S7应答

  执行命令返回值:执行命令的结果返回,0x2位OK。

  数据段:根据读取不联系的地址命令,一个应答帧可以包含过个读取的数据段。其中,标示头为)XFF,有效性标示该数据段数据的有效性,数据长度为返回的数据长度,子数据段数据为返回的数据。

扫二维码用手机看

天地和兴

公司总部:北京市海淀区中关村软件园8号华夏科技大厦三层

服务热线:400-810-8981 / 010-82896289

版权所有:北京天地和兴科技有限公司      京ICP备17065546号-1

扫一扫关注

天地和兴微信公众号