(57)【特許請求の範囲】
【請求項１】
過程工場監視および／または制御装置であって、
少なくとも１つの入力を受け取って少なくとも１つの出力を生成するように構成された制御器と、
少なくとも１つのモジュールを記憶するためのコンピュータ可読媒体であって、前記制御器が、過程内の監視および／または制御機能性を達成するために前記モジュールを実行するようにさらに構成される、コンピュータ可読媒体と、
前記コンピュータ可読媒体に記憶されたモジュール登録ルーチンであって、実行されると、システム実時間に動的に、ユーザ入力に従って、監視のためにモジュールを登録および登録抹消する、モジュール登録ルーチンと、
前記コンピュータ可読媒体上に記憶されたプログラムフロー制御監視ルーチンであって、前記プログラムフロー制御監視ルーチンは、実行されると、前記モジュールに関連する任意のエラーを検出して、任意のエラーが検出されたときのタイムスタンプ表示を提供し、前記プログラムフロー制御監視ルーチンは、前記モジュールに組み込まれ、前記プログラムフロー制御監視ルーチンは、監視のために登録するモジュールの数に比例して拡張可能であり、これに対応してメモリ配分が増減され、前記プログラムフロー制御監視ルーチンが、モジュールエラーが検出されると実行されて、工場固有の警告および／または処置を開始するインターフェースルーチンを含む、プログラムフロー制御監視ルーチンと、を備える、過程工場監視および／または制御装置。
【請求項２】
前記プログラムフロー制御監視ルーチンが、プログラム実行の監視、実時間オペレーティングシステムのスレッドの監視、プログラム順序の監視、故障検出時の処置、それらの部分的組み合わせ、またはそれらの組み合わせのうちの少なくとも１つに関連するエラー検出を提供する、請求項１に記載の過程工場監視および／または制御装置。
【請求項３】
前記プログラムフロー制御監視ルーチンが、モジュール非依存設計、実時間オペレーティングシステム非依存設計、マイクロプロセッサ非依存設計、モジュール式設計、再利用可能な設計、それらの部分的組み合わせ、またはそれらの組み合わせのうちの少なくとも１つを組み込む、請求項１または２に記載の過程工場監視および／または制御装置。
【請求項４】
前記プログラムフロー制御監視ルーチンが、割り込みおよび／またはポーリングに基づくエラー検出を提供する、請求項１〜３のいずれかに記載の過程工場監視および／または制御装置。
【請求項５】
前記プログラムフロー制御監視ルーチンが、監視される各モジュールにつき３２バイト未満のメモリを必要とし、共有のメモリに記憶されて単一のプロセッサにより実行される複数のモジュールを監視するように構成される、請求項１〜４のいずれかに記載の過程工場監視および／または制御装置。
【請求項６】
前記プログラムフロー制御監視ルーチンが、Ｃ＋＋で書かれ、故障時の処置のためにＣラッパーを利用する、請求項１〜５のいずれかに記載の過程工場監視および／または制御装置。
【請求項７】
過程工場の監視および／または制御に関連付けられるモジュール内でエラーを検出する方法であって、
少なくとも１つの入力を受け取って少なくとも１つの出力を生成するように構成された制御器を提供することと、
コンピュータ可読媒体を提供することと、
前記コンピュータ可読媒体上に、少なくとも１つのモジュール、モジュール登録ルーチン、および少なくとも１つのプログラムフロー制御監視ルーチンを記憶し、前記プログラムフロー制御監視ルーチンは、前記モジュールに組み込まれることと、
前記少なくとも１つのモジュールのプログラムフロー制御を監視するユーザの要望を示すユーザ入力に従って、監視のために、少なくとも１つのモジュールを動的に登録する前記モジュール登録ルーチンを実行し、前記プログラムフロー制御監視ルーチンが、監視のために登録するモジュールの数に比例して拡張可能であり、これに対応してメモリ配分が増減されることと、
過程内の監視および／または制御機能性を達成するために前記モジュールを実行することと、
前記少なくとも１つの登録されたモジュールの実行に関連する任意のエラーを検出するために前記プログラムフロー制御監視ルーチンを実行することと、
モジュールエラーが検出されたときのタイムスタンプ表示を提供することと、
任意のモジュールエラーが検出されたときにインターフェースルーチンを実行して、工場固有の警告および／または処置を開始することと、を含む、方法。
【請求項８】
前記プログラムフロー制御監視ルーチンが、プログラム実行の監視、実時間オペレーティングシステムのスレッドの監視、プログラム順序の監視、故障検出時の処置、それらの部分的組み合わせ、またはそれらの組み合わせのうちの少なくとも１つに関連するエラー検出を提供する、請求項７に記載の過程工場の監視および／または制御に関連付けられるモジュール内でエラーを検出する方法。
【請求項９】
前記プログラムフロー制御監視ルーチンが、モジュール非依存設計、実時間オペレーティングシステム非依存設計、マイクロプロセッサ非依存設計、モジュール式設計、再利用可能な設計、それらの部分的組み合わせ、またはそれらの組み合わせのうちの少なくとも１つを組み込む、請求項７〜８のいずれかに記載の過程工場の監視および／または制御に関連付けられるモジュール内でエラーを検出する方法。
【請求項１０】
前記プログラムフロー制御監視ルーチンが、割り込みおよび／またはポーリングに基づくエラー検出を提供する、請求項７〜９のいずれかに記載の過程工場の監視および／または制御に関連付けられるモジュール内でエラーを検出する方法。
【請求項１１】
前記プログラムフロー制御監視ルーチンが、監視される各モジュールにつき３２バイト未満のメモリを必要とし、共有のメモリに記憶されて単一のプロセッサにより実行される複数のモジュールを監視するように構成される、請求項７〜１０のいずれかに記載の過程工場の監視および／または制御に関連付けられるモジュール内でエラーを検出する方法。
【請求項１２】
前記プログラムフロー制御監視ルーチンが、Ｃ＋＋で書かれ、故障時の処置のためにＣラッパーを利用する、請求項７〜１１のいずれかに記載の過程工場の監視および／または制御に関連付けられるモジュール内でエラーを検出する方法。
【請求項１３】
過程工場の監視および／または制御において使用するためのコンピュータ可読媒体であって、
前記コンピュータ可読媒体上に記憶された過程の監視および／または制御に関連付けられた複数のモジュールと、
前記コンピュータ可読媒体に記憶されたモジュール登録ルーチンであって、実行されると、ユーザ入力に従って、少なくとも１つのモジュールを監視から登録抹消する、モジュール登録ルーチンと、
前記コンピュータ可読媒体上に記憶された少なくとも１つのプログラムフロー制御監視ルーチンであって、実行されると、監視されるために登録された少なくとも１つのモジュールに関連する任意のエラーを検出し、前記エラーが検出されたときのタイムスタンプ表示を提供し、前記プログラムフロー制御監視ルーチンは、前記複数のモジュールの１つに組み込まれ、前記プログラムフロー制御監視ルーチンは、監視のために登録するモジュールの数に比例して拡張可能であり、これに対応してメモリ配分が増減される、プログラムフロー制御監視ルーチンと、
任意のモジュールエラーが検出されたときに実行されて、工場固有の警告および／または処置を開始する、少なくとも１つのインターフェースルーチンと、を備える、コンピュータ可読媒体。
【請求項１４】
前記プログラムフロー制御監視ルーチンが、プログラム実行の監視、実時間オペレーティングシステムのスレッドの監視、プログラム順序の監視、故障検出時の処置、それらの部分的組み合わせ、またはそれらの組み合わせのうちの少なくとも１つに関連するエラー検出を提供する、請求項１３に記載の過程工場の監視および／または制御において使用するためのコンピュータ可読媒体。
【請求項１５】
前記プログラムフロー制御監視ルーチンが、モジュール非依存設計、実時間オペレーティングシステム非依存設計、マイクロプロセッサ非依存設計、モジュール式設計、再利用可能な設計、それらの部分的組み合わせ、またはそれらの組み合わせのうちの少なくとも１つを組み込む、請求項１３〜１４のいずれかに記載の過程工場の監視および／または制御において使用するためのコンピュータ可読媒体。
【請求項１６】
前記プログラムフロー制御監視ルーチンが、割り込みおよび／またはポーリングに基づくエラー検出を提供する、請求項１３〜１５のいずれかに記載の過程工場の監視および／または制御において使用するためのコンピュータ可読媒体。
【請求項１７】
前記プログラムフロー制御監視ルーチンが、監視される各モジュールにつき３２バイト未満のメモリを必要とし、共有のメモリに記憶されて単一のプロセッサにより実行される複数のモジュールを監視するように構成される、請求項１３〜１６のいずれかに記載の過程工場の監視および／または制御において使用するためのコンピュータ可読媒体。
【請求項１８】
前記プログラムフロー制御監視ルーチンが、Ｃ＋＋で書かれ、故障時の処置のためにＣラッパーを利用する、請求項１３〜１７のいずれかに記載の過程工場の監視および／または制御において使用するためのコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、現代の過程工場および製造工場を通じて利用される多様なデバイスにより実行されるソフトウエアアプリケーション（本明細書で「モジュール」と称される）を監視するためのプログラムフロー制御に関する。より具体的には、本開示は、モジュールエラーを検出し適切な工場固有の処置を講じるために、多様なモジュールと共に使用するためのプログラムフロー制御に関する。
【背景技術】
【０００２】
現代における処理工場および製造工場は、工場操業のほぼ全面でコンピュータシステムおよびマイクロプロセッサに基づく、監視および制御システムを利用する。個別のコンピュータシステムおよびマイクロプロセッサに基づく監視および制御システムは、多様なモジュールを記憶し、それが実行されると、工場の多様な様態の操業を達成する。任意の所与のモジュールの固有の機能は、個別の工場野外装置の監視および制御から運転および保守活動を促進すること、経営報告のためのデータ提供にまで及ぶ。
【０００３】
マイクロプロセッサに基づく制御ルーチンを組み込む野外装置は、一般的なものとなった。多くの場合、任意の所与の野外装置プロセッサが、連続していくつかのモジュールを実行するであろう。個別の野外装置はしばしば埋め込みシステムを組み込む。任意の所与の埋め込みシステムは、固有の工場監視および／または制御機能性と関連付けられる多様なモジュールを記憶し実行する。例えば、所与のデジタルデバイス制御器は、タンク内でレベルを制御するように構成される場合がある。制御器は、タンクレベル感知器からの入力および弁制御器への出力を有する場合がある。デジタルデバイス制御器は、タンク内レベルが上または下に、個別に、所望のレベルに変動するにつれて、弁を開けるまたは閉じるために出力を制御する、モジュール、または複数のモジュールを実行する。任意の所与の野外装置は、感知器（すなわちレベル感知器）かそれともアクチュエータ（すなわち弁制御器）か、それ自体がモジュール、または複数のモジュールを実行するように設計されたデジタルデバイスで、そのモジュールは、例えば、アナログデータをデジタルデータに変換する。プロセッサとＩ／Ｏポートとの間の通信ルーチンからアナログ値をデジタル表現の値に変換するためのルーチンにまで及ぶ機能に対するモジュールは、しばしば多くの場合、任意の所与の野外装置プロセッサにより実行される。
【０００４】
工場操業および保守コンピュータシステムは、しばしば大量のモジュールも同様に実行する。運転および保守ルーチンが、対応するプロセッサ上で実行されるとき、工場操業員は、個別の工場デバイスと相互作用する能力を提供される。加えて、工場経営コンピュータシステムは、しばしば多様なモジュールを実行する。経営コンピュータシステムルーチンが、対応するプロセッサ上で実行されるとき、工場操業員は、操業データおよび関連する報告を提供される。
【０００５】
既知のプログラムフロー制御監視ルーチンは、全ての関連付けられるデータを記憶するために増設の最大２メガバイトまでのメモリを必要とする。必要とされるメモリサイズは、プログラムフロー制御モジュール自体のサイズに加えて、組み込まれたファームウエア一式のサイズおよびプログラムフロー制御により監視される必要が所与のモジュールの数量に左右される。プログラムフロー制御監視ルーチンは、モジュール固有のものである。しばしば多くの場合、メモリは組み込まれたシステムに制限される。一般的に、プログラムフロー制御モジュールは、対応するものが実行を開始する前に、監視される必要があるモジュールの数量を決定する。一旦監視されるモジュールの数量が判定されると、対応メモリ配分は設定される。よって、少量のメモリを要求しマルチモジュールを監視する、プログラムフロー制御監視ルーチンを提供することが望ましくなった。
【発明の概要】
【課題を解決するための手段】
【０００６】
一実施形態においては、過程工場監視および／または制御装置は、少なくとも１つの入力を受け取り少なくとも１つの出力を生成するように構成された制御器を含む。過程工場監視および／または制御装置はまた、少なくとも１つのモジュールを記憶するためのコンピュータ可読媒体を含む。過程工場監視および／または制御装置はまた、コンピュータ可読媒体に記憶されたモジュール登録ルーチンを含む。本開示のプログラムフロー制御監視ルーチンは、実時間中に監視されるモジュールの数量を動的に判定し、それに従い対応メモリ配分は、増加または減少される。制御器は、過程内で、監視および／または制御機能性を達成するためにモジュールを実行するようにさらに構成される。モジュール登録ルーチンは、実行されると、システム実時間に動的に、ユーザ入力に従って、監視のためにモジュールを登録および登録抹消する。過程工場監視および／または制御装置はまた、コンピュータ可読媒体上に記憶されるプログラムフロー制御監視ルーチンを含み、プログラムフロー制御監視ルーチンは、実行されると、モジュールに対して任意のエラーを検出し任意のエラーが検出されたときのタイムスタンプ表示を提供する。プログラムフロー制御監視ルーチンは、モジュールに組み込まれ、プログラムフロー制御監視ルーチンは、監視のために登録するモジュールの数に比例して拡張可能であり、これに対応してメモリ配分が増減される。プログラムフロー制御監視ルーチンは、モジュールエラーが検出されるときに実行され工場固有の警告および／または処置を開始する、インターフェースルーチンを含む。
【０００７】
別の実施形態においては、過程工場の監視および／または制御に関連付けられるモジュールでエラーを検出する方法は、少なくとも１つの入力を受け取り少なくとも１つの出力を生成するように構成された制御器を提供することを含む。方法はまた、コンピュータ可読媒体を提供することおよび少なくとも１つのモジュールとモジュール登録ルーチンと少なくとも１つのプログラムフロー制御監視ルーチンとをコンピュータ可読媒体上に記憶し、プログラムフロー制御監視ルーチンは、モジュールに組み込まれることと、を含む。方法はまた、少なくとも１つのモジュールのプログラムフロー制御を監視するユーザの要望を示すユーザ入力に従って、監視のために、少なくとも１つのモジュールを動的に登録するモジュール登録ルーチンを実行し、プログラムフロー制御監視ルーチンが、監視のために登録するモジュールの数に比例して拡張可能であり、これに対応してメモリ配分が増減されることを含む。方法はまた、過程内で、監視および／または制御機能性を達成するためにモジュールを実行することおよび少なくとも１つの登録されたモジュールの実行に対して任意のエラーを検出するためにプログラムフロー制御監視ルーチンを実行することと、を含む。方法はまた、モジュールエラーが検出されたときのタイムスタンプ表示を提供することおよび工場固有の警告および／または処置を開始するために任意のモジュールエラーが検出されたときインターフェースルーチンを実行することと、を含む。
【０００８】
また別の実施形態においては、過程工場の監視および／または制御での使用のためのコンピュータ可読媒体は、コンピュータ可読媒体上に記憶された過程の監視および／または制御に関連付けられる複数のモジュールと、コンピュータ可読媒体上に記憶されたモジュール登録ルーチンと、コンピュータ可読媒体上に記憶された少なくとも１つのプログラムフロー制御監視ルーチンと、を含む。モジュール登録ルーチンは、実行されると、ユーザ入力に従って、少なくとも１つのモジュールを監視から登録抹消する。プログラムフロー制御監視ルーチンは、監視されるために登録された少なくとも１つのモジュールに対して任意のエラーを検出するように実行され、エラーが検出されたときのタイムスタンプ表示を提供する。プログラムフロー制御監視ルーチンは、前記複数のモジュールの１つに組み込まれ、プログラムフロー制御監視ルーチンは、監視のために登録するモジュールの数に比例して拡張可能であり、これに対応してメモリ配分が増減される。コンピュータ可読媒体はまた、任意のモジュールエラーが検出されたとき工場固有の警告および／または処置を開始するために実行される少なくとも１つのインターフェースルーチンを記憶する。
【図面の簡単な説明】
【０００９】
【図１】工場監督制御およびデータ取得システムのブロック図を図示する。
【図２】過程工場内でのエリアの配置図を図示する。
【図３Ａ】多様なデジタル野外装置出力を図示する。
【図３Ｂ】多様なデジタル野外装置出力を図示する。
【図３Ｃ】多様なデジタル野外装置出力を図示する。
【図３Ｄ】多様なデジタル野外装置出力を図示する。
【図４Ａ】多様なデジタル野外装置入力を図示する。
【図４Ｂ】多様なデジタル野外装置入力を図示する。
【図４Ｃ】多様なデジタル野外装置入力を図示する。
【図５】デジタル野外装置のブロック図を図示する。
【図６】モニタマネジャーのためのＯＭＤを図示する。
【図７】所与のクラス変数に関連付けられる機能を説明する表１を含む。
【図８】安全機能／スレッド／監視のための機能性を登録するための順序を図示する。
【図９】安全機能／監視からの除去のためのスレッドを登録抹消するための順序を図示する。
【図１０】安全機能／スレッド／機能性のための順序を図示する。
【図１１】プログラムフロー制御監視および初期化および使用を説明する順序図を図示する。
【図１２】所与の事象のための時間を構築するためのフロー図を図示する。
【図１３】所与のタイマー周期が範囲内かどうか判定するためのフロー図を図示する。
【図１４】プログラムフロー制御監視ルーチンが所望されるように動作しているか監視するための実行順序を図示する。
【図１５】変動するモジュール実行順序を適合するためのルーチンを図示する。
【図１６】変動するモジュール実行順序を適合するためのルーチンを図示する。
【発明を実施するための形態】
【００１０】
一実施形態においては、工場デバイスの組み込まれたシステムは、多様な工場固有の機能性に対応する複数のモジュールを記憶し実行する。プログラムフロー制御監視ルーチンは、工場デバイスのメモリ上に記憶され、対応するプロセッサ上で実行されると、工場デバイスは、工場デバイスにより実行され、動的に（例えば実時間に関連する）登録されたモジュールで、任意のエラーを検出する。プログラムフロー制御監視ルーチンは、モジュール登録ルーチン、モジュール監視ルーチン、およびインターフェースルーチンを含む。モジュール登録ルーチンは、システム実時間に動的に、ユーザ入力に従って、監視のためにのモジュールを登録および登録抹消する。モジュール監視ルーチンは、任意のエラーのための登録されたモジュールを監視し、任意のエラーが検出されたときインターフェースルーチンの実行を開始する。インターフェースルーチンは、工場固有の警告および／または処置を提供する。それにより、共有のモジュール監視ルーチンは、全ての登録したモジュールを監視するために使用される。記載のようにモジュール式設計を有するプログラムフロー制御監視ルーチンは、モジュールからモジュールへ再利用可能にするように、モジュール監視ルーチンを有効にする。それにより、プログラムフロー制御監視ルーチンは、監視のために登録されたモジュールの数量に比例して拡張可能である。これは具体的に限度があるメモリを有しかつ膨大な量のモジュールを記憶し実行する、埋め込まれたシステムで有用である。
【００１１】
プログラムフロー制御監視ルーチンは、実行されると、次の、モジュール実行の監視、モジュール実行異常時の処置のためのインターフェース、モジュール順序の監視、モジュール順序実行の監視、モジュール順序実行異常時の処置のためのインターフェース、バッファオーバーフローの監視、バッファオーバーフロー時の処置のためのインターフェース、実時間オペレーティングシステム（ＲＴＯＳ）のスレッドの監視、スレッドが必要とされる時間周期で流れているかどうかの検出、スレッドがロックしているかの検出、スレッドの流れが早すぎるまたは遅すぎるかの検出、モジュールが所望されるように周期的に流れているかの検出、スレッド異常検出時の処置のためのインターフェース、任意のそれらの部分的組み合わせ、またはそれらの組み合わせ、の機能のうちのいずれか１つを実施する。
【００１２】
モジュール監視ルーチンは、所与の工場システム内で実行される全てのモジュールに共有である場合がある。工場システムの故障処置は、プログラムフロー制御管理ルーチンが実現される所与のシステムに左右されるため、インターフェースルーチンを含むプログラムフロー監視ルーチンは、任意のモジュールエラーの検出次第で共有の工場処置を容易にする。
【００１３】
図１を今、参照すると、工場ＳＣＡＤＡシステム１００は、１つ以上の通信ネットワークにより多数の制御および／または監視デバイスと相互接続する、多数の事業および他のコンピュータシステムを含むことが示される。理解されるように、工場ＳＣＡＤＡシステム１００は、工場全体を通じて位置される均等に膨大な数量のデバイスにより実行中の大量のモジュールを有する。
【００１４】
工場ＳＣＡＤＡシステム１００は、１つ以上の過程制御システム１１２および１１４を含む。過程制御システム１１２は、ＰＲＯＶＯＸまたはＲＳ３システムまたはオペレータインターフェース１１２Ａを含む任意の他のＤＣＳのような、従来の過程制御システム１１２である場合があり、オペレータインターフェース１１２Ａは制御器１１２Ｂおよび入力／出力（Ｉ／Ｏ）カード１１２Ｃに結合し、これは、同様に制御器１１２Ｂおよび入力／出力カード１１２Ｃは、アナログおよびＨｉｇｈｗａｙ  Ａｄｄｒｅｓｓａｂｌｅ  Ｒｅｍｏｔｅ  Ｔｒａｎｓｍｉｔｔｅｒ（ＨＡＲＴ）野外装置１１５のような多様な野外装置に結合する。過程制御システム１１４は、分散型の過程制御システムである場合があり、イーサネットバスのようなバスを介して１つ以上の分散型制御器１１４Ｂに結合する１つ以上のオペレータインターフェース１１４Ａを含む。制御器１１４Ｂは、例えば、Ｔｅｘａｓ、ＡｕｓｔｉｎのＦｉｓｈｅｒ−Ｒｏｓｅｍｏｕｎｔ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．により販売されるＤｅｌｔａＶ（商標）制御器、または任意の他の所望のタイプの制御器であってもよい。制御器１１４Ｂは、Ｉ／Ｏデバイスを介して、例えばＨＡＲＴまたはＦｉｅｌｄｂｕｓ  ｆｉｅｌｄ（ＦＦ）デバイスまたは、例えば、ＰＲＯＦＩＢＵＳ（登録商標）、ＷＯＲＬＤＦＩＰ（登録商標）、Ｄｅｖｉｃｅ−Ｎｅｔ（登録商標）、ＡＳ−Ｉｎｔｅｒｆａｃｅ、およびＣＡＮ  ｐｒｏｔｏｃｏｌｓのうちのいずれかを使用する、他のスマートまたは非スマート野外装置のうちの１つ以上の野外装置１１６に連結される。プログラムフロー制御監視ルーチンは、ＨＡＲＴ、ｆｉｅｌｄｂｕｓ、ｆｏｕｎｄａｔｉｏｎ  ｆｉｅｌｄｂｕｓ、ＰＲＯＦＩＢＵＳ（登録商標）、およびＭｏｄｂｕｓと互換性がある。既知のように、野外装置１１６は、他のデバイス情報と同様に過程変数に対して制御器１１４Ｂにアナログまたはデジタル情報を提供する。オペレータインターフェース１１４Ａは、モジュールを記憶して実行し、例えば、制御最適化ツール、診断エキスパート、ニューラルネットワーク、チューナ等を含む過程の運転を制御するための過程制御オペレータが利用できるようにする場合がある。過程制御システム１１２、１１４内部で任意の所与のデバイスは、対応するメモリ上に記憶され少なくとも周期的に対応するプロセッサにより実行される多数のモジュールを含む場合がある。プログラム制御監視ルーチンは、任意の所与の過程制御システムモジュール内に組み込まれる場合がある。
【００１５】
コンピュータ２１８のような資産経営ソリューション（ＡＭＳ）モジュールまたは任意の他の監視デバイスを実行する保守システムおよび通信モジュールは、過程制御システム１１２および１１４または保守および監視活動を実施するそこの個別の野外装置に連結される場合がある。例えば、保守コンピュータ１１８は、任意の所望の通信回線またはネットワーク（ワイヤレスまたは携帯式デバイスネットワークを含む）を介して、通信および、一部事例では、野外装置１１５上で再構成または他の保守活動を実施するために、制御器１１２Ｂおよび／または野外装置１１５に連結される場合がある。類似して、ＡＭＳモジュールのような保守モジュールは、野外装置１１６の運転ステータスに対するデータ収集を含む、保守および監視活動を実施するために、インストールされ、分散型過程制御システム１１４に関連付けられる１つ以上のユーザインターフェース１１４Ａにより実行される場合がある。任意の所与の保守システムは、プログラムフロー制御監視ルーチンを組み込む場合がある。
【００１６】
工場ＳＣＡＤＡシステム１００はまた、一部の常設または一時的通信回線（バスのような、ワイヤレス通信システムまたはリーディングをして次いで削除されるように装具１２０に連結される携帯式  デバイス）を介して保守コンピュータ１２２に連結するタービン、モータ等のような、多様な回転装具１２０を含む。保守コンピュータ１２２は、既知の監視および診断モジュール１２３を記憶し実行する場合があり、例えば、Ｔｅｎｎ，ＫｎｏｘｖｉｌｌｅのＣＳＩ  Ｓｙｓｔｅｍｓにより販売されるＲＢＭｗａｒｅ（商標）または、診断し、監視および回転装具１２０の運転状況を最適化するために使用される任意の他の既知のモジュール、である。保守操業員は通常、回転装具１２０の実施を保守し監督視し、回転装具１２０との問題を検出し、回転装具１２０が、いつ修理または交換されなければならないかまたは修理または交換されなければならない場合かを検出するために、モジュール１２３を使用する。任意の回転装具モジュールはプログラムフロー制御監視ルーチンを組み込む場合がある。
【００１７】
工場ＳＣＡＤＡシステム１００はまた、例えば、バスを介して、電力生成および分散装具１２５の運転を流して監督視する別のコンピュータ１２６に連結する工場に関連付けられる電力生成および分散装具１２５を有する電力生成および分散システム１２４を含む。コンピュータ１２６は、例えば、電力生成および分散装具１２５を制御し保守するために、Ｌｉｅｂｅｒｔ  ａｎｄ  ＡＳＣＯまたは他の会社により提供されるもののような、既知の電力制御および診断モジュール１２７を実行する場合がある。複数のモジュールは、電力生成および分散装具上で記憶され実行される。任意の電力発電および分散装具モジュールは、プログラムフロー制御監視ルーチンを組み込む場合がある。
【００１８】
過程工場１００内で、過程制御機能１１２および１１４、コンピュータ１１８、１１４Ａ、１２２と１２６および事業機能で実現されたような保守機能を含む、多様な機能的システムと関連付けられるコンピュータまたはインターフェースに通信可能に連結させる、コンピュータシステム１３０が提供される。具体的に、コンピュータシステム１３０は、全てバス１３２を介して、通信可能に制御システムに関連付けられる従来の過程制御システム１１２および保守インターフェース１１８に連結され、その制御システムは、分散型過程制御システム１１４の過程制御および／または保守インターフェース１１４Ａに連結され、その分散型過程制御システム１１４は、回転装具保守コンピュータ１２２および電力生成および分散コンピュータ１２６に連結される。バス１３２は、通信を提供するために任意の所望のまたは適当なローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）プロトコルを使用する場合がある。図１に例解されるように、コンピュータ１３０はまた、そのまたは異なるネットワークバス１３２を介して事業システムコンピュータおよび保守計画コンピュータ１３５および１３６に連結され、事業システムコンピュータおよび保守計画コンピュータ１３５および１３６は、例えば、統合業務ソフト（ＥＲＰ）モジュール、資材所要量計画（ＭＲＰ）モジュール、コンピュータ保守経営システム（ＣＭＭＳ）、会計、生産および顧客注文システムモジュール、保守計画システムモジュールまたは部材、供給品および原資材注文モジュール、生産スケジューリングモジュール等の任意の他の所望の事業モジュールを実行する場合がある。コンピュータ１３０はまた、例えば、バス１３２を介して、工場全体に広がるＬＡＮ１３７、企業ＷＡＮ１３８、同様に、遠隔監視または遠隔地からの工場内での通信を可能にするコンピュータシステム１４０に連結する。任意のコンピュータシステムモジュールはプログラムフロー監視ルーチンを組み込む場合がある。
【００１９】
多くのモジュールを記憶し実行する過程工場内で多様なデバイスのさらなる実施例を提供すると、図２は、ステータス情報をユーザに報告してユーザが迅速に工場内での運転ステータスおよびシステムの実施を分析できるようにグラフィカルユーザインターフェース（ＧＵＩ）により提供される場合がある例示的なグラフィカル表示２００を図示する。図２に図示されるように、所与の過程は、電気モータ、コンプレッサ、サーモスタット、弁、レギュレータ、ギアボックス、およびデバイスに関連する他の固有の過程を含む場合がある。所与の工場システムは、一対のタンク２１０、２４０、複数の温度送信機２２１、２５１、圧力送信機２２２、２５２、フロー送信機２２３、２５３、等、およびパイプを有するとして図示され、図２に示されるようにそれら全てが相互接続される場合がある。任意の所与のデジタルデバイス制御器モジュールは、本開示に一致してプログラムフロー制御監視ルーチンを組み込む場合がある。
【００２０】
任意の所与の工場システムは、水の吹きかけ、遠隔ポンプ、軌道車の移動、回転リアクタ、水源／熱交換器、温度プロファイリング／タンクレベル、総生産ヘッダー、燃焼エンジン排出、ベンゼンタンク、タービンユニット、ポンプ振動、回転石灰釜、閉塞フィルター検出、安全シャワー、水源保守、モバイル／一時性ネットワーク、精製管理、ロールベアリング、温タンク、河川水（環境に関する）スチームクラッカー、処理済水使用量、フィルター状態、パイプラインシステム、水源圧力、遠隔貯蔵タンク、冷却ボックス、圧縮機空気、モバイルオペレータ、圧縮機、蒸気ライン、蒸気分散ライン、回転アルミナ釜、電力産業アプリケーション、貯蔵タンク監視システム、パイプライン、手動弁、燃料供給システム、一時性設備、室壁、遠隔タンク、樹脂（バッチ）温度、窒素酸化物排出、モバイル水源テストシステム、フィルター閉塞／気化ガス流、熱伝導、制御ネットワークブリッジ、空気圧縮機、コークスユニット、総石油生産フロー、高炉炉床、気体平衡／水源、および炉温度制御に関連する野外装置を含む場合があることは理解されるべきである。所与の監視および／または制御デバイスに関連する任意のモジュールは、本開示に従ってプログラムフロー制御監視ルーチンを組み込む場合がある。またさらに多様なモジュールを記憶し実行する、工場に関連するデバイスの実施例として、図３Ａ〜３Ｄは工場の制御に関連付けられる野外装置を図示する。これらのデバイスは、図示されるようなデジタルデバイス制御器からの出力により作動されるように構築される場合があり、図５を参照して記載された。
【００２１】
図３Ａは、線形弁３０５ａ、デジタル弁制御器３１０ａ、および線形弁アクチュエータ３１５ａを含む野外装置３００ａを図示する。図３Ｂは、回転弁３０５ｂ、デジタル弁制御器３１０ｂ、および回転弁アクチュエータ３１５ｂを含む野外装置３００ｂを図示する。図３Ｃは、ポンプ３０５ｃ、デジタルモータ／ポンプ制御器３１０ｃ、およびモータ（原動機）３１５ｃを含む野外装置３００ｃを図示する。図３Ｄは、第１の原動機３０５ｄ、デジタル原動機制御器（図示せず）、および第２の原動機３１５ｄを含む野外装置３００ｄを図示する。任意の所与の野外装置が、工場の実時間操業に関連する過程制御アクチュエータとして構成される場合があることは理解されるべきである。任意の所与の工場制御デバイスモジュールは、プログラムフロー監視ルーチンを組み込む場合がある。
【００２２】
その上、多様なモジュールを記憶し実行するデバイスに関連する過程工場のよりさらなる実施例として図４Ａ〜４Ｃは、工場の監視に関連付けられる野外装置を図示する。これらのデバイスは、図５を参照して図示および記載されるようにデジタルデバイス制御器の入力により監視されるように構成される場合がある。図４Ａは、温度感知器４０５ａおよびデジタル温度モニタ／制御器４１０ａを含む野外装置４００ａを図示する。図４Ｂは、レベル感知器４０５ａおよびデジタルレベルモニタ／制御器４１０ｂを含む野外装置４００ｂを図示する。図４Ｃは、水素イオン指数感知器４０５ｃおよびデジタル水素イオン指数モニタ／制御器４１０ｃを含む野外装置４００ｃを図示する。任意の所与の野外装置が、工場の実時間操業に関連するモニタ／制御器として構成される場合があることは理解されるべきである。任意の所与の工場制御デバイスモジュールは、プログラムフロー監視ルーチンを組み込む場合がある。
【００２３】
今図５を参照して、デジタル制御器５００が、示される。デジタルデバイス制御器は、野外装置に関連付けられる制御および／監視に関連付けられるたくさんのモジュールを記憶し実行する。デジタルデバイス制御器５００は、プロセッサ５１０、離散入力５１５、アナログ入力５２０、離散出力５２５、アナログ出力５３０、メモリ５３５、近位通信モジュール５４０、遠位通信デバイス５５５、および遠位通信アンテナ５６０を含む。近位通信モジュール５４０は、デジタル回路５４５、および近位通信アンテナ５５０を含む。しばしば多くの場合、プロセッサ５１０、メモリ５３５、および埋め込みシステムのための多量の関連したモジュールである。本明細書に記載のプログラムフロー制御監視ルーチンは、具体的に低メモリかつ高性能が所望される埋め込みモジュールに好適である。図３Ａ〜３Ｄおよび図４Ａ〜４Ｃに図示されるように任意の所与の野外装置は、プログラムフロー制御監視ルーチンにより監視されるモジュールを実行する埋め込みシステムを含むデジタルデバイス制御器を組み込む場合があることを理解されるべきである。これまでに分かることではあろうが、多様な工場デバイス内で記憶され実行される大量の個別モジュールが存在する。
【００２４】
プログラムフロー制御監視ルーチンは、タイムスタンプ付きのモジュールエラー検出を有する、実時間モジュール実行監視ルーチンとして設計される場合がある。Ｃ＋＋で書かれるとき、プログラムフロー制御監視ルーチンは、任意のモジュールに適用可能で具体的にＣ＋＋で書かれたモジュールと併用するのが有益である。Ｃ＋＋で書かれるとき、Ｃラッパーは、故障時の処置に利用可能である。よって、より少ない付加メモリしか必要なく、監視のモジュール毎に３２バイトである。対応するプログラムフロー制御監視ルーチンは、タイムスタンプを提供するために外部メモリを使用する必要がない（すなわち内部メモリを使用する）。
【００２５】
Ｃ＋＋で書かれるプログラムフロー制御監視ルーチンは、モジュール自体内で実現される場合がある。所与のモジュールは、外部デバイス／インターフェースに基づくよりもむしろモジュールエラーを検出し処置を講じるように設計される場合がある。対応するプログラムフロー制御監視ルーチンは、オブジェクト指向プログラミング（ＯＯＰ）概念で設計される場合がある。よって、監視メカニズムの修正は、Ｍｏｎｉｔｏｒクラスの属性を付加／削除することにより成し遂げられる。少なくとも１つの実施形態においては、プログラムフロー制御監視ルーチンは、ＯＯＰで設計され、それにより、異なるモジュール実行の監視のためにＮ回数再利用可能である。他のアプリケーションと通信するインターフェースルーチンに、実行異常時の即時応答が提供される。
【００２６】
図６を参照して、プログラムフロー制御監視ルーチン６００は、モジュール監視マネジャールーチン６０５およびモジュール監視マネジャールーチン６０５により監視されるモジュールのリスト６１０を含む。図６に示されるように、ルーチンＣＭｏｎｉｔｏｒＭｇｒは、監視されるモジュールのリストを作成するためにルーチンＣＣｉｒＤＬｉｎｋＬｉｓｔクラスを使用する。ルーチンＣＭｏｎｉｔｏｒＭｇｒは、実時間オペレーティングシステム（ＲＴＯＳ）機能性に非依存である。ルーチンＣＭｏｎｉｔｏｒＭｇｒは、監視されたスレッドについての情報を取得するために任意のＲＴＯＳ  ＡＰＩを使用しない。両ルーチンＣＭｏｎｉｔｏｒＭｇｒ６０５およびルーチンＣＭｏｎｉｔｏｒ＿ＴｉｍｅＭｉｎＭａｘ６１５は、ルーチンＣＳｉｓＴｉｍｅクラス６２０を、プログラムフロー制御監視ルーチンの各実行でタイムスタンプを更新するために使用する。更新されたタイムスタンプは、検出されたモジュールエラーに関連付けられる。
【００２７】
さらに図６を参照し、かつ図７で要素７００として図示される追加の表１を参照すると、ルーチンＣＭｏｎｉｔｏｒＭｇｒ６０５、７２０およびルーチンＣＭｏｎｉｔｏｒ＿ＴｉｍｅＭｉｎＭａｘクラス６１５、７１５により提供される機能性７０５の記載７１０が提供される。ルーチンＣＭｏｎｉｔｏｒ＿ＴｉｍｅＭｉｎＭａｘが、ルーチンＴｒｉｇｇｅｒＴｉｍｅ（）７１９を通じて第１の時間更新を受け取るまで、変数ｍ＿ｂＥｎａｂｌｅｄＭｏｎｉｔｏｒｉｎｇ６２５は、ＦＡＬＳＥに留まる。第１の時間更新を受け取った後、変数ｍ＿ｕｌＬａｓｔＴｒｉｇｇｅｒＴｉｍｅが更新され、変数ｍ＿ｂＥｎａｂｌｅＭｏｎｉｔｏｒｉｎｇには、ルーチンＣＭｏｎｉｔｏｒＭｇｒが閾値時間限度のためにチェックする、ＴＲＵＥと書かれる。ルーチンＣＭｏｎｉｔｏｒＭｇｒからチェックが呼び出される際モニタリングが使用可能になっていない場合は、次いで、閾値時間のチェックは実施されない。ルーチンＣＭｏｎｉｔｏｒＭｇｒは、周期的時間で、割り込みレベルまたはスレッドレベル上で流れるように構成される場合がある。ルーチンＣＭｏｎｉｔｏｒＭｇｒにより監視されるように意図される任意のモジュールは、Ｒｅｇｉｓｔｅｒ（）７２１を呼び出す。これは、最終的に、リスト変数ｍ＿ＬＩＳＴ＿ｍｏｎｉｔｏｒ７２５を二重リンクされたルーチンＣＭｏｎｉｔｏｒＭｇｒ循環に、モジュールを付加する。本開示のプログラムフロー制御監視ルーチンは、実時間中に監視されるモジュールの数を動的に判定し、対応するメモリ割り当てが適宜増加または減少される。
【００２８】
任意の所与のモジュール、スレッドまたは機能は、監視のために一度のみ登録される。二度目のモジュール登録が試みられる場合は、次いでルーチンＣＭｏｎｉｔｏｒＭｇｒがそれを登録せず、受け取られた要求に対し否定応答を返す。図８および９は、個別に、ルーチンＣＭｏｎｉｔｏｒＭｇｒからの監視の登録８００および登録抹消９００の順序を図示する。モジュール、スレッドまたは機能をルーチンＣＭｏｎｉｔｏｒＭｇｒから削除するために、ルーチンＣＭｏｎｉｔｏｒ＿ＴｉｍｅＭｉｎＭａｘオブジェクトはルーチンＵｎｒｅｇｉｓｔｅｒ（）７２２を呼び出す。モジュール、スレッド、または機能が、監視から受け取られた登録抹消のためのルーチンＣＭｏｎｉｔｏｒＭｇｒで見出される場合、ルーチンＣＭｏｎｉｔｏｒＭｇｒは、モジュールをリストから削除し肯定応答を返す。登録抹消中モジュール、スレッド、または機能エントリが見出されない場合、ルーチンＣＭｏｎｉｔｏｒＭｇｒは、受け取った要求に対し否定応答を送信する。
【００２９】
図１０は、ルーチンＣｍｏｎｉｔｏｒＭｇｒクラス１００５の実行について詳細を有する順序図１０００を図示する。プログラムフロー制御監視ルーチン、ＣｍｏｎｉｔｏｒＭｇｒは周期的なスケジュール上で流れる。このＣｍｏｎｉｔｏｒＭｇｒの実行間隔は、マイクロ秒から数秒間でシステムに基づき変動しシステム実時間で構成される場合がある。ルーチンＣＭｏｎｉｔｏｒＭｇｒクラスの下で登録される各モジュールの周期的チェックを実行するためにポーリングおよび／または割り込み中断を使用する。中断事象１０１０を受け取ると、ルーチンＣＭｏｎｉｔｏｒＭｇｒは、登録されたスレッド、機能性、またはモジュールの監視を開始する。
【００３０】
プログラムフロー制御監視ルーチン実行１１００は、図１１に図示される。「Ｌｉｍｉｔ」変数が構成される最大限度を超える場合または構成される最小限度未満に属する場合、インターフェースルーチン、ＤｅｖＥｘｃｅｃｕｔｉｏｎＦａｉｌｕｒｅ（）が呼び出され、工場固有の警告および／または処置が講じられる。警告および／または処置は、デバイス固有の処置を伝えるためにデバイスデベロッパにより再書き込みされる場合がある。最小限度のチェックが、必要とされないとき、ｍ＿ｕｌＭｉｎＴｉｍｅＬｉｍｉｔは、低限度はチェックされないことを特定するためにＮＯ＿ＬＩＭＩＴ＿ＣＨＥＣＫに設定される。類似して、これは、最大時間限度のためにも適用可能である。
【００３１】
図１２は、ＴｒｉｇｇｅｒＴｉｍｅ（）クラスが監視されている所与のモジュールから呼び出しを受けるとき、実行されるルーチンを大要するフロー図１２００を図示する。フロー図１２００に図示されたタイマーに基づく割り込みは、ＣＭｏｎｉｔｏｒＭｇｒ自体が正確に実行されているかどうか認証するために使用される場合がある。ルーチンはスタートブロック１２０５で開始される。プログラムフロー制御監視が利用可能か否かの判定はブロック１２１０で実施される。可能な場合、現在時間のスナップショットはブロック１２１５で撮られ、ブロック１２１５で経過時間を算出することがそれに続く。ルーチンが再設定されて以来第１の実行であるかどうか、判定はブロック１２２５で行われる。真である場合、直近のトリガー時間からの最小時間値がブロック１２３０で取得される。偽の場合、ブロック１２３５で再設定された後初めての実行に関連する変数にＴＲＵＥの指示が指定される。直近のトリガー時間からの最大時間値の算出は、端部ブロック１２５０でルーチンが終端となる前にブロック１２４０で実施され、ブロック１２４５の現在時間に等しい直近のトリガー時間の設定がそれに続く。ＣＭｏｎｉｔｏｒＭｇｒ自体が実行していない場合、安全機能は、対応する工場過程を安全状態に設定するために呼び出される。
【００３２】
図１３は、ルーチンが実行されると、プログラムフロー制御監視ルーチンにより監視されたモジュールが、所望の限度内で関連付けられる実時間を有するかどうかを判定するルーチンを列挙するフロー図１３００を図示する。ルーチンはスタートボックス１３０５で開始される。ブロック１３１０で変数「ＷｉｔｈｉｎＬｉｍｉｔ  Ｓｔａｔｕｓ」がＴＲＵＥに等しいかどうかに関してチェックが行われ、ブロック１３１５で監視が利用可能であるか見るためのチェックがそれに続く。監視が利用可能でない場合、ルーチンはブロック１３５５に進む。監視が利用可能である場合、ブロック１３２０で変数「ＭｉｎＴｉｍｅＬｉｍｉｔ」が変数「ＮＯ＿ＴＩＭＥ＿ＬＩＭＩＴ」に等しいかどうかに関してチェックが行われる。肯定である場合、ブロック１３２５で「ＭｉｎＴｉｍｅ」変数が「ＭｉｎＴｉｍｅＬｉｍｉｔ」変数未満か判定するためのテストが実施される。「ＭａｘＴｉｍｅＬｉｍｉｔ」変数が「ＮＯ＿ＴＩＭＥ＿ＬＩＭＩＴ」変数に等しいか判断するためにブロック１３３０でチェックが行われる。ブロック１３３５で現在時間のスナップショットが撮られ「ＧｅｔＥｌａｐｓｅｄＴｉｍｅ」変数が計算され、ブロック１３４０で「Ｍａｘｔｉｍｅ」変数の取得がそれに続く。「ＭａｘＴｉｍｅ」変数が「ＭａｘＴｉｍｅＬｉｍｉｔ」変数以上かどうかに関してブロック１３４５で判定が行われる。真の場合、「ＷｉｔｈｉｎＬｉｍｉｔ」変数ステータスがＦＡＬＳＥに等しいかそうでないかを見るために判定が行われる。監視されているモジュールのステータスはブロック１３５５で返される。対応するモジュール実時間が受け入れられる範囲以外のとき、モジュールエラーステータスが返される。
【００３３】
図１４の順序図１４００に図示されるように、インターフェースルーチン、「ＤｅｖＥｘｅｃｕｔｉｏｎＦａｉｌｕｒｅ（）」は、機能性の監視のためのモジュール故障時に実行され、スレッドまたはＣＭｏｎｉｔｏｒＭｇｒ自体はデフォルト設定で警告を生成する。このデフォルト設定処置は、固有の数個の装具の電源を落とす、のような、
工場固有の処置を有するためにデバイスデベロッパにより再書き込みされる場合がある。
【００３４】
しばしば多くの場合、予め定められた順序で実行される安全機能を有することが望ましい。安全順序実行は、図１５および１６を参照して記載され順序図１５００およびフロー図１６００に図示されるように監視される。変数「ＳＳｅｑｕｅｎｃｅＥｘｅｃｕｔｉｏｎ」１５０５、ブール「ｂＥｘｅｃｕｔｉｏｎＳｔａｒｔ」、「Ｕｓｈｏｒｔ」、および「ｕｓｈＳｅｑＮｕｍ」１５１０およびボイド「ＳｅｑｕｅｎｃｅＦａｉｌｅｄ（）」１５１５は、図１５に図示されるように操作される。安全順序ルーチンは、スタートブロック１６０５で開始される。変数「ｂＥｘｅｃｕｔｉｏｎＳｔａｒｔ」は、ブロック１６１０でＴＲＵＥに設定され、変数「ｕｓｈＳｅｑＮｕｍ」は、ブロック１６１５でゼロに設定される。ブロック１６２０で「ｕｓｈＳｅｑＮｕｍ」変数は、以前に実行された順序に等しいか判定するためにチェックされる。真の場合、「ｕｓｈＳｅｑＮｕｍ」変数は、ブロック１６２５で「ＥｘｅｃｕｔｅｄＳｅｑｕｅｎｃｅ」に等しく設定される。偽の場合、「ＳｅｑｕｅｎｃｅＥｘｅｃｕｔｉｏｎＦａｉｌｕｒｅ（）」変数は、ブロック１６３０で設定される。全ての順序が完了されたかどうかに関してブロック１６３５でテストが行われる。順序が完了された場合、ルーチンはブロック１６２０に戻る。順序が完了されてない場合、「ｂＥｘｅｃｕｔｉｏｎＳｔａｒｔ」変数は、端部ブロック１６４５でルーチンが終端される前にブロック１６４０でＦＡＬＳＥに等しく設定される。
【００３５】
本開示を一読するにあたり、当業者は、プログラムフロー制御監視ルーチンのためのなお一層のさらなる代わりの構造的および機能的設計が理解できるであろう。ゆえに、固有の実施形態およびアプリケーションが例解され記載される一方で、本開示の実施形態が、本明細書に開示の正確な解釈および構成要素に限られないことを理解されたい。添付の請求項で画定される原理および特許請求の範囲を超えないで、当業者にとって明らかであろう多様な修正、変更および変形が、本明細書に開示される、準備、運転およびアルゴリズムの詳細、方法および装置で行われてもよい。
【図１】
0006567826.tif 000002
【図２】
0006567826.tif 000003
【図３Ａ】
0006567826.tif 000004
【図３Ｂ】
0006567826.tif 000005
【図３Ｃ】
0006567826.tif 000006
【図３Ｄ】
0006567826.tif 000007
【図４Ａ】
0006567826.tif 000008
【図４Ｂ】
0006567826.tif 000009
【図４Ｃ】
0006567826.tif 000010
【図５】
0006567826.tif 000011
【図６】
0006567826.tif 000012
【図７】
0006567826.tif 000013
【図８】
0006567826.tif 000014
【図９】
0006567826.tif 000015
【図１０】
0006567826.tif 000016
【図１１】
0006567826.tif 000017
【図１２】
0006567826.tif 000018
【図１３】
0006567826.tif 000019
【図１４】
0006567826.tif 000020
【図１５】
0006567826.tif 000021
【図１６】
0006567826.tif 000022