Real-Time Workshop User's Guide    

信号のストレージの概念

この節では、アプリケーションに対して最適の信号ストレージオプションを選択するために理解する必要がある構造と概念について説明します。

rtB: グローバルブロックI/O構造体

デフォルトでは、Real-Time Workshopは、信号メモリを共有し、ローカル変数を利用することによって、メモリ使用量を最適化しようとします。

しかし、信号をグローバルメモリに設定することが望ましい、あるいは必要な多くの状況が存在します。たとえば:

そのような場合に、デフォルトの挙動を変更し、選択した(またはすべての)信号をモデル固有のグローバルブロックI/O構造体に格納することができます。グローバルブロックI/O構造体は、rtBと呼ばれます。

つぎのコードは、図 3-12に示すSignals_examp モデルから(信号のストレージ最適化をオフにして)生成されたコードでのrtBの定義方法と、宣言方法を示します。

rtBに格納される信号のフィールド名は、「生成コード内の信号に対するシンボリックなネーミング方法」で記述されている規則に従って生成されます。

信号に対するストレージクラス

Real-Time Workshopでは、信号のstorage classプロパティは、Real-Time Workshopがどのように信号を宣言および格納するかを指定します。この指定は、さらにオプションを指定して条件付ける場合があります。

Real-Time Workshopのコンテキストでは、用語"ストレージクラス"は、C言語で利用されるときのストレージクラス修飾子と同義語ではありません。

Default Storage Class.   Auto は、デフォルトのストレージクラスです。Autoは、外部コードとインタフェースをとる必要のない信号に対して適切なストレージクラスです。 Autoストレージクラスをもつ信号は、ローカルまたは共有変数に格納したり、グローバルデータ構造体に格納することができます。ストレージの形式は、Signal storage reuse オプションとLocal block outputsオプション、および利用可能なスタック領域により異なります。Autoストレージクラスをもつ信号に対するコード生成オプションの詳細は、ストレージクラスをもつ信号に対するコード生成オプションの詳細は、「Auto Storage Classをもつ信号」を参照してください。

Explicitly Assigned Storage Classes.   Auto以外のストレージクラスをもつ信号は、rtBのメンバとして、あるいはrtBと独立の構造化されていないグローバル変数に格納されます。これらのストレージクラスは、モニタリングや外部コードとインタフェースをとりたい信号に対して適切です。

Signal storage reuse および Local block outputs最適化は、Auto以外のストレージクラスをもつ信号に適用されません。

Signal Propertiesダイアログを使って、これらのストレージクラスを信号に割り当てます。


 信号: ストレージ、最適化、インタフェース Autoストレージクラスをもつ信号