LabVIEWでVISAシリアル書き込みに終端文字を追加するには?

更新しました Feb 4, 2019

使用製品

Driver

  • NI-VISA

問題

使用しているシリアル計測器に終端文字が必要です。LabVIEWのVISAシリアルVIを使用する際に、改行(LF: Line Feed)、復帰(CR: Carriage Return)や復帰改行(EOL: End Of Line)をコマンドの後ろに追加するにはどうすればよいですか?

解決策

プロパティノードを使用して、終端文字の有効化、終端文字の指定、および書き込みに対する終了モードを設定する必要があります。 
  1. ブロックダイアグラムで右クリックして、関数パレットから計測器I/O>>VISA>>VISA上級>>VISAプロパティノードを選択して配置します。
  2. VISAプロパティノードを拡張して、3つのプロパティを扱えるようにします。
  3. プロパティノードを右クリックしてすべてを書き込みに変更を選択します。
  4. 1つ目の「プロパティ」という名称をクリックして、Message Based Settings>>Termination Character Enableを選択します。
  5. 2つ目の「プロパティ」という名称をクリックして、Message Based Settings>>Termination Characterを選択します。
  6. 3つ目の「プロパティ」という名称をクリックして、Serial Settings>>End Mode for Writesを選択します。
  7. TermChar Enプロパティを右クリックして、作成>>定数を選択し、True定数を作成します。
  8. TermCharプロパティに適用したいASCII文字の10進数値を配線します。10進数で改行(LF)は10、復帰文字は13です。 復帰改行(EOL)は、復帰(CR)のあとに改行(LF)を続けた組み合わせですが、この方法では終端文字としてサポートされていません。複数の終端文字を適用する別の方法や終端文字のASCII値が不明な場合は、Termination Characters in NI-VISAをご参照ください。
  9. ASRL End Outプロパティを右クリックして、作成>>定数を選択します。これで、終端文字オプションの列挙体が作成されます。列挙体のリストからTermCharを選択します。
 

これで書き込みの際、自動的に設定した文字で終端されます。 
 

追加情報

  1. メモ: TermChar EnとTermCharは読み取り専用であり、TermCharプロパティを設定するにはTermChar EnをTrueに設定する必要があります。あるいは、ASRL End Outは読み書き用です。また、前の手順を完了するために、NI-VISAドライバが必要です。NI-VISAのダウンロードページはこちらからご覧いただけます。

    もう一つの方法として、シリアルポートへ送信する文字列を作成するために文字列連結関数を使用することができます。LabVIEWでは、文字列関数パレットにある復帰文字定数、改行定数、および復帰改行定数の3つが一般的に使われている終端文字です。

    事前にあるLabVIEW定数以外に必要な場合は、ご自身で作成することができます。ブロックダイアグラムで文字列定数を作成して、それを右クリックします。ポップアップメニューから'\'コード表示を選択します。これでコード表示形式を使用できます。詳細は、下記の終端文字コード表を参照してください。
     
    終端文字コード表
    終端文字コード表示
    改行(LF: Line Feed)

    \n

    復帰(CR: Carriage Return)

    \r

    復帰改行(EOL: End Of Line)

    \r\n

    改ページ(FF: Form Feed)

    \f



     
  2. 物理ハードウェアの終端は、適切なシリアル規格に準拠する必要があることに注意します。物理コンポーネントでの終端設定が正しくない場合、ソフトウェア側の終端文字に問題が発生します。

この記事はお役に立ちましたか?

いいえ