「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
私は入社して10年目の社員で、主にPLCソフトの開発に携わっています。最近携わった仕事で、三菱QシリーズのPLCを使いファイル管理をするという案件がありました。その際に調べたことや感じたことを紹介したいと思います。
私たちの引き合い案件では、CPUのSDカードで、バイナリファイルやCSVファイルを扱う機能案件が多くあります。
たとえば、ファイル読み込みであれば、FTP機能とセットで使われることがあります。
上位システムより製造指示や運転パラメータファイルがFTP経由でSDカードに書き込まれます。PLCでは製造指示や運転パラメータファイルを読み込み、製造指示のとおりに動く、もしくは運転パラメータファイルの内容を装置に書き込むことで動作させるといったことに使います。
次にファイル書き込みであれば、よく使われるのが、システム稼働状態などのログを定周期で収集し、ファイル出力するという使い方が一番多いです。
PLCで保存可能なファイル容量はSDカードの容量分となりますので、容量オーバーする前に削除する必要があります。
この場合もFTP経由で取得できるようにしておけば、PCアプリでSDカードのファイルをFTP経由で取得し、PC内に保存することで、過去のファイルも残るというようなシステムを構築可能です。
最近、携わった案件で、三菱QシリーズでCPUに装着したSDカードにシステム稼働状態を定周期でロギングするという機能を、ラダーで組み込みました。
その際、三菱Qシリーズでファイルの読み書きについて調べ、実装を試みました。しかし、三菱Qシリーズはファイル操作の命令が少なく、機能としてどう実現するかに悩まされるものでした。特にファイルのコピーや移動、ファイル名の変更、ファイルの削除などの命令がありませんでした。さらにファイル書き込みする際のファイル名のサイズも8文字までと制限が厳しく対応が難しい状態でした。
ちなみにCPUのロギングツールという選択肢もあったのですが、ロギングツールでは最大1280点(128点×10設定)までという制約が有りました。今回はそれを超える項目数の収集が必要だったため、ロギングツールという選択は取れませんでした。
1日1ファイルで、ファイル名に日時を入れ、保存日数の設定も持ち、保存日数が過ぎたファイルは削除をするような機能も組み込みたかったのですが、ファイル名の変更、削除命令もなく、そのような機能は作ることが出来ず、ファイル名は固定にしました。
次に、ファイル操作の機能について、三菱Qシリーズ、iQ-Rシリーズ、横河電機FA-M3、KEYENCE KVシリーズでの基本的な命令についてそれぞれシリーズ毎で記載致します。
表1. ファイル操作命令
機能 | 三菱 Qシリーズ |
三菱 iQ-Rシリーズ |
横河電機 FA-M3シリーズ |
KEYENCE KV シリーズ |
---|---|---|---|---|
ファイルオープン | ※1 | ※1 | FOPEN | ※1 |
ファイルクローズ | ※1 | ※1 | FCLOSE | ※1 |
ファイル読込 | SP.FREAD | SP.FREAD | FREAD (F2DCSV) |
MWRIT |
ファイル書込 | SP.FWRITE | SP.FWRITE | FWRITE (D2FCSV) |
MREAD |
ファイル/フォルダコピー | - | SP.FCOPY | FCOPY | MCOPY |
ファイル/フォルダ移動 | - | SP.FMOVE | FMOVE | MMOV |
ファイル削除 | - | SP.FDELETE | FDEL | MDEL |
フォルダ削除 | - | FRMDIR | MRMDIR | |
ファイル/フォルダ名称変更 | - | SP.FRENAME | FREN | MREN |
フォルダ作成 | ※2 | ※2 | FMKDIR | MMKDIR |
※1 ファイルオープン/クローズ処理は不要です。
※2 『SP.FWRITE』にてフォルダパスを入れることでフォルダ生成することが可能です。
上の表から各シリーズにおいて、他のPLCとは違う所について記載します。
三菱Qシリーズはファイル操作の命令が少なく、ファイルの書き込み、読み込みのみとなります。ファイルの削除やコピー、ファイル名変更などが出来ない為、むやみに新規にファイルを作成するようなシステムにはできません。
もしそのように新規に作る必要がある場合は、別途、定期的に削除していくようなPCアプリが必要になります。
今回、このソフテックだよりのテーマにしようとしたきっかけの案件では新規にファイルは作らないようにしました。必要数分ファイルは事前に用意しておき、それを更新していくという対応にしました。それであれば新規に作ることもなく、更新なので容量などの心配もありません。
今回はプログラムで作る決断をしましたが、ファイルパスの文字数が8文字と少なかったり、ファイル名の変更が出来なかったりと、三菱Qシリーズのファイル操作に関しては、ルートフォルダに小さいファイルを読み書きさせるような使い方が想定されていたものと思います。
また、CPUにはロギング機能というものがあり、設定ツールから設定するだけでCPUのSDカードにロギングできるというものです。Qシリーズでロギングをしたい場合は、仕様の範囲内でロギング機能を使うべきなのだと思います。
CSVでのファイル書き込みについては三菱、キーエンスは引数で指定することができます。しかし、横河FA-M3の場合は“D2FCSV”という別命令で用意されています。以下命令を使うことで、CSV形式のファイルを扱うことが可能です。
表2. 横河FA-M3シリーズのCSVファイル操作命令
命令 | 説明 |
---|---|
F2DCSV | CSV 形式ファイルの内容をデータに変換してデバイスへ連続して書き込みます。 |
D2FCSV | デバイスデータの内容をCSV 形式ファイルへ変換します。 |
キーエンスKV、横河FA-M3にはフォルダ作成の命令がありますが、三菱iQ-Rシリーズ、Qシリーズにはありません。
ただ、三菱iQ-Rシリーズ、Qシリーズはファイルパスにフォルダを指定することで、そのフォルダが無い場合はファイルと同時にフォルダも作成します。その為、事前にフォルダを手で作っておくなどの作業は不要です。
横河FA-M3でファイルに書き込む際はファイルオープンしてからの書き込みが必須となり、他の三菱、キーエンスPLCとは違います。ファイルへの読み書きする際はファイルオープン、クローズをセットで行う必要があります。
例えば、ファイルに書き込みを行う場合は以下のような流れになります。
FOPEN(ファイルオープン)⇒FWRITE(ファイル書き込み)⇒FCLOSE(ファイルクローズ)
横河FA-M3でファイルのコピー、移動をする際はワイルドカード指定にて複数ファイルをまとめてコピー/移動を行うことが可能です。
今回、携わった案件で三菱Qシリーズでのファイル管理を機能実装することになり、このテーマを選びました。改めて他のメーカーのファイル操作命令についても調べましたが、三菱Qシリーズでこそ、できることは少なかったですが、三菱iQ-Rでは解消され、使いやすいものになりました。
まだまだ、三菱Qシリーズは現行品ですが、今後は三菱iQ-Rも普及していくものと思いますので、今後は頭を悩ませることもなくなると思います。
さらに、機種選定の観点から行くと、三菱iQ-R、横河FA-M3、キーエンスKVの3シリーズに関しては多少の違いはありますが、どの機種でも大差なく、やりたいことはできるものと思います。この3機種の差はほとんどないので、ファイル管理において、機種選定で幅が狭まるということはありません。
最後までお読みいただきありがとうございました。
(S.S.)
関連ページへのリンク
関連するソフテックだより