今回はBeckhoff TwinCAT SFCのプログラミングの第3話になります。この記事ではBranchを説明したいと思います。BranchというのはSFCプログラムの中に”同時に複数のシーケンスを実行する”、もしかくは”複数のシーケンスの中に一つを実行する”のイメージです。
TwinCATでは、一つだけのBranchを実行するのはalternative branchesで複数のBranchesを同時実行するのはParallel branchesと言います。
Reference Link
Parallel branch
Parallel branchesでは必ず始まりと終わりにもStepを挟む必要があります。そしてParallel branchesではダブルラインです。
Add the Branch
実際にParallel branchを追加してみましょう。いまSFCプログラムにInit Stepがあります。
必ず始まりと終わりにもStepを挟む必要があると書きましたね。なので、もう一つのStepを追加します。
そのStepを選びmInsert branch rightをクリックします。
そうすると自動的にStep0の右側にStep1が追加されます。
Stepが一つだけでは少々つまらないので、Step1を選び>Insert step-transition afterをクリックします。
いま左のBranchにStep0があり、右のBranchにStep1とStep2があります。
Trans0、Trans1、Trans2も定義します。(そのあたりは前の記事にも書きましたので参考にしてください。)
Transのロジックは難しいこと書いてなくて普通のAND ロジックだけです。
Test
実際SFCプログラムを実行してみましょう。
いまはInitのStepにいます。
Trans0の条件をTrueにします。
そうするとStep0とStep1が同時に青い色になり有効になってる状態です。
これはParallel branchesの特徴です。複数のBrachesを同時実行できます。
でも左側のBranchと右側のBranchには少し違いがありますよね。
右側のBranchはStep1>Trans1>Step2のような流れですね。
ここでTrans2をTrueにしたらどうなるでしょうか。
Step Initに戻ると思いますか。
正解は戻らないです。それもParallel branchの特徴で、Branch内すべてのStepも全部実行完了し>なおかつTransの条件がTrueであれば進みます。
動作を確認してみます。Trans1をTrueにします。
StepがInitに戻りましたね。
Summary
- 必ず始まりと終わりにもStepを挟む必要があります
- 複数のBrachesを同時実行
- Branch内すべてのStepも全部実行完了し>なおかつTransの条件がTrueであれば進行
Alternative branch
Alternative branchでは必ず始まりと終わりにもTransitionsを挟む必要があります。そしてAlternative branchではシングルラインです。
Add the Branch
既存のBranchを右クリックしそのままParallel/Alternativeに切り替えられます。今回はAlternativeにします。
始まりと終わりにもTransitionsを挟む必要があると先ほども言いましたね。少しSFCシーケンスを修正します。
Test
実際SFCプログラムを実行してみましょう。
いまはInitのStepにいます。
左側のBranchの成立条件Trans3をTrueにします。
Step4に進みました。Step2が実行されていません。
では今度Trans1をTrueしてみます。
Step2に飛びましたね。
例えばTrans3をTrueにしてみます。
ですがSFCプログラムはもうすでにStep2に流れてきたので、いまシーケンスを見てる条件はTrans4だけになります。
そしてTrans4をTrueにするとまたStep Initに戻ります。
Summary
- 必ず始まりと終わりにもTransitionsを挟む必要があります
- 一つのBrachesをのみ実行
次回はMarco・Propertiesを説明しますね★お疲れ様です。