企业新闻
企业新闻 行业新闻
天地和兴技术分享 | 工控安全协议之S7协议
2019-01-30 浏览:220

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,有效性标示该数据段数据的有效性,数据长度为返回的数据长度,子数据段数据为返回的数据。

本文由北京天地和兴科技有限公司原创,转载时请注明:工控安全网址:http://www.tdhxkj.com/
关于我们
公司简介 企业文化
发展历程 企业荣誉
人才招聘
联系我们
公司简介
企业文化

公司地址:北京市海淀区中关村科技园8号 华夏科技大厦三层

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

E-MAIL:tdhx@tdhxkj.com

友情链接
国家电网 中国大唐集团 中国华电 国家能源集团 华能集团 中核集团 中国石油 酒钢集团 马钢集团 中国通号 中国铁路 上汽集团 北汽集团 东风柳汽 中国海油 SIMENS Honeywell EMERSON 和利时 研华科技 工控安全 浙江大学 华北电力大学
扫一扫,关注天地和兴公众微信号