2024年3月1日 星期五

SCPI

http://4rdp.blogspot.com/2024/03/scpi.html


控制器連接電子儀器 (Bing Image Creator)

SCPI (Standard Commands for Programmable Instruments) 在我職涯踏入儀器界就不曾使用間斷過,因為它是儀器控制的靈魂語言,你可以恣意輸入符合語法的儀器控制指令,沒有太多語法限制,使得儀器控制變得容易許多。舉個例子,控制數位電表測量直流電壓,指令說明書可能標示指令為
CONFigure[:VOLTage][:DC]  [<range>|AUTO|MAX|MIN|DEF[,{<resolution>|MAX|MIN|DEF}]]

初次看到指令描述感覺很複雜,其實沒有那麼困難,紅字部分為指令,黑色藍色部分為指令參數,[ ] 括號內為可略內容,< > 為一組數字,| 分隔多個可用參數選其中一個,大寫字母為縮寫指令,大小寫字母為全寫指令。如果你想設定測量直流電壓 1 V,以下指令皆為等效:

CONF 1
CONFIGURE 1V
conf:VOLT
conf:dc 1.0
CONF:voltage:DC 1e0, 0.0001 volt
CONF AUTO, default

這對儀器使用者何等方便啊!只要對儀器有初淺概念,指令型式沒有嚴格規範,程式設計師依自己喜好傳送控制指令,只要語法沒有錯誤,機器都會收下執行,不過對儀器的開發者,這是一個艱巨的任務,SCPI parser 要能解譯各種指令格式,這涉及程式資料結構設計,我有好幾年獨立開發 SCPI parser ,因此它深遠影響我設計 ROSA 時的想法,2018 年當時寫程式控制機器人跳舞,需要一個動作一行程式碼編輯,因此我融合了SCPI 的特色,把編輯的程式碼當成可以通訊輸入的指令,這樣你可以先下指令喬出機器人的動作之後,再該行指令就可以收錄為程式碼,大大縮短編舞所需的時間。

沒有留言:

張貼留言