一往確認日記 |
2016年12月20日 [長年日記]
_ Escalator - bit stack 初期化
Escalatorというのは、各種PLCがメーカーや機種毎にプロジェクトデータが異なるため互換性がなく、移植するのが大変なのを解決しようとするものです。
ここのescalatorのカテゴリーを見てもらえると今までの経緯を見てもらうことができます。
今回はbit stackの初期化です。
パソコンとのやり取りの部分もありますが、省略します。
bit stackはLDから始まるブロックの状態やMPSなどで分岐する時に記憶するための領域です。
SD_DEVICE[ESC_SD_I_BSTACK]から4 word取っています。 ANBなどで最終的にすべてのANDを取ってtrue/falseを判定するので初期値としてオール1のFFFFを設定しています。 wordで処理しているのでブロックの最大レベルが16までとなります。
LDがあると今までの状態をbit0に入れて左にシフトします。
4word取っているのはMPSに出会うとword単位でshiftします。 MPSによる分岐が4レベルまで扱えることになります。
current_bit_valueが状態の初期値でtrueになります。
cycle_runningはラダー処理中であることを示しtrueになっています。
暫く触っていなかったのでbit stackが何をやっているのかすっかり忘れていました。 今後のためにもここに書き留めおいた方がいいですね。