NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

GPIB-32.dllからni4882.dllへの移行

 ■GPBI-USB-HSを制御するためのAPIやNI488.2プログラムについて、質問があります。

  ○現在、GPIB-USB-HSを使用した測定器制御のVBAプログラムを社内運用しています。

    その中で、現環境[Window7-32bitExcel32bit]から[Window10-64bitExcel64bit]環境に動作環境の変更を行う必要があり、その際下記エラーが発生してしまいます。

    この場合の対処方法があれば教えて頂けますでしょうか。

  ○エラーの内容

    プログラム変更なしで、環境のみ変更した状態でVBAを実行すると下記①エラーが発生します。

    ①実行時エラー'53' ファイルが見つかりません:Gpib-32.dll

    この①のエラーにおいては、下記URLサイトを参考に、追加しているモジュールVBIB32(ver1.6)内の"GPIB-32.dll"をすべて"ni4882.dll"に変更することで、エラーはなくなりました。

    しかし、下記②が発生しました。

    ②実行時エラー'453': エントリ RegisterGpibGlobalsForTreadDLLファイル ni4882.dll内に見つかりません。

   ---エラー箇所のソースコード引用------------------------------------------------

   Public Sub RegisterGPIBGlobals()

        Dim rc As Long

        rc = RegisterGpibGlobalsForThread(Longibsta, Longiberr, Longibcnt, ibcntl)

        If (rc = 0) Then

          GPIBglobalsRegistered = 1

        ElseIf (rc = 1) Then

          rc = UnregisterGpibGlobalsForThread

          rc = RegisterGpibGlobalsForThread(Longibsta, Longiberr, Longibcnt, ibcntl)

          GPIBglobalsRegistered = 1

    ------------------------------------------------------------------

    この②のエラーにおいては、どう対応すべきかわかっていません。

 ○参考URL

  https://forums.ni.com/t5/NI%E8%A3%BD%E5%93%81%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AB%E3%83%83%E3%82%B7%...

 ○詳細なVBAプログラムの環境について記載します。

  ・ni4882.dllのバージョン:ni4882_302.exe

  ・APIVBIB32(ver1.6)

■また、このエラー対応中においてもでてきた質問が2点あります。

 ①VBIB32.dllはAPI:gpib-32.dllの関数宣言等を行っている32bit-Excel用のべースファイルですが、

  API:ni4882.dllの関数宣言等を行っている64bit-Excel用のサンプルべースファイルは提供されていないのでしょうか。

 ②VBのibdevにて、初期化する際、RegisterGpibGlobalsForThreadをcallしておりますが、

  NationalInstruments.NI4882に移行する場合、ibdevCallのみで、よろしいでしょうか

  GPIB USB_2.0.pdfには、

  There no equivalent NI commands

  purpose:Registers local GPIB status variables for a thread

  と記載されておりました。

 

お分かりになる方がいましたら、ご教授のほどよろしくお願いいたします。

 

 

 

0 件の賞賛
メッセージ1/4
5,576件の閲覧回数

横から失礼します。サンプルべースファイルについては聞いたことないですね・・・実際に実装されている方がいればサンプル的に頂戴できると嬉しいのですが・・・。

0 件の賞賛
メッセージ2/4
5,460件の閲覧回数

おじゃまします。(私絡んでるみたいですね)

 

自分は実際にやってないはず(記憶の範囲で)では、なんともお答えできません。(ぺこり)

 

vba ni4882.dll検索2場目候補
https://documentation.help/NI-488.2-jp/DifferencesBetweentheGPIB32APIandNI4882API.html

 

ぽよよん様は、VISAを使われたようですし、うーん・・・

 

0 件の賞賛
メッセージ3/4
5,443件の閲覧回数

もう既に解決されているか、他の方法で実現されていると思いますが、

同じ問題に直面し、この問題を調べる際に参考にさせていただきました。

NI社資料をいろいろ調べて、何とか動作させることができました。

資料添付します。

メッセージ4/4
4,044件の閲覧回数