HOME > ソフテックだより > 第81号(2009年1月7日発行) 技術レポート「FA-Engineを使用したPC-PLC Ethernet通信の事例」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第81号(2009年1月7日発行)
技術レポート

「FA-Engineを使用したPC-PLC Ethernet通信の事例」

1. はじめに

PCとPLCで構成されるFA制御システムについては、リアルタイムなデータのやりとりをEthernet通信で行なうことが一般的になってきました。
以前、ソフテックだより第9号「PLCとPCのEthernet通信」編にてEthernetを使うメリット・デメリットや各PLCメーカーのEthernetの対応状況を御紹介させて頂きましたが、今回は実際にPLCとPCのEthernet通信を使用したシステム開発の事例を御紹介させて頂きたいと思います。
私が最近手がけた案件の中ではこのPC-PLC間通信を実現する為に、「FA-Engine」というActiveXコントロールを使用致しました。
PC-PLC間通信を簡単に実装することが出来ますが、レスポンスの良いシステムに仕上げる為にはいくつか設計で配慮すべき点があります。
今回はこの「FA-Engine」のWindowsアプリケーションへの組み込み事例を御紹介させて頂きたいと思います。

2. FA-Engine概要

「FA-Engine」は株式会社ロボティクスウェア殿が開発したActiveXコントロールです。(http://www.roboticsware.co.jp/index.htm
この「FA-Engine」を使用して開発することの最大の利点は、各社のいろいろなPLCを同じI/Fにてアクセス出来る点にあります。
対応しているPLCは三菱電機株式会社やオムロン株式会社、横河電機株式会社のPLCなど計70機種ですが、PLC機種に関係なく同一のI/Fでソフトを開発できるということは、それだけソフトの汎用性が高くなり次のようなメリットがあります。

  • 過去の開発資産が生かせ開発コストの削減になる。
  • 設計手法の標準化ができ、高品質なソフトが開発できる。
  • ソフトの改造やメンテナンスがしやすい。

3. PC-PLC通信の概要

PC-PLC間の通信というものについて簡単に説明すると、「PCが通信を使用してPLCの内部レジスタへの読み書きを行なう。」ということになります。
PLCの内部レジスタというのは、アドレスによって管理された広大なメモリ領域のようなものです。
このメモリ領域にアドレスを決めてデータやフラグを配置し、そこへPCから読み書きを行なって必要なデータやタイミングのやりとりを行ないます。
実際にはPCからPLCへアクセスする場合はアドレスを直接指定することはせず、タグと呼ばれる通信相手を設定し、そのタグにアクセスする事になります。
タグというのは自由に名前を付けることの出来る通信相手であり、自分が通信すべきPLCレジスタのアドレスを持っています。
なぜ、タグのような中間指定先を使用するのかというと、アドレスを直接PCソフトで指定すると、PLC側のデータの配置を変更した場合に、都度PCソフトを変更する必要が生じ、容易に変更することが難しくなってしまうからです。
タグという中間指定先にアクセスするようにすれば、PLC側データ配置の変更があってもタグの設定を変えるだけで済み、PC側ソフトへ影響が及ぶことはありません。

タグの役割
図1. タグの役割

4. Windowsアプリケーションへの組み込み事例

今回、「FA-Engine」を使用したシステムについて説明致します。
開発対象のシステムは、国内工場の制御システムです。
PCにはラインの物流の状況がリアルタイム表示されており、オペレータが必要に応じて運転モードの切り替えや製品情報の修正を行ないます。
実際のライン制御はPLCで行なっており、物流状況や手入力情報はPLCと通信しながらデータの送受を行なう事となります。
そしてこのデータの送受に「FA-Engine」を使用します。

システム構成
図2. システム構成

5. 組み込みにあたって注意すべき事項

(1). システムのレスポンスへの配慮

「FA-Engine」でPLCと通信する場合に問題となるのが、データ取り込みの速度です。
だいたいの目安は株式会社ロボティクスウェアのホームページで紹介されていますが、通信データ量が増えればそれ相応の取り込み時間がかかります。
よって通信でデータ送受する量を可能な限りコンパクトにすることが重要になります。
これには領域のデータの配置をどう設計するか、タグをどのように割り付けるかがポイントになります。また、無駄な通信をしないことも重要です。
これは本当に必要なデータを必要な時に取り込むようなシステムの基本設計を行なうことがポイントになります。
これら2つは、システム全体のレスポンスの善し悪しに影響してきます。
例えば、今回開発したシステムでは通信で取り扱うPLCメモリ領域は100000ワード以上になりますが、これを常時通信してデータ取り込みしていては非常にレスポンスの悪いシステムになってしまいます。
そこで設計段階で常時通信が必要なエリアとそうでないエリアを分けています。
特に常時通信が必要なエリアは4500ワードにコンパクトにまとめています。
これによりリアルタイム表示用のデータは常に0.2秒以内にPLCより取得できるようになっており、PCの表示画面の更新も高速に行なわれるようになっています。

(2). PLCとのデータ同期の問題

リアルタイム表示すべき情報が多い場合などは、どうしても一度にやりとりする通信データ量が大きくなってしまう場合があります。
このような時に注意すべき点は、「FA-Engine」で大量にデータを送受する場合にPCとPLC間の通信は数パケットに分かれることを考慮することです。
PC側は全データの取り込みまで待ち合わせますが、実際には通信自体は数回に分けて行なわれ、その間PLCでは通信最中のデータの書き換えをしてしまうことがあります。
もし、取り込みデータの同期を取りたい場合は、書き換えの禁止の手段を用意しておく必要があります。
今回開発したシステムでは、PCとPLCで特定のフラグのやりとりを行なうことで、PCが必要なデータを吸い上げるまでPLCからの対象メモリエリアへの書き込みを止めてもらうようにしています。

6. おわりに

今回はPC-PLC間の通信ということで「FA-Engine」の組み込み事例を御紹介させて頂きました。
自分はこの案件にて「FA-Engine」を組み込むことに初めて挑戦しましたが、設計時に考慮すべき点を多々学べたことは良いことでした。
ソフテックでも用途に応じいろいろなActiveXコントロールを使用しており、使用事例については今後も御紹介させて頂きたいと考えています。

(T.S.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ