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