80013byte

自律分散型セル制御用プログラミング環境

電気通信大学 総合情報処理センター 高田昌之


要旨

FMS等で将来の実現が期待される自律分散制御を行なう上では、 その要素たる複数の制御システムがデータを共有し、 外部で発生した事象を統一的に扱える事が望ましい。 更にシステムの拡張性等を考えると、プログラムがモジュール構造を持つ事が望まれる。 本稿ではこの目的の為に設計した ``glue logic'' と、 これを前提とした汎用プログラミング言語 およびこのシステム上で用いられるべき プログラミング・パラダイムについて述べる。


1 はじめに

多品種少量生産を実現する生産システムとしてFMSがあるが、この制御を可能 な限り人間の手を煩わす事無く効率良く行なう為には、各セルの制御装置を自律 分散型システムに組織して、実時間で動的な制御を行なわせる事が重要であると 考えられる。

この自律分散能を実現する為には、各セル制御装置の情報の共有・交換をはじめ、 外部事象の発生の検出、協調して動作するプロセスの生成や消滅の同期などを支 援する処理環境と、その環境を生産技術者が容易に利用できる為のプログラミン グ言語処理系/実行時環境との整備が必要である。 また、現在の生産制御プログラミング言語は機器に依存する部分が大きく、特定 のセルでしか実行できない事が多い。このため、仮想化された機器に対応できる 汎用の言語が熱望される。

本稿ではこれらの現状にたって、自律分散能の基盤システムとする事を目的とし た glue logic、その利用を容易にする汎用プログラミング言語とそのプログラ ミング・パラダイムについて考察する。

2 プログラム言語と環境の役割

2.1 プログラム実行環境の役割

セルで行なわれる動作をプログラムで記述する場合に、その実行環境に要求され るものを考察すると、以下のような事柄が挙げられる。

2.2 プログラム言語の果たすべき役割

実行環境が提供する諸機能を、生産制御プログラマが容易に利用できるように支 援するのが生産制御用言語の役割である。

この言語処理系では、並列処理・プロセス間同期・例外条件監視/処理などの、 セル制御に典型的なプログラミングの中から、制御フローの部分のみを文法で規 定し、構文の形で明示的に指定できるようにした。

その一方で、将来どのような生産機器が使われるようになるかは全く不明である との前提に立ち、機器に対する動作制御はすべて機器に対するメッセージ送付の 形式を持たせることとした。 これにより言語処理系の定義は機器に関する情報から全く独立なものとなり、一 層の機器独立性を持たせることができる。

3 セル制御プログラミング・パラダイム

3.1 セル制御プログラミングの特徴

セルの内部では、通常複数の動作が並行して行なわれる。 これをセルに着目した一つのプログラムで記述しようとすると、同時に幾つもの 動作の記述を行なう必要が発生し、プログラムが非常に繁雑なものとなってしま う。

この時、動作の記述をワークに着目して記述すると、同時に一つのワークに対し て行なわれる動作は多くの場合ただ一つであり、プログラミングを容易にする事 ができる。 その反面、セル内に複数のワークがある場合には、それらに関連する動作を実行 するプロセスを複数生成して、同期を取りながら処理を進める必要がある。さら に、共有される複数のデータの整合性を維持しながら更新していく必要がある。

また多品種少量生産を行なう場合には、前後のワーク間に余り依存関係が無い場 合が多い為、ワークに注目して作成されたプログラムに高いモジュール性を与え る事ができる。これにより既存ソフトウェアの再利用を促し、生産品目の追加・ 変更時のプログラム修正量を抑える効果を期待することもできる。

3.2 プログラミング・パラダイムの提案

各モジュールが高い独立性を持ち、他のモジュールを仮想化して扱うことができ るようになると、非常に見通しの良い生産制御プログラムを作成できるようにな る。これを前提として次のようなプログラミング・パラダイムを提案する。

  1. 生産制御プログラムを小さなモジュールの集合として構築し、これらを柔軟に結 合する糊のような基盤システム(これを ``glue logic'' と呼ぶ)を整備する。 この glue logic を全セル制御システムに組み込み、データ共有・事象発生監視・ プロセスの仮想化などを行なわせて、分散処理環境を構築する。
  2. 各モジュール内部の実現もオブジェクトに対するメッセージ送付によって実現す る。オブジェクトは仮想的なワークや機器を表現し、メッセージによって物理的 な機器に依存しない動作指令を記述する。

ここに挙げた ``glue logic'' は少なくとも以下の機能を持つものとする。

この様なパラダイムの採用により、以下のような効果が期待できる。

4 glue logic の機能

以下に現在構築中の glue logic の機能を示す。
プロセス間通信機能
OSや通信方式に依存しないデータ通信機能を提供する。また、セル内/セル間 での差異を吸収する。
名前による動的構造データ管理
構造を持ったデータをシンボリックな名称のみで参照し、管理できる。
データ共有・同期参照・条件付き更新
複数のプロセスが利用するデータが共通の glue logic で管理されていれば、そ れらのデータは共有される。相互に関連するデータ群を整合性を保ったまま更新 できたり、排他制御を行なう為に特定の名前のデータが特定の値である時にのみ データを更新できることが必要である。
データ変更通知
glue logic が管理するデータが変更された場合、その事実を指定されたプロセ スに通知する。これによりポーリングの必要が無くなる。
依存データ更新
glue logic が管理するデータ間に依存関係が定義されていた場合、基となるデー タに変更があった場合には自動的にそのデータに依存するデータを再計算する。 データ変更通知と組み合わせると、データ間に特定の関係が成立した時に通知を 行なうことができる。

5 おわりに

本講演では現在構築中のセル制御用プログラミング環境の概要を説明した。 現在コーディング中のこのシステムを使うことにより、 高機能な生産制御プログラムをより少ない工数で実現できるようになるものと期待できる。

References

80013byte

 [M.T. HomePage]  [written & copyrighted by Masayuki Takata]