收藏 | 深入理解S7通信協(xié)議
這是S7-1200與S7-200 Smart系列PLC的S7通信教程的第1篇文章。本章我們打算和大家聊聊西門子的S7通信協(xié)議。

S7通信協(xié)議是西門子S7系列PLC內(nèi)部集成的一種通信協(xié)議,是S7系列PLC的精髓所在。它是一種運(yùn)行在傳輸層之上的(會(huì)話層/表示層/應(yīng)用層)、經(jīng)過(guò)特殊優(yōu)化的通信協(xié)議,其信息傳輸可以基于MPI網(wǎng)絡(luò)、PROFIBUS網(wǎng)絡(luò)或者以太網(wǎng)。
S7通信協(xié)議的參考模型見(jiàn)下面的表格:

S7通信支持兩種方式:
1)基于客戶端(Client)/服務(wù)器(Server)的單邊通信;
2)基于伙伴(Partner)/伙伴(Partner)的雙邊通信;
客戶端(Client)/服務(wù)器(Server)模式是最常用的通信方式,也稱作S7單邊通信。在該模式中,只需要在客戶端一側(cè)進(jìn)行配置和編程;服務(wù)器一側(cè)只需要準(zhǔn)備好需要被訪問(wèn)的數(shù)據(jù),不需要任何編程(服務(wù)器的“服務(wù)”功能是硬件提供的,不需要用戶軟件的任何設(shè)置)。
什么是客戶端(Client)呢?
客戶端其實(shí)是在S7通信中的一個(gè)角色,它是資源的索取者;而服務(wù)器則是資源的提供者。服務(wù)器(Server)通常是S7-PLC的CPU,它的資源就是其內(nèi)部的變量/數(shù)據(jù)等??蛻舳送ㄟ^(guò)S7通信協(xié)議,對(duì)服務(wù)器的數(shù)據(jù)進(jìn)行讀取或?qū)懭氲牟僮鳌?/p>
常見(jiàn)的客戶端包括:人機(jī)界面(HMI)、編程電腦(PG/PC)等。當(dāng)兩臺(tái)S7-PLC進(jìn)行S7通信時(shí),可以把一臺(tái)設(shè)置為客戶端,另一臺(tái)設(shè)置為服務(wù)器。(這種設(shè)置的具體方法我們會(huì)在本教程的后續(xù)文章中介紹。)
其實(shí),很多基于S7通信的軟件都是在扮演者客戶端的角色。比如OPC Server,雖然它的名字中有Server。但在S7通信中,它其實(shí)是客戶端的角色。
客戶端/服務(wù)器模式的數(shù)據(jù)流動(dòng)是單向的。也就是說(shuō),只有客戶端能操作服務(wù)器的數(shù)據(jù),而服務(wù)器不能對(duì)客戶端的數(shù)據(jù)進(jìn)行操作。
有時(shí)候,我們需要雙向的數(shù)據(jù)操作,這就要使用伙伴(Partner)/伙伴(Partner)通信模式。
伙伴(Partner)/伙伴(Partner)通信模式也稱為S7雙邊通信,也有人稱其為客戶端(Client)—客戶端(Client)模式。不管是什么名字,該通信方式有如下幾個(gè)特點(diǎn):
1)通信雙方都需要進(jìn)行配置和編程;
2)通信需要先建立連接。主動(dòng)請(qǐng)求建立連接的是主動(dòng)伙伴(Active Partner),被動(dòng)等待建立連接的是被動(dòng)伙伴(Passive Partner);
3)當(dāng)通信建立后,通信雙方都可以發(fā)送或接受數(shù)據(jù);
在S7-300中,使用FB12(BSend)/FB13(BRecv)進(jìn)行發(fā)送和接收。當(dāng)一方調(diào)用發(fā)送指令時(shí),另一方必須同時(shí)調(diào)用接收指令才能完成數(shù)據(jù)的傳輸。
好了,關(guān)于S7通信協(xié)議就先介紹到這里。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
