999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LabVIEW和C#的泥泵輸送管道監(jiān)測(cè)系統(tǒng)設(shè)計(jì)

2020-03-10 02:15:12,,,
機(jī)械與電子 2020年2期
關(guān)鍵詞:系統(tǒng)

,,,

(1.河海大學(xué)機(jī)電工程學(xué)院,江蘇 常州213022;2.疏浚技術(shù)教育部工程研究中心,江蘇 常州 213022;3.江蘇省水利機(jī)械制造有限公司,江蘇,揚(yáng)州,225001)

0 引言

絞吸挖泥船進(jìn)行疏浚作業(yè)時(shí),泥漿輸送管道內(nèi)泥漿壓力、流速和濃度影響著管道壽命和淤積狀態(tài),進(jìn)而影響挖泥船的工作效率,因此管道內(nèi)各參數(shù)的監(jiān)測(cè)對(duì)絞吸挖泥船正常工作至關(guān)重要,更是挖泥船實(shí)現(xiàn)自動(dòng)化控制的基礎(chǔ)。傳統(tǒng)的監(jiān)測(cè)系統(tǒng),例如基于組態(tài)軟件、或單片機(jī)、或LabVIEW的監(jiān)測(cè)系統(tǒng),都在單輸入單輸出的傳統(tǒng)PID控制中取得了較好的效果[1-3]。但由于水下地形和土質(zhì)的變化較大,使得管道內(nèi)流態(tài)的波動(dòng)也很大,故需要引入自適應(yīng)能力更強(qiáng)、魯棒性更好的強(qiáng)化學(xué)習(xí)控制算法[4]。

本文搭建監(jiān)測(cè)系統(tǒng),為強(qiáng)化學(xué)習(xí)控制算法提供研究平臺(tái)。為便于強(qiáng)化學(xué)習(xí)算法建立訓(xùn)練探索模塊,監(jiān)測(cè)系統(tǒng)必須提供準(zhǔn)確的狀態(tài)數(shù)據(jù);為實(shí)時(shí)顯示數(shù)據(jù),監(jiān)測(cè)系統(tǒng)必須有實(shí)時(shí)性要求。目前,主要有C++,python,C#和MATLAB可以實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)算法。C#編程靈活,LabVIEW在數(shù)據(jù)采集有強(qiáng)大的優(yōu)勢(shì),結(jié)合兩者優(yōu)點(diǎn),搭建基于LabVIEW和C#的監(jiān)測(cè)系統(tǒng)。

1 泥漿管道輸送監(jiān)測(cè)系統(tǒng)

1.1 監(jiān)測(cè)系統(tǒng)的總體設(shè)計(jì)

該監(jiān)測(cè)系統(tǒng)采用的實(shí)驗(yàn)平臺(tái)是泥泵自主調(diào)速試驗(yàn)臺(tái)。泥泵自主調(diào)速試驗(yàn)臺(tái)主要由22 kW泥泵機(jī)組、傳感測(cè)量系統(tǒng)、循環(huán)管路裝置和驅(qū)動(dòng)裝置組成。疏浚泥泵自主調(diào)速實(shí)驗(yàn)平臺(tái)如圖1所示。

圖1 實(shí)驗(yàn)平臺(tái)

本系統(tǒng)采用上下位機(jī)(upper and lower computers)結(jié)構(gòu),下位機(jī)LabVIEW對(duì)采集到的數(shù)據(jù)進(jìn)行量程轉(zhuǎn)化,并將其打包成數(shù)組,以JSON格式發(fā)送給上位機(jī)。上位機(jī)C#對(duì)采集的數(shù)據(jù)進(jìn)行存儲(chǔ)、顯示。本監(jiān)測(cè)系統(tǒng)框架如圖2所示。

圖2 實(shí)驗(yàn)平臺(tái)監(jiān)控系統(tǒng)框架

下位機(jī)編寫LabVIEW RT程序,在和上位機(jī)通信時(shí)采用TCP協(xié)議,以保證從采集數(shù)據(jù)到上位機(jī)接收、顯示數(shù)據(jù)整個(gè)過(guò)程的實(shí)時(shí)性。針對(duì)通信時(shí)數(shù)據(jù)交換格式保持統(tǒng)一的問(wèn)題,選擇C#和LabVIEW均支持的JSON數(shù)據(jù)格式。考慮到軟件界面的多樣性和豐富性,上位機(jī)采用文本框、儀表盤和曲線圖的方式來(lái)顯示數(shù)據(jù)。

1.2 下位機(jī)程序設(shè)計(jì)

下位機(jī)包含2個(gè)功能模塊:數(shù)據(jù)處理模塊和通信模塊。實(shí)時(shí)數(shù)據(jù)采集模塊和通信模塊分別采用1 MHz和1 kHz時(shí)鐘cRIO-9035內(nèi)部定時(shí)源,采集模塊和通信模塊優(yōu)先級(jí)都設(shè)置為100,確保下位機(jī)既可以實(shí)時(shí)采集數(shù)據(jù),又及時(shí)將數(shù)據(jù)發(fā)送給上位機(jī)[5]。下位機(jī)結(jié)構(gòu)如圖3所示。

圖3 下位機(jī)結(jié)構(gòu)

a.數(shù)據(jù)處理模塊。采集模塊主要有2個(gè)功能:讀取NI板卡采集到的傳感器信號(hào);對(duì)電流、電壓值進(jìn)行量程轉(zhuǎn)化,并封裝成數(shù)組。LabVIEW提供的“讀取變量函數(shù)”以數(shù)組方式訪問(wèn)NI板卡的I/O通道,并返回一個(gè)數(shù)組,如圖3所示。因此,在RT程序的設(shè)計(jì)中,可以通過(guò)數(shù)組索引的方式,來(lái)讀取指定通道中所有I/O值。用擬合好的傳感器線性函數(shù)把電流、電壓值轉(zhuǎn)化為壓力、流速等監(jiān)測(cè)數(shù)據(jù)[6]。由于 LabVIEW進(jìn)行TCP通信時(shí),不支持傳輸簇類型的數(shù)據(jù),因此,利用“創(chuàng)建數(shù)組”函數(shù),將出口壓力、進(jìn)口壓力、電機(jī)轉(zhuǎn)矩和電機(jī)轉(zhuǎn)速等監(jiān)測(cè)數(shù)據(jù)封裝成1個(gè)一維數(shù)組。

b.通信模塊。通信模塊將采集模塊處理得到的一維數(shù)組轉(zhuǎn)化為JSON字符串,并通Socket發(fā)送給上位機(jī)。在進(jìn)行Socket傳輸數(shù)據(jù)時(shí),必須要保證數(shù)據(jù)格式統(tǒng)一。本系統(tǒng)選擇最為常用的JSON格式。

JSON格式是一種輕量級(jí)的數(shù)據(jù)交換格式,任何數(shù)據(jù)類型都可以過(guò)JSON來(lái)表示。故利用"平化至JSON" 函數(shù),返回一個(gè)編碼格式為UTF-8的JSON字符串。

鑒于該監(jiān)測(cè)系統(tǒng)對(duì)傳輸數(shù)據(jù)的準(zhǔn)確性和實(shí)時(shí)性有一定的要求,故而采用面向連接的Socket。面向連接的Socket操作使用TCP協(xié)議。本系統(tǒng)采用stream Sockets類型,下位機(jī)把字符串寫入字節(jié)流中,上位機(jī)從字節(jié)流中讀取字符串,從而實(shí)現(xiàn)通信[7]。

下位機(jī)通信過(guò)程如下:下位機(jī)建立套接字,并偵聽(tīng)連接請(qǐng)求;上位機(jī)發(fā)送連接請(qǐng)求給下位機(jī)后,下位機(jī)會(huì)相應(yīng)地發(fā)送確認(rèn)連接的請(qǐng)求給上位機(jī),并且建立連接;當(dāng)通信結(jié)束后,斷開(kāi)連接。

1.3 上位機(jī)程序設(shè)計(jì)

上位機(jī)C#程序主要分為3部分:Socket通信部分、數(shù)據(jù)顯示部分和存儲(chǔ)與導(dǎo)出部分。Socket通信部分主要保證數(shù)據(jù)實(shí)時(shí)、可靠、安全地在網(wǎng)絡(luò)中進(jìn)行傳輸。數(shù)據(jù)顯示部分主要實(shí)現(xiàn)文本框、儀表盤實(shí)時(shí)顯示數(shù)據(jù)、曲線實(shí)時(shí)繪制功能。存儲(chǔ)與導(dǎo)出部分主要實(shí)現(xiàn)以Excel作為模板進(jìn)行數(shù)據(jù)存儲(chǔ)功能。上位機(jī)對(duì)應(yīng)結(jié)構(gòu)如圖4所示。

圖4 上位機(jī)結(jié)構(gòu)

由于上位機(jī)程序同時(shí)執(zhí)行通信、顯示與存儲(chǔ)任務(wù),為提高對(duì)用戶的響應(yīng)速度[8],以便幾乎同時(shí)完成,可采用多線程技術(shù)。Socket通信單獨(dú)作為一個(gè)子線程。DataModel子線程是中間橋梁,負(fù)責(zé)將傳輸給上位機(jī)的數(shù)據(jù)提供給顯示控件,以及提供Excel存儲(chǔ)所需的數(shù)據(jù)。ChartModel子線程每隔10 s對(duì)數(shù)據(jù)進(jìn)行篩選,并給對(duì)應(yīng)圖表賦值。

1.3.1 Socket通信

上位機(jī)Socket通信創(chuàng)建步驟:在上位機(jī)建立Socket,并確保端口號(hào)和IP地址與下位機(jī)相同;向下位機(jī)發(fā)送連接請(qǐng)求,經(jīng)下位機(jī)確認(rèn)后,建立連接,交換數(shù)據(jù)。

為實(shí)現(xiàn)下位機(jī)和上位機(jī)的Socket通信,仍需做以下2方面工作。

a.異步通信的實(shí)現(xiàn)。上下位機(jī)通信時(shí),通信子線程調(diào)用BeginReceive函數(shù)實(shí)現(xiàn)異步通訊,同時(shí)采用事件驅(qū)動(dòng)方式調(diào)度回調(diào)函數(shù)實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)接收等功能[9-10]。選擇異步通信的好處就在于提高了程序的整體響應(yīng)能力,避免出現(xiàn)用戶界面卡頓。

b.反序列化的實(shí)現(xiàn)。在上位機(jī)接收到數(shù)據(jù)后,需將字符串反序列化為float類型數(shù)組。具體反序列化的過(guò)程是:在上位機(jī)中,將將壓力、流速等監(jiān)測(cè)數(shù)據(jù)組成的JSON字符串,利用C#中的分割字符串函數(shù)Split,將JSON字符串變成字符串?dāng)?shù)組。最后利用foreach語(yǔ)句遍歷將字符串?dāng)?shù)組,將其轉(zhuǎn)化成float類型數(shù)組[11]。

1.3.2 數(shù)據(jù)顯示

當(dāng)上位機(jī)將Socket通信得到的壓力、流速等參數(shù)解析完成后,便實(shí)時(shí)地將這些參數(shù)顯示在文本框、儀表盤和曲線圖中。數(shù)據(jù)顯示過(guò)程中需要不斷的更新界面,更新界面很耗時(shí),需要將訪問(wèn)該控件的線程設(shè)置在Socket通信子線程,但顯示數(shù)據(jù)的控件是在主線程中創(chuàng)建的,線程會(huì)發(fā)生沖突,程序會(huì)出現(xiàn)異常。為解決上述問(wèn)題,調(diào)用C#中的BeginInvoke函數(shù)。該函數(shù)可以在子線程修改主線程創(chuàng)建的對(duì)象的屬性,將更新的數(shù)據(jù)返回主線程,最終顯示在文本框和儀表盤上。部分界面更新程序如表1所示。曲線圖需要選擇10 s內(nèi)的數(shù)據(jù)進(jìn)行顯示,故而曲線圖的程序編寫相對(duì)特殊。在圖表子線程中構(gòu)建圖表的模型,將圖表中原數(shù)據(jù)清空,并獲取當(dāng)前數(shù)據(jù)前10 s的時(shí)間,根據(jù)選擇的時(shí)間去Datemodel子線程調(diào)用相應(yīng)數(shù)據(jù),最后將圖表子線程中的數(shù)據(jù)綁定到圖表中顯示。

表1 部分界面更新程序

1.3.3 數(shù)據(jù)存儲(chǔ)與導(dǎo)出

數(shù)據(jù)存儲(chǔ)程序設(shè)計(jì)時(shí)主要考慮到2個(gè)方面的內(nèi)容:需要操作方便,靈活地保存監(jiān)測(cè)到的各項(xiàng)參數(shù);當(dāng)界面開(kāi)始工作后,能夠根據(jù)需要手動(dòng)保存相應(yīng)時(shí)間段內(nèi)的數(shù)據(jù)。

目前,C#中導(dǎo)成Excel文件的方式最常用的有3種:OLEDB方式、COM組件方式和NPOI庫(kù)。鑒于NPOI組件可以很好地支持對(duì)Excel文件的讀寫操作,不僅不依賴office環(huán)境,同時(shí)開(kāi)發(fā)效率也很高[12]。本項(xiàng)目選擇NPOI庫(kù)導(dǎo)出Excel文件。

2 監(jiān)控系統(tǒng)測(cè)試

為檢驗(yàn)監(jiān)測(cè)系統(tǒng)的準(zhǔn)確性和實(shí)時(shí)性,測(cè)試電機(jī)300轉(zhuǎn)時(shí)該系統(tǒng)的通信過(guò)程。進(jìn)行測(cè)試前,需要額外在下位機(jī)編寫控制程序。首先,鑒于開(kāi)關(guān)量輸出和模擬量輸出模塊的通道分別是32和16,故而設(shè)置32位和16位數(shù)組,并分別初始化。該實(shí)驗(yàn)臺(tái)只控制1個(gè)變頻器,利用"寫入變量函數(shù)"把電機(jī)啟停和轉(zhuǎn)速信號(hào)寫入輸出模塊。下位機(jī)控制程序如圖5所示。

圖5 下位機(jī)控制程序

經(jīng)測(cè)試,基于C#和LabVIEW的監(jiān)測(cè)系統(tǒng)可以實(shí)時(shí)顯示管道內(nèi)的壓力、流速和濃度等重要參數(shù)。C#和LabVIEW正常通信,響應(yīng)速度快。用戶界面正常更新,無(wú)卡頓現(xiàn)象。從Excel表格中看出,數(shù)據(jù)存儲(chǔ)成功并且沒(méi)有遺漏。運(yùn)行時(shí)該系統(tǒng)的上位機(jī)監(jiān)測(cè)軟件界面如圖6所示。

圖6 監(jiān)測(cè)軟件界面

3 結(jié)束語(yǔ)

該監(jiān)測(cè)系統(tǒng)采用C#設(shè)計(jì)上位機(jī)程序,LabVIEW設(shè)計(jì)下位機(jī)程序,利用TCP協(xié)議進(jìn)行上下位機(jī)通信,保證了實(shí)時(shí)性要求。編程過(guò)程中,采用多線程技術(shù)解決了響應(yīng)速度慢的問(wèn)題,利用C#中的BeginInvoke等函數(shù)解決了界面更新等問(wèn)題,實(shí)現(xiàn)了數(shù)據(jù)的顯示、存儲(chǔ)與更新。以上的工作,為后續(xù)的強(qiáng)化學(xué)習(xí)控制算法的引入做好鋪墊,對(duì)泥漿管道的研究有參考意義。

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動(dòng)化虛擬裝配系統(tǒng)開(kāi)發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 91黄色在线观看| 国产欧美日韩精品第二区| 91探花在线观看国产最新| 欧美在线国产| 午夜精品一区二区蜜桃| 国产精品手机视频一区二区| 国产真实乱了在线播放| 四虎永久在线| 国产 在线视频无码| 久久精品视频亚洲| 亚洲狠狠婷婷综合久久久久| 熟妇丰满人妻av无码区| 黄色网址手机国内免费在线观看| 久久国产亚洲欧美日韩精品| 亚洲制服丝袜第一页| 国产精品无码一区二区桃花视频| 午夜福利视频一区| 国产成人h在线观看网站站| 女人18一级毛片免费观看| 国产在线高清一级毛片| 成人综合在线观看| 黄色不卡视频| 福利一区在线| 波多野结衣一区二区三视频 | 一本综合久久| 成年人国产网站| 亚洲第一国产综合| 精品视频在线一区| 国产自无码视频在线观看| 久久人搡人人玩人妻精品| 久久精品这里只有国产中文精品| 久青草网站| 在线亚洲精品福利网址导航| 色噜噜综合网| 国产激情无码一区二区APP| 国产免费人成视频网| 欧洲欧美人成免费全部视频| 四虎亚洲国产成人久久精品| 亚洲天堂视频网站| 久草视频一区| 伦伦影院精品一区| 人妻一本久道久久综合久久鬼色| 午夜激情福利视频| 亚洲欧州色色免费AV| 国产日韩精品欧美一区喷| 久久香蕉国产线看观看式| 三上悠亚精品二区在线观看| 日韩精品视频久久| 久久五月视频| 欧美α片免费观看| 亚洲一级无毛片无码在线免费视频 | 国产精品太粉嫩高中在线观看| 99久久精品美女高潮喷水| 五月婷婷亚洲综合| 乱人伦视频中文字幕在线| 久久这里只有精品23| 人妻精品久久无码区| 国产在线拍偷自揄观看视频网站| 欧美a级完整在线观看| a网站在线观看| 亚洲AV无码不卡无码| 日本成人在线不卡视频| 97综合久久| 91免费国产高清观看| 国产门事件在线| 国产白浆一区二区三区视频在线| 国产精品无码作爱| 国产精品久久自在自线观看| 亚洲首页国产精品丝袜| 亚洲人成网站18禁动漫无码| 色综合热无码热国产| 国产麻豆91网在线看| 国产成年无码AⅤ片在线| 亚洲码在线中文在线观看| 国产本道久久一区二区三区| 一级毛片免费观看不卡视频| 亚洲a免费| 亚洲欧洲日韩综合色天使| 日韩在线观看网站| av在线手机播放| 国产精品成人观看视频国产 | 精品超清无码视频在线观看|