【キーエンスKV-X】デクリメント(Dec)FUNの指令方法とラダープログラム/ST例

00_【キーエンスKV-X】デクリメント(Dec)FUNの指令方法とラダープログラムST例

キーエンスKV-Xシリーズにおける「デクリメント(Dec)FUN」は、指定したデータに1を減算するファンクションです。

この記事では、キーエンスKV-X500/X300シリーズにおけるデクリメント(Dec)FUNの指令方法ラダープログラム、ST言語の例について解説します。

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

キーエンスKV-X500/X300シリーズでは、指定したデータに1を加算するインクリメント(Inc)ファンクションが用意されています。インクリメント(Inc)ファンクションについては以下のページで解説しております。

00_【キーエンスKV-X】インクリメント(Inc)FUNの指令方法とラダープログラムST例 【キーエンスKV-X】インクリメント(Inc)FUNの指令方法とラダープログラム/ST例

1. デクリメントFUNの指令方法

デクリメント(Dec)FUNはLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

10_LD表現
ラダープログラム
ST言語
Dec(InOut);

デクリメント(Dec)FUNは↓の引数で構成されています。

引数タイプデータ型初期値コメント
ENINBOOLイネーブル入力
ENOOUTBOOLイネーブル出力
InOutIN-OUTデクリメント対象

LD表現

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

11_LD使用例
メモ
デクリメント(Dec)はFUN(ファンクション)のため、インスタンス名を指令する必要はありません。

このラダープログラムでは、InFlag(入力フラグ)がONするたび(FALSE→TRUE)、InOutData(デクリメント対象)が1ずつ減算されます。

InFlag(入力フラグ)をそのままデクリメント(Dec)FUNのイネーブル入力(EN)に使用せず、立ち上がり検出(R_TRIG)を使用しています。立ち上がり検出(R_TRIG)を使用することにより、InFlag(入力フラグ)の立ち上がり(FALSE→TRUE)を検出した時のみデクリメント(Dec)FUNを実行しています。

立ち上がり検出(R_TRIG)を使用せずにInFlag(入力フラグ)をそのまま使用すると、InFlag(入力フラグ)がONしている間、毎スキャンInOutData(デクリメント対象)が1ずつ減算されてしまいます。

立ち上がり検出(R_TRIG)ファンクションブロックについては以下のページで解説しております。

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

条件がONするたびに(FALSE→TRUE)、データをデクリメントさせる場合、前述のように「立ち上がり時のみイネーブル入力(EN)をON(TRUE)させる」または「デクリメント(Dec)FUNを微分指定する」方法があります。

微分指定する場合、命令の引数設定ダイアログで微分(E)にチェックを入れます。

10-1_微分指定

ST表現

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

ST言語
//InFlagの立ち上がり検出
R_TRIG1(CLK := InFlag);

//InFlagの立ち上がりでInOutDataをデクリメント
Dec(EN := R_TRIG1.Q, InOut := InOutData);

このSTでは、InFlag(入力フラグ)がONするたび(FALSE→TRUE)、InOutData(デクリメント対象)が1ずつ減算されます。※前述のLD表現と同じ動作です。

2.【例題】スイッチを押すたびに変数をデクリメント

下記仕様のラダープログラム、STをデクリメント(Dec)FUNを用いて解説します。

仕様
スイッチ緑を押すたびに変数Data00の値を1ずつ減算(デクリメント)する。

Data00の1ずつ減算にデクリメント(Dec)FUNを使用します。

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

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

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

スイッチ緑を押すたびに変数Data00の値を1ずつ減算(デクリメント)します。※スイッチ緑を押している時間に関わらず、必ず1だけ減算されます。

使用する変数

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

変数データ型コメント
SwGreenBOOLスイッチ緑
Data00UINTデータ00(InOut)

ラダープログラム

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

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

立ち上がり検出(R_TRIG)を使用することにより、SwGreen(スイッチ緑)の立ち上がり(FALSE→TRUE)を検出した時のみデクリメント(Dec)FUNを実行しています。

デクリメント(Dec)FUNが実行されると、変数Data00が1ずつ減算されます。

ST言語

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

ST言語
//スイッチ緑の立ち上がり検出
R_TRIG1(CLK := SwGreen);

//スイッチ緑の立ち上がりでData00をデクリメント
Dec(EN := R_TRIG1.Q, InOut := Data00);

3. おわりに

キーエンスKV-X500/X300シリーズにおけるデクリメント(Dec)FUNについて解説しました。

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

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

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

コメントを残す

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