NI-MAXを利用したGPIB通信・シリアル通信・USB通信・DAQの基礎とトラブルシューティング -シリアル計測器編-

この記事では、測定機器と通信を行う際に知っておくと便利な基礎知識と、発生する可能性のある通信トラブルについての対処法を記載いたします。

対処については、ナショナルインスツルメンツ社(以下NI社)のMeasurement & Automation Explorer(以下MAX)をもとに行います。MAXはNI社のLabVIEWをインストールいただくと、自由にご利用いただけます。通信確認を行うためには、非常に便利なソフトですので、通信確認の際には、併用していただくことを推奨します。

今回はシリアル計測器のトラブルシューティングをご紹介いたします。

目次

シリアル計測器 トラブルシューティング

シリアル通信とは?

シリアル通信とは、一つの電線に送信データを1ビットずつのパルスで送る仕組みの通信です。
主な種類は、RS-232C、RS-422A、RS-485 があり、通信に必要なパラメータは同じで、配線、特徴、仕様が異なります。通信機器は、ほとんどRS-232Cが多いです。

下記の表にRS-232C、RS-422A、RS-485 の主な違いを表します。

RS-232CRS-422ARS-485
通信できる最大ケーブル長15m1200m1200m
最大データ伝送速度20Kbps10Mbps10Mbps
通信機器の接続数1:11:NN:N

一般的にシリアルインターフェース のコネクタ形状は下図の通りです。
9ピンと25ピンが良く使われています。

9ピンインターフェース
9ピンインターフェース
25ピンインターフェース
25ピンインターフェース

RS-232Cとは?

RS-232Cとは、中低速のシリアル通信で最も普及している通信規格の一つです。

シリアル通信に必要な設定条件とは?

シリアル通信に必要な設定条件は、ボーレート、データビット、パリティ、ストップビット、フロー制御の設定が必要となります。

ボーレート(Baud rate)とは?

データを送ったり読んだりするときの 1 秒間のデータ量です。ボーレートは一般的に 9600bps(byte/s)の機器が多いです。機器によっては、ボーレートはある範囲設定することができますので、その設定したボーレートとソフトのボーレート設定値を等しくすることで通信を行うことができます。

データビットとは?

データ部分のビット数の意味です。種類として、5・6・7・8 がありますが、ほとんどの機器は、7ビットと8ビットです。この値は機器の仕様となっており、変えられない値です。

パリティビットとは?

パリティビットは最も単純な誤り検出符号です。設定種類は、None、even、oddがあります。

ストップビットとは?

ストップビットは常に1です。ストップビットは1バイトの通信が終了するという、意味を持っています。また、ビット数は、1ビット、1.5ビット、2ビット等があります。

フロー制御とは?

2 つのノード間で高速な送信側が低速な受信側をオーバーランさせてしまうことを防ぐようデータ転送のレートを管理するプロセスです。

デリミタとは?

書き込みコマンド、読み込みデータの終了を表す文字のことです。
機器によって、デリミタの設定が異なる場合があります。
下記の4パターンがあります。

  1. デリミタなし・・・*IDN?
  2. デリミタCRのみ・・・*IDN?¥r
  3. デリミタLFのみ・・・*IDN?¥n
  4. デリミタCR+LF・・・*IDN?¥r¥n

DCE、DTEとは?

言葉の意味としては、データ端末装置 (DTE) とデータ回線終端装置 (DCE) のことです。

DTE:データ端末装置  (例)パソコン、ルーター
DCE:データ回線終端装置  (例)モデム

ストレートケーブルとクロスケーブルとは?

シリアル通信機器との接続の際に必要なケーブルです。
見た目は一緒のケーブルでも、内部の結線が異なっています。
使用するときの違いは、

  • ストレートケーブル:パソコンとパソコン(もしくは準ずる機器)
  • クロスケーブル:パソコンと測定器

測定器によっては、クロスケーブルでないと通信できないものもあるので、ひとえに測定器だからと言って、ストレートケーブルで通信できるわけではありません。1度どちらかを確認する必要があります。

※送信しているデータが正しいかどうかを確認するために、ループバックテストという方法があります。
詳細は下記のとおりですが、送信したデータを自分自身で受信することによって確認します。

ループバックテストとは?

シリアル通信動作を確認する方法です。
シリアル通信の9ピンのコネクタの2ピンと3ピン(※フロー制御なしの場合)をつなぐことによって、送信データがそのまま返答データとして返ってくるようになります。ですので、データが送られるか、受信できるかを確認するために行うテストです。

メス-メス ストレートケーブル、ジェンダーチェンジャーなどがあれば、NI-USB RS232ケーブルに接続します。(メスコネクタのほうが、配線を行いやすいです。)

ジェンダーチェンジャー(メス)
メスーメス dsub9ピンケーブル

針金などで、2ピンと3ピンを導通させます。

「VISAテストパネル」を開きます。

VISAテストパネルとは?

NI MAXソフトに搭載されている、VISA関数を用いた通信を確認することができるソフトです。

VISAテストパネルの説明

Configration 画面 : 通信のパラメータなど設定を行う画面です。
Input / Output画面 : コマンドを送信したり、受信したり、通信の確認を行う画面です。

コマンド「*IDN?¥n」を送ってみましょう。


Select or Enter Commandに IDN?¥nと入力し、Queryボタンを押します。

下の欄に、*IDN?¥n と現れればループバックテストは成功です。

シリアル通信機器と接続出来ません

シリアル通信機器と接続できない場合は下記項目をご確認ください。

  • 電源は入っていますか?
  • シリアルケーブルの接続はされていますか?
  • 測定器のモードはリモート(シリアル通信(RS-232C)モード)になっていますか?

機器ローカルモードとは?

測定器に備わっているパネルや、ボタンから手動で設定を行えるモードです。機器によってこの状態では、パソコンと通信が行えません。その場合、機器リモートモードに変更する必要があります。

機器リモートモードとは?

パソコンから、設定コマンドを送り、設定が行えるモードのことです。
機器リモートモードでも手動で設定を行える機器もありますが、全く手動で設定を行えない機器もあります。その場合は、切り替えスイッチがあるはずです。

シリアルポート番号とは?

シリアル通信を行う識別番号がついた、「COM?」(?:数値)と表されるポートです。パソコンにUSBシリアルケーブルを接続すると、デバイスとインタフェースに「シリアル&パラレル」のところに「COM1」や「COM2」と、表示されます。詳しくは、「シリアル通信のポート番号がわからない」をご参照ください。

シリアル通信機器のポート番号がわからない

  • ポート番号の調べ方は、MAXとデバイスマネージャーで確認を行えます。

※デバイスマネージャーの確認方法は、「デバイスマネージャーの開き方は?」をご参照ください。

  • MAXでポート番号を確認できます。

※MAXでポート番号を確認する方法は、「接続されている機器の確認方法」をご参照ください。

デバイスマネージャーとは?

デバイスマネージャーとは、デバイス(パソコンを構成している部品やディスプレイ、プリンターなどの周辺機器)をマネージャ(管理)するところにあたり、デバイスが正常にパソコンに認識されているかどうか確認したり、設定の変更、ドライバのインストールを行ったりするものです。

デバイスマネージャー画面

デバイスマネージャーの開き方は?

  1. スタートメニューの隣の検索欄に「デバイスマネージャー」を入力→デバイスマネージャーが出てくるのでクリックすると起動します。
  1. デバイスマネージャーでポート番号を調べます

デバイスマネージャー画面のポート(COMとLPT)の横向きの三角形をクリックすると、現在接続しているCOMポートを確認することができます。

シリアル通信機器から返答がありません

シリアル通信機器から返答がない場合、下記の項目をご確認ください。

  • 電源は入っていますか?
  • シリアルケーブルの接続はされていますか?
  • クロスケーブル・ストレートケーブルの接続はされていますか?
  • 測定器のモードはリモート(シリアル通信(RS-232C)モード)になっていますか?
  • ボーレートは機器の設定と合っていますか?
  • データビットは機器の設定と合っていますか?
  • パリティビットは機器の設定と合っていますか?
  • ストップビットは機器の設定と合っていますか?
  • フロー制御は機器の設定と合っていますか?
  • MAXのVISAテストパネルは開けますか?

接続しているポート番号を選択し、「VISAテストパネルを開く」を選択してください。

通信が確立していれば、下図のテストパネルが開きます。

  • コマンドは合っていますか?
    (存在するコマンドか、スペルが正しいか、全角が混じっていないかを、確認してください。)
  • デリミタ(終端文字)の設定は合っていますか?

※デリミタについては、「デリミタとは?」をご参照ください。

  • コマンド「*IDN?」を送り、バージョン情報の返答がありますか?

MAXのテストパネルを起動します。デバイスとインタフェース→COM○○→VISAテストパネルを開く を行ってください。

テストパネルの「Input / Output」画面で、Select or Enter Command欄で、*IDN?¥nを選択し、「Query」ボタンを押します。正常な通信なら、バージョン情報が返答されます。

※ここで、うまくいかない場合は、コマンドの確認を行ってください。もしくは*IDN?¥nのコマンドに対応してない機器も存在しますので、マニュアルを確認してください。

  • 動作させたいコマンドで返答があるか確認してください。

通信したいコマンドを打ち込み、同じように「Query」を押します。

電圧を呼び出すコマンドを送り、読み込んだ例

※ 通信機器によっては、上の*IDN?の返答が来ても、ほかのコマンドはリモート用コマンドを送らないと、返答がない場合があります。その場合は、リモートコマンドを送って再度確認してください。