最近日本韩国高清免费大全-国产igao激情在线观看视频-理论片第一页一区二区-久久久久无码精品国产-四虎永久在线精品免费一区二区

西門子S7通信協(xié)議底層原理及抓包分析


西門子作為一個老牌工控企業(yè),在中國市場擁有很高的市場占有率。如果要說起西門子的通信協(xié)議,相信大家多多少少能說出一些,比如MPI、PPI、USS、Profibus、Profinet、S7等,但是西門子在協(xié)議的開放性方面還是相對要封閉一些,所以很多時候我們是沒法知道這些協(xié)議的底層通信原理的。

 

在這里,我主要是結合Wireshark抓包工具,跟大家去分享一下,如何是一步一步抓取西門子S7通信協(xié)議底層通信報文的,希望通過我一步一步地分析,讓大家都能夠對西門子S7協(xié)議有所了解的同時,也學會基本的抓包操作與報文分析。

 

1

環(huán)境搭建

1、首先我們要準備要準備一個西門子的PLC,并保證PLC與PC之間的網絡連接正常。PS:對于手頭沒有PLC的童鞋,可以自行查看相關文章:基于TIA搭建西門子PLC仿真環(huán)境及通信方案。

2、為了抓取到通信的報文,需要實現PC與PLC之間的通信,這里我采用的方式是通過KepServer V6.4來實現。

3、安裝Wireshark抓包軟件。

4、認識S7協(xié)議的網絡模型。

 

 

2

操作步驟

1、首先將KepServer與PLC之間的通信連接配置好;

PS:對于KepServer軟件應用可以參考相關文章:基于KepServer V6.4實現與三菱FX3U PLC之間的通信。

2、將Wireshark軟件打開,并處于監(jiān)控報文狀態(tài);

 

3、將KepServer進行連接PLC,此時Wireshark軟件中會出現報文的數據,將KepServer連接停止并關閉軟件,同時將Wireshark的監(jiān)控停止,以便進行后續(xù)的報文分析;

 

3

初步分析

結合自身對TCP通信的了解,可以將抓取到的報文類型進行區(qū)分:

 

TCP三次握手過程

 

S7協(xié)議的第一次連接驗證

 

S7協(xié)議的第二次連接驗證

 

TCP四次揮手過程

 

通過分析,我們發(fā)現西門子的S7通信并不是簡簡單單的TCP通信,在TCP執(zhí)行三次握手之后,還需要發(fā)送兩次連接驗證,在兩次連接驗證之后,才進行真正的數據交互。

 

4

抓包分析

(1)第一次握手發(fā)送報文

 

報文說明:

TPKT(第五層:會話層)

該層總共占4個字節(jié):

版本號:0x03

預留:0x00

長度:0x0016

COTP(第六層:表示層)

該層總共占用18個字節(jié):

長度:0x11

PDU類型(CRConnect Request 連接請求):0x0E

目標引用:0x0000

源引用:0x0001

擴展格式/流控制:0x00

參數代碼TPDU-Size:0xC0

參數長度:0x01

TPDU大小:0x0A

參數代碼SRC-TASP:0xC1

參數長度:0x02

SourceTSAP:0x0201

參數代碼DST-TASP:0xC2

參數長度:0x02

DestinationTSAP:0x0201

 

(2)第一次握手回復報文

 

報文說明:

TPKT(第五層:會話層)

該層總共占4個字節(jié):

版本號:0x03

預留:0x00

長度:0x0016

COTP(第六層:表示層)

該層總共占18個字節(jié):

長度:0x11

PDU類型(CCConnect Confirm 連接確認):0x0D

目標引用:0x0001

源引用:0x0006

擴展格式/流控制:0x00

參數代碼TPDU-Size:0xC0

參數長度:0x01

TPDU大小:0x0A

參數代碼SRC-TASP:0xC1

參數長度:0x02

SourceTSAP:0x0201

參數代碼DST-TASP:0xC2

參數長度:0x02

DestinationTSAP:0x0201

 

(3)第二次握手發(fā)送報文

 

報文說明:

TPKT(第五層:會話層)

該層總共占4個字節(jié):

版本號:0x03

預留:0x00

長度:0x0019

COTP(第六層:表示層)

該層總共占3個字節(jié):

長度:0x02

PDU類型(DT Data):0XF0

目標引用:0x80

S7Communication(第七層:應用層)

該層總用占18個字節(jié),并且分兩部分:

Header:

協(xié)議ID(Protocol ID):0x32

ROSCTR:0x01

預留:0x0000

協(xié)議數據單元引用:0x037C

參數長度:0x0008

數據長度:0x0000

Parameter:

功能碼:0xF0

預留:0x00

最大AmQ(Calling):0x0001

最大AmQ(Called):0x0001

PDU長度:0x03C0

 

(4)第二次握手返回報文

 

報文說明:

TPKT(第五層:會話層)

該層總共占4個字節(jié):

版本號:0x03

預留:0x00

長度:0x0019

COTP(第六層:表示層)

該層總共占3個字節(jié):

長度:0x02

PDU類型(DT Data):0XF0

目標引用:0x80

S7Communication(第七層:應用層)

該層總用占20個字節(jié),并且分兩部分:

Header:

協(xié)議ID(Protocol ID):0x32

Ack_Data:0x03

預留:0x0000

協(xié)議數據單元引用:0x037C

參數長度:0x0008

數據長度:0x0000

錯誤等級:0x00

錯誤代碼:0x00

Parameter:

功能碼:0xF0

預留:0x00

最大AmQ(Calling):0x0001

最大AmQ(Called):0x0001

PDU長度:0x00F0

 

(5)讀取數據發(fā)送報文:

由于只配置了VD0,因此讀取DB1.DBX0.0 開始的4個字節(jié)

 

報文說明:

TPKT(第五層:會話層)

該層總共占4個字節(jié):

版本號:0x03

預留:0x00

長度:0x001F

COTP(第六層:表示層)

該層總共占3個字節(jié):

長度:0x02

PDU類型(DT Data):0XF0

目標引用:0x80

S7Communication(第七層:應用層)

該層總用占24個字節(jié),并且分兩部分:

Header:

協(xié)議ID(Protocol ID):0x32

Ack_Data:0x01

預留:0x0000

協(xié)議數據單元引用:0x037D

參數長度:0x000E

數據長度:0x0000

Parameter:

功能碼Read Var:0x04

通信項數:0x01

通信項1:

通信項Header

變量指定:0x12

地址長度:0x0A

SyntaxID:0x10

傳輸數據類型byte:0x02

通信項Param

讀取長度:0x04

DB號:0x01

存儲區(qū)類型DB存儲區(qū):0x84

開始字節(jié):0x000000

 

(6)讀取數據返回報文:

 

報文說明:

TPKT(第五層:會話層)

該層總共占4個字節(jié):

版本號:0x03

預留:0x00

長度:0x001D

COTP(第六層:表示層)

該層總共占3個字節(jié):

長度:0x02

PDU類型(DT Data):0XF0

目標引用:0x80

S7Communication(第七層:應用層)

該層總用占22個字節(jié),并且分兩部分:

Header:

協(xié)議ID(Protocol ID):0x32

Ack_Data:0x03

預留:0x0000

協(xié)議數據單元引用:0x037D

參數長度:0x0002

數據長度:0x0008

錯誤等級:0x00

錯誤代碼:0x00

Parameter:

功能碼Read Var:0x04

通信項數:0x01

通信項1:

返回結果Success:0xFF

傳輸數據類型Byte/Word/DWord:0x04

長度:0x0020

數據:0x00000000

 

該返回報文說明讀取的4個字節(jié)數值均為0

 

如果將這里的報文進行整理,結合Socket通信的相關知識,與西門子PLC通信的問題便迎刃而解了。

 

5

結語

大部分電氣工控人員都更偏向于工程實踐,本文從通信底層報文的角度跟大家分析了西門子S7通信的整體過程,希望可以對大家有所幫助。由于篇幅有限,很多細節(jié)方面可能無法一一展示,歡迎大家與我(微信號:w1066179)交流,多多拍磚!

 

作者簡介

付加勁,2012年畢業(yè)于安徽工業(yè)大學自動化專業(yè),2017年畢業(yè)于杭州電子科技大學控制工程,先后從事鋼鐵、LNG、煙草、物聯(lián)網、醫(yī)療等行業(yè),2014年開始接觸C#/.NET開發(fā),對.NET開發(fā)工控上位機有深入研究,曾使用C#開發(fā)過多個行業(yè)的工控上位機項目,精通各種主流PLC及其通信,對運動控制及視覺也有所研究。

關鍵詞:

相關資訊


2023年西克總經理新年致辭

暖陽迎春,兔年將至。一元復始,萬象更新。時間的腳步快速穩(wěn)健,新年的鐘聲清朗高昂,在這辭舊迎新的時刻,讓我們一起復盤2022,開啟2023。

2023-03-03

PLC控制柜設計原理電裝布局、接線圖和原理圖

1.按圖接線,這條說是最高準則也不為過。首先,在接線之前就必須先仔細閱讀圖紙,充分領會設計者的意圖,而不是根據個人所謂豐富經驗接線,如果發(fā)現不明之處或者矛盾之處應該第一時間與設計師聯(lián)系確認,直到無誤后,接線施工。

2022-11-14

?| 重新定義PLC?一個PLC產品經理的理想主義

作為工業(yè)自動化領域應用最廣的產品之一,縱觀PLC的發(fā)展歷史,自取代繼電器控制起步以來,PLC歷經了數代變革。

2021-09-13