最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

上位機(jī)開(kāi)發(fā)——西門子S7協(xié)議底層原理分析

2022-04-26 18:05 作者:新閣教育  | 我要投稿

前言

前面我們對(duì)ModbusRTU協(xié)議、ModbusTCP協(xié)議、歐姆龍F(tuán)insTCP協(xié)議、三菱SLMP協(xié)議都做了說(shuō)明:今天我們來(lái)分享一下關(guān)于西門子S7協(xié)議的通信分析。西門子作為一個(gè)老牌工控企業(yè),在中國(guó)市場(chǎng)擁有很高的市場(chǎng)占有率。如果要說(shuō)起西門子的通信協(xié)議,相信大家多多少少能說(shuō)出一些,比如MPI、PPI、USS、Profibus、Profinet、S7等,但是西門子在協(xié)議的開(kāi)放性方面還是相對(duì)要封閉一些,所以很多協(xié)議都是不開(kāi)放的。在這里,我主要是結(jié)合Wireshark抓包工具,跟大家去分享一下,如何是一步一步抓取西門子S7通信協(xié)議底層通信報(bào)文的,希望通過(guò)我一步一步地分析,讓大家都能夠?qū)ξ鏖T子S7協(xié)議有所了解的同時(shí),也學(xué)會(huì)基本的抓包操作與報(bào)文分析。

值得說(shuō)明一下,西門子S7協(xié)議非開(kāi)放協(xié)議,以下內(nèi)容,僅供學(xué)習(xí)參考。

環(huán)境搭建

1、首先我們要準(zhǔn)備要準(zhǔn)備一個(gè)西門子的PLC,并保證PLC與PC之間的網(wǎng)絡(luò)連接正常。PS:對(duì)于手頭沒(méi)有PLC的小伙伴,可以查看這篇文章:基于S7-PLCSIM Advanced搭建S7通信仿真環(huán)境
2、為了抓取到通信的報(bào)文,需要實(shí)現(xiàn)PC與PLC之間的通信,這里我采用的方式是通過(guò)KepServer V6.4來(lái)實(shí)現(xiàn),【dotNet工控上位機(jī)】微信公眾號(hào)后臺(tái)發(fā)送關(guān)鍵詞:OPC學(xué)習(xí)套裝。

3、安裝Wireshark抓包軟件,【dotNet工控上位機(jī)】微信公眾號(hào)后臺(tái)回復(fù)關(guān)鍵詞:Wireshark。

4、認(rèn)識(shí)S7協(xié)議的網(wǎng)絡(luò)模型。

操作步驟

1、首先將KepServer與PLC之間的通信連接配置好;2、將Wireshark軟件打開(kāi),并處于監(jiān)控報(bào)文狀態(tài);3、將KepServer進(jìn)行連接PLC,此時(shí)Wireshark軟件中會(huì)出現(xiàn)報(bào)文的數(shù)據(jù),將KepServer連接停止并關(guān)閉軟件,同時(shí)將Wireshark的監(jiān)控停止,以便進(jìn)行后續(xù)的報(bào)文分析;

協(xié)議分析

1、我們發(fā)現(xiàn)西門子的S7通信并不是簡(jiǎn)簡(jiǎn)單單的TCP通信,在TCP執(zhí)行三次握手之后,還需要發(fā)送兩次連接驗(yàn)證,在兩次連接驗(yàn)證之后,才進(jìn)行真正的數(shù)據(jù)交互。

2、三次握手過(guò)程,如下圖所示:

3、S7連接第一次驗(yàn)證,如下圖所示:

4、S7連接第二次驗(yàn)證,如下圖所示:

5、四次揮手過(guò)程,如下圖所示:

6、S7第一次驗(yàn)證發(fā)送報(bào)文分析:

TPKT(第五層:會(huì)話層)

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

版本號(hào):0x03

預(yù)留:0x00

長(zhǎng)度:0x0016

COTP(第六層:表示層)

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

長(zhǎng)度:0x11

PDU類型(CR Connect Request 連接請(qǐng)求):0x0E

目標(biāo)引用:0x0000

源引用:0x0001

擴(kuò)展格式/流控制:0x00

參數(shù)代碼 TPDU-Size:0xC0

參數(shù)長(zhǎng)度:0x01

TPDU大?。?x0A

參數(shù)代碼 SRC-TASP:0xC1

參數(shù)長(zhǎng)度:0x02

源TSAP Source TSAP:0x0201

參數(shù)代碼 DST-TASP:0xC2

參數(shù)長(zhǎng)度:0x02

目標(biāo)TSAP Destination TSAP:0x0201

7、S7第一次驗(yàn)證返回報(bào)文

TPKT(第五層:會(huì)話層)

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

版本號(hào):0x03

預(yù)留:0x00

長(zhǎng)度:0x0016

COTP(第六層:表示層)

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

長(zhǎng)度:0x11

PDU類型(CC Connect Confirm 連接確認(rèn)):0x0D

目標(biāo)引用:0x0001

源引用:0x0006

擴(kuò)展格式/流控制:0x00

參數(shù)代碼 TPDU-Size:0xC0

參數(shù)長(zhǎng)度:0x01

TPDU大?。?x0A

參數(shù)代碼 SRC-TASP:0xC1

參數(shù)長(zhǎng)度:0x02

Source TSAP:0x0201

參數(shù)代碼 DST-TASP:0xC2

參數(shù)長(zhǎng)度:0x02

Destination TSAP:0x0201

8、S7第二次驗(yàn)證發(fā)送報(bào)文

TPKT(第五層:會(huì)話層)

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

版本號(hào):0x03

預(yù)留:0x00

長(zhǎng)度:0x0019

COTP(第六層:表示層)

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

長(zhǎng)度:0x02

PDU類型(DT Data):0XF0

目標(biāo)引用:0x80

S7 Communication(第七層:應(yīng)用層)

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

Header:

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

ROSCTR:0x01

預(yù)留:0x0000

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

參數(shù)長(zhǎng)度:0x0008

數(shù)據(jù)長(zhǎng)度:0x0000

Parameter:

功能碼:0xF0

預(yù)留:0x00

最大AmQ(Calling):0x0001

最大AmQ(Called):0x0001

PDU長(zhǎng)度:0x03C0

9、S7第二次驗(yàn)證返回報(bào)文

TPKT(第五層:會(huì)話層)

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

版本號(hào):0x03

預(yù)留:0x00

長(zhǎng)度:0x0019

COTP(第六層:表示層)

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

長(zhǎng)度:0x02

PDU類型(DT Data):0XF0

目標(biāo)引用:0x80

S7 Communication(第七層:應(yīng)用層)

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

Header:

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

Ack_Data:0x03

預(yù)留:0x0000

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

參數(shù)長(zhǎng)度:0x0008

數(shù)據(jù)長(zhǎng)度:0x0000

錯(cuò)誤等級(jí):0x00

錯(cuò)誤代碼:0x00

Parameter:

功能碼:0xF0

預(yù)留:0x00

最大AmQ(Calling):0x0001

最大AmQ(Called):0x0001

PDU長(zhǎng)度:0x00F0

10、讀取數(shù)據(jù)發(fā)送報(bào)文:讀取DB1.DBX0.0 開(kāi)始的4個(gè)字節(jié)

TPKT(第五層:會(huì)話層)

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

版本號(hào):0x03

預(yù)留:0x00

長(zhǎng)度:0x001F

COTP(第六層:表示層)

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

長(zhǎng)度:0x02

PDU類型(DT Data):0XF0

目標(biāo)引用:0x80

S7 Communication(第七層:應(yīng)用層)

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

Header:

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

Ack_Data:0x01

預(yù)留:0x0000

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

參數(shù)長(zhǎng)度:0x000E

數(shù)據(jù)長(zhǎng)度:0x0000

Parameter:

功能碼 Read Var:0x04

通信項(xiàng)數(shù):0x01

通信項(xiàng)1:

通信項(xiàng)Header

變量指定:0x12

地址長(zhǎng)度:0x0A

Syntax ID:0x10

傳輸數(shù)據(jù)類型 byte:0x02

通信項(xiàng)Param

讀取長(zhǎng)度:0x04

DB號(hào):0x01

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

開(kāi)始字節(jié):0x000000

11、 讀取數(shù)據(jù)返回報(bào)文

TPKT(第五層:會(huì)話層)

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

版本號(hào):0x03

預(yù)留:0x00

長(zhǎng)度:0x001D

COTP(第六層:表示層)

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

長(zhǎng)度:0x02

PDU類型(DT Data):0XF0

目標(biāo)引用:0x80

S7 Communication(第七層:應(yīng)用層)

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

Header:

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

Ack_Data:0x03

預(yù)留:0x0000

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

參數(shù)長(zhǎng)度:0x0002

數(shù)據(jù)長(zhǎng)度:0x0008

錯(cuò)誤等級(jí):0x00

錯(cuò)誤代碼:0x00

Parameter:

功能碼 Read Var:0x04

通信項(xiàng)數(shù):0x01

通信項(xiàng)1:

返回結(jié)果Success:0xFF

傳輸數(shù)據(jù)類型 Byte/Word/DWord:0x04

長(zhǎng)度:0x0020

數(shù)據(jù):0x00000000


上位機(jī)開(kāi)發(fā)中,西門子PLC通信是最常見(jiàn)的,了解底層協(xié)議,對(duì)上位機(jī)開(kāi)發(fā)很重要。

我是新閣上位機(jī)付老師,用我的專業(yè),成就你的夢(mèng)想。

上位機(jī)開(kāi)發(fā)——西門子S7協(xié)議底層原理分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
云梦县| 钟祥市| 平阴县| 东乡| 抚宁县| 剑阁县| 太白县| 龙山县| 广宗县| 西和县| 罗甸县| 新营市| 斗六市| 东阳市| 苍梧县| 雷山县| 石门县| 大荔县| 西乌珠穆沁旗| 汨罗市| 英超| 静海县| 包头市| 宁波市| 潞城市| 泰来县| 阳泉市| 惠来县| 揭东县| 科技| 铜山县| 滕州市| 湘阴县| 富蕴县| 遂川县| 镶黄旗| 安西县| 巴林右旗| 岱山县| 进贤县| 上饶市|