電気制御に関する設計業務、製作業務、ご協力いたします!

PLCラダープログラム作成時のアドレスマップ作成手順

PLCラダープログラム作成時のアドレスマップ作成手順

スポンサーリンク


このページでは、PLCでのラダープログラム作成時に必要なアドレスマップの作成する内容と手順について紹介します。

ラダープログラムを作成する時に避けて通れないのかアドレスマップの作成です。
初めてのアドレスマップでは、どのような情報を書けばいいのか困ることがあると思います。

アドレスマップは書く内容や作成の手順を覚えてしまえば、短時間で作成できるようになります。
アドレスマップを素早く作成できれば、あとはプログラムの作成に集中できます。

時間が経過してから変更などが発生しても、アドレスマップがあれば迷うことなくアドレスを選べます。
後々にも良い時短効果があり、規模が大きいほど作成効果を発揮します。

※三菱電機製PLC「Q03UDVCPU」を前提に説明しています。

スポンサーリンク

1.アドレスマップ作成の目的

アドレスマップ作成の目的

 

小規模で簡単なプログラムであれば、アドレスマップを作成しなくとも問題なく出来てしまいます。
しかし中規模以上になると、後任者への引き継ぎや数年経過してからの問い合わせなどの際にアドレスマップがないと大変苦労します。

また、大規模なプログラムでは最初にアドレスの大枠を決めておかないと、プログラムの作成途中にどのアドレスを使うか迷ってしまい、作業が進まなくなることもあります。

作業時にアドレス選びで時間がかかるような状態を作り出さないためにも、プログラム作成の前にある程度大枠で分類したアドレスマップを作成し、その後詳細のアドレスマップを作成しましょう。

 

2.必要な項目を挙げる

必要な項目を挙げる

 

まずはアドレスを割付する前に、アドレスマップに必要な項目を挙げていきましょう。

アドレス

当然と言えば当然ですが、アドレスは必要です。
最初は100か1000くらいの単位で分けておきます。

内容

100か1000単位で分けたアドレスをどんな制御に使うかを決めていきます。

備考

その他特殊な内容や分け方の補足事項を記載します。

 

目次に戻る

 

 

3.デバイスの種類を把握しておく

デバイスの種類を把握しておく

 

アドレスと言っても、色々な種類のデバイスがあります。
種類毎に使用できる数量が違うことも多いです。

どんなプログラムでも全てのデバイスを使用するわけではありません。
使用しないデバイスのアドレスマップを作成する必要はありませんよね。

まずはどんなデバイスがあるのか、主に使用するデバイスについて知っておきましょう。

内部リレー(bit)

プログラム内で仮想リレーとして使用できるデバイスです。シーケンス制御では必ず使用しますので、アドレスマップを作成する時には必須のデバイスとなります。

記述は”M+数字”で、数字は10進数で使用します。初期値としてM0~M9215が使用できます。

 

ラッチリレー(bit)

内部リレーと動作はほぼ同じです。違う部分としては内部リレーは電源OFFでリセットされてしまいますが、ラッチリレーはバッテリーによってバックアップされ、電源OFF後、再度電源ONした時に保持されている部分が違います。主に設定データを保持する時や、電源OFF後も継続した動作が必要な場合などに工程を記憶しておくために使われることが多いです。

記述は”L+数字”で、数字は10進数で使用します。初期値としてL0~L8191が使用できます。

 

リンクリレー(bit)

主にネットワーク上で使用するデバイスです。ネットワークにおいて各局番に対して割付して使用することが多いです。ネットワークに限らず、プログラム上で内部リレーの代用として使用することも可能です。

記述は”B+数字”で、数字は16進数で使用します。初期値としてB0~B1FFFが使用できます。

 

アナンシエータリレー(bit)

警報、異常、故障などのアナンシエータ用として使用します。『SET命令』『RST命令』で使用します。ONすると、CPU前面の『USER』のLEDが点灯します。

記述は”F+数字」で、数字は10進数で使用します。初期値としてF0~F2047が使用できます。

 

リンク特殊リレー(bit)

リンクユニットのシステム信号用として使用します。ユニットの故障やリンク状態の監視等で使用します。

記述は”SB+数字”で、数字は16進数で使用します。初期値としてSB0~SB7FFが使用できます。

 

内部タイマ(bit)

条件が成立してONしている間だけ時間を数えて、設定された時間が経過するとONするbitとして使用します。設定時間の途中までONしていて、途中でOFFするとカウントしていた時間はリセットされます。

記述は”T+数字”で、数字は10進数で使用します。初期値としてT0~T2047が使用できます。

 

積算タイマ(bit)

内部タイマはカウント途中でOFFするとカウントがリセットされますが、積算タイマはカウントが残ります。カウントをリセットしたい場合は『RST命令』でプログラム上でリセットする必要があります。

記述は”ST+数字”で、10進数で使用します。初期値としては”0″となっていますので、使用したい容量を割付する必要があります。

 

内部カウンタ(bit)

内部タイマは時間をカウントしますが、カウンタは条件が成立した回数を数えます。カウントした値は保持されますので、積算タイマ同様『RST命令』でプログラム上でリセットする必要があります。

記述は”C+数字”で、数字は10進数で使用します。初期値としてはC0~C1023が使用できます。

 

データレジスタ(word)

ワードデータ(16bitデータ)で数値を扱う用途で使用します。個別bitとして使用可能ではありますが、特殊な回路でない限り、bitでの使用は分かりづらくなることから避けたほうがよいでしょう。

記述は”D+数字”で、数字は10進数で使用します。初期値としてはD0~D13311が使用できます。

 

ファイルレジスタ(word)

データレジスタと扱いは同様ですが、違う部分としてバッテリーバックアップされるデータとなっていることです。内部リレーとラッチリレーの違い同様、電源OFF時にデータが保持されるか、されないかが大きな違いです。

記述は”ZR+数字”で、数字は10進数で使用します。初期値としては”0″ですが、パラメータ設定で容量を設定すれば使用可能になります。

 

リンクレジスタ(word)

リンクリレーのワードデータ版です。プログラムでの扱いはデータレジスタと同様ですが、主にリンク用として使用します。

記述は”W+数字”で、数字は16進数で使用します。初期値としてW0~W1FFFが使用できます。

 

リンク特殊レジスタ(word)

リンク特殊リレーのワードデータ版です。プログラムでの扱いはデータレジスタと同様ですが、主にネットワーク上でユニットのエラーコードや異常が発生している局番情報などを監視するなどの用途で使用します。

記述は”SW+数字”で、数字は16進数で使用します。初期値としてSW0~SW7FFが使用できます。

 

インデックス(word)

デバイスのインデックス用で使用します。連続するデバイスを扱う際に、インデックスにデータを入れてデバイスの記述を変えることなく違うデバイスにすることが出来ます。
『M0Z0』と記述されている場合、Z0に”10″と入っていれば、『M0Z0=M10』として扱うことが出来ます。

記述は”Z+数字”で、数字は10進数として使用します。初期値としてZ0~Z19が使用できます。

 

使用する機会が多いデバイスを説明しました。
これらのデバイスの用途を理解した上でアドレスを割付していきます。

※上記のほかに『エッジリレー』『ステップリレー』がありますが、あまり使用する機会も少ないため説明は割愛します。

 

目次に戻る

 

4.必要なアドレスを挙げる

必要なアドレスを挙げる

 

デバイスを把握したところで、つぎは仕様に対する制御を検討した上で実際に使用するデバイスを決めておきます。

ここで決めたデバイス以外使えないことになるわけではありません。
暫定的に使用するデバイスを決めることで余計なデバイス割付をしない(=ムダを省く)ためです。

どのデバイスを使用するかは、扱う案件の仕様によります。
見当がつかなければ、必ず使うデバイスを選びましょう。

ここでは私がアドレスマップを作成する際のフォーマットとして使用している例を挙げます。

前提として、アドレスマップが必要な場合は中規模以上です。
生産ライン向け装置の中規模制御プログラムの作成を想定したものとなっています。

使用デバイス

  • 内部リレー
  • ラッチリレー
  • リンクリレー
  • アナンシエータリレー
  • 内部タイマ
  • データレジスタ
  • ファイルレジスタ
  • リンクレジスタ
  • インデックス

 

積算タイマとカウンタを外しています。
理由として、この2つのデバイスはデータレジスタを使用すれば作成できます。

数値として扱う場合や、bitをONさせて使用することを考慮してもデータレジスタの方が扱いやすいことが理由です。

リンク特殊リレーとリンク特殊レジスタは、自分で割付するのはユニットに対しての割付のみです。
あとはネットワークパラメータを見れば分かります。

自分でわざわざ割付を作成する必要がないので作成しません。
少しでもムダになってしまう作業はどんどん省略していきましょう。

次に、この想定の場合の基本割付の例を挙げます。

・内部リレー、ラッチリレー
0000~0999:システム、全体
1000~1999:自動運転
2000~2999:空き(自動運転予備エリア)
3000~3999:手動運転
4000~4999:アラーム処理
5000~5999:その他処理
6000~6999:空き
7000~7999:ローカルデバイス(ラッチリレーは空き)
8000~9215:空き(非常時のみ)

・リンクリレー
別途、ネットワーク構成によって都度検討

・アナンシエータリレー
・内部タイマ
別途、仕様によって都度検討

・データレジスタ
0~9999は内部リレーと同様割付
10000~13311:空き

・ファイルレジスタ
・リンクレジスタ
・インデックス
別途、仕様によって都度検討

 

基本的には内部リレー、ラッチリレー、データレジスタのみフォーマットとして決めており、他のデバイスは都度決めています。ただし、あまり考えなくてもよいように内部レジスタに合わせたりするなど、ある程度のフォーマットは脳内にあります。

本当は決めておく方が良いのかもしれませんが、私の業務都合上、カスタマイズ品が多く固定化することが難しいために決めていません。

このサイトをご覧のみなさんもそれぞれ業態などの都合があるかと思います。効率よく業務を進めるためには、型にはめてしまった方が楽になる部分が多いので、業態に合わせて固定化できる部分は固定化することをおすすめします。

 

目次に戻る

 

スポンサーリンク

5.アドレスマップの作成

アドレスマップの作成

 

ここまできて、ようやく作成に入ります。
私の場合、作成はExcelを使用して作成します。

作成する際の注意点、ポイントとなる部分です。

・各デバイス毎に表を作成する
・最初は私が例に挙げた100点、1000点毎などの大枠の割付とする

各デバイス毎に作成する理由は、アドレスマップの変更作業を最小限にするためです。

プログラム作成中に割付を変更したくなった場合など、一つの表ですべてを賄おうとしていると割付の変更に伴って表の作り直しや変更に時間が掛かってしまうことがあります。

プログラム作成中はプログラム作成に集中した方が効率がよいのは言うまでもありませんよね。
余計な時間をアドレスの割付に割かないためにデバイス毎に表を作成しておきます。

また、最初から詳細まで割付するのは大変な作業となります。
プログラムの作成を効率よくするための作業に時間を割きすぎるのは問題です。

最初は大枠の割付が決まっていれば問題ありません。
細かく決めたい人は1000点毎ではなく100点毎の割付表を作成しておき、内容は空欄にしておくことをおすすめします。

プログラム作成中はアドレスを1点ずつ決めながらプログラム作成することになります。
あまり細かくする必要はなく、私なら100点毎までのアドレスマップしか作成しません。

アドレスマップは1項に挙げた作成目的の通り、迷わずプログラム作成ができること、あとでわかるようにしておくことです。

細かくきっちり決めることが目的ではありません。
本来の目的から脱線しないようにしましょう。

 

目次に戻る

 

6.さいごに

さいごに

 

PLCは原始的な命令で動作するため、アドレスを決める作業が必要になります。
アドレスマップである程度は決めておくことで時間短縮が図れます。

アドレスマップはPLCラダープログラムにおいては地図です。
あとは羅針盤でどのようなプログラムを作成するかさえ分かればプログラムが作成できます。

自分の業態に合わせてフォーマットを作成するなどして効率化を図りましょう。
プログラムの作成に集中できるように環境を整えておくことをおすすめします。

以下の記事も参考に読まれると、アドレスマップが楽に作成できますよ。

PLCラダープログラムでのアドレスマップ作成時のExcelの小技(16進数変換)