打造你的自動化實驗室:儀器控制入門 (3)

第三部分:實戰演練 —— 控制 Chroma 電源供應器
在前一個部分,我們學會了如何與儀器建立連線並讀取其身份。現在,讓我們來做一些更有趣、更實用的事情:實際控制一台儀器來完成一個自動化任務。
我們將以常見的 Chroma 可程式化直流電源供應器 為例。
1. 任務目標
我們的目標是編寫一個 Python 腳本,自動完成以下操作:
設定電源供應器的輸出電壓為 5.0V。
設定電流上限為 1.0A。
開啟電源輸出。
等待 2 秒鐘。
讀取實際的輸出電壓與電流。
關閉電源輸出。
2. 查詢儀器手冊:SCPI 指令的寶庫
要完成上述任務,我們需要知道對應的 SCPI 指令。這時,儀器的編程手冊 (Programming Manual) 就是你最好的朋友。通常你可以在儀器製造商的官方網站上找到它。
SCPI 指令的完整與簡寫
在查閱手冊時,你會發現 SCPI 指令有一個慣例:它們同時包含大寫和小寫字母,例如 SOURce:VOLTage。這其實是為了告訴你指令的兩種寫法:
完整寫法 (Long Form):包含大寫與小寫字母的全部,例如
SOURCE:VOLTAGE。這種寫法可讀性高。簡寫 (Short Form):只取大寫的部分,例如
SOUR:VOLT。這種寫法更簡潔。
這兩種寫法儀器都會接受,並且效果完全相同。在我們的範例中,為了讓程式碼更精簡,通常會使用簡寫。
透過查閱 Chroma 電源供應器的手冊,我們可能會找到以下關鍵指令 (注意:不同型號的指令可能略有差異):
設定電壓:
完整寫法:
SOURce:VOLTage <voltage>簡寫:
SOUR:VOLT <voltage>
設定電流:
完整寫法:
SOURce:CURRent <current>簡寫:
SOUR:CURR <current>
開啟/關閉輸出:
完整寫法:
CONFigure:OUTPut <ON|OFF>簡寫:
CONF:OUTP <ON|OFF>
查詢電壓:
完整寫法:
MEASure:VOLTage?簡寫:
MEAS:VOLT?
查詢電流:
完整寫法:
MEASure:CURRent?簡寫:
MEAS:CURR?
3. 編寫控制腳本
現在我們有了指令,就可以將它們組合到 Python 腳本中了。這個腳本會比上一篇的連線測試更完整。
import pyvisa
import time
# --- 設定區 ---
VISA_ADDRESS = '請換成你的 Chroma 電源供應器位址'
TARGET_VOLTAGE = 5.0
CURRENT_LIMIT = 1.0
# 建立資源管理器
rm = pyvisa.ResourceManager()
try:
# 開啟與儀器的連線
psu = rm.open_resource(VISA_ADDRESS)
psu.timeout = 5000
psu.clear()
print(f"成功連接到: {psu.query('*IDN?').strip()}")
# --- 開始自動化流程 ---
# 1. 設定電壓 (使用 .write(),因為我們不需要儀器回覆)
print(f"設定電壓為: {TARGET_VOLTAGE}V")
psu.write(f'SOUR:VOLT {TARGET_VOLTAGE}')
# 2. 設定電流
print(f"設定電流上限為: {CURRENT_LIMIT}A")
psu.write(f'SOUR:CURR {CURRENT_LIMIT}')
# 3. 開啟輸出
print("開啟電源輸出...")
psu.write('CONF:OUTP ON')
# 4. 等待 2 秒,讓電壓穩定
time.sleep(2)
# 5. 讀取實際輸出值 (使用 .query(),因為我們需要儀器回覆)
actual_voltage = float(psu.query('MEAS:VOLT?'))
actual_current = float(psu.query('MEAS:CURR?'))
print(f"量測結果 -> 電壓: {actual_voltage:.3f}V, 電流: {actual_current:.3f}A")
except Exception as e:
print(f"發生錯誤: {e}")
finally:
# 6. 關閉輸出 (這一步至關重要,無論成功或失敗都應執行)
if 'psu' in locals():
print("關閉電源輸出。")
psu.write('CONF:OUTP OFF')
psu.close()
print("儀器連線已關閉。")
這個腳本展示了一個完整的「設定-執行-量測-關閉」的自動化循環。你可以基於這個範本,根據你的測試需求進行擴充,例如執行電壓的步進掃描、長時間的穩定性測試等。



