VISA-COMって、そもそもナニ?

はじめに:計測器と「話す」とはどういうことか

電源評価試験の現場では、電子負荷や電源装置をPCから自動制御することがよくあります。「電圧を5Vに設定して」「今の電流値を読み取って」といった指示を、PCから計測器へ送るわけですね。

でも、計測器はどうやってその「指示」を受け取るのでしょうか?

接続方式だけ見ても、GPIB・USB・RS-232C・LAN(Ethernet) とさまざまな種類があります。それぞれで通信の作法が違うのに、毎回ゼロからプログラムを書き直すのは大変すぎます。

そこで登場したのが VISA という「共通言語」のしくみです。

合わせて読みたい

VISAとは?

VISAVirtual Instrument Software Architecture(仮想計測器ソフトウェアアーキテクチャ)の略で、「どんなインターフェースの計測器でも、同じAPIで制御できるようにしよう」という思想のもと、1993年にVXI Plug&Play Systems Allianceが策定した業界標準規格で、現在は IVI Foundation が管理しています。

主要な計測器メーカー(Keysight、Rohde & Schwarz、Tektronix等)はほぼすべてVISAに対応しており、事実上の業界標準となっています。

VISA-COMって、何が違うの?

VISAには、実装・呼び出し方のバリエーションがあります。

種類特徴主な利用場面
VISA C APIC言語用のヘッダ(visa.h)ベースC/C++、LabVIEW
VISA COMCOM(Component Object Model)オブジェクトとして実装Visual Basic、Excel VBA、旧来のWindows開発
VISA.NET.NETラッパーC#、VB.NET
PyVISAPython用ラッパーPython自動化スクリプト

VISA-COM とは、このうち Windows の COM 技術を使ってVISAを呼び出す方式 のことです。VisaComLib というタイプライブラリを参照し、VBやExcel VBAからも比較的簡単に計測器制御ができるのが特徴でした。

ただし現在の現場では「VISA-COM」という呼び方は広義に使われることも多く、「VISAを使った通信」全般を指して使われることもあります。本記事でも以降は 「VISAによる計測器通信」 として話を進めます。

もう一方の選択肢:Raw TCPとは?

Raw TCP(ローTCP、生ソケット通信とも呼ばれる)は、余計なミドルウェアを挟まずに TCP/IPソケットを直接使って計測器と通信する方式 です。

LAN対応の計測器の多くは、特定のポート番号(一般的には 5025番ポート )で接続を待ち受けており、そこに向けてSCPIコマンドをテキストで流し込むだけで動作します。

合わせて読みたい

シンプルですね。特別なライブラリのインストールも不要で、どんなOSでも動きます。

VISAとRaw TCP、何が違うのか比べてみよう

抽象化レイヤーの有無

VISAの最大の強みは 「インターフェースを意識しなくていい」 点です。

接続インターフェースが変わっても、コマンド部分のコードは変えなくてよいのです。

比較表でまとめると

比較項目VISARaw TCP
対応インターフェースGPIB / USB / Serial / LAN など多数LAN(TCP/IP)のみ
追加ソフトの必要性VISAランタイムの導入が必要不要(標準ライブラリだけでOK)
コードの再利用性高い(I/F変更に強い)低い(LAN専用コードになる)
タイムアウト管理VISAが自動管理自分で実装が必要
エラー処理標準化されている自分で実装が必要
リソースロック機能あり(複数PCから同じ機器を共有する場合に便利)なし
セットアップのしやすさやや手間(ライブラリインストール等)簡単
動作OS主にWindows(Linux/macも対応は拡大中)OS問わず
処理の軽さ抽象化レイヤー分のオーバーヘッドあり軽量・直接的
IVIドライバとの連携可能不可

VISAのメリット:「統一感」が生む恩恵

  • メリット1:インターフェースが変わっても資産が活きる
    試験室で長く働いていると、「GPIBしか持っていない古い電源にUSBアダプタを付けた」「新しい機器はLAN接続になった」といった変化はよくあること。VISAを使っていれば、接続文字列(リソース名)を変えるだけでコードはそのまま使えます。
  • メリット2:タイムアウトやエラー処理が標準化されている
    「コマンドを送ったけど返事が来ない」という状況は計測器制御ではよく起きます。VISAはタイムアウト設定が一元管理でき、エラーコードも統一されているため、堅牢な自動化プログラムを比較的簡単に作れます
  • メリット3:IVIドライバや大手計測ソフトと親和性が高い
    LabVIEW、MATLAB、Python(PyVISA)など、計測・制御の定番ツールはVISAと密接に統合されています。機器メーカーが提供するドライバもVISA前提が多く、エコシステムが充実しています。
  • メリット4:複数ユーザーによる機器の共有管理
    VISA にはリソースロック機能があり、「AさんのPCが制御中に、BさんのPCから誤って同じ機器に書き込んでしまう」といった事故を防ぐことができます。複数の試験員が同じ機器を使い回す環境で役立ちます。

VISAのデメリット:「便利さ」の裏側

  • デメリット1:VISAランタイムのインストールが必要
    NI-VISA(National Instruments)やKeysight IO Libraries Suiteなどのソフトをあらかじめインストールしておく必要があります。顧客先のPCや組み込みLinux環境など、自由にソフトを入れられない環境では使いにくいのが難点です。
  • デメリット2:Windowsへの依存が(まだ)強め
    VISA自体はクロスプラットフォーム化が進んでいますが、歴史的にWindowsとの親和性が高い設計になっており、Linux・macOS環境での対応は完全ではないケースもあります。PyVISAなどの普及で改善されつつありますが、注意は必要です。

合わせて読みたい

  • デメリット3:セットアップがやや面倒
    ライブラリのインストール、ドライバの設定、リソース名の確認など、最初の環境構築に一定の手間がかかります。「ちょっとだけ動作確認したい」という場面では、Raw TCPの手軽さが魅力に映ることもあります。
  • デメリット4:わずかなオーバーヘッド
    抽象化レイヤーを挟む分、理論上は Raw TCP より若干のオーバーヘッドがあります。ただし、通常の計測器制御では体感できるほどの差はないため、実用上ほぼ問題ありません。

どちらを選べばいい? ・・ 選択の目安

まとめ

VISAVISA-COMRaw TCP
一言で言うと計測器通信の「共通プラットフォーム」「直結」のシンプル通信
向いている場面複数I/F・長期保守・大規模試験システムLAN専用・軽量スクリプト・環境制約あり

VISA-COMは「計測器の種類や接続方式が変わっても、同じやり方で制御できる」ための業界共通の土台です。最初のセットアップに少し手間はかかりますが、複数の機器を組み合わせた自動試験環境や、長く使い続ける試験システムの構築には、VISA(VISA-COM)を選んでおくと後々の資産が守られます。

一方でRaw TCPは「余計なものを入れずに今すぐLAN接続で動かしたい」という場面では非常に有効な選択肢です。

「最初の1台をLANでちょっと動かしてみたい」ならRaw TCP、「本格的な自動試験システムを作るなら」VISAを選ぶ──この基準が最初の指針になるでしょう。

関連情報