キーエンスKV-Xシリーズにおける「変数リセット(Clear)FUN」は、指定した変数の値をゼロクリアするファンクションです。
変数リセット(Clear)FUNを用いることにより「指定した変数をリセット(0を格納)するプログラム」を作ることができます。
この記事では、キーエンスKV-X500/X300シリーズにおける変数リセット(Clear)FUNの指令方法とラダープログラム、ST言語の例について解説します。
目次
1. 変数リセットFUNの指令方法
変数リセット(Clear)FUNはLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

Clear(InOut);
変数リセット(Clear)FUNは↓の引数で構成されています。
引数 | タイプ | データ型 | 初期値 | コメント |
---|---|---|---|---|
EN | IN | BOOL | – | イネーブル入力 |
ENO | OUT | BOOL | – | イネーブル出力 |
InOut | IN-OUT | – | – | 対象変数 |
LD表現
↓がLD表現で使用したラダープログラム例です。

このラダープログラムでは、InFlag(入力フラグ)がON(TRUE)している間、InOutData(対象変数)の値をリセット(0を格納)します。
InFlag(入力フラグ)がON(TRUE)中はInOutData(対象変数)の値をリセット(0を格納)し続けます。
InFlag(入力フラグ)がON(TRUE)した瞬間のみInOutData(対象変数)の値をリセット(0を格納)する場合、「InFlag(入力フラグ)を立ち上がり検出(R_TRIG)ファンクションブロック等で微分化する」または「変数リセット(Clear)FUNを微分指定する」方法があります。
立ち上がり検出(R_TRIG)ファンクションブロックについては以下のページで解説しております。

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

ST表現
↓がST表現で使用したST言語例です。
IF InFlag THEN
Clear(InOutData);
END_IF;
このSTでは、InFlag(入力フラグ)がON(TRUE)している間、InOutData(対象変数)の値をリセット(0を格納)します。※前述のLD表現と同じ動作です。
注意事項
InOutに指定した変数をリセット(STRING以外の場合は0、STRINGの場合は全領域に0を格納)します。
InOutに構造体を指定した場合、全ての構造体メンバをリセットします。InOutに配列全体を指定した場合、全ての配列要素をリセットします。
2.【例題①】UINT(1ワード符号なし整数)型変数をゼロクリア
下記仕様のラダープログラム、STを変数リセット(Clear)FUNを用いて解説します。
Data00のゼロクリアに変数リセット(Clear)FUNを使用します。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。

スイッチ緑を押すと、変数Data00の値をゼロクリア(0を格納)します。
使用する変数
使用する変数は以下になります。
変数 | データ型 | コメント |
---|---|---|
SwGreen | BOOL | スイッチ緑 |
Data00 | UINT | データ00 |
ラダープログラム
ラダープログラムは以下のようになります。

イネーブル入力にSwGreen(スイッチ緑)を用いることで、スイッチ緑を押すと変数Data00の値をゼロクリアします。
ST言語
ST言語は以下のようになります。
//スイッチ緑押下でData00の値をゼロクリア
IF SwGreen THEN
Clear(Data00);
END_IF;
3.【例題②】配列型変数をゼロクリア
下記仕様のラダープログラム、STを変数リセット(Clear)FUNを用いて解説します。
配列型変数Ary00は一次元配列、要素は[0]~[4]の要素数5とする。
変数リセット(Clear)FUNの対象変数に配列型変数(全体)を指定します。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。

スイッチ緑を押すと配列型変数Ary00の値を全てゼロクリア(0を格納)します。
使用する変数
使用する変数は以下になります。
変数 | データ型 | コメント |
---|---|---|
SwGreen | BOOL | スイッチ緑 |
Ary00 | ARRAY[0..4] OF UINT | 配列00 |
ラダープログラム
ラダープログラムは以下のようになります。

変数リセット(Clear)FUNの対象変数に配列型変数(全体)を指定することにより、配列のすべての要素がゼロクリアされます。
ST言語
ST言語は以下のようになります。
//スイッチ緑押下でAry00の値をゼロクリア
IF SwGreen THEN
Clear(Ary00);
END_IF;
4.【例題③】構造体型変数をゼロクリア
下記仕様のラダープログラム、STを変数リセット(Clear)FUNを用いて解説します。
構造体は「WorkData」とし、メンバはワーク有無、品種、検査結果とする。(詳細は構造体「WorkData」に記述)
変数リセット(Clear)FUNの対象変数に構造体型変数(全体)を指定します。
タッチパネルの動作イメージ
タッチパネルの動作イメージは以下のようになります。

スイッチ緑を押すと構造体型変数WorkData00の値を全てゼロクリア(0を格納)します。
使用する変数
使用する変数は以下になります。
変数 | データ型 | コメント |
---|---|---|
SwGreen | BOOL | スイッチ緑 |
WorkData00 | WorkData | ワークデータ00 |
データ型WorkDataの内容は構造体「WorkData」に記述します。
構造体「WorkData」
構造体「WorkData」する変数は以下になります。
変数 | データ型 | コメント |
---|---|---|
Exist | UINT | ワーク有無 |
WorkType | STRING[15] | 品種 |
Result | REAL | 検査結果 |
ラダープログラム
ラダープログラムは以下のようになります。

変数リセット(Clear)FUNの対象変数に構造体型変数(全体)を指定することにより、構造体のすべてのメンバがゼロクリアされます。
ST言語
ST言語は以下のようになります。
//スイッチ緑押下でWorkData00の値をゼロクリア
IF SwGreen THEN
Clear(WorkData00);
END_IF;
5. おわりに
キーエンスKV-X500/X300シリーズにおける変数リセット(Clear)FUNについて解説しました。
電気ハード設計、PLC/TPソフト設計、ロボットティーチング、制御盤製作の外注業務は、ぜひ永工舎にご相談ください。

当サイトを運営している電気設計人は、個人で永工舎として外注業務をお請けしております。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。