核心提示:LonWorks網(wǎng)絡(luò)技術(shù)作為一種典型的控制網(wǎng)絡(luò),其互操作性的實(shí)現(xiàn)獨(dú)具特色。網(wǎng)絡(luò)變量是LonWorks網(wǎng)絡(luò)技術(shù)專(zhuān)有的特征,了解網(wǎng)絡(luò)變量是如何定義、如何應(yīng)用的對(duì)掌握LON控制網(wǎng)絡(luò)技術(shù)至關(guān)重要。
關(guān)鍵詞:LonWorks,網(wǎng)絡(luò)變量,LON節(jié)點(diǎn),LonWorks產(chǎn)品,網(wǎng)絡(luò)管理工具,報(bào)文診斷,以太網(wǎng)適配器,LonTalk協(xié)議,現(xiàn)場(chǎng)總線(xiàn)
一、概述
LON控制網(wǎng)絡(luò)的互操作性體現(xiàn)在多個(gè)方面,網(wǎng)絡(luò)變量即是其中的一個(gè)重要方面。使用網(wǎng)絡(luò)變量是LonWorks網(wǎng)絡(luò)節(jié)點(diǎn)間通訊的最簡(jiǎn)單、最常用、最直接的方法。
網(wǎng)絡(luò)變量通過(guò)提供節(jié)點(diǎn)相互之間明確的網(wǎng)絡(luò)接口而極大地提高了節(jié)點(diǎn)產(chǎn)品的適應(yīng)性,不同產(chǎn)品可以應(yīng)用于同一個(gè)系統(tǒng)。網(wǎng)絡(luò)變量使得系統(tǒng)的組態(tài)編程和節(jié)點(diǎn)的安裝運(yùn)行非常方便,并且能有效地節(jié)省用戶(hù)程序存儲(chǔ)空間,還可以將用戶(hù)從通訊程序的編寫(xiě)中解放出來(lái),專(zhuān)用于具體的應(yīng)用。目前LonWorks應(yīng)用在多數(shù)情況下均使用網(wǎng)絡(luò)變量。
二、LonWorks網(wǎng)絡(luò)變量定義
LonWorks現(xiàn)場(chǎng)總線(xiàn)提出了節(jié)點(diǎn)連接的“對(duì)象”概念,即網(wǎng)絡(luò)變量(NV-Network Variable)。一個(gè)網(wǎng)絡(luò)變量即是節(jié)點(diǎn)的一個(gè)對(duì)象,LonWorks網(wǎng)絡(luò)節(jié)點(diǎn)之間的聯(lián)系主要是通過(guò)網(wǎng)絡(luò)變量的聯(lián)系實(shí)現(xiàn)的。
每個(gè)LonWorks節(jié)點(diǎn)可以定義62至4096個(gè)網(wǎng)絡(luò)變量。網(wǎng)絡(luò)變量可以定義為輸出或者輸入類(lèi)型。當(dāng)輸出網(wǎng)絡(luò)變量被節(jié)點(diǎn)應(yīng)用賦值后,LonTalk協(xié)議將此修改后的新值自動(dòng)加上地址信息,構(gòu)成隱式報(bào)文,透明地傳遞到與之共享數(shù)據(jù)的其它節(jié)點(diǎn)(賦值給節(jié)點(diǎn)上的輸入網(wǎng)絡(luò)變量),所以網(wǎng)絡(luò)變量又稱(chēng)隱式消息。節(jié)點(diǎn)利用網(wǎng)絡(luò)變量進(jìn)行隱式通訊時(shí),報(bào)文的實(shí)際建造和發(fā)送發(fā)生在后臺(tái),它包含3個(gè)層次的軟件:應(yīng)用層、網(wǎng)絡(luò)層和介質(zhì)訪(fǎng)問(wèn)控制層(MAC)。這些軟件層與LonTalk協(xié)議相對(duì)應(yīng),并且由Neuron芯片上不同的處理器處理。
當(dāng)一個(gè)節(jié)點(diǎn)向一個(gè)輸出網(wǎng)絡(luò)變量賦值時(shí),實(shí)際上是應(yīng)用程序向網(wǎng)絡(luò)變量寫(xiě)入一個(gè)新值,然后調(diào)度程序構(gòu)建一個(gè)網(wǎng)絡(luò)變量報(bào)文并傳送到網(wǎng)絡(luò)層,網(wǎng)絡(luò)層將地址信息加入該報(bào)文再傳送至MAC層。MAC層將更復(fù)雜的信息加入此報(bào)文,并通過(guò)物理通信通道發(fā)送該報(bào)文。接收節(jié)點(diǎn)接收到這個(gè)報(bào)文后,首先由MAC層使該報(bào)文生效,然后網(wǎng)絡(luò)層檢查包含在報(bào)文中的地址信息,看地址是否匹配。若匹配則將網(wǎng)絡(luò)變量信息傳給調(diào)度,再由調(diào)度程序允許應(yīng)用程序使用新值;若地址不匹配則擯棄此報(bào)文。
三、LonWorks網(wǎng)絡(luò)變量的綁定方式
LonWorks節(jié)點(diǎn)網(wǎng)絡(luò)層和MAC層軟件存于LonWorks固件中,對(duì)于用戶(hù)而言是隱型的,節(jié)點(diǎn)間的數(shù)據(jù)通信可以理解為應(yīng)用層數(shù)據(jù)的通信。用戶(hù)應(yīng)用程序無(wú)須考慮發(fā)送和接收問(wèn)題,網(wǎng)絡(luò)變量的傳遞不經(jīng)過(guò)應(yīng)用層,用戶(hù)所要做的僅僅是使用網(wǎng)絡(luò)變量綁定器連接需要共享數(shù)據(jù)的節(jié)點(diǎn)。各個(gè)應(yīng)用節(jié)點(diǎn)可以獨(dú)立定義,然后通過(guò)簡(jiǎn)單地連接或者斷開(kāi)已存在的某些連接,構(gòu)成新的LonWorks應(yīng)用。這使得開(kāi)發(fā)LonWorks網(wǎng)絡(luò)應(yīng)用非常簡(jiǎn)單,同時(shí)節(jié)省開(kāi)發(fā)周期。
網(wǎng)絡(luò)變量可以是整數(shù)、布爾數(shù)或字符串等,用戶(hù)可以完全自由地在應(yīng)用程序中定義各種類(lèi)型的網(wǎng)絡(luò)變量。只有數(shù)據(jù)類(lèi)型相同的網(wǎng)絡(luò)變量之間才能建立輸入和輸出的連接。為增加網(wǎng)絡(luò)的互操作性,LonTalk協(xié)議預(yù)先定義了標(biāo)準(zhǔn)網(wǎng)絡(luò)變量(SNVT)。目前已經(jīng)定義的標(biāo)準(zhǔn)網(wǎng)絡(luò)變量有200種以上,覆蓋了各種應(yīng)用領(lǐng)域,用戶(hù)應(yīng)盡量選用標(biāo)準(zhǔn)網(wǎng)絡(luò)變量以利于互操作。
網(wǎng)絡(luò)變量的連接由網(wǎng)管工具的綁定器來(lái)實(shí)現(xiàn)。該綁定器可以是LonBuilder網(wǎng)管工具中的一部分,也可以是LonMaker安裝工具或其它網(wǎng)絡(luò)管理工具的一部分。綁定器首先辨別節(jié)點(diǎn)輸入、輸出網(wǎng)絡(luò)變量的類(lèi)型,然后找到具有共享網(wǎng)絡(luò)變量的所有節(jié)點(diǎn),再對(duì)這些節(jié)點(diǎn)的相應(yīng)網(wǎng)絡(luò)變量的網(wǎng)絡(luò)變量配置表及地址表進(jìn)行修改,即確定信息流的正確流向,從而完成網(wǎng)絡(luò)變量的綁定。
四、LonWorks網(wǎng)絡(luò)管理工具的應(yīng)用
設(shè)計(jì)網(wǎng)絡(luò)管理工具的軟硬件架構(gòu),不僅需要考慮基本的功能需求,還應(yīng)易于實(shí)現(xiàn)且費(fèi)用低廉。一般計(jì)算機(jī)與LonWorks網(wǎng)絡(luò)的連接可以通過(guò)多種途徑實(shí)現(xiàn):ISA卡、PCI卡、PC卡(PCMCIA卡)、RS232串行口、RS485串行口、USB口、以太網(wǎng)口等。
以太網(wǎng)通訊速率高,LON網(wǎng)絡(luò)以太網(wǎng)適配器在工業(yè)測(cè)控網(wǎng)絡(luò)中應(yīng)用前景廣闊。LON控制網(wǎng)絡(luò)以太網(wǎng)適配器作為網(wǎng)絡(luò)管理工具,一般僅在網(wǎng)絡(luò)需要配置時(shí)、配置需要改變時(shí)、或者節(jié)點(diǎn)發(fā)生故障時(shí),才與網(wǎng)絡(luò)進(jìn)行通訊。在系統(tǒng)正常工作之后,網(wǎng)管工具可以從系統(tǒng)中摘除,而不影響系統(tǒng)的運(yùn)行及性能。
LON網(wǎng)絡(luò)RS232適配器、LON網(wǎng)絡(luò)RS485適配器、LON網(wǎng)絡(luò)USB適配器等網(wǎng)管工具,同樣能完成網(wǎng)管工具的所有功能。主機(jī)通過(guò)串口發(fā)送指令到適配器,觸發(fā)其網(wǎng)管內(nèi)核的相應(yīng)網(wǎng)管功能,然后由適配器將網(wǎng)管報(bào)文發(fā)送至LonWorks網(wǎng)絡(luò);從LonWorks網(wǎng)絡(luò)返回的信息,再由適配器通過(guò)串口傳回主機(jī)。
五、LonWorks網(wǎng)絡(luò)管理與報(bào)文診斷
LonWorks網(wǎng)絡(luò)管理工具中的網(wǎng)管內(nèi)核利用網(wǎng)絡(luò)管理與報(bào)文診斷實(shí)現(xiàn)。LonTalk協(xié)議預(yù)先定義了47種網(wǎng)絡(luò)管理及診斷消息類(lèi)型,能夠?qū)崿F(xiàn)完善的網(wǎng)絡(luò)管理與診斷服務(wù),用于節(jié)點(diǎn)的安裝配置、軟件的下載及網(wǎng)絡(luò)的診斷等。利用這些消息報(bào)文,可以較為容易地開(kāi)發(fā)出適用于中小系統(tǒng)的LonWorks網(wǎng)絡(luò)管理軟件,實(shí)現(xiàn)諸如搜索與查詢(xún)網(wǎng)絡(luò)節(jié)點(diǎn)、查詢(xún)?cè)O(shè)置節(jié)點(diǎn)狀態(tài)、查詢(xún)?cè)O(shè)置節(jié)點(diǎn)地址表信息及網(wǎng)絡(luò)變量配置表信息、查詢(xún)?cè)O(shè)置節(jié)點(diǎn)域地址、查詢(xún)節(jié)點(diǎn)的網(wǎng)絡(luò)變量值、綁定網(wǎng)絡(luò)變量等各項(xiàng)網(wǎng)絡(luò)管理功能。
利用網(wǎng)絡(luò)管理和報(bào)文診斷實(shí)現(xiàn)的網(wǎng)絡(luò)管理診斷工具,不僅易于開(kāi)發(fā),節(jié)省開(kāi)發(fā)時(shí)間和成本,并且能較好地融合不同生產(chǎn)廠(chǎng)商的不同產(chǎn)品。這些網(wǎng)絡(luò)管理與診斷報(bào)文的接收過(guò)程無(wú)需經(jīng)過(guò)節(jié)點(diǎn)應(yīng)用層,響應(yīng)報(bào)文的構(gòu)建同樣在網(wǎng)絡(luò)層實(shí)現(xiàn)。這一方面提高了報(bào)文響應(yīng)速度,另一方面使得不同廠(chǎng)商產(chǎn)品融匯于一個(gè)系統(tǒng)時(shí),能夠?qū)ζ溥M(jìn)行統(tǒng)一管理。不管節(jié)點(diǎn)產(chǎn)品的具體應(yīng)用代碼和應(yīng)用領(lǐng)域,只要是LonWorks節(jié)點(diǎn),都能響應(yīng)網(wǎng)絡(luò)管理和診斷報(bào)文。
網(wǎng)絡(luò)管理和診斷報(bào)文的傳輸服務(wù)可以是請(qǐng)求/響應(yīng)模式,對(duì)于無(wú)需返回?cái)?shù)據(jù)的報(bào)文,也可使用確認(rèn)、非確認(rèn)或重發(fā)服務(wù)。
構(gòu)造網(wǎng)絡(luò)變量的監(jiān)視器時(shí)用到的網(wǎng)管報(bào)文主要是網(wǎng)絡(luò)變量取出(Network Variable Fetch)管理報(bào)文。而實(shí)現(xiàn)網(wǎng)絡(luò)變量綁定器則需要更新網(wǎng)絡(luò)變量配置(Update Net Variable Config)和更新地址(Update Address)網(wǎng)絡(luò)管理報(bào)文。
六、網(wǎng)絡(luò)變量綁定器的實(shí)現(xiàn)方式
網(wǎng)絡(luò)變量綁定器的內(nèi)核構(gòu)建主要是利用更新網(wǎng)絡(luò)變量配置(Update Net Variable Contig)和更新地址(Update Address)這兩種網(wǎng)絡(luò)管理報(bào)文。
上層軟件需要一個(gè)用于維護(hù)網(wǎng)絡(luò)上節(jié)點(diǎn)信息的數(shù)據(jù)庫(kù)LM—MDB。其中的網(wǎng)絡(luò)變量連接表(nvlkinfo)包括了網(wǎng)絡(luò)變量連接使用的所有信息:網(wǎng)絡(luò)變量連接索引、名稱(chēng)、節(jié)點(diǎn)地址、網(wǎng)絡(luò)變量索引、網(wǎng)絡(luò)變量選擇器、地址表索引、地址類(lèi)型、組大小、網(wǎng)絡(luò)變量域地址等基本信息。
網(wǎng)絡(luò)變量的連接定義為一個(gè)輸出網(wǎng)絡(luò)變量與一個(gè)或多個(gè)輸入網(wǎng)絡(luò)變量的集合。一個(gè)網(wǎng)絡(luò)變量在nvlkinfo表中占據(jù)一個(gè)記錄單元,記錄字段描述了該網(wǎng)絡(luò)變量的詳盡信息。連接成功后,該次連接的所有網(wǎng)絡(luò)變量信息追加人nvlkinfo表。連接前需要進(jìn)行約束關(guān)系檢查,即檢查nvlkinfo表中的網(wǎng)絡(luò)變量是否與新連接的網(wǎng)絡(luò)變量存在連接沖突。如果存在連接沖突則報(bào)告錯(cuò)誤并終止網(wǎng)絡(luò)變量的綁定過(guò)程。
節(jié)點(diǎn)間網(wǎng)絡(luò)變量的綁定過(guò)程即是網(wǎng)絡(luò)變量配置表和地址表信息的設(shè)置過(guò)程。網(wǎng)絡(luò)變量配置表主要設(shè)置網(wǎng)絡(luò)變量選擇器的值,以及網(wǎng)絡(luò)變量?jī)?yōu)先級(jí)、方向、使用的服務(wù)類(lèi)型、是否是自綁定網(wǎng)絡(luò)變量、是否需要認(rèn)證、使用的地址表索引等。地址表主要設(shè)置地址類(lèi)型、組大小、節(jié)點(diǎn)ID或組成員ID、節(jié)點(diǎn)子網(wǎng)或組ID、各種定時(shí)器值及重發(fā)次數(shù)等。這些信息的確定需要結(jié)合nvlkinfo表進(jìn)行,以免發(fā)生選擇器重復(fù)等錯(cuò)誤。
七、如何實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)變量的監(jiān)視
LonWorks節(jié)點(diǎn)的固定只讀數(shù)據(jù)結(jié)構(gòu)(read-0nly-data)中有一個(gè)單元nv-fixed,是nv-fixed-strnct類(lèi)型指針。該指針指向節(jié)點(diǎn)第一個(gè)網(wǎng)絡(luò)變量固定結(jié)構(gòu),此結(jié)構(gòu)包括網(wǎng)絡(luò)變量字節(jié)長(zhǎng)度及網(wǎng)絡(luò)變量在內(nèi)存中的地址信息。用戶(hù)可以通過(guò)此地址間接得到網(wǎng)絡(luò)變量的數(shù)值。但更簡(jiǎn)單直接的方法是:用戶(hù)使用網(wǎng)絡(luò)變量存取報(bào)文(Network Variable Fetch)讀取網(wǎng)絡(luò)上任何一個(gè)節(jié)點(diǎn)的任何網(wǎng)絡(luò)變量。
所有LonWorks節(jié)點(diǎn)均有一個(gè)外部接口文件(XIF文件)。XIF文件中明確了節(jié)點(diǎn)網(wǎng)絡(luò)變量及顯式報(bào)文標(biāo)簽的所有信息。對(duì)于網(wǎng)絡(luò)變量,這些信息包括名稱(chēng)、索引、數(shù)組大小、是否可綁定、方向、服務(wù)類(lèi)型、認(rèn)證、優(yōu)先級(jí)、數(shù)據(jù)類(lèi)型、元素?cái)?shù)目及各元素的詳細(xì)信息等。通過(guò)此信息可以對(duì)取回的網(wǎng)絡(luò)變量字節(jié)數(shù)組進(jìn)行轉(zhuǎn)換,從而得到網(wǎng)絡(luò)變量的具體工程值。
除使用網(wǎng)絡(luò)管理報(bào)文實(shí)現(xiàn)網(wǎng)絡(luò)變量監(jiān)視器外,用戶(hù)還可以通過(guò)網(wǎng)絡(luò)變量類(lèi)型報(bào)文實(shí)現(xiàn)此功能,前提是用戶(hù)需要明確該節(jié)點(diǎn)的網(wǎng)絡(luò)變量配置表中的網(wǎng)絡(luò)變量選擇器值,這種方法的使用需要更多的了解神經(jīng)元芯片的低層知識(shí)。