【キーエンスKV-X】変数リセット(Clear)FUNの指令方法とラダープログラム/ST例

00_【キーエンスKV-X】変数リセット(Clear)FUNの指令方法とラダープログラムST例

キーエンスKV-Xシリーズにおける「変数リセット(Clear)FUN」は、指定した変数の値をゼロクリアするファンクションです。

変数リセット(Clear)FUNを用いることにより「指定した変数をリセット(0を格納)するプログラム」を作ることができます。

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

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

1. 変数リセットFUNの指令方法

変数リセット(Clear)FUNはLD表現(ラダープログラム)とST表現(ST言語)で使用することができます。

10-1_LD表現
ST言語
Clear(InOut);

変数リセット(Clear)FUNは↓の引数で構成されています。

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

LD表現

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

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

このラダープログラムでは、InFlag(入力フラグ)がON(TRUE)している間、InOutData(対象変数)の値をリセット(0を格納)します。

InFlag(入力フラグ)がON(TRUE)中はInOutData(対象変数)の値をリセット(0を格納)し続けます。

InFlag(入力フラグ)がON(TRUE)した瞬間のみInOutData(対象変数)の値をリセット(0を格納)する場合、「InFlag(入力フラグ)を立ち上がり検出(R_TRIG)ファンクションブロック等で微分化する」または「変数リセット(Clear)FUNを微分指定する」方法があります。

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

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

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

10-1_微分指定

ST表現

↓が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の値をゼロクリアする。

Data00のゼロクリアに変数リセット(Clear)FUNを使用します。

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

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

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

スイッチ緑を押すと、変数Data00の値をゼロクリア(0を格納)します。

使用する変数

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

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

ラダープログラム

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

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

イネーブル入力にSwGreen(スイッチ緑)を用いることで、スイッチ緑を押すと変数Data00の値をゼロクリアします。

ST言語

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

ST言語
//スイッチ緑押下でData00の値をゼロクリア
IF SwGreen THEN
	Clear(Data00);
END_IF;

3.【例題②】配列型変数をゼロクリア

下記仕様のラダープログラム、STを変数リセット(Clear)FUNを用いて解説します。

仕様
スイッチ緑を押すと、配列型変数Ary00の値を全てゼロクリアする。
配列型変数Ary00は一次元配列、要素は[0]~[4]の要素数5とする。

変数リセット(Clear)FUNの対象変数に配列型変数(全体)を指定します。

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

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

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

スイッチ緑を押すと配列型変数Ary00の値を全てゼロクリア(0を格納)します。

使用する変数

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

変数データ型コメント
SwGreenBOOLスイッチ緑
Ary00ARRAY[0..4] OF UINT配列00

ラダープログラム

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

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

変数リセット(Clear)FUNの対象変数に配列型変数(全体)を指定することにより、配列のすべての要素がゼロクリアされます。

ST言語

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

ST言語
//スイッチ緑押下でAry00の値をゼロクリア
IF SwGreen THEN
	Clear(Ary00);
END_IF;

4.【例題③】構造体型変数をゼロクリア

下記仕様のラダープログラム、STを変数リセット(Clear)FUNを用いて解説します。

仕様
スイッチ緑を押すと、構造体型変数WorkData00の値を全てゼロクリアする。
構造体は「WorkData」とし、メンバはワーク有無、品種、検査結果とする。(詳細は構造体「WorkData」に記述)

変数リセット(Clear)FUNの対象変数に構造体型変数(全体)を指定します。

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

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

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

スイッチ緑を押すと構造体型変数WorkData00の値を全てゼロクリア(0を格納)します。

使用する変数

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

変数データ型コメント
SwGreenBOOLスイッチ緑
WorkData00WorkDataワークデータ00

データ型WorkDataの内容は構造体「WorkData」に記述します。

構造体「WorkData」

構造体「WorkData」する変数は以下になります。

変数データ型コメント
ExistUINTワーク有無
WorkTypeSTRING[15]品種
ResultREAL検査結果

ラダープログラム

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

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

変数リセット(Clear)FUNの対象変数に構造体型変数(全体)を指定することにより、構造体のすべてのメンバがゼロクリアされます。

ST言語

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

ST言語
//スイッチ緑押下でWorkData00の値をゼロクリア
IF SwGreen THEN
	Clear(WorkData00);
END_IF;

5. おわりに

キーエンスKV-X500/X300シリーズにおける変数リセット(Clear)FUNについて解説しました。

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

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

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

コメントを残す

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