(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024130225
(43)【公開日】2024-09-30
(54)【発明の名称】制御プログラムの試行管理システム、試行管理方法および試行管理プログラム
(51)【国際特許分類】
G06F 8/30 20180101AFI20240920BHJP
G05B 19/042 20060101ALI20240920BHJP
【FI】
G06F8/30
G05B19/042
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023039845
(22)【出願日】2023-03-14
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(74)【代理人】
【識別番号】100139066
【弁理士】
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】島村 知行
(72)【発明者】
【氏名】植木 琢也
(72)【発明者】
【氏名】田原 豊
【テーマコード(参考)】
5B376
5H220
【Fターム(参考)】
5B376BC38
5B376BC67
5H220AA04
5H220BB07
5H220CC10
5H220CX10
5H220EE01
5H220FF05
5H220GG03
5H220GG14
5H220HH04
5H220JJ02
5H220JJ24
5H220JJ36
5H220KK08
5H220LL06
(57)【要約】
【課題】FAにおいて複数の制御装置を統括的に制御する制御プログラムの開発期間を短縮させる制御プログラムの試行管理システムを提供する。
【解決手段】試行管理システムは、制御設計者によって作成された制御プログラムをシミュレーションプログラムに仮想的に実行させる仮想実行部と、仮想実行部の実行結果が予め設定された基準を満たした場合に、制御プログラムを予め設定されたステップごとに実行して制御装置を現実的に動作させるステップ実行部と、ステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する呈示部と、現場作業者によるタイムチャートに対する評価を受け付ける受付部と、受付部が受け付けた評価に基づいて基準を更新する更新部とを備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
制御設計者によって作成された制御プログラムをシミュレーションプログラムに仮想的に実行させる仮想実行部と、
前記仮想実行部の実行結果が予め設定された基準を満たした場合に、前記制御プログラムを予め設定されたステップごとに実行して制御装置を現実的に動作させるステップ実行部と、
前記ステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する呈示部と、
前記現場作業者による前記タイムチャートに対する評価を受け付ける受付部と、
前記受付部が受け付けた前記評価に基づいて前記基準を更新する更新部と
を備える試行管理システム。
【請求項2】
前記受付部は、前記評価を前記タイムチャートの変形として受け付け、
前記更新部は、変形された前記タイムチャートに基づいて、シーケンシャルに実行される要素間の動作タイミングに関する基準を更新する請求項1に記載の試行管理システム。
【請求項3】
前記受付部は、前記評価を前記タイムチャートの変形として受け付け、
前記更新部は、変形された前記タイムチャートに基づいて、少なくとも一方が移動する要素間の距離に関する基準を更新する請求項1に記載の試行管理システム。
【請求項4】
前記受付部は、前記評価に付随する情報を受け付け、
前記更新部は、更新する前記基準に関連付けて前記情報を記憶部へ記憶させ、
前記仮想実行部は、前記シミュレーションプログラムによる前記制御プログラムの実行結果が、更新された前記基準を満たさない場合に、前記記憶部から前記情報を読み出して前記制御設計者に呈示する請求項1に記載の試行管理システム。
【請求項5】
制御設計者によって作成された制御プログラムをシミュレーションプログラムに仮想的に実行させる仮想実行工程と、
前記仮想実行工程の実行結果が予め設定された基準を満たした場合に、前記制御プログラムを予め設定されたステップごとに実行して制御装置を現実的に動作させるステップ実行工程と、
前記ステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する呈示工程と、
前記現場作業者による前記タイムチャートに対する評価を受け付ける受付工程と、
前記受付工程で受け付けた前記評価に基づいて前記基準を更新する更新工程と
を含む試行管理方法。
【請求項6】
制御設計者によって作成された制御プログラムをシミュレーションプログラムに仮想的に実行させる仮想実行工程と、
前記仮想実行工程の実行結果が予め設定された基準を満たした場合に、前記制御プログラムを予め設定されたステップごとに実行して制御装置を現実的に動作させるステップ実行工程と、
前記ステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する呈示工程と、
前記現場作業者による前記タイムチャートに対する評価を受け付ける受付工程と、
前記受付工程で受け付けた前記評価に基づいて前記基準を更新する更新工程と
をコンピュータに実行させる試行管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラムの試行管理システム、試行管理方法および試行管理プログラムに関する。
【背景技術】
【0002】
プログラム開発において、プログラムコード欠陥を迅速に特定する技術が多く提案されている。例えば、特許文献1によれば、エラーが存在しない旧プログラムと、開発された新プログラムのそれぞれにポイントを設定し、旧プログラムと新プログラムの間で代替的にプロシージャを実行することにより、欠陥を生じさせている位置を特定している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
FA(factory automation)におけるプログラム開発では、例えばロボットアームや部品供給装置、ベルトコンベアなどの複数の制御装置を用いて製造品を製造する製造ラインに対して、これらの制御装置を統合的に制御する制御プログラムが開発される。制御設計者は、製造品が適切に製造できるようにそのような制御プログラムを設計する。設計された制御プログラムは、それらの制御装置を適切に動作させることができるか、実際にそれらの制御装置を動作させる前にシミュレーションプログラムにかけられ、その適否が判定される。不適と判定されれば、制御設計者は、再度制御プログラムを設計し直す。
【0005】
シミュレーションプログラムに適正と判定されれば、制御プログラムは、実際にそれらの制御装置に対して試験的に実行される。制御装置の保守や点検等を担う現場作業者は、そのような試験を観察し、想定通りの工程が実現されるか否かを判断する。不具合があれば、現場作業者はその状況を制御設計者へ報告し、制御設計者はそのような報告を受けて、制御プログラムを設計し直す。すなわち、FAにおけるプログラム開発においては、その制御プログラムにエラー(バグ)が含まれるか否かが問題となる場合に留まらず、プログラム自体にエラーが含まれなくても、製造現場で想定と異なる動作を引き起こす制御プログラムは不適と判断される。
【0006】
したがって、従来の制御プログラムの開発においては、制御設計者と現場作業者の間で何度もの往復が発生し、それが開発期間を延長させる一つの要因となっていた。また、例えば製造ラインのレイアウト変更等に伴う制御プログラムのアップデートも同様であった。現場作業者が制御プログラムのソースコードを直接的に判読できるのであれば、制御プログラムの修正、更新を迅速に行える可能性はあるものの、そのようなスキルを持つ現場作業者は稀である。一方で、製造ライン現場における制御装置間の調整等のノウハウを熟知している制御設計者も稀である。このような事情も重なって、制御プログラムの開発期間が長期化している。
【0007】
本発明は、このような問題を解決するためになされたものであり、FAにおいて複数の制御装置を統括的に制御する制御プログラムの開発期間を短縮させる制御プログラムの試行管理システム等を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様における試行管理システムは、制御設計者によって作成された制御プログラムをシミュレーションプログラムに仮想的に実行させる仮想実行部と、仮想実行部の実行結果が予め設定された基準を満たした場合に、制御プログラムを予め設定されたステップごとに実行して制御装置を現実的に動作させるステップ実行部と、ステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する呈示部と、現場作業者によるタイムチャートに対する評価を受け付ける受付部と、受付部が受け付けた評価に基づいて基準を更新する更新部とを備える。
【0009】
このような管理システムによれば、制御プログラムの専門的な知識を有さない現場作業者であっても認識しやすい、制御装置の動作経過を表すタイムチャートを評価対象として現場作業者の入力を受け付けるので、現場作業者から迅速的確なフィードバックを得やすい。また、そのようなフィードバックされた評価を、制御設計者へ伝達するのではなく、シミュレーションプログラムが用いる評価基準を更新するために利用するので、現場のノウハウが制御設計者でなくシステムに蓄積される。制御設計者は、作成した制御プログラムに不備があれば、シミュレーションプログラムによる実行結果から当該不備を知ることができるので、実際の制御装置での試行錯誤を減らすことができる。すなわち、制御プログラムの開発期間を短縮することができる。
【0010】
上記の試行管理システムにおいて受付部は、評価をタイムチャートの変形として受け付け、更新部は、変形されたタイムチャートに基づいて、シーケンシャルに実行される要素間の動作タイミングに関する基準を更新するようにしてもよい。このように構成することにより、現場作業者は、シーケンシャルに実行される要素間の動作タイミングについて、より直感的に自らの評価をシステムへ入力することができる。
【0011】
上記の試行管理システムにおいて受付部は、評価をタイムチャートの変形として受け付け、更新部は、変形されたタイムチャートに基づいて、少なくとも一方が移動する要素間の距離に関する基準を更新するようにしてもよい。このように構成することにより、現場作業者は、少なくとも一方が移動する要素間の距離について、より直感的に自らの評価をシステムへ入力することができる。
【0012】
上記の試行管理システムにおいて受付部は、評価に付随する情報を受け付け、更新部は、更新する基準に関連付けて情報を記憶部へ記憶させ、仮想実行部は、シミュレーションプログラムによる制御プログラムの実行結果が、更新された基準を満たさない場合に、記憶部から情報を読み出して制御設計者に呈示するようにしてもよい。このように構成することにより、制御設計者は、自らが作成した制御プログラムの不備の原因について示唆を得ることができる。
【0013】
本発明の第2の態様における試行管理方法は、制御設計者によって作成された制御プログラムをシミュレーションプログラムに仮想的に実行させる仮想実行工程と、仮想実行工程の実行結果が予め設定された基準を満たした場合に、制御プログラムを予め設定されたステップごとに実行して制御装置を現実的に動作させるステップ実行工程と、ステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する呈示工程と、現場作業者によるタイムチャートに対する評価を受け付ける受付工程と、受付工程で受け付けた評価に基づいて基準を更新する更新工程とを含む。
【0014】
本発明の第3の態様における試行管理プログラムは、制御設計者によって作成された制御プログラムをシミュレーションプログラムに仮想的に実行させる仮想実行工程と、仮想実行工程の実行結果が予め設定された基準を満たした場合に、制御プログラムを予め設定されたステップごとに実行して制御装置を現実的に動作させるステップ実行工程と、ステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する呈示工程と、現場作業者によるタイムチャートに対する評価を受け付ける受付工程と、受付工程で受け付けた評価に基づいて基準を更新する更新工程とをコンピュータに実行させる。
【0015】
このような第2の態様、第3の態様であっても、第1の態様と同様に、制御プログラムの開発期間を短縮することができる。
【発明の効果】
【0016】
本発明により、FAにおいて複数の制御装置を統括的に制御する制御プログラムの開発期間を短縮させる制御プログラムの試行管理システム等を提供することができる。
【図面の簡単な説明】
【0017】
【
図1】本実施形態に係る試行管理システムが利用される状況を示す概念図である。
【
図2】シミュレーションサーバのハードウェア構成図である。
【
図4】試行管理システムの処理の流れを示す概念図である。
【発明を実施するための形態】
【0018】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【0019】
図1は、本実施形態に係る試行管理システムが利用される状況を示す概念図である。本実施形態に係る試行管理システムは、主に、シミュレーションサーバ200とコントローラ300によって構成される。シミュレーションサーバ200は、プログラミングPC100で作成された制御プログラムを仮想的に実行させることができる。コントローラ300は、例えば工場において製造品を製造する製造ラインに設置された制御装置400を、プログラミングPC100で作成された制御プログラムを用いて制御することができる。プログラミングPC100、シミュレーションサーバ200、コントローラ300は、互いにネットワーク900を介して接続されている。ネットワーク900は、インターネットやイントラネットを用いることができる。
【0020】
プログラミングPC100は、制御設計者が制御プログラムの作成に利用するコンピュータであり、例えばプログラム開発室に設置されている。制御プログラムは、製造品を製造する現場に設置された制御装置を統合的に制御するためのプログラムであり、生産工程の自動化を図るFAに資するものである。
【0021】
シミュレーションサーバ200は、シミュレーションプログラムを実行するサーバである。シミュレーションサーバ200は、サーバ室に設置されていてもよいし、プログラミングPC100と同様にプログラム開発室に設置されていてもよい。シミュレーションサーバ200は、当該シミュレーションプログラムを実行することにより、制御装置400を仮想的に再現したシミュレーションモデルを構築し、当該シミュレーションモデルにおいてプログラミングPC100から受け取った制御プログラムを実行する。シミュレーションサーバ200は、自動テストツールの一形態であるが、自動テストツールとしては、このようにハードウェアを介することなくシミュレーションを実行するSILS(Software In the Loop Simulation)を採用し得る。また、SILSの他にも、シミュレーションモデルと実際のコントローラ300などのハードウェアを組み合わせ、ハードウェアに発生させた出力信号をシミュレーションモデルに取り込んでシミュレーションを実行するHILS (Hardware In the Loop Simulation)等も採用し得る。
【0022】
コントローラ300は、製造品を製造する制御装置400に取り付けられ、制御設計者が作成した制御プログラムを実行するコンピュータである。コントローラ300は、制御対象である制御装置400の他にも、制御プログラムの実行に関する情報を現場作業者へ呈示する表示パネル380と、現場作業者からの入力を受け付ける入力デバイス390にも接続されている。コントローラ300は、表示パネル380や入力デバイス390と一体的に構成されていてもよい。
【0023】
制御装置400は、製造する製品に応じて様々な製造装置を組み合わせて構成される。本実施形態においては、その一例として、チップCをワークWに実装する実装ロボット410、チップCを実装ロボット410へ供給する供給装置420、ワークWを搬送するコンベア430が組み合わされて構成されている。実装ロボット410は、その動作を直接的に制御する制御ボックス411を備え、同様に、供給装置420は制御ボックス421を、コンベア430は制御ボックス431を備える。コントローラ300は、制御ボックス411、421、431に接続されており、制御プログラムは、これらに制御信号を送信することにより、例えばワークにチップを実装して搬出するといった、装置間の連携を図ったシーケンシャルな製造工程を実現する。図示する例においては、搬送ロボット500がチップCを実装する前のワークWをコンベア430へ供給したり、チップCが実装されたワークWをコンベア430から搬出したりする様子を示すが、搬送ロボット500の動作もコントローラ300の制御対象としてもよい。
【0024】
現場作業者は、制御装置400の保守や点検等の作業を担う。後述するように、制御プログラムのテスト試行においては、制御装置400の動作状況を確認して、その評価を行う。
【0025】
本実施形態に係る試行管理システムは、主に、シミュレーションサーバ200とコントローラ300が連携して動作することによって実現される。これらを連携して動作させるために実行される試行管理プログラムは、制御プログラムを、シミュレーションサーバ200に仮想的に実行させたり、コントローラ300に現実的に実行させたりする。試行管理プログラムがシミュレーションサーバ200やコントローラ300に実行させる具体的な処理については、後に詳述する。
【0026】
図2は、シミュレーションサーバ200のハードウェア構成図である。シミュレーションサーバ200は、主に、演算部210、記憶部220、通信ユニット230によって構成される。演算部210は、シミュレーションサーバ200の制御とプログラムの実行処理を行うプロセッサ(CPU:Central Processing Unit)である。プロセッサは、ASIC(Application Specific Integrated Circuit)やGPU(Graphics Processing Unit)等の演算処理チップと連携する構成であってもよい。演算部210は、記憶部220に記憶されたシミュレーションプログラム221を読み出して実行することができる。
【0027】
記憶部220は、不揮発性の記憶媒体であり、例えばHDD(Hard Disk Drive)によって構成されている。記憶部220は、シミュレーションプログラム221の他にも、評価基準DB222を記憶している。評価基準DB222は、シミュレーションプログラム221を用いて制御プログラムを仮想的に実行した場合に、その実行結果が実機での実行において許容されるか否かを判断するための評価基準を記憶しておくデータベースである。また、評価基準DBは、そのような評価基準に付随する情報として、現場作業者が入力した当該評価基準に関する情報を記憶し得る。
【0028】
記憶部220は、さらに、制御装置400のシミュレーションモデル、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶し得る。なお、記憶部220は、複数のハードウェアで構成されていても良く、例えば、シミュレーションプログラム221を記憶する記憶媒体と評価基準DB222を記憶する記憶媒体が別々のハードウェアで構成されてもよい。
【0029】
通信ユニット230は、例えばLANユニットを含み、ネットワーク900を介して、プログラミングPC100やコントローラ300との間で制御プログラムや各種情報、指令信号等を授受する。なお、通信ユニット230は、他の外部装置との間でデータや指令信号を授受することもできる。例えば、シミュレーションプログラム221のアップデートモジュールを外部サーバから取り込む場合にも利用され得る。
【0030】
演算部210は、試行管理システムが実行する試行管理プログラムが指示する処理に応じて様々な演算を実行する機能演算部としての役割も担う。演算部210は、仮想実行部211、更新部212、転送部213、判定通知部214として機能し得る。仮想実行部211は、主に、制御設計者によって作成された制御プログラムをシミュレーションプログラム221に仮想的に実行させる。更新部212は、コントローラ300から送られてくる評価に基づいて、記憶部220に記憶された評価基準DB222のうち対応する評価基準を更新する。転送部213は、仮想実行部211が制御プログラムを仮想的に実行させた結果、評価基準を満たす(適正)と判定した場合に、当該制御プログラムをコントローラ300へ転送する。判定通知部214は、仮想実行部211が制御プログラムを仮想的に実行させた結果、評価基準を満たさない(不適)と判定した場合に、その結果と、不適と判定した評価基準に付随する情報が存在すれば当該情報とを、プログラミングPC100へ通知する。
【0031】
図3は、コントローラ300のハードウェア構成図である。コントローラ300は、主に、演算部310、記憶部320、通信ユニット330、入出力インタフェース340によって構成される。演算部310は、コントローラ300の制御とプログラムの実行処理を行うプロセッサ(CPU)である。プロセッサは、ASICやGPU等の演算処理チップと連携する構成であってもよい。演算部310は、シミュレーションサーバ200の転送部213から送られてきた制御プログラムを実行することができる。
【0032】
記憶部320は、不揮発性の記憶媒体であり、例えばHDD(Hard Disk Drive)によって構成されている。記憶部320は、実行履歴DB321を記憶している。実行履歴DBは、制御プログラムを実行した場合に制御装置400がどのように実行したかを示す履歴情報を制御装置400から受け取って記憶しておくデータベースである。記憶部320は、さらに、制御や演算に用いられる様々なパラメータ値、関数、表示要素データ、ルックアップテーブル等を記憶し得る。なお、記憶部320は、複数のハードウェアで構成されていても良く、例えば、実行履歴DB321を制御対象となる装置ごとに構築して記憶媒体が別々のハードウェアに記憶させてもよい。
【0033】
通信ユニット330は、例えばLANユニットを含み、ネットワーク900を介して、プログラミングPC100やシミュレーションサーバ200との間で制御プログラムや各種情報、指令信号等を授受する。なお、通信ユニット330は、他の外部装置との間でデータや指令信号を授受することもできる。入出力インタフェース(I/F)340は、制御装置400と接続する例えばEtherCATポートを含み、制御プログラムからの指令信号を制御装置400へ送信したり、制御装置400からのセンサ信号や動作履歴信号を受信したりする。
【0034】
演算部310は、試行管理システムが実行する試行管理プログラムが指示する処理に応じて様々な演算を実行する機能演算部としての役割も担う。演算部310は、ステップ実行部311、呈示部312、受付部313として機能し得る。ステップ実行部311は、制御プログラムを予め設定されたステップごとに実行して制御装置400を現実的に動作させる。呈示部312は、制御装置400が動作するステップのそれぞれにおける動作経過を表すタイムチャートを生成して現場作業者へ呈示する。具体的には、コントローラ300に接続された表示パネル380に当該タイムチャートを表示する。受付部313は、現場作業者によるタイムチャートに対する評価等を受け付ける。具体的には、タッチパネルやキーボード等の、コントローラ300に接続された入力デバイス390を用いて現場作業者に入力された評価や当該評価に関する情報を受け付ける。
【0035】
さて、これまでのFA(factory automation)におけるプログラム開発では、次のような課題を抱えていた。すなわち、制御設計者が作成した制御プログラムをコントローラで実行して制御装置を実際に動作させたときに、現場作業者が不具合を発見すればその状況を制御設計者へ報告し、制御設計者はそのような報告を受けて制御プログラムを設計し直す。制御設計者と現場作業者の間でこのような何度もの往復が発生し、それが開発期間を延長させる一つの要因となっていた。現場作業者が制御プログラムのソースコードを直接的に判読できるのであれば、制御プログラムの修正、更新を迅速に行える可能性はあるものの、そのようなスキルを持つ現場作業者は稀である。一方で、製造ライン現場における制御装置間の調整等のノウハウを熟知している制御設計者も稀である。このような事情も重なって、制御プログラムの開発期間が長期化していた。
【0036】
本実施形態に係る試行管理システムは、このようなプログラム開発におけるこれまでの課題に応えて、開発期間の短縮化を図るものである。そこで、試行管理システムの具体的な処理の流れを説明する。
図4は、試行管理システムの処理の流れを示す概念図である。
【0037】
制御設計者は、プログラミングPC100を用いて、コントローラ300で制御装置400を制御するためのプロダクションコードを作成する。プロダクションコードは、試作段階の制御プログラムである。作成されたプロダクションコードは、シミュレーションサーバ200へ送られ、シミュレーションサーバ200の仮想実行部211は、送られてきたプロダクションコードPCをシミュレーションプログラムにかけて仮想的に実行させる。具体的には、シミュレーションプログラム221が制御装置400を仮想的に再現したシミュレーションモデルを動作対象としてプロダクションコードを実行させる。そして、仮想実行部211は、そのシミュレーションモデルの動作結果を取得し、当該動作結果が、評価基準DB222に記述された対象となる評価基準を満たすか否かを判定する。評価基準を満たさないと仮想実行部211が判定した場合には、判定通知部214は、その判定結果をプログラミングPC100へ送信する。制御設計者は、プログラミングPC100を介してその判定結果を確認することができる。
【0038】
評価基準を満たすと仮想実行部211が判定した場合には、転送部213は、プロダクションコードをコントローラ300へ転送する。このとき、判定通知部214は、プロダクションコードがコントローラ300へ転送された旨をプログラミングPC100へ送信してもよい。
【0039】
コントローラ300がプロダクションコードを受け取ると、コントローラ300のステップ実行部311は、プロダクションコードを予め設定されたステップごとに実行して、コントローラ300の制御対象である制御装置400を現実的に動作させる。すなわち、ステップ実行部311がプロダクションコードをステップごとに実行することによって生成される制御信号は、入出力インタフェース340を介して実際に制御装置400へ送信され、制御装置400は当該制御信号に従って実際に動作する。例えば、当該制御信号がコンベア430を動作させるものであれば、制御ボックス431は当該制御信号が意味する制御内容に従ってコンベア430を動作させる。
【0040】
制御装置400は、制御信号に従って実際に動作した場合に、例えばモータなどの動作対象に与えた回転指示信号や、モータの出力部に装着されたエンコーダの出力信号などを含む、動作対象の動作状況を追跡し得る動作履歴信号を纏めて実行ログとしてコントローラ300へ返信する。ステップ実行部311は、制御装置400から受け取った実行ログを実行履歴DB321へ記録する。ステップ実行部311は、プロダクションコードに記述された全てのステップが終了するまで、あるいは現場作業者が終了を指示するまで、このようなステップ実行の指令と実行ログの記録を繰り返す。
【0041】
ステップ実行部311によるプロダクションコードの実行が終了したら、コントローラ300の呈示部312は、各ステップの動作経過を表すタイムチャートを生成して表示パネル380に表示する。現場作業者は、そのようなタイムチャートを視認することにより、対象ステップにおける動作対象の動作状況を確認することができる。このとき、受付部313は、現場作業者によるタイムチャートに対する評価を受け付ける。評価は、例えば2つの信号間の動作タイミングに関して満たすべき基準を変更するものであったり、少なくとも一方が移動する要素間の距離に関して満たすべき基準を変更するものだったりする。また、受付部313は、そのように基準を変更すべき理由など関連情報の入力を現場作業者から受け付けることもできる。タイムチャートの具体的な呈示態様や現場作業者による評価等の入力態様については、後に詳述する。
【0042】
受付部313は、現場作業者から特定のステップについての評価やこれに関連する関連情報を受け付けた場合には、シミュレーションサーバ200の更新部212へ送信する。更新部212は、受け取った評価に基づいて、評価基準DB222に記述された対象となる動作に関する評価基準を更新する。このように評価基準が更新されると、それまで仮想実行部211が適正と判定していたシミュレーション中の動作結果も、更新後は不適と判定される場合も発生する。すなわち、現場のノウハウがシミュレーション中の動作結果を判定する評価基準に取り込まれる。
【0043】
判定通知部214は、このように新たに不適と判定された動作結果について、評価基準DB222に関連情報が関連付けられて記録されていれば、当該関連情報を読み出して、プログラミングPC100へ送信してもよい。制御設計者は、そのような関連情報を確認することにより、不適となった理由を知ることができる。すなわち、現場のノウハウを習得する機会が得られるので、後の制御プログラム設計の効率化に貢献し得る。なお、ステップ実行部311によるプロダクションコードの実行が終了した後に、受付部313がタイムチャートに対する評価を現場作業者から特に受け付けなかった場合には、当該プロダクションコードは、コントローラ300で実行される制御プログラムの候補となり得る。
【0044】
このような管理システムによれば、制御プログラムの専門的な知識を有さない現場作業者であっても認識しやすいタイムチャートを評価対象として入力を受け付けるので、現場作業者から迅速的確なフィードバックを得やすい。また、そのようなフィードバックされた評価を、制御設計者へ伝達するのではなく、シミュレーションプログラム221が用いる評価基準を更新するために利用するので、現場のノウハウが制御設計者でなくシステムに蓄積される。制御設計者は、作成した制御プログラムに不備があれば、シミュレーションプログラム221による実行結果から当該不備を知ることができるので、実際の制御装置400での試行錯誤を減らすことができる。すなわち、制御プログラムの開発期間を短縮することができる。
【0045】
次に、呈示部312と受付部313に関する具体的なユーザインタフェースについて説明する。
図5は、タイムチャートの表示画面の一例である。具体的には、呈示部312が生成したタイムチャートをチャートウィンドウ610に収めて表示パネル380に表示した様子を示す。
【0046】
チャートウィンドウ610は、タイムチャートを表示する場合には「タイムチャート」のタイトルと共に、主に、信号選択ボックス611、ポジションウィンドウ612、シグナルウィンドウ613、評価入力ボタン621を含む。信号選択ボックス611には、指定されたステップに対して実行ログとして記録された動作履歴信号のそれぞれの信号名がチェックボックスと共に列挙されている。現場作業者は、入力デバイス390の一つである例えばマウスを使ってカーソル620を移動させ、表示させたい動作履歴信号のチェックボックスにチェックを入れる。チェックが入れられた動作履歴信号は、その信号を表す実線や破線がその信号名の隣に現れると共に、当該動作履歴信号が、その線種でポジションウィンドウ612またはシグナルウィンドウ613に現れる。
【0047】
ここでは、動作履歴信号は、例えば基準位置からの距離を表すなど一定範囲の数値を取り得るポジション信号(POSITION)と、オンオフのブール値を取り得るシグナル信号(SIGNAL)とに区分される。選択された動作履歴信号がポジション信号であればポジションウィンドウ612にその動作経過を表すタイムチャートが表示され、シグナル信号であればシグナルウィンドウ613にその動作経過を表すタイムチャートが表示される。ポジションウィンドウ612では、横軸は時間経過を表し、縦軸は一定範囲で変化し得る数値を表す。シグナルウィンドウ613では、横軸は時間経過を表し、縦軸は表示される信号ごとにオンオフの2値を表す。ポジションウィンドウ612の横軸とシグナルウィンドウ613の横軸は、上下で時間経過が一致するように調整される。
【0048】
現場作業者は、このようなタイムチャートが表示された表示画面を確認する。そして、2つ以上の動作履歴信号を比較したときに、そのような相互関係では製造工程として不具合が生じると思われる箇所を発見した場合には、そのような相互関係を「不適」と評価する入力を行う。現場作業者は、評価入力を行う場合には、評価入力ボタン621をクリックする。
【0049】
図6は、
図5で評価入力ボタン621がクリックされた場合に遷移する表示画面であり、評価対象となる動作履歴信号(対象データ)を指定する指定画面の一例である。指定画面においては、現場作業者へ比較したい2つの対象データの選択を促す告知ウィンドウ630が重畳され、また、信号選択ボックス611に表示された動作履歴信号が選択可能状態となる。現場作業者は、それらから2つの動作履歴信号を選択する。選択された動作履歴信号の信号名には、選択マーカ614が重畳される。現場作業者は、選択が完了したら、OKボタン622をクリックする。
【0050】
図7は、
図6でOKボタン622がクリックされた場合に遷移する表示画面であり、現場作業者が評価を入力する評価入力画面の一例である。特に、オンオフのブール値を取り得るシグナル信号が2つ(図の例では「SIGNAL101」と「SIGNAL104」)選択された場合の評価入力画面の例を示す。
【0051】
評価入力画面を示すチャートウィンドウ610は、「評価入力」のタイトルと共に、主に、信号選択ボックス611、比較ウィンドウ615、評価ウィンドウ616、OKボタン621を含む。信号選択ボックス611は、選択された動作履歴信号の信号名に選択マーカ614が重畳された状態が維持されている。
【0052】
比較ウィンドウ615は、選択された2つのシグナル信号のタイムチャートが上下に並べて表示されている。また、
図5のシグナルウィンドウ613と同様に、横軸は時間経過を表し、縦軸は表示される信号ごとにオンオフの2値を表す。また、比較ウィンドウ615には左右に2つの縦線状の範囲指標641が重畳されており、現場作業者は、範囲指標641を左右方向にドラッグすることにより、比較する時間範囲を設定することができる。設定された時間範囲として、2つの範囲指標641の間は図示するように、例えば網掛けが表示される。現場作業者は、このように時間範囲を設定することにより、例えば信号の立ち上がりなどのイベント時間を確認することができたり、その時間範囲内で発生したイベントを評価条件の対象として指定できたりする。
【0053】
評価ウィンドウ616は、選択された動作履歴信号に応じて表示される内容が異なる。
図7に示す例では、2つのシグナル信号が選択されているので、2つのシグナル信号に対して評価し得る項目や条件が表示される。具体的には、評価ウィンドウ616は、主に、選択された2つの動作履歴信号のうち基準とする信号(「比較対象A」)と比較される信号(「比較対象B])を指定する信号指定ボックス651、評価条件を指定する評価条件ボックス652、指定した評価条件の数値を指定する数値指定ボックス653、評価理由をテキストで入力する評価理由ボックス654を含む。
【0054】
評価条件ボックス652は、プルダウンボタン623を含み、現場作業者は、プルダウンボタン623をクリックすると、選択候補を表示させることができる。選択候補は、比較ウィンドウ615に表示された基準となる比較対象Aの信号に対して、比較対象Bの信号のタイムチャートがどのように変形されれば「適正」と評価し得るかを表現した文章の列挙によって構成される。例えば、選択候補として「A)『X』ミリ秒後にON、誤差『Y』ミリ秒」「B)『X』ミリ秒後にOFF、誤差ミリ『Y』秒」「C)『X』ミリ秒前にON、誤差『Y』ミリ秒」「D)『X』ミリ秒前にOFF、誤差『Y』ミリ秒」の4つが用意されている。現場作業者は、評価したい内容に応じてこれらの中から1つを選択する。現場作業者は、選択候補に含まれる「X」「Y」に対し、それぞれに対応する数値指定ボックス653でそれらの定量的数値を指定することができる。
【0055】
例えば、評価条件ボックス652で「A)『X』ミリ秒後にON、誤差『Y』ミリ秒」が選択され、数値指定ボックス653で「X=4000」「Y=100」が指定された場合、基準となるシグナル信号(図の例ではSIGNAL101)のイベント(「オフからオン」または「オンからオフ」)の発生から「4000」ミリ秒後に、誤差「100」ミリ秒の範囲(3950ミリ秒後から4050ミリ秒後までの範囲)で、対象となるシグナル信号(図の例ではSIGNAL104)が「ON」に変化すべきである、という評価がなされたことになる。比較ウィンドウ615では、対象となるSIGNAL104のシグナル信号は、基準となるSIGNAL101のシグナル信号がオフからオンに変化してから、約4300ミリ秒後にオンに変化しているので、新たになされた評価には反していることがわかる。
【0056】
現場作業者は、そのように評価した理由について説明を加えたい場合には、評価理由ボックス654に当該説明を入力する。例えば、「チップCの実装完了後、コンベアの動作開始までの時間を短縮する」のように入力することができる。なお、図の例では、評価理由ボックス654はテキスト入力を受け付けるが、イラスト描写や写真添付を受け付けるように構成しても構わない。
【0057】
現場作業者は、OKボタン622をクリックすれば、入力内容を確定させることができる。受付部313は、確定された入力内容を受け付け、シミュレーションサーバ200の更新部212へ送信する。更新部212は、受信した評価に基づいてシミュレーションプログラムが用いる評価基準を更新する。例えば、それまでの評価基準では「SIGNAL101のシグナル信号がオフからオンに変化してから<4300>ミリ秒後(誤差<100>ミリ秒)にSIGNAL104のシグナル信号がオンに変化」であれば適正としていたものを、受信した評価に応じて「<4000>ミリ秒後(誤差<100>ミリ秒)」に更新する。更新された評価基準は評価基準DB222に記録される。また、評価理由ボックス654に入力された説明は、更新された評価基準に付随する情報として評価基準DB222に記録される。
【0058】
図8は、
図6でOKボタン622がクリックされた場合に遷移する表示画面であり、現場作業者が評価を入力する評価入力画面の他の一例である。特に、一定範囲の数値を取り得るポジション信号とオンオフのブール値を取り得るシグナル信号(図の例では「POSITION008」と「SIGNAL112」)が選択された場合の評価入力画面の例を示す。評価入力画面を示すチャートウィンドウ610は、
図7の例と同様に、「評価入力」のタイトルと共に、主に、信号選択ボックス611、比較ウィンドウ615、評価ウィンドウ616、OKボタン622を含む。信号選択ボックス611は、選択された動作履歴信号の信号名に選択マーカ614が重畳された状態が維持されている。
【0059】
比較ウィンドウ615は、選択された2つの信号のタイムチャートが上下に並べて表示されている。ここではポジション信号とシグナル信号が選択されているので、ポジション信号については、縦軸に数値が表示されている。また、閾値を表すレベルライン(図の例では数値「75」のレベルのライン)も重ねて表示されている。シグナル信号については、縦軸はオンオフの2値を表す。いずれの信号についても、横軸は共通の時間経過を表わす。また、比較ウィンドウ615には左右に2つの縦線状の範囲指標641が重畳されており、現場作業者は、範囲指標641を左右方向にドラッグすることにより、比較する時間範囲を設定することができる。設定された時間範囲として、2つの範囲指標641の間は図示するように、例えば網掛けが表示される。現場作業者は、このように時間範囲を設定することにより、例えばポジション信号がレベルラインと交差する時間を確認することができたり、その時間範囲内で発生したイベントを評価条件の対象として指定できたりする。
【0060】
評価ウィンドウ616は、
図8に示す例では、ポジション信号とシグナル信号が選択されているので、これらの組合せに対応して評価し得る項目や条件が表示される。具体的には、評価ウィンドウ616は、主に、選択された2つの動作履歴信号のうち基準とする信号(「比較対象A」)と比較される信号(「比較対象B])を指定する信号指定ボックス651、評価条件を指定する評価条件ボックス652、指定した評価条件の数値を指定する数値指定ボックス653、評価理由をテキストで入力する評価理由ボックス654を含む。
【0061】
評価条件ボックス652は、プルダウンボタン623を含み、現場作業者は、プルダウンボタン623をクリックすると、選択候補を表示させることができる。選択候補は、比較ウィンドウ615に表示された基準となる比較対象Aの信号に対して、比較対象Bの信号のタイムチャートがどのように変形されれば「適正」と評価し得るかを表現した文章の列挙によって構成される。例えば、選択候補として「A)閾値が『X』以上の時にONエッジ」「B)閾値が『X』以下の時にOFFエッジ」「C)閾値が『X』以上の時にONレベル」「D)閾値が『X』以上の時にOFFレベル」「E)閾値が『X』以下の時にONレベル」「F)閾値が『X』以下の時にOFFレベル」の6つが用意されている。現場作業者は、評価したい内容に応じてこれらの中から1つを選択する。現場作業者は、選択候補に含まれる「X」に対し、数値指定ボックス653でその定量的数値を指定することができる。
【0062】
例えば、評価条件ボックス652で「C)閾値が『X』以上の時にONレベル」が選択され、数値指定ボックス653で「X=85」が指定された場合、基準となるポジション信号(図の例ではPOSITION008)が数値「85」をクロスした後は、対象となるシグナル信号(図の例ではSIGNAL112)が「ONレベル」である、という評価がなされたことになる。比較ウィンドウ615では、対象となるSIGNAL112のシグナル信号は、基準となるPOSITION008のポジション信号が数値「75」をクロスした後にONレベルとなっているので、新たになされた評価には反していることがわかる。
【0063】
現場作業者は、そのように評価した理由について説明を加えたい場合には、評価理由ボックス654に当該説明を入力する。例えば、「実装後のチップCとアーム先端部の干渉を防ぐため」のように入力することができる。なお、図の例では、評価理由ボックス654はテキスト入力を受け付けるが、イラスト描写や写真添付を受け付けるように構成しても構わない。
【0064】
現場作業者は、OKボタン622をクリックすれば、入力内容を確定させることができる。受付部313は、確定された入力内容を受け付け、シミュレーションサーバ200の更新部212へ送信する。更新部212は、受信した評価に基づいてシミュレーションプログラムが用いる評価基準を更新する。例えば、それまでの評価基準では「POSITION008が数値<75>をクロスした後は、SIGNAL112が<ONレベル>である」であれば適正としていたものを、受信した評価に応じて「<85>をクロスした後は、」に更新する。更新された評価基準は評価基準DB222に記録される。また、評価理由ボックス654に入力された説明は、更新された評価基準に付随する情報として評価基準DB222に記録される。
【0065】
現場作業者は、評価を行いたい項目の分だけ
図6から
図8を用いて説明した作業を繰り返す。なお、上記の例では評価ボックスで選択できる選択候補を簡単な評価条件に限って説明したが、もちろんより複雑な評価条件を用意してもよい。入力すべき数値項目が増えるのであれば、その分だけ数値指定ボックスを配列すればよい。
【0066】
また、評価ボックスで選択候補を選択できる形式に代えて、あるいは評価ボックスで選択候補を選択できる形式に加えて、比較ウィンドウ615に表示されているタイムチャートをカーソル620により直接的に変形させることにより、新たな評価を指定してもよい。例えば、
図8の例においては、SIGNAL112がONレベルに変化するラインを、POSITION008が数値<85>をクロスした時点と一致する位置までドラッグして移すことにより、新たな評価を指定してもよい。
【符号の説明】
【0067】
100…プログラミングPC、200…シミュレーションサーバ、210…演算部、211…仮想実行部、212…更新部、213…転送部、214…判定通知部、220…記憶部、221…シミュレーションプログラム、222…評価基準DB、230…通信ユニット、300…コントローラ、310…演算部、311…ステップ実行部、312…呈示部、313…受付部、320…記憶部、321…実行履歴DB、330…通信ユニット、340…入出力インタフェース、380…表示パネル、390…入力デバイス、400…制御装置、410…実装ロボット、411…制御ボックス、420…供給装置、421…制御ボックス、430…コンベア、431…制御ボックス、500…搬送ロボット、610…チャートウィンドウ、611…信号選択ボックス、612…ポジションウィンドウ、613…シグナルウィンドウ、614…選択マーカ、615…比較ウィンドウ、616…評価ウィンドウ、620…カーソル、621…評価入力ボタン、622…OKボタン、623…プルダウンボタン、630…告知ウィンドウ、641…範囲指標、651…信号指定ボックス、652…評価条件ボックス、653…数値指定ボックス、654…評価理由ボックス、900…ネットワーク