日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

西门子S7以太网通讯协议

發(fā)布時(shí)間:2025/4/16 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 西门子S7以太网通讯协议 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

S7以太網(wǎng)協(xié)議屬于TCP/IP協(xié)議族的一種,下圖為S7以太網(wǎng)協(xié)議在ISO-OSI參考模型中的位置。

?

通過WireShark抓包,可以看出S7以太網(wǎng)協(xié)議的模型:

?

?

ISO-OSI參考模型、TCP/IP模型及S7以太網(wǎng)協(xié)議模型對(duì)比

ISO-OSI參考模型

TCP/IP模型

S7以太網(wǎng)協(xié)議模型

7-應(yīng)用層

4-應(yīng)用層

6-S7 ?Communication

6-表示層

5- ?COTP(TSAP)

RFC1006

5-會(huì)話層

4-TPKT

4-傳輸層

3-傳輸層

3-TCP(102端口)

3-網(wǎng)絡(luò)層

2-網(wǎng)絡(luò)互連層

2-IP

2-數(shù)據(jù)鏈路層

1-網(wǎng)絡(luò)接口層

1-工業(yè)以太網(wǎng)

1-物理層

第5層(相對(duì)于ISO-OSI參考模型):TPKT(ISO Transport Service ontop of the TCP/ ISO傳輸服務(wù)通過TCP),介于TCP和COTP協(xié)議之間。這是一個(gè)傳輸服務(wù)協(xié)議,主要用來在COTP和TCP之間建立橋梁,包含了上層協(xié)議數(shù)據(jù)包的長(zhǎng)度。

?

第6層(相對(duì)于ISO-OSI參考模型):COTP(Connection OrientedTransport Protocol/面向連接的傳輸協(xié)議),比較TCP與COTP兩種協(xié)議,因?yàn)樗鼈兌际怯糜谕ㄟ^網(wǎng)絡(luò)可靠地傳輸用戶數(shù)據(jù),基于數(shù)據(jù)流的與基于數(shù)據(jù)包的:COTP將數(shù)據(jù)包從一個(gè)用戶傳輸?shù)搅硪粋€(gè)用戶,所以接收者將獲得與發(fā)送者傳輸完全相同的數(shù)據(jù)邊界。TCP將連續(xù)的數(shù)據(jù)流傳輸?shù)浇邮掌?#xff0c;因此TCP上的協(xié)議通常必須自己添加這樣的邊界(如TPKT協(xié)議)。

為了復(fù)用客戶端和服務(wù)端之間的幾個(gè)會(huì)話,COTP使用了TSAP(傳輸服務(wù)訪問點(diǎn)),TSAP為2個(gè)字節(jié),通常使用一個(gè)有意義的字符串。TSAP的第2個(gè)字節(jié)由機(jī)架號(hào)+插槽號(hào)組成,插槽號(hào)在0-4Bit機(jī)架號(hào)在5-7Bit。這些TSAP在連接建立階段被匹配,并且在數(shù)據(jù)傳輸時(shí)由2字節(jié)(目標(biāo)/源)參考代替。

下圖示例為SIMATIC NET OPC與S7-200 SMART PLC 通過S7以太網(wǎng)協(xié)議通訊的COTP TSAP設(shè)置值

通過WireShark抓包,COTP的連接報(bào)文如下:

?

為什么要使用RFC 1006 協(xié)議擴(kuò)展

RFCs(Request?for?Comments) 是一些技術(shù)類文檔,?內(nèi)容包括針對(duì)-例如以太網(wǎng)結(jié)構(gòu),協(xié)議的設(shè)計(jì),email?報(bào)文頭設(shè)計(jì)等等進(jìn)行了詳細(xì)的描述。?RFC 1006?中的“ISO Transport Service on top of theTCP(TPKT)”(ISO傳輸服務(wù)通過TCP)是TCP協(xié)議的一種擴(kuò)展。這意味著除了TCP數(shù)據(jù),在通訊雙方之間還可以提供特殊的傳輸服務(wù)(ISO服務(wù))。

當(dāng)數(shù)據(jù)使用TCP協(xié)議進(jìn)行傳輸時(shí),傳輸工作聚焦在數(shù)據(jù)流上。因此沒有關(guān)于數(shù)據(jù)長(zhǎng)度或者數(shù)據(jù)起始以及終止的信息。這對(duì)于發(fā)送方?jīng)]有問題,因?yàn)樗浪l(fā)送的字節(jié)數(shù)。但對(duì)于接收方來講,它無法知道該信息什么時(shí)候開始,什么時(shí)候結(jié)束,以及下一條信息什么時(shí)候被發(fā)送。
在許多自動(dòng)化應(yīng)用中,必須要關(guān)注工作信息。信息塊通過一個(gè)連接由發(fā)送方發(fā)出,其完整性由接收方進(jìn)行確認(rèn)。為了進(jìn)行這樣的確認(rèn),RFC1006規(guī)定了在數(shù)據(jù)前面必須要加上報(bào)文頭。RFC1006因此提供了這樣一種應(yīng)用,及根據(jù)TCP協(xié)議建立數(shù)據(jù)流,但面向消息進(jìn)行傳輸。

第7層(相對(duì)于ISO-OSI參考模型)S7 Communication應(yīng)用協(xié)議(協(xié)議ID=0x32),包含三部分:1-Header;2-Parameter;3-Data。根據(jù)功能(S7Comm.Parameter.Function?)不同,S7 Communication協(xié)議的結(jié)構(gòu)會(huì)有所不同。例如,請(qǐng)求數(shù)據(jù)報(bào)文只包含前兩部分。

應(yīng)答數(shù)據(jù)報(bào)文為3部分包括數(shù)據(jù)Data 段

S7Communication應(yīng)用協(xié)議中Parameter.Function的取值對(duì)應(yīng)的功能如下表:

下圖為S7以太網(wǎng)通訊客戶端從建立TCP連接到讀取到服務(wù)端數(shù)據(jù)的整個(gè)過程

1.握手

當(dāng)客戶端192.168.1.101與服務(wù)端192.168.1.200通過Socket建立連接時(shí),會(huì)進(jìn)行“三次握手”,這是標(biāo)準(zhǔn)的TCP連接方式,這個(gè)過程會(huì)由Socket自動(dòng)完成;

2.通訊請(qǐng)求

在“握手”之后,并不能馬上進(jìn)行數(shù)據(jù)交換,還需要“通訊請(qǐng)求”過程。

這個(gè)過程包含兩次報(bào)文交換:

  • 客戶端發(fā)送COTP報(bào)文給服務(wù)端,在COTP報(bào)文中包含“連接請(qǐng)求”和“Destination TSAP”,以明確CPU的機(jī)架號(hào)和槽號(hào);服務(wù)端應(yīng)答COTP報(bào)文,包含“連接確認(rèn)”;這樣服務(wù)端就清楚了客戶端需要和哪個(gè)CPU來進(jìn)行數(shù)據(jù)通訊;

  • 客戶端發(fā)送S7 Communicaton報(bào)文給服務(wù)端,在S7Communicaton報(bào)文中包含“通訊請(qǐng)求”; 服務(wù)端反饋S7 Communicaton報(bào)文。

  • 交換數(shù)據(jù)

通訊應(yīng)用就在這個(gè)過程內(nèi)完成,可以組織報(bào)文來實(shí)現(xiàn)需要的功能。這個(gè)過程內(nèi)的報(bào)文是S7 communicaton,具體實(shí)現(xiàn)時(shí),需要對(duì)S7協(xié)議中的第5、6、7層進(jìn)行編程。

注意,如果不進(jìn)行“第2步-通訊請(qǐng)求”而直接發(fā)送交換數(shù)據(jù)報(bào)文,則服務(wù)端會(huì)將連接斷開。

轉(zhuǎn)載于:https://www.cnblogs.com/wllgo/p/11512150.html

總結(jié)

以上是生活随笔為你收集整理的西门子S7以太网通讯协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。