近些年來,現場總線技術被廣泛地應用于工業(yè)過程控制領域。它具有實時性好、布線簡單、可靠性高的特點,比較適合工業(yè)環(huán)境。但是,它也有自己的缺點,如標準不統(tǒng)一,各個廠商各自為政;傳輸速率低,無法傳輸圖像和語音信息;網絡互連困難,無法直接與互聯(lián)網相連。這些缺點的存在,嚴重制約了現場總線技術的發(fā)展[1]。
當現場總線的發(fā)展遇到阻礙時,以太網技術卻得到了迅猛的發(fā)展,如今,在internet和辦公自動化領域,以太網可以說是無處不在。如果能將以太網技術成功應用于工業(yè)控制底層網絡,就可以打破傳統(tǒng)的工業(yè)控制網絡體系,實現工業(yè)控制網絡和辦公自動化網絡的無縫連接,實現真正意義上的管控一體化。本文結合現場總線與以太網的各自的優(yōu)點,提出一種新型的網絡流量控制算法,開發(fā)出與此相配套的網絡控制器。
1通訊機制
新型的通訊機制在網絡拓撲上采用總線型,所有的發(fā)送都是在樞紐控制器的控制下進行。只有得到命令幀的指定站點才可以啟動數據發(fā)送。系統(tǒng)設定一個循環(huán)周期t,控制節(jié)點按照優(yōu)先級從低到高輪詢各個站點,當輪詢時間大于t時,控制將停止這一周期的輪詢,直接進入下一個周期。需要注意的是:
1.對高優(yōu)先級的數據包,不管隊列中有多少個未發(fā)數據,都要確保發(fā)送完畢,即使周期超過t也要如此。
2.對于中優(yōu)先級和低優(yōu)先級的數據包,只有在上一優(yōu)先級的數據發(fā)送完全的情況下才能啟動發(fā)送,并且是限制型發(fā)送,一次只能發(fā)送隊列的前rp個數據。
利用matlab仿真的結果表明,即使在網絡負荷超載的情況下,網絡控制算法仍舊可以保證高優(yōu)先級的控制幀的發(fā)送,因此這個網絡控制算法是可行的。
2功能原理
網絡樞紐控制器是整個網絡體系的核心,它主要有以下兩個功能:一是網絡控制功能,即協(xié)調整個網絡的通訊步調,避免沖突的發(fā)生,保證重要信息的實時性。二是作為通訊網關,與內部網絡設備共享ip地址,提供內部網絡設備與外部internet的接口。
2.1實現控制功能所需要的設定
1.優(yōu)先權的等級分類。利用ip數據格式[1]中tos字段前3bit作為標志。
2.ip編址。假設所有的控制設備都處在一個內部網絡中,他們共享一個internet公網地址202.114.101.58,而內部網絡是以192.168.0.開頭的一系列內部地址。
3.控制幀格式??刂茙蔷W絡樞紐控制器控制整個網絡步調的數據幀,所有網絡節(jié)點都應該能收到這個數據幀,并且在它的指令下進行通訊。因此,控制幀必須是一個廣播幀,它的目標地址是局域網中的所有網絡設備。
在具體實現中,將控制指令封裝在一個udp廣播數據包中。它的格式如圖1所示:
圖1控制幀格式
命令:網絡樞紐控制器對網絡節(jié)點的發(fā)送的命令代碼,其中包括通訊復位,發(fā)送數據等。
設備編號:接收命令網絡設備的編號,它與內部ip地址相對應,如192.168.0.2表示2號設備,192.168.0.n表示n號設備。如果是對所有設備發(fā)送的命令,則置為0xff。
數據優(yōu)先級:如果命令表項表示允許發(fā)送命令,那么數據優(yōu)先級表項就表示對應網絡設備應該從對應的優(yōu)先級隊列中取出一幀數據發(fā)送。
為了保證控制幀正常發(fā)送,還需要在上層協(xié)議中設置如下表項:
1.將ethernet幀的目的地址設為0xff0xff0xff0xff0xff0xff,確保本以太網內的所有網卡都能接收到這幀數據。
2.將ip幀中的目的ip地址設為192.168.0.255,表示這是一個廣播幀。
3.填充tos為0x94,表示這是一個要求最高可靠性的控制幀。
2.2轉換表以及與商業(yè)以太網轉換表的區(qū)別
網絡樞紐控制器作為內部工業(yè)以太網與外部internet的橋梁,它的兩個網絡接口分別連接外部internet和內部網絡。網絡樞紐控制器不但要有轉發(fā)功能,而且還要內嵌nat[2](網絡地址轉換)功能,因此必須附帶地址轉換表。
這里不能采用商業(yè)以太網的動態(tài)轉換表模式,這是由工業(yè)以太網的特性決定的。首先,在工業(yè)以太網中,大部分的通訊請求都是從外部網絡發(fā)起的(如從外部監(jiān)控工業(yè)現場的參數),因此,采用動態(tài)轉換表就無法建立連接;其次,如果表項是動態(tài)的,它的可靠性就很難得到保證,如果分配算法有漏洞(例如udp連接,由于沒有握手協(xié)議,所以很難知道它什么時候開始,什么時候中止),這樣有可能會誤刪除正在連接的表項,使得通訊無法正常進行。所以在實際的實現中,采用靜態(tài)的轉換表,為每個可能的連接建立一個靜態(tài)表項,對于這個靜態(tài)的轉換表,是用專用的配置軟件在pc機上設置好,然后通過網絡下載到網絡樞紐控制器中,這樣網絡樞紐控制器就可以按照轉換表實現網關功能了。
3硬件實現
圖2是硬件的結構圖。整個網絡都在網絡樞紐控制器協(xié)調的步調下運作,它的反應速度越快,則網絡的空閑時間越短,網絡的吞吐量越大。因此,在這里選用ti的tms320vc5402[3]作為它的核心處理器。
以太網接口芯片選用realtek公司的rtl8019as,這是一款市場上isa網卡中選用率很高的接口芯片。一共使用了兩片這樣的芯片,一片用于和內部網絡通訊,另一片則用于與外部internet相連。
圖2網絡樞紐控制器硬件框圖
rtl8019as有三種工作方式:即插即用方式,跳線方式和免跳線方式。為了減少資源占用,這里選擇跳線方式。此時,rtl8019as的io地址由ios0-ios3腳決定。地址總線的sa5-sa19中除sa8和sa9接高電平外,其余都接低電平,sa0-sa7與dsp的地址總線的a8-a15相連,這樣,訪問dsp的相應io空間地址就相當于訪問兩塊以太網接口芯片中對應的寄存器,于是dsp的io地址就和兩片rtl8019as能建立地址映射關系。至此,通過訪問這些寄存器,就可以控制rtl8019as發(fā)送或接收數據。
此外,擴展一片片外隨機存儲器issi61lv6416,它是用來做通訊緩沖區(qū),暫時存放來不及處理的數據包。由于tms320vc5402內部沒有集成flash或eprom,因此,它不能自舉運行。于是采用hpi接口引導dsp,程序存放在單片機78e54b上。當系統(tǒng)上電時,78e54b通過hpi接口將程序寫入到tms320vc5402的片內ram中,然后啟動它,這樣dsp就開始工作了。
4軟件編寫
實現網絡控制功能要求反應速度一定要快,因此這部分程序放在中斷中完成。在硬件設計中,把第一片rtl8019as的中斷與dsp的int0相連,把第二片的與int1相連。因為第一片與內部網絡相連,所以,實現網絡控制控制功能的程序主要在int0中完成。圖3是int0中斷響應程序的框圖。
圖3int0中斷響應程序
系統(tǒng)共有兩片轉發(fā)緩沖區(qū),緩沖區(qū)1用來暫存從內部對外的轉發(fā)數據,而緩沖區(qū)2用來暫存從外部對內部的數據轉發(fā),一塊發(fā)送數據的同時,另一塊填裝數據,提高了效率。
為了保證網絡控制功能的實時性,防止中斷沖突,簡化程序結構,網關功能的這部分程序就用查詢方式實現??驁D如圖4所示:
圖4網關程序框圖
需要特別注意的是,在重定向ip地址之后,一定要重新計算校驗和。因為不論是ip頭還是tcp和udp,ip地址都在他們的校驗項之內。如果改變了ip地址,那么校驗和就要重新計算,否則,接收到這些數據包的設備就會認為校驗錯誤,從而拒絕接受。
5結論
網絡控制器雖然是最核心的設備,但是其功能的發(fā)揮還有賴于工業(yè)以太網上相關控制設備針對整體的控制策略作出相應的改變。工業(yè)以太網中為了生產,執(zhí)行任務的控制設備,要在網絡樞紐控制器的協(xié)調下完成通訊功能,包括數據采集前端、輸出前端、pid前端、執(zhí)行機構前端等。這需要它們速度達到一定的要求,因為當它收到控制節(jié)點的發(fā)送指令后,就要迅速將數據包送出,此時它的任何遲延都是整個網絡的遲延。