【三菱FXシリーズ】データレジスタ(D)の使い方

00_【三菱FXシリーズ】データレジスタ(D)の使い方

ラダープログラムにおけるデータレジスタとは、数値データを格納することができるデバイスです。

ラダープログラムは入力リレー(X)や出力リレー(Y)、補助リレー(M)のような『ON/OFFのどちらかの状態になる』デバイスの他に、『数値を格納できる』デバイスがあります。後者を三菱FXシリーズではワードデバイスと呼び、1点が16ビットで構成されます。

このワードデバイスの代表ともいえるデバイスがデータレジスタ(D)です。ワードデバイスは『ON/OFFのどちらかの状態になる』デバイスとは扱い方が異なります。

この記事では、三菱FXシリーズにおけるデータレジスタ使い方と内部の構造について解説します。

注意
この記事中の三菱FXシリーズは、PCタイプがFX3S・FX3G・FX3GC・FX3U・FX3UCのPLCを指します。
メモ
ワードデバイスに対して、『ON/OFFのどちらかの状態になる』入力リレー(X)や出力リレー(Y)などのデバイスは1ビットで構成され”ビットデバイス”と呼びます。

1. 基本的な使い方(1点を単独で使用)

データレジスタは基本的には1点を単独で使用します。

データレジスタは内部が0~15ビットの計16ビットで構成されたデバイスです。(1~16ビットとは表現しないのでご注意ください。)

10_データレジスタの構造

各ビットは必ず「0か1のどちらかの状態」になり『1でON』『0でOFF』として表されます。

↑の”データレジスタの構想”では、0・2・6・8ビット目が”1”になっています。

ところで、2進数と10進数をご存知でしょうか?10進数とは我々人間が生活で使用している0~9の計10ヶの数字を使って数値を表していますが、2進数は0と1で表されます。

コンピュータの世界では標準的に使用されていますが、データレジスタも2進数に見立てることができます。

0・2・6・8ビット目が”1”になっている2進数は、10進数に変換すると『325』になります。つまり先ほどのデータレジスタには325が格納されている状態となります。


出力リレー(Y)や補助リレー(M)の場合、コイルをON/OFFさせることでそのデバイスをON/OFFさせることができますが、データレジスタに数値を格納する方法は異なります。(コイルとしてON/OFFできるものもあるので後述します。)

データレジスタに数値を格納する簡単な方法として、転送(MOV)命令という特殊な命令を使用します。転送(MOV)命令とは、定数や他のデバイスの値を他のデバイスに転送する命令です。

↓が転送(MOV)命令を用いたラダープログラム例です。

11_MOV命令

このラダープログラムは、入力リレーX0がONするとデータレジスタD0に定数325を転送するものです。325の頭に付いている”K”は10進数の定数という意味です。

↓が転送(MOV)命令が実行された後のD0の状態です。

12_デバイスモニタ

D0の0・2・6・8ビット目が1になって、その他のビットは0になります。

データレジスタ1点を単独で使用する場合、最上位ビットである15ビット目は符号ビットとして扱われ、-32,768 ~ +32,767の数値を格納することができます。

メモ
データレジスタ1点の大きさを「1ワード長」「16ビット長」と表現されます。

2. 2ワードを1点として使う方法

1ワード長では-32,768 ~ +32,767の数値を格納することができますが、用途によってはさらに大きな数値を扱いたいことがあります。

データレジスタは隣接する2点を用いて、32ビットを1点として扱うことができます。この場合、データレジスタは上位が老番、下位が若番になります。

例えば「データレジスタD0とD1」を32ビットの1ヶのデバイスとして扱うとします。

20_2ワードのデータレジスタの構造

↑は若番のD0が下位、老番のD1が上位として扱われます。0・2・6・8・16・18・26ビット目が”1”になっており、10進数に変換すると『67,436,869』になります。

メモ
データレジスタ2点を1点として扱った大きさを「2ワード長」「ダブルワード長」「32ビット長」と表現されます。

「2ワード長」を対象にした命令は基本的に頭文字に”D”が付きます。

例えば、2ワード長のデータに数値を格納するには、転送命令は『DMOV』と指令します。(単にMOVでは1ワード長)

21_DMOV命令

このラダープログラムは、入力リレーX0がONするとデータレジスタD0・D1に定数67,436,869を転送するものです。D0・D1はD0を下位とする2ワード長として扱われます。

↓が転送(DMOV)命令が実行された後のD0・D1の状態です。

22_デバイスモニタ

D0の0・2・6・8ビット目と、D1の0・2・10ビット目が”1”になっています。D1は上位16~31ビット目として扱われるので、”1”になっているビットは16・18・26ビット目となります。

データレジスタを2ワード長として扱う場合、最上位ビットである31ビット目は符号ビットとして扱われ、-2,147,483,648 ~ +2,147,483,647の数値を格納することができます。

3. ワードデバイスのビット指定(D□.b)

データレジスタ等のワードデバイスは1点で16ビットで構成されたデバイスですが、ビットを指定することによりビットデバイスのように扱うことができます。

注意
このワードデバイスのビット指定は、三菱FXシリーズにおいてはFX3U・FX3UCのみ使用可能です。

↓がデータレジスタD0の0ビット目をビット指定で接点・コイルを用いた例です。D0の0ビット目はD0.0と表現します。

30_ビット指定

このラダープログラムは、入力リレーX0がONすると、データレジスタD0.0がONし続け、X1がONするとD0.0はOFFします。

D0.0がONしている間、出力リレーY0がONします。

31_動作イメージ

データレジスタの各ビットはビット指定によりビットデバイスのように扱うことができます。(FX3U・FX3UCのみですが…)

4. おわりに

三菱FXシリーズにおけるデータレジスタの構造と使い方を解説しました。

ラダープログラム初学者はまず、接点やコイルを用いて「どのような条件にすれば目的のコイルを制御できるか」 から学習する方が多いと思います。初学者にとって数値を格納するデータレジスタは違和感を覚えるかもしれませんが、ラダープログラムにおいて非常に大切なデバイスです。

まとめ
  • データレジスタは1点が16ビットで構成されるワードデバイス
  • 1ワード単独では-32,768~+32,767の数値を扱える
  • 2ワード長では-2,147,483,648~+2,147,483,647の数値が扱える
  • ビット指定では接点やコイルとして使用できる(FX3U・FX3UCのみ)

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

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

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

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

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

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

2 COMMENTS

松前 竜美

エラー項目を M800~M806 迄に設定し [< K0 K4M800] で指定して、M800~M815 迄にONが無ければ正常と判定させる様に記入したのですが、デバイス/バッファメモリ一括モニターで確認した際、使っていない M809 M810 M812 M813 がON に成っていてエラー出力されました。
連休前までは、エラーが出ていなかったので気づきませんでしたがエラー確認したら上記の様になっていました。
使っていないデバイスが ON 状態に何故なるのでしょうか?

返信する
電気設計人

[< K0 K4M800]はM800~M815をバイナリデータとして扱い、0より大きい(つまりM800~M815が1ヶでもONしている)場合、導通する接点形比較命令です。 接点形比較命令は指定されたデータの値を書き換えるものでは無いため、他の部分でONされているかと思います。 解析作業が必要であれば「お問い合わせ」ページ、または electricaldesigner25@gmail.comまでご連絡頂ければ有償ですが対応させて頂きます。

返信する

松前 竜美 へ返信する コメントをキャンセル

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