ハードワイヤードのイーサネット LAN を介して 1 台の制御 PC に 4 台のハードウェア データ収集ユニットを接続します。このアプリケーションのコーディングは PC 上にあり、完全に Python ベースです。各データ取得ユニットは同じように構成され、同じ方法で PC からポーリングされます。それらが接続されているテストボックスは、テストを実行しようとする可変出力を提供します。
これらのテストは長期的 (8 ~ 16 か月またはそれ以上) であり、データ取得率は比較的低く (1 分あたり 500 サンプル未満、おそらく 200 近く) なります。一般的なプロセス フローも単純です。各データ取得デバイスをループして、次のことを行います。
- デバイスからデータを読み取ります。
- データに対していくつかの計算を行います。
- カルクが何かを言う場合は、ヒーターをオンにしてください。
- 彼らが何か他のことを言ったとしても、何もしません。
- 後続の処理のためにデータをディスクとファイルに書き込みます
しばらく待ってから、プロセスをもう一度繰り返します。ここに私の質問があります:
- ループを使用して、
while TRUE:
上で概説したシーケンスの実行を開始し、例外を介してループを終了できるようにする予定ですが、チェックする必要がある特定の例外に関するアドバイスを歓迎します。 AT ALLを取るための最良のアプローチは?もう 1 つのアプローチは次のとおりです。while
ループ内に入ったら、構造体を使用しtry: - except: - finally:
てループを終了できます。 - 上で概説したプロセスは主なデータ取得に関するものですが、収集期間の長さを考えると、ハードウェアユニットが正常に動作していることを確認し、テストスタンドをオンまたはオフラインにするなど、他のことも行う必要があります。これらの「管理」機能はメイン ループとは別のものなので、別のものにしておきたいと思います。このアクティビティを同じスクリプト内の別のスレッドに設定する必要がありますか、それともより良い方法がありますか?
よろしくお願いします。すべてのフィードバックを歓迎します!