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

        ?

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

        2020-03-10 02:15:12,,,
        機械與電子 2020年2期
        關鍵詞:字符串數(shù)組下位

        ,,,

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

        0 引言

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

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

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

        1.1 監(jiān)測系統(tǒng)的總體設計

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

        圖1 實驗平臺

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

        圖2 實驗平臺監(jiān)控系統(tǒng)框架

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

        1.2 下位機程序設計

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

        圖3 下位機結構

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

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

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

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

        下位機通信過程如下:下位機建立套接字,并偵聽連接請求;上位機發(fā)送連接請求給下位機后,下位機會相應地發(fā)送確認連接的請求給上位機,并且建立連接;當通信結束后,斷開連接。

        1.3 上位機程序設計

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

        圖4 上位機結構

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

        1.3.1 Socket通信

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

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

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

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

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

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

        表1 部分界面更新程序

        1.3.3 數(shù)據(jù)存儲與導出

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

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

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

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

        圖5 下位機控制程序

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

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

        3 結束語

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

        猜你喜歡
        字符串數(shù)組下位
        JAVA稀疏矩陣算法
        電腦報(2022年13期)2022-04-12 00:32:38
        JAVA玩轉數(shù)學之二維數(shù)組排序
        電腦報(2020年24期)2020-07-15 06:12:41
        發(fā)射機房監(jiān)控系統(tǒng)之下位機
        景洪電廠監(jiān)控系統(tǒng)下位機數(shù)據(jù)傳輸網(wǎng)絡改造
        圍觀黨“下位”,吐槽帝“登基”
        北京紀事(2016年5期)2016-05-07 13:17:02
        尋找勾股數(shù)組的歷程
        CAN總線并發(fā)通信時下位機應用軟件設計
        一種新的基于對稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        VB數(shù)組在for循環(huán)中的應用
        考試周刊(2012年88期)2012-04-29 04:36:47
        丰满少妇被猛男猛烈进入久久| 一本色道加勒比精品一区二区 | 美利坚日韩av手机在线| 国产成人a在线观看视频免费| 醉酒后少妇被疯狂内射视频| 国产精品久久久一本精品| 在线观看视频国产一区二区三区 | 一区二区三区四区亚洲综合| 久久综合国产精品一区二区| 亚洲av无码专区在线观看成人| 色综合无码av网站| www.尤物视频.com| 极品美女调教喷水网站| 极品少妇小泬50pthepon| 国产一级做a爱免费观看| 精品丝袜一区二区三区性色| 白白色发布免费手机在线视频观看 | 国产亚洲一区二区在线观看| 国产一区二区三区av在线无码观看| 亚洲熟妇av日韩熟妇av| 人妖在线一区二区三区| 亚洲av无码一区二区三区天堂古代 | 日韩av不卡一二三区| 所有视频在线观看免费 | 色狠狠色狠狠综合一区| 日本福利视频免费久久久| 亚洲成人免费av影院| 国产成人一区二区三区影院动漫| 精品亚洲午夜久久久久| 亚洲国产日韩综合天堂| 在线亚洲高清揄拍自拍一品区| 97超级碰碰人妻中文字幕| 日本五十路熟女在线视频| 女同视频一区二区在线观看| 亚洲综合精品伊人久久 | 丁香婷婷激情俺也去俺来也| 人人澡人人妻人人爽人人蜜桃麻豆| 中文字幕人妻丝袜乱一区三区 | 亚洲人成在线播放a偷伦| 人妻一区二区三区av| 无码av无码天堂资源网|