Main Content

Simulink 関数を使用した診断サービスの定義

Simulink 関数を使用した診断メッセージング

呼び出し元がエラー コードを渡す診断サービスを定義する場合に、Simulink® 関数を使用します。このサービスは発生したすべてのエラーに対するエラー コードを追跡します。このサービスを実装する 1 つの方法は、インデックス付き Data Store Memory ブロックを使うことです。それにより診断監視システムは定期的に特定のエラーの発生をチェックし、それに基づきシステムの動作を修正できます。

クライアント/サーバー アーキテクチャ

Simulink Function ブロックおよび Function Caller ブロックを使用してクライアント/サーバー アーキテクチャをモデル化することができます。このアーキテクチャの使用例にはメモリ ストレージと診断が含まれます。

例として、複数の制御アプリケーション (クライアント) で構成されるシンプルな分散システムのモデルを作成します。各アプリケーションは実行全体を通して診断をレポートできます。クライアント/サーバー アーキテクチャは通常層状に構築され、サービス層を追加して診断インターフェイスをモデル化します。

Simulink Function ブロックを使用してモデル化されたサービス (サーバー) は、別のモデルに存在します。サービス モデルを参照モデルとしてシステム モデルに追加します。

制御アプリケーション (クライアント) は Function Caller ブロックを使用して、診断インターフェイスと連携します。

修飾子パターン

Application 1 はサービス層内で reportDiagnostic インターフェイスを呼び出すことで、診断条件をレポートします。アプリケーションは診断識別子を渡す間にこの関数を呼び出します。

Interval Test によって診断識別子を作成するタイミングが決定されます。

関数 (Simulink Function 1) の実装では関数のグラフィカル出力に値を転送することで、渡された識別子を追跡します。グラフィカル出力はサーバー インターフェイスには含まれないサーバー側の信号ですが、関数の引数を使用してサービス関数間での通信を容易にします。グラフィカル出力の値は関数呼び出し間で保持されます。

関数 reportDiagnostic は修飾子パターンの一例です。パターンは、呼び出し元から関数へのデータ通信と、そのデータを基にしたその後の計算に役立ちます。

オブザーバー パターン

Application 2 はサービス層内で inspectDiagnostic インターフェイスを呼び出し、診断がレポートされたかどうかを検証します。

関数 (Simulink Function) の実装はグラフィカル入力 (id) を使用して最後にレポートされた診断を観測し、この値を出力引数 (identifier) として呼び出し元に転送します。グラフィカル入力は、サーバー インターフェイスには含まれないサーバー側の信号です。

関数 inspectDiagnostic はオブザーバー パターンの一例です。このパターンは関数から呼び出し元へのデータ通信に役立ちます。

参考

| | | |

関連するトピック