【キーエンスKV】文字列長検出(LEN)命令の指令方法とラダープログラム例

【キーエンスKV】文字列長検出(LEN)命令の指令方法とラダープログラム例

キーエンスKVシリーズにおける「文字列長検出」命令とは、文字列の文字数をカウントしてデバイスに格納するラダープログラム命令です。

文字列長検出命令を用いることにより「表示器や外部機器から入力された文字列」や「ラダープログラム内で格納した文字列」の文字列長(何文字か)をカウントする回路を作ることができます。

この記事では、キーエンスKVシリーズにおける文字列長検出命令の指令方法ラダープログラム例について解説します。

注意
この記事中のラダープログラムはKV STUDIO Ver.11で作成しており、対応機種はKV-N24に設定してあります。
メモ
文字列長検出(LEN)命令はKV-8000・KV-7500/7300・KV-5500/5000/3000・KV-1000・KV-nanoシリーズで使用可能です。※2024年7月現在

1.文字列長検出命令の指令方法

文字列長検出命令には2種類の命令方法があります。

LEN:毎スキャン実行型
@LEN:微分実行型(パルス実行型)
メモ
毎スキャン実行型とは、実行条件がONしている間、その命令を毎スキャン実行するものです。対して微分実行形(パルス実行型)とは、実行条件がOFF→ONになったときの1スキャンのみ実行するものです。

LEN:毎スキャン実行型の文字列長検出命令

毎スキャン実行型の文字列長検出命令は”LEN”と指令します。

↓が毎スキャン実行型の文字列長検出(LEN)命令です。

10_LEN命令

↓命令部分を拡大

10_命令拡大

このラダープログラムでは、実行条件である入力リレーR000がONしている間、データメモリDM0に文字列”ABCD”の文字列長である「4」を格納します。

メモ
文字列の定数を指定する場合、文字列を””で囲います。

定数で文字列が指定された場合、半角文字はASCIIコード(1バイト)、全角文字は「プロジェクト言語設定」で指定した言語またはシフトJISコード(2バイト)になります。

メモ
全角文字は、KV-8000/7000シリーズは「プロジェクト言語設定」で指定した言語、KV-5500/5000/3000・KV-1000・KV-nanoシリーズはシフトJISコード(2バイト)になります。

ASCII(American Standard Code for Information Interchange)コードとは、数値・アルファベット・記号などを7ビットで表現した文字コードの一つです。7ビットは「10進数では0~127」「16進数では0x00~0x7F」の128ヶで表されます。ASCIIコード一覧表は以下のページで解説しております。

【情報基礎】アスキーコード一覧表【情報基礎】ASCII(アスキー)コード 一覧表
注意
文字列長検出命令で扱える文字列は1バイト文字で最大1999文字になります。
注意
2バイト文字(シフトJISコード等)の場合、1文字で「2」カウントされます。

@LEN:微分実行型(パルス実行型)の文字列長検出命令

命令の頭文字に@を付けることで、実行条件がOFF→ONになったときの1スキャンしか実行されない微分実行型(パルス実行型)となります。

↓が微分実行型(パルス実行型)の文字列長検出(@LEN)命令です。

11_@LEN命令

↓命令部分を拡大

11_命令拡大

微分実行型(パルス実行型)の場合、命令文の左側に上向きの矢印が表示されます。

このラダープログラムは、実行条件である入力リレーR000がOFF→ONになった瞬間に、データメモリDM0に文字列”ABCD”の文字列長である「4」を格納します。

このように、微分実行型(パルス実行型)の場合は実行条件がOFF→ONになった瞬間の1スキャンしか命令が実行されません。

KV STUDIOにおける命令挿入の方法

文字列長検出命令をKV STUDIOの回路上に挿入するには「命令文 対象文字列 文字列長の格納先」と回路上で入力します。

先ほどの毎スキャン実行型の文字列長検出(LEN)命令を挿入する場合、KV STUDIOの回路上でLEN “ABCD” DM0と入力してEnterキーを押します。

20_命令挿入

2.【例題①】定数の文字列長を検出

下記仕様のラダープログラムを文字列長検出命令を用いて解説します。

仕様
スイッチ(R000)を押すと、文字列ABCDの文字列長(何文字か)をデータメモリDM0に格納する。
スイッチ(R001)を押すと、文字列ABCDEFの文字列長(何文字か)をデータメモリDM0に格納する。
スイッチ(R002)を押すと、データメモリDM0に定数”0”を転送する。(クリアする)

「スイッチ(R000)、スイッチ(R001)を押したときの文字列長(何文字か)の検出」は文字列長検出命令を使用します。

「スイッチ(R002)を押したときのDM0に定数”0”を転送」はデータ転送命令を使用します。データ転送(MOV)命令については以下のページで解説しております。

00_【キーエンスKV】データ転送(MOV)命令の指令方法とラダープログラム例【キーエンスKV】データ転送(MOV)命令の指令方法とラダープログラム例

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

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

例題①_タッチパネル

スイッチ(R000)を押すと、文字列ABCDの文字列長である「4」をデータメモリDM0に格納します。

スイッチ(R001)を押すと、文字列ABCDEFの文字列長である「6」をデータメモリDM0に格納します。

スイッチ(R002)を押すと、データメモリDM0に定数”0”を転送します。

ラダープログラム

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

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

スイッチ(R000)を押すと、文字列長検出(LEN)命令によりデータメモリDM0に文字列ABCDの文字列長である「4」が格納されます。

スイッチ(R001)を押すと、文字列長検出(LEN)命令によりデータメモリDM0に文字列ABCDEFの文字列長である「6」が格納されます。

スイッチ(R002)を押すと、データ転送(MOV)命令によりデータメモリDM0に定数”0”が転送されます。

3.【例題②】DMに格納された文字列長を検出

下記仕様のラダープログラムを文字列長検出命令を用いて解説します。

仕様
スイッチ(R000)を押すと、データメモリDM0~に文字列ABCを格納する。
スイッチ(R001)を押すと、データメモリDM0~に文字列ABCDEを格納する。
スイッチ(R002)を押すと、データメモリDM0~DM19(20点)に定数”0”を格納する。(クリアする)
データメモリDM0~の文字列長(何文字か)をデータメモリDM20に常時格納する。

「スイッチ(R000)、スイッチ(R001)を押したときの文字列の格納」は文字列転送命令を使用します。文字列転送(SMOV)命令については以下のページで解説しております。

【キーエンスKV】文字列転送SMOV命令の指令方法とラダープログラム例【キーエンスKV】文字列転送(SMOV)命令の指令方法とラダープログラム例

「スイッチ(R002)を押したときのDM0~DM19に定数”0”を転送」は一括転送命令を使用します。一括転送(FMOV)命令については以下のページで解説しております。

00_【キーエンスKV】一括転送(FMOV)命令の指令方法とラダープログラム例【キーエンスKV】一括転送(FMOV)命令の指令方法とラダープログラム例

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

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

例題②_タッチパネル

スイッチ(R000)を押すと、データメモリDM0~に文字列ABCを格納します。スイッチ(R001)を押すと、データメモリDM0~に文字列ABCDEを格納します。

スイッチ(R002)を押すと、データメモリDM0~DM19(20点)に定数”0”を格納します。

DM0~の文字列長(何文字か)をデータメモリDM20に常時格納します。

DM0は8桁の文字表示にしてあります。

ラダープログラム

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

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

スイッチ(R000)を押すと、文字列転送(SMOV)命令によりデータメモリDM0を先頭に文字列”ABC”を格納します。スイッチ(R001)を押すと、同様にデータメモリDM0を先頭に文字列”ABCEF”を格納します。

スイッチ(R002)を押すと、一括転送(FMOV)命令によりデータメモリDM0~DM19(20点)に定数”0”を一括で転送します。

実行条件をコントロールリレーCR2002とする文字列長検出(LEN)命令を用いて、データメモリDM0の文字列長をDM20に格納します。

メモ
コントロールリレーとは、予め機能が割り振られている特殊なデバイスです。その中のCR2002は「PLCがRUNモード中、常にONする」デバイスです。

4. おわりに

キーエンスKVシリーズにおける文字列長検出(LEN)命令について解説しました。

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

ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。

各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。

ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。

doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。

「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。

コメントを残す

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