シーケンス制御講座

ファイルレジスタの使い方

シーケンス制御講座 中級編 ファイルレジスタの使い方

三菱PLCにはファイルレジスタというものがあります。同じ三菱PLCでもFシリーズのファイルレジスタとQシリーズのファイルレジスタは違います。ここではQシリーズのファイルレジスタの設定と使い方について解説します。ファイルレジスタのデバイス「R」や「ZR」の違いも解説します。

作成日:2023年07月12日
更新日:2023年07月12日


ファイルレジスタとは

ファイルレジスタというのはデータレジスタの拡張用のデバイスでデータレジスタと同じ感じで使用できます。設定しないと使用できませんが、設定すればデータレジスタとは別のデバイスとしてファイルレジスタを使えるようになります。

データレジスタは内部ユーザデバイスという領域に保存されますが、ファイルレジスタは基本的には標準RAMに保存されます。保存される場所は違いますが、ラダー図上ではとくに気にすることはありません。

ファイルレジスタの設定方法

ファイルレジスタの設定は「PCパラメータ」→「PCファイル設定」から行います。

ここにファイルレジスタの項目があります。初期では「使用しない」になっています。この状態でファイルレジスタのデバイスを使うとエラーになります。

ファイルレジスタを「使用しない」にすると、本当に使用できないので変更します。ただ変更するといっても他に2つ選択があります。どちらを選択すればいいのでしょうか?順番に見ていきましょう。

「プログラムと同一ファイル名を使用」を選択

この設定はPLCの中に複数のファイルレジスタが作成されます。例えばデータレジスタを使う時を想定します。データレジスタはユーザデバイスの領域に保存されます。仮に”DATA”というファイル名にします。このデータレジスタのファイルはPLC内に1つしかありません。つまりPLC内のラダープログラムでどのプログラムのどの位置からデータレジスタ「D0」を使っても同じデバイスです。「D0」の値が”123”であれば、いつ「D0」にアクセスしても”123”です。今すごく当たり前の事を書いています。データレジスタを例にしましたが、ファイルレジスタでも基本的には同じ考え方です。

しかし「プログラムと同一ファイル名を使用」を選択すると、ファイルレジスタにアクセスする方法が少し変わります。PLC内に複数のプログラムを作った場合、それぞれのプログラム名のファイルレジスタができます。ファイルレジスタのデバイス記号は「R」です。”プログラムA”からファイルレジスタ「R0」にアクセスする場合と、”プログラムB”からファイルレジスタ「R0」にアクセスする場合は値が違います。同じ「R0」でも別のファイルレジスタになります。それは”プログラムA”で使う「R0」は”プログラムA”という名前のファイルレジスタ内の「R0」、”プログラムB”で使う「R0」は”プログラムB”という名前のファイルレジスタ内の「R0」だからです。ファイルレジスタ自体が変わってきます。

また、標準RAM内に作成できるファイルレジスタのファイルは1つだけです。複数プログラムで運用しているとき、この設定を使うには別途メモリカードが必要になります。普段はあまり設定しない項目だと思います。

「下記ファイルを使用する」を選択

普通に使うのであれば「下記ファイルを使用する」を選択します。これは標準RAM内にファイルレジスタのファイルを1つ作り、どのプログラムからでもそのファイルにアクセスする方法になります。この場合どのプログラムからでもファイルレジスタ「R0」は同じ「R0」になります。普通のデータレジスタと同じうように扱うことができます。

ファイル名などは指定する必要はありますが、FILEやMAINなど適当につけておけば大丈夫です。容量も指定できます。上記の場合96Kまで指定できます。たくさん使用して、標準RAMを他に使用しないのであればMAXにしておけば大丈夫です。

ブロック切替方式

ファイルレジスタを使う場合、デバイス記号に「R」が「ZR」を使います。「R」を使う場合はブロック切替方式となります。

この方式というのは何か設定で変更するとか、ラダーを書くなどの必要はなく「R」を指定すれば自動的にブロック切替方式で指定することになります。つまり同じプログラム内でもブロック切替方式を後で解説する連番アクセス方式を混在して使用することが可能です。

ブロック切替方式ではブロックを指定する必要があります。例えば「R0」を指定すると、ブロック0の「R0」やブロック1の「R0」のようになります。この場合「R0」というのはブロックの数だけあります。単純に「R0」を指定すると、ブロックが切替わった時は「R0」の値が変わってきます。

ブロックを切り替えるには[RSET]という命令を使います。この命令でブロックを指定して「R」を指定する必要があります。特にたくさんのファイルレジスタを使用しないのであれば[RSET K0]でブロックを”0”に固定して使用しても大丈夫です。

1ブロックは32768個のファイルレジスタで構成されています。つまり「R0」~「32767」までしか使用できません。それ以上使いたい場合はブロックを切り替えます。段取り替えなどで、機種番号でブロックを切り替えればファイルレジスタ設定をまとめて切り替えることが可能です。

連続アクセス方式

連番アクセス方式では「ZR」を使います。「ZR0」や「ZR10」のように指定します。連続アクセス方式にはブロックという考え方はありません。「ZR32767」の次は「ZR32768」が使えます。単純に連番として使えます。

ただしブロック切替方式で指定する場合と連続アクセス方式で指定する場合でデータが変わることはありません。結局指定方法が違いうだけでアクセルするファイルレジスタ番号は同じです。

例えばブロック0の「R0」と「ZR0」は同じです。ブロック1の「R1」と「ZR32769」は同じです。指定方法が違うだけで、参照先のデータは同じです。

私個人的には連続アクセス方式をよく使います。ブロック切替方式でブロックを切替ながら使用したことはありません。



図解入門 よくわかる最新 シーケンス制御と回路図の基本はKindle版(電子書籍)です。単行本ご希望の方は、フォーマットで単行本を選択してください。または、トップページよりご購入ください。

Copyright (C) 2010 シーケンス制御講座, All rights reserved.