初期化処理は2つの関数を使用し、GPIBボードの初期化と自分・相手機器のインターフェースの初期化を行います。
また、任意でスレーブ機器をリモート可能状態にします。
同時に複数の相手機器との通信が必要ない場合はイクウィップメントIDを使用したほうが簡単にプログラムを作成できます。
終了処理は1つの関数を使用し、GPIBボードの開放処理を行います。
使用例:
○初期化処理(イクウィップメントIDを使用する場合) |
long Ret; short DevId, EqpId, PrmAddr, ScrAddr, Delim;
Ret = GpibInit ( "Gpib000" , &DevId ); // デバイス名を指定し、関数でデバイスを特定するのに使用するデバイスIDを取得します PrmAddr = 1; // スレーブ機器一次アドレスス「1」を設定 ScrAddr = 0; // スレーブ機器二次アドレス「未使用」を設定 Delim = 1; // スレーブ機器デリミタ「CR+LF」を設定 Ret = GpibSetEquipment ( DevId, &EqpId, PrmAddr, ScrAddr, Delim); // イクウィップメントIDを取得 |
○初期化処理(イクウィップメントIDを使用しない場合) |
long Ret; short DevId; short IfcTime; short Enable;
Ret = GpibInit ( "Gpib000" , &DevId ); // デバイス名を指定し、関数でデバイスを特定するのに使用するデバイスIDを取得します
IfcTime = 1; // IFCの送出時間を指定します。(通常は1で問題ない) Ret = GpibSendIFC ( DevId, IfcTime ); // 指定したデバイスからIFCを送出しインターフェースを初期化します。
Enable = 1; // リモート可能状態を指定します。 Ret = GpibChangeREN ( DevId, Enable ); // 指定したデバイスからRENラインの設定を行います。 |
○終了処理 |
Ret = GpibExit ( DevId ); // 指定したデバイスの開放処理を行います。 |
応用例:
○初期化処理 |
long Ret; short DevId, EqpId[30], PrmAddr, ScrAddr, Delim, i; short PrmAddr, ScdAddr, ArraySize, AddrArray[30]; Ret = GpibInit ( "Gpib000" , &DevId ); // デバイス名を指定し、関数でデバイスを特定するのに使用するデバイスIDを取得します PrmAddr = -1; // 全ての一次アドレスを検索します。 ScdAddr = 0; // 二次アドレスは検索しない。 ArraySize = 30; // AddrArrayの大きさを設定します。 Ret = GpibFindListener ( DevId, PrmAddr, ScdAddr, &ArraySize, AddrArray); // アドレスを取得します。
for ( i = 0; i < ArraySize; i++){ Delim = 1; // スレーブ機器デリミタ「CR+LF」を設定 Ret = GpibSetEquipment ( DevId, &EqpId[i], AddrArray[i], ScrAddr, Delim); // イクウィップメントIDを取得 } |
○終了処理 |
Ret = GpibExit ( DevId ); // 指定したデバイスの開放処理を行います。 |
備考:
他にもデリミタ・EOIの有無(GpibSetDelim)やタイムアウト時間(GpibSetTimeOut)の設定などがありますが、これらは初期値として「CR+LF」「EOI有効」「タイムアウト時間10秒」に設定されています。
初期値では相手機器とのデリミタ設定が違う場合はGpibSetDelim関数を使用して設定しなおしてください。