NI-VISA終端文字

概要

様々なメッセージベースのバスが、メッセージ伝送の終了を示すために終端文字を使用しています。完全な488.2プロトコルに対応するVISAリソースタイプ(GPIB Instr、VXI/GPIB-VXI Instr、USB Instr、およびTCPIP Instr)の場合、プロトコルの実装にメッセージの終了を示すメカニズムがあるため、一般的に終端文字を使用する必要はありません。その他のリソースタイプ(Serial Instr、USB Raw、およびTCPIP Socket)を使用している場合にのみ、VISAにメッセージの終了を伝える必要があります。

受信メッセージと送信メッセージの両方に終端文字を含めることができます。一般的な終端文字として、改行文字(コード表記「\n」、ASCII 10進数の10、または16進数の0x0A)と復帰文字(コード表記「\r」、ASCII 10進数の13、または16進数の0x0D)の2つがあります。

4つの主要なNI-VISAプロパティが終端を扱います。2つはメッセージベース設定に分類され、残りの2つはシリアル設定に分類されます。メッセージベースのプロパティは終端文字終端文字有効で、シリアル固有のプロパティは、読み取り用シリアルエンドモードおよび書き込み用シリアルエンドモードです。初めに各プロパティについて詳細に説明してから、特別な注意事項について説明します。

内容

終端文字 (TermChar)

終端文字


このプロパティは、入力として符号なし8ビット整数を使用します。したがって、終端文字のASCII値がわからない場合は、上記のように値を型変換してプロパティに設定するのが最善です。このプロパティ値を読み取りおよび書き込みの両方に終端文字として使用します。このプロパティ値を設定しても、これが使用されるとは限りません。

TermCharはシリアル通信に限定されませんが、概要で説明したように完全な488.2プロトコルを使用してバスで通信する場合は、その他の終端メカニズムを使用することをお勧めします。たとえば、GPIB経由で通信する場合、標準では終端にハードウェアライン(EOI)を使用します。

メモ: 「VISAシリアルポート構成」VIは、termination charパラメータを使用してこのプロパティを設定します。このパラメータのデフォルトは改行文字 (0x0A = '\n' = LF) です。

終端文字有効 (TermChar En)


終端文字有効

Trueが設定されると、このプロパティはVISAに、終端文字を検出したら読み取りを終了するように指示します。これがシリアルに限定されていないことに注意してください。このプロパティを使用してその他のバスで読み取りを終了することができます。

重要: 読み取り用シリアルエンドモード(後述)がTerm Charに設定されている場合、このプロパティは無視され、エラーを返しません。

このプロパティは書き込み用の終端文字に影響を与えません。

メモ: 「VISAシリアルポート構成」VIは、終端文字を有効にするパラメータを使用してこのプロパティを設定します。このパラメータのデフォルトはTrueです。

読み取りシリアルエンドモード (ASRL End In)

読み取り用シリアルエンドモード


このプロパティは、シリアル通信の場合のみ、ソフトウェアバッファからの読み取り操作を終了するメソッドを指定します。有効な値は以下のとおりです。

説明
None (0)終端文字を検出しても読み取りは停止しません
Last Bit (1)読み取りは、最終ビットが設定された状態で文字が到着すると同時に終了します。
TermChar (2)
(デフォルト)
終端文字を検出すると読み取りは停止します。これはデフォルト値です。


重要: 値にTermChar (2)が設定されている場合、終端文字有効プロパティ値は無視されます。

バイトカウント(VISA読み取りによって指定)、またはタイムアウト(VISAプロパティ)に到達すると、このプロパティに設定されている値に関係なく読み取りが終了します。

このプロパティは、終端停止を有効(Suppress End En)プロパティにTrueを設定すると無効になります。

メモ: 「VISAシリアルポート構成」VIは、終端文字を有効にする入力にFが設定されている場合、このプロパティをNoneに設定します。終端文字を有効にする入力にTが設定されている場合は、TermCharに設定します。

書き込みシリアルエンドモード (ASRL End Out)

書き込み用シリアルエンドモード



このプロパティは、書き込み操作を終了するメソッドを指定します。有効な値は以下のとおりです。

説明
None (0)
(デフォルト)
書き込みには終端文字が追加されません。
Last Bit (1)書き込みは、最上位ビットがクリアされた状態で終端文字外の全ての文字を送信し、最上位ビットが設定された状態で終端文字を転送します。
TermChar (2)終端文字の値は全ての書き込みの最後に追加されます。
Break (3)シリアルブレークは、各書き込みの後に送信されます。シリアルブレークは一連の連続するスペース値で、進行中の操作を停止する、または出力バッファ内の全てのデータを破棄することを計測器に指示するためによく使用されます。このメソッドは注意して使用してください。


旧式の計測器ドライバでは、VISA書き込みの前に終端文字を追加する場合があります。これは旧バージョンのVISAがこのプロパティをサポートしていなかったためで、ユーザが終端文字を明示的に追加する必要がありました。設定をプロパティが行うため、これはもう必要ありません。

このプロパティは、終端送信有効(Send End En)プロパティにFalseを設定することで無効にできます。

メモ: 「VISAシリアルポート構成」VIはこのプロパティを設定しません。上図に示すように、プロパティノードを介して設定する必要があります。

ASCII通信


ASCII通信を実行する場合、アプリケーションまたはドライバの初期化ルーチンの最初に、終端プロパティおよびその他のバス通信設定を設定します。終端文字の設定は、計測器の構成と一致する必要があります。一部の計測器には構成可能な設定があることに注意してください。ご利用の計測器のユーザマニュアルを参照してください。

推奨事項: 複数のバスを扱う可能性のあるより強固なアプリケーションの場合、常に終端文字有効と読み取り用シリアルエンドモードを同期させておくようにします (つまり、どちらかを有効/無効にした場合、もう1つも同じに設定します)。

バイナリ通信


バイナリ通信を実行する場合、あるバイナリデータ値が終端文字と同じバイナリ表現を持つ場合、読み取りが途中で終了する可能性があります。このため、以下に示すように、終端文字有効にFalseを、読み取り用シリアルエンドモードにNone (0)を設定することで、終端文字を無効にします。ハードウェアラインやバイトカウントなど、読み取りを終了するための別のメソッドを使用する必要があります。

バイナリ通信を実行中


メモ: 完全な488.2プロトコルに対応するVISAリソースタイプ (GPIB Instr、VXI/GPIB-VXI Instr、USB Instr、およびTCPIP Instr) を使用する場合、そもそも通常、終端文字を有効にする必要がないため、バイナリ通信がより簡単です。終端文字設定を無効にすることについて心配する必要がないからです。

複数終端文字使用する計測


計測器の中には、復帰文字改行文字 (コード表記「\r\n」またはASCII 16進数の0x0D0A) のように複数の終端文字を送信するものがあります。VISAでは1つの終端文字しか許可しないため、別の解決策を見つける必要があります。初めに、計測器の終端シーケンスが構成可能かどうかを確認します。構成可能でない場合は、最後の文字で終了するようにVISAを設定して、文字列からスキャンを使用して実際のメッセージからその他の文字を解釈するようにできます。以下の図は、「\r\n」または「\n」終端に対して機能するコードを示しています。

複数の終端文字


メモ:この構成を使用するためには、表示スタイルプロパティをバックスラッシュ(「\」)コードに設定する必要があります。バックスラッシュ(「\」)コード表記の詳細については、バックスラッシュ(「\」)コード表記―LabVIEWヘルプ(英語)を参照してください。

 

Was this information helpful?

Yes

No