(57)【特許請求の範囲】
【請求項１】
プログラマブルコントローラを備え、該プログラマブルコントローラに読み込まれたシーケンスプログラムに基づいて機械をシーケンス制御する制御装置において、
少なくとも前記機械による加工のサイクルタイムを入力として前記シーケンスプログラムに含まれる時間待ち処理における待ち時間の調整を機械学習する機械学習器を備え、
該機械学習器は機械学習の結果に基づいて、前記加工のサイクルタイムが短くなるように前記時間待ち処理における待ち時間を変更し、
前記機械における加工のサイクルタイムが短縮された場合をプラスの報酬とし、前記機械における加工のサイクルタイムが伸びた場合をマイナスの報酬として機械学習する、
ことを特徴とする制御装置。
【請求項２】
前記シーケンスプログラム内を解析し、信号による待ち合わせ処理を検出して、該待ち合わせ処理を時間待ち処理へと変換するプログラム解析部を更に備える、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記機械学習器は、更に前記時間待ち処理の待ち時間の変更による前記シーケンスプログラムの論理の不一致、または前記時間待ち処理の待ち時間の変更による前記機械の誤動作を入力として機械学習を行い、
前記シーケンスプログラムの論理の不一致、または前記機械の誤動作が検出された場合をマイナスの報酬として機械学習する、
ことを特徴とする請求項１または２に記載の制御装置。
【請求項４】
機械のシーケンス制御に用いられるシーケンスプログラムにおける時間待ち処理の待ち時間の調整を機械学習した機械学習器であって、
前記待ち時間の調整の機械学習結果を記憶する学習結果記憶部と、
少なくとも前記機械による加工のサイクルタイムを含む状態データを取得する状態観測部と、
前記待ち時間の調整の機械学習結果と、前記状態観測部が取得した前記状態データと、に基づいて前記待ち時間の調整を行う待ち時間調整学習部と、
前記待ち時間調整学習部が調整した前記時間待ち処理の前記待ち時間を出力する待ち時間出力部と、
を備え、
前記機械における加工のサイクルタイムが短縮された場合をプラスの報酬とし、前記機械における加工のサイクルタイムが伸びた場合をマイナスの報酬として機械学習する、
ことを特徴とする機械学習器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関し、特にＰＬＣプログラムの最適化する機能を備えた制御装置に関する。
【背景技術】
【０００２】
機械の動作には、指令に対する各動作の完了を待ってから、次の動作を行う工程が多くあり、そのような工程を実現するための一手法として、プログラマブルコントローラ（ＰＬＣ）における信号の状態により、動作の実行中や動作の完了などの判断を行い、次の動作へと移行する待ち合わせ処理が多くの場合において用いられている。
【０００３】
プログラマブルコントローラは、シーケンスプログラムに従って制御対象の制御を行っている。シーケンスプログラムは、一例として図５に例示されるようにラダー図の形式で表され、接点で信号状態の待ち合わせ示し、コイルにより負荷の駆動や信号の出力などを示すことができ、また、タイマ回路などによる時間待ち処理をすることも可能である。特許文献１には、このようなシーケンスプログラムにおける処理を高速化する従来技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２０２９１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プログラマブルコントローラ上では、信号が実際に発生してからプログラマブルコントローラ上で検出されるまでに少なからずの遅れが発生する。このような遅れにより、上記した待ち合わせ処理における待ち合わせ解除や、時間待ち処理における待ち時間に遅延が発生している。そのため、この遅れをなくすことにより、加工のサイクルタイムの短縮を行うことが期待できる。しかしながら、遅れを無くすことを目的としてプログラマブルコントローラやプログラマブルコントローラを備えた制御装置の処理能力を向上させるにはコストがかかるという問題がある。また、特許文献１に開示される技術では無駄な処理自体を省くことは可能ではあるが、待ち合わせ処理における信号の遅れに対応できる技術ではない。
【０００６】
そこで本発明の目的は、プログラマブルコントローラにおいて発生する待ち合わせ処理の最適化をする機能を備えた制御装置を提供することである。
【課題を解決するための手段】
【０００７】
本願の請求項１に係る発明は、プログラマブルコントローラを備え、該プログラマブルコントローラに読み込まれたシーケンスプログラムに基づいて機械をシーケンス制御する制御装置において、少なくとも前記機械による加工のサイクルタイムを入力として前記シーケンスプログラムに含まれる時間待ち処理における待ち時間の調整を機械学習する機械学習器を備え、該機械学習器は機械学習の結果に基づいて、前記加工のサイクルタイムが短くなるように前記時間待ち処理における待ち時間を変更し、前記機械における加工のサイクルタイムが短縮された場合をプラスの報酬とし、前記機械における加工のサイクルタイムが伸びた場合をマイナスの報酬として機械学習する、ことを特徴とする制御装置である。
【０００８】
本願の請求項２に係る発明は、前記シーケンスプログラム内を解析し、信号による待ち合わせ処理を検出して、該待ち合わせ処理を時間待ち処理へと変換するプログラム解析部を更に備える、ことを特徴とする請求項１に記載の制御装置である。
【００１０】
本願の請求項３に係る発明は、前記機械学習器は、更に前記時間待ち処理の待ち時間の変更による前記シーケンスプログラムの論理の不一致、または前記時間待ち処理の待ち時間の変更による前記機械の誤動作を入力として機械学習を行い、前記シーケンスプログラムの論理の不一致、または前記機械の誤動作が検出された場合をマイナスの報酬として機械学習する、ことを特徴とする請求項１または２に記載の制御装置である。
【００１１】
本願の請求項４に係る発明は、機械のシーケンス制御に用いられるシーケンスプログラムにおける時間待ち処理の待ち時間の調整を機械学習した機械学習器であって、前記待ち時間の調整の機械学習結果を記憶する学習結果記憶部と、少なくとも前記機械による加工のサイクルタイムを含む状態データを取得する状態観測部と、前記待ち時間の調整の機械学習結果と、前記状態観測部が取得した前記状態データと、に基づいて前記待ち時間の調整を行う待ち時間調整学習部と、前記待ち時間調整学習部が調整した前記時間待ち処理の前記待ち時間を出力する待ち時間出力部と、を備え、前記機械における加工のサイクルタイムが短縮された場合をプラスの報酬とし、前記機械における加工のサイクルタイムが伸びた場合をマイナスの報酬として機械学習する、ことを特徴とする機械学習器である。
【発明の効果】
【００１２】
本発明において、制御装置に対して機械学習器を導入してプログラマブルコントローラにおいて発生する待ち合わせ時間を機械学習し、待ち合わせ処理を最適化することにより、加工のサイクルタイムを短縮することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】強化学習アルゴリズムの基本的な概念を説明する図である。
【図２】本発明の実施形態における機械学習器の学習に関するイメージ図である。
【図３】本発明の実施形態において扱う各データについて説明する図である。
【図４】本発明の実施形態における機械の機能ブロック図である。
【図５】シーケンスプログラムの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図面と共に説明する。
本発明では、プログラマブルコントローラを備えた制御装置に人工知能となる機械学習器を導入し、プログラマブルコントローラで実行されるシーケンスプログラム（ラダープログラム）に含まれる時間待ち処理の待ち時間を調整しながら加工動作を繰返すことで時間待ち処理の待ち時間を機械学習することにより、最適な待ち時間を設定できるようにする。また、機械動作のタイミングを合わせるための信号の待ち合わせ処理については、該待合せ処理を時間待ちの処理へと変更した上で時間待ち処理の待ち時間を機械学習することにより、最適な待ち時間を設定できるようにする。これにより、レスポンスの良い機械動作を達成する。
【００１５】
＜１．機械学習＞
一般に、機械学習には教師あり学習や教師なし学習など、その目的や条件によって様々なアルゴリズムに分類されている。本発明ではプログラマブルコントローラにおける時間待ち処理の待ち時間の学習を目的としており、制御装置から取得される加工のサイクルタイムやシーケンス処理の論理異常データ、制御対象となる機械の誤動作などに基づいて各時間待ち処理の待ち時間に対してどのような行動（待ち時間の調整）をすることが正しいのかを明示的に示すことが困難であることを考慮して、報酬を与えるだけで機械学習器が目標到達のための行動を自動的に学習する強化学習のアルゴリズムを採用する。
【００１６】
図１は、強化学習アルゴリズムの基本的な概念を説明する図である。強化学習においては、学習する主体となるエージェント（機械学習器）と、制御対象となる環境（制御対象システム）とのやりとりにより、エージェント学習と行動が進められる。より具体的には、（１）エージェントはある時点における環境の状態ｓtを観測し、（２）観測結果と過去の学習に基づいて自分が取れる行動ａtを選択して行動ａを実行し、（３）行動ａtが実行されることで環境の状態ｓtが次の状態ｓt+1へと変化し、（４）行動ａtの結果としての状態の変化に基づいてエージェントが報酬ｒt+1を受け取り、（５）エージェントが状態ｓt、行動ａt、報酬ｒt+1および過去の学習の結果に基づいて学習を進める、といったやりとりがエージェントと環境の間で行われる。
【００１７】
上記した（５）における学習では、エ−ジェントは例えば報酬ｒtの合計の最大化を目的として、観測された状態ｓtから行動ａtの出力へのマッピングを獲得する。例えば、各時刻において取り得る状態の個数がｍ、取り得る行動の個数がｎとすると、行動を繰り返すことによって状態ｓtと行動ａtの組に対する報酬ｒt+1を記憶するｍ×ｎの２次元配列が得られる。
そして、上記得られたマッピングに基づいて現在の状態や行動がどのくらい良いのかを示す関数である価値関数（評価関数）を用い、行動を繰り返す中で価値関数（評価関数）を更新していくことにより状態に対する最適な行動を学習していく。
【００１８】
状態価値関数は、ある状態ｓtがどのくらい良い状態であるのかを示す価値関数である。状態価値関数は、状態を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態の価値などに基づいて更新される。状態価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、強化学習アルゴリズムの１つであるＴＤ学習においては、状態価値関数は以下の数１式で定義される。なお、数１式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００１９】
【数１】
0006659260.tif 000002
【００２０】
また、行動価値関数は、ある状態ｓtにおいて行動ａtがどのくらい良い行動であるのかを示す価値関数である。行動価値関数は、状態と行動を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態における行動の価値などに基づいて更新される。行動価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、代表的な強化学習アルゴリズムの１つであるＱ学習においては、状態価値関数は以下の数２式で定義される。なお、数２式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２１】
【数２】
0006659260.tif 000003
【００２２】
なお、この価値関数（評価関数）を学習して記憶する方法としては、近似関数を用いる方法や、配列を用いる方法以外にも、例えば状態ｓが多くの状態を取るような場合には状態ｓt、行動ａtを入力として価値（評価）を出力する多値出力のＳＶＭやニューラルネットワーク等の教師あり学習器を用いる方法などがある。
【００２３】
そして、上記した（２）における行動の選択においては、過去の学習によって作成された価値関数（評価関数）を用いて現在の状態ｓtにおいて将来にわたって最大の報酬Ｒが得られる行動ａt（状態価値関数を用いている場合には、もっとも価値の高い状態へ移るための行動、行動価値関数を用いている場合には該状態において最も価値の高い行動）を選択する。なお、エージェントの学習中には学習の進展を目的として（２）における行動の選択において一定の確率でランダムな行動を選択することも有効ある（εグリーディ法）。
【００２４】
このように、（１）〜（５）を繰り返すことで学習が進められる。ある環境において学習が終了した後に、新たな環境におかれた場合でも追加の学習を行うことでその環境に適応するように学習を進めることができる。したがって、本発明のようにシーケンスプログラムに含まれる時間待ち処理の待ち時間の調整に適用することで、新しいシーケンスプログラムを作成した際にも、過去の時間待ち処理の待ち時間の学習に、新しいシーケンスプログラムを新たな環境とした追加の学習をすることで、時間待ち処理の待ち時間調整の学習を短時間で行うことが可能となる。
【００２５】
また、強化学習においては、複数のエージェントをネットワークなどを介して接続したシステムとし、エージェント間で状態ｓ、行動ａ、報酬ｒなどの情報を共有してそれぞれの学習に利用することで、それぞれのエージェントが他のエージェントの環境も考慮して学習をする分散強化学習を行うことで効率的な学習を行うことができる。本発明においても、複数の環境（制御対象となる機械）を制御する複数のエージェント（機械学習器）がネットワークなどを介して接続された状態で分散機械学習を行うことで、プログラマブルコントローラでの時間待ち処理の待ち時間の調整の学習を効率的に行わせることができるようになる。
【００２６】
なお、強化学習のアルゴリズムとしては、Ｑ学習、ＳＡＲＳＡ法、ＴＤ学習、ＡＣ法など様々な手法が周知となっているが、本発明に適用する方法としていずれの強化学習アルゴリズムを採用してもよい。なお、それぞれの強化学習アルゴリズムは周知なので、本明細書における各アルゴリズムの詳細な説明は省略する。
以下では、機械学習器を導入した本発明の機械の制御装置について、具体的な実施形態に基づいて説明する。
【００２７】
＜２．実施形態＞
図２は、本発明の一実施形態における人工知能となる機械学習器を導入した制御装置におけるシーケンスプログラムに含まれる時間待ち処理の待ち時間調整の機械学習に関するイメージを示す図である。なお、図２には本実施形態における機械学習の説明に必要な構成のみを示している。
【００２８】
本実施形態において、機械学習器２０が環境（＜１．機械学習＞で説明した状態ｓt）を特定するための情報として、シーケンスプログラムに含まれる各時間待ち処理の待ち時間、機械１による加工におけるサイクルタイム、機械１による加工において発生したシーケンスの論理異常、機械１による加工において発生した機械１の誤動作を機械学習器に対して入力している。これら各値は、機械１の各部から取得されたデータおよび制御装置２から取得されたデータである。
図３は、本実施形態における環境を特定するための情報について説明する図である。本実施形態における制御装置２は、シーケンスプログラムが入力されるとプログラム解析部３が該シーケンスプログラムを解析して信号の待ち合わせ処理をしている接点（図３（ａ））を検出し、該検出された待ち合わせ処理をしている接点を時間待ち処理をするタイマ（図３（ｂ））に変換する。そして、シーケンスプログラムに含まれる時間待ち処理の接点の待ち時間を環境を特定する状態データの１つとして用いる。
【００２９】
本実施形態では、機械学習器２０が環境に対して出力するもの（＜１．機械学習＞で説明した行動ａt）として、シーケンスプログラム中の時間待ち処理の待ち時間の調整を出力データとしている。
【００３０】
また本実施形態では、機械学習器２０に対して与えられる報酬（＜１．機械学習＞で説明した報酬ｒt）として、シーケンスプログラムに含まれる待ち時間動作の待ち時間の短縮（プラス報酬、マイナス報酬）、機械１による加工のサイクルタイム（プラス報酬、マイナス報酬）、機械１による加工において発生したシーケンスの論理異常（マイナス報酬）、機械１による加工において発生した機械１の誤動作（マイナス報酬）などを採用する。なお、いずれのデータに基づいて報酬を決定するのかについては、オペレータが適宜設定するようにしてもよい。
【００３１】
更に、本実施形態では、機械学習器２０は上記した入力データ、出力データ、報酬に基づいて機械学習を行う。機械学習においては、ある時刻ｔにおいて、入力データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに対して行われる待ち時間の調整が行動ａtとなり、そして、行動ａtにより移待ち時間の調整が行われた結果として新たに得られた入力データに基づいて評価計算された値が報酬ｒt+1となり、これを＜１．機械学習＞で説明したように、機械学習のアルゴリズムに応じた価値関数（評価関数）の更新式に当てはめることにより学習を進める。
【００３２】
以下では、機械１の機能ブロック図に基づいて説明する。
図４は、本実施形態の機械の機能ブロック図である。本実施形態の機械１は、ワークの加工において各軸を駆動するためのサーボモータなどの駆動部（図示せず）、該サーボモータを制御するサーボ制御部（図示せず）などの機械が標準的に備える構成と、該駆動部を制御する制御装置２、および機械学習を行う人工知能となる機械学習器２０を備える。図４に示した構成を、図１に示した強化学習における要素と対比すると、機械学習器２０がエージェントに対応し、機械１が備える駆動部や制御装置２などを含む全体が環境に対応する。
【００３３】
制御装置２は、図示しないメモリから読み出された、または図示しない入力機器などを介して入力されたプログラムを解析して機械１の各部を制御する。制御装置２が機械の制御に用いるプログラムにはシーケンスプログラムが含まれており、該シーケンスプログラムはプログラム解析部３により解析されて信号待ち動作をしている接点が検出され、該検出された信号待ち動作をしている接点が時間待ち処理をするタイマに変換された上でプログラマブルコントローラ４に読み込まれる。
プログラマブルコントローラ４は、読み込んだシーケンスプログラムに基づいて機械１に対するシーケンス制御を行なう。また、プログラマブルコントローラ４に読み込まれたシーケンスプログラムにおける時間待ち処理をする接点に関する情報は、プログラマブルコントローラ４の外部から確認、および待ち時間の調整ができるようになっている。
【００３４】
機械学習を行う機械学習器２０は、状態観測部２１、状態データ記憶部２２、報酬条件設定部２３、報酬計算部２４、待ち時間調整学習部２５、学習結果記憶部２６、待ち時間出力部２７を備える。前記機械学習器２０は、機械１内や制御装置２内に備えるように構成してもよいし、機械１外のパソコン等に備えるようにしてもよい。
【００３５】
状態観測部２１は、制御装置２を介して機械１に関する状態データを観測して機械学習器２０内に取得する機能手段である。状態データとしては上記したシーケンスプログラムに含まれる各時間待ち処理の待ち時間、機械１による加工におけるサイクルタイム、機械１による加工において発生したシーケンスの論理異常、機械１による加工において発生した機械１の誤動作などがある。
【００３６】
状態データ記憶部２２は状態データを入力して記憶し、記憶した該状態データを報酬計算部２４や待ち時間調整学習部２５に対して出力する機能手段である。入力される状態データは、最新の加工運転で取得したデータでも、過去の加工運転で取得したデータでも構わない。また、他の機械学習器２０や集中管理システム３０に記憶された状態データを入力して記憶したり、出力したりすることも可能である。
【００３７】
報酬条件設定部２３は、機械学習において報酬を与える条件を設定するための機能手段である。報酬にはプラスの報酬とマイナスの報酬があり、適宜設定が可能である。さらに、報酬条件設定部２３への入力は集中管理システム３０で使用しているパソコンやタブレット端末等からでも構わないが、機械１が備える図示しないＭＤＩ機器を介して入力できるようにすることで、より簡便に設定することが可能となる。
報酬計算部２４は、報酬条件設定部２３で設定された条件に基づいて状態観測部２１または状態データ記憶部２２から入力された状態データを分析し、計算された報酬を待ち時間調整学習部２５に出力する。
【００３８】
以下に、本実施形態における報酬条件設定部２３で設定する報酬条件の例を示す。
●［報酬１：シーケンスプログラムに含まれる待ち時間動作の待ち時間の短縮（プラス報酬，マイナス報酬）］
シーケンスプログラムに含まれる待ち時間動作の待ち時間が短縮された場合に、その度合いに応じてプラスの報酬を与える。報酬の算出においては、待ち時間が所定の基準値から見て短ければ短いほどプラス値が大きくなる報酬となるようにし、長ければ長いほどマイナス値が大きくなる報酬となるようにする。待ち時間の所定の基準値については、プログラム解析部３がシーケンスプログラムを変換する際に時間待ち処理の待ち時間として設定した初期待ち時間を基準とすればよい。
【００３９】
●［報酬２：機械１による加工のサイクルタイムの短縮（プラス報酬，マイナス報酬）］
機械１による加工のサイクルタイムが短縮された場合に、その度合いに応じてプラスの報酬を与える。報酬の算出においてはサイクルタイムが所定の基準値から見て短ければ短いほどプラス値が大きくなる報酬となるようにし、長ければ長いほどマイナス値が大きくなる報酬となるようにする。サイクルタイムの所定の基準値については、機械１による加工が最初に開始された際の１回の加工に掛かった加工時間を基準とすればよい。
【００４０】
●［報酬３：加工において発生したシーケンスの論理異常（マイナス報酬）］
機械１による加工において、プログラマブルコントローラ４によりシーケンスプログラムの論理異常が検出された場合、その論理異常の重要度に応じてマイナス報酬を与える。論理異常の重要度は、予め報酬条件設定部２３により設定するようにしておく。
【００４１】
●［報酬４：加工において発生した機械１の誤動作（マイナス報酬）］
機械１による加工において誤動作が検出された場合、その誤動作の重要度に応じてマイナス報酬を与える。誤動作の重要度は、予め報酬条件設定部２３により設定するようにしておく。
【００４２】
図２に戻って、待ち時間調整学習部２５は、機械１による１サイクルの加工が完了する度に、状態データと、自身が行ったシーケンスプログラムの待ち時間の調整、および報酬計算部２４で計算された報酬とに基づいて機械学習（強化学習）を行うと共に、過去の学習結果に基づいて現在の状態データに基づいてシーケンスプログラムにおける時間待ち処理の待ち時間を調整する。ここでいう待ち時間を調整が、機械学習に用いられる行動ａに相当する。
【００４３】
ここで、待ち時間調整学習部２５が行う機械学習においては、ある時刻ｔにおける状態データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに応じて待ち時間を調整して後述する待ち時間出力部２７により該調整結果を出力することが行動ａtとなり、そして、調整結果に基づいて機械１による加工が行われた結果として得られた状態データに基づいて前記報酬計算部２４で計算された値が報酬ｒt+1となる。学習に用いられる価値関数については、適用する学習アルゴリズムに応じて決定する。例えば、Ｑ学習を用いる場合には、上記した数２式に従って行動価値関数Ｑ（ｓt，ａt）を更新することにより学習を進めるようにすれば良い。
【００４４】
待ち時間の調整の際には、各時間待ち処理の待ち時間をあらかじめ初期値に定めた上で、繰り返し加工していく中で少なくとも１つの時間待ち処理の待ち時間を所定の範囲内で変動させるようにする調整方法が考えられる。その後、該時間待ち処理の待ち時間をある程度変動させた後に、変動対象とする時間待ち処理を他のものに変更するなどして、待ち時間の変更を学習するようにすれば良い。
更に、上記したεグリーディ法を採用し、所定の確率でランダムな行動を選択することで学習の進展を図るようにしてもよい。
【００４５】
学習結果記憶部２６は、前記待ち時間調整学習部２５が学習した結果を記憶する。また、待ち時間調整学習部２５が学習結果を再使用する際には、記憶している学習結果を待ち時間調整学習部２５に出力する。学習結果の記憶には、上述したように、利用する機械学習アルゴリズムに応じた価値関数を、近似関数や、配列、又は多値出力のＳＶＭやニューラルネットワーク等の教師あり学習器などにより記憶するようにすれば良い。
なお、学習結果記憶部２６に、他の機械学習器２０や集中管理システム３０が記憶している学習結果を入力して記憶させたり、学習結果記憶部２６が記憶している学習結果を他の機械学習器２０や集中管理システム３０に対して出力したりすることも可能である。
【００４６】
待ち時間出力部２７は、前記待ち時間調整学習部２５による待ち時間の調整結果を制御装置２のプログラマブルコントローラ４に対して出力する。プログラマブルコントローラ４は待ち時間出力部２７から出力された各時間待ち処理の待ち時間に基づいてシーケンスプログラム内の各時間待ち処理の待ち時間を調整し、調整されたシーケンスプログラムに基づいて機械１のシーケンス制御を行なう。
【００４７】
そして、加工が完了したら再び状態データの取得が機械学習器２０により行われ、入力された状態データを使用して学習を繰り返すことにより、より優れた学習結果を得ることができる。
【００４８】
上記学習が完了した学習データを用いて実際に機械１で加工する際には、機械学習器２０は新たな学習を行なわないようにして学習完了時の学習データをそのまま使用して繰り返し運転をするようにしてもよい。
また、学習が完了した機械学習器２０（または、他の機械学習器２０の完了した学習データを学習結果記憶部２６に複写した機械学習器２０）を他の機械１に取付けて、学習完了時の学習データをそのまま使用して繰り返し運転をするようにしてもよい。
更に、学習が完了した機械学習器２０の学習機能を有効にしたままで他の機械１に取付けて、ワークの加工を続けることで、機械１毎に異なる個体差や経年変化などを更に学習させ、当該機械１にとってより良い時間待ち処理の待ち時間を学習しながら運転することも可能である。
【００４９】
なお、上記したように機械１の制御装置２を用いて学習動作をする場合、制御装置２は実際に機械１を動作させずに仮想的な部品加工処理に基づいて学習するようにしてもよい。また、別途機械の動作をシミュレーションするシミュレーション部を設け、該シミュレーション部を用いて学習動作を行わせるようにしてもよい。
【００５０】
機械学習器２０は単独で機械学習をするようにしてもよいが、複数の機械学習器２０がそれぞれ外部との通信手段を更に備えると、それぞれの前記状態データ記憶部２２が記憶した状態データや学習結果記憶部２６が記憶した学習結果を送受信して共有することが可能となり、より効率良く機械学習を行うことができる。例えば、所定の範囲内でシーケンスプログラムの各時間待ち処理の待ち時間を変動させて学習する際に、複数の機械学習器２０において異なる時間待ち処理を待ち時間を所定の範囲内でそれぞれ変動させて加工を行いながら、それぞれの機械学習器２０の間で状態データや学習データをやり取りすることにより並列して学習を進めるようにすることで効率的に学習させることができる。
このように複数の機械学習器２０間でやり取りする際には、通信は集中管理システム３０等のホストコンピュータを経由しても、直接機械学習器２０同士が通信しても構わないし、クラウドを使用しても構わないが、大量のデータを取り扱う場合があるため、なるべく通信速度が速い通信手段が好ましい。
【００５１】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００５２】
例えば、上記で説明した実施形態においては、シーケンス制御に用いるシーケンスプログラムをプログラム解析部３により解析し、信号待ち処理をしている接点を時間待ち処理をするタイマに変換した上で、該シーケンスプログラムの時間待ち処理の待ち時間の調整を機械学習器２０が機械学習する例を示したが、例えばプログラム解析部３によるシーケンスプログラムの変換を行うことなく、元々シーケンスプログラムに含まれている時間待ち処理の待ち時間の調整を機械学習器２０が機械学習するように構成してもよく、これにより元々シーケンスプログラムに含まれている時間待ち処理についてのみ待ち時間の最適化を行うようにすることができる。
【符号の説明】
【００５３】
１  機械
２  制御装置
３  プログラム解析部
４  プログラマブルコントローラ
２０  機械学習器
２１  状態観測部
２２  状態データ記憶部
２３  報酬条件設定部
２４  報酬計算部
２５  待ち時間調整学習部
２６  学習結果記憶部
２７  待ち時間出力部
３０  集中管理システム
【図１】
0006659260.tif 000004
【図２】
0006659260.tif 000005
【図３】
0006659260.tif 000006
【図４】
0006659260.tif 000007
【図５】
0006659260.tif 000008