西门子标准报文1常用_基于Snap7使用C#编程访问西门子PLC系列教程(2)-S7协议
本文是Snap7軟件包系列教程的第2篇,我們來介紹下S7協(xié)議,包括如下幾個主題:
1、S7協(xié)議簡介
2、S7協(xié)議命令簡介
3、S7協(xié)議通信的角色與模式
1、S7協(xié)議簡介
S7協(xié)議是西門子S7系列PLC通信的核心協(xié)議,它是一種位于傳輸層之上的通信協(xié)議,其物理層/數(shù)據(jù)鏈路層可以是MPI總線、PROFIBUS總線或者工業(yè)以太網(wǎng)。
本教程要介紹的Snap7軟件包支持基于工業(yè)以太網(wǎng)的S7通信協(xié)議,其網(wǎng)絡參考模型如下圖所示:
從上圖可以看出,S7協(xié)議的下層是傳輸層的RFC1006協(xié)議,也就是ISO-On-TCP協(xié)議。這個協(xié)議在之前的文章中有介紹,請參考文章:ISO傳輸協(xié)議、ISO-ON-TCP協(xié)議和TCP協(xié)議有什么不同?
ISO-On-TCP協(xié)議依賴TCP協(xié)議,其下層依賴是網(wǎng)絡層的IP協(xié)議。
S7協(xié)議的報文采用封裝的形式逐層向下傳遞。首先在S7報文的前面加上TPKT和COTP報頭變成ISO-On-TCP協(xié)議報文,然后再添加TCP/IP的報頭變成TCP/IP報文,如此層層向下傳遞最后經(jīng)過物理層發(fā)送到網(wǎng)絡中。
(圖片來源 : Snap7手冊)
網(wǎng)絡中接收數(shù)據(jù)的設備,以相反的順序依次去掉相應層的報文頭,就得到了S7協(xié)議的報文。
S7協(xié)議的基本傳輸單位稱為:過程數(shù)據(jù)單元(process data unit,PDU)。每個過程數(shù)據(jù)單元(PDU)都包括一條命令或者對命令的回復。可以說S7協(xié)議是一種命令型的協(xié)議,每條命令包括如下幾個部分:
- 報文頭(header);
- 參數(shù)(parameters);
- 參數(shù)數(shù)據(jù)(parameter data);
- 數(shù)據(jù)塊(data block);
報文頭和參數(shù)是必須有的,參數(shù)數(shù)據(jù)和數(shù)據(jù)塊根據(jù)命令的不同而可選。
比如說:將"數(shù)據(jù)寫入到DB100的起始地址偏移量為4的地方"就是一個命令,在這個命令中:寫入、數(shù)據(jù)、DB100、偏移量4都是該命令的組成部分。2、S7協(xié)議命令簡介
S7協(xié)議的命令有很多,主要包括如下幾個類型:
- 數(shù)據(jù)讀寫命令;
- 塊訪問命令;
- 塊操作命令;
- 系統(tǒng)信息命令;
- PLC控制命令;
- 管理命令;
- 日期時間命令;
- 安全命令;
數(shù)據(jù)讀寫命令可以對存儲器(I、Q、M、C、T)的數(shù)據(jù)進行讀寫訪問;
塊訪問命令可以訪問PLC中塊(Block)的詳細信息;
塊操作命令可以對塊進行上傳、下載、刪除等操作;
系統(tǒng)信息命令可以獲取系統(tǒng)相關的信息,比如:系統(tǒng)狀態(tài)列表、CPU信息、序列號等等;
PLC控制命令可以讓CPU執(zhí)行熱啟動、冷啟動、停機、獲取CPU狀態(tài)等等;
管理命令可以創(chuàng)建與CPU的連接、取消連接、設置通信的參數(shù)等;
日期時間命令可以讀寫CPU的日期時間值;
安全命令可以獲取CPU的安全等級、發(fā)送用于連接的密碼、清除當前會話的密碼等;3、S7協(xié)議通信的角色與模式
在S7通信中,有三種角色:客戶端/服務器/伙伴。有兩種通信模式:客戶端/服務器(Client/Server)模式和伙伴/伙伴(Partner/Partner)模式。
在客戶端/服務器模式中,必須由客戶端發(fā)起詢問(query),然后服務器才能應答(reply),服務器端不能主動發(fā)起詢問請求;
在伙伴/伙伴模式中,通信的雙方之間都可以主動發(fā)起詢問,也都可以對伙伴的詢問進行應答;
我們經(jīng)常使用的模式是客戶端/服務器模式。
這種模式下,我們通常把PLC作為服務器,而把編程電腦、工控機、觸摸屏等作為客戶端,比如下面這張圖:
(圖片來源 : Snap7手冊)
PLC也可以作為另一個PLC的客戶端,這就是我們常說的S7單邊通信,如下圖所示:
(圖片來源 : Snap7手冊)
在客戶端/服務器模式中,所有的配置都在客戶端,服務器不需要任何配置。
在伙伴/伙伴通信模式下,主動與另一方建立連接的稱為主動方(Active Partner),而另一方就稱為被動方(Passive Partner)。一旦建立連接后,通信雙方都可以發(fā)送或接收數(shù)據(jù),如下圖所示:
在伙伴/伙伴通信模式下,雙方都需要進行配置。
好了,關于S7通信協(xié)議就先介紹這么多。
我的新書《西門子S7-200 SMART PLC應用技術——編程、通信、裝調(diào)、案例》已經(jīng)出版,歡迎點擊下面的鏈接查看:
西門子S7-200 SMART PLC應用技術——編程、通信、裝調(diào)、案例?www.founderchip.com總結(jié)
以上是生活随笔為你收集整理的西门子标准报文1常用_基于Snap7使用C#编程访问西门子PLC系列教程(2)-S7协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 烟雨江湖羽毛怎么获得?
- 下一篇: 核元突破配置要求是什么?
