シーケンサプログラムのスキャン順序

GT Designer

知識として分かっているけれど、体をはって理解しておきたい
砂上の楼閣にならない為にも、足元固めは大切ですね

 

どうも!ずぶ です。今回は シーケンサプログラムのスキャン順序

 

シーケンサプログラムのスキャン順序

プログラム部品を分けた時の処理の流れ

複数のプログラム部品を使用時の、スキャンの流れはどうなっているのか、シミュレータを使用して見て行きましょう。

あわせて読みたい。GX Simulator2を使おう

 

 

処理の流れを追う為に、カウンターを回して、通過する毎に抜き出すプログラムを作成します

 

ツリーで右クリックして、プログラムを新規作成します

 

登録しなければ動かないので、分割したプログラム部品を登録します。

 

PCパラメータ → プログラム設定 → 『 挿入 』

一括登録できて、らくちんです

 

下準備ができたので、中身を作って行きましょう

 

プログラム0

プログラム1

プログラム2

プログラム3

プログラム0でスタートを掛けて、プログラム3で切っています。
通過毎に、カウンターを各々のDMに格納します
カウンターを使わないのは、癖です。

 

 

さっそく起動してみます

 

そりゃ、そうですよね(笑)

 

 

次に、プログラム部品の順序を、ソートで変えてみます

 

プログラムが、3→2→1→0 の順になりました。

 

ソート後、実行

 

結果は変わりませんでした。

 

 

 

次に、PCパラメータ設定のプログラムの順序 を変更してみます。

 

右下にある、「プログラム順序入れ替えスイッチ」で操作します。

プログラム1と3は、本体のサイクルなので、変更しません。

 

 

では、実行

 

結果が反転しましたね。

 

以上から

一本のプログラムを分割して、PCパラメータ設定内の順序通りにスキャンが流れている 

事が分かりました。

 

 

 

サブルーチンはどうだろう?

サブルーチンのテストにあたって

プログラム0と3は流用

プログラム1は中身を変更

プログラム2は空っぽ にしています。

 

変更プログラム1は、このようにしました。

 

 

 

では、実行

 

D0 よりも後に書いてある D1 が、CALLによって 先に処理された事 が分かりますね。

 

 

 

別プログラム内の、サブルーチンを指定してみよう

ECALL という、プログラム間をジャンプしてサブルーチンを呼ぶ命令があります。

それを使って、順序が後ろのプログラムを指定してみましょう。

 

プログラム1

プログラム2

 

 

では、実行

 

後ろの、別プログラム内にあるサブルーチンを狙っても、結果が変わりません でした。

 

 

 

では、前のプログラム内にあるサブルーチン を狙うとどうなるのでしょうか?

 

先ほどのテストの結果から、PCパラメータ内の順序を再度入れ替えます。

 

 

では、実行

 

結果は変わらず。

 

 

まとめ

どこに置いてあるサブルーチンを狙っても問題はない という事が分かりました。

取説に書いてある通りでしたが、もう迷う事はないですね。

安心して使えるようになりました。

 

あわせて読みたい

三菱シーケンサでのサブルーチンCALL命令の使い方