連載
» 2014年01月22日 10時00分 UPDATE

PLCの国際標準プログラミング入門(3):IEC 61131-3の特長〔後編〕プログラムのモジュール化 (1/2)

「IEC 61131-3」と「PLCopen」について解説する本連載。今回は同規格に規定されているプログラムのモジュール化ついて説明します。

[松隈 隆志 PLCopen Japan代表幹事/オムロン,MONOist]
plc

 「IEC 61131-3」と「PLCopen」について解説する本連載ですが、前回から2回にわたり、「IEC 61131-3でなぜ開発効率化が実現できるのか」をテーマに同規格の特長を解説しています。

 前回の「IEC 61131-3の特長〔前編〕5つのプログラミング言語と変数」は、規定されている5つのプログラム言語と変数について紹介しましたが、今回はプログラムのモジュール化について解説します。




可読性の向上

 前回紹介した通り、日本においてはLD(ラダーダイアグラム)主体の従来ツールが普及してきました。しかしながら、使用しているユーザーは下記のような課題(不満)を抱えています。

  1. プログラムを機能毎ごとに区分(モジュール化)することが難しく、第三者には解読できない。
  2. LDは一筆書きなので、コンカレントな開発(分業)ができない。
  3. メーカー独自の応用命令を覚えなくてはならない(複数メーカーの習得は大変)。

 一方IEC 61131-3では、図1のように機能単位でプログラムを作成します。この単位のことを本規格ではPOU(Program Organization Unit)と呼んでいます。

図1 図1:モジュール化による可読性の向上(クリックで拡大)

 図1は搬送ラインをイメージした例ですが、IEC 61131-3ではどの処理がどこのPOU内に書かれているのか容易に判別ができるため、作った本人以外でもプログラムの理解・修正が可能になります。可読性の向上はデバッグやトラブルシューティングの時間を削減するだけではなく、バリデーション(設計仕様書に基づくソースコードレビュー)にも役立ちます。※1)

※1)医薬品の製造設備・装置に使用するPLCのプログラムは、バリデーションが義務付けられています。

プログラムの再利用性

 連載第1回の「IEC 61131-3とPLCopenの目的とは」で紹介したように、IEC 61131-3およびPLCopenでは汎用性の高い機能を標準FB(ファンクションブロック)として規定し、PLCベンダーに実装を促しています。

 これらの標準FBでカバーできない機能については、ユーザー自身で独自のFBを作成することも可能です。複数箇所で使う機能や将来的に繰り返し使えそうなプログラムをFBとして部品化し、ライブラリーファイルに登録(保存)することでプログラム資産の再利用や共有が可能になります(図2)。

図2 図2:ファンクションブロック・ライブラリー(提供:PLCopen)(クリックで拡大)

 図1における“切出”と“満杯検出”は制御対象を区別するためにインスタンス名(FB変数名)を変えてありますが、同じFBを再利用しています。実績のあるFBを再利用することは、プログラミング時間の削減のみならず、品質向上にもつながります。また、FBの中に複数のFBを入れ子にすることもできるので、構造化プログラミングにも対応しています。

 昨今、グローバル化に伴うノウハウの流出が懸念されていますが、FBの中に独自アルゴリズム(計算式など)を隠蔽(ブラックボックス化)することで、第三者の目に触れさせないことも可能です。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.