3.3.3
運転方案プログラムの設計(続き)
最後に、応用部の“分岐"FBと“合流"FBとを結び付ける処理を記述する。3.3.4
階層設計のポイント(機能の階層構造を適切にFBの階層構造に反映する)
FB適用の第1ステップは、前述の基本部・応用部のFB設計のように、機能の階層構造をそのままFBの階層構造に反映してみることである。できあがったS/Wの構造が機能、工程またはH/Wの階層構造に沿っている場合には、そのS/Wは非常に自然で理解しやすくなる(可読性の向上)。また、システムの一部変更があった場合、通常は特定の機能、工程またはH/Wの単位で変更されることが多く、S/Wの変更個所を容易に特定でき、その変更の範囲を比較的局所化できるようになる(保守性の向上)。
ただし、必ずしも機能の階層構造がそのままFBの階層構造にいつも合致する訳ではない。機能の階層構造を起点に柔軟さをもってFBの階層構造にアレンジすることも必要である。また、分析が不十分で、機能構造がきちんと把握できていない場合または矛盾を含んでいる場合には、その機能構造をFBの階層構造に反映することが困難になる場合がある。このような場合、もう一度分析に立ち返るとよい。3.3.5
その他の設計ポイント
ここでは、機能の構造からFBを用いたS/W構造を設計する場合のポイントを列挙する。
a)共通要素を部品化する
3.2の分析の過程において機能またはH/Wの共通部分を洗い出し、それを一つのFBとしてまとめた。共通要素を一つのFBにまとめることで、製作規模(プログラムステップ数)及び単体テスト工数を削減することが見込まれる。共通要素の洗い出しには、次の方法がある。
・システムの複数個所で用いられている機器がある場合、これらを制御する処理は共通要素とすることができないか検討する。
・システムの複数個所で同じプロセスを行う工程(またはサブ工程)がある場合、これらを制御する処理は共通要素とすることができないか検討する。
・同じ計算式またはアルゴリズムを何度も繰り返し演算する処理は共通要素とすることができないか検討する。
さらに、上記の共通要素となる処理を抽出する場合、処理が全く同じではない部分があっても、それを外部から与えるパラメータによって処理内部で場合分け(機能スイッチによる処理分岐)するなどの工夫によって、共通化できる場合もある。ただし、過度の共通化のためにパラメータによる機能スイッチを増やしていくことは、そのFB内部の処理記述が複雑になり保守性を下げてしまうことがある。
また、実際にFBを用いる場合に機能スイッチの組合せが複雑になってしまうこともあり、注意が必要である。このような場合には、無理に処理を共通化せず、個別の目的を果たすFBとして分けたほうがよい。
b)メーカ提供のFBを活用する
PLCメーカから提供されるライブラリは、品質が保証されているとともに、動作仕様、使用条件、入出力の定義などが明確に定義されているため、比較的容易にFBを用い、メリットを実感することができる。メーカ提供ライブラリにどのようなものがあるかを熟知することが、無駄な設計を抑えることにもつながる。
c)汎用部品をライブラリ登録する
プログラム開発の効率を向上させるために、既存資産を活用することも有効な手段の一つである。そこで、今後のS/W流用を計画し、汎用性が高い部分を集約した独立部品(FB化)とし、社内の設計者間で標準的に用いることができるS/W部品集(ライブラリ)として用意することで、将来のS/W生産性向上に寄与することができる。これは、前項の共通要素のS/W部品化において、次の観点で候補を挙げるとよい。
・システムの構成機器が将来的にも標準的に採用されるものである場合は、これらを制御する処理部分(駆動、通信、状態検出など)を標準FBとしてライブラリに含めることを検討する。
・はん(汎)用性が高い計算アルゴリズムである場合は、これを独立した標準FBとしてライブラリに含めることを検討する。
ライブラリとしてほかの設計者にも標準的に使用可能なS/W部品(以下、“標準FB"という)とする場合には、次の点に注意するとよい。
標準FBを設計する場合の注意点は以下の通りである。
・一つの標準FBには、多くの目的の機能をもたせすぎない(標準FBの機能が明確に保たれているほうが用いやすい)。
・標準FBの入力変数・出力変数は、使用時の組み込みを考慮し、名称、データ形及び、並び(類似機能のFBと並びを合わせるなど)を分かりやすくする。また、入力変数・出力変数の数が多くなりすぎないように注意する。
・標準FBでは、内部の処理でグローバル変数を参照しないようにする(外部変数は用いない)。
・使用時の誤解を防ぐために、その標準FBの機能及び入力変数・出力変数・外部変数を文書(プログラム上のコメントを活用してもよい)によって明記する(3.6のドキュメンテーションを参照)。
・標準FBの変更履歴を残す。
・欲張って多くの標準FBをつくらない(用いられていない標準FBばかり増えてしまうことを避ける)。
・標準FBの一覧(目録)を利用者の目の届くところに用意する。
これらの注意事項は、いずれも使用の側面で配慮の必要があるものである。ライブラリとして提供される標準FBは、利用されてこそ価値があるものだからである。
(つづく)
【日本電機工業会PLC技術専門委員会プログラミング・ツール分科会の「PLCアプリケーションの開発効率化指針」から転載】