美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 >

類型分類:
科普知識
數據分類:

基于LNS的LonWorks網絡數據監控接口開發

發布日期:2022-04-18 點擊率:106

  • 關鍵詞: VC++ LonWorks
  • 摘要:本文介紹了用Visual C++ 6.0開發工具,在LNS環境下,開發LonWorks網絡數據監控接口的方法,舉例闡述了軟件實現過程。對于相關系統的設計、開發具有一定的參考價值。

1  引言
    近年來,現場總線技術迅猛發展,取代傳統的集中式控制系統已成必然。LonWorks技術是美國ECHELON公司在1991年推出的一種控制局域網絡,它以其優秀的分布處理能力、開放性、互操作性、多媒介適應能力以及多網絡拓撲結構等特性適應了未來發展對測控網絡的要求,成為眾多總線中的佼佼者。與其它現場總線相比,它具有組網方便,通訊速率快,不局限于通訊介質等優點。目前其在國內的應用非常廣泛,工程實例遍及樓宇控制,智能小區,工廠,礦井監控等場合,是一種具有良好發展前景的總線。
2  LNS開發接口與開發工具
    LNS(LonWorks Network Services)是ECHELON提供的一個專為LonWorks網絡服務的網絡操作系統。LNS封裝了對LonWorks網絡的各種操作,如:網絡安裝、網絡維護、變量連接等。在Windows環境下,LNS提供了基于ActiveX和COM組件方式的開發接口。這兩種方式在功能和性能上都沒有什么差異,而ActiveX使用起來更為簡便,一般也不需要開發人員了解很多OLE方面的知識,因而更易于被接受。本文所列舉的實例采用的就是ActiveX方式。
    采用ActiveX方式開發LonWorks網絡通信接口可選擇的開發工具十分豐富。Visual C++ 6.0目前仍然是開發自動化軟件的主流工具之一。當在VC環境下用ActiveX接口開發LonWorks網絡通信接口程序時,在實現過程和方法上與其它語言差別不大。只是在一些與VC語言特性相關的環節上,如果處理不當,就會影響接口程序的健壯性、穩定性。 
    LNS由LNS Server、LNS Object Server COM Component、Data Server和Network Interface幾個主要部分組成,提供了從網絡變量監測到網絡管理和維護等完整的功能接口。在開發LonWorks網絡數據監控接口程序時,涉及的只是其中的數據監控部分的功能。
3  LNS實現監控的過程
   LNS提供了兩種網絡監控方式,一種是監控集(Monitor set)方式,一種是單點(Single point)方式。兩種方式都是以監控點(Monitor points)為基本單位。一個監控點對應一個網絡變量或應用消息。
    監控集建立后就被保存在Data Sever中,即使應用程序關閉也仍然存在。單點方式每次都需要應用程序重新創建,退出時釋放。監控集方式適用于監控任務比較繁重的場合,單點方式適合監控任務較輕,點數較多的情況。
   無論是監控集或是單點方式,都要使用監控點。監控點有以下幾種監控方式:顯式讀寫、隱式綁定、查詢、顯示綁定。
   對于顯式讀寫方式,接口程序可以直接讀寫監控點的數值。在隱式綁定方式下,可以將一個監控點與一個節點的網絡變量綁定,當網絡變量變化時,會用事件NvMonitorUpdateEvent通知接口程序,接口程序根據消息參數可以取得更新的數據。當使用查詢方式時,每隔一個周期就觸發一次NvMonitorUpdateEvent事件。當使用顯式綁定方式時,對應設備結點的一個或多個網絡變量,要在上位機上創建并綁定一個網絡變量,而這個網絡變量又可以用其它三種方式進行監控。這種方式主要為了實現用一個監控點同時監測多個結點網絡變量。
   這幾種方式分別適用于不同的場合。查詢方式適用于監控任務繁重,但對數據采集的實時性要求不高的場合。隱式綁定適用于監控任務較輕,但數據變化要求實時處理的場合。當現場數據變化頻繁時,用顯式讀寫或查詢方式會導致應用程序的運行速度緩慢。
    本文列舉的實例采用的是監控集方式,監控點采用的是隱式綁定方式以獲得較好的實時性和較高的效率。
4  接口程序的設計與實現
    在安裝了Echelon的LNS Application Developers Kit開發包之后,就可以使用開發包中提供的lnsobjectserver控件了。最簡單的方法是在一個對話框資源上插入這個控件,然后用這個對話框創建一個類,將創建監測集、獲取監控點數據等各種操作全都封裝在這個類里,以供接口程序的其它模塊調用。本文實例中創建了一個名為CObjServerDlg的類。這個類提供實現以下幾個最主要的接口。
1)、對LNS對象服務器進行初始化的接口。
在這個接口時里,具體實現的內容包括:
設置對象服務的用戶模式(單用戶或多用戶);
設置遠程或本地方式;
打開服務器;
設置網絡接口,打開網絡;
設置系統;
設置網絡服務設備;
打開系統;
設置通道;
得到監控集對象;
設置監控集的屬性;
獲得包含要監控的網絡變量的設備對象;
將要監控的網絡變量添加到監控點中;
打開監控集。
    調用lnsobjectserver控件方法可以逐步實現上述初始化過程。需要注意的是VC對異常情況的處理,不進行異常或處理不當會導致接口程序出現各種莫名錯誤。下面舉例說明:
void CObjServerDlg::InitObjServer()
{
        m_ObjSvr.SetRemoteFlag(FALSE);
        m_ObjSvr.SetSingleUserMode(FALSE);
        m_ObjSvr.Open();
        if (!m_ObjSvr.GetIsOpen())
        {
                ShowEvent("創建LNS Server失敗!");
                return;
        }
        //設置網絡
        LcaNetworks Networks(m_ObjSvr.GetNetworks());
    try
        {
                //在獲取網絡對象時要捕獲異常
                m_ActiveNetwork = Networks.GetItem(COleVariant(m_csNetworkName));
            ASSERT (m_ActiveNetwork.m_lpDispatch != NULL);
        }
        catch (COleDispatchException *pE)
        {
                //對異常的正確處理
                if (LCA_ERR_RANGE_START+LCA_OBJECT_NOT_FOUND ==
                                                                        pE->m_scError + OLE2LNS_CONVERSION)
                {
                        CString csEvent;
                        csEvent.Format("網絡%s不存在!", m_csNetworkName);
                        ShowEvent(cs);
                }
                else
                        ShowEvent(pE->m_strDescription);
                pE->Delete();
                return;
        }
        ......
        //其它部分代碼
}
2)、處理NvMonitorUpdateEvent事件消息。當網絡變量變化時,LNS會發送NvMonitorUpdateEvent消息通知接口程序。在這個消息函數中會將數值變化的監控點、數據點、源地址以參數的形式傳遞過來。通過這些參數可以獲取變化數據的原始值和格式化值。這里需要注意的是如果LNS用的是VT_BSTR格式傳值,在獲取變化的數值后,必須正常釋放資源。否則接口程序就會持續不斷地占用系統內存,直至內存耗盡。下面舉例說明:
//  將格式化的變化值賦給一個VARIANT型變量
VARIANT NvFmtValue = UpdateDataPoint.GetFormattedValue();       
if (NvFmtValue.vt == VT_BSTR)
{
                CString csNvFmtValue = NvFmtValue.bstrVal;
                ShowVaule(csNvFmtValue);
                SysFreeString(NvFmtValue.bstrVal);        // 必須正確釋放內存資源
}
3)、實現對監控點進行寫操作的接口。
    寫操作和讀操作的過程一樣,也涉及使用原始數值格式和格式化數值格式的選擇。
按照格式化數值格式進行寫入時過程比較簡單,示例代碼如下:
LcaDataPoint DataPoint = NvMonitorPoint.GetDataPoint();//得到要寫入的數據點對象
ASSERT(DataPoint.m_lpDispatch != NULL);
DataPoint.SetFormattedValue(COleVariant(csWriteData));
                //csWriteData是一個CString類型的變量,代表寫入的數值
    如果按照原始格式進行寫操作,要注意的是LNS要求使用一種“VT_ARRAY | VT_UI1”型的VARIANT變量作為寫入值,示例代碼如下:
LcaDataPoint DataPoint = NvMonitorPoint.GetDataPoint();//得到要寫入的數據點對象
ASSERT(DataPoint.m_lpDispatch != NULL);
SAFEARRAY SafeArray;
SafeArray.cDims = 1;
SafeArray.fFeatures = 128;
SafeArray.cbElements = 1;
SafeArray.cLocks = 0;
SafeArray.rgsabound[0].cElements = nWrtDataLen;
SafeArray.rgsabound[0].lLbound = 1;
SafeArray.pvData = pszWriteData;//表示寫入值的字符串指針
VARIANT NvRawValue;
NvRawValue.vt = VT_ARRAY | VT_UI1;
NvRawValue.parray = &SafeArray;
DataPoint.SetRawValue(NvRawValue);
if(!DataPoint.GetAutoWrite())
        DataPoint.Write();
5  結束語
    本文介紹了在LNS環境下,開發LonWorks網絡數據監控接口的方法。并結合VC編程語言的特點,著重說明在一些關鍵環節上的處理方法。可為其他設計、開發相關系統的開發人員提供參考。
  
參考文獻
[1]  ECHELON公司。LNS for Windows Programmers Guide,2000。
[2]  雷剛,呂國強。基于LNS和COM的LonWorks網絡監控軟件開發
  



下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        免费精品视频一区| 国产九色精品成人porny| 91精品欧美久久久久久动漫| 色激情天天射综合网| 午夜精品一区二区在线观看 | 国产一区免费在线| 国产成人精品日本亚洲11| av蓝导航精品导航| 久久av一区二区三区漫画| 久久人人97超碰人人澡爱香蕉| 欧美三级网色| 一本久久精品一区二区| 欧美丝袜丝交足nylons| 欧美videossexotv100| 国产精品污网站| 亚洲一区日韩精品中文字幕| 美女视频网站久久| 不卡视频一二三| 久久久99国产精品免费| 色久综合一二码| 欧美电影免费观看高清完整版| 国产欧美一区视频| 亚洲成av人片在线| 粉嫩蜜臀av国产精品网站| 国产午夜精品在线| 一本大道av伊人久久综合| 91精品福利在线一区二区三区 | 日韩欧美国产综合| 欧美国产日韩亚洲一区| 亚洲国产日韩a在线播放| 经典三级视频一区| 国产99在线播放| 色网综合在线观看| 久久影音资源网| 香蕉成人啪国产精品视频综合网 | 午夜精品福利一区二区三区蜜桃| 久久99精品国产.久久久久久| av成人老司机| 五月天丁香综合久久国产| 欧美一区二区日韩一区二区| 中文字幕日韩一区二区| 日韩1区2区日韩1区2区| eeuss鲁片一区二区三区| 日韩欧美一区二区三区四区五区| 91精品国产91热久久久做人人 | 国产成人aaa| 欧美日韩喷水| 日韩视频免费观看高清完整版 | 国产欧美综合在线观看第十页| 三级亚洲高清视频| 97久久精品午夜一区二区| 亚洲欧美日韩精品久久久| 欧美成人bangbros| 亚洲v精品v日韩v欧美v专区| av一区二区不卡| 91精品91久久久中77777| 欧美经典三级视频一区二区三区| 免费av网站大全久久| 国语精品中文字幕| 欧美一区二区三区小说| 五月天亚洲婷婷| 精品卡一卡二| 久久久久久久av麻豆果冻| 久久99蜜桃精品| 日韩亚洲不卡在线| 国产精品欧美一区喷水| 成人免费高清在线观看| 欧美亚洲图片小说| 亚洲第一会所有码转帖| 国产福利久久精品| 精品日韩在线观看| 国产剧情一区在线| 91国偷自产一区二区三区成为亚洲经典| 国产精品久久久久一区二区三区共| 国产成人精品亚洲777人妖| 一本到不卡精品视频在线观看 | 日本一区二区动态图| 国产乱人伦偷精品视频免下载| 亚洲蜜桃av| 一区二区三区波多野结衣在线观看| 99在线观看视频| 精品国产伦一区二区三区观看方式| 激情综合网激情| 欧美在线小视频| 日本中文字幕一区二区有限公司| 欧美日韩一区二区三区在线观看免 | 久久一日本道色综合| 国产精品一品二品| 欧美色老头old∨ideo| 日韩和的一区二区| 亚洲福利av在线| 亚洲综合久久久| 日本不卡一区| 一区二区三区久久久| 欧美精品一区三区在线观看| 中文字幕视频一区| 久久精品aaaaaa毛片| 国产精品伦理一区二区| 国产精品一区二区av| 国产免费观看久久| 国产精品免费在线播放| 国产精品萝li| 久久久久久久有限公司| 亚洲人成亚洲人成在线观看图片 | 久久久三级国产网站| 97国产精品videossex| 精品99久久久久久| 91女神在线视频| 国产精品毛片无遮挡高清| 久久av免费一区| 一区二区三区在线播放| 亚洲日本无吗高清不卡| 免费在线观看精品| 欧美日韩黄色一区二区| 国产精品一区不卡| 精品粉嫩aⅴ一区二区三区四区| 91偷拍精品一区二区三区| 中文字幕av不卡| 精品无码久久久久国产| 亚洲综合久久久久| 91久久精品日日躁夜夜躁欧美| 国产美女精品一区二区三区| 精品不卡在线视频| 精选一区二区三区四区五区| 亚洲丶国产丶欧美一区二区三区| 在线视频亚洲一区| 成人免费视频网站在线观看| 国产欧美日韩不卡| 日韩成人在线资源| 蜜臀av一级做a爰片久久| 91精品国产麻豆| 国产精品国产亚洲精品看不卡15 | 欧美日韩一区二区视频在线观看 | 国产伦精品一区| 夜夜揉揉日日人人青青一国产精品| 综合久久国产| 成人午夜伦理影院| 国产精品电影院| 日本久久一区二区| 成人一区二区三区| 中文字幕在线一区免费| 一本一道综合狠狠老| 成人国产精品免费观看| 亚洲日本欧美天堂| 欧美日韩在线综合| 国外成人在线视频网站| 免费成人在线观看| 久久精品亚洲国产奇米99| 亚洲在线色站| 51蜜桃传媒精品一区二区| 一区二区久久久| 日韩欧美国产不卡| 天堂社区 天堂综合网 天堂资源最新版| 国产麻豆日韩欧美久久| 中文字幕亚洲不卡| 欧美美女一区二区在线观看| 国产原创精品| 国产一区久久久| 亚洲免费大片在线观看| 欧美一三区三区四区免费在线看| 美女被啪啪一区二区| 国产成人精品综合在线观看| 亚洲一线二线三线视频| 精品第一国产综合精品aⅴ| 亚洲国产日韩欧美| 不卡的av一区| 国产精品12区| 亚洲sss视频在线视频| 国产欧美日韩不卡| 91精品国产综合久久精品图片| 欧美日韩精品免费看| 99视频一区二区| 麻豆视频观看网址久久| 一区二区三区在线免费视频| 久久众筹精品私拍模特| 欧美三级中文字幕| 日本午夜精品一区二区三区| 97人人干人人| 国产高清无密码一区二区三区| 亚洲成人免费在线| 中文字幕中文字幕在线一区 | 久久久久久久有限公司| 岛国精品在线观看| 免费成人在线视频观看| 亚洲欧美激情在线| 久久精品日韩一区二区三区| 欧美一区二区三区性视频| 中文字幕久久综合| 欧美亚洲免费高清在线观看 | 久久久久久免费网| 欧美日韩小视频| 正在播放91九色| 欧美高清性xxxxhd| 国产精选一区二区| 91偷拍精品一区二区三区| 丁香激情综合国产| 国产风韵犹存在线视精品| 久久精工是国产品牌吗| 日本欧美一区二区在线观看| 一区二区成人在线|