(57)【要約】【課題】  複数のハードウェア部品に対して複数の制御方法を実行する装置に対して、ハードウェア部品の劣化した場合にも出来る限りハードウェア部品を交換せず、少ない計算量、又は、高い処理性能を維持しながら制御の信頼性を確保することである。【解決手段】  制御部は、制御対象部の制御に用いる制御ロジックを、制御対象部の状態に基づいて一時的に設定し、制御ロジックにより制御対象部を制御して得られる第一の値と、制御ロジックを用いて制御対象部を制御した場合に得られると想定される第二の値とを比較し、第一の値と前記第二の値の比較結果に応じて、制御対象部の制御に用いる制御ロジックを決定する。【選択図】図１
2011113326.tif 000002
【特許請求の範囲】
【請求項１】
制御対象部を制御する制御部を備える情報処理装置における制御方法であって、
前記制御部は、
前記制御対象部の制御に用いる制御ロジックを、前記制御対象部の状態に基づいて一時的に設定し、
前記制御ロジックにより前記制御対象部を制御して得られる第一の値と、前記制御ロジックを用いて前記制御対象部を制御した場合に得られると想定される第二の値とを比較し、
前記第一の値と前記第二の値の比較結果に応じて、前記制御対象部の制御に用いる制御ロジックを決定することを特徴とする制御方法。
【請求項２】
請求項１記載の制御方法において、
前記制御部は、
前記第一の値と前記第二の値の差分が所定の閾値よりも大きい場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックから他の制御ロジックに変更し、
前記第一の値と前記第二の値の差分が所定の閾値よりも小さい場合には、前記一時的に設定された制御ロジックを、前記制御対象部の制御に用いる制御ロジックとして決定することを特徴とする制御方法。
【請求項３】
請求項１または２に記載の制御方法において、
前記制御部は、
前記第一の値と前記第二の値の差分から判断される前記制御対象部の劣化状態が想定よりも低い場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックからより精度の低い他の制御ロジックに変更し、
前記第一の値と前記第二の値の差分から判断される前記制御対象部の劣化状態が想定よりも高い場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックからより精度の高い他の制御ロジックに変更することを特徴とする制御方法。
【請求項４】
請求項３に記載の制御方法において、
前記制御部は、
前記第一の値と前記第二の値の差分から判断される前記制御対象部の劣化状態が想定よりも高い場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックよりも、前記制御対象部に対する計測回数が多い他の制御ロジックに変更することを特徴とする制御方法。
【請求項５】
請求項１から４の何れかに記載の制御方法において、
前記制御部は、前記制御対象部の制御に一時的に用いる制御ロジックを、前記制御対象部の動作回数または動作期間に基づいて設定することを特徴とする制御方法。
【請求項６】
制御対象部を制御する制御部を備える情報処理装置における制御方法であって、
前記制御部は、
前記制御対象部の制御に用いる制御ロジックを、前記制御対象部の状態に基づいて一時的に設定し、
前記一時的に設定された制御ロジックにより前記制御対象部を制御した結果、前記制御対象部の劣化状態が想定よりも高いと判断されたときは、前記制御対象部の制御に用いる制御ロジックを、より精度の高い制御ロジックに変更することを特徴とする制御方法。
【請求項７】
請求項６記載の制御方法において、
前記制御部は、
前記一時的に設定された制御ロジックにより前記制御対象部を制御した結果、前記制御対象部の劣化状態が想定よりも低いと判断されたときは、前記制御対象部の制御に用いる制御ロジックを、より精度の低い制御ロジックに変更することを特徴とする制御方法。
【請求項８】
制御対象部を制御する制御部を備える情報処理装置であって、
前記制御部は、
前記制御対象部の制御に用いる制御ロジックを、前記制御対象部の状態に基づいて一時的に設定し、
前記制御ロジックにより前記制御対象部を制御して得られる第一の値と、前記制御ロジックを用いて前記制御対象部を制御した場合に得られると想定される第二の値とを比較し、
前記第一の値と前記第二の値の比較結果に応じて、前記制御対象部の制御に用いる制御ロジックを決定することを特徴とする情報処理装置。
【請求項９】
請求項８記載の情報処理装置において、
前記制御部は、
前記第一の値と前記第二の値の差分が所定の閾値よりも大きい場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックから他の制御ロジックに変更し、
前記第一の値と前記第二の値の差分が所定の閾値よりも小さい場合には、前記一時的に設定された制御ロジックを、前記制御対象部の制御に用いる制御ロジックとして決定することを特徴とする情報処理装置。
【請求項１０】
請求項８または９に記載の情報処理装置において、
前記制御部は、
前記第一の値と前記第二の値の差分から判断される前記制御対象部の劣化状態が想定よりも低い場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックからより精度の低い他の制御ロジックに変更し、
前記第一の値と前記第二の値の差分から判断される前記制御対象部の劣化状態が想定よりも高い場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックからより精度の高い他の制御ロジックに変更することを特徴とする情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置において、
前記制御部は、
前記第一の値と前記第二の値の差分から判断される前記制御対象部の劣化状態が想定よりも高い場合には、前記制御対象部の制御に用いる制御ロジックを、前記一時的に設定された制御ロジックよりも、前記制御対象部に対する計測回数が多い他の制御ロジックに変更することを特徴とする情報処理装置。
【請求項１２】
請求項８から１１の何れかに記載の情報処理装置において、
前記制御部は、前記制御対象部の制御に一時的に用いる制御ロジックを、前記制御対象部の動作回数または動作期間に基づいて設定することを特徴とする情報処理装置。
【請求項１３】
制御対象部を制御する制御部を備える情報処理装置における情報処理装置であって、
前記制御部は、
前記制御対象部の制御に用いる制御ロジックを、前記制御対象部の状態に基づいて一時的に設定し、
前記一時的に設定された制御ロジックにより前記制御対象部を制御した結果、前記制御対象部の劣化状態が想定よりも高いと判断されたときは、前記制御対象部の制御に用いる制御ロジックを、より精度の高い制御ロジックに変更することを特徴とする情報処理装置。
【請求項１４】
請求項１３記載の情報処理装置において、
前記制御部は、
前記一時的に設定された制御ロジックにより前記制御対象部を制御した結果、前記制御対象部の劣化状態が想定よりも低いと判断されたときは、前記制御対象部の制御に用いる制御ロジックを、より精度の低い制御ロジックに変更することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理装置の制御方法に関するものである。
【背景技術】
【０００２】
装置を構成するハードウェア部品に劣化や故障が生じた場合、装置を動作させるためには、装置を停止させハードウェア部品を交換することが通常の対処方法である。一方で、ハードウェア部品交換のため装置を停止することにより、装置の稼働率は低下し、装置の生産性、例えば生産装置であれば製品の生産量が低下することとなる。また、交通、医療などの社会インフラに関わる装置など装置の種類によっては故障が発生しても容易には停止出来ず、何らかの方法で信頼性を確保して稼働を継続することが求められる場合もある。従って、装置を構成するハードウェア部品に劣化や故障が有る場合にも稼働率を低下させずに装置を動かすことが重要である。
【０００３】
装置を構成するハードウェア部品に劣化や故障が発生した場合にも稼働を続行可能とする制御方法の1つとして処理や部品の多重化が組み込まれることがある。例えば、特許文献1においては、同一入力データを複数の実行主体で実行し、外部へ出力する結果を複数の実行結果から選択する。実行結果を選択する際は、多数決による高信頼化を拡張し、各実行主体(クラスタ)に信頼度を持たせ、多数決で一致した場合は信頼度を上昇させ、最も信頼度が高い実行主体を選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平7-105035号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、信頼性の確保を重視し、リアルタイム性の確保は考慮されておらず、信頼性とリアルタイム性を両立させることは困難である。
【０００６】
また、処理の実行主体がＰＣクラスタなどの比較的処理性能の高い計算機を想定しているため、センサやモータを制御する制御用コントローラなどの比較的処理能力の低い計算機ではリソースがそれだけ信頼性の確保のために消費され、信頼性とリアルタイム性を両立させることが一層困難となる。
【０００７】
本発明は、上記課題に鑑み、信頼性とリアルタイム性を両立可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記従来の課題を解決するため、本発明は、以下の構成を備える。即ち、制御対象部を制御する制御部を備える情報処理装置における制御方法であって、  制御部は、制御対象部の制御に用いる制御ロジックを、制御対象部の状態に基づいて一時的に設定し、制御ロジックにより制御対象部を制御して得られる第一の値と、制御ロジックを用いて制御対象部を制御した場合に得られると想定される第二の値とを比較し、第一の値と前記第二の値の比較結果に応じて、制御対象部の制御に用いる制御ロジックを決定する。
【０００９】
また、制御対象部を制御する制御部を備える情報処理装置における制御方法であって、制御部は、制御対象部の制御に用いる制御ロジックを、制御対象部の状態に基づいて一時的に設定し、一時的に設定された制御ロジックにより制御対象部を制御した結果、制御対象部の劣化状態が想定よりも高いと判断されたときは、制御対象部の制御に用いる制御ロジックを、より精度の高い制御ロジックに変更する。
【発明の効果】
【００１０】
本発明によれば、装置の処理性能と信頼性を両立出来る。
【図面の簡単な説明】
【００１１】
【図１】本発明における処理選択方法の動作イメージを示す概念図である。
【図２】第1の実施例における装置のハードウェア構成例を示す図である。
【図３】第1の実施例における装置及び保守用端末内のソフトウェア構成図である。
【図４】第1の実施例における処理選択方法のフローチャートである。
【図５】図4に示す精度評価方法の詳細を示すフローチャートである。
【図６】図4に示す精度評価方法の詳細を示す別のフローチャートである。
【図７】図4に示す処理選択方法を示すフローチャートである。
【図８】第1の実施例における動作履歴の例を示すテーブルである。
【図９】第1の実施例における制御ロジックライブラリ一覧の例を示すテーブルである。
【図１０】第1の実施例における制御ロジックライブラリの処理内容例を示すフローチャートである。
【図１１】第1の実施例におけるハードウェア部品の状態値と理想値の一覧を示すテーブルである。
【図１２】第1の実施例における状態値算出の例を示す概念図である。
【図１３】第1の実施例における精度評価方法の例を示す概念図である。
【発明を実施するための形態】
【００１２】
まず、実施形態の概要について説明する。
【００１３】
本実施形態においては、事前に処理性能の指標が定義された複数の制御方法を保持し、また、装置の稼働中は各ハードウェア部品の劣化を評価することで、劣化の大きなハードウェア部品に対しては前記複数の制御方法の中から処理性能が低く信頼性の高い制御方法を選択し、又、劣化の小さなハードウェア部品に対しては処理性能が高い制御方法を選択することで、信頼性と処理性能の両立が可能な制御方法を提供する。
【００１４】
例えば、精度が低くノイズの多いセンサを使って計測する場合、複数回計測を実施しその平均値や中央値を計測結果とする方法がある。これらの方法は、単一のセンサで、1回の計測結果を用いる場合と比較して高精度な計測が可能であるが、長い処理時間を必要とする。そこで、センサが新品時には1回の計測結果のみを用いる方法を使用し、センサが劣化し精度が低下した場合に複数回計測する方法へ変更する。
【００１５】
以上の手法により、現在の劣化度合に合わせて処理性能を調整し制御の信頼性を確保することが可能となる。
【実施例１】
【００１６】
以下、実施例１を図面を参照しながら説明する。なお、この実施例によって本発明が限定されるものではない。
【００１７】
図1は本実施例の代表図であり、本図を用いて本実施例における処理選択方法の動作を示す。  図2は本実施例におけるハードウェア構成の代表的な例であり、図3は図2のハードウェア構成の上で実行される本実施例におけるソフトウェア構成の代表的な例である。図4は処理選択方法の全体フローを示す図であり、図5及び図6は処理選択方法における精度算出の処理フローの例を示す図であり、図7は処理選択方法における制御ロジック選択方法の処理フローの例を示す図である。図8は処理選択方法において利用される動作履歴情報の例を示す表であり、図9、及び、図10は処理選択方法において利用される制御ロジックライブラリ及びライブラリ情報の例を示す図である。図11は精度算出において出力される精度算出結果の例を示す図である。
【００１８】
まず、図１を説明する。図１において、符号101は対象となる装置、符号103は装置に含まれるハードウェア部品とソフトウェアとのインターフェースとなるＩＯ、符号104はハードウェア部品103の状態値を算出する制御ロジックライブラリA、符号105は制御ロジックライブラリA104の出力となる状態値、符号102は状態値105に対応する理想的なＩＯ値、符号106は動作履歴として記録されたIO値、符号108は制御ロジックライブラリBである。
【００１９】
ハードウェア部品103に対応する制御ロジックライブラリA104の内容は、センサ値から直接得られる計測結果を制御ソフトウェアにおいて利用する抽象的な状態値105へ変換する処理であり、処理方法毎に性能指標値が付加されている。前記処理方法としては、例えば、温度センサから得られる連続値の計測値(例：温度値)から制御ソフトウェアで利用容易な離散的な状態値（例：“温度が低い”“温度が高い”）へ変換する処理である。前記性能指標値としては、例えば、対応する処理方法を1回実行する際に要する処理時間を利用可能で、性能指標値が高ければその処理方法は高い処理性能を実現できるがその結果の精度が低いことを示す。
【００２０】
ハードウェア部品の劣化の評価は装置稼働中継続的に動作履歴としてIO値106を収集、分析することで現在の劣化度合、精度を予測する。ここで、IO値106とは、ハードウェア部品103のセンサ値を示し、且つ、制御ソフトウェアから参照可能なデータであれば良く、例えば、センサ値を制御ソフトウェアから参照可能な主記憶やレジスタなどのメモリ空間に写像したデータ（メモリマップドIO）でも良いし、ＲＳ−２３２Ｃなどの通信手段によって制御ソフトウェアへ伝えられたデータ（ポートマップドＩＯ）でも良い。予測方法は、例えば、ハードウェア部品の劣化度合と動作回数や動作期間との関係が事前に明確であれば、前記動作回数又は動作期間から現在の精度を予測する。また、図1に示す評価方法の例としては、制御ソフトウェアで利用する前記状態値105に対応するハードウェア部品の理想的なＩＯ値102を定義しておき、前記動作履歴106で収集したＩＯ値とのズレを算出し(ズレ算出107)、精度、劣化度合を予測する。前記理想的なＩＯ値102とは、制御ソフトウェア内でハードウェア部品103がある状態値であると判断した場合に想定されるハードウェア部品103のＩＯ値であり、例えば、ノイズが無い場合のセンサやアクチュエータのＩＯ値である。仮に、全くノイズが無ければ、前記動作履歴106で収集したＩＯ値と状態値に対応する理想的なＩＯ値102は一致しており、劣化度合が低いと評価できる。逆に、ＩＯ値に多くのノイズを含み、前記制御ロジックライブラリA104においてノイズを考慮していない制御方法であった場合、前記動作履歴106で収集したＩＯ値と状態値に対応する理想的なＩＯ値102はズレが大きく、劣化度合が高いと評価され、制御方法の変更が必要であることが分かる。
【００２１】
前記評価結果を基に、劣化度合が事前に想定した基準値よりも大きいハードウェア部品103に対しては事前に用意された別の制御ロジックライブラリ108の中から性能指標の低い制御方法を選択し劣化度合が前記基準値よりも小さいハードウェア部品に対しては前記性能指標の高い制御方法を選択する。
【００２２】
以上をまとめると次のようになる。即ち、記制御対象部の制御に用いる制御ロジックを、制御対象部の状態に基づいて一時的に設定し、制御ロジックにより制御対象部を制御して得られる第一の値と、制御ロジックを用いて制御対象部を制御した場合に得られると想定される第二の値とを比較し、第一の値と第二の値の比較結果に応じて、制御対象部の制御に用いる制御ロジックを決定する。また、第一の値と第二の値の差分が所定の閾値よりも大きい場合には、制御対象部の制御に用いる制御ロジックを、一時的に設定された制御ロジックから他の制御ロジックに変更し、第一の値と第二の値の差分が所定の閾値よりも小さい場合には、一時的に設定された制御ロジックを、制御対象部の制御に用いる制御ロジックとして決定する。
【００２３】
次に、図2、及び、図3を参照しながら本実施例における処理選択方法、及び、処理選択方法を有する装置の代表的な構成例を説明する。
【００２４】
図2は本実施例におけるハードウェア構成であり、処理選択方法を利用する装置と処理選択方法による制御ソフトウェアの保守作業を行う保守用端末から構成される。前記装置は、製造ライン等に据え付けられる産業向け装置であり、本実施例において制御ソフトウェアの変更などの保守作業を実施する保守対象となる装置のシステム構成の一例である。
【００２５】
装置101は、制御対象となるハードウェア部品群202と、制御ソフトウェアを格納する2次記憶218と、前記制御ソフトウェアを実行するCPU215、前記制御ソフトウェアで利用する主記憶216、前記制御ソフトウェアから前記ハードウェア部品群202を操作・計測するためのレジスタ（IO）217と、装置101を利用者が操作するための入出力装置225と、保守端末201を含む外部のシステムと通信するための通信装置219を含む。
【００２６】
ハードウェア部品群202は、撮像対象208を装置101へ取り込むロボットアーム206と、装置の内外を隔てるゲート211と、撮像対象208を撮像するための位置を調整するステージ212と、撮像を実施する撮像器213と、撮像するための気圧を調整するポンプ227、エアバルブ229、ゲート211から構成され、制御ソフトウェアとはレジスタ（IO）217と通して操作や計測を受け付ける。ハードウェア部品群202は、前記制御ソフトウェアによって制御され、製造ラインで作られた製品などの撮像対象208の表面や内部の画像を撮像することで製造の成否を検査する。
【００２７】
2次記憶218は前記制御ソフトウェアを格納する媒体であれば良く、HDDなどディスク装置、フラッシュメモリなどの不揮発メモリなど何れでも良い。また、テープ、ＣＤ（登録商標）などの外部記憶媒体でも良い。入出力装置224は利用者が装置101を操作可能であれば良く、キーボード、タッチパネル、プリンター、ディスプレイなど何れでも良い。
【００２８】
保守端末201は、本実施例における処理選択方法を実行するための計算機であり、本実施例に係る処理選択方法を実行するソフトウェアを実行するCPU220、前記ソフトウェアで利用する主記憶221、及び、外部記憶226、前記ソフトウェアを格納する2次記憶222、保守端末201を操作するための入出力装置224、及び、装置101を始めとする外部のシステムと通信するための通信装置223から構成される。
【００２９】
2次記憶222、外部記憶226は前記ソフトウェア及びデータを格納する媒体であれば良く、HDDなどディスク装置、フラッシュメモリなどの不揮発メモリなど何れでも良い。また、テープ、ＣＤ（登録商標）などの外部記憶媒体でも良い。また、本実施例では、2次記憶222と外部記憶226は別の記憶装置としたが、単一の装置としても良い。
【００３０】
また、本実施例においては、保守端末201は、装置101と別の計算機としたが、同一のCPU上にて前記制御ソフトウェアと処理選択方法に関するソフトウェアを実行しても良い。また、その際に通信装置219及び通信装置223を持たない構成としても良い。
【００３１】
図3は本実施例におけるソフトウェア構成を示す図であり、装置101におけるCPU215、及び、保守用端末201におけるCPU220において実行されるソフトウェアの構成の例である。
【００３２】
装置101では、上位制御ロジック304と制御ロジックライブラリ302によりIO値307を操作し、また、制御ロジックライブラリ303によりIO値308を操作し、ハードウェア部品群202を制御することで装置における制御処理を実行するする。ここで、IO値307とIO値308は、図２のレジスタ217に格納されたデータであり、それぞれに対応するハードウェア部品のセンサ値を示すデータである。制御ロジックライブラリ302、及び、制御ロジックライブラリ303は、それぞれに対応するハードウェア部品を制御するためのソフトウェアである。
また、装置101では、本実施例における処理選択方法を実現するソフトウェアと連携するために、制御ロジックライブラリ302、及び、制御ロジックライブラリ303を入れ替えるライブラリ入替器309と、少なくともIO値307、及び、IO値308を一定の間隔で記録する動作履歴取得310を実行する。
【００３３】
上位制御ロジック304は、直接IO値307、及び、IO値308の操作、計測を行わず、制御ロジックライブラリ302が出力する状態値305、及び、制御ロジックライブラリ303が出力する状態値306を参照、操作することで各ハードウェア部品群202全体の制御処理を実行する。
【００３４】
制御ロジックライブラリ302は、担当するハードウェア部品に対して直接IO値307を操作、計測し、抽象的なハードウェア部品の動作状況を表す状態値305を上位制御ロジック304へ出力する。同様に、制御ロジックライブラリ303は、また別のハードウェア部品の直接IO値308を操作、計測し、抽象的なハードウェア部品の動作状況を表す状態値306を出力する。
【００３５】
ライブラリ入替器309は、保守用端末201で実行されるライブラリ選択器315からの指示に応じて制御ロジックライブラリ302、及び、制御ロジックライブラリ303を別の制御ロジックライブラリへと入れ替える。
【００３６】
動作履歴取得310は、上位制御ロジック304及び制御ロジックライブラリ302、制御ロジックライブラリ303とは直接関係せずに、IO値307、及び、ＩＯ値308を一定間隔で取得し、動作履歴DB312へ記録する。
【００３７】
保守用端末201においては、本実施例に係る処理選択方法を実行するため、前記動作履歴を記録した動作履歴DB312と、前記動作履歴DB312に格納された動作履歴から各ハードウェア部品の劣化度合、精度を算出する精度算出器314と、前記精度算出器314の計算結果とライブラリDB313に格納された制御ロジックライブラリ及びライブラリ情報から入れ替えを実行する対象と入れ替えるライブラリを選択しライブラリ入替器309へ指示するライブラリ選択器315を実行する。
【００３８】
次に、図4を用いて、図3で示したソフトウェア構成の上での処理選択方法の処理手順を示し、動作履歴取得310、ライブラリ入替器309、精度算出器314、ライブラリ選択器315の動作を説明する。
【００３９】
まず、稼働開始前に制御ソフトウェアの構成を決定する(ステップ401)。ライブラリ選択器315において、各ハードウェア部品に対応する制御ロジックライブラリをライブラリDB313より選択し、ライブラリ入替器309に指示する。個々に設定された制御ロジックライブラリが初期設定となり、装置を稼働開始する(ステップ402)。ここで、初期設定の制御ロジックライブラリの選択方法としては、稼働開始時点では新品のハードウェア部品を利用する場合、もっとも新品時点では故障や劣化によるノイズが少ないと予想される場合には、ＩＯ値のばらつきを考慮せず計算量が少ない制御ロジックライブラリを選択する方針を採用しても良いし、新品時点での故障(所謂、初期不良)が多いハードウェア部品については、ＩＯ値のばらつきを補正する処理や故障を検知する処理を含んだ計算量の多い制御ロジックライブラリを選択する方針を採用しても良い。
【００４０】
装置稼働後は、設定された制御ロジックライブラリを用いて制御ソフトウェアを実行する(ステップ403)。
【００４１】
その際に、同時に動作履歴取得310において装置の動作履歴としてIO値307を一定間隔で取得する(ステップ404)。本実施例では動作履歴としてIO値307を取得することとしたが、各ハードウェア部品の動作状況を記録可能な情報であれば良く、例えば、各ハードウェア部品の動作回数や、動作期間を含んでも良い。また、現在選択されている制御ロジックライブラリに関する情報を含んでも良く、制御ロジックライブラリの種別、制御ロジックライブラリから出力される状態値、制御ロジックライブラリの動作回数を含んでも良い。
【００４２】
次に、本実施例の処理選択方法によるソフトウェア保守が可能かを調べ(ステップ405)もし保守可能であれば、保守用端末201において、動作履歴DB312より過去一定期間の前記動作履歴を取得する(ステップ406)。
【００４３】
精度算出器314において、前記動作履歴を基に各ハードウェア部品の劣化度合、精度を予測し(ステップ407)する。
【００４４】
ライブラリ選択器315において、前記予測した精度から必要であれば現在設定されている制御ロジックラブラリとは別の制御ロジックライブラリを選択し、ライブラリ入替器309へ指示することで次の稼働時での制御ソフトウェアの動作を変更する(ステップ408)。
【００４５】
前記精度算出器314、及び、前記ステップ407での処理手順の具体例を、図5、及び、図6のフローチャートで説明する。また、前記ライブラリ選択器315、及び、前記ステップ408での処理手順の具体例を、図7のフローチャートで説明する。  図5は処理選択方法における精度算出の処理フローの例を示すフローチャート図であり、状態値305に対応付いた理想的なIO値と、動作履歴として記録された実際のIO値307との誤差からハードウェア部品の精度を予測する処理を示す図である。
【００４６】
まず、ステップ501において、現在選択中の装置101の制御ソフトウェア内で設定されている制御ロジックライブラリと同種のライブラリを取得する。ライブラリDB313には、現在設定中の制御ロジックライブラリも含む選択可能な全てのライブラリが格納されており、前記ライブラリDB313の中から現在設定中の制御ロジックライブラリを取得、実行可能な状態とする。
【００４７】
次に、ステップ502において、動作履歴に記録されたIO値をステップ501にて取得した制御ロジックライブラリに擬似的に入力し出力として状態値を得ることで、動作履歴を取得した各時点での状態値を算出する。
【００４８】
ステップ503では、ステップ502で算出した状態値に対応する理想的なIO値をライブラリDB313より取得する。ここで、理想的なIO値とは各制御ロジックライブラリが出力可能な状態値毎に定義した劣化、故障などのノイズがIO値に全く含まれない場合のIO値であり、事前にライブラリDB313内に定義されているものとする。ここでは、各状態値に対応した理想的なIO値はライブラリDB313に制御ロジックライブラリと伴に定義されていることとしたが、後述するステップ504において動作履歴との誤差を算出出来る値であれば何れの方法でも良く、前述の事前に定義しておく方法で無くても良い。例えば、新品時等の所定の時期は動作精度が高くノイズが少ないことが分かっていればこの時期の動作履歴に記録されたIO値を理想値とみなしても良いし、ノイズの発生率が動作回数や動作期間の長さに依存せず一定であることが分かっている場合には動作履歴に記録された全IO値の平均値や最頻値を理想値としても良い。
【００４９】
最後にステップ504において、前記動作履歴に記録されたIO値とステップ503において取得した理想値との誤差を計算する。誤差の算出方法例としては、IO値と理想値を1ビット毎に比較し、相違するビットの数を差とするハミルトン距離を誤差として採用する方法がある。
【００５０】
図8は動作履歴情報の例を示すテーブルであり、図4のフローチャートステップ404や図5のフローチャートのステップ502で用いる動作履歴の例を示したテーブルである。
【００５１】
本テーブルは、図2のハードウェア部品群202に対して動作履歴取得310によって一定間隔でIO値を取得し、動作履歴DB312へ記録する。
【００５２】
番号802列には動作履歴の通し番号、日にち803列には動作履歴を取得した時間が、ハードウェア部品804列にはハードウェア部品名が、アドレス805列にはIOのアドレスと対応するハードウェア部品のアドレスが記録され、IO値801列にはアドレス805列に対応するIOの値が記録される。例えば図8では、2009/08/01 10:05:45に1001番目の記録としてロボットアームに対応するIOアドレス0x0002:0bitから0x0002:3bitのIO値が”1000”であったことが記録されている。
【００５３】
図11は各ハードウェア部品の状態値と理想値の一覧を示すテーブルであり、各ハードウェア部品に取り得る状態値とIO値の理想値が定義されており、図5の精度算出処理のステップ503、ステップ504や後述する図7のステップ701にて利用する。
【００５４】
ハードウェア部品1103列には、ハードウェア部品群202で示したハードウェア部品の名称を定義し、状態値1101列では各ハードウェア部品が取り得る状態値を定義する。アドレス1104列にはアドレスが記録され、理想値1102列では対応する状態値において劣化などによるノイズが全くない場合のIO値を定義する。
【００５５】
図6は、図5と同様の処理選択方法における精度算出の処理フローを示すフローチャートの別の一例であり、動作履歴に各ハードウェア部品の動作回数や動作期間が記録され、前記動作回数や動作期間とハードウェア部品の劣化の関係が分かっている場合の処理手順である。
【００５６】
まず、ステップ601で、現在使用しているハードウェア部品の劣化モデルを取得する。前記劣化モデルとは、後述するステップ603にて動作履歴から劣化度合を算出可能であり、かつ、各ハードウェア部品の劣化と前記動作履歴に記録された動作回数や動作期間との関係が正しく反映されていれば何れの方法でも良く、例えば、最大の動作回数（所謂、寿命）が決められており劣化が回数に比例して進むハードウェア部品については以下の数式で劣化モデルを算出できる。
【００５７】
Ｂ＝−１００ｘ／ＸＭＡＸ＋１００  （式１）
Bは0〜100の値域を持つ劣化度合であり、Xmaxは寿命となる最大使用回数、xは使用回数を示す変数である。
【００５８】
ステップ602では、動作履歴からハードウェア部品の使用回数を取得し、ステップ603では前記劣化モデルに使用回数を当てはめることでハードウェア部品の劣化度合を算出する。
【００５９】
図7は制御ロジック選択方法の処理フローを示す図であり、図４で示すステップ408の詳細処理フローの例である。図5、又は、図6のフローチャートによって算出した各ハードウェア部品の精度を基に制御ロジックライブラリを選択する。
【００６０】
まず、ステップ701で、ライブラリDB313より定義されている制御ロジックライブラリと対応する性能指標を取得する。性能指標は、対応する制御ロジックライブラリを実行する際の計算機コストを示す値であり、平均的な処理時間や、メモリ量から算出する。但し、前記性能指標は、処理する際の精度とトレードオフとなっている必要があり、性能指標が低い制御ロジックライブラリはIO値に多くのノイズを含む場合にも高精度で処理を実行可能であるが長い処理時間を要し、また、性能指標が高い制御ロジックライブラリにおいては処理時間が短いがＩＯ値のノイズによって処理精度が下がるように性能仕様を設定する。例えば、計算機コストを増やすことでＩＯ値に含まれるノイズへの耐性が必ず高まると仮定し、特定の条件における平均処理時間を性能指標としても良いし、制御ロジックライブラリのソースコードから得られるステップ数を性能指標としても良い。また別の例としては、ＩＯ値に含まれるノイズへの耐性を高めると必ず計算機コストが高まると仮定して、制御ロジックライブラリのアルゴリズムから推定した許容されるノイズレートの逆数を性能指標としても良い。
制御ロジックライブラリには入出力のインターフェースが定義されており、処理を選択しようとするハードウェア部品に合致する制御ロジックライブラリのみを取得する。例えば、図2のハードウェア部品群202において、ポンプ227が最大2ビットのIO値によって計測可能で、２つの状態値を取り得るとすると、2ビットの入力と２種類の状態値を出力可能な制御ロジックライブラリのみを取得する。
【００６１】
ステップ702では、前記算出された精度が事前に設定した閾値よりも低いかどうか調べ、もし精度が低ければ、ステップ703では現在よりも性能指標の低い制御ロジックライブラリを一つ選択する。
【００６２】
もし精度が事前に設定した別の閾値よりも高ければ(ステップ704)、現在よりも性能指標の高い制御ロジックライブラリを一つ選択する(ステップ705)。
【００６３】
また、前記ステップ702、ステップ704何れにも合致しなければ、現在の制御ロジックライブラリは適切であると判断して、現在と同じ制御ロジックライブラリを選択する。
【００６４】
図9、図10、図12を用いて、ライブラリDB313に格納され、前記ステップ701やステップ703などで利用する制御ロジックライブラリに関する情報について詳細を説明する。
【００６５】
図9は制御ロジックライブラリ及びライブラリ情報の例を示すテーブルであり、ライブラリDB313に格納されている制御ロジックライブラリの入出力インターフェースと、性能指標が格納されている。
【００６６】
ライブラリタイプ904列には制御ロジックライブラリの種別名称が定義され、入力902列には入力として利用可能なIO値のビット数に関する情報が定義され、出力901列には対応する制御ロジックライブラリが出力可能な状態値の一覧が定義される。また、性能指標(msec)903には各ライブラリ種別毎の性能指標として平均処理時間が格納される。例えば図9の1行目で示す例では、”Single Time/Four bit Intput/4state Output”という種別名称の制御ロジックライブラリが、4ビットの入力と”High状態”等の4種の状態値出力のインターフェースを持ち、0.5msecの平均処理時間を性能指標として持つ。
【００６７】
図10は制御ロジックライブラリの例を示すフローチャートの一例であり、前述した”Single Time/Four bit Intput/4state Output”という種別名称の処理内容を示すフローチャートである。各制御ロジックライブラリは単体、又は、制御ソフトウェアの一部分として実行可能な形式であり、且つ、ライブラリＤＢ313に格納可能な形式であれば何れの形式でも良く、例えば、動的リンク可能なライブラリモジュールでも良いし、インタイプタによって実行可能なスクリプト形式でも良い。
【００６８】
ステップ1001では入力されたアドレスから4ビット分までを読込み、値が”0000”であれば(ステップ1002)、状態値”LOW状態”を出力する(ステップ1003)。値が”1000”であれば(ステップ1004)、状態値”Middle状態”を出力する(ステップ1005)。値が”1111”であれば(ステップ1006)、状態値”High状態”を出力する(ステップ1007)。値が上記以外であれば”Error状態”を出力する。
【００６９】
図12は、本実施例の処理選択方法により選択された制御ロジックライブラリにおけるIO値の挙動と状態値算出の例を示す概念図であり、ポンプ227の状態をIO値より算出する動作の例である。
【００７０】
図11のテーブルに有るとおり、ポンプ227は2ビットのIO値から2種類の状態値を持つ。0ビット目のIO値1201、及び、1ビット目のIO値1202はポンプのIO値の挙動であり、ステップ1203〜1205に示すフローチャートはポンプ227に対して選択されている制御ロジックライブラリの処理手順例である。
【００７１】
0ビット目のIO値1201では、多くの時点で1を値とするが幾つかの時点で0を示している。一方で、0ビット目のIO値1202では、常に0を値としている。ステップ1203〜ステップ1207に示す制御ロジックライブラリは、0ビット目を1度だけ読込み(ステップ 1203)、1であればHight状態を出力する(ステップ 1204、ステップ1205)。図12で示す例では、”1”を1度だけ読込み、High状態を出力する。
【００７２】
図13は、図12において動作履歴を取得し精度算出器314での精度算出の処理結果を示すテーブルの例である。
【００７３】
テーブル1306は、t1〜t5各時点での前記動作履歴からの得られたIO値1307と、図12で用いられていたのと同じ制御ロジックライブラリで算出した状態値1308、前記状態値に対応する理想値1309、及び、IO値1307と理想値1309のハミルトン距離による誤差1310、の一覧である。この結果から、平均して1bit程度の誤差が常にあり、図12で用いられていた制御ロジックライブラリは高い精度での処理が実行できず、より処理性能が低いが精度の高い制御ロジックライブラリへの変更が必要であることがわかる。
【符号の説明】
【００７４】
101…装置
201…保守用端末
202…ハードウェア部品群
208…撮像対象
211…ゲート
213…撮像器
214…画像処理器
217…レジスタ（IO）
302…制御ロジックライブラリ
304…上位制御ロジック
305…状態値
307…IO値
309…ライブラリ入替器
310…動作履歴取得
312…動作履歴DB
313…ライブラリDB
314…精度算出器
315…ライブラリ選択器
【図１】
2011113326.tif 000003
【図２】
2011113326.tif 000004
【図３】
2011113326.tif 000005
【図４】
2011113326.tif 000006
【図５】
2011113326.tif 000007
【図６】
2011113326.tif 000008
【図７】
2011113326.tif 000009
【図８】
2011113326.tif 000010
【図９】
2011113326.tif 000011
【図１０】
2011113326.tif 000012
【図１１】
2011113326.tif 000013
【図１２】
2011113326.tif 000014
【図１３】
2011113326.tif 000015