• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于嵌入式技術(shù)和無(wú)線網(wǎng)絡(luò)的多終端實(shí)驗(yàn)室監(jiān)控系統(tǒng)設(shè)計(jì)

      2020-05-15 09:24:00
      關(guān)鍵詞:控制指令線程無(wú)線網(wǎng)絡(luò)

      周 超

      (銅陵學(xué)院 電氣工程學(xué)院,安徽 銅陵 244000)

      作為高校開展教學(xué)科研工作的重要場(chǎng)所,當(dāng)前的實(shí)驗(yàn)室管理普遍采用非自動(dòng)化、以紙張文件為基礎(chǔ)的傳統(tǒng)方式,管理人員定期巡視記錄實(shí)驗(yàn)室環(huán)境工況,效率低下。針對(duì)上述不足,基于嵌入式技術(shù)和無(wú)線網(wǎng)絡(luò)設(shè)計(jì)多終端實(shí)驗(yàn)室監(jiān)控系統(tǒng),采用ARM微處理器和各類傳感器采樣處理實(shí)驗(yàn)室環(huán)境信息和控制指令,應(yīng)用無(wú)線網(wǎng)絡(luò)實(shí)現(xiàn)信息傳輸[1-6]。為提高監(jiān)控系統(tǒng)的可靠性,提供了多終端監(jiān)控方式,管理人員可以通過(guò)瀏覽器或上位機(jī)實(shí)時(shí)監(jiān)控實(shí)驗(yàn)室環(huán)境,發(fā)生異常時(shí)會(huì)進(jìn)行聲光報(bào)警并通過(guò)短信方式主動(dòng)通知用戶。該系統(tǒng)簡(jiǎn)化了實(shí)驗(yàn)管理人員的重復(fù)性操作,提高管理機(jī)制的安全性,降低意外帶來(lái)的經(jīng)濟(jì)損失。

      1 系統(tǒng)結(jié)構(gòu)

      系統(tǒng)包括采集前端、數(shù)據(jù)處理中心和客戶端3個(gè)部分,如圖1所示。① 采集前端用于采集各類信息,包括實(shí)驗(yàn)室環(huán)境信息(溫濕度、光照等)和輔助信息(三軸加速度等),前端將上述信息處理打包后通過(guò)無(wú)線網(wǎng)絡(luò)傳輸給處理中心,同時(shí)接收來(lái)自處理中心的控制指令。采集前端具備遠(yuǎn)控模式和自動(dòng)控制模式兩類,默認(rèn)情況處于自動(dòng)控制模式,此時(shí)采集前端自行對(duì)環(huán)境信息進(jìn)行監(jiān)控,如溫度值偏高則啟動(dòng)風(fēng)扇設(shè)備調(diào)節(jié)溫度,超出閾值則通過(guò)LED、蜂鳴器等做聲光報(bào)警。當(dāng)接收到控制指令時(shí),切換到遠(yuǎn)控模式。為提高系統(tǒng)的穩(wěn)定性,需要考慮處理中心發(fā)生故障的情況,若在遠(yuǎn)控模式下采集前端不能正常接收指令則自行切換到自動(dòng)控制模式;② 數(shù)據(jù)處理中心,包括基于EXYnos4412處理器的FS4412控制板和PC機(jī),接收采樣數(shù)據(jù)存儲(chǔ)并對(duì)采樣前端設(shè)備進(jìn)行控制,采用了兩種策略保證了數(shù)據(jù)存儲(chǔ)的可靠性:一種是存儲(chǔ)到移植Linux系統(tǒng)并搭建了嵌入式Web服務(wù)器的FS4412控制板數(shù)據(jù)庫(kù)中;另一種是存儲(chǔ)到運(yùn)行LabVIEW上位機(jī)程序的PC機(jī)數(shù)據(jù)庫(kù)中。一旦出現(xiàn)異常情況,處理中心通過(guò)GPRS模塊主動(dòng)向用戶發(fā)送短信通知;③ 客戶端,提供了瀏覽器訪問(wèn)Web服務(wù)和LabVIEW上位機(jī)程序的監(jiān)控方式。

      2 系統(tǒng)設(shè)計(jì)

      2.1 采集前端

      2.1.1 硬件設(shè)計(jì)

      數(shù)據(jù)采集前端實(shí)現(xiàn)環(huán)境信息和輔助信息采集、數(shù)據(jù)打包傳輸和控制指令執(zhí)行等核心功能。采集前端結(jié)構(gòu)如圖2所示。硬件資源及功能包括:① 采用DHT11的溫濕度采樣電路,該設(shè)備采用單總線方式通信,時(shí)序要嚴(yán)格參照datasheet進(jìn)行。由于總線上傳輸?shù)臄?shù)據(jù)總是上一次的采樣值,所以要連續(xù)讀兩次才能獲得當(dāng)前的溫濕度信息;② 采用MMA7455L的三軸加速度采樣電路,通過(guò)測(cè)量空間加速度信息,可以有效監(jiān)測(cè)地震等突發(fā)事件;③ 采用ISL29003的光照采樣電路,該光敏器件內(nèi)部集成了15 bit的ADC,減小了電路元器件的使用。三軸與光敏傳感器都采用IIC總線傳輸數(shù)據(jù),IIC地址分別是0X1B和0X44,LPC11C14的PIN15、PIN16引腳是用于IIC通信的SCL與SDA,傳輸數(shù)據(jù)占一個(gè)字節(jié);④ 采用ESP8266的WIFI通信電路;⑤ 隔離電路,為提高系統(tǒng)的可靠性,環(huán)境傳感器采樣端與處理器間加入隔離電路提高系統(tǒng)的可靠性,采用基于iCouple技術(shù)的ADuM5404數(shù)字隔離器。電路設(shè)計(jì)時(shí)要考慮抑制噪聲與紋波的影響,在ADuM5404的VDD1、GND1和VISO、GNDISO間至少要并聯(lián)2個(gè)電容,推薦采用0.1 μF和10 μF,其中0.1 μF使用陶瓷電容,因?yàn)榫哂休^低的ESR,并且在畫PCB的時(shí)候,陶瓷電容到電源走線的長(zhǎng)度不要超過(guò)2 mm;⑥ 攝像頭電路,攝像頭采用OV7670,每個(gè)像素占2個(gè)字節(jié),圖片分辨率240*320,每幅圖片占用的空間大小為240*320*2= 153 600字節(jié)。攝像頭模塊中采用的FIFO型號(hào)為AL422B,其容量384 K字節(jié),滿足空間要求[7];⑦ 核心處理器及外圍電路,處理器采用基于ARM Cortex-M0內(nèi)核的低功耗、低成本的32位處理器LPC11C14,最高主頻可達(dá)到50 MHz。其在數(shù)據(jù)處理、功耗和抗干擾性等方面能夠滿足前端數(shù)據(jù)采集的需求;⑧ LED和蜂鳴器電路(用于報(bào)警指示);⑨ 風(fēng)扇電路等。

      圖1 實(shí)驗(yàn)室監(jiān)控系統(tǒng)結(jié)構(gòu)圖 圖2 采集前端硬件組成

      2.1.2 軟件設(shè)計(jì)

      采集前端與處理中心之間的數(shù)據(jù)交互通過(guò)無(wú)線網(wǎng)絡(luò)實(shí)現(xiàn),程序流程如圖3所示。

      (1)上電初始化采集前端的硬件資源,如GPIO、UART、SPI等。配置中斷處理函數(shù)、定時(shí)器等,默認(rèn)采集前端處于自控模式。

      (2)初始化完成后進(jìn)行輪詢判定,在沒有接收到來(lái)自無(wú)線網(wǎng)絡(luò)的控制指令(外部中斷)時(shí),執(zhí)行各類信息采集、打包傳輸?shù)炔僮鳎簩?duì)溫濕度信息,微處理器發(fā)出一次開始信號(hào),傳感器DHT11響應(yīng)后從低功耗狀態(tài)切換到高速狀態(tài),采樣傳輸40位數(shù)據(jù),觸發(fā)下一次操作;對(duì)光照信號(hào),初始化IIC總線和ISL29003引腳,因?yàn)镻IN15和PIN16默認(rèn)是GPIO的P0.4和P0.5,所以初始化時(shí)要設(shè)置IOCON寄存器,之后設(shè)置敏感值并讀取光照數(shù)值。 自動(dòng)控制模式下的采集前端自發(fā)監(jiān)測(cè)環(huán)境數(shù)據(jù),在發(fā)現(xiàn)異常時(shí)啟動(dòng)風(fēng)扇或蜂鳴器等設(shè)備。

      (3)當(dāng)接收到來(lái)自無(wú)線網(wǎng)絡(luò)的數(shù)據(jù)時(shí),中斷處理函數(shù)接收控制指令并執(zhí)行操作,采集前端切換到遠(yuǎn)程控制模式,數(shù)據(jù)采集正常進(jìn)行。

      (4)為保證監(jiān)控系統(tǒng)的穩(wěn)定性,需要對(duì)可能發(fā)生的異常進(jìn)行估計(jì)并提前設(shè)計(jì)好應(yīng)對(duì)措施。考慮到處理中心可能發(fā)生故障的情況,當(dāng)采集前端在30 s內(nèi)不能正常接收控制指令時(shí),自行從遠(yuǎn)程控制模式切換到自動(dòng)控制模式,對(duì)實(shí)驗(yàn)室環(huán)境信息進(jìn)行監(jiān)測(cè)并判定是否異常以及是否運(yùn)行風(fēng)扇、蜂鳴器等設(shè)備。

      2.2 數(shù)據(jù)處理中心

      2.2.1 FS4412控制板

      FS4412移植并運(yùn)行Linux系統(tǒng),功能如下:① 移植SQLite存儲(chǔ)來(lái)自采樣端的數(shù)據(jù);② 向采樣端發(fā)送控制指令;③ 對(duì)采樣信息進(jìn)行判定并進(jìn)行報(bào)警指示;④ 移植BOA構(gòu)建Web服務(wù)器,向客戶端提供Web服務(wù);⑤ 當(dāng)發(fā)生異常狀況,通過(guò)GPRS向用戶發(fā)送短信。程序核心包括數(shù)據(jù)接收、數(shù)據(jù)分析線程和消息處理線程等。數(shù)據(jù)接收線程接收來(lái)自無(wú)線網(wǎng)絡(luò)的數(shù)據(jù)(消息頭ST+正文),根據(jù)ST判斷消息類型:A表示輔助信息,E表示環(huán)境信息,為避免數(shù)據(jù)丟失,讀取正文時(shí)要睡眠500 ms。之后插入到數(shù)據(jù)緩存鏈表,喚醒數(shù)據(jù)分析線程,判斷緩存鏈表是否為空,不為空則表示有新的數(shù)據(jù),讀取鏈表,如果是環(huán)境信息且數(shù)值沒有超出閾值,加入數(shù)據(jù)庫(kù)鏈表并喚醒數(shù)據(jù)庫(kù)線程更新數(shù)據(jù)庫(kù)。如果環(huán)境信息異常則喚醒短信發(fā)送、蜂鳴器等線程實(shí)現(xiàn)報(bào)警提示,數(shù)據(jù)接收與分析線程流程如圖4所示。消息處理線程處理來(lái)自客戶端的控制指令,用戶通過(guò)客戶端控制風(fēng)扇、蜂鳴器等設(shè)備,修改溫濕度數(shù)據(jù)的閾值。這些控制指令首先送入消息隊(duì)列,本文定義了風(fēng)扇控制、LED控制、蜂鳴器控制、閾值設(shè)置等消息類型,Switch函數(shù)對(duì)不同的消息類型做不同處理,消息處理線程流程如圖5所示。

      圖3 采集前端程序流程圖 圖4 數(shù)據(jù)接收與分析線程流程圖

      (1)SQLite數(shù)據(jù)庫(kù)

      本文應(yīng)用場(chǎng)景下的數(shù)據(jù)存儲(chǔ)具備如下特點(diǎn):① 存儲(chǔ)數(shù)據(jù)量不大,需要頻繁讀/寫磁盤文件,未來(lái)有數(shù)據(jù)移植的需求;② 沒有超大數(shù)據(jù)集、高流量和高并發(fā)訪問(wèn)的需求。SQLite是一種類似微軟Access的文件型數(shù)據(jù)庫(kù),這類數(shù)據(jù)庫(kù)的特點(diǎn)是以文件形式表示數(shù)據(jù)庫(kù),不需要額外配置,備份操作簡(jiǎn)單。主要API有sqlite3_open、close和exec,操作簡(jiǎn)單,滿足數(shù)據(jù)庫(kù)存儲(chǔ)的需求,所以采用SQLite提供數(shù)據(jù)存儲(chǔ)功能。SQLite移植較為簡(jiǎn)單,首先去官網(wǎng)下載解壓源碼(sqlite-autoconf-3070602),本文采用一臺(tái)運(yùn)行Ubuntu的PC進(jìn)行編譯工作。進(jìn)入目錄創(chuàng)建sqlite_insatll目錄,打開makefile文件,找到DPACKAGE_STRING行,刪除空格并保存,執(zhí)行make make install,編譯后的sqlite3文件保存在sqlite_install目錄中,把sqlite3拷貝到數(shù)據(jù)中心Linux系統(tǒng)的/usr/bin目錄下,同時(shí)把PC端/usr/lib庫(kù)中的libsqlite3.so.o和libsqlite3.so.o.8.6兩個(gè)文件也拷貝到數(shù)據(jù)中心Linux系統(tǒng)的/usr/lib目錄下,執(zhí)行copy命令時(shí)要加-arf參數(shù),完成移植。數(shù)據(jù)庫(kù)線程流程如圖6所示。主程序初始化后啟動(dòng)數(shù)據(jù)庫(kù)線程,創(chuàng)建存儲(chǔ)針對(duì)數(shù)據(jù)庫(kù)操作的數(shù)據(jù)庫(kù)鏈表,之后進(jìn)入循環(huán)等待狀態(tài),接收到喚醒信號(hào)則開始數(shù)據(jù)庫(kù)鏈表的判定操作,如果鏈表頭的內(nèi)容為空,則再次進(jìn)入等待狀態(tài),等待下一次的喚醒。如果鏈表頭的內(nèi)容不為空,則讀取表頭內(nèi)容并調(diào)用相關(guān)函數(shù)完成SQLite操作,完成后釋放節(jié)點(diǎn)空間,如此循環(huán)。sqlite_thread是數(shù)據(jù)庫(kù)線程,task_sqlite函數(shù)用于判定節(jié)點(diǎn)信息并執(zhí)行相關(guān)操作。

      (2)Web服務(wù)

      BOA是一款代碼只有約60 KB的單任務(wù)Web服務(wù)器,很適合嵌入式系統(tǒng)開發(fā),支持CGI,能夠fork CGI進(jìn)程執(zhí)行客戶端請(qǐng)求,實(shí)現(xiàn)交互功能。Web服務(wù)原理如下:管理人員在客戶端打開瀏覽器連接到處理中心的Web服務(wù)器,這時(shí)打開了一個(gè)Socket虛擬文件,通過(guò)Socket以GET或POST的方式基于HTTP協(xié)議向Web服務(wù)器提交請(qǐng)求。Web服務(wù)器接收并分析請(qǐng)求,處理不同的事務(wù),返回請(qǐng)求的相關(guān)線程或頁(yè)面文檔。下載解壓源代碼,進(jìn)入src目錄,執(zhí)行./configure生成makefile,采用flex和yacc進(jìn)行make編譯,執(zhí)行Arm-non-linux-gnueabi-strip命令瘦身,完成編譯。為保證Web服務(wù)的正常啟動(dòng),需要修改boa.conf文件中的Group、User、ScriptAlias、DocumentRootWeb、ServerName和AccessLog等參數(shù)。之后把編譯好的boa文件拷貝到數(shù)據(jù)中心Linux系統(tǒng)的/etc/boa目錄下,把Ubuntu的mime.types文件拷貝到數(shù)據(jù)中心Linux系統(tǒng)的/etc目錄,相關(guān)頁(yè)面文件拷貝到www目錄下,啟動(dòng)boa線程提供Web服務(wù)。

      圖5 消息處理線程流程圖

      圖6 數(shù)據(jù)庫(kù)線程流程圖 圖7 短信流程和效果圖

      (3)Wi-Fi無(wú)線網(wǎng)絡(luò)

      處理中心與客戶端通過(guò)Wi-Fi無(wú)線網(wǎng)絡(luò)連接,無(wú)線網(wǎng)絡(luò)配置步驟如下:①移植驅(qū)動(dòng),采用Marvell公司的8686芯片,從官網(wǎng)下載sd8686.bin和sd8686_helper.bin文件,拷貝到linux/fireware目錄下,執(zhí)行make menu config配置內(nèi)核,make zImage編譯內(nèi)核;②移植wpa_supplicant,下載wpa_supplicant和openssl的源代碼,編譯移植openssl和wpa-supplicant,其中openssl需要wpa_supplicant提供的openssl-版本號(hào)-tls-extensions.patch補(bǔ)丁文件,編譯后的wpa_cli和wpa_supplicant文件拷貝到bin目錄下;③無(wú)線連接,編寫域名和無(wú)線配置文件resolv.conf和wpa_psk_tkip.conf,創(chuàng)建wpa_supplicant目錄,執(zhí)行ifconfig配置IP地址、route add配置網(wǎng)關(guān)、wpa_supplicant連接無(wú)線網(wǎng)絡(luò),wpa_cli status查看網(wǎng)絡(luò)連接狀態(tài)。

      (4)短信發(fā)送

      GPRS[8-9]模塊通過(guò)AT指令實(shí)現(xiàn)短信發(fā)送,具有文本和PDU兩種模式,前者實(shí)現(xiàn)容易但僅支持英文文本,所以選擇支持中文文本的PDU模式。操作流程和效果如圖7所示。① 硬件初始化,這里用到串口引腳,發(fā)送AT指令測(cè)試連通性;② 模式設(shè)置,選擇PDU(AT+CMGF=0),設(shè)置信息長(zhǎng)度(AT+CMGS=信息長(zhǎng)度);③ 發(fā)送短信,包括中心號(hào)碼段、收信方號(hào)碼段和信息段3部分內(nèi)容。中心號(hào)碼段是0891683100501505F0,其中91表示國(guó)際化,683100501505F0的奇偶位反轉(zhuǎn)得到8613000551500,86表示中國(guó)地區(qū),13000551500是中心號(hào)碼,如果號(hào)碼位數(shù)是奇數(shù)要在末尾加F補(bǔ)齊,所以13000551500就變成了683100501505F0,加上91字段變成91683100501505F0,共計(jì)16位,除以2得8,8的16進(jìn)制表示是08,最終得到了0891683108501505F0。收信方號(hào)碼段是1100+0D91+ 68XXXXXXXXXXXX+000800,1100和000800是收信方號(hào)碼段的固定前綴與后綴,68XXXXXXXXXXXX與上述中心號(hào)碼段的處理是一樣的,表示的是短信的接收手機(jī)號(hào)。0D91中91表示接收方設(shè)備是手機(jī),0D是十進(jìn)制的13,因?yàn)?6XXXXXXXXXXX接收手機(jī)號(hào)是13位。最后是以Unicode編碼的信息段,也就是在手機(jī)上看到的短信內(nèi)容。比如短信內(nèi)容為“1號(hào)實(shí)驗(yàn)室溫度異常”,Unicode編碼為36位的003153F75B9E9A8C5BA46E295EA65F025E38,除以2得18,18的16進(jìn)制表示是12,所以信息段最終編碼為12003153F75B9E9A8C5BA46E295EA65F025E38,3部分內(nèi)容組合完成PDU模式的短信發(fā)送功能[10]。

      2.2.2 PC機(jī)

      考慮到本文對(duì)數(shù)據(jù)存儲(chǔ)的需求比較簡(jiǎn)單,且實(shí)驗(yàn)室PC機(jī)性能較為落后,采用SQLite數(shù)據(jù)庫(kù),這里涉及到兩種針對(duì)數(shù)據(jù)庫(kù)的操作:采樣數(shù)據(jù)在SQLite的存儲(chǔ)和LabVIEW監(jiān)控程序?qū)?shù)據(jù)庫(kù)的讀取。因?yàn)镻ython內(nèi)置了sqlite3,所以基于python實(shí)現(xiàn)SQLite的數(shù)據(jù)存儲(chǔ)。

      (1) Windows端SQLite配置應(yīng)用

      不同于嵌入式應(yīng)用場(chǎng)景,實(shí)驗(yàn)室已有PC機(jī)安裝了WIN7 32位系統(tǒng),SQLite配置應(yīng)用流程如下:① 數(shù)據(jù)庫(kù)安裝:在sqlite.org官網(wǎng)下載SQLite安裝包,分別是precompiled binaries for windows和shell壓縮包,前者對(duì)應(yīng)不同位的windows版本。創(chuàng)建一個(gè)目錄文件夾把解壓后的sqlite3.def、sqlite3.dll和sqlite3.exe,將三個(gè)文件放到同一個(gè)目錄下。② 配置測(cè)試:將sqlite3.exe的目錄途徑添加到環(huán)境變量PATH中,在cmd環(huán)境下輸入sqlite3.exe測(cè)試。③ 新建數(shù)據(jù)庫(kù)與表:sqlite3.命令用來(lái)創(chuàng)建新的SQLite數(shù)據(jù)庫(kù):sqlite3 DatabaseName.db該文件將被SQLite引擎用作數(shù)據(jù)庫(kù),創(chuàng)建成功后將提供一個(gè)sqlite>提示符。一旦數(shù)據(jù)庫(kù)被創(chuàng)建,可以使用.database命令檢查是否在數(shù)據(jù)庫(kù)列表中。CREATE TABLE語(yǔ)句用于創(chuàng)建表,tables 命令來(lái)驗(yàn)證表是否已成功創(chuàng)建。④ 對(duì)數(shù)據(jù)表的操作:sql語(yǔ)言。

      (2)數(shù)據(jù)存儲(chǔ)(python)

      PC機(jī)接收無(wú)線網(wǎng)絡(luò)傳輸來(lái)的環(huán)境信息并存儲(chǔ)到SQLite中,步驟如下:① 連接數(shù)據(jù)庫(kù):導(dǎo)入sqlite3模塊,調(diào)用sqlite3的connect方法連接數(shù)據(jù)庫(kù);② 創(chuàng)建表:創(chuàng)建cursor變量,調(diào)用execute方法,傳入create語(yǔ)句創(chuàng)建數(shù)據(jù)表,并運(yùn)行commit方法執(zhí)行操作;③ 網(wǎng)絡(luò)監(jiān)聽:導(dǎo)入socket模塊,設(shè)置好IP地址和端口號(hào),創(chuàng)建socket變量,調(diào)用bind和listen方法綁定網(wǎng)絡(luò)地址、端口和最大連接數(shù)。之后調(diào)用accept和recv方法即可接收來(lái)自網(wǎng)絡(luò)的數(shù)據(jù);④ Insert操作:執(zhí)行execute(insert into表名)將數(shù)據(jù)存儲(chǔ)到SQLite中。

      LabVIEW需要借助其他方式才能進(jìn)行數(shù)據(jù)庫(kù)操作,常用的有:① NI官方提供的LabVIEW sql toolkit工具包;② 微軟的ActiveX與ADO控件,基于sql語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn);③ C++編寫的dll(Dynamic Link Library)庫(kù);④ labsql等插件實(shí)現(xiàn)訪問(wèn)。本文因選擇了SQLite數(shù)據(jù)庫(kù),采用第3種方法。Sqlite3提供的sqlite3.dll內(nèi)封裝了數(shù)據(jù)庫(kù)操作VIs:sqlite3_open.vi、sqlite3_prepare.vi、sqlite3_step.vi、sqlite3_finalize.vi和sqlite3_close.vi,步驟如下:首先打開數(shù)據(jù)庫(kù)文件,聲明要執(zhí)行的SQL操作,這里是讀取操作,之后執(zhí)行聲明的SQL語(yǔ)句,操作完成銷毀SQL聲明并關(guān)閉數(shù)據(jù)庫(kù)。sqlite3.dll調(diào)用過(guò)程中需要注意如下兩點(diǎn):CLF(Call Library Function)節(jié)點(diǎn)配置時(shí),考慮到如若調(diào)用函數(shù)返回時(shí)間較長(zhǎng)可能導(dǎo)致LabVIEW不能執(zhí)行線程中的其他任務(wù)的情況,最好把DLL設(shè)置成“在任意線程中運(yùn)行”,前提要保證該DLL能同時(shí)被多個(gè)線程安全調(diào)用;調(diào)用規(guī)范一般選擇“普通C調(diào)用”,但如果是API(Application Programming Interface),要選擇stdcall(WINAPI)。

      2.3 客戶端

      圖8 基于HTML的監(jiān)控頁(yè)面

      客戶端提供了通過(guò)瀏覽器訪問(wèn)Web服務(wù)器和LabVIEW上位機(jī)程序兩種方式,瀏覽器訪問(wèn)的監(jiān)控頁(yè)面基于HTML編寫,其核心是表單,通過(guò)CGI程序解釋處理表單。用戶通過(guò)瀏覽器訪問(wèn)服務(wù)器,實(shí)時(shí)監(jiān)控實(shí)驗(yàn)室的環(huán)境工況并根據(jù)需求發(fā)送控制指令進(jìn)行控制的輸入信息,并在服務(wù)器中進(jìn)行處理,向?yàn)g覽器反饋信息。包括登錄頁(yè)面、控制頁(yè)面、環(huán)境信息頁(yè)面、實(shí)時(shí)監(jiān)控頁(yè)面和歷史記錄頁(yè)面等,如圖8所示。采樣前端接收的每條控制指令占一個(gè)字節(jié),按位控制,格式定義如下:命令=實(shí)驗(yàn)室編號(hào)+設(shè)備編號(hào)+操作,如表1所示。

      表1 操作參數(shù)表

      LabVIEW監(jiān)控程序如圖9(a)所示,應(yīng)用LabVIEW的web service提供了瀏覽器訪問(wèn)功能,點(diǎn)擊工具->web發(fā)布工具,啟動(dòng)web server,本文要發(fā)布動(dòng)態(tài)Vis,選擇monitor函數(shù),web用戶可以請(qǐng)求Vi控制權(quán)獲取控制Vi的功能。為保證該功能的正確使用,在配置時(shí)要注意幾下3點(diǎn):① 瀏覽器切換到兼容模式;② web發(fā)布選擇內(nèi)嵌模式;③ 服務(wù)器配置選擇SSL,查詢主機(jī)上的證書信息,訪問(wèn)效果如圖9(b)所示。

      圖9 基于labview的監(jiān)控上位機(jī)

      3 結(jié) 語(yǔ)

      本文基于嵌入式技術(shù)和無(wú)線網(wǎng)絡(luò)設(shè)計(jì)了多終端的實(shí)驗(yàn)室監(jiān)控系統(tǒng),采用LPC11C14設(shè)計(jì)采樣前端收集實(shí)驗(yàn)室環(huán)境信息,通過(guò)無(wú)線網(wǎng)絡(luò)將采集的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)處理中心,處理中心采用兩種存儲(chǔ)策略保證了數(shù)據(jù)存儲(chǔ)的可靠性。客戶端通過(guò)瀏覽器訪問(wèn)Web服務(wù)器或LabVIEW監(jiān)控程序?qū)崟r(shí)觀察實(shí)驗(yàn)室工況,根據(jù)需要控制采集前端的風(fēng)扇、蜂鳴器等設(shè)備。測(cè)試表明:多終端的監(jiān)控手段有效提升了效率,多存儲(chǔ)策略提高了可靠性,達(dá)到智能化管理的要求。

      猜你喜歡
      控制指令線程無(wú)線網(wǎng)絡(luò)
      城軌車輛控制指令試驗(yàn)裝置研制
      濾波器對(duì)無(wú)線網(wǎng)絡(luò)中干擾問(wèn)題的作用探討
      宏指令控制的多軸系統(tǒng)研究及實(shí)現(xiàn)
      淺談linux多線程協(xié)作
      無(wú)線網(wǎng)絡(luò)的中間人攻擊研究
      高速公路隧道通風(fēng)、照明聯(lián)動(dòng)控制方案探討
      科技視界(2016年13期)2016-06-13 23:11:43
      TD-LTE無(wú)線網(wǎng)絡(luò)高層建筑覆蓋技術(shù)研究與應(yīng)用
      煤礦提升機(jī)控制系統(tǒng)中PLC技術(shù)的應(yīng)用
      Linux線程實(shí)現(xiàn)技術(shù)研究
      數(shù)說(shuō)無(wú)線網(wǎng)絡(luò):覆蓋廣 流量大 均衡差
      通信世界(2012年36期)2012-07-16 08:51:46
      安徽省| 潜江市| 方正县| 凤阳县| 大洼县| 新干县| 曲沃县| 南部县| 海晏县| 固原市| 体育| 盖州市| 磐石市| 古丈县| 麦盖提县| 康保县| 墨竹工卡县| 通许县| 饶河县| 田林县| 应城市| 东乡族自治县| 逊克县| 河南省| 凤凰县| 南川市| 社旗县| 龙胜| 沂南县| 灌云县| 桐城市| 安义县| 临江市| 桐乡市| 历史| 德兴市| 镇原县| 甘谷县| 星子县| 龙游县| 大荔县|