摘" 要:當(dāng)前復(fù)雜多變的客戶應(yīng)用場景,對激光傳感器參數(shù)配置的靈活性和故障診斷的效率提出了更高的要求,該文設(shè)計(jì)一種基于Python和Pyqt的激光傳感器參數(shù)設(shè)置與調(diào)試軟件。該軟件可讓技術(shù)支持工程師在客戶現(xiàn)場根據(jù)不同的應(yīng)用場景寫入定制的參數(shù)配置,并可通過通信對激光傳感器進(jìn)行調(diào)試和故障分析。實(shí)際測試表明,軟件可以成功讀取和修改激光傳感器的參數(shù)配置,并通過通信對其進(jìn)行調(diào)試和故障分析,從而滿足客戶應(yīng)用場景多樣化的需求。
關(guān)鍵詞:激光傳感器; 上位機(jī)軟件; 參數(shù)設(shè)置; Python; Pyqt
中圖分類號:TP319""""" 文獻(xiàn)標(biāo)志碼:A""""""""" 文章編號:2095-2945(2025)04-0114-04
Abstract: The current complex and ever-changing customer application scenarios have put forward higher requirements for the flexibility of laser sensor parameter configuration and the efficiency of fault diagnosis. This article designs a laser sensor parameter setting and debugging software based on Python and Pyqt. This software allows technical support engineers to write customized parameter configurations based on different application scenarios at customer sites, and can debug and analyze laser sensors through communication. Actual testing has shown that the software can successfully read and modify the parameter configuration of laser sensors, and debug and analyze them through communication, thereby meeting the diverse needs of customer application scenarios.
Keywords: laser sensor; PC software; parameter settings; Python; Pyqt
激光傳感器是通過激光技術(shù)進(jìn)行數(shù)據(jù)測量采集的傳感器,其由激光發(fā)射器、激光檢測器及測量電路組成,可實(shí)現(xiàn)遠(yuǎn)距離無接觸測量,具備數(shù)據(jù)采集精度高、抗電干擾能力較強(qiáng)的特點(diǎn)[1]。
在實(shí)際應(yīng)用中,由于客戶現(xiàn)場使用場景復(fù)雜多變,給激光傳感器的硬件軟件設(shè)計(jì)、現(xiàn)場的故障診斷提出了更高的要求[2]。為提高激光傳感器的通用性,軟硬件進(jìn)行了模塊化設(shè)計(jì),在非易失存儲器中創(chuàng)建可配置參數(shù)。針對不同的客戶應(yīng)用場景,設(shè)置不同的配置參數(shù)(例如網(wǎng)絡(luò)名稱、網(wǎng)絡(luò)地址等),有效提高激光傳感器在應(yīng)用中的作業(yè)效率[3],從而覆蓋更多客戶應(yīng)用場景,提高了產(chǎn)品的通用性。
隨著技術(shù)的發(fā)展,激光傳感器開始具備網(wǎng)絡(luò)通信功能。在客戶應(yīng)用場景中,往往包含多個激光傳感器,這就要求在同一個網(wǎng)絡(luò)中的各個激光傳感器的網(wǎng)絡(luò)名稱、網(wǎng)絡(luò)地址均不相同,因此配置參數(shù)也各不相同。
針對不同客戶應(yīng)用場景定制不同的配置參數(shù),傳統(tǒng)的做法是在產(chǎn)品生產(chǎn)環(huán)節(jié),向激光傳感器燒錄程序的同時寫入定制的配置參數(shù)[4]。然而上述做法有以下幾個不足:第一,增加了生產(chǎn)的復(fù)雜性和產(chǎn)品的生產(chǎn)時間,降低了產(chǎn)能;第二,存在配置參數(shù)管理問題,若寫入錯誤的配置參數(shù)則會影響客戶使用,嚴(yán)重時甚至?xí)獾娇蛻敉对V。
對于客戶現(xiàn)場的故障診斷,傳統(tǒng)的做法是技術(shù)支持工程師按劃定范圍逐步測量輸入和輸出信號進(jìn)行故障分析和排查[5]。該做法存在以下幾點(diǎn)不足:其一,排查問題需耗費(fèi)大量時間,效率較低;其二,所測量的信號并非故障發(fā)生時的信號,不利于故障分析。
綜上,本文設(shè)計(jì)了基于Python和Pyqt的激光傳感器參數(shù)設(shè)置與調(diào)試軟件。通過該軟件,技術(shù)支持工程師可在客戶現(xiàn)場根據(jù)具體的應(yīng)用場景對激光傳感器設(shè)置相應(yīng)的配置參數(shù),一方面滿足了應(yīng)用場景需求,另一方面簡化了產(chǎn)品生產(chǎn)流程,縮短生產(chǎn)時間,同時避免了由于寫入錯誤配置參數(shù)導(dǎo)致客戶投訴的問題;此外,在進(jìn)行故障診斷時,可通過該軟件讀取存儲在激光傳感器內(nèi)部的故障碼以及歷史運(yùn)行數(shù)據(jù),從而更加客觀和高效地進(jìn)行故障分析和排查,有利于快速發(fā)現(xiàn)問題,解決問題。
1" 系統(tǒng)組成
系統(tǒng)結(jié)構(gòu)圖如圖1所示。激光傳感器由發(fā)射器、接收器和核心嵌入式電路板組成[6],電路板由電源模塊將220VAC轉(zhuǎn)換成24VDC進(jìn)行供電,電路板通過RS-232和網(wǎng)絡(luò)透傳芯片進(jìn)行通信,網(wǎng)絡(luò)透傳芯片通過TCP/IP與上位機(jī)進(jìn)行通信。
運(yùn)行的上位機(jī)的參數(shù)設(shè)置與調(diào)試軟件,可通過TCP/IP向激光傳感器發(fā)送配置參數(shù)查詢命令,讀取到所有配置參數(shù)后,可在上位機(jī)對配置參數(shù)進(jìn)行修改,并通過發(fā)送配置參數(shù)修改命令,修改激光傳感器中的配置參數(shù)。此外,上位機(jī)軟件可通過TCP/IP向激光傳感器發(fā)送預(yù)定義的測試命令,讀取傳感器內(nèi)部存儲的故障碼和實(shí)時運(yùn)行信息。
2" 上位機(jī)軟件設(shè)計(jì)
2.1" 軟件功能設(shè)計(jì)
軟件功能設(shè)計(jì)如圖2所示。從圖2中可知,使用軟件的角色有3種:技術(shù)支持工程師、生產(chǎn)工程師和現(xiàn)場用戶。3種角色通過賬號密碼方式登錄;使用角色可通過軟件搜索與PC機(jī)連接的所有的激光傳感器設(shè)置,點(diǎn)擊其中的一個設(shè)備即可讀取該激光傳感器的參數(shù),在上位機(jī)修改參數(shù)并寫入到激光傳感器中;參數(shù)配置結(jié)束后,可對該激光傳感器進(jìn)行故障診斷,首先進(jìn)行網(wǎng)絡(luò)調(diào)試設(shè)置,然后按照激光傳感器的協(xié)議發(fā)送調(diào)試數(shù)據(jù),接收返回的調(diào)試數(shù)據(jù)并進(jìn)行分析。
2.2 整體架構(gòu)設(shè)計(jì)
程序采用Python+Pyqt進(jìn)行開發(fā)。軟件界面是通過Pyqt工具包搭建的,Pyqt是一個用于創(chuàng)建GUI應(yīng)用程序的跨平臺工具包,可將Python與Qt庫融為一體[7]。軟件整體架構(gòu)圖如圖3所示。
Main.py中的Class:MainWindowApp為主程序入口,負(fù)責(zé)全局Signal信號的控制和處理,軟件前端部分(界面)調(diào)用了MainWindowLogic.py的WidgetLogic負(fù)責(zé)各控件UI顯示處理以及控件的邏輯處理,WidgetLogic調(diào)用了UI/NetToolsUI.py的Ui_MainWindow負(fù)責(zé)純UI界面全部控件與布局以及UI圖片、圖標(biāo)的顯示;軟件后臺部分調(diào)用了Network/__init__.py中的NetworkLogic對網(wǎng)絡(luò)進(jìn)行初始化和配置,該模塊分別調(diào)用了Network/Tcp.py中的TcpLogic實(shí)現(xiàn)了TCP的服務(wù)器端和客戶端通信功能,調(diào)用了Network/Udp.py中的UdpLogic實(shí)現(xiàn)了UDP的服務(wù)器端和客戶端通信功能,調(diào)用了Network/NetModuleConfig.py中的NetModuleCfg實(shí)現(xiàn)了網(wǎng)絡(luò)設(shè)備搜索、獲取網(wǎng)絡(luò)設(shè)備配置、恢復(fù)網(wǎng)絡(luò)設(shè)備出廠設(shè)置等功能。
2.3" 軟件界面設(shè)計(jì)
軟件界面原型圖如圖4所示。從右上方的菜單處可以點(diǎn)擊“用戶登錄”進(jìn)行3種角色權(quán)限的登錄,不同的角色顯示不同的功能區(qū)域,最高權(quán)限的技術(shù)支持工程師的用戶界面,該權(quán)限可訪問所有的功能區(qū)域。首先可選擇上位機(jī)的網(wǎng)絡(luò)適配器;然后點(diǎn)擊“搜索設(shè)備”按鈕查找與該網(wǎng)絡(luò)適配器連接的所有網(wǎng)絡(luò)設(shè)備(激光傳感器)并顯示在設(shè)備列表中;雙擊設(shè)備列表中的“設(shè)備”,既可讀取該設(shè)備中的所有配置參數(shù)并顯示在“基礎(chǔ)設(shè)備”和“端口1”中;在界面中手動修改設(shè)備參數(shù)并點(diǎn)擊“配置設(shè)備參數(shù)”按鈕,即可將新的配置參數(shù)寫入網(wǎng)絡(luò)設(shè)備(激光傳感器)。
更新配置參數(shù)完畢,可在“網(wǎng)絡(luò)調(diào)試設(shè)置”中選擇相應(yīng)的網(wǎng)絡(luò)適配器,根據(jù)激光傳感器配置參數(shù)中的“網(wǎng)絡(luò)模式”,選擇上位機(jī)相對應(yīng)的“協(xié)議類型”“本地端口”“目標(biāo)IP”和“目標(biāo)端口”,點(diǎn)擊“連接”按鈕即可完成上位機(jī)與激光傳感器的網(wǎng)絡(luò)連接,在“網(wǎng)絡(luò)發(fā)送區(qū)”中按照激光傳感器的應(yīng)用協(xié)議發(fā)送相應(yīng)命令,即可讀取存儲在激光傳感器中的故障碼、歷史運(yùn)行信息,以及讀取和更新應(yīng)用配置參數(shù)。
2.4" 軟件流程設(shè)計(jì)
軟件流程圖如圖5所示。由圖5可知,用戶首先選擇網(wǎng)絡(luò)適配器,然后搜索與該網(wǎng)絡(luò)適配器連接的所有激光傳感器(網(wǎng)絡(luò)設(shè)備),雙擊設(shè)備列表中的設(shè)備名稱讀取所有配置參數(shù)并顯示,修改界面中對應(yīng)的參數(shù)并寫入激光傳感器,最后通過TCP/UDP向激光傳感器讀取故障碼和歷史運(yùn)行信息,以及讀取和更新應(yīng)用配置參數(shù)。
NetModuleConfig.py實(shí)現(xiàn)網(wǎng)絡(luò)配置相關(guān)功能,包括設(shè)備搜索/獲取配置/配置/恢復(fù)出廠配置,配置數(shù)據(jù)格式轉(zhuǎn)換/處理/交互。其核心的NetModuleCfg代碼如圖6所示。
3" 測試結(jié)果與分析
3.1" 測試環(huán)境搭建
樣機(jī)的測試環(huán)境如圖7所示。
激光傳感器由直流電源模塊供24 V直流電,傳感器通過網(wǎng)絡(luò)透傳模塊與上位機(jī)進(jìn)行通信。上位機(jī)通過參數(shù)設(shè)置與調(diào)試軟件向激光傳感器發(fā)送相關(guān)命令,實(shí)現(xiàn)修改配置參數(shù),讀取故障碼和歷史運(yùn)行信息等。
3.2" 測試結(jié)果及分析
激光傳感器參數(shù)設(shè)置與調(diào)試軟件功能測試共包含以下部分:角色登錄、網(wǎng)絡(luò)設(shè)備搜索、配置參數(shù)讀取、更新配置參數(shù)、TCP/UDP網(wǎng)絡(luò)連接、激光傳感器應(yīng)用層協(xié)議通信。測試結(jié)果見表1。
測試實(shí)際界面如圖8所示。以技術(shù)支持工程師角色登錄后,上位機(jī)連接一個激光傳感器,軟件能夠成功搜索出該設(shè)備并顯示在設(shè)備列表中,雙擊列表中的設(shè)備,成功顯示所有配置參數(shù)。修改設(shè)備名為“BEA Flatscan”,設(shè)備IP從“192.168.1.100”修改為“192.168.2.200”點(diǎn)擊“配置設(shè)備參數(shù)”,成功寫入并回讀,在界面下方顯示“設(shè)備配置成功并重啟完成”。在“網(wǎng)絡(luò)調(diào)試助手”中按照激光傳感器的配置參數(shù),設(shè)置上位機(jī)對應(yīng)的網(wǎng)絡(luò)設(shè)置并成功連接,界面下方顯示“網(wǎng)絡(luò)狀態(tài):TCP Server”,在網(wǎng)絡(luò)發(fā)送區(qū)發(fā)送讀取故障碼、歷史運(yùn)行信息命令、讀取和修改應(yīng)用配置參數(shù)命令,網(wǎng)絡(luò)接收區(qū)中成功收到激光傳感器所回復(fù)的故障碼、歷史運(yùn)行信息以及更新后的應(yīng)用配置參數(shù)反饋信息。
4" 結(jié)束語
本文設(shè)計(jì)開發(fā)了一種基于Python和Pyqt的激光傳感器參數(shù)設(shè)置與調(diào)試軟件。該軟件可通過網(wǎng)絡(luò)與激光傳感器進(jìn)行通信,并通過通信讀取激光傳感器的配置參數(shù)并進(jìn)行修改;可根據(jù)激光傳感器的網(wǎng)絡(luò)配置參數(shù),靈活選擇TCP或UDP進(jìn)行連接,向激光傳感器發(fā)送相應(yīng)命令讀取故障碼和實(shí)時運(yùn)行信息,并讀取和修改應(yīng)用配置參數(shù)。實(shí)驗(yàn)證明,采用該軟件可以讓激光傳感器適用于更多的客戶應(yīng)用場景,進(jìn)一步滿足客戶需求。同時簡化激光傳感器的生產(chǎn)流程,縮短了生產(chǎn)時間,提高了產(chǎn)能,并避免在生產(chǎn)環(huán)節(jié)寫入錯誤的配置參數(shù)導(dǎo)致客戶投訴的問題。
參考文獻(xiàn):
[1] 張金德.基于激光傳感器的機(jī)電一體化設(shè)備自動化控制系統(tǒng)[J].自動化與儀表,2024,39(3):103-106,125.
[2] 徐軍.基于多傳感器融合的移動機(jī)器人同步定位與建圖研究[D].鎮(zhèn)江:江蘇科技大學(xué),2020.
[3] 孫娜,王艷君,邱權(quán),等.激光傳感器在農(nóng)業(yè)中的應(yīng)用[J].北方園藝,2019(20):150-156.
[4] 吳德剛,趙利平,陳乾輝.基于激光傳感器的農(nóng)業(yè)機(jī)械控制器設(shè)計(jì)[J].激光雜志,2024,45(2):234-238.
[5] 韓海飛,魏仁哲,王收軍,等.基于物聯(lián)網(wǎng)與深度學(xué)習(xí)的機(jī)械設(shè)備的故障診斷綜述[J].天津理工大學(xué)學(xué)報(bào),2025,41(2):21-29.
[6] 張佳,韓健,韓金玉.邏輯回歸模型下激光傳感器網(wǎng)絡(luò)安全態(tài)勢感知[J].激光雜志,2024,45(2):174-180.
[7] 楊之杰,林雪剛,阮杰.基于CNN網(wǎng)絡(luò)的手寫體數(shù)字識別系統(tǒng)的實(shí)現(xiàn)[J].智能計(jì)算機(jī)與應(yīng)用,2023,13(4):158-162.