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

基于Python的示波器實時監控實驗設計

2024-01-07 21:55:25胡哲邱繼云
科技風 2023年36期

胡哲 邱繼云

摘要:基于Python語言,設計了計算機對示波器SDS5054X的實時監控實驗。通過訪問示波器IP地址與端口號,建立TCP連接。計算機向示波器發送SCPI指令,讀取示波器實時波形并以BMP圖片格式保存在電腦里。該實驗過程有助于學生加深TCP協議相關理論知識的理解,實現遠程訪問和操控示波器。同時可使學生熟悉Python語言的集成開發環境Pycharm,有效提高學生編寫與調試代碼的能力,對提高工程實踐能力具有顯著作用。

關鍵詞:實驗設計;Python;示波器;TCP通信

中圖分類號:G482文獻標識碼:A

ExperimentalDesignofOscilloscopeRealtimeMonitoringBasedonPython

HuZheQiuJiyun

SchoolofElectronicandCommunicationEngineering,SunYatsenUniversityGuangdongShenzhen518107

Abstract:BasedonPythonlanguage,therealtimemonitoringexperimentofoscilloscopeSDS5054Xwasdesigned.ThroughaccessingoscilloscopeIPaddressandportnumber,TCPconnectionisestablished.ThecomputersendsSCPIqueryinstructionstotheoscilloscopeandreadoscilloscoperealtimewaveformandsaveitinBMPpictureformatinthecomputer.TheexperimentalprocesscanhelpstudentsdeepentheunderstandingofTCPprotocoltheoryandaccessoscilloscoperemotely.Atthesametime,studentscanbefamiliarwithPycharm,thePythonintegrateddevelopmentenvironmentandimprovestudents'abilitytowriteanddebugcodeeffectively,whichplaysasignificantroleinimprovingengineeringpracticeability.

Keywords:experimentaldesign;Python;oscilloscope;TCPcommunication

示波器廣泛應用于電子測量行業,它能把人眼看不見的電信號轉化為屏幕上的圖像,便于人們研究各種電現象的變化過程[1]。而目前高校開設的電學實驗中通常是手動操作示波器進行信號測量,未能充分拓展示波器功能。

而計算機編程技術飛速發展,Python因其簡單易學、語言資源整合能力和擴展能力強的特點而應用廣泛,成為當下企業最熱門的編程語言之一。

基于新工科對于人才培養提出多學科交叉融合的培養模式要求[2],本文以鼎陽示波器SDS5054X為核心,應用Python作為編程語言,設計計算機與示波器通信實驗,學生通過實驗能夠由淺入深、更加系統地了解和掌握示波器與通信原理相關的理論,加強Python編程能力的培養。

1實驗內容

本實驗案例內容要求為:基于Python語言,采用TCP通信協議,通過訪問鼎陽示波器SDS5054X的IP地址與相應端口,建立與示波器之間的通信連接,并發送SCPI指令,查看示波器的實時波形并以圖像形式保存至電腦里。

2實驗總體方案設計

首先,為了建立電腦與示波器的TCP通信,調用函數庫中的Socket模塊,創建連接。如果創建失敗,則返回提示相關連接創建錯誤。在連接建立后,利用sendall()函數發送SCPI查詢指令,recv()函數接收相關查詢結果。為了檢驗多次查詢是否會出錯且使實驗的效果更明顯,設置了10次循環,循環結束后關閉Socket模塊,結束連接,實驗代碼設計框圖見圖1。

3實驗原理

3.1TCP通信原理

TCP(英文:TransmissionControlPtotocol)是一種面向連接(連接導向)的、可靠的、基于字節流的運輸層通信協議,具有全雙工操作、有效流控、傳輸可靠等特點[3]。TCP建立連接時,客戶端和服務器要經過三次握手階段,當客戶端向服務端發起連接時,會先發一包用于詢問能否建立連接的SYN包,如果對方同意連接,則會回復SYN+ACK包,客戶端收到后,回復ACK包,連接建立。三次握手示意圖如圖2所示。

處于連接狀態的客戶端與服務端,都可以發起關閉連接請求,共需要四次揮手進行連接關閉。假設客戶端主動發起連接關閉請求,需要先向服務端發起一包FIN包,表示要關閉連接,客戶端進入終止等待1狀態,這是第一次揮手。隨后服務端向客戶端發送ACK包,表示進入關閉等待狀態,客戶端進入終止等待2狀態,這是第二次揮手。此時服務端還可以發送未發送的數據,客戶端還可以接收數據。待服務端發送完數據后,服務端發送一包FIN包,進入最后確認狀態,這是第三次揮手??蛻舳耸盏胶蠡貜虯CK包,進入超時等待狀態,經過超時等待后關閉連接,服務端收到ACK包后立刻關閉連接,這是第四次揮手。四次揮手示意圖如圖3所示。

3.2Socket編程通信

Socket是操作系統提供給開發人員進行網絡開發的API接口,這套接口通??梢詤档恼{整支持多種協議,包括TCP、UDP和IP等。Socket編程通信示意圖見圖4,主要包含以下三個步驟。

3.2.1建立連接

兩端分別有一個Socket,用于兩者之間的通信??蛻舳讼蚍掌靼l送請求,創建Socket進行連接。服務端則隨時監聽客戶端發起的請求,接收并創建Socket。

3.2.2數據傳送

服務端和客戶端的輸入輸出流互相通信。邏輯上可理解為通信進程的雙方具有兩個流(輸出流和輸入流)。邏輯上可將兩個流理解為兩個通信管道的全雙工通信模式,一個用于向對方發送數據,另一個用于接收對方的數據。

3.2.3終止連接

客戶端訪問服務器結束,斷開連接,關閉Socket和相關資源(輸入輸出流等)。服務端監聽客戶端狀態,同時關閉Socket等連接。

3.3通信功能實現

3.3.1建立連接

Socket模塊是Python中自帶模塊,它可以使開發人員不用去關注內部層與層之間的傳輸,只需在Socket接口發送和接收指令。在調用Socket模塊后,需要選擇AdressFamily和Type兩個參數。本文采用TCP協議連接方式,即參數分別選擇為Socket.AF_INET和Socket.SOCK_STREAM,連接至示波器IP與port。鼎陽科技的研發人員將port5025設置為Socket的端口號,不需安裝NIVISA。考慮到調用失敗或者連接失敗的情況,需提示用戶連接失敗并及時退出,故引入sys模塊。代碼示例如圖5。

3.3.2發送和接收指令

在Python的Socket編程中,有兩個發送TCP的函數,send()與sendall()。本文采用sendall()函數,可完整發送TCP數據。將string中的數據發送到連接的Socket,但在返回之前會嘗試發送所有數據。成功返回None,失敗則拋出異常。

Socket.recv(bufsize[,flag])用于接收TCP連接的Socket里的數據,數據以字符串形式返回,bufsize指定要接收的最大數據量。flag提供有關消息的其他信息,通??梢院雎浴1敬螌嶒炘O置最大數據量是4096字節。部分代碼示例見圖6:

3.3.3關閉Socket

發送和接收數據完成后,需將Socket及時關閉完全釋放資源。close函數可以用于關閉Socket,并且只能TCP連接。關閉后需要延時一段時間,可以調用time模塊可以讓程序休眠,具體方法是time.sleep(秒數),其中“秒數”以秒為單位,可以是小數。代碼示例見圖7:

3.4SCPI通信協議說明

可編程儀器標準命令(英語:StandardCommandsforProgrammableInstruments,縮寫:SCPI)是一套用于控制可編程測試測量儀器的標準語法和命令,實際是通過ASCII字符串形式在命令與儀器進行交互[4]。SCPI協議建立于IEEE488.2基礎上,可用于GPIB、RS232、VXIb總線,通過相同命令來控制不同儀器的相同功能。命令一般由一系列的關鍵字構成,有的還需要包括參數。

一般的儀器指令大致可以分為控制指令和查詢指令,控制指令可以改變儀器運行狀態,比如控制示波器的開啟和關閉。查詢指令可以查詢儀器運行狀態,比如查詢電源的輸出電流等,一般以問號結尾。不同品牌的儀器SCPI指令數據格式由儀器廠家定義,通常會有稍許不同,具體的指令需查詢儀器廠家提供的數據手冊。同時,IEEE488.2標準定義了一組常用命令,可執行復位、自檢以及狀態操作等功能。常用命令總是以星號(*)開始,長度為3個字符,并可以包括一個或多個參數。以向示波器發送查詢指令*IDN*為例,此查詢命令可以識別儀器類型和軟件版本,響應由四個不同的字段組成,實現代碼如圖8:

4實驗示例

在實驗中,常常會受到場地、環境等客觀因素限制,不能實地監測示波器波形變化。利用示波器與電腦遠程通信,建立相應連接,可以遠程實時讀取波形,并以圖片格式保存在電腦里。具體實現可分為以下幾個步驟:

(1)利用socket模塊,建立電腦與示波器的連接,進行相互通信。

(2)設置緩沖區的大小。指定chunksize為20Mb,將數據分為多次讀取,避免一次性讀取內存不足。

(3)示波器向電腦發送SCPI指令PRINBMP,請求將示波器數據保存為BMP格式圖片。

(4)讀取示波器圖片數據,使用open()函數,以二進制格式、只寫模式打開文件,將圖片數據從內存寫入至本地文件中。

(5)使用flush()方法刷新緩沖區,即將緩沖區中的數據立刻寫入文件,同時清空緩沖區,不需要被動地等待輸出緩沖區寫入。

(6)關閉文件,寫入結束。

實現代碼如圖9:

結語

本文提出基于Python語言,建立與鼎陽示波器SDS5054X之間的TCP連接,通過SCPI指令實現實時讀取示波器波形數據,并以BMP格式儲存在電腦里。針對該項實驗,學生需要搭建Python語言環境,熟悉基本語法和相關通信模塊,掌握基本的通信原理與數字示波器測量信號知識。在不斷調試整段代碼的過程中,可以培養學生基本編程能力和排錯能力,加深對Socket編程模塊和數據讀寫操作的理解,為日后進一步完成軟硬件結合的工程項目打下初步基礎。

參考文獻:

[1]李林瀟,江先陽.基于LabVIEW的示波器控制與演示系統設計[J].物理實驗,2018,38(S1):103107.

[2]趙江萍,姚纓英.新工科背景下的電學實驗設計方法探究[J].實驗室科學,2021,24(4):5659.

[3]徐宙,劉連照,程彥杰,等.基于C#的數字存儲示波器控制軟件設計與實現[J].計量與測試技術,2016,43(2):5355+57.

[4]于曉輝,許禮昆,李新波,等.基于單片機的數字示波器實驗設計[J].實驗室科學,2021,24(3):5356+60.

[5]阮頤,宋清亮,王甲.基于Python的示波器圖像數據識別[J].集成電路應用,2020,37(1):1819+22.

[6]劉雪琳,章鈺琪,董愛國.基于Python的物理實驗數據處理系統設計與實現[J].實驗技術與管理,2021,38(3):7478.

[7]郝彥爽,林穎,韓守梅.基于FPGA的數字電子技術實驗案例設計[J].實驗室科學,2021,24(3):101104.

[8]孫暉,彭里卓.基于樹莓派和Python的數字音效處理綜合實驗設計[J].集成電路應用,2021,38(10):262263.

[9]蔡軍,左俊偉,潘峰.基于LabVIEW的諧振式無線電能傳輸實驗系統設計[J].實驗技術與管理,2021,38(10):211215.

基金項目:2021年第二批產學合作協同育人項目(項目編號:202102504019)

作者簡介:胡哲(1996—),女,漢族,山西大同人,碩士,助理實驗師,研究方向為實驗教學研究。

主站蜘蛛池模板: 成人夜夜嗨| 国产一级毛片网站| 日本道综合一本久久久88| 国产精品极品美女自在线看免费一区二区| 欧美日韩资源| 试看120秒男女啪啪免费| 亚洲精品无码日韩国产不卡| 91精品情国产情侣高潮对白蜜| 欧美成在线视频| 欧美精品1区2区| 激情综合婷婷丁香五月尤物| 欧美成人亚洲综合精品欧美激情| 天堂va亚洲va欧美va国产| 日韩人妻少妇一区二区| 国产精品私拍在线爆乳| 毛片免费视频| 狠狠做深爱婷婷久久一区| 韩国v欧美v亚洲v日本v| 亚洲欧洲自拍拍偷午夜色| 国产在线无码av完整版在线观看| 色哟哟精品无码网站在线播放视频| 日韩无码视频网站| 国产综合色在线视频播放线视| 毛片免费在线| 国产第一页亚洲| 国产午夜一级淫片| 中文无码影院| 成年网址网站在线观看| 欧美α片免费观看| 国产爽歪歪免费视频在线观看 | 亚洲中文无码h在线观看| 野花国产精品入口| 国产高清在线丝袜精品一区| 婷婷六月天激情| 中文无码精品A∨在线观看不卡 | 亚洲国产日韩在线观看| 国产乱人伦精品一区二区| 亚洲视频在线网| 久久综合色天堂av| 亚洲v日韩v欧美在线观看| 干中文字幕| 尤物视频一区| 朝桐光一区二区| 免费又黄又爽又猛大片午夜| 亚洲无码37.| 韩日午夜在线资源一区二区| 国产福利小视频在线播放观看| 71pao成人国产永久免费视频| 免费国产高清视频| 香蕉视频在线观看www| 亚洲色图欧美激情| 国产欧美精品一区aⅴ影院| 欧美成在线视频| 一级高清毛片免费a级高清毛片| 自拍亚洲欧美精品| 国产免费观看av大片的网站| 人妻精品久久久无码区色视| 六月婷婷综合| 欧美精品伊人久久| 丁香综合在线| 日韩精品无码一级毛片免费| 日韩欧美国产区| 国产97视频在线观看| 久久青草免费91线频观看不卡| 波多野结衣一区二区三区AV| 亚洲色中色| 色综合热无码热国产| 国产午夜无码专区喷水| 亚洲h视频在线| 亚洲一级毛片免费看| 2021无码专区人妻系列日韩| 91免费片| 亚洲人成网站在线播放2019| 国产美女在线观看| 日韩人妻无码制服丝袜视频| 在线欧美日韩| 国产成人精品高清在线| 无码区日韩专区免费系列| 亚洲自偷自拍另类小说| 无码精品一区二区久久久| 亚洲自偷自拍另类小说| 亚洲欧美色中文字幕|