シリアル ポート RS - 232 の熱センサーから入力を取得し、基本的な変換を適用して画面に表示する Labview プログラムを作成しようとしています。
実際のハードウェアにアクセスする前にプログラムをテストできるように、何らかの方法で labview でセンサーをシミュレートしたり、外部シミュレーター アプリケーションを使用したりできるかどうか疑問に思っています。
これは可能ですか?
私は Labview 2011 を持っています。
シリアル ポート RS - 232 の熱センサーから入力を取得し、基本的な変換を適用して画面に表示する Labview プログラムを作成しようとしています。
実際のハードウェアにアクセスする前にプログラムをテストできるように、何らかの方法で labview でセンサーをシミュレートしたり、外部シミュレーター アプリケーションを使用したりできるかどうか疑問に思っています。
これは可能ですか?
私は Labview 2011 を持っています。
VIのロジックをテストする最も簡単な方法は、サンプルデータのCSVファイルを作成し、センサーから読み取るセクションをCSVファイルからデータ値を同じ速度で読み取るセクションに一時的に置き換えることです。
Labview は一般にハードウェアから VI にデータを取得する際に非常に信頼性が高いため、シリアル ポート入力を下位レベルでエミュレートしようとする価値はおそらくありません。それをどうするかはあなた次第です。
すべての通信コードをサブVIまたはサブVIのセットにカプセル化し、変換および表示部分を実行するコードとは別に、テストコードとテストデータを実際のセンサーデータに簡単に置き換えることができます。テストデータを生成するサブVIを作成し、後で実際のセンサー通信サブVIに置き換えるか、サブVIのケース構造を使用して、実際のセンサーと通信するか、テストデータを出力するかを選択できます(Morayが提案するように) 、簡単に変更できるようにファイルから読み取ることができます)。
センサーへの通信を開始し、そこからデータ ポイントを取得し、終了時に通信ポートを閉じるための個別のサブ VI を作成することをお勧めします (ただし、おそらくシリアルまたは VISA の終了関数を使用できます)。通信ポート(別名VISAセッション)とエラーワイヤを使用して、これらのVIを連鎖させます。「オープン」VIは、実際の/シミュレートされたデータを使用するかどうかを指定する入力を受け取り、その選択を「データを取得」VIが呼び出されるたびにチェックするグローバル変数(または機能グローバルVI)に保存できます。
シミュレートされたデータを別のシリアル ポートから送信するという glglgl の提案も適切です。ここで行う必要があるのは、ある種のループでシリアル送受信機能を使用して、コマンドを受信し、出力を送り返すという点で、実際のセンサーと同じことを行うことだけです。これには、メイン プログラムに変更を加える必要がないという利点があります。メイン プログラムは、実際のセンサーに接続されている場合でも、シミュレーション プログラムに接続されている場合でも、まったく同じように動作します。ただし、実世界でのシリアル通信の問題は、多くの場合、計測器やデバイスが仕様どおりに動作しないことが原因で発生します。実際のセンサーが予期しないことを行う場合:-)
別のプログラムでセンサーをシミュレートし、別の COM ポートに書き込むことができます。次に、これらの COM ポートをヌル モデム ケーブルで接続できます。
そのためには、センサーがどのように機能するかを理解し、データを適切な形式で 2 番目の COM ポートにフィードする必要があります。これらのデータは最終的に最初の COM ポートで受信され、最終的に開発対象のアプリケーションで受信されます。
他の回答は本当に素晴らしいアイデアを提供してくれましたが、初心者にとって便利なセンサー入力をシミュレートする簡単な方法を見つけました。
Labview Modbus ライブラリを開き、「MB Serial Master Example.vi」を実行します。
これで、サンプル プログラムを使用してシミュレータに値を読み書きできるはずです。
サンプル プログラムのブロック ダイアグラムを分析して、Modbus プロトコルの舞台裏でデータがどのように転送されているかを調べることができます。