【三菱FXシリーズ】データサーチ(SER)命令の指令方法とラダープログラム例

00_【三菱FXシリーズ】データサーチ(SER)命令の指令方法とラダープログラム例

「データサーチ」命令とは、三菱電機製シーケンサFXシリーズにおけるデータテーブルの中から同一データおよび最大値最小値の位置を検索するラダープログラム命令です。

この記事では、三菱電機製シーケンサFXシリーズにおけるデータサーチ命令の指令方法ラダープログラム例について解説します。

注意
この記事中のラダープログラムはGX Works2で作成しており、PCタイプはFX3G/FX3GCに設定してあります。

三菱電機製シーケンサFXシリーズにおいて、データサーチ命令は以下のシーケンサ・バージョンで使用することが可能です。

FX3S:Ver1.00以降
FX3G:Ver1.00以降
FX3GC:Ver1.40以降
FX3U:Ver2.20以降
FX3UC:Ver1.00以降

1. データサーチ命令の指令方法

データサーチ命令には、4種類の指令方法があります。

SER:16ビット連続実行形
SERP:16ビットパルス実行形
DSER:32ビット連続実行形
DSERP:32ビットパルス実行形

SERは、データサーチ(Data search)の略です。

メモ
連続実行形は、入力条件がONしている間は命令が毎スキャン実行されます。パルス実行形は、入力条件がOFF→ONしたときに命令が1スキャンだけ実行されます。

SER:16ビット連続実行形(基本の形)

16ビット連続実行形のデータサーチ命令は”SER”と指令します。

こちらがSER命令を使用したラダープログラム例です。

10_SER命令

このラダープログラムでは、入力条件である入力リレーX0がONしている間、データレジスタD0~D9(10点)を対象に、D50の値と同一データの個数などの検索結果をD100~D104に転送します。

命令の中で指定するそれぞれのデバイスは以下のような意味になります。

10_SER命令解説

赤枠の「検索対象の先頭」は、検索対象の先頭のデバイスを指定します。この検索対象のことをデータテーブルと表現することがあります。

緑枠の「検索元」は、このデバイスを元にデータテーブル内を検索します。

青枠の「検索結果」は、データテーブル内を検索した結果を5点のデバイスに格納します。↑のラダープログラムでは、データレジスタD100~D104に以下のような検索結果を格納します。

D100:同一データの個数
D101:同一データの初回位置
D102:同一データの最終位置
D103:最小値の最終位置
D104:最大値の最終位置

橙枠の「検索対象の個数」は、赤枠で指定したデータテーブルのデバイス点数を指定します。

なかなか複雑な命令だと思います。実際に↑のラダープログラムを用いた例題を【例題①】で解説します。


先ほどのラダープログラムはGX Works2の回路上で SER D0 D50 D100 K10 と入力してEnterキーを押すと命令が挿入されます。

10_命令挿入

SERP:16ビットパルス実行形

16ビットパルス実行形のデータサーチ命令は”SERP”と指令します。

こちらがSERP命令を使用したラダープログラム例です。

11_SERP命令

連続実行形(SER命令)との違いは、入力条件である入力リレーX0がON中に検索対象、または検索元のデバイス値が変化しても、検索結果は変化しないことです。

メモ
入力条件がOFF→ONしたときにデータサーチ命令を1スキャンだけ実行します。

DSER・DSERP:32ビット実行形

32ビット連続実行形のデータサーチ命令は”DSER”と指定します。

32ビットパルス実行形のデータサーチ命令は”DSERP”と指定します。

こちらがDSER・DSERP命令のラダープログラム例です。

12_DSER命令
13_DSERP命令

32ビット形の場合、検索対象・検索元・検索結果はすべて2ワード(32ビット)長として扱われます。

故に、「検索対象はD0~D19」「検索元はD51,D52」「検索結果はD100~D109」になります。

2.【例題①】データサーチ命令(検索元がデータレジスタ)

下記仕様のラダープログラムをデータサーチ命令を用いて解説します。

仕様
スイッチ(X0)を押している間、データレジスタD0~D9を対象に、D50の値と比較して以下の検索結果をD100~D104に格納する。

D100 ⇒ D50の値と比較して、同一データの個数
D101 ⇒ D50の値と比較して、同一データの初回位置
D102 ⇒ D50の値と比較して、同一データの最終位置
D103 ⇒ 最小値の最終位置
D104 ⇒ 最大値の最終位置

データサーチ命令を用いると、自動的に上記のような検索結果が格納されます。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題①_GOT

スイッチ(X0)を押している間、データレジスタD100~D104に検索結果を格納します。

検索対象D0~D9と検索元D50の値を固定して、それぞれの検索結果を解説します。

例題①_GOT解説

D100には、D50と同一データであるデバイス数を格納します。データテーブルD0~D9内には「100」が4ヶあるので、D100には4が格納されます。

D101には、D50と同一データの中で初回の位置を格納します。同一データはD0・D3・D6・D7で初回はD0になりますので、D101には0が格納されます。

メモ
位置は、データテーブルの先頭アドレス(↑ではD0)が0番目となります。

D102には、D50と同一データの中で最終の位置を格納します。同一データはD0・D3・D6・D7で最終はD7になりますので、D102には7が格納されます。

D103には、データテーブル内の最小値の位置を格納します。最小値はD9の「40」なのでD103には9が格納されます。

D104には、データテーブル内の最大値の位置を検索します。最大値はD8の「800」なのでD104には8が格納されます。

メモ
データテーブル内に最小値・最大値が複数存在した場合、最終の位置が格納されます。

ラダープログラム

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

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

この命令だけで、上記のようなデータサーチが実行されます。

詳細は、前項のSER:16ビット連続実行形(基本の形)の解説をご覧ください。

3.【例題②】データサーチ命令(検索元が定数)

下記仕様のラダープログラムをデータサーチ命令を用いて解説します。

仕様
スイッチ(X0)を押している間、データレジスタD0~D9を対象に、定数60と比較して以下の検索結果をD100~D104に格納する。

D100 ⇒ 定数60と比較して、同一データの個数
D101 ⇒ 定数60と比較して、同一データの初回位置
D102 ⇒ 定数60と比較して、同一データの最終位置
D103 ⇒ 最小値の最終位置
D104 ⇒ 最大値の最終位置

【例題①】では検索元がデータレジスタD50でしたが、今回は定数60を検索元とします。

GOTの動作イメージ

GOTの動作イメージは以下のようになります。

例題②_GOT

ラダープログラム

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

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

検索元を十進数の定数60を指定することにより、定数60を元にデータサーチが実行されます。

4. おわりに

三菱FXシリーズにおけるデータサーチ命令について解説しました。

複雑な命令で使用する頻度は低いかと思います。検索結果は指定したデバイスを先頭に5ワード(32ビット形だと10ワード)を必ず占有するので、デバイスの重複にはご注意ください。

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

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

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

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

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

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

コメントを残す

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