はじめに
GX Works 2は、三菱電機が提供するプログラミングソフトウェアであり、特定のPLC向けにカスタマイズされた命令セットを提供しています。一方、ST(Structured Text)言語は、IEC 61131-3規格で定められているプログラミング言語の1つであり、標準化された命令セットを提供しています。
IF文
IF X1 = X2 THEN
Y71 := TRUE;
END_IF;
IF X1 = X2 THEN
Y71 := TRUE;
ELSE
Y72 := TRUE;
END_IF;
IF X1 = X2 THEN
Y71 := TRUE;
ELSIF X1 = X3
Y72 := TRUE;
END_IF;
IF文は条件に応じてプログラムの流れを制御するための命令です。条件式が真(True)の場合には、IFブロック内のコードが実行されます。条件式が偽(False)の場合には、ELSEブロック内のコードが実行されます。
CASE文
CASE D10 OF
1 : Y71 := FALSE;
2, 3 : Y72 := FALSE;
4..9 : Y73 := FALSE;
ELSE
Y71 := TRUE;
END_CASE;
CASE文は複数の条件に応じて処理を分岐させるための命令です。与えられた変数の値に応じて、異なる処理を実行します。CASE文には、条件にマッチするパターンごとに処理を指定できます。
FOR文
FOR D10 := 1 TO 10 BY 2 DO
D20 := D20 + 1;
END_FOR;
FOR文は、指定された回数だけ繰り返し処理を行うための命令です。指定された変数を初期値から終了値まで、指定されたステップで増減させながら、繰り返し処理を行います。
WHILE文
WHILE D10 <= 50 DO
D10 := D10 + 5;
END_WHILE;
WHILE文は、指定された条件が満たされる間、繰り返し処理を行うための命令です。条件が満たされなくなると、処理を終了します。
REPEAT文
D10 := 50;
REPEAT
D10 := D10 / 2;
UNTIL D50 < 0;
END_REPEAT;
REPEAT文は、条件が満たされるまで、繰り返し処理を行うための命令です。条件が満たされた場合、処理を終了します。
EXIT文
(* FOR, WHILE などのループ処理開始 *)
(* ループ内での強制終了 *)
IF X1 := TRUE THEN
EXIT;
END_IF;
(* END_ ループ処理の終端 *)
ループ内での強制終了を行うための命令です。特定の条件が満たされた場合に、ループから脱出します。
RETURN文
(* プログラムの終了。ファンクションブロックの場合は呼び出した処理に戻る *)
RETURN;
プログラムの終了を行うための命令です。プログラムの実行を終了し、ファンクションブロックの場合は呼び出し元に戻ります。
さいごに
このように、各命令の構文と使用方法を理解して、効果的にプログラミングに活用しましょう。
総括すると、GX Works 2で使える命令とST言語の規格上定められている命令文との主な差は、プラットフォーム依存性、機能の制約、開発環境の違いにあります。開発者は、プロジェクトの要件や目標に応じて、適切なプログラミング言語や開発ツールを選択する必要があります。