1 引言
全集成自動化是當前新型的完成自動化任務的方案,通過單一全集成自動化系統能解決幾乎所有的自動化任務,僅在一個平臺上即可提供全部功能。通訊網絡是全集成自動化系統中的關鍵部分,在工業企業中得到廣泛的應用。SIEMENS S7工業通訊網絡能滿足寬范圍的不同性能和應用要求,能在工廠的不同部門,不同自動化站以及通過不同的級進行數據交換。因此,國內愈來愈多的行業如冶金、電力、輕紡、啤酒、煙草等行業均采用其產品。西門子工控產品在我國有著很高的市場占有率,它的通信及網絡產品有著引導世界工控技術潮流的作用,研究西門子工控產品及通訊技術的實際應用問題有著廣泛普遍的重要意義。
以太網是當前最為廣泛的計算機網絡技術。首先,它有廣泛的技術支持,已經成為網絡通訊領域事實上的標準,因此我們對以太網技術很熟悉,可以降低系統開發、培訓及其維護費用;再者,以太網可以達到很高的通訊速率,所以利用以太網的這些優點,結合PLC控制器,就可以構筑全分散、全開放的工業控制系統,當前很多廠家提供把PLC和以太網相結合的產品,如西門子公司的PLC產品系列。西門子提供的強大的工業以太網解決方案就是針對大數據量交換以及實時性要求比較高的網絡環境的一種高級網絡應用,IT技術的應用體現了以太網發展的新趨勢,同時也為工業以太網的發展提供了更為廣闊的空間。
2 工業以太網
2.1 工業以太網簡介
所謂工業以太網,一般來講是指技術上與商用以太網(即IEEE802.3標準)兼容,但在產品設計時,在材質的選用、產品的強度、適用性以及實時性、可互操作性、可靠性、抗干擾性和本質安全等方面能滿足工業現場要求。
2.2 阻礙以太網在工業環境中應用的技術問題逐步得到解決
以太網是為信息網絡而設計的,并沒有考慮適用于工業環境的要求,特別是采用CSMA/CD對共享媒體進行訪問控制信息傳送時間存在不確定性,并且沒有優先級,無法滿足工業控制的實時性要求。然而近年來以太網標準的進步使得阻礙以太網在工業環境中應用的難題逐步得到解決。具體表現在:
1)以太網的通訊速率一再提高,為以太網進入控制領域奠定了基礎。對于同樣的通信量通訊速率的提高意味著網絡負荷的減輕,時間確定性的提高。10Mbps的以太網傳送1518字節需要時間不大于1.2毫秒,而1000Mbps的以太網只要12微妙,在以太網上傳輸多媒體信息要求時延不大于20-30毫秒。隨著百兆網(100Mbps)和千兆網(1Gbps)的普遍使用,現在萬兆網(10Gbps)業已問世,萬兆網的標準IEEE802.3ae已于2003年6月18日正式頒布。IEEE關于以太網實時能力的標準IEEE802.1D/P以及關于交換式以太網技術的標準IEEE802.1Q早再1998年底就得到驗證。
2)由于終端設備和交換機端口間可采用全雙工通信線路,以及交換機內部多對端口之間的并行交換,因此全雙工交換式以太網徹底擺脫了CSMA/CD的限制,克服了因CSMA/CD導致的確定性和實時性差的缺點,消除了以太網用于工控領域的最大障礙。交換式以太網具有傳輸帶寬高,網絡容量大,組網方便,低交換延時等優點,可滿足一般實時控制的需要。同時交換式網絡可支持虛擬局域網,從而降低組網成本,并提高網絡靈活性。
3)以太網電纜由早期的粗同軸電纜、細同軸電纜發展到現在的雙絞線電纜、光纜,大大提高了網絡的傳輸距離和抗干擾能力。
3.1 SIMATIC NET簡介
SIEMENS公司1998年推出的SIMATIC NET是按照IEEE802.3、IEEE802.3u以太網標準設計,支持10Mbps、100Mbps傳輸速率的一種工業控制網絡。SIMATIC NET能以最高100Mbps的傳輸速率實現PLC之間以及PLC和智能設備(PC、處理器)之間的數據通信。并通過TCP/IP協議,特別是SMTP(簡單郵件傳輸協議)用于E-Mail和HTTP(超文本傳輸協議)用于訪問Web瀏覽器,實現工業控制與信息網絡系統的集成。SIMATIC NET是全集成自動化系統的一個重要組成部分,為完整的工業通信提供網絡和部件。它主要由工業以太網、PROFIBUS、AS-I、MPI多點接口和點對點接口構成。
SIMATIC NET提供三個層次的網絡通信,即IT通信、數據通信、過程或現場通信。IT通信通過工業以太網將SIMATIC集成到現場的辦公自動化環境內;數據通信實現自動化設備之間或自動化設備和智能設備(PC、處理器)之間的數據交換;過程和現場通信用來將執行器和傳感器連接到自動化系統。SIMATIC NET提供同軸網絡、雙絞線網絡、光纖網絡三種網絡,并為每種網絡形式提供了完備的網絡部件。
3.2 SIMATIC NET工業以太網
SIMATIC NET工業以太網是用于大型集散控制系統的高速網絡系統,最高通信速率可達100Mbps,通訊距離為1.5Km(同軸電纜)或4.5Km(光纖)網絡可連接多于1000個節點。它是基于IEEE802.3的工業標準總線系統,采用CSMA介質訪問控制協議。節點之間通過連接方式進行數據傳輸,由主動站建立連接,被動站加以確認。PG/PC和PLC之間可建立無窮多個連接,而每個PLC最多可建立16個PLC-PLC連接。每一個連接最多一次可發送240個字節;傳送的數據為:I/O地址,中間寄存器和DB數據塊。可按位、字節、字、雙字等方式讀寫。
工業以太網由獨立的網段組成,每個網段最多500m,最多可連接100個站點,網段之間用中繼器連接。兩站之間最多接兩個中繼器,構成1000米得遠程中繼站。每個數據終端設備DTE通過耦合器連接到網上,DTE可以是工作站PC和編程器PG,S7、S5、M7等系列得PLC設備,以及其他支持ISO傳輸的非西門子系統。網絡通訊接口設備為自帶CPU的CP(通訊處理器)模塊,在它的固件中固化了ISO參考模型的1到7層協議。CP完成所有的通訊任務,可大大減輕DTE的CPU負擔。S7-300一般采用CP343-1板,S7-400一般采用CP443-1板。PC/PG上一般裝有網卡CP1613,也可以用CP1413、CP1511、CP1411。
3.3 S7通訊
S7通訊是SIMATIC S7 PLC之間得最佳化通訊協議,它也允許用戶通過S7協議連接PC和工作站。每個作業的用戶的最大用戶數據量可到64K(中等到大型的數據量)。可以被MPI、PROFIBUS和工業以太網所支持,是西門子公司開發的基于應用層的一個協議。S7通訊提供了簡明、強有力的通訊服務和與網絡無關的用戶接口,用于工業以太網、PROFIBUS和MPI。需要安裝SIMATIC Net軟件,目前最新版本是V6.2。
4 數據通訊的實現
S7通信協議不公開,管理計算機和調試計算機上第三方軟件編制的程序如何實現PC機與西門子S7 300/400 PLC之間的信息通訊是個棘手的問題。為了允許PC機和工作站上的應用程序與西門子S7系列產品進行S7通訊,西門子公司提供了一個SAPI-S7應用程序接口,通過它可以靈活而方便地跟西門子S7系列產品進行通信。安裝SIMATIC Ner軟件后,會在系統system32目錄下生成一個s732.dll文件,該動態鏈接庫提供了大量基于WindowsNT、Window95/98、Windows3.11和MS-DOS的函數,這樣就使得用戶解決PLC和PC機的數據交換和數據處理問題變為可能。通信編程包括兩個部分:(1)CP連接組態(2)PLC與上位機通信編程。
4.1 CP連接組態
可采用step7軟件或step7軟件中用于工業以太網的NCMS7軟件對CP進行網絡組態。通訊處理器CP可連接PC,PC/PG上一般裝網卡CP1613。在Windows控制面板下的“set PC/PG”下安裝所用網卡驅動程序,并設協議、站號、波特率、是否為主站,完成對VFDs(Virtual Field Device)和S7 connections的配置。
4.2 PLC和上位機的通訊編程
S7-300/400PLC有以下各類資源:①輸入點I:接收外部開關量信號 ②輸出點Q:輸出給外部的開關量信號 ③內部輔助點M:存放所需中間結果 ④時間繼電器T ⑤計數器 ⑥數據塊DB:存放程序數據的存儲區域 ⑦外設輸入PI:主要接收模擬量輸入信號經A/D轉換⑧外設輸出PQ:給出模擬兩輸出值。要讀/寫這些資源,首先要建立PLC和PC機的連接。
4.2.1 初始化與PLC的連接
SAPI-S7應用程序接口提供的管理服務模塊(Administrative Services)提供了一些可供讀出配置信息和登錄/退出通訊系統的函數,下面作一些簡要介紹:
? s7_get_device() :通過此函數,用戶程序可以查詢所有已安裝的CP的CP名。
? s7_get_vfd() :通過此函數,用戶程序可以查詢任一指定CP的所有已配置的VFD。
? s7_init():通過此函數,用戶程序可登錄通訊系統。
? s7_get_cref() :此函數提供了一個指向所選S7 connection名的指針。
? s7_get_conn():此函數返回已登錄VFD的所有S7 connection名和指向他們的指針。
? s7_shut():通過此函數,用戶程序可退出通訊系統。
一個應用程序可以登錄一個或多個CP的若干個VFD,只有當應用程序登錄CP及其所選的VFD,在配置期間指定給該VFD的所有連接才是有效的。
4.2.2讀/寫PLC內部資源
初始化與PLC的連接成功后,就可以對PLC進行讀寫操作。對PLC存儲區即數據塊DB的讀寫是實現監控的最基本操作。SAPI-S7應用程序接口提供的變量服務模塊(Variable Services)提供了一些讀寫函數,由于篇幅有限,現選一些經常用到的函數作一些簡單介紹。
? s7_cycl_read():此函數通知服務方準備對單存儲單元循環讀一個變量。
? s7_get_cycl_read_ind():此函數接收來自服務方發送的數據。
? s7_multiple_read_req():此函數通知服務方準備對多存儲單元讀一個或多個變量。
? s7_get_multiple_read_cnf():此函數接收來自服務方的一個或多個變量的值。
? s7_multiple_write_req():此函數通知服務方準備對多存儲單元寫一個或多個變量。
? s7_get_multiple_write_cnf():此函數接收來來自服務方的執行上述寫請求的結果。
需要特別注意的是:S7 300/400PLC遵循“高地址、低字節”的規律,這與某些習慣用法不同。例如在C++Builder6中,變量類型為word的變量,它的數據存放順序是“低地址,低字節”的規律。因此在對所讀取的數據進行操作或給PLC數據塊中寫數據字時要進行相應的處理。
[table][/table] 為解決上位機不能因前臺的信息處理而中斷后臺的監聽等問題,可采用多線程編程技術,將對PLC內部資源的讀/寫功能模塊交給一個后臺線程來完成。多線程編程技術能提高CPU利用率,加快信息處理,提高系統的實時性,在由多臺計算機組成的分布式實時控制系統中應用多線程技術是完全必要的。
4.2.3 后臺讀/寫線程模塊部分代碼
·
·
case S7_ABORT_IND:
Synchronize(my_get_abort_ind);
break;
case S7_VFD_STATE_CNF:
Synchronize(my_get_vfd_state_cnf);
Synchronize(my_abort);
break;
case S7_VFD_USTATE_IND:
Synchronize(my_get_vfd_ustate_ind);
break;
default :
·····
}
}while(ret != last_event_expected)
5 總結
運用C++Builder6.0編寫的PLC控制調試程序,具有用戶界面友好,人機交互方便,數據庫功能強大靈活的特點,具有較強的通用性和實用性。通過調用S7通訊提供的SAPI-S7應用程序接口實現PC機與S7300/400PLC基于工業以太網的數據通訊,不僅數據傳輸率快,而且數據傳輸正確率高。在對PLC控制系統的調試過程中大大縮短了調試周期,提高了工作效率。此通訊技術的實現對西門子工控產品的應用以及工業以太網的推廣應用有著廣泛普遍的重要意義。
責任編輯:gt
-
plc
+關注
關注
5013文章
13317瀏覽量
463924 -
西門子
+關注
關注
94文章
3044瀏覽量
116015 -
工業以太網
+關注
關注
10文章
621瀏覽量
42349
發布評論請先 登錄
相關推薦
評論