ページへ戻る

+ Links

 印刷 

公開Data集​/Hint集​/演算時間削減​/分岐削減 :: Motion cafe

xpwiki:公開Data集/Hint集/演算時間削減/分岐削減

SFC分岐を減らす方法 anchor.png

SFC演算時間のうち、数値演算の部分が多いかと思えば実はそれほどでもなくて、SFCの図の移行や選択分岐並列分岐/結合 などが結構な負担になっています。 イベントタスクで処理する場合など、SFC図の描き方次第で、設定周期で回りきれないソフトになてしまうことも、しばしばあります。

このうち、いくつかの方法を用いることで、分岐を減らすことができますので、その例を紹介します。

Page Top

数値演算結果の上限制限処理 anchor.png

数値計算の結果を上限制限をかける必要がある時に有効です。
この例では、サーボの速度変更をかける場合を想定します。
選択分岐を2つ減らした結果、左の図ではQ173:460μs→207μs、QD173:165μs→74μs に短縮の可能性があることがわかります。 実際にこのプログラムを書くのはそう難しいことではありませんが、可読性が落ちるのでデバグは少々面倒です。 :-D

  • 通常のSFC選択分岐による方法
    元案修正案(i-brownさんご指摘-v2)
    bunki_1.jpgbunki_5.jpg

  • 選択分岐を無くした方法
    元案修正案(i-brownさんご指摘)
    bunki_2.jpgbunki_4.jpg

注意:この図のSFCをイベントタスクとする場合は、連続移行数=1にします。 2以上のn回だと、1回のイベントでn回計算されるため、負荷が跳ね上がります。

Last-modified: 2008-04-02 (水) 15:53:01 (JST) (1954d) by 管理人