GPIB一問?? |
尚未結案
|
ohsula
一般會員 發表:12 回覆:17 積分:5 註冊:2004-03-02 發送簡訊給我 |
請問各位大大,我有一儀器含GPIB介面,且有其include檔,如儀器名稱為pps1024(power supply),其標頭檔為"pps1024.h",在turbo C中我只要在程式link此標頭檔,便可控制此儀器,不知在BCB中是否可將其include檔"pps1024.h"複製至BCB之include中使用?? /* filename : pps1204.h */
/* date : 09/06/96 */ void hp6632a_init(int address);
void hp6632a_set_overcur(int protect);
void hp6632a_set_current(double current);
void hp6632a_set_overvolt(double over_volt);
void hp6632a_config(int out,double voltage);
void hp6632a_out_current(double *out_current);
void hp6632a_out_voltage(double *out_voltage); void hp6633a_init(int address);
void hp6633a_set_overcur(int protect);
void hp6633a_set_current(double current);
void hp6633a_set_overvolt(double over_volt);
void hp6633a_config(int out,double voltage);
void hp6633a_out_current(double *out_current);
void hp6633a_out_voltage(double *out_voltage); int hp6632a,hp6633a; /*----- hp6632a(hp6633a)_init -----*/
void hp6632a_init (int address)
{
hp6632a=address;
hp6633a=address;
ibren (hp6632a);
delay1(0.2);
ibwrt (hp6632a,"OUT1 1",6);
} void hp6633a_init (int address)
{
hp6632a=address;
hp6633a=address;
ibren (hp6633a);
delay1(0.2);
ibwrt (hp6633a,"OUT2 1",6);
} /*----- hp6632a(hp6633a)_set_overcur -----*/
void hp6632a_set_overcur (int protect)
{
if (protect == 1) {
ibwrt (hp6632a,"OCP 1",5); /* RST;OCP 1 */
delay1(0.1); }
else {
ibwrt (hp6632a,"OCP 0",5); /* RST;OCP 0 */
delay1(0.1); }
} void hp6633a_set_overcur (int protect)
{
if (protect == 1) {
ibwrt (hp6633a,"OCP 1",5); /* RST;OCP 1 */
delay1(0.1); }
else {
ibwrt (hp6633a,"OCP 0",5); /* RST;OCP 0 */
delay1(0.1); }
} /*----- hp6632a(hp6633a)_set_current -----*/
void hp6632a_set_current (double current)
{
char value[10],buf[50],*result;
int i; result=&buf[0];
strcpy(result,"ISET1 ");
gcvt(current,4,value);
result=strcat(result,value);
ibwrt (hp6632a,result,strlen(result));
} void hp6633a_set_current (double current)
{
char value[10],buf[50],*result;
int i; result=&buf[0];
strcpy(result,"ISET2 ");
gcvt(current,4,value);
result=strcat(result,value);
ibwrt (hp6633a,result,strlen(result));
} /*----- hp6632a(hp6633a)_set_overvolt -----*/
void hp6632a_set_overvolt (double over_volt)
{
char value[10],buf[50],*result;
int i; result=&buf[0];
strcpy(result,"OVSET1 ");
gcvt(over_volt,4,value);
result=strcat(result,value);
ibwrt (hp6632a,result,strlen(result));
} void hp6633a_set_overvolt (double over_volt)
{
char value[10],buf[50],*result;
int i; result=&buf[0];
strcpy(result,"OVSET2 ");
gcvt(over_volt,4,value);
result=strcat(result,value);
ibwrt (hp6633a,result,strlen(result));
} /*----- hp6632a(hp6633a)_config -----*/
void hp6632a_config (int out,double voltage)
{
char value[10],buf[50],*result;
int i; if (out == 1) {
ibwrt (hp6632a,"OUT1 1",6);
delay1 (0.06);
result=&buf[0];
strcpy(result,"VSET1 ");
gcvt(voltage,4,value);
result=strcat(result,value);
ibwrt (hp6632a,result,strlen(result)); }
else {
ibwrt (hp6632a,"OUT1 0",6);
delay1 (0.06);
result=&buf[0];
strcpy(result,"VSET1 ");
gcvt(voltage,4,value);
result=strcat(result,value);
ibwrt (hp6632a,result,strlen(result)); }
} void hp6633a_config (int out,double voltage)
{
char value[10],buf[50],*result;
int i; if (out == 1) {
ibwrt (hp6633a,"OUT2 1",6);
delay1 (0.06);
result=&buf[0];
strcpy(result,"VSET2 ");
gcvt(voltage,4,value);
result=strcat(result,value);
ibwrt (hp6633a,result,strlen(result)); }
else {
ibwrt (hp6633a,"OUT2 0",6);
delay1 (0.06);
result=&buf[0];
strcpy(result,"VSET2 ");
gcvt(voltage,4,value);
result=strcat(result,value);
ibwrt (hp6633a,result,strlen(result)); }
} /*----- hp6632a(hp6633a)_out_current -----*/
void hp6632a_out_current (double *out_current)
{
char *in_str; *out_current=0.0;
ibwrt (hp6632a,"IOUT1?",6);
in_str=" ";
ibrd (hp6632a,in_str,8);
*out_current=atof(in_str);
} void hp6633a_out_current (double *out_current)
{
char *in_str; *out_current=0.0;
ibwrt (hp6633a,"IOUT2?",6);
in_str=" ";
ibrd (hp6633a,in_str,8);
*out_current=atof(in_str);
} /*----- hp6632a(hp6633a)_out_voltage -----*/
void hp6632a_out_voltage (double *out_voltage)
{
char *in_str; *out_voltage=0.0;
ibwrt (hp6632a,"VOUT1?",6);
in_str=" ";
ibrd (hp6632a,in_str,8);
*out_voltage=atof(in_str);
} void hp6633a_out_voltage (double *out_voltage)
{
char *in_str; *out_voltage=0.0;
ibwrt (hp6633a,"VOUT2?",6);
in_str=" ";
ibrd (hp6633a,in_str,8);
*out_voltage=atof(in_str);
} Auston Huang
------
Auston Huang |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
ohsula您好:
(1)先確認您的GPIB API Library是否能在Win32s下Run,因為您沒說清楚您是用 HP-IB GPIB library還是NI Gpib Library,兩者都有for win32s的版本 1-1.NI-488.2 (Win32) Version 2.1 for Windows 2000/98/ME/XP, 這是最新的版本 下載:ftp://ftp.ni.com/support/gpib/ni488221/ni488221.exe NI-488.2 API User Manual: http://www.ni.com/pdf/manuals/370428a.pdf 1-2. HPIB....我就不太清楚了 (2)看到您用ibwrt的Commmand(IEEE488.1)在控制Electornic Load,在Winodows 下您用的pps1024.h 自訂函式可以正常在C Builder中運作,但還是要先確 認一下您的Gpib Library 是否可以For win32s(這點很重要) (3)看了一下您的程式都是在做Electornic Load的電流抽載跟Power Suppler 的保護電路測試,我倒是有個建議您可把這些 Function 物件化,這樣不管您 的Power Supply有幾組輸出,我愛怎麼測就怎麼測喔... (4)我是從事Power Supply產品設計工作,寫測試程式算是我的副業...有問題 可以來討論討論 /*生活是一種藝術,用心生活才能享受生活*/發表人 - axsoft 於 2004/03/22 13:17:10 |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
ohsula: 下面是簡易的IEEE488.1讀寫CHRAMA公司的DC Electornic Load範例,參考看看!
< src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=14674079&CC=328181">
Main Unit---SimpleUnit.cpp //--------------------------------------------------------------------------- #include /*生活是一種藝術,用心生活才能享受生活*/發表人 - axsoft 於 2004/03/22 17:59:42 |
ohsula
一般會員 發表:12 回覆:17 積分:5 註冊:2004-03-02 發送簡訊給我 |
axsoft大大你好,在下從事DCDC產品測試的工作,因想把公司老舊的Turbo C ATE站測試程式改良成視窗的UI介面,而開始鑽研BCB程式。
目前ATE測試站的設備約有:
chroma electric load 6300,chroma DC power supply 6206,6210系列,fluke45等,非常感謝大大提供的資訊,我將沿此方向著手,你所附的程式碼我將仔細研讀,可能需要一段時間。
祝我成功吧!!! Good Luck to you tooc!!
------
Auston Huang |
ohsula
一般會員 發表:12 回覆:17 積分:5 註冊:2004-03-02 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: 你好,我查過公司的GPIB Card是ISA介面,雜牌不用驅動程式,所以應該不用查看是否for windows32 API Liberary吧? Auston Huang1.您所謂的雜牌,還是有個品牌呀(我知道國內有個廠家也在做這類的介面).. 應該也會有for win32s的Library...除非您想自己用I/O慢慢搞... 2.為甚麼要for win32s的原因是Win2k/xp/2003控制I/O的方法跟DOS不同... Windows 9x也需要用C Builer inline ASM自己寫個I/O函式才能控制I/O 3.因此我建議,如果能找到該Gpib for winodws的Library會比較輕鬆一點 /*生活是一種藝術,用心生活才能享受生活*/ |
hornacek
一般會員 發表:29 回覆:76 積分:21 註冊:2004-02-02 發送簡訊給我 |
引言: (1)先確認您的GPIB API Library是否能在Win32s下Run,因為您沒說清楚您是用 HP-IB GPIB library還是NI Gpib Library,兩者都有for win32s的版本 1-1.NI-488.2 (Win32) Version 2.1 for Windows 2000/98/ME/XP, 這是最新的版本 下載:ftp://ftp.ni.com/support/gpib/ni488221/ni488221.exe NI-488.2 API User Manual: http://www.ni.com/pdf/manuals/370428a.pdf 1-2. HPIB....我就不太清楚了想請教一下,GPIB不是通用的規格嗎?怎麼會有分成 HPIB及NI兩種GPIB Library,不知道這兩個Library有什麼分別嗎? 兩者可以通用嗎?感激! |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: 想請教一下,GPIB不是通用的規格嗎?怎麼會有分成 HPIB及NI兩種GPIB Library,不知道這兩個Library有什麼分別嗎? 兩者可以通用嗎?感激!hornacek您好: 沒錯GPIB(IEEE488.x)是通用的規章與協定,但經由不同公司寫出來的Library當然有所不同 目前市面上有HP-IB. NI-GPIB(IEEE488.x NI-Visa)以及TekVisa三種...另外還有一堆不知名的 但底層對GPIB硬體控制的方法卻是相同的...:D /*生活是一種藝術,用心生活享受生活*/ |
Andy97
一般會員 發表:9 回覆:18 積分:10 註冊:2002-08-15 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: 各位大大好, 可否推薦一款GPIB Card? GPIB Card是否有反應時間及Buffer等的要求? 請大大們指點,謝謝!Andy97您好: 1.關於GPIB的原理及使用相關問題請參考 http://140.121.200.23/VB%20CLASS/CLASS%2012%20GPIB%E4%BB%8B%E9%9D%A2.htm 2.建議您購買美商慧碁儀器股份有限公司的 http://digital.ni.com/worldwide/taiwan.nsf/webproduct/232CD77A2CADCECA86256C95002A17F4 PCI-GPIB http://sine.ni.com/apps/we/nioc.vp?cid=1233&lang=US 或 GPIB-USB-B http://sine.ni.com/apps/we/nioc.vp?cid=11397&lang=US 價格在台幣24000元左右(依匯率而波動).. 在台灣可向美商慧碁儀器股份有限公司台灣分公司購買 電話:02-2528-7227 傳真:(02) 2746-9784 Email: info.taiwan@ni.com /*生活是一種藝術,用心生活享受生活*/發表人 - axsoft 於 2004/08/06 15:49:57 |
Andy97
一般會員 發表:9 回覆:18 積分:10 註冊:2002-08-15 發送簡訊給我 |
|
pwchiang
一般會員 發表:0 回覆:1 積分:0 註冊:2005-11-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |