11-10-2021 05:00 PM
LabVIEW2020(32bit)を用いて松定プレシジョンの直流安定化電源(P4LTシリーズ)とUSBケーブルでシリアル通信しております。
P4LTシリーズはLabVIEWから任意のコマンドを送信することでリモート制御を行うことができます。
現在、松定プレシジョンの提供しているサンプルプログラムに含まれていたライブラリ関数呼び出しVIをループストラクチャの中に入れ、測定値取得コマンドを0.1秒~1秒間隔(任意設定)で送信して電圧・電流測定値の取得を行っております。
しかし、プログラム実行直後やプログラム終了直後、プログラム終了後にブロックダイアグラムの編集をした際などにLabVIEWの例外的なエラーが発生し、LabVIEWのソフト自体が強制終了されてしまいます。
毎回例外的なエラーが発生する訳ではないのですが、数回に1回ほどの割合で発生しています。
おおまかなプログラム構成は
となっています。
要素を分けて試験を行ったところ、主に測定値の取得をしている部分で問題が起きているのかなという印象でした。
また、P4LTとの接続を行わずにプログラムを実行した場合はエラーが発生しておりません。
以上に関しまして、エラーの回避方法やアドバイス等をいただきたいです。
何卒よろしくお願いいたします。
【添付】
11-10-2021 05:02 PM
申し訳ありません。
ファイルの添付が上手く行えていなかったため、別途投稿させていただきました。
よろしくお願いいたします。
11-12-2021 04:16 AM
FTDIのUSB-シリアルチップ用ダイレクトドライバを利用しているのですね。
クラッシュする場合は原因の特定が難しいので、一般的なことを羅列します。
・FTD2xx.dllのバージョンはOSに合った最新版ですか?
・FT_Readで20バイト読むとき、空文字列ではなく20バイトのNULL文字列を与えたほうが良いです。
・Whileループがノーウェイトで回る可能性はないですか?
・P4LTへのコマンドはノーウェイトで(矢継ぎ早に)送っても大丈夫なのですか?
・データ要求コマンドのWriteと応答のReadの間に他のWriteが割り込んでしまう可能性はないですか?
FT_WriteやFT_ReadはサブVIにして、同時にコールされることが無いようにしてみたら何か変わるかもしれません。
11-17-2021 06:25 PM
ご返信ありがとうございます。
さまざまなご指摘ご提案をしていただきありがとうございました。
まずは割り込みの確認とサブVI化を試してみます。
結果に関しまして再度投稿させていただく予定ですが、その他にも何か分かったことがございましたらぜひご教授をお願いします。
何卒よろしくお願いいたします。