このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 チャートは、ステート アクション、遷移条件、または遷移アクションでこのハンドルを使用できます。