はじめに
この記事では、ST言語のCASE文を使用してビットデバイスの状態を条件に組み込む方法について解説します。通常、CASE文では整数値のみが条件として使用できますが、ビットデバイスの状態を反映することも可能です。具体的な方法を以下で説明します。
使用機材
機種など | |
---|---|
PLC | Q02CPU, QX41, QY41P, Q62P, Q38B |
アプリ | GX Works 2 |
I/O割り付けはこちらを参照してください。
ビットデバイスを条件に使用するCASE文の例
以下の例では、ボタンなどの状態を反映するためにビットデバイスをCASE文の条件として使用しています。
CASE K1X0 OF
1: Y71 := TRUE; (* 0001 ボタン0のみON *)
2, 3 : Y72 := TRUE; Y71 := FALSE; (* 0010 or 0011 ボタン1がON, ボタン0がONまたはOFF *)
4..7 : Y73 := TRUE; Y72 := FALSE; (* 0100 -> 0111 ボタン2がON *)
ELSE
Y71 := FALSE;
END_CASE;
CASE文は通常、整数値や列挙型のみを条件として受け入れますが、ビットデバイスを直接条件として使用することはできません。入力デバイスが連続している場合にのみ、ワードデバイスと扱うことでCASE文の条件として扱うことができます。
ただし、接続端子が変更になるなどした場合に整合性をとることが難しいかもしれません。
条件に整数値が使えるといってもK1や16#,8#などの接頭辞はつかえません
まとめ
この記事では、ST言語のCASE文を使用してビットデバイスの状態を条件に組み込む方法を解説しました。ビットデバイスを利用することで、ボタンなどの状態を柔軟に条件として組み込むことができます。この方法を活用して、より複雑な制御を実現しましょう。