「IEC 61131-3」と「PLCopen」について解説する本連載。今回は同規格に規定されているプログラムのモジュール化ついて説明します。
「IEC 61131-3」と「PLCopen」について解説する本連載ですが、前回から2回にわたり、「IEC 61131-3でなぜ開発効率化が実現できるのか」をテーマに同規格の特長を解説しています。
前回の「IEC 61131-3の特長〔前編〕5つのプログラミング言語と変数」は、規定されている5つのプログラム言語と変数について紹介しましたが、今回はプログラムのモジュール化について解説します。
FAフォーラムの『入門』関連記事: | |
---|---|
⇒ | PLCの国際標準プログラミング入門 |
⇒ | 製造現場で役立つ「画像処理技術」入門 |
⇒ | いまさら聞けない EtherCAT入門 |
前回紹介した通り、日本においてはLD(ラダーダイアグラム)主体の従来ツールが普及してきました。しかしながら、使用しているユーザーは下記のような課題(不満)を抱えています。
一方IEC 61131-3では、図1のように機能単位でプログラムを作成します。この単位のことを本規格ではPOU(Program Organization Unit)と呼んでいます。
図1は搬送ラインをイメージした例ですが、IEC 61131-3ではどの処理がどこのPOU内に書かれているのか容易に判別ができるため、作った本人以外でもプログラムの理解・修正が可能になります。可読性の向上はデバッグやトラブルシューティングの時間を削減するだけではなく、バリデーション(設計仕様書に基づくソースコードレビュー)にも役立ちます。※1)
※1)医薬品の製造設備・装置に使用するPLCのプログラムは、バリデーションが義務付けられています。
連載第1回の「IEC 61131-3とPLCopenの目的とは」で紹介したように、IEC 61131-3およびPLCopenでは汎用性の高い機能を標準FB(ファンクションブロック)として規定し、PLCベンダーに実装を促しています。
これらの標準FBでカバーできない機能については、ユーザー自身で独自のFBを作成することも可能です。複数箇所で使う機能や将来的に繰り返し使えそうなプログラムをFBとして部品化し、ライブラリーファイルに登録(保存)することでプログラム資産の再利用や共有が可能になります(図2)。
図1における“切出”と“満杯検出”は制御対象を区別するためにインスタンス名(FB変数名)を変えてありますが、同じFBを再利用しています。実績のあるFBを再利用することは、プログラミング時間の削減のみならず、品質向上にもつながります。また、FBの中に複数のFBを入れ子にすることもできるので、構造化プログラミングにも対応しています。
昨今、グローバル化に伴うノウハウの流出が懸念されていますが、FBの中に独自アルゴリズム(計算式など)を隠蔽(ブラックボックス化)することで、第三者の目に触れさせないことも可能です。
Copyright © ITmedia, Inc. All Rights Reserved.