工作遇到問題:通過命令如何控制程式控制電源的第二個通道
詳情描述:
裝置槍手,現在同事只能找來一台keithley 2306 雙通道程式控制電源,但是1,通道1壞掉,2,按鍵也損壞無法設定,詢問我 如何命令控制 程式控制電源雙通道的第二通道。
目前我遇到的情況都是 keithley 2303 單通道程式控制電源的程式設計控制,從 sprintf_s(commandbuf, 200, "volt %f\n", voltage);的設定命令來看,無法看到如何控制雙通道的。
在網上暫時沒有找到2306的程式設計手冊;只有以前接手的**控制單通道2306的電源的程式設計方法。
以程式控制電源scpi例項關鍵字搜尋到如下資料,仔細閱讀後發現
vistatus = viprintf(keithley_handle,"sour1:volt %f/n",dkeithleyvoltage);
viprintf (keithley_handle,"outp1 on/n");
的sour1,outp1分別是區分命令的,推測是分通道進行控制。
程式控制電源的控制程式開發總結正好同事詢問到進一步的控制內容:自動化技術得到飛躍發展的今天,測試中各種儀表也都支援ieee 488協議,可以利用pc完成控制。在gpib匯流排程式設計中,將總結過去用到的基於gpib匯流排控制儀表的開發經驗。首先總結一下agent 663系列電源的控制。
開發工具 vc++6.0,必備檔案:visa庫。說到visa庫,談談我對它的認識。visa是虛擬儀器軟體結構(virtual instrument software architectuere)的簡稱,是由vxi plug & play系統聯盟所統一制定的i/o介面軟體標準及其相關規範的總稱。一般稱這個i/o函式庫為visa庫(用於儀器程式設計的標準i/o函式庫)。visa函式庫駐留於計算機系統中,是計算機與儀器之間的標準軟體通訊介面,用以實現對儀器的控制。 visa採用這種金字塔型的結構模型,為各種虛擬儀器系統軟體提供了乙個形式統一的i/o操作函式庫,visa將不同廠商的儀器軟體統一於同一平台。
visa的內部結構是乙個先進的物件導向的結構,這一結構使得visa與在它之前的i/o控制軟體相比,介面無關性有很大提高。visa的可擴充套件性使它遠遠超出了一般i/o控制軟體的範疇,而且由於visa內部結構的靈活性,使得visa在功能和靈活性上也超過了其它i/o控制庫。www.mulu001.com)
//包含標頭檔案:
#include "visa.h"
#include "visatype.h"
resource file中新增visa32.lib
//定義三個全域性變數,接收儀表handle
static visession test_handle;
static visession default_handle;
static visession agilent_handle;
int initdcsource(int gpibadd,int instrumnetadd)
sprintf (temp, "gpib%d::%d::0::instr",gpibadd,instrumnetadd);
if (viopen (default_handle, temp, vi_null, vi_null, &test_handle) != 0)
visetattribute(test_handle, vi_attr_tmo_value, 20000); //必須足夠長
viprintf (test_handle,"*rst/n");
viqueryf (test_handle, "*idn?/n","%100c", temp);
return 1;}
//設定電壓、電流
int set_agilent_dc_source_instrument(int handle,double voltage,double current_lim)
//讀取電流
double read_agilent_current(int mode)
if(vistatus!=vi_success) return -1;
else return currentvalue;
}//設定輸出使能
int set_agilent_out_put_status(int status)
吉時利電源的**如下:
static visession keithley_handle;
int init_keithley_dc_source(int handle)
int init_keithley_dc_source_instrument(int handle,double voltage,double current_lim)
double read_keithley_current()
int set_keithley_out_put_status(int status)
else if(status==0) viprintf (keithley_handle,"outp1 off/n");
else return -1;
}
開啟ni max工具:
雙擊標紅的可以彈出如下框:
在紅框內,輸入如下指令可以分別控制電壓:
設定1通道7.8v sour1:volt 7.8
設定2通道12v sour2:volt 12
後繼的設定命令如下:
outp1 on
outp2 on
outp1 off
outp2 off
通過ni max的工具互動控制可以控制通道2的電壓,問題得以解決。推測後繼如果將如上的scpi指令用程式實現,也就可以分別控制2306的程式控制電源的指定的通道的電壓。
不過如果能找到keithley 2306的程式設計師程式設計手冊就好了。
ajax工作遇到問題
當乙個頁面向另乙個頁面傳乙個值,而且是中文,第一種 首先在當前頁面在url中傳值使用encodeuricomponent方法,第二步,在第二個頁面使用 pagearg.temp arg 例如 url拼接 www.baidu.com?name encodeuricomponent 小明 passwor...
linux工作常用 遇到問題
查詢埠 firewall cmd permanent query port 20885 tcp 新增埠 firewall cmd permanent add port 8101 tcp 刪除埠 firewall cmd permanent remove port 38085 tcp 過載 firew...
通過輸入命令列引數來控制程式
今天突然想到類似adb ffmpeg這樣的程式是怎麼實現的,通過命令列輸入不同的引數就可以執行不同的命令。研究了一下,其實實現的邏輯很簡單,以c 控制台程式為例,main函式是這樣的 class program 其中string args便是命令列引數了,簡單驗證一下,新建乙個命令列程式,寫入這樣一...