【キーエンスKV-X】立ち上がり検出(R_TRIG)FBの指令方法とラダープログラム/ST例

00_【キーエンスKV-X】立ち上がり検出(R_TRIG)FBの指令方法とラダープログラムST例

キーエンスKV-Xシリーズにおける「立ち上がり検出(R_TRIG)」は、入力信号の立ち上がり(FALSE→TRUE)を検出すると、1スキャンのみ出力信号をON(TRUE)にするファンクションブロックです。

立ち上がり検出(R_TRIG)を用いることにより「スイッチを押した瞬間を検出して一瞬(1スキャン)だけON」するプログラムを作ることができます。

この記事では、キーエンスKV-X500/X300シリーズにおける立ち上がり検出(R_TRIG)の指令方法ラダープログラム、ST言語の例について解説します。

注意
この記事中のラダープログラムはKV STUDIO Ver.12で作成しており、対応機種はKV-X500に設定してあります。

キーエンスKV-X500/X300シリーズでは、対となる立ち下がり検出(F_TRIG)ファンクションブロックが用意されています。立ち下がり検出(F_TRIG)ファンクションブロックについては以下のページで解説しております。

00_【キーエンスKV-X】立ち下がり検出(F_TRIG)FBの指令方法とラダープログラムST例 【キーエンスKV-X】立ち下がり検出(F_TRIG)FBの指令方法とラダープログラム/ST例

1. 立ち上がり検出の指令方法

立ち上がり検出(R_TRIG)はLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

10_LD表現
ラダープログラム
ST言語
R_TRIG_instance(CLK, Q);

立ち上がり検出(R_TRIG)は↓の引数で構成されています。

引数タイプデータ型初期値コメント
CLKINBOOL入力信号
QOUTBOOL出力信号

LD表現

↓がLD表現で使用したラダープログラム例です。

11_LD使用例
メモ
立ち上がり検出(R_TRIG)はFB(ファンクションブロック)のため、インスタンス名(上記ではR_TRIG1)を指令する必要があります。

このラダープログラムでは、入力信号であるInFlag(入力フラグ)の立ち上がり(FALSE→TRUE)を検出すると、1スキャンのみOutFlag(出力フラグ)がTRUEになります。それ以外OutFlag(出力フラグ)は常にFALSEになります。

スキャンとは、プログラム先頭からEND命令までの制御処理が一巡することで、長くても数十ms、短ければ1msを切る場合もあります。よって立ち上がり検出で1スキャンのみONする出力信号は人間の感覚からすると極一瞬になります。

タイムチャートは以下のようになります。

12_タイムチャート

InFlag(入力フラグ)がONすると、1スキャンのみOutFlag(出力フラグ)がONします。※このタイムチャートは1マスを1スキャンとしています。

この時、InFlag(入力フラグ)がONしている時間は関係ありません。入力信号がONになったスキャンのみ出力信号がONになります。

ST表現

↓がST表現で使用したST言語例です。

ST言語
R_TRIG1(CLK := InFlag, Q => OutFlag);
メモ
引数タイプがIN、IN-OUTの場合は、「:=」で引数に値を引き渡します。引数タイプが「OUT」の場合は、「=>」で引数の値を変数に格納します。

このSTでは、入力信号であるInFlag(入力フラグ)の立ち上がり(FALSE→TRUE)を検出すると、1スキャンのみOutFlag(出力フラグ)がTRUEになります。それ以外OutFlag(出力フラグ)は常にFALSEになります。※前述のLD表現と同じ動作です。

2.【例題①】立ち上がり検出を用いた自己保持回路(LD)

下記仕様のラダープログラムを立ち上がり検出(R_TRIG)を用いて解説します。

仕様
スイッチ緑を押すとランプ緑が点灯し続ける。
スイッチ黄を押すとランプ緑は消灯する。
スイッチ緑を押し続けた状態でスイッチ黄を押すとランプ緑は消灯し、その後スイッチ黄を放してもランプ緑は点灯しない。

スイッチ緑を押すとランプ緑が点灯し続ける自己保持回路を作成します。スイッチ緑はそのまま使用せずに立ち上がり検出の出力信号を使用します。

タイムチャート

タイムチャートは以下のようになります。

例題①_タイムチャート

スイッチ緑がONするとランプ緑がONし続け、スイッチ黄がONするとランプ緑はOFFします。

スイッチ緑がONし続けた状態でスイッチ黄がONするとランプ緑はOFFし、その後スイッチ黄がOFFしてもランプ緑はONしません。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題①_タッチパネルイメージ

スイッチ緑を押すとランプ緑が点灯し続け、スイッチ黄を押すとランプ緑が消灯します。

スイッチ緑を押し続けた状態でスイッチ黄を押すとランプ緑が消灯し、その後スイッチ黄を放してもランプ緑は点灯しません。

使用する変数

使用する変数は以下になります。

変数データ型コメント
R_TRIG1R_TRIGFBインスタンス
SwGreenBOOLスイッチ緑
SwYellowBOOLスイッチ黄
LpGreenBOOLランプ緑
SwGreenR_TrigBOOLスイッチ緑 立ち上がり

ラダープログラム

ラダープログラムは以下のようになります。

例題①_ラダープログラム

スイッチ緑(SwGreen)を押すと、立ち上がり検出(R_TRIG1)によりSwGreenR_Trigが1スキャンのみONします。

SwGreenR_TrigがONすると、ランプ緑(LpGreen)の自己保持回路にてランプ緑は点灯し続けます。

仮に立ち上がり検出を使用せず、スイッチ緑(SwGreen)のa接点をランプ緑(LpGreen)の自己保持回路に用いた場合「スイッチ緑を押し続けた状態でスイッチ黄を押して放すとランプ緑が点灯」します。仕様の3行目を満たすために立ち上がり検出(R_TRIG)を用いています。

3.【例題②】立ち上がり検出を用いたデバイス値の切替(ST)

下記仕様のST言語を立ち上がり検出(R_TRIG)を用いて解説します。

仕様
スイッチ緑を押すとData00に「10」を格納する。
スイッチ黄を押すとData00に「5」を格納する。
スイッチ赤を押すとData00に「0」を格納する。
スイッチが同時に複数押された場合、後から押されたスイッチの処理を適用する。

各スイッチを押すとData00にデバイス値を格納するSTを作成します。各スイッチはそのまま使用せずに立ち上がり検出の出力信号を使用します。

タイムチャート

タイムチャートは以下のようになります。

例題②_タイムチャート

スイッチ緑がON→Data00に「10」、スイッチ黄がON→Data00に「5」、スイッチ赤がON→Data00に「0」を格納します。

スイッチが同時に複数ONした場合、後からONしたスイッチの処理が適用されます。

タッチパネルの動作イメージ

タッチパネルの動作イメージは以下のようになります。

例題②_タッチパネルイメージ

スイッチ緑を押す→Data00に「10」、スイッチ黄を押す→Data00に「5」、スイッチ赤を押す→Data00に「0」を格納します。

スイッチが同時に複数押された場合、後から押したスイッチの処理が適用されます。

使用する変数

使用する変数は以下のようになります。

変数データ型コメント
R_TRIG1R_TRIGFBインスタンス
R_TRIG2R_TRIGFBインスタンス
R_TRIG3R_TRIGFBインスタンス
SwGreenBOOLスイッチ緑
SwYellowBOOLスイッチ黄
SwRedBOOLスイッチ赤
SwGreenR_TrigBOOLスイッチ緑 立ち上がり
SwYellowR_TrigBOOLスイッチ黄 立ち上がり
SwRedR_TrigBOOLスイッチ赤 立ち上がり

ST言語

ST言語は以下のようになります。

ST言語
//スイッチの立ち上がり検出
R_TRIG1(CLK := SwGreen, Q => SwGreenR_Trig);
R_TRIG2(CLK := SwYellow, Q => SwYellowR_Trig);
R_TRIG3(CLK := SwRed, Q => SwRedR_Trig);

//スイッチ緑押下→Data00を10
IF SwGreenR_Trig THEN
    Data00 := 10;
END_IF;

//スイッチ黄押下→Data00を5
IF SwYellowR_Trig THEN
    Data00 := 5;
END_IF;

//スイッチ赤押下→Data00を0
IF SwRedR_Trig THEN
    Data00 := 0;
END_IF;

スイッチ緑(SwGreen)を押すと、立ち上がり検出(R_TRIG1)によりSwGreenR_Trigが1スキャンだけONします。

スイッチ黄(SwYellow)を押すと、立ち上がり検出(R_TRIG2)によりSwYellowR_Trigが1スキャンだけONします。

スイッチ赤(SwRed)を押すと、立ち上がり検出(R_TRIG3)によりSwRedR_Trigが1スキャンだけONします。

各スイッチの立ち上がりを検出すると、IF分にてData00にスイッチに応じたデバイス値を格納します。

仮に立ち上がり検出を使用せず、各スイッチ緑(SwGreen)のa接点でData00のデバイス値の格納に用いた場合「スイッチが同時に複数押された場合、ST言語の下側に指令されたものが適用」されます。仕様の4行目を満たすために立ち上がり検出(R_TRIG)を用いています。

4. おわりに

キーエンスKV-X500/X300シリーズにおける立ち上がり検出(R_TRIG)について解説しました。

電気ハード設計、PLC/TPソフト設計、ロボットティーチング、制御盤製作の外注業務は、ぜひ永工舎にご相談ください。

当サイトを運営している電気設計人は、個人で永工舎として外注業務をお請けしております。

以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です