Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Stateflow チャートを使用したアナログ トリガー式のデータ収集

この例では、Stateflow®、Data Acquisition Toolbox™ および App Designer を使用して、アナログトリガー式のデータ収集アプリを作成する方法を説明します。

Data Acquisition Toolbox は、DAQ デバイスまたはオーディオ サウンドカードから測定データを収集する機能を備えています。アプリケーションによっては、測定対象のアナログ信号の条件に基づいてデータのキャプチャまたはログを開始する、アナログトリガー式の収集が推奨されます。ソフトウェアでアナログ トリガーされる収集では、測定データの連続したストリームから関心のあるセグメントのみをキャプチャすることができます。たとえば、信号レベルが一定のしきい値を通過したときにオーディオ録音をキャプチャすることができます。

このアプリ例は、App Designer と Stateflow を使用して作成されており、以下の処理を実装する方法を示します。

  • Stateflow チャートを使用してアプリのステート ロジックを制御

  • 使用可能な DAQ デバイスを検出して使用するデバイスを選択

  • デバイスの収集パラメーターを設定

  • 収集中にアプリの UI にライブ プロットを表示

  • プログラム可能なトリガー条件に基づいてトリガーされるデータ キャプチャを実行

  • キャプチャされたデータを MATLAB® のベース ワークスペース変数に保存

既定では、アプリは App Designer で設計モードで開きます。アプリを実行するには、[実行] ボタンをクリックするか、コマンド ラインからアプリを実行します。

AnalogTriggerAppStateflow

要件

このアプリ例には以下が必要です。

  • MATLAB R2020a 以降

  • Data Acquisition Toolbox (Windows® のみでサポート)

  • Stateflow (チャートの作成および編集のみ)

  • サポートされている DAQ デバイスまたはサウンド カード (アナログ入力 Voltage または IEPE 測定およびバックグラウンド収集をサポートする National Instruments または Measurement Computing のデバイスなど)

  • 対応するハードウェア サポート パッケージおよびデバイス ドライバー

アプリのステートと Stateflow チャート

複雑なロジックを含むアプリを作成するときは、アプリの動作モードに対応するさまざまなステートを考慮してください。Stateflow チャートを使用すると、こうしたアプリのステートを可視化して整理することができます。ステート間の遷移を使用して、アプリの制御ロジックを実装します。たとえば、ファイル AnalogTriggerAppLogic.sfx は、このアプリのロジックを制御する Stateflow チャートを定義します。チャートは、アプリの UI 内のアクションまたはデータ駆動型の条件に基づいてステート間を遷移できます。たとえば、[開始] ボタンをクリックすると、チャートは Configuration ステートから Acquisition ステートに遷移します。信号の値が指定したトリガー レベルを超えると、チャートは LookingForTrigger ステートから CapturingData ステートに遷移します。

アプリと Stateflow チャートの統合

MATLAB アプリと Stateflow チャートの間に双方向接続を確立するには、アプリの関数 startupFcn で、チャート オブジェクトを作成し、そのハンドルをアプリのプロパティに保存します。

app.Chart = AnalogTriggerAppLogic(app=app);

アプリは、このハンドルを使用して、チャート内のステートの遷移をトリガーします。たとえば、[開始] をクリックすると、アプリのコールバック関数 StartButtonPushed がチャートの acquisitionStart 入力イベントを呼び出します。このイベントは、Configuration ステートから Acquisition ステートへの遷移をトリガーします。

チャート内のイベントではない遷移条件を評価するために、アプリはチャート オブジェクトの関数 step を呼び出します。たとえば、デバイスからデータを収集している間、アプリ関数 dataAvailable_Callback は関数 step を定期的に呼び出します。トリガー条件が検出されると、チャートは LookingForTrigger ステートから CapturingData ステートに遷移します。

Stateflow チャートで、アプリのオブジェクト ハンドルをチャートのローカル データとして保存します。パブリック プロパティを共有してアプリのパブリック関数を呼び出すために、Stateflow チャートは、ステート アクション、遷移条件、または遷移アクションでこのハンドルを使用できます。

参考

関連するトピック