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