Function-Call Subsystemを​またいでのグローバル​変数を使用したい場合​は、どのようにするの​でしょうか?

2 visualizzazioni (ultimi 30 giorni)
Hiroshi Fujioka
Hiroshi Fujioka il 23 Mag 2016
Risposto: Akihiro Yasuda il 5 Ott 2016
Function-Call Subsystemをまたいでのグローバル変数を使用したい場合は、どのようにするのでしょうか?
StateFlowを使用して、各周期ごとに処理する内容を切り替えて実行するModelを作成しております。 最終の処理内容は下記の通りです。
 Task1: 「at」で実行・・・初期処理のみ実行・・・グローバル変数の演算を実施(変数の上下限値や物理定数などの演算)  Task2: 「every」で実行・・・○msecでの処理を実行・・・上記Task1で演算した定数を使用して処理を実行  Task3: 「every」で実行・・・△msecでの処理を実行・・・上記Task1で演算した定数を使用して処理を実行
Model_rott  +--PulseGenerator  +--StateFlow(上記Taskの実行タイミング指示信号を生成)・・・PulseGeneratorのEdgeを数えて「at」「every○」「Every△」の実行信号を生成(上記Task1から3を実行するための3つのStateのみ)  +--SubSystem(上記Taskの処理内容を記載)    +--SubSystem:上記Task1~3をFuctionCallで実装      +--Task1      +--Task2      +--Task3
Task1で計算した値をWorkSpaceで他のTaskで使用しようとすると、 「警告: ブロック 'Model_root/subsystem/functionCall2/Data Store Read1' は、時間 0.0008 で 1つまたは複数のブロックがこのメモリ領域全体に書き込む前に、データ ストア 'Model_root/subsystemm/Data Store Memory2' から読み取っています 」 というWorningが出ています。
またGotoでは「非バーチャル サブシステム境界、すなわち、atomic、条件付き実行、または Function-Call Subsystem あるいはモデル参照の境界をまたがることはありません」とのことでErrorが出ています。
ご教授下さいますよう、よろしくお願い致します。

Risposte (1)

Akihiro Yasuda
Akihiro Yasuda il 5 Ott 2016
警告: ブロック 'Model_root/subsystem/functionCall2/Data Store Read1' は、
時間 0.0008 1つまたは複数のブロックがこのメモリ領域全体に書き込む前に、
データ ストア 'Model_root/subsystemm/Data Store Memory2' から読み取っています
上記警告メッセージから、Model_root/subsystemm下にData Store Memoryブロックを配置しているかと思います。
Data Store Memoryをグローバル変数として扱う場合、 信号オブジェクトを作成し、グローバル データ ストアにする必要があります。
下記リンク先は関連資料となります。

Categorie

Scopri di più su Subsystems in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by