From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

シリアル通信

貴社のLABVIEW2014、サンプルプログラムの簡易シリアルを使いシリアル通信をしましたが、

一番初めのデータが文字化けしてしまっています。

どういったことが原因と考えられますか?

また、そのデータを波形グラフに表したいのですが、どうすればよいでしょうか?

0 件の賞賛
メッセージ1/4
2,899件の閲覧回数

一番初めのデータが文字化けする、とは数バイト分のみということでしょうか?

 

そのあとに続く数値データは正常の値でしょうか?

 

制御している機器の仕様で特定のコマンドの応答に対してッダ情報が乗っていたり、フォーマットが異なっていることはないでしょうか?

 

よろしくお願い致します。

0 件の賞賛
メッセージ2/4
2,879件の閲覧回数

asacaracasas様のデータの問題については解決済みですか。文字化けしてしまうデータは「ヘッダ」のことでしょうか。読み取ったデータを波形グラフに表示したいときには次の方法が考えられます。

  • シリアル通信から出てきたデータを「文字列にフォーマット」関数と接続し「テキストファイルに書き込む」関数を使用すれば、データがテキストファイルに保存できます。
  • 保存されたファイルをLabVIEWに表示するとき、「テキストファイルから読み取る」関数を使用します。
  • 波形グラフに表示する場合、文字列を数値列に変換する必要があるので、このとき「スプレッドシート文字列を配列に変換」関数を使用します。
  • 最後に作成された数値配列を波形グラフに接続します。

類似の記事をみつけたので、よろしければご参照ください。

https://forums.ni.com/t5/LabVIEW/read-save-data-from-serial-port-write-to-txt-or-lvm-and-plot/td-p/6...

0 件の賞賛
メッセージ3/4
2,844件の閲覧回数

LabVIEWはシリアル受信から得られる結果は文字列データとして扱われます。
文字化けしている文字列表示器の上で右クリック、16進表示を選んでください。
たとえば「abc」という文字は「6162 63」
「LabVIEW」という文字は「4C61 6256 4945 57」と表示されます。
この6162 63とは16進データの61H,62H,63Hということになります。

 

アスキーコード表というのがありまして、61H="a"を表示する。という決まりがあり、いわゆる文字化けとはコード表に無いデータが来ているということです。

多分、制御文字というデータが含まれているか、もしくはアスキーデータではないと思われます。

 

もしくは、、もっと根本的な話で通信設定(ボーレートやスタートストップビットなどの設定)が違ってたりしてもそうなります。

 

波形データにどうするか?という話は、その送られてくるデータの形式がどのようなものかわからなければ説明できません。アスキーなのか?バイナリなのか?バイナリなら何ビット長なのか?をお知らせください。

0 件の賞賛
メッセージ4/4
2,831件の閲覧回数