SFCプログラムは1サイクル内で複数のステップを実行することができますが、その数に制限はありますか?


ターゲットのバージョンによって異なります。


 

ISaGRAF Ver.4/5
    ※注意
    この記述をISaGRAF Ver.4/5のユーザーズマニュアルのワークベンチの章の以下のセクションと置き換えてください。 
    ワークベンチ-プロジェクトマネージャ-リンクアーキテクチャの表示-リソースのプロパティ-設定-詳細

    ターゲットの起動時に、SFCのダイナミックな動作にかかわるメモリの割り当てを行います。このメモリの量は、リソースプロパティの設定の「詳細」で決定することができます。
    ここでいう動的な動作とは、トークンの移動=活性化ステップの変移を意味します。
    メモリ量はSFCのプログラム数に比例した値になります。
      NbElmt = (比例係数 × SFCプログラム数 + オフセット値)
      必要なメモリサイズ[バイト] = N × NbElmt × sizeof(typVa)

    ここで、
    • N = 5 (SFC エンジンの設定によって決定される定数)typVa :ミディアムメモリモデルの場合、2 (16ビット)
      ラージメモリモデルの場合、4 (32ビット)NbElmt は結果として、1サイクルで処理可能なトランジションの最大数です。
    処理中のトランジションの前には、少なくとも1つの活性化したステップがあるはずですから、NbElmtはおおよそ以下のように定義できます。
    • 1サイクルで活性化できるステップの最大数1サイクルで実行することの出来るアクションブロックの最大数

    ここでいうアクションブロックとは、1ステップにリンクされているN(ノンストアード)、P1,P0(パルス)アクションを指します。
    もし、ある瞬間に割り付けられているメモリが不足=上記の値をオーバーすると、以下のような状況が考えられます。
    • ターゲットが「チェックモード」でビルドされている場合
      ターゲットカーネルはSFCトークンの移動エラーかアクションの実行エラーを発生します。その後リソースは「エラー」モードとなります。この結果、次のサイクルは実行されなくなります。
      なお、「チェックモード」は、ターゲットソース "dsys0def.h" 内で マクロ "ITGTDEF_SFCEVOCHECK" を define してビルドします。ターゲットが「チェックモード」でない場合
      ターゲットの動作は予測できません。

    注意事項
    Ver4.03以前のターゲットでは、標準ではチェックモードになっていないため、リソースはエラーモードにはなりません。
最終更新:
2008-07-29 10:47
改訂:
1.3
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ