西門子6ES7331-1KF02-0AB0
1.PROFIBUS的協(xié)議結(jié)構(gòu)
PROFIBUS協(xié)議結(jié)構(gòu)是根據(jù)ISO7498標準,以O(shè)SI作為參考模型的。PROFIBUS-DP定義了第1、2層和用戶接口。第3到7層未加描述。用戶接口規(guī)定了用戶及系統(tǒng)以及不同設(shè)備可調(diào)用的應(yīng)用功能,并詳細說明了各種不同PROFIBUS-DP設(shè)備的設(shè)備行為。PROFIBUS-FMS定義了第1、2、7層,應(yīng)用層包括現(xiàn)場總線信息規(guī)范(FMS)和低層接口(LLI)。FMS包括了應(yīng)用協(xié)議并向用戶提供了可廣泛選用的強有力的通信服務(wù);LLI協(xié)調(diào)不同的通信關(guān)系并提供不依賴設(shè)備的第2層訪問接口。PROFIBUS-PA的數(shù)據(jù)傳輸采用擴展的PROFIBUS-DP協(xié)議。另外,PA還描述了現(xiàn)場設(shè)備行為的PA行規(guī)。根據(jù)IEC1157-2標準,PA的傳輸技術(shù)可確保其本質(zhì)安全性,而且可通過總線給現(xiàn)場設(shè)備供電。使用連接器可在DP上擴展PA網(wǎng)絡(luò)。
2.PROFIBUS的傳輸技術(shù)
PROFIBUS提供了三種數(shù)據(jù)傳輸型式:RS-485傳輸、IEC1157-2傳輸和光纖傳輸。
(1) RS-485傳輸技術(shù)
RS-485傳輸是PROFIBUSzui常用的一種傳輸技術(shù),通常稱之為H2。RS-485傳輸技術(shù)用于PROFIBUS-DP與PROFIBUS-FMS。
RS-485傳輸技術(shù)基本特征是:網(wǎng)絡(luò)拓撲為線性總線,兩端有有源的總線終端電阻;傳輸速率為9.6kbps~12Mbps;介質(zhì)為屏蔽雙絞電纜,也可取消屏蔽,取決于環(huán)境條件;不帶中繼時每分段可連接32個站,帶中繼時可多到127個站。RS-485傳輸設(shè)備安裝要點:全部設(shè)備均與總線連接;每個分段上zui多可接32個站(主站或從站);每段的頭和尾各有一個總線終端電阻,確保操作運行不發(fā)生誤差;兩個總線終端電阻必須一直有電源;當分段站超過32個時,必須使用中繼器用以連接各總線段,串聯(lián)的中繼器一般不超過4個;傳輸速率可選用9.6kbps~12Mbps,一旦設(shè)備投入運行,全部設(shè)備均需選用同一傳輸速率。電纜zui大長度取決于傳輸速率采用RS-485傳輸技術(shù)的PROFIBUS網(wǎng)絡(luò)使用9針D型插頭。當連接各站時,應(yīng)確保數(shù)據(jù)線不要擰絞,系統(tǒng)在高電磁發(fā)射環(huán)境下運行應(yīng)使用帶屏蔽的電纜,屏蔽可提高電磁兼容性(EMC)。如用屏蔽編織線和屏蔽箔,應(yīng)在兩端與保護接地連接,并通過盡可能的大面積屏蔽接線來復蓋,以保持良好的傳導性。
(2)IEC1157-2傳輸技術(shù)
IEC1l57-2的傳輸技術(shù)用于PROFIBUS-PA,能滿足化工和石油化工業(yè)的要求。它可保持其本質(zhì)安全性,并通過總線對現(xiàn)場設(shè)備供電。IEC1157-2是一種位同步協(xié)議,可進行無電流的連續(xù)傳輸,通常稱為H1。
(3)光纖傳輸技術(shù)
PROFIBUS系統(tǒng)在電磁干擾很大的環(huán)境下應(yīng)用時,可使用光纖導體,以增加高速傳輸?shù)木嚯x??墒褂脙煞N光纖導體:一種是價格低廉的塑料纖維導體,供距離小于50m情況下使用;另一種是玻璃纖維導體,供距離小于1km情況下使用。許多廠商提供總線插頭可將RS-485信號轉(zhuǎn)換成光纖導體信號或?qū)⒐饫w導體信號轉(zhuǎn)換成RS-485信號。
3. PROFIBUS總線存取控制技術(shù)
PROFIBUS-DP、FMS、PA均采用一樣的總線存取控制技術(shù),它是通過OSI參考模型第2層(數(shù)據(jù)鏈路層)來實現(xiàn)的,它包括保證數(shù)據(jù)可靠性技術(shù)及傳輸協(xié)議和報文處理。在PROFIBUS中,第2層稱之為現(xiàn)場總線數(shù)據(jù)鏈路層(FDL,F(xiàn)ieldbus Data link)。介質(zhì)存取控制(M A C, Medium Access Control)具體控制數(shù)據(jù)傳輸?shù)某绦?,MAC必須確保在任何一個時刻只有一個站點發(fā)送數(shù)據(jù)。PROFIBUS協(xié)議的設(shè)計要滿足介質(zhì)存取控制的兩個基本要求:
(1)在復雜的自動化系統(tǒng)(主站)間的通信,必須保證在確切限定的時間間隔中,任何一個站點要有足夠的時間來完成通信任務(wù)。
(2)在復雜的程序控制器和簡單的I/O設(shè)備(從站)間通信,應(yīng)盡可能快速又簡單地完成數(shù)據(jù)的實時傳輸。
因此PROFIBUS主站之間采用令牌傳送方式,主站與從站之間采用主從方式。令牌傳遞程序保證每個主站在一個確切規(guī)定的時間內(nèi)得到總線存取權(quán)(令牌),令牌在所有主站中循環(huán)一周的zui長時間是事先規(guī)定的。在PROFIBUS中,令牌傳遞僅在各主站之間進行。主站得到總線存取令牌時可依照主-從通信關(guān)系表與所有從站通信,向從站發(fā)送或讀取信息,也可依照主-主通信關(guān)系表與所有主站通信。所以可能有3種系統(tǒng)配置:純主-從系統(tǒng)、純主-主系統(tǒng)和混合系統(tǒng)在總線系統(tǒng)初建時,主站介質(zhì)存取控制MAC的任務(wù)是制定總線上的站點分配并建立邏輯環(huán)。在總線運行期間,斷電或損壞的主站必須從環(huán)中排除,新上電的主站必須加入邏輯環(huán)第2層的另一重要工作任務(wù)是保證數(shù)據(jù)的高度完整性。PROFIBUS在第2層按照非連接的模式操作,除提供點對點邏輯數(shù)據(jù)傳輸外,還提供多點通信,包括廣播和選擇廣播功能。
S7-1200 與 S7-300 之間的以太網(wǎng)通信方式比較多,可以采用ISO on TCP、TCP和 S7 的方式進行通信。在S7-1200 CPU 中采用ISO on TCP和TCP這兩種協(xié)議進行通信所使用的指令是相同的,都使用 T-block ( TSEND_C, TRCV_C, TCON, TDISCON, TSEN, TRCV ) 指令編程。S7-300 CPU一側(cè)如果使用的是CPU集成的PN接口,連接不在STEP7的NetPro中建立連接,而是使用西門子提供的OPEN IE 的方式來實現(xiàn)。
本文主要介紹了如何實現(xiàn)在S7-1200 和S7-300 CPU集成PN口之間的ISO on TCP通信,包括通信的基本步驟、配置及編程等內(nèi)容。具體的實現(xiàn)方法有多種,比如在S7-1200中可以使用不帶連接的通信指令(TCON, TDISCON, TSEN, TRCV),也可以使用帶連接的通信指令(TSEND_C, TRCV_C);在S7-300中可以采用功能塊編程的方式來實現(xiàn),也可以使用Open Communication Wizard工具(OPEN IE向?qū)В┑姆绞絹斫PEN IE的通信。
為了方便理解,本文在S7-1200中使用不帶連接的通信指令TCON, TDISCON, TSEN, TRCV,在S7-300側(cè)通過功能塊編程的方式來實現(xiàn)。
文檔編號 | 中文標題 |
A0426 | 西門子 S7-1200 PLC 技術(shù)參考Version 1.5 |
A0416 | S7-1200與S7-300 的以太網(wǎng)TCP 及ISO on TCP通信 |
A0421 | 如何實現(xiàn)兩個S7-1200 CPU之間的以太網(wǎng)通信 |
A0415 | 通過S7協(xié)議實現(xiàn)S7-1200 與S7-300的通信 |
A0414 | S7-1200基本以太網(wǎng)通信使用指南 |
A0284 | 使用西門子PLC集成的PN口實現(xiàn)S5 兼容通信使用入門 |
A0345 | 使用 Open Communication Wizard 建立開放式 ISO on TCP 通信 |
A0346 | 使用 Open Communication Wizard 建立開放式 UDP 通信 |
A0347 | 使用 Open Communication Wizard 建立開放式 TCP 通信 |
A0344 | S7-300和S7-400集成PN口的S7通信 |
A0334 | PN CPU/CP的開放式通訊-Open IE |
表1 下載中心文檔列表
2 軟硬件及所要完成的通信任務(wù)
2.1硬件設(shè)備
實驗的硬件設(shè)備:
1、S7-1200 CPU,CPU1212 AC/DC/RLY(6ES7 212-1BD30-0XB0)
2、S7-300 PN CPU,CPU317-2PN/DP(6ES7 317-2EH13-0AB0 V2.6.7)
3、PC機(帶以太網(wǎng)卡)
4、SCALANCE X216交換機,S7-1200、S7-300和PC通過交換機互連起來
5、TP以太網(wǎng)電纜
2.2 軟件環(huán)境
1、STEP7 Basic V10.5 SP2
2、STEP7 V5.4 SP5
3、通信所需的功能塊,請參見附件提供的例程 ”Sample_1 ( 50 KB ) ” 或參考下載中心文檔:《A0284 使用西門子PLC集成的PN口實現(xiàn)S5 兼容通信使用入門》提供的程序。下載鏈接:80490650
2.3 所要完成的通信任務(wù)
本例中所要完成的通信任務(wù)定義為:
1、 將S7-1200的發(fā)送數(shù)據(jù)塊DB3里的8個字節(jié)數(shù)據(jù)發(fā)送到S7-300的DB3中。
2、 將S7-300 DB3里接收到的8個字節(jié)數(shù)據(jù)再發(fā)送到S7-1200的接收數(shù)據(jù)塊DB4中。
3 S7-1200 CPU的組態(tài)編程
3.1創(chuàng)建新項目
1、打開STEP 7 Basic 軟件并新建項目
在STEP 7 Basic 的 “Portal View”中選擇“Create new project”創(chuàng)建一個新項目,項目名稱為“GS_ISO”。
2、添加硬件并命名PLC
然后進入 “Project view”,在“Project tree” 下雙擊 “Add new device”,在對話框中選擇所使用的S7-1200 CPU(6ES7 212-1BD30-0XB0)添加到機架上,設(shè)備名為 PLC_1,如圖1所示。
圖1 添加新的PLC站
為了編程方便,我們使用 CPU 屬性中定義的時鐘位,定義方法如下:
在“Project tree> PLC_1 > Device configuration” 中,選中 CPU ,然后在下面的屬性窗口中,“Properties > System and clock memory” 下,將系統(tǒng)位定義在MB1,時鐘位定義在MB0,如圖2所示。程序中我們主要使用 M0.3,它是以2Hz 的速率在0和1之間切換的一個位,可以使用它去自動激活發(fā)送任務(wù)。
圖2 系統(tǒng)和時鐘存儲器
3、為 S7-1200 CPU的PROFINET 通信口分配以太網(wǎng)地址
在 “Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現(xiàn)PROFINET 接口的屬性,在 “Ethernet addresses”下分配IP 地址為 192.168.0.2 ,子網(wǎng)掩碼為255.255.255.0,如圖3所示。
圖3為 S7-1200 CPU的PROFINET 接口分配IP地址
3.2調(diào)用并配置通信指令
1、在 PLC_1 的 OB1 中調(diào)用 “TCON”通信指令
進入“Project tree > PLC_1 > Program blocks > OB1” 主程序中,從右側(cè)窗口 “Instructions > Extended Instructions > Communications” 下調(diào)用 “TCON” 指令,并選擇 “Single Instance” 生成背景 DB塊,如圖4所示。
圖4 調(diào)用TCON指令
2、定義PLC_1 的 “TCON” 連接參數(shù)
PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“Properties > Configuration > Connection parameter”中設(shè)置,如圖5所示。
連接參數(shù)說明:
End point | :選擇通信伙伴,這里選擇“unspecified” |
Address | :通信伙伴S7-300站的IP地址“192.168.0.3” |
Connection type | :選擇通信協(xié)議為ISO on TCP |
Connection ID | :連接的地址 ID 號,這個 ID 號在后面的編程里會用到 |
Connection data | :創(chuàng)建連接時,系統(tǒng)會自動生成本地的連接 DB 塊,所有的連 接數(shù)據(jù)都會存在這個 DB 塊中。 |
| :選擇本地 PLC_1作為主動連接,S7-300 CPU作為被動連接 |
Address details | :設(shè)定 TSAP 地址這里本地設(shè)置成“PLC_1”, TSAP ID自動為“50.4C.43.5F.31”,伙伴方設(shè)置成不設(shè)置TSAP(ASCII),設(shè)置TSAP ID 為“E0.02.50.4C.43.5F.31”。 |
西門子6ES7331-1KF02-0AB0
圖4 調(diào)用TCON指令
2、定義PLC_1 的 “TCON” 連接參數(shù)
PLC_1 的 TCON 指令的連接參數(shù)需要在指令下方的屬性窗口“Properties > Configuration > Connection parameter”中設(shè)置,如圖5所示。
連接參數(shù)說明:
End point | :選擇通信伙伴,這里選擇“unspecified” |
Address | :通信伙伴S7-300站的IP地址“192.168.0.3” |
Connection type | :選擇通信協(xié)議為ISO on TCP |
Connection ID | :連接的地址 ID 號,這個 ID 號在后面的編程里會用到 |
Connection data | :創(chuàng)建連接時,系統(tǒng)會自動生成本地的連接 DB 塊,所有的連 接數(shù)據(jù)都會存在這個 DB 塊中。 |
| :選擇本地 PLC_1作為主動連接,S7-300 CPU作為被動連接 |
Address details | :設(shè)定 TSAP 地址這里本地設(shè)置成“PLC_1”, TSAP ID自動為“50.4C.43.5F.31”,伙伴方設(shè)置成不設(shè)置TSAP(ASCII),設(shè)置TSAP ID 為“E0.02.50.4C.43.5F.31”。 |
圖5 “TCON” 指令的連接參數(shù)
3、分配 “TCON” 的塊參數(shù)
在指令下方的屬性窗口“Properties > Configuration > block parameter”中設(shè)置,可以根據(jù)需要自己為“TCON” 塊相應(yīng)的輸入輸出參數(shù)。好參數(shù)的塊,如圖6所示。其中M8.0作為啟動連接的觸發(fā)位,連接ID = 1與連接參數(shù)里面的設(shè)置相同。
圖6 “TCON” 的塊參數(shù)
4、在 PLC_1 的 OB1 中調(diào)用 “TSEND” 發(fā)送通信指令
首先創(chuàng)建一個發(fā)送數(shù)據(jù)塊,通過 “Project tree > PLC_1 > Program blocks > Add new block”,選擇 “Data block” 創(chuàng)建 DB 塊,選擇尋址,點擊“OK”鍵,如圖7所示。
圖7 創(chuàng)建一個發(fā)送數(shù)據(jù)塊DB3
打開創(chuàng)建的發(fā)送數(shù)據(jù)塊,在數(shù)據(jù)塊中定義發(fā)送數(shù)據(jù)區(qū)為 8個字節(jié)的數(shù)組,如圖8所示。
圖8 創(chuàng)建發(fā)送數(shù)據(jù)區(qū)
然后在OB1 中調(diào)用“TSEND”發(fā)送通信指令,并為“TSEND”參數(shù)。使用M0.3( 2Hz 的時鐘脈沖)上升沿激活發(fā)送任務(wù),發(fā)送數(shù)據(jù)區(qū)為P# DB3.DBX0.0 BYTE 8,連接 ID = 1與連接參數(shù)里面的設(shè)置相同,發(fā)送長度LEN=8。分配好參數(shù)的“TSEND”塊如圖9所示。
圖9 調(diào)用“TSEND”發(fā)送通信塊
5、在 PLC_1 的 OB1 中調(diào)用“TRCV”接收通信指令
同樣,先創(chuàng)建一個接收數(shù)據(jù)塊DB4 ,如圖10所示。“TRCV”接收通信指令的調(diào)用方法與“TSEND” 發(fā)送通信指令的調(diào)用方法相同,M8.1作為接收指令的使能位,如圖11所示。
圖10創(chuàng)建接收數(shù)據(jù)區(qū)
圖11 調(diào)用“TRCV”接收通信塊
6、在 PLC_1 的 OB1 中調(diào)用 “TDISCON”通信指令
后,為了斷開通信鏈接,我們需要調(diào)用“TDISCON”通信指令,如圖12所示。
圖12 調(diào)用“TDISCON”通信塊
3.3下載程序
至此,S7-1200側(cè)的組態(tài)和編程都已經(jīng)完成,可以在項目編譯無錯誤后,直接下載到S7-1200 CPU中,并啟動CPU的運行。
4 S7-300 CPU的組態(tài)編程
S7-300帶PN接口的CPU支持ISO on TCP通信功能,通過該集成以太網(wǎng)接口組態(tài)ISO on TCP通信時,只能使用開放式通信的功能塊,這些的功能塊可以在STEP7 “ 通訊塊”的 “標準庫 ”中找到,如圖13所示。
圖13 S7-300 CPU通信指令庫
庫中提供了下列通信功能塊:
′> FB 65 "TCON",用于建立連接,連接時需要UDT65來提供參數(shù)
> FB 66 "TDISCON",用于終止連接
> FB 63 "TSEND",用于發(fā)送數(shù)據(jù)到S7站點、S5站點、PC站或者第三方設(shè)備
> FB 64 "TRCV" 用于從S7站點、S5站點、PC站或者第三方設(shè)備接收數(shù)據(jù)
要通過CPU 的 集成PN 接口實現(xiàn)開放的ISO on TCP通信,不能在Netpro網(wǎng)絡(luò)組態(tài)中直接建立連接,必須通過程序每個連接的參數(shù)。用于通信的FB標準功能塊,請參見附件提供的例程 ”Sample_1 ( 50 KB ) ” 或參考下載中心文檔《A0284 使用西門子PLC集成的PN口實現(xiàn)S5 兼容通信使用入門》提供的例程。下載鏈接:80490650
從附件提供的例程 ”Sample_1 ( 50 KB ) ” 中將把需要的程序塊拷貝到新建的項目中,包括:
> UDT 65 "TCON_PAR",存放用戶通信參數(shù)
> FB420 "SET_ISO_ENDPOINT" ,用于修改UDT65內(nèi)通信對象參數(shù)
> FC21, 被FB420調(diào)用
隨后,使用通信功能塊 FB65 "TCON"、FB66 "TDISCON"、FB63 "TSEND" 和 FB64 "TRCV" 完成程序的編寫。
4.1創(chuàng)建新項目
1、打開STEP7,新建一個項目
2、在項目中插入一個SIMATIC 300的站
3、組態(tài)硬件,插入一個CPU317-2PN/DP的CPU,并為PN接口分配IP地址“192.168.0.3”,如圖14所示。同時,在CPU的“Cycle/Clock Memory”屬性頁中MB0為時鐘存儲器,在程序中可以使用M0.3(2Hz 的時鐘脈沖)去自動激活發(fā)送任務(wù),如圖15所示。