(57)【要約】【課題】動作プログラムによって動作する複数の産業機械を有する生産システムの動作を、好適に最適化することができるセルコントローラを提供する。【解決手段】セルコントローラ１１は、動作プログラムによって動作する複数の産業機械３１からネットワークを介して受信した、生産システム１２の時系列の稼働情報に基づいて、生産システム１２全体のタクトタイムに悪影響を与えている部分を分析するシステム稼働情報分析器２１と、産業機械３１の状態量に基づいて各産業機械の動作の余裕度を分析する状態量分析器２２と、該余裕度に基づいて、動作プログラムの速度または加速度の修正を自動的に行うプログラム改良器２３と、動作プログラムの改良結果を確認するために生産システム１２の動作シミュレーションを実行するシミュレータ２４とを有する。【選択図】図１
2017199077.tif 000002
【特許請求の範囲】
【請求項１】
動作プログラムによって動作する複数台の産業機械を有する生産システムを管理するセルコントローラであって、
前記産業機械からネットワークを介して受信した、生産システムの時系列の稼働情報に基づいて、前記生産システム全体のタクトタイムに悪影響を与えている部分を分析するシステム稼働情報分析器と、
前記産業機械の状態を検出するセンサデータを含む状態量に基づいて前記産業機械の各々の動作の余裕度を分析する状態量分析器と、
前記状態量分析器から出力された余裕度に基づいて前記動作プログラムの速度または加速度の改良を自動的に行うプログラム改良器と、
前記動作プログラムの改良結果を確認するために、前記生産システムの動作シミュレーションを実行するシミュレータと、
を備えたセルコントローラ。
【請求項２】
前記産業機械の状態量は、前記産業機械に搭載されたモータの速度、加速度、加加速度、電流、温度、およびモータ速度指令からの追従誤差のうちいずれか１つ、または複数の組み合わせからなる、請求項１に記載のセルコントローラ。
【請求項３】
前記システム稼働情報分析器および前記状態量分析器による分析結果と、前記プログラム改良器による修正結果とを表示する表示器を備えた、請求項１に記載のセルコントローラ。
【請求項４】
前記シミュレータは、産業機械への機能の追加によって得られる、前記生産システム全体のタクトタイムの改善効果についてのシミュレーションを行い、該シミュレーションの結果は、前記表示器または前記セルコントローラにネットワークで接続されたクラウドサーバに表示される、請求項３に記載のセルコントローラ。
【請求項５】
前記システム稼働情報分析器および前記状態量分析器による分析結果と、前記プログラム改良器による修正結果とを、前記セルコントローラにネットワークで接続されたクラウドサーバに送信する機能を備えた、請求項１に記載のセルコントローラ。
【請求項６】
前記システム稼働情報分析器および前記状態量分析器の出力から、動作プログラムの修正方法を学習する機械学習器を備え、前記機械学習器は、前記生産システムのタクトタイムに応じた報酬を、選択された行動に与えることによって強化学習を行う、請求項１に記載のセルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムによって動作する複数台の産業機械を有する生産システムの動作を最適化するセルコントローラに関する。
【背景技術】
【０００２】
従来、産業用ロボットやＣＮＣ工作機械などの産業機械を複数有する生産システムでは、システム全体の高速化を図る種々の技術が提唱されている。例えば特許文献１には、コンピュータによるシミュレーションによって、ロボットの動作部分を駆動するモータの負荷を算出するとともに、モータに対する指令速度及び指令加速度とモータ負荷を時系列に関連づけて記憶することと、モータ負荷が許容値を超えているかを評価関数により評価することと、を備えるロボットプログラム評価・修正方法が記載されている。
【０００３】
また特許文献２には、自立分散形の複数のプラントセルユニットコントローラ部と、各プラントセルユニットコントローラ部に通信回線を介して結ばれ、管理条件を指示する管理装置とを備える、生産ライン管理システムが開示されており、さらに、管理装置に、各プラントセルユニットコントローラ部が制御する実プラントセルを模擬したプログラマブルなセルユニットモデルを用いて、実プラントが生産する製品の製造プロセスをシミュレーションする仮想工場手段と、仮想工場で得られた管理条件を通信回線を介して各プラントセルユニットコントローラ部にダウンロードする管理条件指示手段とを設ける旨が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３９４６７５３号公報
【特許文献２】特開平０８−１８７６４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
生産システムが複雑または大規模になると、Ｉ／Ｏなどを介したロボットと製造機械との間のデータ通信量が膨大になり、生産システムのどの構成要素が、システム全体の処理を高速化する上でのボトルネックになっているかを判断することが困難になる。また、主たるボトルネックとなっている構成要素が判明しても、それが該構成要素の性能上の限界に起因するものであれば、当該ボトルネックは改善不能であり、別のボトルネックを探す必要がある。このような手順を繰り返してシステムの改善を行うには、大きな時間がかかる。
【０００６】
特許文献１に記載の技術は、コンピュータによるシミュレーションによって、ロボットのモータの負荷を評価することで、ロボットプログラムを最適に修正するものと解される。しかしこの方法では、ロボット単体を高速化することはできるが、生産システムの構成によっては、ロボット単体の高速化が必ずしもシステム全体の高速化に寄与しないことがある。
【０００７】
また特許文献２に記載の技術は、生産ラインを仮想的に構築し、生産基本要素を組み合わせてシミュレーションを行って、サイクルタイムが最小となるように各生産基本要素を組み合わせるものと解される。しかし特許文献２の方法では、生産基本要素を組み合わせているものの、ロボットなどの各基本要素自体の高速化については言及がないため、生産ライン全体としての高速化には限界がある。
【０００８】
そこで本発明は、動作プログラムによって動作する複数台の産業機械を有する生産システムの動作を、好適に最適化することができるセルコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本願第１の発明は、動作プログラムによって動作する複数台の産業機械を有する生産システムを管理するセルコントローラであって、前記産業機械からネットワークを介して受信した、生産システムの時系列の稼働情報に基づいて、前記生産システム全体のタクトタイムに悪影響を与えている部分を分析するシステム稼働情報分析器と、前記産業機械の状態を検出するセンサデータを含む状態量に基づいて前記産業機械の各々の動作の余裕度を分析する状態量分析器と、前記状態量分析器から出力された余裕度に基づいて前記動作プログラムの速度または加速度の改良を自動的に行うプログラム改良器と、前記動作プログラムの改良結果を確認するために、前記生産システムの動作シミュレーションを実行するシミュレータと、を備えたセルコントローラを提供する。
【００１０】
第２の発明は、第１の発明において、前記産業機械の状態量は、前記産業機械に搭載されたモータの速度、加速度、加加速度、電流、温度、およびモータ速度指令からの追従誤差のうちいずれか１つ、または複数の組み合わせからなる、セルコントローラを提供する。
【００１１】
第３の発明は、第１の発明において、前記システム稼働情報分析器および前記状態量分析器による分析結果と、前記プログラム改良器による修正結果とを表示する表示器を備えた、セルコントローラを提供する。
【００１２】
第４の発明は、第３の発明において、前記シミュレータは、産業機械への機能の追加によって得られる、前記生産システム全体のタクトタイムの改善効果についてのシミュレーションを行い、該シミュレーションの結果は、前記表示器または前記セルコントローラにネットワークで接続されたクラウドサーバに表示される、セルコントローラを提供する。
【００１３】
第５の発明は、第１の発明において、前記システム稼働情報分析器および前記状態量分析器による分析結果と、前記プログラム改良器による修正結果とを、前記セルコントローラにネットワークで接続されたクラウドサーバに送信する機能を備えた、セルコントローラを提供する。
【００１４】
第６の発明は、第１の発明において、前記システム稼働情報分析器および前記状態量分析器の出力から、動作プログラムの修正方法を学習する機械学習器を備え、前記機械学習器は、前記生産システムのタクトタイムに応じた報酬を、選択された行動に与えることによって強化学習を行う、セルコントローラを提供する。
【発明の効果】
【００１５】
本発明によれば、プログラムによって動作を変更可能な複数台の産業機械から稼働情報を受信し、生産システムのボトルネックを分析し、その分析結果をもとに生産システムの高速化に関係する動作プログラム部分を抽出し、動作プログラムの該当部分を自動的に修正することができるので、生産システムを好適に高速化することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るセルコントローラと、複数の産業機械を含む生産システムの概略構成を示す機能ブロック図である。
【図２】図１に示すセルコントローラのシステム稼働情報分析器による分析結果の一例を示す図である。
【図３】図１に示すセルコントローラのシステム稼働情報分析器による分析結果の他の例を示す図である。
【図４】図１に示すセルコントローラの状態量分析器によって評価される状態量の経時変化の一例を示す図である。
【発明を実施するための形態】
【００１７】
図１は、本発明の一実施形態に係るセルコントローラ１１と、セルコントローラ１１によって管理される複数台の産業機械を含む生産システム１２の概略構成を示す機能ブロック図である。セルコントローラ１１は、動作プログラムによって動作する複数（図示例では４つ）の産業機械３１からネットワークを介して受信した、生産システム１２の時系列の稼働情報（動作情報）に基づいて、生産システム１２全体のタクトタイムに悪影響を与えている部分を分析するシステム稼働情報分析器２１と、産業機械３１の状態を検出するセンサデータを含む状態量に基づいて産業機械３１の各々の動作の余裕度を分析する状態量分析器２２と、状態量分析器２２から出力された余裕度に基づいて、動作プログラムの速度または加速度の修正（改良）を自動的に行うプログラム改良器２３と、プログラム改良器２３による動作プログラムの改良結果を確認するために生産システム１２の動作シミュレーションを実行するシミュレータ２４とを有する。
【００１８】
なお本実施形態において、プログラムによって動作を変更可能な産業機械３１としては、例えば産業用ロボット、ＣＮＣ工作機械、製造機械が挙げられる。
【００１９】
セルコントローラ１１としては、例えば産業用ＰＣ（パーソナルコンピュータ）が使用可能であり、これは産業機械３１の制御装置（図示せず）とは別に設けられることが好ましい。セルコントローラ１１が独立したハードウェアであることにより、ロボットや製造機械、またはこれらを制御する制御装置に過剰な計算能力を持たせる必要がなくなり、生産システムのコストを下げることができる。また、一旦生産システム１２を最適化した後は、セルコントローラ１１を使用せずに生産システム１２を動作させることが可能となるので、セルコントローラ１１を別のシステムの高速化のために使い回すというような、効率的な利用が可能となる。
【００２０】
システム稼働情報分析器２１は、産業機械３１の各々から時系列の稼働情報を受信し、受信した稼働情報と、生産システム１２へのワークの入力から出力までのタイムスケジュールとに基づいて、生産システム１２を高速化する上でのボトルネックを分析する。なお時系列の稼働情報とは、時系列に関連付けられた複数の産業機械のＩ／Ｏ情報、駆動時間情報などである。
【００２１】
図２は、システム稼働情報分析器２１による分析結果の一例を示している。詳細には図２は、生産システムに第１のワーク（ワーク１）が投入され、一連の製造工程が終了して排出されるまでに、ロボットＡ〜Ｄおよび製造機械Ａ，Ｂが稼働する時間を時系列で示している。なお図２では、実線はロボットまたは製造機械の動作時間を表し、破線はワークが何らの作業もされずに滞留している時間を表すものとする。
【００２２】
図２からわかるように、ワーク１に対するロボットＡの作業（動作）が終了したときに第２のワーク（ワーク２）が生産システム１２に投入された場合、ワーク１に対するロボットＢの作業が終わるまで、ワーク２が滞留する時間帯が生じる。従ってこの場合では、生産システム１２のタクトタイムを改善するには、ロボットＢの作業速度を改善する必要があることがわかる。
【００２３】
図３は、システム稼働情報分析器２１による分析結果の他の例を示している。詳細には図３は、ロボットＢとロボットＣがワークまたは信号をやり取りしながら、実質一つの作業を行う場合を時系列で示している。なお図３では、実線はロボットまたは製造機械の動作時間を表し、破線はロボットまたは製造機械の待ち時間を表し、矢印線はロボット間またはロボットと製造機械との間の同期タイミングを表すものとする。
【００２４】
ロボットＢとロボットＣはそれぞれ所定の作業を行うが、両ロボットの同期が必要なタイミングでは、一方のロボットが他方のロボットを待つ時間が生じることがある。このような場合にシステムの高速化を図るためには、同期が必要なタイミングまでの所要動作時間が、どちらのロボットが長いのかを分析し、その長い方のロボットの該当するプログラム部分に対して、速度の改善を図る必要がある。
【００２５】
例えば図３では、ロボットＣの待ち時間Ｔ１を短縮または解消するためには、ロボットＢの動作時間Ｍ１において、ロボットＢの動作速度を上昇させる措置が有効である。逆に言えば、ロボットＣの動作時間Ｍ２を短縮しても、ロボットＣの待ち時間の短縮または解消には寄与しない。また、ロボットＢの待ち時間Ｔ２を短縮または解消するためには、ロボットＣの動作時間Ｍ３において、ロボットＣの動作速度を上昇させる措置が有効である。逆に言えば、ロボットＢの動作時間Ｍ４を短縮しても、ロボットＢの待ち時間の短縮または解消には寄与しない。
【００２６】
このようにして、生産システム１２全体の分析を行うことにより、システム全体のタクトタイムに悪影響を与えている部分が明確となり、生産システム１２の効率化（高速化）のためにはどの部分を改良するのが有効かを判断することができる。
【００２７】
状態量分析器２２は、システム稼働情報分析器２１によって分析された、高速化が必要な動作プログラム部分について、産業機械３１の状態量を収集・分析し、高速化の余裕度を計算する。ここで、状態量分析器２２が産業機械３１から収集する状態量としては、例えば、産業機械３１に装備・搭載されたモータの速度、加速度、加加速度、トルク、電流、温度、およびモータ速度指令からの追従誤差などが挙げられる。また、これらの状態量を組み合わせて新たな状態量を導入（例えば、モータの加速度と加加速度から振動量を推算）してもよい。これらの状態量は、時系列に関連付けられて収集される。
【００２８】
図４は、状態量分析器２２によって評価される状態量の経時変化の具体例を示している。図４に示すように、各状態量には閾値（例えば上限値Ｓ１および下限値Ｓ２）を設定することができ、該閾値を超えない場合はその状態量に関しては余裕があり、高速化可能と判断することができる。例えば、モータ速度の閾値はモータの仕様で決定されるが、モータ速度がこの閾値（上限値）に達していない場合は、モータ速度には高速化の余地が残っていると判断できる。また、振動を加速度から推定した場合には、振動が閾値（上限値）に対して余裕を持っていれば、加速度を増加させる余地が残っていると判断できる。このように、各状態量の時系列データを取得することにより、速度、加速度、加加速度などに余裕があるか否かが判定できる。
【００２９】
状態量の余裕（閾値との差）に基づいて生産システム１２の高速化を図る具体例について、以下に説明する。先ず、状態量分析器２２が、図４に示したような各状態量の時系列データの時間積分を計算して、各状態量について余裕量（またはその移動平均値）が大きい時間帯を求める。例えば図４では、モータ速度が概ねゼロである時間帯Ｔ３において、モータ速度の余裕量が比較的大きいと判断できる。
【００３０】
次に、プログラム改良器２３が、状態量分析器２２による分析結果から得られた、高速化のための余裕量（または移動平均値）が大きい時間帯に関する情報から、該時間帯に対応するプログラム部分を選択し、そのプログラム部分について高速化のための修正を自動的に行う。具体的には、該プログラム部分に含まれる動作指令文に対し、速度指令値または加速度指令値を増加させる等の修正を行う。
【００３１】
このとき、プログラム修正の結果として得られる産業機械のタクトタイムや、動作速度などの状態量の変化を確認するために、シミュレータ２４を使用することができる。シミュレータ２４は、プログラム改良器２３から得られた改良後の動作プログラムをもとに、産業機械３１の動作をシミュレートし、タクトタイムが高速化していることを確認するとともに、その際の産業機械の状態量（例えばモータ速度や加速度など）を計算する。この状態量を、必要に応じて再度状態量分析器２２へ入力し、その出力を再度プログラム改良器２３に送信することで、動作プログラムを反復的に改善することが可能になる。なお、シミュレータ２４で計算された産業機械の状態量が、反復処理の過程で図４に示した閾値の範囲を超えてしまった場合には、その動作プログラムは採用せず、該当部分のプログラム改良を終了する。
【００３２】
このようにして作成した改良後のプログラムは、プログラム改良器２３から各産業機械３１（またはその制御装置）へ送信され、各産業機械の動作プログラムが自動的に更新される。なおこの更新は、所定の周期で定期的に行ってもよいし、ユーザーが指定したタイミングで行ってもよい。また、動作プログラムの改良を自動的に適用せず、表示器２５を使用してユーザーに提示し、ユーザーの承認を得てから適用するようにしてもよい。なお表示器２５は、システム稼働情報分析器２１および状態量分析器２２による分析結果と、プログラム改良器２３による修正結果とを表示することもできる。
【００３３】
図１に示すように、セルコントローラ１１で得られた情報は、セルコントローラ１１より上位のクラウドサーバ４１に送信することもできる。そして、クラウドサーバ４１と複数のセルコントローラをネットワークで接続することで、複数のセルコントローラに関する情報を統合的に扱うことが可能になり、複数のセルで構成される生産システム全体の最適化を行うことができるようになる。
【００３４】
またクラウドサーバ４１の情報を、外部ネットワークからユーザーが参照可能にすることもできる。これにより、動作改良の状況や、改良プログラムの適用判断などを遠隔から判断、操作することが可能になる。また、クラウドサーバ４１の情報を、産業機器メーカやシステムインテグレータに開示することも可能である。これにより、メーカによる生産システムの稼働チェックや、生産システムの診断、改善提案も可能になり、さらなる生産システムの効率化を図ることができる。
【００３５】
産業機械３１の少なくとも１つには、動作高速化のための機能を追加するソフトウェアオプションが含まれていることがある。このような場合には、シミュレータ２４が、新しいソフトウェアオプションを追加した場合に得られる効果、より具体的は産業機械３１を含む生産システム１２全体のタクトタイムの改善効果についてのシミュレーションを行い、該シミュレーションの結果を表示器２５またはクラウドサーバ４１に表示してユーザーに提示することができる。これによりユーザーは、ソフトウェアオプションの追加導入に対する費用対効果を容易に判断することができる。
【００３６】
現実には、生産システム１２への第１のワーク（ワーク１）の投入は、一定間隔で行われるとは限らない場合がある。また、図２に例示したように、ワーク１とワーク２で滞留の有無が異なるように、同じ時間間隔でワークが投入された場合でも、ボトルネックとなる箇所がワークによって異なる場合がある。このような場合には、複数回ワークを投入した結果とプログラム改良内容を記録し、統計的に最も有効な改良を適用することが可能である。
【００３７】
上述の実施形態では、産業機械の動作プログラムを修正して高速化する例を説明したが、生産システムのタクトタイムに影響しない部分については、産業機械の動作を低速化することもできる。これにより、産業機械の長寿命化、消費電力および騒音の低減、オーバーヒートの抑制等の効果が得られる。このように、生産システムにおいて高速化させる部分と低速化させる部分とを適宜混在させることで、生産システム全体としての動作の最適化を図ることができる。
【００３８】
図１に示すように、セルコントローラ１１は機械学習器２６を有してもよく、機械学習器２６は、システム稼働情報分析器２１および状態量分析器２２の出力から、修正した動作プログラムを得るための強化学習を行い、その結果をシミュレータ２４に送るように構成されている。
【００３９】
機械学習器２６による強化学習方法の一例として、Ｑ学習を用いて学習する場合について説明する。Ｑ学習は、ある環境状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法である。つまり、ある状態ｓのとき、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は、状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェント（行動主体）は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して、報酬が与えられる。それにより、エージェントは、より良い行動の選択、すなわち、正しい価値Ｑ（ｓ，ａ）を学習していく。
【００４０】
本実施形態にＱ学習を適用して学習を行う場合、状態量ｓは、システム稼働情報分析器２１の出力と、状態量分析器２２の出力で構成される。行動ａは、動作プログラムへの改良命令であり、たとえばプログラム名ＸのＹ行目にＺという値の修正を加える場合には、Ｘ，Ｙ，Ｚを成分とするベクトルとして表すことができる。このｓとａで構成される価値関数Ｑを、報酬を与えて繰り返し学習させる。たとえば、タクトタイムが短い場合は選択された行動にプラスの報酬を与え、一方、状態量の閾値に対する超過量が大きい場合は選択された行動にマイナスの報酬を与えることにより、状態量の制限を満たしながら、タクトタイムが短い最適な動作を学習させることができる。
【００４１】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σ（γt）ｒt］となるようにすることを目指す。ここでＥは期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒtは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、分かっていないので、探索しながら学習することになる。このような価値Ｑ（ｓ，ａ）の更新式は、例えば、次の式（１）により表すことができる。
【００４２】
【数１】
2017199077.tif 000003
【００４３】
上記の式（１）において、ｓtは、時刻ｔにおける環境の状態を表し、ａtは、時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。ｒt+1は、その状態の変化により得られる報酬を表している。また、「ｍａｘ」が付された項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータであり、割引率と呼ばれる。また、αは、学習係数であり、０＜α≦１の範囲とする。
【００４４】
上述のように、機械学習器２６は、システム稼働情報分析器２１および状態量分析器２２の出力から、動作プログラムの修正方法を学習し、具体的には、生産システム１２のタクトタイムに応じた報酬を、選択された行動に与えることによって強化学習を行う。一般に機械学習には、多くの試行回数が必要となるが、本実施形態ではシミュレータ２４により、実機を動作させることなくタクトタイムのシミュレーションを行うことができるため、報酬を高速に計算でき、学習を高速に進めることができる。
【符号の説明】
【００４５】
１１    セルコントローラ
１２    生産システム
２１    システム稼働情報分析器
２２    状態量分析器
２３    プログラム改良器
２４    シミュレータ
２５    表示器
２６    機械学習器
３１    産業機械
４１    クラウドサーバ
【図１】
2017199077.tif 000004
【図２】
2017199077.tif 000005
【図３】
2017199077.tif 000006
【図４】
2017199077.tif 000007