西门子S7协议底层原理分析
原创 新阁教育付工 dotNet工控上位机 :02
-Begin-
前言
值得说明一下,西门子S7协议非开放协议,以下内容,仅供学习参考。
环境搭建
操作步骤
协议分析
3、S7连接次验证,如下图所示:
4、S7连接第二次验证,如下图所示:
5、四次挥手过程,如下图所示:
6、S7次验证发送报文分析:
TPKT(第五层:会话层)
该层总共占4个字节:
版本号:0x03
预留:0x00
长度:0x0016
COTP(第六层:表示层)
该层总共占用18个字节:
长度:0x11
PDU类型(CR Connect Request 连接请求):0x0E
目标引用:0x0000
源引用:0x0001
扩展格式/流控制:0x00
参数代码 TPDU-Size:0xC0
参数长度:0x01
TPDU大小:0x0A
参数代码 SRC-TASP:0xC1
参数长度:0x02
源TSAP Source TSAP:0x0201
参数代码 DST-TASP:0xC2
参数长度:0x02
目标TSAP Destination TSAP:0x0201
7、S7次验证返回报文
TPKT(第五层:会话层)
该层总共占4个字节:
版本号:0x03
预留:0x00
长度:0x0016
COTP(第六层:表示层)
该层总共占18个字节:
长度:0x11
PDU类型(CC Connect Confirm 连接确认):0x0D
目标引用:0x0001
源引用:0x0006
扩展格式/流控制:0x00
参数代码 TPDU-Size:0xC0
参数长度:0x01
TPDU大小:0x0A
参数代码 SRC-TASP:0xC1
参数长度:0x02
Source TSAP:0x0201
参数代码 DST-TASP:0xC2
参数长度:0x02
Destination TSAP:0x0201
8、S7第二次验证发送报文
TPKT(第五层:会话层)
该层总共占4个字节:
版本号:0x03
预留:0x00
长度:0x0019
COTP(第六层:表示层)
该层总共占3个字节:
长度:0x02
PDU类型(DT Data):0XF0
目标引用:0x80
S7 Communication(第七层:应用层)
该层总用占18个字节,并且分两部分:
Header:
协议ID(Protocol ID):0x32
ROSCTR:0x01
预留:0x0000
协议数据单元引用:0x037C
参数长度:0x0008
数据长度:0x0000
Parameter:
功能码:0xF0
预留:0x00
大AmQ(Calling):0x0001
大AmQ(Called):0x0001
PDU长度:0x03C0
9、S7第二次验证返回报文
TPKT(第五层:会话层)
该层总共占4个字节:
版本号:0x03
预留:0x00
长度:0x0019
COTP(第六层:表示层)
该层总共占3个字节:
长度:0x02
PDU类型(DT Data):0XF0
目标引用:0x80
S7 Communication(第七层:应用层)
该层总用占20个字节,并且分两部分:
Header:
协议ID(Protocol ID):0x32
Ack_Data:0x03
预留:0x0000
协议数据单元引用:0x037C
参数长度:0x0008
数据长度:0x0000
错误等级:0x00
错误代码:0x00
Parameter:
功能码:0xF0
预留:0x00
大AmQ(Calling):0x0001
大AmQ(Called):0x0001
PDU长度:0x00F0
10、读取数据发送报文:读取DB1.DBX0.0 开始的4个字节
TPKT(第五层:会话层)
该层总共占4个字节:
版本号:0x03
预留:0x00
长度:0x001F
COTP(第六层:表示层)
该层总共占3个字节:
长度:0x02
PDU类型(DT Data):0XF0
目标引用:0x80
S7 Communication(第七层:应用层)
该层总用占24个字节,并且分两部分:
Header:
协议ID(Protocol ID):0x32
Ack_Data:0x01
预留:0x0000
协议数据单元引用:0x037D
参数长度:0x000E
数据长度:0x0000
Parameter:
功能码 Read Var:0x04
通信项数:0x01
通信项1:
通信项Header
变量指定:0x12
地址长度:0x0A
Syntax ID:0x10
传输数据类型 byte:0x02
通信项Param
读取长度:0x04
DB号:0x01
存储区类型 DB存储区:0x84
开始字节:0x000000
11、 读取数据返回报文
TPKT(第五层:会话层)
该层总共占4个字节:
版本号:0x03
预留:0x00
长度:0x001D
COTP(第六层:表示层)
该层总共占3个字节:
长度:0x02
PDU类型(DT Data):0XF0
目标引用:0x80
S7 Communication(第七层:应用层)
该层总用占22个字节,并且分两部分:
Header:
协议ID(Protocol ID):0x32
Ack_Data:0x03
预留:0x0000
协议数据单元引用:0x037D
参数长度:0x0002
数据长度:0x0008
错误等级:0x00
错误代码:0x00
Parameter:
功能码 Read Var:0x04
通信项数:0x01
通信项1:
返回结果Success:0xFF
传输数据类型 Byte/Word/DWord:0x04
长度:0x0020
数据:0x00000000