シリアルデバイスがハイパーターミナルでは動作するが、LabVIEWやVISAテストパネルでは動作しない

更新しました Mar 27, 2023

使用製品

ソフトウェア

  • LabVIEW

ドライバ

  • NI-VISA

問題

シリアル通信の計測器はハイパーターミナルで動作しますが、Measurement&Automation Explorer(MAX)のLabVIEWまたはVISAテストパネルでは動作しません。

解決策

この問題で考えられる理由は、2つあります。それは、終端文字の違いと文字転送の速度です。これら2つの原因に関連する潜在的な問題を解決するには、次の2つの方法を試します。
 
  • ハイパーターミナルで使用されている終端文字がLabVIEWと一致していることを確認します。
    • 通常、ハイパーターミナルは、終端文字として\r\nを追加します。これは、送信する各メッセージの最後に、キャリッジリターンとそれに続く改行に対応します。
    • LabVIEWの文字列制御器および表示器で\コード表示を使用して、終端文字が一致していることを確認できます。たとえば、ハイパーターミナルで文字列を書き出し、ループバックテストを使用してそれをLabVIEWに読み戻すことができます(シリアルループバックテストの実行方法)。これにより、ハイパーターミナルがどの終端文字を使用するかを判断できます。次に、同じ文字列をLabVIEWで書き出し、ループバックテストを使用してそれをLabVIEWで読み取ります。これらの入力値を比較して、終端文字が互いに一致するかどうかを判別します。
       
 
  • 機器にコマンド文字列を送信する速度を遅くします。

    シリアル計測器が古い計測器であり、ハードウェア制御がない場合、LabVIEWやNI-MAXのVISAテストパネルにおいてシリアルデータを書き出す速度が問題になる可能性があります。
    • ハイパーターミナルは、入力された文字をシリアルポートに書き出します。したがって、単語の文字列が入力されると、ハイパーターミナルは6つの個別の文字を送信します。最初にs、次にt、次にrというように、文字列の末尾から終端文字を送信します。
    • 一方、LabVIEWは文字列全体を取得し、文字間の遅延なしに一度に全文字列を計測器に書き込みます。これを確認するには、Forループを使用して文字列を計測器に書き込み、ループ内の各文字(つまり各反復)間にわずかな遅延を入れて、一度に1文字ずつ書き込むようにします。詳細は、Serial One Byte at a Timeサンプルプログラムを参照してください。