亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于微信小程序的發(fā)酵過程在線監(jiān)測系統(tǒng)設(shè)計?

        2020-11-02 09:01:12
        計算機與數(shù)字工程 2020年9期
        關(guān)鍵詞:輪詢頁面光譜

        胡 斌

        (江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 無錫 214000)

        1 引言

        近紅外光(Near Infrared,NIR)是一種波長范圍在780nm~2526nm 的電磁波。近紅外光譜分析技術(shù)可以將有機物質(zhì)的含氫基團化學(xué)鍵的倍頻和合頻吸收轉(zhuǎn)換為光譜信息,從而探測出物質(zhì)的成分或者成分含量[1]。在20 世紀80 年代期間,由于工業(yè)技術(shù)的落后,無論是行業(yè)競爭,還是環(huán)保要求,都迫使工業(yè)生產(chǎn)尋求新技術(shù)。為此,經(jīng)過長久的投入和發(fā)展,近紅外光譜技術(shù)結(jié)合化學(xué)計量學(xué)走進研究殿堂。近紅外光譜技術(shù)以快速、安全和準確的特點在物質(zhì)檢測中發(fā)揮著重要作用,在發(fā)酵過程監(jiān)控的研究也取得了顯著進展[2~6]。

        國際上,對光譜技術(shù)的應(yīng)用越來越成熟。美國尼高力儀器公司開發(fā)的OMNIC 光譜分析軟件[7]、Bruker 公司開發(fā)的OPUS 軟件[8]和賽默飛世爾科技公司(Thermo Fisher Scientific)的TQ Analyst 軟件[9]都在各行各業(yè)取得了良好的效果。通過上述光譜分析軟件建立定量分析模型,進而應(yīng)用在實時監(jiān)測系統(tǒng)中。與此同時,國內(nèi)外研究者也開發(fā)出基于Matlab 語言的工具箱,用于建立定量和定性分析模型,如Lars N?rgaard 開 發(fā) 的iToolbox 工 具 箱 和Hong-Dong Li 近期開發(fā)的libPLS_1.98 工具箱[10~11]。上述公司和研究者對近紅外光譜分析技術(shù)的發(fā)展起到的很大的促進作用,為近紅外光譜技術(shù)應(yīng)用到實際生產(chǎn)中奠定了堅實的基礎(chǔ)。

        本文借鑒國際上通用的光譜數(shù)據(jù)分析和監(jiān)測平臺,如RESULT和OPUS等,設(shè)計出一種新型的實時監(jiān)測系統(tǒng)。在系統(tǒng)實現(xiàn)中,利用libPLS_1.98 工具箱建立定量模型,采用輪詢方式對光譜采集軟件的輸出的CSV格式光譜數(shù)據(jù)文件進行讀取,采用微信小程序技術(shù)進行客戶端頁面設(shè)計,利用Java語言進行服務(wù)器端開發(fā),采用Websocket 技術(shù)實現(xiàn)客戶端和服務(wù)端的全雙工通信,從而實現(xiàn)對發(fā)酵過程參數(shù)的遠程、在線監(jiān)測。

        2 關(guān)鍵技術(shù)

        2.1 近紅外光譜檢測基礎(chǔ)

        近紅外光譜分析技術(shù)的物理基礎(chǔ)是光與物質(zhì)之間的相互作用,當光入射到物質(zhì)時,會發(fā)生反射、透射或者吸收。從光源入射到物質(zhì)表面后,經(jīng)過與物質(zhì)中微粒的一系列作用后出射,其中入射與出射的光強比就是我們需要的信息。近紅外光譜分析技術(shù)的化學(xué)基礎(chǔ)來自物質(zhì)內(nèi)部的分子振動和能級吸收。由波爾頻率方程計算出的振動量子數(shù)v 從0到1 得到的振動頻率f 稱之為基頻。那么,一級倍頻和二級倍頻分別為v 從0 變化到2 和3 獲得的振動頻率,而合頻指的是不同基頻之間的和或差獲得的振動頻率[12~13]。

        2.2 微信小程序技術(shù)

        微信小程序技術(shù)(Mini Program),是一種介于B/S(Brower/Server)結(jié)構(gòu)和C/S(Client/Server)結(jié)構(gòu)之間的系統(tǒng)。對于客戶來說,客戶不需要像安卓或者IOS 一樣下載應(yīng)用程序,只需要在微信軟件上打開小程序功能搜索即可。有著即開即用的效果。對于開發(fā)人員來說,這又是一種快速開發(fā)平臺[14]。在微信小程序的編碼中,已經(jīng)封裝好了頁面的結(jié)構(gòu)、生命周期以及數(shù)據(jù)渲染。目前,已經(jīng)有150 萬開發(fā)人員推動著微信小程序的發(fā)展,涉及到了200多個行業(yè),并帶動了一個新行業(yè)的發(fā)展。

        2.3 Websocket技術(shù)

        Websocket 技術(shù)誕生之前,客戶端和服務(wù)器通常使用的技術(shù)有:輪詢和長連接等。但是,長時間的通信會導(dǎo)致一些問題:

        1)多個客戶端同時請求服務(wù)器時,服務(wù)器必須為每個客戶端建立Tcp 連接。頻繁的連接和斷開容易造成系統(tǒng)崩潰。

        2)頻繁的Http 協(xié)議請求具有很高的開銷,Http請求頭存儲了很多信息,重復(fù)的連接也會傳遞重復(fù)的信息。

        Websocke 技術(shù)是解決上述問題的簡單方案。如圖1 所示W(wǎng)ebsocke 技術(shù)建立連接的原理圖。TCP 協(xié)議傳輸數(shù)據(jù)時,每次發(fā)送數(shù)據(jù)都要建立復(fù)雜的“三次握手,四次揮手”。而在Websocket 協(xié)議的傳輸中,只需要建立一次連接就可以一直通信[15]。

        圖1 Websocket原理圖

        3 系統(tǒng)總體結(jié)構(gòu)

        實時監(jiān)測系統(tǒng)的總體結(jié)構(gòu)圖如圖2 所示,包括發(fā)酵罐、光纖探頭、光譜儀、廠商配套的光譜采集軟件、實時監(jiān)測軟件系統(tǒng)和用戶終端。在整個系統(tǒng)中,光譜儀器采用了賽默飛品牌的傅立葉近紅外過程分析儀Antaris MX,此儀器可以檢測波數(shù)范圍在10000cm-1~4000cm-1的近紅外光譜。服務(wù)器采用了Windows7 操作系統(tǒng),并安裝廠商配置光譜采集軟件。廠商配置的光譜采集軟件為RESULT 平臺下的RESULT-Integration 軟件,可以設(shè)置參數(shù)將實時采集的光譜數(shù)據(jù)以CSV格式輸出到指定文件夾中。

        圖2 系統(tǒng)總體結(jié)構(gòu)圖

        由總體結(jié)構(gòu)圖可以看出,在系統(tǒng)運作之前,利用Lars N?rgaard開發(fā)的iToolbox工具箱中的聯(lián)合區(qū)間偏最小二乘法,對發(fā)酵過程數(shù)據(jù)建立糖含量的定量分析模型,并將模型數(shù)據(jù)存儲為CSV格式的模型文件(如圖2 中NIR 模型)。其中,NIR 模型的第一行數(shù)據(jù)為特征區(qū)間,第二行數(shù)據(jù)為波數(shù)權(quán)重。

        系統(tǒng)運作的流程如下:1)在發(fā)酵過程中,近紅外光譜儀通過光纖探頭采集發(fā)酵罐的發(fā)酵過程數(shù)據(jù),并通過廠商配備的光譜采集軟件將采集到的物質(zhì)信息轉(zhuǎn)換成光譜信息,進入輸出為CSV格式的光譜數(shù)據(jù)文件;2)在采集軟件不斷輸出實時光譜數(shù)據(jù)的過程中,實時監(jiān)測系統(tǒng)利用輪詢監(jiān)測功能獲取CSV 格式光譜數(shù)據(jù)文件,并利用文件處理功能解析數(shù)據(jù)文件和模型文件,將解析到的實時數(shù)據(jù)和模型數(shù)據(jù)以全局變量的形式存儲;3)利用模型預(yù)測功能將當前實時光譜數(shù)據(jù)和模型數(shù)據(jù)結(jié)合,并計算出實時預(yù)測結(jié)果;4)在用戶開啟Websocket連接后,系統(tǒng)服務(wù)端利用數(shù)據(jù)推送功能將預(yù)測結(jié)果推送給在線用戶。

        4 功能流程設(shè)計

        4.1 輪詢監(jiān)測功能設(shè)計

        輪詢監(jiān)測功能是對光譜采集軟件輸出文件的變化進行監(jiān)測。近紅外光譜儀將采集的樣品經(jīng)過光譜采集軟件的處理后得到了光譜圖像,進一步通過設(shè)置相關(guān)參數(shù)可以將光譜數(shù)據(jù)轉(zhuǎn)換成CSV格式,并存儲在指定文件夾中。利用Java 語言對指定文件夾進行輪詢監(jiān)測的關(guān)鍵點有:

        1)文件夾每次輪詢掃描前,需要對已存在文件進行緩存,并在下一次輪詢掃描中對已有文件對比,以確定是否有新文件。

        2)為避免大量的數(shù)據(jù)對比,應(yīng)該優(yōu)選判斷文件數(shù)量。如果文件數(shù)量上排除了新文件的產(chǎn)生,可以直接進行下次輪詢。

        3)考慮到在近紅外光譜數(shù)據(jù)的業(yè)務(wù)處理中,如果時間過長或者其他環(huán)境異常會導(dǎo)致的掃描時間阻塞。系統(tǒng)使用子線程的方式將掃描到的新文件交給子線程解決,而不會干擾掃描任務(wù),由子線程去繼續(xù)執(zhí)行后續(xù)業(yè)務(wù)。

        在上述關(guān)鍵點下,對系統(tǒng)的輪詢監(jiān)測功能進行設(shè)計,如圖3所示輪詢監(jiān)測功能流程圖。

        圖3 輪詢監(jiān)測流程圖

        從圖中可以看出輪詢監(jiān)測的主要流程如下:1)系統(tǒng)開啟監(jiān)控,使用Java 語言的Properties 類掃描并解析properties 類型的配置文件以獲取目標路徑。其中,配置文件的目的是便于將來因業(yè)務(wù)或者環(huán)境調(diào)整而導(dǎo)致的文件夾更改;2)使用Java語言的Map 對象將目標路徑的所有文件加入到緩存變量中,其中Map 的key 值為文件的最后修改時間,Map的value 值為文件對象;3)計算當前目標路徑的文件數(shù)量,并與緩存變量的數(shù)量進行對比,如果沒有新文件直接進入延遲狀態(tài),如果有新文件,利用文件最后修改時間找出新文件;4)開辟線程對新文件進行后續(xù)的功能處理,包括文件解析功能、數(shù)值計算功能和信息推送功能。

        4.2 文件處理功能

        在實時監(jiān)測系統(tǒng)有兩種類型的文件需要處理,包括實時光譜數(shù)據(jù)文件和模型文件。采集軟件所輸出的CSV 格式光譜數(shù)據(jù)具備“只讀”。在光譜數(shù)據(jù)的內(nèi)容中,第一列為波數(shù)值,第二列為光譜吸收度值,實時監(jiān)測系統(tǒng)只需要獲取第二列的吸收度信息。模型文件是通過基于Matlab 的iToolbox 工具建立定量模型,并將模型數(shù)據(jù)的特征區(qū)間和權(quán)重信息寫入到CSV格式文件中。

        使用Java 語言對上述文件進行處理的主要任務(wù)有:獲取文件夾中的文件列表、獲取文件格式、獲取文件的最終修改時間和獲取文件內(nèi)容。其中,Java 語言獲取文件的外部屬性可以通過File 類獲得,具體方法如表1 所示。Java 語言讀取文件的內(nèi)容信息則需要字節(jié)流FileInputStream 或者字符流Reader以及相關(guān)類。

        表1 File類部分方法

        通過表中的具體文件操作方法,對實時數(shù)據(jù)文件和模型文件進行讀取。從圖4 所示文件讀取流程圖中,可以看出文件處理的流程為1)由于文件處理是通用程序,需要先判斷文件的類型,以進入不同的文件讀取過程;2)在光譜數(shù)據(jù)文件的讀取中,由于文件夾可能混雜其他文件,因此需要采用表1中的getName方法判斷是否為CSV格式以及文件名內(nèi)容,排除非光譜數(shù)據(jù)文件;3)通過字節(jié)流FileInputStream 的readLine 方法逐行讀取文件的內(nèi)容;4)使用Java 語言的splite 方法對每行數(shù)據(jù)進行逗號分隔符截取,從而讀取到的光譜吸收度信息進行拼接并存儲;5)在模型文件的讀取中,讀取第一行存儲的區(qū)間信息,并使用Java 語言的splite 方法辨識多個區(qū)間信息;6)讀取第二行存儲的權(quán)重信息,其中權(quán)重信息以逗號分割,依舊使用splite方法進行截取,并保存為模型對象。

        圖4 文件處理流程圖

        4.3 信息推送功能

        信息推送功能是在服務(wù)端將預(yù)測的數(shù)據(jù)主動推送給當前在線用戶。首先需要利用Websocke 技術(shù)建立客戶端和服務(wù)端的連接。在微信小程序客戶端,微信小程序使用wx.connectSocket(Object ob?ject)函數(shù)建立連接,其中Object所表示的信息有后端服務(wù)器wss 的地址url 和Http Header 請求頭。在服務(wù)端,Java 語言通過ServerEndpoint 注解來自定義Websocket類,并指定生命周期函數(shù)onOpen 建立連接。每個客戶端與服務(wù)端建立連接后,將用戶對象存儲到CopyOnWriteArraySet<MyWebSocket>中,其中MyWebSocket為自定的連接對象。

        連接建立成功后,對實時數(shù)據(jù)進行計算,并將預(yù)測結(jié)果推送,如圖5所示的信息推送流程圖。

        從信息推送流程圖可以看出,信息推送的過程為1)獲取輪詢監(jiān)測功能得到的實時數(shù)據(jù)和文件處理后的模型數(shù)據(jù);2)使用Java 語言的Math 類計算預(yù)測結(jié)果;3)在獲取到的當前用戶對象集合中,對存儲了用戶對象的CopyOnWriteArraySet 集合進行遍歷;4)以Json 格式封裝預(yù)測結(jié)果,并包含光譜文件的最后修改時間、近紅外光譜的數(shù)據(jù);5)Java 語言將待發(fā)送的Json格式數(shù)據(jù)字符串化,并使用自定義連接對象MyWebSocket 類的sendMessage 方法推送信息。

        圖5 信息推送流程圖

        5 編碼實現(xiàn)與測試

        5.1 頁面布局設(shè)計

        實時監(jiān)測系統(tǒng)的微信小程序端共有三個頁面,包括數(shù)據(jù)預(yù)測的置頂式刷新頁面、預(yù)測結(jié)果的詳情頁面以及預(yù)測結(jié)果的歷史走勢頁面。其中,置頂式刷新頁面是由表格構(gòu)成的數(shù)據(jù)預(yù)測頁面,預(yù)測結(jié)果從上到下按照時間倒序排列。預(yù)測的詳情頁面除了預(yù)測時間和預(yù)測結(jié)果外,還包含了光譜的曲線信息。預(yù)測結(jié)果的歷時曲線頁面是將開啟在線監(jiān)控到當前時刻的所有預(yù)測結(jié)果通過折線圖的形式展示。

        如圖6 所示是微信小程序的界面設(shè)計圖。其中,標題為“置頂式”所在界面是系統(tǒng)進入的首頁。在首頁的最上方是監(jiān)測系統(tǒng)開啟監(jiān)測功能的按鈕。首頁的最下方是導(dǎo)航欄,包括了當前置頂式頁面和歷史曲線頁面的選項卡。在監(jiān)測按鈕和導(dǎo)航欄之間是數(shù)據(jù)預(yù)測的表格數(shù)據(jù),其排列順序按照時間倒序的結(jié)果展示在表格中。詳情頁面作為置頂式刷新頁面的二級頁面,是通過點擊表格預(yù)測結(jié)果的單個條目進入。詳情頁面更詳細的介紹預(yù)測信息和光譜的曲線圖。通過點擊首頁的導(dǎo)航2 按鈕,可以進入到歷史光譜數(shù)據(jù)的預(yù)測走勢頁面。預(yù)測走勢頁面展示了從開啟監(jiān)測功能到當前數(shù)據(jù)預(yù)測的所有數(shù)據(jù)預(yù)測走勢圖。

        圖6 微信小程序界面設(shè)計圖

        5.2 實時數(shù)據(jù)預(yù)測頁面測試

        根據(jù)圖6 的頁面布局,首先設(shè)計置頂式刷新頁面和詳情頁面。如圖7(a)所示的置頂式刷新頁面中,通過點擊首頁上方的在線監(jiān)測狀態(tài)欄,可以向后端服務(wù)器發(fā)送Websocket 連接請求,在等待連接的時間內(nèi)如果連接失敗按鈕直接跳到關(guān)閉狀態(tài),狀態(tài)顯示“未開啟”,如果連接成功顯示“已開啟”。狀態(tài)欄的下方是數(shù)據(jù)列表,從上至下按照時間倒序排列。當新的預(yù)測結(jié)果推送到微信小程序頁面時,數(shù)據(jù)將置頂?shù)阶钌戏轿恢?,其他預(yù)測結(jié)果下移。通過點擊單個預(yù)測條目,可以進入到圖7(b)的預(yù)測結(jié)果詳情頁面中。詳情頁面以更加美觀的排版展示預(yù)測結(jié)果,并且新增光譜數(shù)據(jù)曲線圖。

        圖7 數(shù)據(jù)預(yù)測頁面測試

        5.3 預(yù)測數(shù)據(jù)的歷史曲線頁面測試

        通過點擊圖7 中導(dǎo)航欄的“過程”選擇卡進入如圖8 所示的預(yù)測結(jié)果的歷史曲線頁面。歷史曲線是通過微信小程序端進行收集,具體過程為1)在線用戶開啟監(jiān)測功能后,記錄每次的預(yù)測結(jié)果,為了讓數(shù)據(jù)在頁面間傳遞,微信小程序?qū)?shù)據(jù)存儲在app.js文件的全局變量globaldata中;2)當用戶進入歷史數(shù)據(jù)曲線頁面后,獲取globaldata 的全部數(shù)據(jù),并使用Echarts 插件繪制歷史預(yù)測結(jié)果的折線圖。

        圖8 歷史數(shù)據(jù)曲線頁面測試

        在微信小程序的數(shù)據(jù)傳遞中,服務(wù)端通過發(fā)送Json 格式的字符串傳遞到微信小程序端。微信小程序通過JSON.parse 方法將Json 字符串轉(zhuǎn)換成Json 對象,并通過this.setData 方法渲染到頁面數(shù)據(jù)Data中。當進入到歷史數(shù)據(jù)頁面后,通過生命周期函數(shù)onLoad 讀取全局變量,進而使用Echarts 繪制圖表完成折線圖渲染。當新數(shù)據(jù)傳遞到微信小程序端,微信小程序?qū)⑿骂A(yù)測結(jié)果拼接到數(shù)組末端,重新繪制歷史曲線,完成數(shù)據(jù)的動態(tài)變化。

        6 結(jié)語

        長久以來,近紅外光譜技術(shù)在發(fā)酵過程監(jiān)測的應(yīng)用大多為桌面端系統(tǒng)。本文在經(jīng)典監(jiān)控系統(tǒng)的基礎(chǔ)上,結(jié)合當前快速發(fā)展的互聯(lián)網(wǎng)技術(shù),設(shè)計并實現(xiàn)了一套基于微信小程序技術(shù)的實時監(jiān)測系統(tǒng)。系統(tǒng)采用微信小程序技術(shù)作為客戶端進行快速開發(fā)和快速應(yīng)用,采用Websocket 技術(shù)進行客戶端與服務(wù)端的高效數(shù)據(jù)推送,采用Java語言開發(fā)服務(wù)端應(yīng)用程序,以提高系統(tǒng)的跨平臺能力。經(jīng)過最后的編碼與測試表明,系統(tǒng)可以滿足發(fā)酵過程參數(shù)的遠程實時監(jiān)測,為近紅外光譜技術(shù)的遠程監(jiān)測應(yīng)用提供完整的軟件系統(tǒng)和具體的解決方案。

        猜你喜歡
        輪詢頁面光譜
        大狗熊在睡覺
        基于三維Saab變換的高光譜圖像壓縮方法
        刷新生活的頁面
        基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計?
        依托站點狀態(tài)的兩級輪詢控制系統(tǒng)時延特性分析
        利用時間輪詢方式操作DDR3實現(xiàn)多模式下數(shù)據(jù)重排
        星載近紅外高光譜CO2遙感進展
        苦味酸與牛血清蛋白相互作用的光譜研究
        鋱(Ⅲ)與PvdA作用的光譜研究
        同一Word文檔 縱橫頁面并存
        久久婷婷是五月综合色狠狠 | 视频精品亚洲一区二区| 一区二区中文字幕在线观看污污 | av无码精品一区二区三区宅噜噜| 狠狠久久久久综合网| 久久精品国产av大片| 亚洲精品久久蜜桃av| 成人精品视频一区二区| 国产做无码视频在线观看浪潮| 在线无码免费看黄网站| 一区二区三区蜜桃av| 亚洲综合色婷婷七月丁香| japanese无码中文字幕| 精品亚洲一区二区视频| 一区二区三区国产高清视频| 少妇高潮喷水久久久影院| 日韩成人免费一级毛片| 一区二区中文字幕蜜桃| 性人久久久久| 午夜亚洲av永久无码精品| 精精国产xxxx视频在线播放器| 国内精品毛片av在线播放| 一女被多男玩喷潮视频| 人体内射精一区二区三区| 一区二区三区国产精品| 精品国产精品久久一区免费式| 樱桃视频影视在线观看免费| 国产在线视频国产永久视频| 久久精品视频日本免费| 午夜天堂精品久久久久| 亚洲av成人精品日韩一区| 亚洲av天堂久久精品| 色呦呦九九七七国产精品| 东北寡妇特级毛片免费| 中文字幕久久精品波多野结百度 | 国产91 对白在线播放九色| 男女视频在线观看一区二区 | 国产精品久久久久乳精品爆| 国产成人亚洲综合一区| 国产三级视频在线观看国产 | 韩日午夜在线资源一区二区|