杜紀(jì)魁
(無(wú)錫商業(yè)職業(yè)技術(shù)學(xué)院物聯(lián)網(wǎng)技術(shù)學(xué)院,江蘇 無(wú)錫214153)
隨著信息技術(shù)和物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,施耐德電氣公司出于保障用戶(hù)投資金安全,順應(yīng)新技術(shù)發(fā)展的大趨勢(shì),首先推出了采用開(kāi)放的TCP/IP以太網(wǎng)技術(shù)和Modbus TCP/IP協(xié)議應(yīng)用于工業(yè)控制領(lǐng)域的工業(yè)網(wǎng)絡(luò)數(shù)據(jù)技術(shù)。該技術(shù)應(yīng)用了 TCP/IP協(xié)議,底層協(xié)議使用開(kāi)放的Modbus協(xié)議,率先實(shí)現(xiàn)了信息網(wǎng)絡(luò)和工業(yè)數(shù)據(jù)采集、控制網(wǎng)絡(luò)融為一體,使用戶(hù)擺脫了各種行業(yè)的數(shù)據(jù)采集技術(shù)與控制網(wǎng)絡(luò)的限制和束縛,使工業(yè)控制技術(shù)進(jìn)入到了一種新境界。
隨著電子信息技術(shù)的快速發(fā)展,目前通過(guò)軟硬件方式可以將TCP(UDP)/IP等相關(guān)通信協(xié)議嵌入到各種物理傳感器中。目前網(wǎng)絡(luò)智能化傳感器在國(guó)內(nèi)外應(yīng)用日益廣泛,并且交換式以太網(wǎng)技術(shù)的出現(xiàn)大大提高了網(wǎng)絡(luò)的穩(wěn)定性。利用數(shù)據(jù)交換技術(shù),可以將一個(gè)大型的網(wǎng)絡(luò)分隔成為各個(gè)相對(duì)獨(dú)立的網(wǎng)絡(luò)區(qū)域,使沖突限制在一個(gè)較小的范圍內(nèi),這樣就可以很明顯地減少?zèng)_突的發(fā)生,從而保證和提高了網(wǎng)絡(luò)的實(shí)時(shí)性和穩(wěn)定性性。 目前來(lái)看以太網(wǎng)所已經(jīng)能夠滿(mǎn)足數(shù)據(jù)采集和控制對(duì)實(shí)時(shí)、抗干擾和可靠性等方面的要求。它己經(jīng)被證明是目前乃至未來(lái)數(shù)據(jù)采集與工業(yè)行業(yè)控制網(wǎng)絡(luò)的較好的解決途徑,而以太網(wǎng)應(yīng)用在工業(yè)現(xiàn)場(chǎng)中設(shè)備監(jiān)控方面也是工業(yè)控制網(wǎng)絡(luò)發(fā)展的趨勢(shì)。
該項(xiàng)目綜合了江蘇省無(wú)線傳感系統(tǒng)應(yīng)用工程技術(shù)研究開(kāi)發(fā)中心在物聯(lián)網(wǎng)方面的各方面研發(fā)能力開(kāi)發(fā)基于無(wú)線傳感網(wǎng)的工業(yè)數(shù)據(jù)管理網(wǎng)絡(luò)系統(tǒng)。該系統(tǒng)包括:工業(yè)設(shè)備(調(diào)試中可模擬)、設(shè)備數(shù)據(jù)采集節(jié)點(diǎn)、無(wú)線群控通信節(jié)點(diǎn)(基站)、群控服務(wù)器組成,系統(tǒng)組成如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
通用工業(yè)網(wǎng)絡(luò)的數(shù)據(jù)平臺(tái)并不直接于硬件設(shè)備打交道,也不直接處理來(lái)自工業(yè)網(wǎng)絡(luò)的數(shù)據(jù)信息,在基于Web的工業(yè)網(wǎng)絡(luò)數(shù)據(jù)平臺(tái)和工業(yè)現(xiàn)場(chǎng)傳感網(wǎng)絡(luò)之間(主要指下位機(jī))加入中間件,中間件是連接兩個(gè)獨(dú)立應(yīng)用程序或獨(dú)立系統(tǒng)的軟件。相連接相互通信的系統(tǒng),即使它們具有不同的接口,但通過(guò)規(guī)范的中間件仍然能夠進(jìn)行信息的交換。執(zhí)行中間件的一個(gè)關(guān)鍵途徑是信息傳遞。通過(guò)中間件,應(yīng)用程序可以工作于多平臺(tái)或OS環(huán)境。通過(guò)中間件為工業(yè)網(wǎng)絡(luò)數(shù)據(jù)平臺(tái)屏蔽面向設(shè)備的流信息,提供相應(yīng)的數(shù)據(jù)信息,以便平臺(tái)數(shù)據(jù)的持久化。中間件在這里的主要作用在于數(shù)據(jù)格式的轉(zhuǎn)換及與下位機(jī)的通信。
本項(xiàng)目的軟件系統(tǒng)結(jié)構(gòu)模式如圖2所示。
圖2 軟件系統(tǒng)結(jié)構(gòu)模式圖
本項(xiàng)目的研究方法上根據(jù)信息系統(tǒng)的特點(diǎn),從系統(tǒng)結(jié)構(gòu)化分析,結(jié)構(gòu)分層,逐層分析解決實(shí)施,Web應(yīng)用實(shí)現(xiàn)結(jié)構(gòu)、內(nèi)容、表現(xiàn)分離,以便整個(gè)平臺(tái)能夠無(wú)縫嵌入具體的業(yè)務(wù)應(yīng)用。根據(jù)在項(xiàng)目自身的特點(diǎn),平臺(tái)擬采用.NET為主要實(shí)現(xiàn)技術(shù),使用數(shù)據(jù)庫(kù)存放各類(lèi)傳感器信息。數(shù)據(jù)格式如表1所示:
表1 通信數(shù)據(jù)格式
數(shù)據(jù)實(shí)例:
總之,整個(gè)項(xiàng)目充分利用了軟件分層來(lái)降低問(wèn)題復(fù)雜性,并使整個(gè)系統(tǒng)的軟件與硬件的耦合度降低,軟件模塊之間的耦合也降低,結(jié)合中間件技術(shù)構(gòu)建了一個(gè)通用的Web網(wǎng)絡(luò)數(shù)據(jù)平臺(tái)??紤]今后工業(yè)網(wǎng)絡(luò)的發(fā)展,肯定與業(yè)務(wù)系統(tǒng)會(huì)高度融合,因此在平臺(tái)中提供相應(yīng)的Web Service接口,可以對(duì)其他系統(tǒng)支持跨平臺(tái)的調(diào)用,這也是平臺(tái)可擴(kuò)展性的一個(gè)。
1)Ajax與 JQuery
JQuery是一個(gè)優(yōu)秀的Javascript庫(kù)。它是輕量級(jí)的js庫(kù) ,它兼容CSS3。jQuery方便用戶(hù)處理HTML、實(shí)踐,并且能夠?qū)崿F(xiàn)動(dòng)畫(huà)效果,還能夠?yàn)榫W(wǎng)站提供Ajax交互。jQuery較大優(yōu)勢(shì)還有各種參考資料齊全,應(yīng)用示例廣泛并且豐富,同時(shí)還有許多開(kāi)源的成熟插件可以使用。Query能夠使用戶(hù)的html頁(yè)面保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需要定義id即可。
Ajax是一種主要用于創(chuàng)建需要及時(shí)刷新頁(yè)面數(shù)據(jù)的技術(shù)。這項(xiàng)技術(shù)通過(guò)在后臺(tái)與相關(guān)服務(wù)器進(jìn)行較少的通信,就可以使所創(chuàng)建的網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。即可以不用重新加載頁(yè)面所有內(nèi)容,而只對(duì)頁(yè)面內(nèi)部部分?jǐn)?shù)據(jù)區(qū)域進(jìn)行更新。
在數(shù)據(jù)展示方面,本項(xiàng)目利用Ajax技術(shù)實(shí)時(shí)刷新頁(yè)面表格中的各個(gè)儀器終端的數(shù)據(jù),提高也頁(yè)面的穩(wěn)定性,并利用JQuery技術(shù)提高了代碼的可維護(hù)性和刷新效率。
2)數(shù)據(jù)庫(kù)分頁(yè)技術(shù)
在使用中間件處理數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。由于實(shí)時(shí)數(shù)據(jù)量在積累一段時(shí)間后,如果每次直接進(jìn)行數(shù)據(jù)查詢(xún)耗時(shí)較多,因此使用數(shù)據(jù)庫(kù)分頁(yè)技術(shù),同時(shí)把較新數(shù)據(jù)放在臨時(shí)的數(shù)據(jù)集合里動(dòng)態(tài)更新,提高數(shù)據(jù)檢索效率。
比較常用的數(shù)據(jù)分頁(yè)技術(shù)是ADO記錄集進(jìn)行分頁(yè)。這項(xiàng)技術(shù)使用ADO自帶的功能通過(guò)游標(biāo)來(lái)達(dá)到分頁(yè)的目的。現(xiàn)在流行的分頁(yè)方法一般是檢索頁(yè)面大小的塊區(qū)的數(shù)據(jù),而非檢索所有的數(shù)據(jù),然后單步執(zhí)行當(dāng)前行。
根據(jù)該項(xiàng)目中的數(shù)據(jù)特點(diǎn),采用top(max)及top min來(lái)進(jìn)行分頁(yè)。也就是現(xiàn)在通用的分頁(yè)算法和分頁(yè)存儲(chǔ)過(guò)程的算法。
select top@PageSize*from (@strsql)a where@pk>(select max(@pk)from(select top@startpos@pk from(@strsql)order by@pk)a)and @pk<=(select min(@pk)from select top@endpos@pk from(@strsql)order by@pk)a)order by@pk
@PageSize每一頁(yè)的條數(shù)。
@strsql,即選擇數(shù)據(jù)的語(yǔ)句,如select*from aa。
@pk,即主鍵,或者唯一字段。
@startpos.分頁(yè)下標(biāo)。@startpos=(@pageNums)*(@page-1)
@endpos。分頁(yè)上標(biāo) @endpos=(@pageNums*@page)-1;
該算法要求使用唯一字段來(lái)進(jìn)行分頁(yè),適用于大量數(shù)據(jù),并且是根本唯一值字段排序的地方。如果這些數(shù)據(jù)中有重復(fù)值,但是重復(fù)值數(shù)量較少,比如低于一頁(yè)的記錄數(shù),那么也可以正常獲取數(shù)據(jù)。在這個(gè)項(xiàng)目中由于主要區(qū)別數(shù)據(jù)值為數(shù)據(jù)發(fā)生時(shí)間,因此基本沒(méi)有數(shù)據(jù)重復(fù),非常適合采用這種方法。
經(jīng)過(guò)測(cè)試,數(shù)據(jù)沒(méi)有明顯延遲。實(shí)時(shí)數(shù)據(jù)顯示如圖3所示。
圖3 實(shí)時(shí)數(shù)據(jù)顯示
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,基于網(wǎng)絡(luò)通信的數(shù)據(jù)管理系統(tǒng)得到了大量應(yīng)用,本課項(xiàng)目在查閱文獻(xiàn)的基礎(chǔ)上提出了基于WEB的工業(yè)網(wǎng)絡(luò)通信的數(shù)據(jù)平臺(tái)系統(tǒng),通過(guò)中間件技術(shù)以及TCP/IP協(xié)議實(shí)現(xiàn)了工業(yè)現(xiàn)場(chǎng)傳感器與后臺(tái)服務(wù)器之間的網(wǎng)絡(luò)通信,本課題研究具有較強(qiáng)的工程背景和實(shí)際價(jià)值。
本項(xiàng)目設(shè)計(jì)了基于WEB的工業(yè)網(wǎng)絡(luò)通信數(shù)據(jù)平臺(tái)的上位機(jī)軟件。基于TCP/IP協(xié)議以及Windows Socket方法,在Visual Studio平臺(tái)上開(kāi)發(fā)工業(yè)網(wǎng)絡(luò)通信數(shù)據(jù)平臺(tái)的上位機(jī)軟件,實(shí)現(xiàn)數(shù)據(jù)采集、顯示和控制。對(duì)于工業(yè)電子設(shè)備網(wǎng)絡(luò)化,實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)和控制設(shè)備儀器的運(yùn)行等方面具有借鑒和推廣意義。
由于在進(jìn)行圖形化顯示數(shù)據(jù)時(shí)采用了JavaScript編寫(xiě)實(shí)際顯示效果,雖然執(zhí)行效率較高,顯示界面簡(jiǎn)潔,但是由于代碼局限性顯示效果的多樣性上有所欠缺。因此如果有需要,可以在后續(xù)改進(jìn)中使用第三方圖形化控件來(lái)完成圖形化顯示功能。
[1]郝雅青.明渠污水智能流量計(jì)量WEB監(jiān)測(cè)平臺(tái)軟件實(shí)現(xiàn)[D].太原:太原理工大學(xué),2010.
[2]趙海艷.面向服務(wù)的傳感器網(wǎng)絡(luò)關(guān)鍵技術(shù)的研究[D].大連:大連理工大學(xué),2011.
[3]徐輝.基于Internet技術(shù)的嵌入式數(shù)據(jù)采集與控制系統(tǒng)的研究[J].現(xiàn)在電子技術(shù),2008:26-32.
[4]李運(yùn)濤,王庸貴.一種實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)網(wǎng)絡(luò)接口設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2011:7-10.
[5]任泰明.TCP/IP協(xié)議與網(wǎng)絡(luò)編程[J].西安電子科技大學(xué)出版社,2013,4:22-23.
[6]jQuery 1.11 and 2.1 Released .jQuery.2015-03-29[Z].
[7]Ajax.百度百科[OL].2015-9-22.
[8]http://blog.csdn.net/fibona/article/details/1519480[OL].2015-05-13.