(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025002049
(43)【公開日】2025-01-09
(54)【発明の名称】制御プログラム生成装置、制御プログラム生成システム及び制御プログラム生成方法
(51)【国際特許分類】
G05B 19/05 20060101AFI20241226BHJP
【FI】
G05B19/05 A
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023101958
(22)【出願日】2023-06-21
(71)【出願人】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】永井 裕
(72)【発明者】
【氏名】大稔 真斗
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220AA04
5H220AA05
5H220BB12
5H220CC07
5H220CX02
5H220JJ16
5H220JJ24
5H220JJ34
(57)【要約】
【課題】制御プログラム生成装置において、ユーザーのプログラミンングに関する負担を大幅に軽減する。
【解決手段】変化点検出部で検出された変化点のうち略同一タイミングで発生した少なくとも2つ以上の変化点に基づき2つ以上の変化点を原因と結果に分類する因果関係情報を検出する因果関係検出部と、因果関係情報に基づいて制御対象の制御プログラムを生成するプログラム生成部を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の構成要素からなる制御対象のシミュレーションモデルの出力結果から前記シミュレーションモデルが再現する前記構成要素の各タイミングにおける動作の発生を示す変化点を検出する変化点検出部と、
前記変化点検出部で検出された前記変化点のうち、略同一タイミングで発生した少なくとも2つ以上の変化点に基づき前記2つ以上の変化点を原因と結果に分類する因果関係情報を検出する因果関係検出部と、
少なくとも前記因果関係情報に基づいて前記制御対象の制御プログラムを生成するプログラム生成部と、
を有することを特徴とする制御プログラム生成装置。
【請求項2】
前記因果関係検出部は、
前記2つ以上の変化点の先行関係を基に前記因果関係情報を検出する第1の検出モードを有することを特徴とする請求項1に記載の制御プログラム生成装置。
【請求項3】
前記因果関係検出部は、
前記略同一タイミングの前記変化点のうちの一つを強制的に停止させた場合のシミュレーション結果の変化から前記因果関係情報を検出する第2の検出モードを有することを特徴とする請求項2に記載の制御プログラム生成装置。
【請求項4】
一旦検出された前記タイミング以降は前記検出された前記因果関係情報が保持されるとの仮定に基づいて前記因果関係情報を検出するか否かを判定して前記因果関係情報の検出法を切り替える第1の切替手段を更に有することを特徴とする請求項3に記載のプログラム生成装置。
【請求項5】
前記第2の検出モードにおいて、
前記略同一タイミングの前記変化点のうち一つを強制的に停止させた場合のシミュレーション結果の変化から前記因果関係情報を検出する第1の方法と、前記略同一タイミングの前記変化点とステート情報のうち一つを強制的に停止させた場合のシミュレーション結果の変化から前記因果関係情報を検出する第2の方法と、を切り替える第2の切替手段を更に有することを特徴とする請求項4に記載の制御プログラム生成装置。
【請求項6】
前記因果関係検出部は、
前記第1の切替手段における第1の切替条件と前記第2の切替手段における第2の切替条件とによって生じる組合せ条件に対して、前記因果関係情報の検出処理量の少ない前記組合せ条件を順に採用して前記因果関係情報を検出することを特徴とする請求項5に記載の制御プログラム生成装置。
【請求項7】
複数の前記構成要素からなる前記制御対象の前記シミュレーションモデルを出力するモデルシミュレータを更に有することを特徴とする請求項1に記載の制御プログラム生成装置。
【請求項8】
前記プログラム生成部にて生成された前記制御プログラムに従って複数の前記構成要素からなる前記制御対象を制御する制御部を更に有することを特徴とする請求項1に記載の制御プログラム生成装置。
【請求項9】
複数の構成要素からなる制御対象のシミュレーションモデルのタイミング情報及び因果関係情報から前記制御対象の制御プログラムを生成する制御プログラム生成部と、
前記制御プログラムに従って自動化された製造ライン又は搬送ラインを制御する制御部と、
前記製造ライン又は前記搬送ラインの動作情報を検出して保存するロギング部と、
前記シミュレーションモデルの前記タイミング情報と前記ロギング部に保存された前記動作情報とを比較することにより前記製造ライン又は前記搬送ラインの動作良否を判定する判定部と、
を有することを特徴とする制御プログラム生成システム。
【請求項10】
複数の構成要素からなる制御対象のシミュレーションモデルの出力結果から前記シミュレーションモデルが再現する前記構成要素の各タイミングにおける動作の発生を示す変化点を検出する変化点検出ステップと、
検出された前記変化点のうち、略同一タイミングで発生した少なくとも2つ以上の変化点に基づき前記2つ以上の変化点を原因と結果に分類する因果関係情報を検出する因果関係検出ステップと、
少なくとも前記因果関係情報に基づいて前記制御対象の制御プログラムを作成するプログラム生成ステップと、を有し、
前記因果関係検出ステップは、
前記2つ以上の変化点の先行関係を基に前記因果関係情報を検出する第1の検出モードを有することを特徴とする制御プログラムの生成方法。
【請求項11】
前記因果関係検出ステップは、
前記略同一タイミングの前記変化点のうちの一つを強制的に停止させた場合のシミュレーション結果の変化から前記因果関係情報を検出する第2の検出モードを更に有することを特徴とする請求項10の記載の制御プログラム生成方法。
【請求項12】
一旦検出された前記タイミング以降は前記検出された前記因果関係情報が保持されるとの仮定に基づいて前記因果関係情報を検出するか否かを判定して前記因果関係情報の検出法を切り替える第1の切替ステップを更に有することを特徴とする請求項10に記載のプログラム生成方法。
【請求項13】
前記第2の検出モードにおいて、
前記略同一タイミングの前記変化点のうち一つを強制的に停止させた場合のシミュレーション結果の変化から前記因果関係情報を検出する第1の方法と、前記略同一タイミングの前記変化点とステート情報のうち一つを強制的に停止させた場合のシミュレーション結果の変化から前記因果関係情報を検出する第2の方法と、を切り替える第2の切替ステップを更に有することを特徴とする請求項11に記載の制御プログラム生成方法。
【請求項14】
前記シミュレーションモデルの出力結果を得る際にシミュレーションサイクルを変動させた場合の各タイミングの変化を基にして、前記制御プログラムの固定遅延を抽出することを特徴とする請求項10に記載の制御プログラム生成方法。
【請求項15】
前記検出された前記変化点の前記略同一タイミング以外の変化点及びステート情報の状態が同じ場合において特定回数ごとに発生する動作を基準にカウンタ制御を行うことを特徴とする請求項10に記載の制御プログラム生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラム生成装置、制御プログラム生成システム及び制御プログラム生成方法に関する。
【背景技術】
【0002】
本発明の背景技術としては、例えば特許文献1がある。特許文献1では制御プログラムの作成作業を支援するために、因果関係情報を伴うタイムチャートをユーザーが入力すると入力データからPLCラダープログラムを自動生成することが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、例えばPLCの場合、制御プログラムをユーザーがラダープログラムを直接コーディングすることが不要になる。
【0005】
しかしながら、制御対象となる生産ラインもしくは搬送ライン等に関する各要素の因果関係情報を含んだタイミングチャートをユーザーが入力する必要があり、ユーザーに大きい負担が残る。また、全体のシーケンスを構想する技能がユーザーには必要となる。
【0006】
本発明の目的は、制御プログラム生成装置において、ユーザーのプログラミンングに関する負担を大幅に軽減することにある。
【課題を解決するための手段】
【0007】
本発明の一態様の制御プログラム生成装置は、複数の構成要素からなる制御対象のシミュレーションモデルの出力結果から前記シミュレーションモデルが再現する前記構成要素の各タイミングにおける動作の発生を示す変化点を検出する変化点検出部と、前記変化点検出部で検出された前記変化点のうち、略同一タイミングで発生した少なくとも2つ以上の変化点に基づき前記2つ以上の変化点を原因と結果に分類する因果関係情報を検出する因果関係検出部と、少なくとも前記因果関係情報に基づいて前記制御対象の制御プログラムを生成するプログラム生成部と、を有することを特徴とする。
【発明の効果】
【0008】
本発明の一態様によれば、制御プログラム生成装置において、ユーザーのプログラミンングに関する負担を大幅に軽減することができる。
【図面の簡単な説明】
【0009】
【
図1】制御プログラムの自動生成システムのブロック図である。
【
図2】制御プログラムの自動生成方法のフローチャートである。
【
図3】制御プログラムの自動生成方法を示すタイミングチャートである。
【
図4】本発明に好適な自動製造ラインもしくは自動搬送ラインを示す説明図である。
【
図5】制御プログラムの自動生成方法を示すタイミングチャートである。
【
図6】制御プログラムの自動生成方法を示すタイミングチャートである。
【
図7】制御プログラムの自動生成方法を示すタイミングチャートである。
【
図8】制御プログラムの自動生成方法を示すタイミングチャートである。
【
図9】制御プログラムの自動生成方法を示す説明図である。
【
図10】制御プログラムの自動生成方法のフローチャートである。
【
図11】制御プログラムの自動生成方法のフローチャートである。
【
図12】制御プログラムの自動生成方法のフローチャートである。
【
図13】制御プログラムの自動生成方法のフローチャートである。
【
図14】制御プログラム開発装置のブロック図である。
【
図15】生産ラインもしくは搬送ラインのシミュレーションシステムのブロック図である。
【
図17】制御プログラム生成用のテンプレートを示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施例について説明する。
【0011】
図2、
図3、
図4を用いて、制御プログラムの自動生成方法の第1の実施例を説明する。
図2は本実施例による制御プログラムの自動生成方法のフローチャートである。
図3は本実施例による制御プログラムの自動生成の動作を説明するタイミングチャートである。
図4は制御プログラムの自動生成を行う対象となる自動化された製造ラインもしくは搬送ラインの3Dシミュレーションモデルを示す説明図である。
【0012】
図4において、401はコンベア402への入力位置にワーク(製造もしくは搬送の対象物)が到着したことを検出すると短いパルスを発生させる物体センサである。本実施例の3Dシミュレーションモデルでは、401がワークを検出するとコンベア402を起動させるように制御を行うようにモデリングされている1)。403はワークがロボット404に到達したことを検出すると短いパルスを発生する物体センサである。
【0013】
本実施例の3Dシミュレーションモデルでは、403がワークを検出するとコンベア402を停止させるとともに、ロボット404を起動させるように制御を行うようにモデリングされている(2)。405はワークがロボット404からコンベア406に到達したことを検出すると短いパルスを発生する物体センサである。
【0014】
本実施例の3Dシミュレーションモデルでは405がワークを検出するとロボット404を停止させるとともに、コンベア406を起動させるように制御を行うようにモデリングされている(3)。407はワークがロボット408及びロボット409に到達したことを検出すると短いパルスを発生する物体センサである。本実施例の3Dシミュレーションモデルでは407がワークを検出するとロボット408、ロボット409を起動させるように制御を行うようにモデリングされている(4)。
【0015】
上述したように、本実施例の3Dシミュレーションモデルは401~409の各機械要素と、(1)~(4)に示されるような制御要素が含まれている。なお、(1)~(4)のような制御要素は各シミュレーションベンダによって記述方法は異なる。
【0016】
図3のタイミングチャートは以上の3Dシミュレーションモデルの動作を示したものである。
【0017】
本タイミングチャートにおいて、プロダクトセンサonコンベア1(コンベア1の上のプロダクトセンサに与えた名称)は物体センサ401の動作タイミングを示したものであり、コンベア1はコンベア402の動作タイミングを示したものである。
【0018】
プロダクトセンサonロボット1(ロボット1の上のプロダクトセンサに与えた名称)は、物体センサ403の動作タイミングを示したものである。ロボット1はロボット404の動作タイミングを示したものであり、プロダクトセンサonコンベア2(コンベア2の上のプロダクトセンサに与えた名称)は物体センサ405の動作タイミングを示したものである。
【0019】
コンベア2はコンベア406の動作タイミングを示したものであり、プロダクトセンサonロボット2・3(ロボット2及び3の上のプロダクトセンサに与えた名称)は、物体センサ407の動作タイミングを示したものであり、ロボット2はロボット408の動作タイミングを示したものであり、ロボット3はロボット409の動作タイミングを示したものである。
【0020】
このタイミングチャート上の310の箇所は上述した、401がワークを検出するとコンベア402を起動させる(1)の動作が発生している。310では、プロダクトセンサonコンベア1のパルス発生がすると、コンベア1が略同一のタイミングで動作開始していることが示される。
【0021】
なお、プロダクトセンサonコンベア1のパルス発生とコンベア1起動が略同一のタイミングではあるが、プロダクトセンサonコンベア1のパルス発生が原因となる現象でコンベア1の起動は結果となる現象であるので、プロダクトセンサonコンベア1のパルス発生がコンベア1の起動に対して、微小タイミング先行している。
【0022】
このタイミングチャート上の321の箇所は上述した、403がワークを検出するとコンベア402を停止させるとともに、ロボット404を起動させる(2)の動作が発生している。321では、プロダクトセンサonロボット1のパルスが発生すると、コンベア1が略同一のタイミングで動作停止するとともに、ロボット404が動作起動していることが示される。
【0023】
なお、プロダクトセンサonロボット1のパルス発生とコンベア1停止とロボット1起動が略同一のタイミングではあるが、プロダクトセンサonロボット1のパルス発生が原因となる現象で、コンベア1の停止とロボット1の起動は結果となる現象なので、プロダクトセンサonロボット1のパルス発生がコンベア1の停止、ロボット1の起動に対して、微小タイミング先行している。コンベア1の停止、ロボット1の起動のタイミングの先行関係は、両者には因果関係がないため先行、完全同時、遅延の何れもありうる。
【0024】
このタイミングチャート上の330の箇所は上述した、401がワークを検出するとコンベア402を起動させる(1)の動作が発生している。330では、追加のワークが投入されて、プロダクトセンサonコンベア1のパルスが発生すると、コンベア1が略同一のタイミングで動作開始していることが示される。
【0025】
なお、プロダクトセンサonコンベア1のパルス発生とコンベア1起動が略同一のタイミングではあるが、プロダクトセンサonコンベア1のパルス発生が原因となる現象で、コンベア1の起動は結果となる現象なので、プロダクトセンサonコンベア1のパルス発生がコンベア1の起動に対して、微小時間先行している。
【0026】
このタイミングチャート上の332の箇所は上述した、405がワークを検出するとロボット404を停止させるとともに、コンベア406を起動させる(3)の動作が発生している。332では、プロダクトセンサonコンベア2でパルス発生すると、ロボット1が略同一のタイミングで動作停止するとともに、コンベア2が動作開始していることが示される。
【0027】
なお、プロダクトセンサonコンベア2のパルス発生とロボット1の停止と、コンベア2起動が略同一のタイミングではあるが、プロダクトセンサonコンベア2のパルス発生が原因となる現象なので、プロダクトセンサonコンベア2のパルス発生が、ロボット1の停止と、コンベア2の起動に対して、微小タイミング先行している。ロボット1の停止、コンベア2の起動のタイミングの先行関係は、両者には因果関係がないため先行、完全同時、遅延の何れもありうる。
【0028】
このタイミングチャート上の341の箇所は追加のワークに対する動作で321の説明と同じ動作である。上述した、403がワークを検出するとコンベア402を停止させるとともに、ロボット404を起動させる(2)の動作が発生している。321では、プロダクトセンサonロボット1のパルスが発生すると、コンベア1が略同一のタイミングで動作停止するとともに、ロボット404が動作起動していることが示される。
【0029】
なお、プロダクトセンサonロボット1のパルス発生とコンベア1停止とロボット1起動が略同一のタイミングではあるが、プロダクトセンサonロボット1のパルス発生が原因となる現象なので、プロダクトセンサonロボット1のパルス発生がコンベア1の停止、ロボット1の起動に対して、微小時間先行している。コンベア1の停止、ロボット1の起動のタイミングの先行関係は、両者には因果関係がないため先行、完全同時、遅延の何れもありうる。
【0030】
このタイミングチャート上の343の箇所は、上述した、407がワークを検出するとコンベア406を停止させるとともに、ロボット408、ロボット409を起動させる(4)の動作が発生している。343では、プロダクトセンサonロボット2・3のパルスが発生すると、コンベア2が略同一のタイミングで動作停止するとともに、ロボット408、409が動作起動していることが示される。
【0031】
なお、プロダクトセンサonロボット2・3のパルス発生とコンベア2停止とロボット2・3起動が略同一のタイミングではあるが、プロダクトセンサonロボット2・3のパルス発生が原因となる現象なので、プロダクトセンサonロボット2・3のパルス発生がコンベア2の停止、ロボット2・3の起動に対して、微小タイミング先行している。コンベア2の停止、ロボット2・3の起動のタイミングの先行関係は、両者には因果関係がないため先行、完全同時、遅延の何れもありうる。
【0032】
このタイミングチャート上の350の箇所は、上記の310の箇所と330の箇所についての説明と同様となる。このタイミングチャート上の352の箇所は、上記の332の箇所についての説明と同様となる。
【0033】
図4の3Dシミュレーションモデルに対してシミュレーションを実施すると、
図3に示されるようなタイミングチャートが結果として得られる。但し、タイミングチャートの説明で用いた因果関係はシミュレーション結果として出力されるものではない。
【0034】
図2のフローチャートは、
図4に示される3Dシミュレーションモデルに対し、
図3で示されるようなタイミング情報と、このタイミング情報から因果関係情報を再生して、タイミング情報と因果関係情報から3Dシミュレーションモデルに対する制御プログラムを自動生成する方法を示したものである。
【0035】
図2のフローチャートにおいて、201は処理のスタートを示し、202は
図3に示されるような各構成要素の変化点を時間0、
図3の場合では、図左端から順々にサーチしていくことを示す。203は
図3の310~352などの変化点がある各タイミングであるかを判定するものである。
【0036】
204は変化点ありと判断された場合は、略同一のタイミングの中で変化点がいくつあるかを判定する処理を示し、略同一タイミング要素が一個の場合はエラー処理を行うか何もしない。
【0037】
略同一タイミング要素が2個の場合は
図3の310の説明で示したように原因となる現象と結果となる現象の間には物理的な先行関係が必ずあるため、先行関係から2つの要素のうちどちらが原因となる物か(310の場合だとプロダクトセンサonコンベア1)、どちらが結果となる物かを判定する(205)。
【0038】
但し、シミュレータの時間解像度以下となって、物理的には存在している生存関係を正しく測定できずに誤って同一タイミングとしたり、先行関係を間違ってしまったような場合もまれに考えられるが、エラー処理として略同一タイミング要素3個以上の場合の処理を行うことで因果関係の判定は可能である。
【0039】
略同一タイミング要素が3個の場合は、先行関係のみから因果関係を判定することはできないため変化点の該当装置のうち一つを強制ホールドしたうえでシミュレーションを実施して、強制ホールドしたことによって略同一タイミングの他の要素のシミュレーション結果が変化するかによって因果関係判定を行う(206)。
【0040】
処理206については、
図5を用いて詳細に説明する。207は205及び206で求められた因果関係に基づいて制御して判定結果が正しいかチェックを行う。208でシミュレーションを実施した全時間範囲の変化点の因果関係に関する判定作業を終了したか確認し、終了した場合は、全時間範囲のタイミング関係と因果関係からPLCなどの制御プログラムを生成する(209)。209までの処理で制御プログラムが自動生成された後で、処理全体を終了する(210)。
【0041】
以上、本実施例によれば3Dシミュレーションモデルによるシミュレーション結果から各機器間の因果関係を抽出することができ、タイミング情報と因果関係情報から自動化された製造ラインもしくは搬送ラインのシーケンス制御プログラムを自動生成することが可能となる。このため、製造ラインもしくは搬送ラインのシミュレーションモデルで検証を行った後にPLCなどの制御言語について専門的な知識を持たなくても、容易且つ迅速にシーケンス制御プログラムを得ることができる。
【0042】
また、シミュレータのモデル動作記述の中のシーケンス制御の記述を探索してシーケンス制御に対応する部分を変換するようなことは行わずに何れの3Dモデルシミュレータでも得られる変化タイミングの情報を外部に出力することと、通常のシミュレータでデバッグのために準備されている指定された箇所を指定されたタイミングで強制ホールドを行う機能があればシーケンス制御プログラムを自動生成することが可能となる。このため、特定のシミュレータに依存することなく、多くの3Dモデルシミュレーションにおいて同じ効果が得られることが可能となる。
【0043】
図1を用いて、制御プログラムの自動生成装置の実施例を説明する。
図1は本実施例による制御プログラムの自動生成装置のブロック図である。
【0044】
図1において、101は変化点検出処理手段であり、
図2の202、203で示される変化点の検出処理を行う。102は因果関係判定前提条件切替手段であり、
図2の204に対応する処理で略同一のタイミングに何個の変化点があるかによって因果関係の抽出する処理を切り替える手段である。略同一タイミングにおける変化点が2個の場合は、検出指示を101に戻し、101は該略同一変化点間の先行関係情報を因果関係判定手段103に送る。
【0045】
略同一タイミングにおける変化点が3個以上の場合は、強制停止制御手段104に、3Dシミュレーションモデル180を指定したタイミングで強制停止させてこの場合のシミュレーション結果をSim結果判定手段106に送って、略同一タイミングで変化点がある要素のうち強制停止した要素以外のシミュレーション結果の変化があるかを判定する。105はステート検出処理手段であり所定の状態を検出する(
図6参照)。
【0046】
因果関係判定手段103は変化点検出処理手段101から送られてくる先行関係情報もしくは、Sim結果判定手段106から送られてくる強制ホード実施した条件でのシミュレーション結果から因果関係を判定する(
図2の205,206処理に対応する)。
【0047】
プログラム生成手段107は、因果関係判定手段103から送られてくる因果関係情報と、3Dシミュレーションモデル180から送られてくるタイミング情報を基に制御プログラムを自動生成する(
図2の209処理に対応)。
【0048】
自動生成されたプログラムは、PLCコントローラ190に送られ、PLCコントローラ190によるシーケンス制御により3Dシミュレーションモデル180を制御してバーチャル検証をおこなう。この時、3Dシミュレーションモデル180は通常の内部の制御記述ではなく外部からの制御を受け付けるように制御切替手段181によってモードを切り替えられる。
【0049】
また検証終了後、
図1に記載しなかったが、PLCコントローラ190に実機を接続することで、3Dシミュレーションモデルと統合検証済のPLCプログラムで、実機を制御することができる。
【0050】
以上、本実施例によれば3Dシミュレーションモデルによるシミュレーション結果から各機器間の因果関係を抽出することができ、タイミング情報と因果関係情報から自動化された製造ラインもしくは搬送ラインのシーケンス制御プログラムを自動生成する装置が得られる。このため、製造ラインもしくは搬送ラインのシミュレーションモデルで検証を行った後にPLCなどの制御言語について専門的な知識を持たなくても、容易且つ迅速にシーケンス制御プログラムを得ることができる。
【0051】
また、3Dシミュレーションモデルの制御をおこなうことができるので、自動生成したPLCプログラム自身で3Dシミュレーションと統合検証を行うことができるため、容易のバーチャル統合検証が実現可能となる。
【0052】
図5を用いて
図2で示される実施例の説明中の処理206の処理内容の詳細について説明する。
【0053】
図3で示された341の箇所、343の箇所がある略同一タイミングには変化点は7個の要素が変化している。プロダクトセンサonロボット1と、コンベア1の停止と、ロボット1の起動の因果関係は321の箇所で既に抽出されており、341の箇所でも因果関係は変わらないと仮定すると、341の要素3個は除外し、343の要素4個のうち1個をシミュレーションの実行時に強制ホールドを行い他の4個の要素の変化を観測することで因果関係を抽出することが可能となる。
【0054】
具体的に言えば、(1)コンベア2の停止を強制的に禁止して当該タイミングで動作を継続(チャートではH維持)させてシミュレーションを実施した時に、プロダクトセンサonロボット2・3のレンズマークを記した箇所に変化はないか、ロボット2のレンズマークを記した箇所に変化はないか、ロボット3のレンズマークを記した箇所に変化はないかを確認する。
【0055】
(2)プロダクトセンサonロボット2・3のエッジ箇所を強制停止して、コンベア2のレンズマークを記した箇所に変化はないか、ロボット2のレンズマークを記した箇所に変化はないか、ロボット3のレンズマークを記した箇所に変化はないかを確認する。(3)ロボット2の起動箇所を強制ホールドして、他の4か所のレンズマーク箇所を観察する。(4)ロボット3の起動箇所を強制ホールドして、他の4か所のレンズマーク箇所を観察する。(1)~(4)の強制ホールドと観察を行うと、プロダクトセンサonロボット2・3を強制ホールドする(2)の場合のみ観察箇所の結果が変化するので、原因はプロダクトセンサonロボット2・3が原因であって、コンベア2の停止とロボット2の起動とロボット3の起動は結果となる動作であることがわかる。
【0056】
以上、本実施例によれば、略同一のタイミングに変化点が3個以上あった場合の因果関係の抽出方が具体的に提供されるため、制御プログラムの自動生成方法がより具体的に示される。また、本例では一度抽出された因果関係が保持されるとして(341の除外処理を指す)因果関係の抽出を行ったが、この方法によって順次強制ホールドを行って変化の有無を観察する処理の対象を減らすことができる。このため、抽出処理の処理量を大幅に削減し高速化することを可能とする。
【0057】
図6を用いて、制御に関連する要素が変化点だけではなく安全柵の状態がOKの状態になっているかの要素も制御に関する因果関係に含まれる場合について説明する。
【0058】
本例では安全柵の状態がOK(安全である状態である)且つプロダクトセンサonロボット2・3がパルスを発生するような場合に動作の起動、停止を行わせるモデルにおいてシミュレーション結果から、この因果関係を抽出する場合について説明する。
【0059】
本例においては、
図5と同様にコンベア2、プロダクトセンサonロボット2・3、ロボット2、ロボット3の各要素を順にそれぞれ強制ホールドするときに安全柵の状態を強制的にセット/リセットする両方の状態について行う。以上の処理は主に
図1のステート検出処理手段105を用いて行われる。
【0060】
以上、本例によれば、原因側にステート状態も含まれる場合も因果関係を抽出することが可能になり。より広い種類の制御についてプログラムの自動生成を対応させることが可能となる。
【0061】
図7を用いて、制御プログラムとしてカウンタ処理が含まれている制御に対応した自動生成法に関する実施例について説明する。
【0062】
図7は、
図3同様に
図4で示されるような(但しコンベア402は物体センサ401が2回検出を行う都度動作を開始するモデルである。)自動化された製造ラインもしくは搬送ラインのシミュレーションモデルでシミュレーションを実施したときに得られたタイミングチャートである。
【0063】
図7において、701の箇所では、
図3で説明した同じように、401がワークを検出するとコンベア402を起動させる動作が発生しており、プロダクトセンサonコンベア1のパルスが発生すると、コンベア1が略同一のタイミングで動作開始していることが示される。702の箇所では、
図3で説明したとは異なり、プロダクトセンサonコンベア1のパルスが発生しても、コンベア1は動作開始しないことが示される。
【0064】
703の箇所では、今度は702とは異なり701とは同様となり、プロダクトセンサonコンベア1のパルスが発生すると、コンベア1が略同一のタイミングで動作開始する。704の箇所では、703とは異なり702とは同様にプロダクトセンサonコンベア1のパルスが発生しても、コンベア1は動作開始しないことが示される。
【0065】
即ち、701で略同一タイミングで変化点が生じる要素プロダクトセンサonコンベア1とコンベア1は、因果関係があるように見えたり(701,703)見えなかったり(702,704)するわけであるが、タイミングを全期間通して観測することによって、プロダクトセンサonコンベア1での現象発生が奇数回の時、コンベア1の動作が発生すること、即ち2回に1回のカウンタ処理が抽出可能となる。
【0066】
以上、本実施例によれば、略同一タイミングで変化点が生じる要素に対して全期間の変化点発生を確認することで、2回に1回発生などのカウンタ処理を含んだ制御でも抽出することが可能である。この結果、多様な制御に対して制御プログラムの自動生成を行うことが可能となる。
【0067】
図8を用いて、制御プログラムとしてタイマ処理(固定遅延処理)が含まれている制御に対応した自動生成法に関する実施例について説明する。
【0068】
本発明では、略同一のタイミングにある変化点にある現象の因果関係を求めることを基本としている。ところがタイマ処理で固定遅延が発生すると、原因に対しての結果となる現象が略同一のタイミングには、発生しないことになり因果関係の判定が困難になる。
【0069】
図8はタイマ処理を含んだ製造ラインもしくは搬送ラインの動作のタイミングチャートを示している。最初に
図8の上段を見る。ここでは、プロダクトセンサonロボット1が物体を検出してパルスを発生したときに、1定時間D経過してからロボット1が起動するようになっているとする。
【0070】
従って、プロダクトセンサonロボット1のパルス発生が原因となる現象であり、ロボット1の起動が結果となる動作であるが、遅延時間Dがあるため、ロボット1の起動の変化点は孤立した現象となり(略同一タイミングをサーチすると1個しかない状態)、略同一のタイミングの現象を因果関係の対象とすると因果関係判定方法が有効に作用しない。
【0071】
従って、タイマ処理がある箇所を正確に検出してタイマの遅延分を補正することが必要となる。
図8aと
図8bとではワークの投入サイクルをaから2aと変更している。このようにパラメータを変更しても固定遅延は定数で与えられているため変更によらず変化しない。
【0072】
図8ではサイクルの変化のみを示したが、コンベア、ロボット等の機械部分の動作速度のパラメータを振っても固定遅延部のみは変化しない。このように、シミュレーションモデル上のパラメータを変動させて、変動によらず変化しないタイミング関係を抽出することでタイマ処理の抽出個所を正確に検出することができる。
【0073】
以上、本実施例によればタイマ処理が含まれている製造ラインもしくは搬送ラインのシミュレーションモデルに対しても、タイマ処理箇所の補正が可能となる。この結果、制御プログラムの自動生成処理を、対象を限定せずに適用することが可能となる。
【0074】
図9を用いて、制御プログラムの自動生成方法に関する別の実施例に関して説明する。
【0075】
図5を用いた説明の中で、「プロダクトセンサonロボット1と、コンベア1の停止と、ロボット1の起動の因果関係は321の箇所で既に抽出されており、341の箇所でも因果関係は変わらないと仮定すると、341の要素3個は除外する」ということを示した。
【0076】
この一旦判定した因果関係は以降のタイミングでも保持するという手法は、以降のタイミングで因果関係の抽出処理をする対象を減らすことができる。即ち対象とする箇所の中の強制ホールドを個別に行う対象を減らし、シミュレーションの試行回数を減らすことによる処理時間の低減効果が大きい。しかし、プロダクトセンサonロボット1と、コンベア1の停止と、ロボット1の起動の因果関係が都度変化する場合があると、
図3の例でいえば321と341でプロダクトセンサonロボット1と、コンベア1の停止の因果関係が変わるような制御が行われている場合は、これら3者間の正確に因果関係を判定することはできなくなる。
【0077】
また、
図5の説明では変化点のみを対象にして因果関係の抽出を行った場合に対し、
図6の説明では変化点に加えてステート条件も加えて因果関係を抽出する手法を示した。ステート条件を加えて強制ホールド処理とシミュレーション試行を繰り返すことでより広い制御のバリエーションに対応可能となるが、処理時間が大きくなる。
【0078】
本例では、より広い制御のバリエーションに対して因果関係の抽出を正確に行うとともに、基本的な制御による自動化された製造ラインもしくは搬送ラインに対しては処理時間を短くする方法を提供する。
【0079】
図9の表は因果関係の判定処理を行うときの条件の組合せを変えて1次抽出ループから試行を行い因果関係がうまく抽出できなかった場合は、2次抽出ループで条件の組合せを変更して試行を実施する。
【0080】
1次抽出ループから試行を行い因果関係がうまく抽出できなかった場合は、2次抽出ループで条件の組合せを変更して試行を実施する。2次抽出ループから試行を行い因果関係がうまく抽出できなかった場合は、3次抽出ループで条件の組合せを変更して試行を実施する。3次抽出ループから試行を行い因果関係がうまく抽出できなかった場合は、4次抽出ループで条件の組合せを変更して試行を実施する。
【0081】
なお、各次のループで因果関係の抽出結果がうまくいったかは、当該の因果関係に基づいて制御プログラムを生成したうえ、制御プログラムによる制御に切り替えて、シミュレーションモデルを動策させたときに元の動作と比較することで容易に実現できる。
【0082】
1次抽出ループの試行条件は、適用範囲は比較的に狭く自動生成の精度が落ちるが、判定の高速性を実現する組合せとして、(1)一旦判定された因果関係は保持されてステート情報は因果関係抽出の対象とはしない組合せとする。2次抽出ループの試行条件は、(2)因果関係を保持せずステート情報は因果関係抽出の対象とはしない条件の組合せとする。3次抽出ループの試行条件は、(3)因果関係を保持してステート情報は因果関係判定の対象とする条件の組合せとする。4次抽出ループの試行条件は、(4)因果関係を保持せずステート情報は因果関係抽出の対象とする条件の組合せとする。
【0083】
これらの条件の組合せで1次抽出ループから4次抽出ループまでの試行を繰り返すことで、より簡単な制御によるモデルはより短い処理時間で、より複雑な制御によるモデルでも処理時間はかかるが精度よく制御プログラムの自動生成を実現することが可能となる。
【0084】
図10、
図11、
図12、
図13を用いて
図9を用いて説明した実施例の詳細処理について説明する。
図10は、
図9の表に示される1次抽出ループの処理の詳細を示したフローチャートである。
図11は、
図9の表に示される2次抽出ループの処理の詳細を示したフローチャートである。
図12は、
図9の表に示される3次抽出ループの処理の詳細を示したフローチャートである。
図13は、
図9の表に示される4次抽出ループの処理の詳細を示したフローチャートである。
【0085】
図10において、1001は処理の開始を示し、1002は本願のタイミングチャートを介して因果関係によらなくてもライン上の機器間の因果関係がシミュレーションモデル上で明示的記載され抽出容易な部分があれば、抽出済として除外する処理を示す。1003は
図8で示したタイマ処理による固定ディレイを抽出する処理と、検出したディレイを一旦0にしてタイマ起動する原因事象との因果関係抽出が可能となるようにする。1004は202と同様にタイミング0から順次変化点を探索していく処理を示す。1005は203と同様に変化点がある各タイミングであるかを判定する処理である。1006は後述する1008、1009で因果関係が一旦判定されると保持すると以降の判定処理から除外することを示す(
図9の表の判定因果関係の保持を実現する処理)。1007は204と同様に変化点ありと判断された場合は、略同一のタイミングの中で変化点がいくつあるかを判定する処理を示す。略同一タイミング要素が1個の場合は、因果関係は成立せずエラー処理などをして抽出は行わない。2個の場合は、先行関係から2つ要素のうちどちらが原因となるものか、どちらが結果となるものかを判定する(1008)。略同一タイミング要素が3個の場合は、変化点該当装置の強制ホールド&チェックSimによる因果関係を判定する(1009)。判定した因果関係情報とタイミング情報から自動生成した制御プログラムにより制御するように切り替えてシミュレーションを実施する(1010)。シミュレーション結果が元のシミュレーション結果と相違ないか判定処理(1011)を実施して、一致しなければ2次抽出ループへ処理を移行し(1014)、一致すれば抽出した因果換気は正しいとして、サーチ終端まで終了するまで(1012)以上の処理を繰り返す。サーチが終了すれば処理を終了する(1013)。
【0086】
図11において、1101は
図10で示される1次抽出ループから本図の2次抽出ループに処理が移行したことを示す。1102は1007同様変化点ありと判断された場合は、略同一のタイミングの中で変化点がいくつあるかを判定する処理を示す。変化点が略同一タイミング要素が、1個の場合には因果関係は成立せずエラー処理などをして抽出は行わない、2個であれば1104を実施、3個以上であれば1103を実施する。1104は1008と同様に先行関係による因果関係抽出を行う処理である。1103は1009と同様強制ホールドを用いた因果関係抽出処理である。1105は1010と同様のシミュレーション確認処理を示す。1106の判断処理で不一致とされれば3次抽出ループに進み、一致と判断されれば以降のタイミングにおける因果関係抽出を行うために1次抽出ループに戻る(1109)。
図11では、1006に対応する変化点の除外処理に対応する処理を含まないことで、一旦判定した因果関係を保持しないという条件での因果関係判定を実施する。
【0087】
図12において、1201は
図11で示される2次抽出ループから本図の3次抽出ループに処理が移行したことを示す。1202は1006と同様に因果関係が一旦検出されると保持すると以降の判定処理から除外する処理を示す。1203は
図6で説明した通り変化点に対する強制ホールドだけでなく、ステータス状態の強制セット/リセットも行って因果関係を実施する処理を示す。その後、シミュレーションを行い(1204)、結果が一致するか判定し(1205)、不一致となれば4次抽出ループに移行する(1208)。一致と判断されれば以降のタイミングにおける因果関係抽出を行うために1次抽出ループに戻る(1109)。3次抽出ループは、1次2次で抽出済となる略同一の変化点が2となる場合に関する処理は省いている。1203による強制ホールド処理で、3次抽出ループに対応する処理を実現する。
【0088】
図13において、1301は
図11で示される3次抽出ループから本図の4次抽出ループに処理が移行したことを示す。1302は1203と同様に
図6で説明した通り変化点に対する強制ホールドだけでなく、ステータス状態の強制セット/リセットも行って因果関係を実施する処理を示す。その後、シミュレーションを行い(1302)、結果が一致するか判定し(1303)、不一致となればエラー処理を行い終了する(1304)。一致と判断されれば以降のタイミングにおける因果関係抽出を行うために1次抽出ループに戻る(1305)。
【0089】
以上、
図10、
図11、
図12,
図13で示されたフローチャートによれば、
図9の表で示された判定条件の組合せを変更しながら抽出ループを繰り返し行い因果関係の抽出処理を行うことが実現できる。この結果、どのような制御が行われているモデルでも制御プログラムを自動生成可能であり、シミュレーションモデルの制御によって処理速度を高速化することを実現する。
【0090】
次に、
図14を用いて、制御プログラムの開発装置に関する実施例について説明する。
図14は制御プログラムの開発装置のブロック図である。
【0091】
図14の101~107の各要素は
図1で説明したものと同じであり、これらから構成される制御プログラムの自動生成装置110も
図1で説明したものと同じである。また、3Dモデルシミュレータ180、制御切替手段181も
図1で説明したものと同じものである。170は、制御プログラムの自動生成処理中のメッセージを表示するディスプレイである。
【0092】
PLCコントローラ190の内容は
図1の説明と同じであるが、本実施例においては3Dモデルシミュレータ180に接続されて、3Dモデルのシーケンス制御を行うだけでなく、製造ラインもしくは搬送ラインの実機である1401にも接続されて、製造ラインもしくは搬送ラインの実機1401の制御も行う。
【0093】
1402はロギングを行うロガーであり、PLCコントローラ190が行うシーケンス制御による実機1401の動作状態のロギングを行う。1403は動作判定手段であり、因果関係判定手段103で因果関係の判定に用いたタイミング情報とロガー1402のロギングしたタイミング情報との比較を行い、一致しており問題ないか、どこに不一致があり問題点はどこかを検出する。なお、PLCコントローラ190、ロガー1402及び動作判定手段1403の構成については、PLCコントローラ190の中に、ロガー1402及び動作判定手段1403が含まれているような構成で実現しても構わない。
【0094】
より具体的に説明すると
図3のタイミングチャートでは310から352の略同一タイミングの変化点の集まりである箇所ごと要素間の原因となる要素と結果となる要素の因果関係を抽出して因果関係とタイミング情報から制御プログラムを自動生成したわけだが、下記の(1)、(2)、(3)の処理から実機動作の良否の判定を行うことができる。
【0095】
(1)各箇所310から352内の要素の原因要素と結果要素間の先行関係がシミュレーションと実機ログ一致している(例えば、321において、プロダクトセンサonロボット1は、コンベア1停止及びロボット1起動に対して、先行している)。
【0096】
(2)各箇所310から352内の要素間の時間間隔の差分がシミュレーションと実機ログ一で一定の差分以内である(例えば、321において、プロダクトセンサonロボット1、コンベア1停止、ロボット1起動間のタイミングについてシミュレーションと実機との差が一定値以下である)。
【0097】
(3)各箇所310から352間の間隔について、あらかじめ定めたシミュレーションと実機ログ一で一定の差分以内である(例えば、310と321のタイミング差分がシミュレーションと実機ログ一で一定の値以下である)。
【0098】
以上、本実施例によれば、評価すべき実機動作をやみくもに収集することなく、制御プログラムの自動生成に関連する情報のみ比較することが容易にできる。この結果、実機の立ち上げ時に確認すべき箇所の特定と期待値との比較を容易に行うことが可能である。また、実機動作を判定したエビデンス情報を容易にそろえることが可能となる。
【0099】
次に、
図15を用いて、制御プログラムの自動生成処理装置及び3Dモデルシミュレータを含んだシミュレーション動作環境に関する実施例について説明する。
【0100】
図15はシミュレーション動作環境のブロック図である。
図15の101~107の各要素は
図1で説明したものと同じであり、これらから構成される制御プログラムの自動生成装置110も
図1で説明したものと同じである。また、3Dモデルシミュレータ180、制御切替手段181も
図1で説明したものと同じものである。
【0101】
本実施例のシミュレーション動作環境1501は図示した通り、3Dモデルシミュレータ180と制御プログラムの自動生成装置110から構成され汎用計算機等により実現されており、PLCコントローラ190と接続されている。
【0102】
本実施例によれば、
図5、
図6等でした強制ホールドによる因果関係の判定処理で必要となる多くのシミュレーション結果情報の通信が汎用計算機内部の信号伝達で実現することが可能となる。この結果、通信の高速化が可能である他、3Dモデルシミュレーションに必要となる強力な計算能力を利用することで、制御プログラムの自動生成処理に必要な演算処理を実現することが可能となる。また、ユーザーによっては制御したい対象によって異なるPLCコントローラを使いたい場合があるが、必要に応じて異なるPLCコントローラを接続することも容易に実現可能となる。
【0103】
次に、
図16を用いて、制御プログラムの自動生成処理装置110及びPLCコントローラ190を含んだ産業用制御装置の実施例について説明する。
図16は産業用制御装置のブロック図である。
【0104】
図16の101~107の各要素は
図1で説明したものと同じであり、これらから構成される制御プログラムの自動生成装置110も
図1で説明したものと同じである。また、PLCコントローラ190も
図1で説明したものと同じものであり、3Dモデルシミュレータ180、制御切替手段181も
図1で説明したものと同じものである。即ち、PLCコントローラを構成する計算装置によって、制御プログラムの自動生成処理装置110及びPLCコントローラ190を含んだ産業用制御装置が実現されることを示す。
【0105】
本実施例によれば、制御プログラムの自動生成処理装置110は、PLCコントローラ190を実現する計算装置により実現されている。制御プログラムの自動生成処理装置はタイミング情報と因果関係情報からPLCプログラムのテンプレートに変換する処理を実施することによってプログラム生成を行う。
【0106】
PLCプログラムはベンダの違いに記述の違いがある場合があるが、PLCコントローラ190を実現する計算装置によって実現されるため、PLCコントローラ190に合わせたテンプレートを準備することが容易かつ確実となる効果が得られる。
【0107】
また、3Dシミュレータ内の個別の記述方式によらず、制御プログラムの自動生成が可能であるため、各シミュレーションベンダのシミュレータ毎に得意な対象がある場合でも、ユーザーの対象によって自由に3Dシミュレータを選択することが可能となる。
【0108】
次に、
図17を用いて、タイミング情報と因果関係情報から自動化された製造ラインもしくは搬送ラインのシーケンス制御プログラムを自動生成方法の詳細説明を行う。
【0109】
図17において(a)は同時変化点がある場所のタイミング情報と因果関係情報を示す図である。(b)は
図17aの箇所のタイミング情報と因果関係情報に対応するPLCラダープログラムのテンプレートである。(c)は(a)の箇所のタイミング情報と因果関係情報に対応するPLCラダープログラムさらにはPLCファンクションブロック記述に対応するテンプレートである。
【0110】
(d)は
図17aの箇所のタイミング情報と因果関係情報に対応するPLCラダープログラムさらにはPLCシーケンシャルファンクションチャート記述に対応するテンプレートである。(e)は(a)の箇所のタイミング情報と因果関係情報に対応するPLCスタンダートテキスト記述のテンプレートである。
【0111】
(a)の箇所はコンベア動作の停止をトリガにロボットを起動する箇所は
図17bのラダープログラムに変換されるので、
図3のようなライン全体のタイムチャートの各箇所に対応するラダープログラムのテンプレートに変換して、変換された各テンプレートを接続することによって全体のシーケンス制御プログラムを生成する。
【0112】
(c)の場合は対応させるテンプレートをファンクションブロックにしただけでそれ以外は(b)ラダープログラム生成による場合と同じである。(d)の場合は対応させるテンプレートをシーケンシャルファンクションチャートにしただけでそれ以外は(b)ラダープログラム生成による場合と同じである。
【0113】
(e)の場合は対応させるテンプレートをスタンダードテキストにしただけでそれ以外は(b)ラダープログラム生成による場合と同じである。
【0114】
上記のようにタイムチャートの各箇所に対応するPLCプログラムの所望の記述方式に従ったテンプレートに変換する処理と、変換した各テンプレートを組み合わせることで所望の制御プログラムが得られる。
【0115】
以上、本実施例では、タイムチャートの各箇所のタイミング情報、因果関係情報に対応したテンプレートを組み合わせることで制御プログラム全体を自動生成することが可能である。また、PLCプログラムの各記述方式に従ったテンプレートを揃えることで、所望の記述方式の制御プログラムを容易に自動生成することが可能となる。
【0116】
本実施例によれば、生産ラインもしくは搬送ラインなどをモデリングした、シミュレーションモデルから自動的に、当該生産ラインもしくは搬送ラインの因果関係情報とタイミング情報を自動抽出でき、抽出した情報から制御プログラムを自動的に生成することができる。従って、ユーザーのプログラミンングに関する負担の大幅な軽減と、大幅に容易にすることが可能となる。
【符号の説明】
【0117】
101 変化点検出処理手段
102 因果関係判定前提条件切替手段
103 因果関係判定手段
104 強制停止制御手段
105 ステート検出処理手段
106 シミュレーション結果判定手段
107 プログラム生成手段