日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

使用python控制仪器【控制苏州联讯源表SMU】

發布時間:2024/1/18 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用python控制仪器【控制苏州联讯源表SMU】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 使用python控制儀器【控制蘇州聯訊源表SMU】
    • 搭建環境
      • 1、安裝python
      • 2、安裝PyCharm
      • 3、使用PyCharm創建項目
      • 4、添加VISA資源
      • 5、安裝PyVisa
    • 連接設備
      • 6、連接設備
    • 控制設備
      • 7、一個更復雜的例程
    • 讀寫數據
      • 8、將數據寫入excel
      • 9、顯示掃描波形

使用python控制儀器【控制蘇州聯訊源表SMU】

搭建環境

1、安裝python

  • 下載python
    鏈接: https://www.python.org/downloads/windows/
  • 安裝python
    選中自定義安裝,勾選中“Add python3.7 to path”,可自動增加環境變量,不需要手動添加

    之后一直點下一步就可以了。
  • 查看python是否安裝成功
    win+R 運行cmd,輸入“python”

    安裝成功后可輸入“print”測試,如果打印成功,代表安裝成功了
  • 2、安裝PyCharm

  • 下載PyCharm
    網址:
    打開網址,如圖操作,點擊Community即可自動下載:
    https://www.jetbrains.com/zh-cn/pycharm/download/#section=windows
  • 安裝pycharm
    雙擊安裝文件

    可選擇自定義路徑安裝

    全勾上

    一直點擊下一步,安裝成功。
  • 3、使用PyCharm創建項目

    新建項目


    創建成功,右鍵單擊點擊項目,可選擇創建你的第一個py文件,如圖:

    填寫模塊名稱:

    鼠標右鍵空白處,選擇run,可調試運行文件:

    運行成功、失敗,下方可查看運行日志,如圖:

    4、添加VISA資源

    • 打開NI MAX,添加設備資源

      添加一個網口設備


    填入設備的ip地址
    ip address:192.168.170.8
    port:8807

    添加成功

    5、安裝PyVisa

    PyVisa是用來控制各種各樣的測量儀器的Python包,適用諸如GPIB、RS232、USB、Ethernet等接口。
    安裝包有兩種方法

    • 方法1
      打開終端,輸入安裝pyvisa庫的指令,安裝成功后,會有安裝成功的提示。
    $ pip install -U pyvisa

    • 方法2
      打開python packages選項,搜索pyvisa,點擊安裝

    連接設備

    6、連接設備

    輸入下面的代碼

    # 導入庫 import pyvisa # 創建 VISA資源管理器的對象。 rm = pyvisa.ResourceManager() # 打開指定資源名稱的設備。一旦設備被打開,您就可以使用返回的設備對象進行與設備的通信和控制。 my_Instrument = rm.open_resource('TCPIP0::192.168.170.8::8807::SOCKET') # 配置通訊超時時間 my_Instrument.timeout = 5000 # 配置截止符 my_Instrument.read_termination = '\n' # 查詢設備信息 instrumentMessage=my_Instrument.query('*IDN?') # 打印設備信息 print(instrumentMessage)

    運行代碼
    按 Shift+F10 執行或者點擊綠色的運行按鈕


    運行結果,返回設備的基本信息

    控制設備

    7、一個更復雜的例程

    下面的例程展示,如何用SCPI命令控制S3022F完成一個電壓掃描,start為1V,stop為5V,掃描10個點,線性掃描,將測量電壓數據打印出來。

    import pyvisa import time rm = pyvisa.ResourceManager() my_Instrument = rm.open_resource('TCPIP0::192.168.170.8::8807::SOCKET') my_Instrument.timeout = 5000 my_Instrument.read_termination = '\n' instrumentMessage=my_Instrument.query('*IDN?') print(instrumentMessage)#發送SCPI指令 my_Instrument.write(':SOUR:FUNC:MODE VOLT,(@101)') my_Instrument.write(':SOUR:VOLT:MODE SWE,(@101)') my_Instrument.write(':SOUR:FUNC:SHAP DC,(@101)') my_Instrument.write(':SOUR:SWE:SPAC LIN,(@101)') my_Instrument.write(':SOUR:VOLT:RANG 10,(@101)') my_Instrument.write(':SOUR:CURR:RANG 0.01,(@101)') my_Instrument.write(':SENS:CURR:PROT 0.01,(@101)') my_Instrument.write(':SOUR:VOLT:STAR 1,(@101)') my_Instrument.write(':SOUR:VOLT:STOP 5,(@101)') my_Instrument.write(':TRIG:COUN 10,(@101)') my_Instrument.write(':SOUR:SWE:POIN 10,(@101)') my_Instrument.write(':SENS:VOLT:NPLC 1,(@101)') my_Instrument.write(':OUTP 1,(@101)') my_Instrument.write(':INIT (@101)')#循環讀取狀態寄存器,讀取到1024,掃描完成,跳出循環,讀取電壓值 while (1):time.sleep(1)end = my_Instrument.query(':STAT:OPER:COND? (@101)')print(end)if (end == '1024'):break # 獲取掃描電壓值 voltageList = my_Instrument.query_ascii_values(":FETC:VOLT?") print(voltageList)

    運行結果如下,運行成功后,可以打印出掃描測量出的電壓值。

    讀寫數據

    8、將數據寫入excel

    測量的數據一般會通過文件保存,這里采用excel進行保存,使用最常用的讀寫excel的python庫。
    安裝所需要的軟件包xlwings,通道python packages安裝或者通過指令安裝

    pip install xlwings


    輸入如下指令

    import pyvisa import time import xlwings as xw rm = pyvisa.ResourceManager() my_Instrument = rm.open_resource('TCPIP0::192.168.170.8::8807::SOCKET') my_Instrument.timeout = 5000 my_Instrument.read_termination = '\n' instrumentMessage=my_Instrument.query('*IDN?') print(instrumentMessage)#發送SCPI指令 my_Instrument.write(':SOUR:FUNC:MODE VOLT,(@101)') my_Instrument.write(':SOUR:VOLT:MODE SWE,(@101)') my_Instrument.write(':SOUR:FUNC:SHAP DC,(@101)') my_Instrument.write(':SOUR:SWE:SPAC LIN,(@101)') my_Instrument.write(':SOUR:VOLT:RANG 10,(@101)') my_Instrument.write(':SOUR:CURR:RANG 0.01,(@101)') my_Instrument.write(':SENS:CURR:PROT 0.01,(@101)') my_Instrument.write(':SOUR:VOLT:STAR 1,(@101)') my_Instrument.write(':SOUR:VOLT:STOP 5,(@101)') my_Instrument.write(':TRIG:COUN 10,(@101)') my_Instrument.write(':SOUR:SWE:POIN 10,(@101)') my_Instrument.write(':SENS:VOLT:NPLC 1,(@101)') my_Instrument.write(':OUTP 1,(@101)') my_Instrument.write(':INIT (@101)')#循環讀取狀態寄存器,讀取到1024,掃描完成,跳出循環,讀取電壓值 while (1):time.sleep(1)end = my_Instrument.query(':STAT:OPER:COND? (@101)')print(end)if (end == '1024'):break # 創建新文件 wb = xw.Book() # 添加名為"voltage"的工作表 wb.sheets.add('voltage') # 取消活動工作表選擇 wb.sheets[0].select() # 獲取要寫入的數據 voltageList = my_Instrument.query_ascii_values(":FETC:VOLT?") # 將數據寫入Excel文件 sheet = wb.sheets['voltage'] sheet.range('A1').value = '電壓(V)' for i in range(len(voltageList)):sheet.range((i+2, 1)).value = voltageList[i] # 修改保存路徑和文件名 save_path = 'D:/test.xlsx' # 保存并關閉文件 wb.save(save_path) wb.close() print(f"已成功創建名為 '{save_path}' 的Excel文件,并在其中添加了名為 'voltage' 的工作表,并將數據寫入該工作表。")

    運行成功后顯示如下信息,也可以打開excel查看數據

    9、顯示掃描波形

    通過將數據通過圖形的方式顯示出來可以更加直觀。
    需要安裝Matplotlib庫
    Matplotlib是一個用于創建高質量圖形的Python庫。它提供了廣泛的數據可視化功能,使用戶能夠以各種方式呈現數據。

    pip install matplotlib

    執行代碼

    import pyvisa import time import xlwings as xw import matplotlib.pyplot as pltrm = pyvisa.ResourceManager() my_Instrument = rm.open_resource('TCPIP0::192.168.170.8::8807::SOCKET') my_Instrument.timeout = 5000 my_Instrument.read_termination = '\n' instrumentMessage=my_Instrument.query('*IDN?') print(instrumentMessage)#發送SCPI指令 my_Instrument.write(':SOUR:FUNC:MODE VOLT,(@101)') my_Instrument.write(':SOUR:VOLT:MODE SWE,(@101)') my_Instrument.write(':SOUR:FUNC:SHAP DC,(@101)') my_Instrument.write(':SOUR:SWE:SPAC LIN,(@101)') my_Instrument.write(':SOUR:VOLT:RANG 10,(@101)') my_Instrument.write(':SOUR:CURR:RANG 0.01,(@101)') my_Instrument.write(':SENS:CURR:PROT 0.01,(@101)') my_Instrument.write(':SOUR:VOLT:STAR 1,(@101)') my_Instrument.write(':SOUR:VOLT:STOP 5,(@101)') my_Instrument.write(':TRIG:COUN 10,(@101)') my_Instrument.write(':SOUR:SWE:POIN 10,(@101)') my_Instrument.write(':SENS:VOLT:NPLC 1,(@101)') my_Instrument.write(':OUTP 1,(@101)') my_Instrument.write(':INIT (@101)')#循環讀取狀態寄存器,讀取到1024,掃描完成,跳出循環,讀取電壓值 while (1):time.sleep(1)end = my_Instrument.query(':STAT:OPER:COND? (@101)')print(end)if (end == '1024'):break # 創建新文件 wb = xw.Book() # 添加名為"voltage"的工作表 wb.sheets.add('voltage') # 取消活動工作表選擇 wb.sheets[0].select() # 獲取要寫入的數據 voltageList = my_Instrument.query_ascii_values(":FETC:VOLT?") currentList = my_Instrument.query_ascii_values(":FETC:CURR?") # 將數據寫入Excel文件 sheet = wb.sheets['voltage'] sheet.range('A1').value = '電壓(V)' for i in range(len(voltageList)):sheet.range((i+2, 1)).value = voltageList[i] # 修改保存路徑和文件名 save_path = 'D:/test.xlsx' # 保存并關閉文件 wb.save(save_path) wb.close() print(f"已成功創建名為 '{save_path}' 的Excel文件,并在其中添加了名為 'voltage' 的工作表,并將數據寫入該工作表。") #*************************顯示掃描波形***************************************************# x = voltageList y = currentList # 創建圖形并繪制數據,數據源是電壓,縱坐標是電壓值,橫坐標是數據的索引 plt.plot(x, marker='o') # 添加標題和標簽 plt.title('Voltage Data') plt.xlabel('index') plt.ylabel('Voltage (V)') plt.grid()#創建圖形并繪制數據,數據源是電壓,橫坐標是電壓值,縱坐標是數據的索引 (fig, ax1) = plt.subplots() ax1.plot(x, y, marker='o') ax1.grid() # 設置子圖的橫縱坐標軸標簽 ax1.set_xlabel('Voltage') ax1.set_ylabel('Current') # 設置子圖的標題 ax1.set_title('Voltage vs. Current') # 顯示圖形窗口 plt.show()

    總結

    以上是生活随笔為你收集整理的使用python控制仪器【控制苏州联讯源表SMU】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。