はじめに
タイマーは、プログラム可能なロジックコントローラー(PLC)で時間ベースの制御を実現するための重要な機能です。本記事では、タイマーを活用したプログラム例を紹介します。
使用機材
機種など | |
---|---|
PLC | Q02CPU, QX41, QY41P, Q62P, Q38B |
アプリ | GX Works 2 |
I/O割り付けはこちらを参照
タイマーを利用したプログラム例
以下のサンプルコードは、タイマーを利用して入力信号に応じて出力を制御するプログラム例です。
ボタン1を押してから5秒後にランプ1が点灯します。ボタン2で消灯します。
OUT_T(M1, TC1, K50);
IF X1 THEN
M1 := TRUE;
END_IF;
IF X2 THEN
RST(TRUE, T1);
M1 := FALSE;
END_IF;
Y71 := TS1;
コード解説
-
OUT_T(M1,TC1,K50);
:出力M1
をタイマーTC1
を使用して50単位の時間で制御します。 -
IF X1 THEN M1:=TRUE; END_IF;
:入力X1
が True の場合、出力M1
を True に設定します。 -
IF X2 THEN RST(TRUE,T1); M1:=FALSE; END_IF;
:入力X2
が True の場合、タイマーT1
をリセットし、出力M1
を False に設定します。 -
Y71:=TS1;
:タイマーTS1
の値を出力Y71
に代入します。
タイマーを利用したプログラム例 その2
ボタン1を押した3秒後にランプ1、その後も3秒ごとにランプ2、ランプ3と点灯します。ボタン2で消灯します。
OUT_T(M0, TC1, K30);
IF X1 OR M1 THEN
M0 := TRUE;
END_IF;
IF X2 THEN
M0 := FALSE;
M1 := FALSE;
M2 := FALSE;
M3 := FALSE;
RST(TRUE, T1);
END_IF;
IF TS1 AND M2 THEN
M3 := TRUE;
M0 := FALSE;
RST(TRUE, T1);
END_IF;
IF TS1 AND M1 THEN
M2 := TRUE;
M0 := FALSE;
RST(TRUE, T1);
END_IF;
IF TS1 THEN
M1 := TRUE;
M0 := FALSE;
RST(TRUE, T1);
END_IF;
Y71 := M1;
Y72 := M2;
Y73 := M3;
コード解説
-
OUT_T(M0, TC1, K30);
:出力M0
をタイマーTC1
を使用して30単位の時間で制御します。 -
IF X1 OR M1 THEN ... END_IF;
:もし入力X1
またはメモリビットM1
が True の場合、出力M0
を True に設定します。 -
IF X2 THEN ... END_IF;
:もし入力X2
が True の場合、出力M0
を False に設定し、M1
、M2
、M3
、T1
をリセットします。 -
IF TS1 AND M2 THEN ... END_IF;
:もしタイマーTS1
とメモリビットM2
が同時に True の場合、出力M3
を有効にし、出力M0
を無効にし、タイマーT1
をリセットします。 -
IF TS1 AND M1 THEN ... END_IF;
:もしタイマーTS1
とメモリビットM1
が同時に True の場合、出力M2
を有効にし、出力M0
を無効にし、タイマーT1
をリセットします。 -
IF TS1 THEN ... END_IF;
:もしタイマーTS1
が True の場合、出力M1
を有効にし、出力M0
を無効にし、タイマーT1
をリセットします。
まとめ
本記事では、タイマーを利用したプログラム例を紹介しました。タイマーを活用することで、時間に基づいた正確な制御を実現することができます。ST言語の基本的な構文とタイマーの使い方をマスターして、効率的な制御プログラムを開発しましょう。