摘 要:通過對PROFINET IO概念的介紹,以及對PROFINET非實(shí)時報文和實(shí)時報文在以太網(wǎng)及交換機(jī)中的傳輸時間的研究,得出不同組態(tài)距離的IO設(shè)備的刷新時間,從而正確設(shè)置組態(tài)參數(shù),避免了由于刷新時間和看門狗時間設(shè)置不當(dāng)而導(dǎo)致的設(shè)備故障。
關(guān)鍵詞:PROFINET IO;刷新時間;實(shí)時性;響應(yīng)時間
PROFINET是PROcess、Field和NET的縮寫,是基于工業(yè)以太網(wǎng)的開放的、標(biāo)準(zhǔn)的、實(shí)時的通信協(xié)議,可以應(yīng)用TCP/IP協(xié)議和IT標(biāo)準(zhǔn),與現(xiàn)場設(shè)備實(shí)現(xiàn)無縫集成,可以說PROFINET是工業(yè)以太網(wǎng)應(yīng)用在現(xiàn)場級的一種實(shí)施協(xié)議。
PROFINET主要有兩種通信方式[1]:
(1)PROFINET IO實(shí)現(xiàn)控制器與分布式I/O之間的實(shí)時通信;
(2)PROFINET CBA實(shí)現(xiàn)分布式智能設(shè)備之間的實(shí)時通信。
從PROFINET的角度來看,PROFINET IO是在工業(yè)以太網(wǎng)上實(shí)現(xiàn)模塊化、分布式應(yīng)用的通信概念。通過PROFINET IO,分布式I/O和現(xiàn)場設(shè)備能夠集成到以太網(wǎng)通信中。
1 PROFINET IO的基本概念
1.1 PROFINET IO的工程模型
(1)IO控制器
IO控制器[2]一般是可編程控制器(例如PLC),它能夠執(zhí)行自動化程序。其功能相當(dāng)于PROFIBUS類型1的主站。
(2)IO設(shè)備
IO設(shè)備是連接到PROFINET網(wǎng)絡(luò)中的現(xiàn)場分布式I/O。
(3)IO監(jiān)視器
IO監(jiān)視器[2]是一種工程設(shè)備,通常為PC、HMI或可編程控制器,用于IO控制器和IO設(shè)備的調(diào)試和診斷,在運(yùn)行期間連接IO監(jiān)視器,通常只是暫時性地用于調(diào)試和故障處理。IO監(jiān)視器的功能相當(dāng)于PROFIBUS類型2的主站。
1個PROFINET IO系統(tǒng)應(yīng)該包括至少1個IO控制器和1個IO設(shè)備。
1.2 PROFINET IO的數(shù)據(jù)流
PROFINET IO通信站點(diǎn)的數(shù)據(jù)交換是通過標(biāo)準(zhǔn)通道[3](基于UDP/IP)和實(shí)時通道完成的。在這些通道里,數(shù)據(jù)使用不同的協(xié)議進(jìn)行傳輸。例如啟動時從站參數(shù)是由主站通過UDP協(xié)議傳遞的,設(shè)備地址名字的分配是通過DCP協(xié)議完成的,這些都屬于標(biāo)準(zhǔn)數(shù)據(jù),也可以稱為非實(shí)時(NRT)數(shù)據(jù)。而周期數(shù)據(jù)[4]、報警數(shù)據(jù)是通過實(shí)時協(xié)議傳送的,被稱為實(shí)時數(shù)據(jù)。
1.3 組態(tài)PROFINET IO及其重要概念
1.3.1 組態(tài)PROFINET IO
PROFINET IO組態(tài)如圖1所示,主站是CPU319-3 PN/DP,從站有3個IO設(shè)備,分別為ET-200S,ET-200pro和ET-200eco,還可以繼續(xù)添加IO設(shè)備,SIMATIC 產(chǎn)品系列的 PROFINET 設(shè)備具有PROFINET接口[5](帶或不帶集成交換機(jī))。帶集成交換機(jī)的 PROFINET 設(shè)備通常具有2個端口,用于網(wǎng)絡(luò)的線性總線結(jié)構(gòu)。 同時還提供有3個或更多端口的 PROFINET 設(shè)備以連接樹型拓?fù)洹S蓤D1可見,CPU319通過雙絞屏蔽線與設(shè)備3(ET-200S)連接,不同的IO設(shè)備之間通過它們自帶的交換機(jī)接口進(jìn)行連接。

1.3.2 PROFINET IO中的不同時間概念
(1)發(fā)送時鐘(Send clock)[6]:IRT或RT通信中2個連續(xù)間隔之間的時間段。發(fā)送時鐘是用于交換數(shù)據(jù)的可能的最短傳輸時間;
(2)更新時間(Update time):更新時間=發(fā)送時鐘× Factor。
在此時間間隔之內(nèi),IO 控制器/IO 設(shè)備為 PROFINET IO 系統(tǒng)中的IO設(shè)備/IO 控制器提供新的數(shù)據(jù)??梢詾槊總€IO設(shè)備單獨(dú)組態(tài)發(fā)送周期,并定義將數(shù)據(jù)從 IO 控制器發(fā)送到 IO 設(shè)備(輸出)的時間間隔以及將數(shù)據(jù)從 IO 設(shè)備發(fā)送到IO控制器的時間間隔(輸入)。更新時間在SETP7組態(tài)中可以設(shè)置。
(3)Factor:Fatcor是放大倍數(shù),為2n,也稱減速比(Reduction Ratio)[7]
(4)看門狗時間 (Watchdog xime)
通過STEP7,采用更新時間的整倍數(shù)來設(shè)置看門狗時間,該時間也可由用戶修改。如果在看門狗時間內(nèi)IO控制器沒有為IO設(shè)備提供輸入/輸出數(shù)據(jù),IO設(shè)備將出現(xiàn)故障并給出替換值。這種情況將作為站故障報告給IO控制器。
2 研究PROFINET IO實(shí)時性的必要性
首先,在運(yùn)動控制系統(tǒng)等對實(shí)時性要求很高的領(lǐng)域,用戶需要知道PROFINET IO數(shù)據(jù)循環(huán)的周期,以便更好地進(jìn)行生產(chǎn)。其次,如果在STEP7工程工具中對PROFINET IO設(shè)備的更新時間和看門狗時間設(shè)置不合適,設(shè)備就會在運(yùn)行時出現(xiàn)莫名其妙的故障。所以,對PROFINET IO實(shí)時性的研究是很有必要并且具有現(xiàn)實(shí)意義。
3 PROFINET IO的實(shí)時性
3.1 標(biāo)準(zhǔn)以太網(wǎng)的幀結(jié)構(gòu)
標(biāo)準(zhǔn)以太網(wǎng)的幀如表1所示??梢钥闯?,一個標(biāo)準(zhǔn)以太網(wǎng)幀數(shù)據(jù)大小為64 B~1 500 B??焖僖蕴W(wǎng)(100 Mb/s)傳輸1 518 B數(shù)據(jù)的時間是120 μs,傳輸64 B數(shù)據(jù)的時間是5 μs。

3.2 交換機(jī)制
SIMATIC 中的交換機(jī)通過 PROFINET 上的2個機(jī)制滿足實(shí)時要求。
(1) 存儲與轉(zhuǎn)發(fā)S&F(Store and Forward)[4]
使用存儲轉(zhuǎn)發(fā)方法時,交換機(jī)將完整地存儲消息幀,并將它們排成一個隊(duì)列。 如果交換機(jī)支持國際標(biāo)準(zhǔn) IEEE 802.1Q,則根據(jù)其在隊(duì)列中的優(yōu)先級存儲數(shù)據(jù)。 這些消息幀隨后將有選擇性地轉(zhuǎn)發(fā)給可訪問已尋址節(jié)點(diǎn)的特定端口(存儲轉(zhuǎn)發(fā))。
對于存儲轉(zhuǎn)發(fā),數(shù)據(jù)經(jīng)過交換機(jī)時先存儲進(jìn)行校驗(yàn),然后由交換機(jī)根據(jù)地址表再進(jìn)行轉(zhuǎn)發(fā)。
(2)直通交換方式(Cut Through)[4]
在直通交換方式過程中,并不是將整個數(shù)據(jù)包臨時存儲在緩沖區(qū)中,而是在目標(biāo)地址和目標(biāo)端口已經(jīng)確定后,馬上將整個數(shù)據(jù)包直接傳送到目標(biāo)端口。這樣通過交換機(jī)傳送數(shù)據(jù)包所用的時間是最小的,且不受消息幀長度的影響。當(dāng)目標(biāo)段與下一個交換機(jī)的端口之間的區(qū)段已被占用時,數(shù)據(jù)將“根據(jù)優(yōu)先級的存儲和轉(zhuǎn)發(fā)過程”臨時存儲。
根據(jù)西門子交換機(jī)SCALANCE X200手冊,64 B的數(shù)據(jù)S&F延遲時間是10 μs,1 500 B數(shù)據(jù)S&F延遲時間是130 μs。
根據(jù)IEEE802.1Q定義的以太網(wǎng)報文的優(yōu)先級,在標(biāo)準(zhǔn)以太網(wǎng)報文中加入4B來標(biāo)識報文的優(yōu)先級,凡是支持IEEE802.1Q的交換機(jī)都會對這些報文進(jìn)行優(yōu)先級的識別和處理,以圖2所示為例說明,交換機(jī)的端口2收到報文1并進(jìn)行存儲轉(zhuǎn)發(fā),這時端口3收到報文2和報文3,由于報文1正在被發(fā)送,即使它是非實(shí)時的報文也不能被中斷,由于報文2的優(yōu)先級低于報文3的優(yōu)先級,所以報文3會被優(yōu)先發(fā)送出去,這時從端口1發(fā)送的順序就是報文1、報文3、報文2。

3.3 PROFINET IO實(shí)時數(shù)據(jù)傳輸?shù)难舆t時間
假設(shè)組態(tài)ET200分布式I/O模塊不是很多的情況下,這樣一個最小的以太網(wǎng)報文64 B完全可以控制I/O,那么就認(rèn)為PROFINET報文的大小為64 B。根據(jù)快速以太網(wǎng)(100 Mb/s)傳輸64 B數(shù)據(jù)的時間是5 μs,經(jīng)過n臺交換機(jī)的傳輸時間約為n×5 μs。根據(jù)SCALANCE X200手冊,64 B的數(shù)據(jù)S&F延遲時間是10 μs,經(jīng)過n臺交換機(jī)的延遲時間約為n×10 μs。那么RT數(shù)據(jù)的延遲時間為n×(10+5)μs。
但是還需要考慮另一種情況,如果RT數(shù)據(jù)經(jīng)過每臺交換機(jī)準(zhǔn)備發(fā)送,恰好每臺交換機(jī)都正在轉(zhuǎn)發(fā)一個最大的非實(shí)時(NRT)以太網(wǎng)報文,RT的數(shù)據(jù)必須等待非實(shí)時(NRT)數(shù)據(jù)發(fā)送完畢然后再進(jìn)行傳輸,當(dāng)然,這種情況是極特殊的。這樣通過計(jì)算快速以太網(wǎng)傳輸1 518 B數(shù)據(jù)的時間是120 μs,最大非實(shí)時數(shù)據(jù)(NRT)以太網(wǎng)報文經(jīng)過n臺交換機(jī)的傳輸時間約為n×120 μs。根據(jù)SCALANCE X200手冊,1 500 B的數(shù)據(jù)S&F延遲時間是130 μs,經(jīng)過n臺交換機(jī)的延遲時間約為n×130 μs。這種情況,經(jīng)過n臺交換機(jī)一個RT數(shù)據(jù)總的延遲時間約為n×(10+5)μs+n×(130+120)μs。如果存在64臺SCALANC X200交換機(jī)串聯(lián),則“最遠(yuǎn)”現(xiàn)場IO的延遲時間約為64×(130+120)+64×(10+5)=16.96 ms。
這樣根據(jù)所計(jì)算的結(jié)果,如果通過STEP7設(shè)置最遠(yuǎn)設(shè)備的刷新時間PROFINET IO網(wǎng)絡(luò)中,一個IO控制器控制64個IO設(shè)備時,Step7默認(rèn)計(jì)算控制每一個IO的Update time為1 ms。而在PROFINET網(wǎng)絡(luò)中,不可避免地存在非實(shí)時(NRT)數(shù)據(jù),例如通過SFB52/53讀寫數(shù)據(jù)記錄,通過SNMP診斷和維護(hù)PROFINET網(wǎng)絡(luò)、PG診斷、視頻或音頻等。
如果使用默認(rèn)設(shè)置的1 ms,則“最遠(yuǎn)”現(xiàn)場IO可能出現(xiàn)莫名其妙的丟站現(xiàn)象,可能會被認(rèn)為是電磁干擾等造成的,從而無法排除現(xiàn)場故障。如果存在上述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),最好設(shè)置“最遠(yuǎn)”現(xiàn)場IO的刷新時間在8 ms以上,或者調(diào)整看門狗時間,即調(diào)整刷新時間的倍數(shù),使IO控制器和IO設(shè)備不會檢測到錯誤。
根據(jù)這種分析方法,對任何的PROFINET網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)都可以通過上述的方法確定PROFINET IO設(shè)備的刷新時間,避免出現(xiàn)IO錯誤。
如果使用SCANLANCE X IRT交換機(jī)串聯(lián),由于IRT交換機(jī)使用Cut Through的處理數(shù)據(jù)方式,這樣數(shù)據(jù)的延遲時間會明顯縮短。
如果使用帶有PN接口的ET200串聯(lián),由于集成ERTEC芯片,同樣適用Cut Though的數(shù)據(jù)處理方式,這樣數(shù)據(jù)的延遲時間會大大縮短。
由交換機(jī)的機(jī)制和數(shù)據(jù)在網(wǎng)絡(luò)介質(zhì)中傳輸造成的延遲可以看出,距離主站組態(tài)距離不同的IO設(shè)備數(shù)據(jù)更新時間是不同的,距離主站越遠(yuǎn)的設(shè)備,IO數(shù)據(jù)更新時間越長,所以必須要設(shè)定相應(yīng)的看門狗時間,以避免因?yàn)榈竭_(dá)看門狗時間數(shù)據(jù)未更新而造成設(shè)備故障誤報。
使用IRT(等時實(shí)時)通信可以有效地減少數(shù)據(jù)在交換機(jī)上的延遲,因?yàn)镮RT數(shù)據(jù)經(jīng)過交換機(jī)使用的是Cut Through方式。
參考文獻(xiàn)
[1]崔堅(jiān),李佳,楊光. 西門子工業(yè)網(wǎng)絡(luò)通訊指南(下冊)[M].北京:機(jī)械工業(yè)出版社, 2005:199-201.
[2]RAIMOND P, MARK M,湯亞鋒. 西門子PROFINET工業(yè)通信指南 [M].北京:人民郵電出版社,2007:46-48.
[3]西門子公司. Siemens PROFINET系統(tǒng)說明[M]. 北京:西門子公司,2008:18-20.
[4]陽憲惠. 工業(yè)數(shù)據(jù)通信與控制網(wǎng)絡(luò)[M]. 清華大學(xué)出版社,2003: 39-40.
[5]習(xí)博,方彥軍, 工業(yè)以太網(wǎng)中網(wǎng)絡(luò)通信技術(shù)的研究.微計(jì)算機(jī)信息[J]. 2005(2-0):2-3.
[6]WILLIAM H M. ETHERNET/IP: open, available and based on modern technology. The Industrial Ethernet. 2002(1): 6-7.
