NI製品ディスカッション

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

シリアル通信を行った際にエラー「転送中にフオーバーフローが発生しました」

シリアル通信でデータを受け取り、そのデータを解析しようと考えています。

現在、大体組みあがったのですが、プログラム起動直後は動作するのですが、

少し時間が経過すると、タイトルに記載したエラー「転送中にフオーバーフローエラーが発生しました。次の文字が到着する前にハードウェア殻文字が読み取られませんでした」と表示され、停止してしまいます。

 

同じような内容が投稿されていたのですが、その対策であるCOMポートの詳細設定タブが押せない(グレー表示になっている)ため、書かれていた対策をすることができませんでした。

そのため、別の対策手段(シリアル通信のボーレートを遅くする など)はあるのでしょうか。

ご回答をお願い致します。

0 件の賞賛
メッセージ1/6
5,116件の閲覧回数

TRkazu様

 

そのエラーはLabVIEWが表示しているものでしょうか。

エラーコードをご存知でしたら投稿していただけますでしょうか。

 

過去の投稿を参考にされたそうですが、その投稿のURLを載せていただくと、TRkazu様がどのようなことを試されて何ができなかったのかがわかりやすくなると思います。

 

また一般的にシリアル通信の場合、ボーレートは接続先機器と合わせる必要があると思います。接続先機器のボーレートは確認されましたでしょうか。

 

上記ご確認のうえ再度ご投稿いただけると幸いです。

0 件の賞賛
メッセージ2/6
5,079件の閲覧回数

 

エラーはlabVIEWが表示しています。

エラコードは、

−1073807252 (だったはずです)

「転送中にフオーバーランエラーが発生しました。次の文字が到着する前に、ハードウェアから文字が読み取られませんでした。」

 

過去の投稿された内容

https://forums.ni.com/t5/NI%E8%A3%BD%E5%93%81%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AB%E3%83%83%E3%82%B7%...

 

接続先のボーレートと同じにであるのを確認しました。

 

0 件の賞賛
メッセージ3/6
5,066件の閲覧回数

どこかでバッファが一杯になって、いわゆるオーバーフローが起きているエラーかと思います。

 

シリアルポートは、どのようなもの使用していますか?変換機でしょうか?

 

PCバッファでオーバーフローしているのか、UARTのチップのFIFOで起きているのか切り分けるために、VISA プロパティノードのNumber of Bytes at Serial Portのデータ数を監視して、(例えば波形チャートなどでモニターする)設定したバッファー数を超えるか確認しても良いかもしれません。

デフォルトでは、4096数だったと思います。

 

ちなみにボーレートはどのくらいでしょうか?ボーレートを下げたらエラーの頻度は下がりますか?

PCの型や232変換器のレイテンシにより、不規則にオーバランエラーが起きることもあるようです。

よろしくお願いします。

 

 

 

0 件の賞賛
メッセージ4/6
5,057件の閲覧回数

質問の回答とずれていたら、申し訳ありません。

 

基盤→RS232CーUSB変換器→PC という流れで通信を行っています。

 

ボーレートの設定値は57600です。

ボーレートの設定は基盤内のソフトで決まっているので、ボーレートをさげることはできません。

 

「VISA プロパティノードのNumber of Bytes at Serial Portのデータ数を監視して〜」に関しては、どうやればいいのかわかりませんでした。

0 件の賞賛
メッセージ5/6
5,035件の閲覧回数

こんにちは。

 

VISA プロパティノードのNumber of Bytes at Serial Portは下記の資料の解答策の項目にございます。

 

http://digital.ni.com/public.nsf/allkb/A89A5CD746041E31862570D600074FE0

 

資料自体の内容は今回の問題とは関係ない(タイムアウトなので、オーバランとは逆の現象)ですが、プロパティノードがご参考になるかと思います。

0 件の賞賛
メッセージ6/6
5,016件の閲覧回数