【中級編】PLC(シーケンサ)によるGX Works3のST(ストラクチャーテキスト)言語 条件分岐ーIF ビットON/OFF判定 ELSIFー

f:id:vv_6ong_3ka_cp:20210119081121p:plain

ST(ストラクチャーテキスト)言語のメリットとしては、複雑な演算式を見やすくすることが可能となり、可読性が良くなります。

C言語で使用しているような演算方法が使用できるのもST(ストラクチャーテキスト)言語のメリットです。

ST言語内で使用できるビットのON/OFF判定は以前の記事で紹介しました命令文 IFで使用することができます。

GX Works3 ST言語 ビットON/OFF判定
www.niwakafa.com

ST言語 条件分岐 IF
f:id:vv_6ong_3ka_cp:20210115123749p:plain

ビットのON/OFFを判定するにはIF <ビット条件> THENのビット条件にデバイスを入れることで判定することができます。

また、ELSIFで上記の条件が全て偽であるなら判定を行い、真ならば命令を実行します。

全て偽なら、ELSEの命令を実行します。

あまりST言語はラダー言語を使用する人からすると敷居が高いように感じられてしまいますが、使用できるようになればファンクションブロックのように使用することができ、演算用デバイスを割り振っておき、そこに数値を代入すれば引数が返ってくる。

このようなC言語やファンクションブロックのような使い方もできるようになります。

今回はビット判定で使われるIF文とELSIFについて紹介します。

広告


GX Works3 ST言語記述方法

インラインST挿入 STB
f:id:vv_6ong_3ka_cp:20210113062323p:plain

GX Works3 IF ビットON/OFF判定

f:id:vv_6ong_3ka_cp:20210115122743p:plain
f:id:vv_6ong_3ka_cp:20210119065142p:plain
Point.ELSEIFではなくELSIFと記述する

ST言語 IF ビットM999:OFF/ M998:OFF
f:id:vv_6ong_3ka_cp:20210119065223p:plain

D0に1が格納される

ST言語 IF ビットM999:ON/ M998:OFF
f:id:vv_6ong_3ka_cp:20210119065238p:plain

D0に100が格納される

ST言語 IF ビットM999:OFF/ M998:ON
f:id:vv_6ong_3ka_cp:20210119065315p:plain

D0に2が格納される

ST言語 IF ビットM999:ON/ M998:ON
f:id:vv_6ong_3ka_cp:20210119065514p:plain

D0に100が格納される

まとめ
・ELSEIFではなくELSIFと記述する
・ELSIFで上記の条件式全てが偽ならば判定し、真ならば命令を実行
・ELSEで全ての条件が偽ならば命令を実行



www.niwakafa.com

www.niwakafa.com

www.niwakafa.com