(海思技術部LonWorks技術粉絲提供)
LONWORKS網絡技術在控制系統中引入了網絡的概念,基于該技術,可以方便的構建分布式網絡控制系統,并使得系統更高效、更靈活、更易于維護和擴展。LonWorks網絡技術具有以下特點:
(1)開放性和互操作性:LonTalk協議是開放的,而且對任何用戶都是對等的。LonTalk協議完整到任何制造商的產品都可以實現互操作。該技術提供的MIP(微處理器接口程序)軟件允許開發各種低成本網關,方便了不同系統的互聯,也使得系統具有高的可靠性。
(2)通信媒介:可采用包括雙絞線、電力線、無線、紅外、光纜等多種介質進行通信,且多種介質可以在同一網絡中混合使用。這一特性使得不同工業現場的不同設備實現互聯,增強了網絡的兼容性。
(3)網絡結構:能夠使用所有現有的網絡結構,如主從式、對等式以及客戶/服務式(Client/Server)。
(4)網絡拓撲:可以自由組合,支持總線型、星形、環型、自由拓撲型等網絡拓撲形式。尤其是自由拓撲形式使得網絡構建更為方便靈活。
(5)分布式處理:網絡上的每個節點都不依賴于其它設備獨立地接收、發送和處理網絡信息。這意味著LONWORKS控制網絡上的每個節點都可以進行決策和信息處理,而不依賴于計算機、PLC或其它形式的中央處理器。由于個別設備的故障并不會影響網絡中其它部分的工作,也使得LONWORKS控制網絡更加可靠。而如果是PLC或中央處理器出現故障就造成控制網絡的其它部分不能正常工作。
除上述特點外,LONWORKS控制網絡在功能上就具備了網絡的基本功能,它本身就是一個局域網,和LAN具有很好的互補性,又可方便的實現互聯,易于實現更加強大的功能。LONWORKS以其獨特的技術優勢,將計算機技術、網絡技術和控制技術融為一體,實現了測控和組網的統一,而其在此基礎上開發出的LONWORKS/IP功能將進一步使得LONWORKS網絡與以太網更為方便的互聯。
2、LONTALK協議
LONWORKS技術所使用的通信協議稱為LonTalk協議。LonTalk協議遵循由國際標準化組織(ISO)定義的開放系統互連(OSI)模型。它提供了OSI參考模型所定義的全部七層服務,支持靈活尋址。表2.1給出了對應七層OSI參考模型的LonTalk協議為每層提供的服務。
表2.1 LonTalk協議層
OSI層 |
目的 |
提供的服務 | |
7 應用層 |
應用兼容性 |
LONMARK對象,配置特性標準網絡變量類型,文件傳輸 | |
6 表示層 |
數據翻譯 |
網絡變量,應用消息,外來幀傳輸,網絡接口 | |
5 會話層 |
遠程操作 |
請求/響應,鑒別,網絡服務 | |
4 傳輸層 |
端端的可靠傳輸 |
應答消息,非應答消息,雙重檢查,通用排序 | |
3 網絡層 |
傳輸分組 |
點對點尋址,多點之間廣播式尋址,路由消息 | |
2 鏈路層 |
LLC子層 |
幀結構 |
幀結構,數據解碼,CRC錯誤檢查 |
MAC子層 |
介質訪問 |
P-堅持CSMA,沖突避免,優先級,沖突檢測 | |
1 物理層 |
物理連接 |
介質,電氣接口 |
LonTalk協議支持以不同通信介質分段的網絡,它支持的介質包括雙絞線、電力線、無線、紅外、同軸電纜和光纖。每個LONWORKS節點都需要物理地連接到信道(Channel)上,信道是數據包的物理傳輸介質;LONWORKS網絡由一個或多個信道組成。
不同信道通過路由器相互連接
由網橋或重復器連接的信道的集合稱為段(Segment)。節點可以看見相同段上的其它節點發送的包。而智能路由器則根據設置決定是否將數據包繼續向前傳送。故可用來分離段中的網絡交通,從而增加整個相同的容量和可靠性。
LonTalk地址唯一地確定了LonTalk數據包的源節點和目的節點(可以是一個或幾個節點),路由器也使用這些地址來選擇如何在兩個信道之間傳送數據包。
另外,每一個Neuron芯片有一個獨一無二的48位ID地址,這個ID地址是在Neuron芯片出廠時由廠方規定的。一般只在網絡安裝和配置時使用,可作為產品的序列號。
網絡通過的通信服務要使網絡同時實現高的有效性、快的響應時間、好的安全性以及高的可靠性是不可能的,實際網絡提供的通信服務只能是在這幾個方面折衷的結果。LonTalk協議提供了4種基本類型的報文服務:確認(Acknowledged)、請求/響應(Request/Response)、非確認重復(Unacknowledged Repeated)以及非確認(Unacknowledged)。使用確認服務是最可靠的,但是對于較大的組來說,卻比非確認或非確認重復服務需要使用更大的網絡帶寬。具有優先級的數據包將能夠保證這些數據包被及時的傳送,但是卻損害了其它較大的傳送。對一個對象增加證實(Authenticated)服務雖然增加了安全性,但完成一個證實卻比完成一個非證實事務所需的數據包數多了兩倍。
2.4.2 沖突
LonTalk協議使用其獨有的沖突避免算法,該算法具有在過載的情況下信道仍然能負載接近最大能力的通過量,而不是由于過多的沖突而使通過量降低。
LonTalk協議通過提供優先服務機制以改善對重要消息包的響應時間。協議允許用戶在信道上分配優先級時隙(Priority time Slots),它專門用于具有優先級的節點。信道上的每個優先級時隙對每個消息的發出額外附加有一定的時間(最小為2比特時間),從而換取一定的帶寬供信道上實現無競爭的優先訪問。附加的時間值大小與比特速率、振蕩器的精度以及收發器的需求有關。由于不存在競爭,配置優先級的節點相對于無優先級的節點的響應時間要好得多。優先級與沖突檢測的結合將獲得更優的響應時間。為每個節點分配優先級時隙的網絡管理工具可以保證節點在信道上被賦予一個特定的優先級時隙。節點只能在分配給它的優先級時隙發送它的所有賦予優先級的消息包。
2.4.4證實
LonTalk協議支持消息的證實服務。它允許消息的接收者確定發送者是否有權發送該消息。
LonTalk協議的MAC子層是OSI參考模型鏈路層的一部分。其所采用的算法是屬于CSMA(載波監聽多路訪問)家族的。CSMA算法要求網絡上的每一個節點在傳送報文之前,必須先偵聽信道,確認信道是空閑的。然而,一旦檢測到信道的空閑狀態,CSMA家族的每種算法的行為是不同的,按占用信道的方式,分以下三種:
(1)非堅持CSMA:一旦偵聽到信道空閑,立即發送;一旦發現信道忙,不再堅持偵聽,延時一段時間后再偵聽。缺點是不能將信道剛一變成空閑的時刻找出。
(2)l一堅持CSMA:偵聽到信道閑,立即發送;偵聽到信道忙,繼續偵聽,直至出現信道空閑。缺點是,若有兩個或更多的節點同時在偵聽信道,則發送的幀相互沖突,反而不利于吞吐量的提高。
(3)P一堅持CSMA:當偵聽到信道閑時,就以概率P發送數據,而以概率(1-P)延遲一段時間(端到端的傳播時延),重新偵聽信道。缺點是,即使有幾個節點要發送數據,因為P值小于1,信道仍然有可能處于空閑狀態。
由以上可見,由于隨機時隙數目的動態調整,實現了概率P值的動態調整。
LonTalk協議的鏈路層提供在子網內,鏈路層數據幀的幀順序的無響應傳輸。它提供錯誤檢測的能力,但不提供錯誤恢復能力,當一幀數據CRC校驗錯時,該幀被丟掉。
在直接互連模式下物理層和鏈路層接口的編碼方案是曼徹斯特編碼,在專用模式下根據不同的電氣接口采用不同的編碼方案。CRC校驗碼加在網絡層協議數據單元的最后,CRC采用的多項式是X16+X12+X5+1(標準CCITT CRC-16編碼)。
在網絡層,LonTalk協議提供給用戶一個簡單的通信接口,定義了如何接收、發送、響應等,在網絡管理上有網絡地址分配、出錯處理、網絡認證、流量控制,路由器的機制也是在這一層實現的。
對于網絡層協議數據單元地址格式,根據網絡地址分為五種,圖2.8為五種地址格式。在每一種地址格式源子網上,“0”意味著節點不知道其子網號。
LonTalk協議的核心部分是傳輸層和會話層。一個傳輸控制子層管理著報文執行的順序、報文的二次檢測。傳輸層是無連接的,它提供一對一節點、一對多節點的可靠傳輸。信息證實(Authentication)也是在這一層實現的。
會話層主要提供了請求/響應的機制,它通過節點的連接,來進行遠程數據服務(Remote servers),因此使用該機制可以遙控實現遠端節點的過程建立。LonTalk協議的網絡功能雖然是在應用層來完成的,但實際上也是由提供會話層的請求/響應機制來完成的。
表示層和應用層提供五類服務。
網絡變量的服務。當定義為輸出的網絡變量改變時,能自動地將網絡變量的值變成應用層協議數據單元下傳并發送,使所有把變量定義為輸入的節點收到該網絡變量的改變值。當收到信息時,能根據上傳的應用層協議數據單元判斷是否是網絡變量,以及是哪一個網絡變量并激活相應的處理進程。
顯示報文服務。將報文的目的地址、報文服務方式、數據長度和數據組織成應用層數據單元下傳發送,將發送結果上傳并激活相應的發送結果處理進程。當收到信息時,能根據上傳應用層協議數據單元判斷是否顯示報文,并能夠根據報文代碼激活相應的處理進程。
2.10 網絡管理和網絡診斷
LonTalk協議的網絡管理和網絡診斷提供了四類服務。
地址分配:分配所有節點的地址單元,包括域號、子網號、節點號以及所屬的組名和組員號,Neuron ID是不能分配的。
節點查詢:查詢節點的工作狀態以及一些網絡的通信的錯誤統計,包括通信CRC檢驗錯、通信超時等。
節點測試:發送一些測試命令來對節點進行測試。
設置配置路由器的配置表。
LONWORKS技術的核心是Neuron芯片或稱為神經元芯片。Neuron芯片內部固化了完整的LonTalk通信協議,確保節點間的可靠通信和互操作。
Neuron芯片在大多數LON節點中是一個獨立的處理器。若需要使節點具備更強的信號處理能力或I/O通道,可采用其它處理器來處理并由Neuron芯片交換數據,此時Neuron芯片只完成通信功能。
Neuron芯片內部有三個CPU:MAC CPU、網絡CPU和應用CPU。如圖2.12所示。CPU-1是MAC CPU,完成介質訪問控制(Media access control),處理LonTalk協議的第1和第2層,包括驅動通信子系統硬件和執行算法。CPU -1和CPU-2用共享存儲區中的網絡緩存進行通信,正確的對網上報文進行編解碼。CPU-2是網絡CPU,它實現LonTalk協議的第3到第6層,處理網絡變量、尋址、事務處理、權限證實、背景診斷、軟件計時器、網絡管理和路由等。同時,它還控制網絡通信端口,物理地發送和接收數據包。該處理器用共享存儲區中的網絡緩存區與CPU-1通信,用應用緩存區與CPU-3通信。CPU-3是應用CPU,它完成用戶的編程,其中包括用戶程序對操作系統的服務調用。
Neuron芯片通過11個I/O口(IO0~IO10)與外部設備相連,稱為應用I/O。應用I/O可配置選擇使用34種不同的I/O對象,從而借助于最小的外接電路實現靈活的輸入輸出功能3.4 服務引腳(Service Pin)
Service Pin是Neuron芯片中的一個非常重要的管腳,在節點的配置、安裝和維護時均需使用。該管腳既能輸入也能輸出。輸出時它通過一個低電平來點亮外部的LED,LED的不同點亮方式代表了不同Neuron芯片不同的工作狀態。輸入時,一個邏輯低電平使Neuron芯片傳送一個包括該節點48bit的Neuron ID的網絡管理信息。
Neuron芯片通信端口為5個管腳,為適合不同的通信介質可將5個管腳配置為3種不同的接口模式:單端(Single-ended)、差分(Differential)和專用模式(Special Purpose Mode)。對應于雙絞線介質則采用差分模式,編碼采用差分曼徹斯特編碼。
Neuron芯片可支持多種通信介質。如雙絞線、無線、紅外、光纖、同軸電纜等。所支持的網絡拓撲也各有不同。
在各種通信介質中,雙絞線以其高的性能價格比而應用最為普遍。Echelon公司提供的FTT-10A雙絞線變壓器耦合收發器支持總線型和自由拓撲型拓撲。其抗干擾能力強,可承受持續時間為60s的1000Vrms電壓,采用總線拓撲的網絡最長可達2000m,采用自由拓撲的網絡最長可達500m,滿足一般的工業應用,而且組網靈活。
Neuron C是以ANSI C為基礎,專門為Neuron芯片設計的編程語言。其中加入了通信、事件調度、分布數據對象和I/O功能,是編寫Neuron芯片應用程序的最為重要的工具。
應用程序可以定義一個特殊的靜態對象類——網絡變量,它可以是整型、字符型或結構等類型。一個網絡變量NV(Network Variable)是節點的一個對象,用于實現網絡上節點之間的互連。它可被定義為輸入也可被定義為輸出網絡變量每個節點最多可以定義62個(Neuron節點)到4096個(主機節點)網絡變量。網絡變量所產生報文的發送和接收不需要應用程序的干預,故又稱為隱式報文(Implicit Message)。
由于網絡變量的長度最多為31個字節,使得其應用受到限制,故此,Neuron C中又提供了顯式報文這一數據類型。顯式報文最長為228個字節。提供有請求/響應機制。某個節點發出請求消息能調動另一個節點做出相應的響應。從而實現遠程過程調用。顯式報文是實現節點之間交換信息的更為復雜的方法,編程人員必須在應用程序中生成、發送和接收顯式報文。
節點使用報文標簽(Message Tags)發送和接收報文。每個節點有一個默認的輸入報文標簽,同網絡變量一樣,必須在網絡安裝時建立輸入和輸出報文標簽之間的綁定。
在一個應用程序最多可定義15個軟件定時器對象,在這些定時器中可以分為兩類:毫秒定時器和秒定時器。毫秒定時器提供一個計數范圍為1~,<,/FONT>64,000ms的定時器,秒定時器則提供一個計數范圍為1~65535s的定時器。這些軟件定時器在網絡CPU上運行,和Neuron芯片的硬件定時器是分離的。
Neuron芯片的任務調度是由事件驅動的:當一個給定的條件判斷為“TRUE”時,與該條件有關的代碼體(任務)即執行。調度程序允許編程人員定義任務用以作為某類事件發生的結果,如輸入管腳狀態的改變、網絡變量的更新、定時器的溢出等。這些事件可以定義優先級,以使一些重要事件能夠優先得到響應。調度程序采用循環方式調度,如圖2.15所示。
事件是通過When語句來定義的,一個when語句包含一個表達式,當表達式為“TRUE”時,則表達式后面的任務被執行。
在Neuron C中定義了五類事件:系統級事件、輸入輸出事件、定時器事件、網絡變量和顯式報文事件、用戶自定義事件。
LNS(LONWORKS Network Service)是Echelon公司開發出來的LON網絡操作系統。它提供了一個強大的Client/Server(客戶/服務器)網絡框架。使用LNS所提供的服務,可以保證從不同網絡服務器上提供的網絡管理工具可以一起執行網絡安裝、網絡維護、網絡監測;而眾多的客戶則可以同時申請這些服務器所提供的網絡功能。
LNS包括三類設備:路由器設備(包括重復器、網橋、路由器和網關);應用節點;系統級設備(網絡管理工具、系統分析、SCADA站和人機界面)。
6、網絡管理
在LONWORKS網絡中,需要一個網絡管理工具,以用于網絡的安裝、維護和監控。Echelon公司提供了LonMaker for Windows軟件用于實現這些功能。其他公司也類似產品來實現這些功能。LonMaker for Windows是基于Visio開發的,網絡配置圖是以Visio圖的形式畫出,各種對象都作了相應的定義。網絡變量的連接關系表現為連線。
在節點建成以后,需經過分配邏輯地址、配置節點的屬性、進行網絡變量和顯式報文的綁定后,網絡方可運行;網絡安裝可通過Service Pin按鈕或手動輸入Neuron 芯片的物理ID來為節點注冊,LonMaker會為每一個節點分配一個邏輯地址,并配置相應屬性以及網絡變量和顯式報文的綁定信息。節點的安裝可在在線或離線的情況下進行。在線的情況下,節點配置信息即時的通過網絡寫入節點;離線的情況下,節點配置信息只寫入數據庫,網絡配置圖的每次更新只更新數據庫,而在網絡在線后一次寫入節點。
網絡運行后,還需要進行維護。維護包括:系統正常運行情況下的增加刪除設備以及改變網絡變量的連接關系、故障狀態下對錯誤設備的檢測和替換的過程。