驪戻 麗全 黎新

VISAを普及させるスレッド

1 匿名488 2003/12/14(日) 10:45
VISAでプログラムすることを普及させたい。。
VISAは便利だよ。
みんな使おうよ。。
どうして使わないんだよ。。

2 匿名488 2003/12/14(日) 14:35
いきなり計測器の制御の仕事がまわってきて
なにをどうすれば分からずにこのページにたどり着く方も
多いようなので、そういうみなさんにむけて、
何をどうすれば使えるのかを書き込む、あるいは
リンクを紹介すれば多少は宣伝になると思いますが、
どうでしょう >>1

3 匿名488 2003/12/14(日) 14:37
>どうすれば分からずに
どうすれば「いいのか」分からずに、ですね。

すみません。

4 マニク◆Jy2pR/5Y 2003/12/16(火) 22:44
各社VISAライブラリへのリンク。

NI-VISA:
URL

Agilent-VISA:
URL

Tek-VISA:
URL

KI-VISA:
URL

5 匿名488 2003/12/16(火) 22:55
こうしてみるとVISA使うには英語力が必須だわ。

6 匿名488 2003/12/17(水) 00:34
菊水の日本語資料は貴重ですね。

7 匿名488 2003/12/18(木) 22:46
>>6
でもオンラインヘルプは英語だ。

8 匿名488 2004/01/24(土) 15:12
最新の測定器だとUSBとかLANで行えるものが多くなってきている。
で、USBとかLANのメリットはハードウェアに高いコストを払わなくてもいいのと、
通信速度がGPIBより早くなる点です。

で、問題点としては測定器がGPIBと互換性を考慮したUSBTMCや、VXI11に対応していても、
ソフトウェアがGPIBインターフェースメーカの独自仕様のAPIを使っていると
ソフトウェアの移植がめんどくさくなるんだよね。。

私の場合だと、製造ラインでVISAでGPIBしかない
ファンクションジェネレータと電源を使用していたのですが
ライン増設に伴い、制御コマンドが互換で、USBTMC対応の
新モデルのファンクションジェネレータと電源を導入しました。

ソフトウェアの修正は確認も含めて1日で行って、
ハードウェアへとしては
増設するラインの数が多かったので
高額なGPIBインターフェースとGPIBケーブルから
USBケーブルに変えたことでコストを
大幅に削減できたことがあります。

おそらく、VISAをつかっていなかったら、
簡単にUSBへの対応ができなかったんじゃないかな。。

9 匿名488 2004/02/02(月) 15:05
>>4
リンク切れのようです。

TEK VISA
URL

10 HP82350 2004/02/04(水) 16:17
この記事
URL

あたりの複数ベンダの VISA の共存って、現実的にはどうなんでしょう?

この例のように、NI-VISA の後に Agilent を入れる際には
セカンダリが選択できるようですが、逆、あるいは他社の場合も
そのようなことが可能なんでしょうか?

11 マニク◆Jy2pR/5Y 2004/02/04(水) 23:24
>>10
複数のVISA共存は現実的には不可能。

アジレントのセカンダリ選択は、VISA32.DLLというファイル名を避けているだけ
だから、現実的には役にたたない。結局のところVISAを使うアプリケーションは
<WinSysDir>/VISA32.DLLに物理的に依存するわけで、リネームされたVISA
(例えばAGVISA32.DLLとか)にはリンクできない。逆にそういう特殊ファイル名
のVISAに依存したアプリケーションも、実行時に普通のVISA32.DLLにはリンク
できない。VISA32.DLLはCOM DLLではないので、DLLファイル名が絶対的な
意味を持ってしまう。

異なるVISA32.DLLを複数箇所にインストールして、Side-By-Sideの条件を
設定すれば多少は共存は可能。それでも、同じプロセスに対して複数バージョン
のVISAを共存させることはできない。

アジレントGPIBを使う場合は、無理に複数ベンダーのVISA共存なんか考えずに、
NI-VISA(2.5以上)を使ってTulipサポートを有効にするのが確実。これならNI-GPIB
との共存も可能。

12 HP82350 2004/02/05(木) 08:57
>>11
上で書いた別スレの例の場合
Tulip サポート(NiVisaTulip.dll)で Agilent のカードドライバと NI-VISA の
つなぎをしてやって結局は NI-VISA で動作している、という
解釈でいいんでしょうか。

その後 Agilnet のページにそのとおりの
題名のページをみつけたんではっときます。

Using Agilent and National Instruments Hardware and Software in the Same System
URL

他社でも同様なんでしょうが、もし他に異なるベンダの例
(Tulip サポート?のような類似例)を知ってる方があったら、情報が知りたいです。

13 マニク◆Jy2pR/5Y 2004/02/05(木) 22:54
>>12
異種ベンダー間の相互乗り入れは、NI-VISAのTulipサポート(Agilent GPIB)と、
Agilent VISA/SICLのNI-488.2Mサポート、だけみたいだね。他では聞いたことない。

14 HP82350 2004/02/06(金) 08:04
>>13
自社でインターフェイスカードを提供しない
KI-VISA の場合にはマニュアルを読む限りでは、
ネイティブサポートをしている CONTEC 社のカードの他に
NI-488.2M(および互換 APIを提供するカード、推奨はインタフェース社)
をサポートするようですね。

ちなみに CONTEC も NI 互換レイヤの提供があるようですが
こちらを経由した KI-VISA の使用は推奨されていないようです。

さて、VISA 関連にお詳しいようなので便乗質問なのですが、
いわゆる VISA C API に相当する部分は VISA32.DLL の
上書きを回避する形でごまかしているようですが、
>>11 でマニクさんも少し触れられている、
COM API のほうの事情はどうなんでしょう?

KI-VISA では COM API が推奨されているようですが、
C API でなく COM API を使用する利点はなんでしょうか?

COM API を使用した場合に、他ベンダへの移行で問題が
あるようなことはありませんか?

教えて君ですみません。

15 マニク◆Jy2pR/5Y 2004/02/06(金) 09:17
>>14
VISA COMの場合は、API自体はVISA32.DLLに直接依存しない
ので共存は可能。しかし実際のI/Oインプリメンテーション
はVISA32.DLLに依存する事になるので、結局複数バージョン
のVISA共存できません。

VISA COMを使うメリットは、.NET環境とかで使う場合にインタ
ロップアセンブリを自動生成してくれるってのが一番かな。

16 マニク◆Jy2pR/5Y 2004/02/06(金) 09:30
>>14
>COM API を使用した場合に、他ベンダへの移行で問題が
>あるようなことはありませんか?

リソースマネージャ(RM)オブジェクトをどのCOMコンポーネント
から作るかで、記述が変わってくる。NIとKIの場合はグローバル
RMからアクセスするが、それを提供しないAgilent版では、
アジレント版のベンダー依存RMからアクセスしないといけない。
RMオブジェクトの作成部分だけは実行時に状況判断しないとだめ。

17 HP82350 2004/02/09(月) 19:38
>>15 >>16
丁寧にお答えいただき、ありがとうございました。
COM インタフェースについては、まだよくわかっていないので、
もうすこし修行をしてきます。

18 匿名488 2005/06/16(木) 16:56
NI-VISAを使って、ネットワーク経由で制御するにはどのようにすればよいでしょうか。
USB機器は、VISA Interactive Controlから認識され、Visual Basicで制御できています。
ネットワークも同様にできると思ったのですが、viOpen(..."TCPIP0:..")としてもうまくいきません。
VISA Interactive Contorolからも認識できません。

何らかのドキュメントの場所でもよいので、ご教示ください。

19 匿名488 2005/06/17(金) 06:24
回答でなくてすみません。

>viOpen(..."TCPIP0:..")としてもうまくいきません。

入力(プログラム)も省略、
出力も省略(「うまくいきません」の一言)してありますね。
なにかのクイズでしょうか(笑)

質問される方全般にいえるのですが、
できれば「再現可能な形」で
0)実行環境、対象機器、設定など
1)不具合が再現する(できれば最小限の)完全なコード
2)最大限のエラー、不具合情報、加工の少ないもの
が提供されると、回答が得られやすいと思います。

20 匿名488 2005/06/17(金) 12:50
>>19
ご指摘ありがとうございました。

結果として、うまくいきましたので報告します。
Measurement and Automation Explorerの
デバイスとインターフェースのアイコンの上で、右クリックすると、
新しいデバイスの追加ができるので、ここでTCP/IPリソースを選択すれば
うまくいきました。

右クリックして追加、というのに気づきませんでした。

21 匿名488 2005/06/17(金) 19:37
>>20
うまくいったかどうか報告があると同じ悩みの人への有効な情報になります。
感謝です。

22 VISA via TCPIP 2005/07/26(火) 23:40
VISA の TCPIP 機器との通信についての資料を探しています。

たとえば、TCPIP::192.168.1.1::INSTR のような、
IP ネットワーク経由で計測器と通信する場合ですが、
TekVISA で、TDS3000 シリーズのオシロスコープを使用し、
WindowsXP(SP2)を使っていると、検索できる(機器リストには現れる)のに、
ロックがかかっているというエラーメッセージが出て、
テクトロニクスの画面取り込みソフトと通信ができないようでした。

結局 WindowsXP のファイアウォールが原因で、
解除してやることで動作したのですが、
WindowsXP のファイアウォールは受信側のみのはずなので、
機器との接続に失敗する、ということは機器からもセッションが張られているのかと
推測されます。

ここらあたりを解説した資料をご存知の方、おられませんでしょうか?

23 匿名488 2005/07/27(水) 22:42
VISA、ではないかもですが、ここらへんの
URL
VXI-11 シリーズとか、がそうでしょうか。

24 匿名488 2005/08/03(水) 23:36
NIのVISA Interactive ControlでGPIBコマンドを送ることには成功しましたが、
VB.netでNI-VISAを使うところでつまずいてます。

マニュアル通りに、
Dim stat As ViStatus
Dim dfltRM As ViSession
Dim sesn As ViSession
stat = viOpenDefaultRM(dfltRM)
stat = viOpen(dfltRM, "TCPIP0::172.20.60.50::INSTR", VI_NULL, VI_NULL, sesn)
とやると、ViStatus, ViSessionが定義されていない、とVBに言われます。

参照の追加->com->visa32.dllを追加しましたが、だめでした。
VBでVISAを使うにはどうすればよいでしょうか。

25 マニク◆Jy2pR/5Y 2005/08/16(火) 17:37
VISA COMを使うのが一番手っ取り早いと思います。

26 KK 2006/09/05(火) 13:58
結局、VISAの特徴ってなんなのでしょうか?

名前
mail
コメント



文責:計測制御技術ラウンジ, Powered by ©タカヒロ@みちのく掲示板 [12ch BBS 2.03]