以下、本開示の実施の形態に係る支援システムについて、図面を参照しつつ詳細に説明する。
実施の形態1.
本実施の形態に係る支援システム1000は、図1に示されるように、PLC20及び設備31,32を含む施設の、ユーザ40による設計を支援するシステムである。図1の例は、工場に代表される施設の立ち上げ前の状態を示しており、PLC20及び設備31,32は、シミュレーションの対象である。また、支援システム1000は、図2に示されるように、施設において実際に設置されて運用状態にあるPLC20及び設備31,32を対象に、サイクルタイムに代表される生産指標の改善を要望するユーザ40を支援するシステムである。
支援システム1000は、種々の情報を提示することでユーザ40を支援する支援装置10を有する。支援装置10は、IPC(Industrial Personal Computer)に代表される端末装置、又は、PLC20に接続されて主としてPLC20のUI(User Interface)端末として機能するGOT(Graphic Operation Terminal)若しくは表示器である。
支援装置10は、ユーザ40により設計されたタイムチャート11を受け付けて、受け付けたタイムチャート11に基づいて作成した支援情報をユーザ40に対して出力してもよいし、ユーザ40によって入力された入力情報に基づいてタイムチャート11を生成して支援情報としてユーザ40に提供してもよい。タイムチャート11は、設備31,32の動作の推移を示すチャート図である。なお、本実施の形態では、支援装置10がタイムチャート11を生成してユーザ40に提供する例を中心に説明する。
また、支援装置10は、ユーザ40により作成された制御プログラム12を受け付けて、受け付けた制御プログラム12に基づいて作成した支援情報をユーザ40に対して出力してもよいし、ユーザ40によって入力された入力情報に基づいて制御プログラム12を生成して支援情報としてユーザ40に提供し、又はPLC20に実行させてもよい。制御プログラム12は、PLC20が設備31,32を制御するために実行するプログラムであって、例えばラダー言語で記述されたシーケンスプログラムである。制御プログラム12において規定される制御処理は通常、多数のワークに対してそれぞれ同等の工程を実施するために、PLC20によって繰り返し実行される。
また、支援装置10は、PLC20によって制御される設備31,32の3次元空間内の動作を模擬する3D(3-dimensions)シミュレータ13を有する。3Dシミュレータ13は、設備31,32の機種、型番、サイズ、形状、施設における位置及び姿勢、並びに、制御プログラム12により規定される動作指令が与えられたときの動作の大きさ、距離、方向、速さ、範囲、時間、圧力、温度及び強度に代表される動作の詳細を示す情報をユーザ40から受け付ける。詳細には、ユーザ40が、予め用意された種々の装置のライブラリから施設に配置すべき設備31,32を選択して、施設に対応する3次元の仮想空間内に配置する。そして、ユーザ40により提供された制御プログラム12又は支援装置10が生成した制御プログラム12を仮想的に実行することで、3Dシミュレータは、設備31,32の動作を3次元の仮想空間内で模擬する。また、3Dシミュレータ13は、設備31,32の他に、施設の壁、床、天井、施設内の支柱、土台、作業者、AGV(Automated Guided Vehicle)、その他の制御プログラム12の制御対象外の要素について、その配置及び移動を含む動作の設定を受け付けて、上述の仮想空間内で当該動作を模擬する。3Dシミュレータ13は、主として、ユーザ40が施設を立ち上げる前に施設の運用及び生産指標を検討するために利用されるが、図2に示されるような施設の立ち上げ後においても、生産指標の改善を要望するユーザ40を支援するために利用されてもよい。
施設の立ち上げの際には、設備について設計するメカ担当者とソフトウェアについて設計するSW(Software)担当者とが異なることが多い。メカ担当者が設備を仮決定するとともにタイムチャートを作成し、SW担当者がソフトウェアの基本型を作成してから、両者の間でこれら作成したものをブラッシュアップして、ある程度の水準を超える生産指標の達成を確実に見込めるようになってから実運用を開始することが望ましい。しかしながら、実際の現場では、種々の事情によりそのような準備が不十分なまま実運用に入ることが多い。例えば、タイムチャートが作成されることなく運用が開始された結果、生産指標が低いことが判ってから改善策を立案すること、及び、メカ担当者に代わってSW担当者がタイムチャートを作成せざるを得ずに作業負担が過重となることがある。これに対して、本実施の形態に係る支援装置10は、タイムチャートを作成することでユーザ40を支援して、PLC20による効率的な制御処理の早期実現に寄与する。
PLC20は、施設において、あらかじめ書き込まれた制御プログラム12を実行することで設備31,32を制御する制御装置である。PLC20は、電圧信号又は電流信号を伝送する信号線により設備31,32に接続されてもよいし、フィールドネットワークを介して設備31,32に接続されてもよい。図1,2には、1つのPLC20及び2つの設備31,32が代表的に示されているが、PLC20は複数であってもよいし、2つより多くの設備が制御対象となってもよい。以下では、設備31,32を区別することなく設備30と表記することがある。PLC20は、プログラマブルコントローラの一例に相当し、設備30は、被制御機器の一例に相当する。設備31,32はそれぞれ、動作部としての軸31a,32aを有する。
図3には、設備として設備301~303,311~313が施設に設置される例が示されている。図3の例では、サーボモータである設備301が、ボールねじである軸を回転させることで、ワーク41が載置される支持台を同図中のA地点からB地点を経由してC地点に移動させ、エアチャックである設備303の直下までワーク41を搬送する。そして、エアシリンダである設備302がピストンロッドをエア駆動により下降させてから、当該ピストンロッドに取り付けられた設備303が、ワーク41を把持する。また、設備302のピストンロッドが下降端に位置することを検知するセンサとしての設備311、設備303が把持状態になっていることを検知するセンサとしての設備312、設備302のピストンロッドが上昇端に位置することを検知するセンサとしての設備313が配置される。なお、ワーク41が支持台に載置される前の工程、及び、ワーク41が設備303によって把持された後の工程においてもこれらの設備30は制御プログラム12によって動作するが、これらの工程の詳細については省略する。
上述した図3に示される設備の動作を示すタイムチャートの一例が、図4に示されている。タイムチャートは、図4に示されるように、横軸を時刻として、縦軸に設備30或いは設備30の動作軸を並べて、設備30又は動作軸ごとにその機械位置の推移を示すグラフである。タイムチャートは、設備30の動作と当該動作のトリガとなる事象との因果関係を示す線を含む。図4では、因果関係が破線の矢印によって示されている。例えば、「ワーク把持」の動作指令に対応するデバイス値「M0」がONになるというトリガが発生する結果、デバイス値「Y0」がONになってエアシリンダがピストンを押し出す動作を実行することが、破線の矢印501によって示されている。同様に、エアシリンダのピストンが押し出されることで、センサである設備311の検知結果に対応するデバイス値「X0」がONになるというトリガが発生する結果、デバイス値「Y1」がONになってエアチャックがワークを把持する動作を開始することが、破線の矢印502で示されている。そして、エアチャックがワークを把持することで、センサである設備312の検知結果に対応するデバイス値「X1」がONになるというトリガが発生する結果、デバイス値「Y2」がONになってエアシリンダがピストンを戻す動作を実行することが、破線の矢印503によって示されている。さらに、エアシリンダのピストンが戻ることで、センサである設備313の検知結果に対応するデバイス値「X2」がONになるというトリガが発生する結果、ワークの把持が完了したことがデバイス値「M3」によりPLC20によって判断されることが、破線の矢印504によって示されている。
図4に示されるように、タイムチャートは、制御プログラム12に記載されるデバイス値X0,X1,X2,Y0,Y1,Y2,M0,M1,M2を示している。これらのデバイス値は、制御プログラム12おいて用いられる変数に対応し、PLC20のメモリに格納される値である。デバイス値の一部又はすべては、設備30と共有され、このデバイス値により、PLC20と設備30との間で信号が伝送される。
図5に例示されるように、制御プログラム12は、PLC20に対して入力される信号であることを示す「X」に、入力される信号を識別する数値を組み合わせた名称が付された入力変数X0,X1,X2と、PLC20から設備30に対して出力される信号であることを示す「Y」に、出力される信号を識別する数値を組み合わせた名称が付された出力変数Y0,Y1,Y2と、制御プログラム12内において用いられることを示す「M」に、値を識別する数値を組み合わせた名称が付された中間変数M0,M1,M2と、を含む。制御プログラム12の行511は、デバイス値「M0」がONになることをトリガとしてデバイス値「Y0」をONにするための記述であり、図4中の矢印501に対応する。同様に、図5中の行512は、図4中の矢印502の起点側に対応し、図5中の行513は、図4中の矢印502の終点側に対応する。さらに、図5中の行514は、図4中の矢印503の起点側に対応し、図5中の行515は、図4中の矢印503の終点側に対応する。このように、制御プログラム12において表れる因果関係が、タイムチャートにおいて矢印により表されている。
なお、図5では、図4中の矢印501~504に対応する制御処理を代表的に示しており、他の制御処理については省略されている。例えば、図4に示されるようにサーボモータを動作させるための記述は、図5では省略されている。制御プログラム12は、手動運転のための記述と自動運転のための記述とを含み得る。手動運転では、多数のインターロック条件を指定して安全な運用を図ることが望ましい。これに対して、自動運転では、予め定められた基準を満たす必要最低限のインターロック条件を残して、他の条件についてはAssertによりプログラム実行時の演算対象から除外することにより、PLC20のスキャン周期を高速化してもよい。スキャンが遅い場合には、センサ出力のON/OFFが瞬間的に切り替わったときにそのセンサ出力を読み取れないことがあるため、スキャン周期の高速化によりこのような読み取り誤差によるエラーリスクを低減することができる。また、スキャン周期が高速化される結果、サイクルタイムの短縮にも寄与し得る。
支援装置10は、コンピュータとして機能するためのハードウェア要素によって構成される。詳細には、図6に示されるように、支援装置10は、プロセッサ101と、主記憶部102と、補助記憶部103と、入力部104と、出力部105と、通信部106と、を有する。主記憶部102、補助記憶部103、入力部104、出力部105及び通信部106はいずれも、内部バス107を介してプロセッサ101に接続される。
プロセッサ101は、処理回路としてのCPU(Central Processing Unit)又はMPU(Micro Processing Unit)を含む。プロセッサ101は、補助記憶部103に記憶されるプログラムP1を実行することにより、種々の機能を実現して、後述の処理を実行する。プログラムP1は、いわゆるエンジニアリングツールに相当するソフトウェアアプリケーションであってもよい。プログラムP1は、画像生成プログラムの一例に相当する。
主記憶部102は、RAM(Random Access Memory)を含む。主記憶部102には、補助記憶部103からプログラムP1がロードされる。そして、主記憶部102は、プロセッサ101の作業領域として用いられる。
補助記憶部103は、EEPROM(Electrically Erasable Programmable Read-Only Memory)及びHDD(Hard Disk Drive)に代表される不揮発性メモリを含む。補助記憶部103は、プログラムP1の他に、プロセッサ101の処理に用いられる種々のデータを記憶する。補助記憶部103は、プロセッサ101の指示に従って、プロセッサ101によって利用されるデータをプロセッサ101に供給する。また、補助記憶部103は、プロセッサ101から供給されたデータを記憶する。
入力部104は、ハードウェアスイッチ、入力キー、キーボード、ポインティングデバイス及びマイクロホンに代表される入力デバイスを含む。入力部104は、ユーザによって入力された情報を取得して、取得した情報をプロセッサ101に通知する。ユーザによる情報の入力は、GUI(Graphical User Interface)を介してなされてもよいし、音声入力によってなされてもよい。
出力部105は、LED(Light Emitting Diode)、LCD(Liquid Crystal Display)及びスピーカに代表される出力デバイスを含む。出力部105は、プロセッサ101の指示に従って種々の情報をユーザに提示する。
通信部106は、外部の装置と通信するための通信インタフェース回路を含む。通信部106は、外部から信号を受信して、この信号により示されるデータをプロセッサ101へ出力する。また、通信部106は、プロセッサ101から出力されたデータを示す信号を外部の装置へ送信する。
上述のハードウェア構成が協働することにより、支援装置10は、種々の機能を発揮する。詳細には、図7に示されるように、支援装置10は、種々のデータを記憶する記憶部110と、外部から情報を取得する取得部120と、3次元の仮想空間における設備30の動作を模擬する3Dシミュレータ13と、タイムチャートを含む支援情報を生成する生成部140と、記憶部110のデータを適宜修正する修正部150と、記憶部110のデータを分析する分析部160と、外部との間で情報の授受を中継するインタフェース部170と、ユーザ40に情報を提示する表示部180と、を有する。
記憶部110は、主として主記憶部102及び補助記憶部103の少なくとも一方により実現される。記憶部110に格納されるデータは、支援装置10に予め書き込まれたデータと、取得部120によって取得されたデータと、を含む。詳細には、記憶部110は、図7に示されるように、仮想空間に配置可能な多数の設備の機種、形状及び動作の詳細を含む仕様を示す設備ライブラリ111と、生成部140によって生成されるタイムチャートを示すタイムチャートデータ112と、仮想空間に配置された設備30に関する設備データ113と、設備30の動作の時間長を示す時間長情報114と、制御プログラム12と、を記憶する。設備ライブラリ111は、記憶部110に予め書き込まれるデータであって、制御プログラム12は、ユーザ40から提供されるデータである。
図8には、設備データ113の一例が模式的に示されている。設備データ113は、設備ライブラリ111からユーザ40によって選択された設備30に関するシミュレーションを実行するためのシミュレーションデータ1131と、設備30の複数の動作間の関係のうちの制御プログラム12に表れない因果関係を表す補助プログラム1132と、を含む。
シミュレーションデータ1131は、設備30の型番と、当該設備30の配置と、当該設備30に設定されるパラメータと、当該設備30に対応するデバイス値と、を対応付けるデータであって、ユーザ40の設定に従って生成される。型番は、サイズ、形状及び動作の詳細を特定する情報である。シミュレーションデータ1131の型番と同一の型番を設備ライブラリ111から検索することで、当該型番の設備30の仕様を参照することが可能である。配置は、位置及び姿勢を表す。パラメータは、設備30の動作を規定する情報である。例えば、図8中の「A→B:正弦波」というパラメータは、A地点からB地点までの機械位置の推移が図4に示されるように正弦波状になることを表す。デバイス値は、設備30との間で共有されるデバイス値の名称を表す。例えば、図8中のエアシリンダについて、「出」というパラメータと「Y0」というデバイス値とが対応付けられることで、デバイス値Y0がONになると当該エアシリンダがピストンロッドを押し出す動作を実行することが示されている。シミュレーションデータ1131は、被制御機器に関する機器情報の一例に相当し、被制御機器の配置を示す配置情報の一例に相当する。
なお、図8に示されるシミュレーションデータ1131の内容は一例であり、シミュレーションデータ1131は、図8とは異なる情報を含んでもよい。例えば、後述するように、エアシリンダのストローク長がパラメータとして設定されてもよいし、シミュレーションデータ1131は、3Dシミュレータ13のためのいわゆるコンフィギュレーションのデータを含んでもよい。
補助プログラム1132は、設備30間の関係、及び設備30の動作同士の関係を、制御プログラム12と同等の形式で示す情報である。図3の例では、設備302のピストンロッドが下降端に達したことが、センサである設備311によって検出される。このような設備302と設備311との関係は、タイムチャートを生成するために必要だが、制御プログラム12には表れていない。当該関係は、補助プログラム1132によって示される。例えば、補助プログラム1132の行517は、設備302に対応するデバイス値Y0がONになると、設備311に対応するデバイス値X0がONになることを示している。補助プログラム1132は、トリガ情報の一例に相当する。
なお、設備302が動作したことが設備311によって検出されることは、3Dシミュレータ13によって模擬され得る。このように、補助プログラム1132により示される情報は、シミュレーションデータ1131に含まれ得る。補助プログラム1132が実質的にシミュレーションデータ1131に含まれる場合には、補助プログラム1132は設備データ113から省略されてもよい。
時間長情報114は、図9に例示されるように、各設備30の動作それぞれにかかる時間の長さを示す。時間長情報114は、ユーザ40によって直接入力されて取得部120によって取得されてもよい。また、ユーザ40が設定した設備30のパラメータが、実質的に設備30の動作の時間長を規定する場合がある。この場合には、取得部120が、当該パラメータを時間長情報として取得し、当該パラメータに対応する時間長は、パラメータを用いる演算により又はパラメータと時間長とを対応付けて記憶するデータベースを参照することにより決定されてもよい。例えば、エアシリンダのストローク長及び速度がパラメータとしてユーザ40によって指定されたときには、ストローク長を速度で除することにより時間長が算出される。このような場合には、シミュレーションデータ1131が実質的に時間長情報114を含むため、記憶部110においてシミュレーションデータ1131とは別個に記憶される時間長情報114は省略されてもよい。
また、設備30が実運用された場合の動作ログ、及び、設備30の動作が模擬された場合の動作ログは、設備30の各動作の時間長を示す時間長情報といえる。取得部120は、このような動作ログを時間長情報114として取得して加工することにより、図9に示されるように各動作の時間長を示す時間長情報114を記憶部110に格納してもよい。詳細には、動作ログにおいて時刻とともに繰り返し記録された設備30の各種動作の代表値が、時間長として採用される。代表値は、例えば、いずれか1つのサンプルであってもよいし、平均値又は中央値のように統計的に決定される値であってもよい。
図7に戻り、取得部120は、主として、入力部104及び通信部106によって実現される。取得部120は、支援装置10の外部から情報を取得して、取得した情報を記憶部110に格納する。例えば、取得部120は、ユーザ40によって設定されるパラメータ、並びに、ユーザ40から提供される制御プログラム12、補助プログラム1132及び時間長情報114を取得する。取得部120は、取得手段の一例に相当する。
3Dシミュレータ13は、主としてプロセッサ101によって実現される。3Dシミュレータ13は、シミュレーションデータ1131に基づいて、設備30の動作を模擬する。動作の模擬を開始してからデータが不足していることにより模擬の続行ができない場合には、3Dシミュレータ13は、ユーザ40に入力を促すことにより当該データを補って設備30の動作を模擬してもよい。3Dシミュレータ13は、制御プログラムを実行することによる被制御機器の制御を模擬する模擬手段の一例に相当する。
生成部140は、主としてプロセッサ101によって実現される。生成部140は、設備データ113、時間長情報114及び制御プログラム12に基づいて、タイムチャートデータ112を生成して記憶部110に格納する。例えば、図5の制御プログラム12を参照すれば、上述したように図4において破線の矢印により示される因果関係がわかる。これにより、生成部140は、例えば図4中のエアシリンダが「出」状態に達すると同時にエアチャックの把持動作が開始すると判断することができる。また、設備データ113の補助プログラム1132を参照すれば、例えば図4中のエアシリンダがピストンロッドの押し出し動作を開始し、当該動作の完了がセンサによって検知されることがわかる。これにより、生成部140は、図4中の「Y0」から「X0」までを結ぶエアシリンダの押し出し動作を示す実線を、矢印502に接続することができる。さらに、時間長情報114を参照すれば、エアシリンダの押し出し動作にかかる時間の長さがわかる。これにより、生成部140は、上記実線の傾きを判断することができる。同様にして、生成部140は、各設備30の動作を示すタイムチャートを生成する。生成部140は、生成手段の一例に相当する。
図7に戻り、修正部150及び分析部160は、主としてプロセッサ101によって実現される。修正部150及び分析部160の詳細については、他の実施形態において説明する。
インタフェース部170は、主としてプロセッサ101、入力部104及び通信部106によって実現される。インタフェース部170は、ユーザ40によって入力される情報を受け付けるUIインタフェースとして機能し、受け付けた情報を取得部120に提供する。また、インタフェース部170は、ユーザに対して表示すべき情報を示す表示データを表示部180に出力する。インタフェース部170は、表示データを出力する出力手段の一例に相当する。さらに、インタフェース部170は、外部の装置と通信する通信インタフェースとして機能する。
表示部180は、主として出力部105によって実現される。表示部180は、ユーザからの指示に従ってタイムチャートデータ112により示されるタイムチャートをユーザに対して表示する。なお、表示部180は、支援装置10においては省略されてもよく、支援装置10は、外部のUI装置との通信によりユーザとの間で情報を授受してもよい。
図10には、支援装置10によって実行されるタイムチャート生成処理の手順が示されている。このタイムチャート生成処理は、タイムチャート生成方法の一例に相当し、ユーザ40の特定の操作によって開始する。タイムチャート生成処理では、取得部120が、制御プログラム12、設備データ113及び時間長情報114を取得する(ステップS1)。設備データ113の取得に際しては、取得部120は、ユーザ40によって指定された型番に対応する設備30の情報を設備ライブラリ111から検索して読み出してもよい。次に、生成部140が、制御プログラム12、設備データ113及び時間長情報114に基づいてタイムチャートを生成する(ステップS2)。そして、インタフェース部170が、タイムチャートの表示データを出力して、表示部180によってタイムチャートが表示される(ステップS3)。
図11には、ステップS3で表示されるタイムチャートを含む画面の一例が示されている。図11に示されるように、支援装置10は、生産指標としてのサイクルタイムをタイムチャートと併せて表示して、ユーザ40による検討作業を支援してもよい。
以上、説明したように、支援装置10は、制御プログラム12を利用してタイムチャートを生成する。制御プログラム12は、タイムチャートの有無に関わらずPLC20に制御処理を実行させるために必須のデータであり、この制御プログラム12に含まれる因果関係の情報を利用してタイムチャートが生成される。これにより、タイムチャートの生成においてユーザ40にかかる負担を軽減することができる。
また、取得部120は、設備30に設定すべきパラメータを時間長情報114として取得してもよい。これにより、ユーザ40が時間長を決定する作業の負担を軽減することができる。さらに、取得部120は、設備30の動作ログを時間長情報114として取得してもよい。これにより、時間長情報を準備する作業の負担を軽減することができる。
また、支援装置10は、GOTでもよい。従来は、制御プログラムをチェックするためにPC上でエンジニアリングツールの操作が必要となり、ユーザ40がPC操作及びエンジニアリングツールの扱いに熟練していなければ現状の把握すら困難となり得た。これに対して、GOTとしての支援装置10上にタイムチャートが表示されれば、現場の作業者が同一の指標、すなわちタイムチャートで問題点を指摘することが可能になる。
また、図8,9,11に示されたように、サーボモータである設備301の機械位置に、「A」、「B」及び「C」という名称が付された。この名称は、サーボモータの停止位置として指定されるのみならず経由する場合に指定されてもよい。タイムチャートにおいてサーボモータの位置が数値で示される場合には、2つの異なる軸の動作を指令するための起点となるサーボモータの位置が近いときに、タイムチャートを視認するユーザ40は、2点のどちらがどの軸に影響するかを誤って解釈してしまう可能性がある。これに対して、サーボモータの機械位置に名称を付すことができれば、タイムチャートを誤って解釈することを回避することができる。
また、生成部140は、コンフィギュレーションを含むシミュレーションデータ1131からタイムチャートを生成する。従来、メカ設計者が設備を設計するために3Dモデルを作成し、動作手順をコンフィギュレーションで構築して、その確認後にタイムチャートを作成するという流れで作業が進められた。しかしながら、手間が多く、手戻りが発生した際にはコンフィギュレーション及びタイムチャートの両方を修正する必要があった。これに対し、上述のようにコンフィギュレーションに基づいてタイムチャートが生成されれば、設計工数を削減して、一方の修正漏れによるミスの発生を回避することもできる。
また、タイムチャートの生成及び表示は、上述の例に限定されず、任意に変更してもよい。例えば、図12に示されるように、各設備30の動作時間にバラつきがあるときに、当該バラつきを示す領域518~521をタイムチャート上に表示してもよい。さらに、図12に示されるように、バラつきの大きさが閾値より小さいときには領域518~519のようにハッチングを付すことなく表示し、バラつきの大きさが閾値を超えるときには領域520~521のようにハッチングを付して強調表示してもよい。ハッチングの有無に代えて、バラつきの大きさに応じた着色がなされてもよい。また、図12からわかるように、領域520のバラつきは、領域521のバラつきに起因して発生している。このような因果関係を有する領域2つを異なる方法で表示してもよいし、原因に対応する領域のみを強調表示してもよい。
なお、バラつきを示すバラつき情報については、取得部120がユーザ40から取得してもよいし、制御プログラム12に規定される制御処理を繰り返し実行した際の動作ログから統計的手法により求めてもよい。バラつきは、例えば、標準偏差であってもよいし、上限値及び下限値により規定される範囲であってもよい。
バラつきを把握することは、FAの通常の現場では基本的に困難であり、取得しないケース、及び取得しても有効な活用がなされないケースが多い。しかしながら、図12のような表示によれば、バラつき箇所の要因分析が容易になり、隠れていた要因の解消によるサイクルタイムの安定化に寄与することができる。また、バラつきがメカに起因する場合には、メカの再選定を促すことができるため、必要十分な能力の設備を施設に配置して、効率的な設備設計をすることが期待される。
また、タイムチャートにおける因果関係の表示方法を変更してもよい。例えば、図13に示されるように時間的因果関係を表示してもよい。ここで、時間的因果関係は、結果に寄与する原因のうちの、結果に直接影響を与えた原因と、当該結果との関係を意味する。換言すると、最後に発生した原因と、当該原因の発生と同時に現れた結果と、の関係といえる。図13の例では、制御プログラムに記述されるような、結果に相当するデバイス値M200に対して、原因に相当するデバイス値X10,X20のうちの、デバイス値M200に最後に寄与したデバイス値X20からのみ破線の矢印が引かれている。
一方、図14には、タイムチャートが条件的因果関係を表示する例が示されている。条件的因果関係は、結果に寄与する原因すべてと、当該結果との関係を意味する。換言すると、順序及び時間に関わらず、発生した原因すべてと、当該結果との関係といえる。図14の例では、結果に相当するデバイス値M200に対して、原因に相当するデバイス値X10,X20の双方から破線の矢印が引かれている。なお、図13のような時間的因果関係の表示と、図14のような条件的因果関係の表示と、をユーザの操作により切り替えてもよい。
従来、SW設計者は制御プログラムを、メカ設計者は3Dモデル或いは自身の作成したタイムチャートを、現場担当者は実際の設備の動作を、それぞれ見ながら、動作のタイミングの因果関係を調整する必要があった。それぞれの作業者が異なるツールを使用していたため、情報の齟齬が大きく、問題発生から改善までの期間が長かった。これに対して、上述のような時間的因果関係及び条件的因果関係を表示すれば、制御プログラムの改善点及びサイクルタイムの改善点を容易に把握することが可能になる。また、SW設計者以外のメカ設計者及び現場担当者が制御プログラムに規定された処理の流れを容易に把握することが期待される。
また、図15に示されるように、タイムチャートにおいて各設備30の動作を表す線を、ブロックに変更してもよい。ユーザ40によっては、或いはユーザ40が実施する検討作業によっては、このようなガントチャートのようなタイムチャートの方が適していることがある。さらに、図15に示されるように、動作の種類に対応させてブロックを着色してもよい。
また、図15に示されるように、生成部140は、サーボモータが動作するときの消費電力又は消費電力量を表示する表示部品522をタイムチャートに含めてもよい。消費電量は、シミュレーションデータ1131及び設備ライブラリ111から算出される。従来は、設計段階で消費電力を把握することが煩雑であるため、正確な消費電力を算出することなく容量の比較的大きいブレーカ及び電源を選択することが多かった。これに対して、図15のように消費電力が表示されれば、適当なブレーカ及び電源を選定することが可能になる。
また、図15に示されるように、生成部140は、エアシリンダが動作するときの消費エア流量又は消費エア量を表示する表示部品523をタイムチャートに含めてもよい。消費エア流量及び消費エア量は、シミュレーションデータ1131及び設備ライブラリ111から算出される。従来は、消費エア流量を過剰に設計することが多かった。エアが不足した場合は設備の動作時間のばらつきの原因となり、立上げ期間の延長、及び動作の不具合を招いていた。これに対して、図15のように時間軸に沿って消費エア流量を予測表示すれば、ピーク時の消費流量を把握することができ、設備の安定化設計を支援することができる。
また、図15に示されるように、生成部140は、サーボモータの加減速のサイクルタイムにおけるピーク値が予め定められた閾値を超えて過剰であることを示す表示部品524をタイムチャートに含めてもよい。加減速のピーク値は、シミュレーションデータ1131及び設備ライブラリ111から算出される。従来は、このような表示がないため、サーボモータの急な加減速に際して作業者が非常停止ボタンを押下することが多く、ボタンを押下しても停まりきれずサーボモータの機械位置が正常範囲の外に達してしまうことがある。すなわち、リミットスイッチではなくメカストッパで停止せざるを得ないことがある。これに対して、図15のように表示されれば、停まりきれないおそれがあることをユーザ40が事前に判断することができる。これにより、設備の故障を防ぐことができる。なお、サーボモータの加減速が急であることを、タイムチャート上の表示に代えて又は当該表示とともに、制御プログラム12のコンパイル時のアラームによりユーザ40に報知してもよい。
また、図15に示されるように、生成部140は、サーボモータのトルク値を示す表示部品525をタイムチャートに含めてもよい。トルク値は、シミュレーションデータ1131及び設備ライブラリ111から算出される。従来、サーボモータの加減速が最も激しくなると事前に予測されるタイミングについて、設計者が加減速の値を別途計算してサーボモータを選択していた。これに対して、図15のようにトルク値が表示されれば、サイクルタイムの全体でサーボモータの加減速を平準化するような設計が容易になると期待される。
また、トルク値に代えて、生成部140は、サーボモータの平均荷重又は動作負荷を示す表示部品を、図15の表示部品525と同様にタイムチャートに含めてもよい。平均荷重は、ワークに関する情報を含むシミュレーションデータ1131及び設備ライブラリ111から算出される。従来は、ベアリング或いはボールねじの選定に際して、複雑な動作における平均荷重の計算が煩雑であるため、正確な計算をすることなく、平均荷重を大きく見積もることが多い。このため、サイズの大きい部品が選定され、さらに大きなモータが必要となる結果、設備が全体的に大型化する傾向にあった。これに対して、平均荷重がタイムチャートに表示されれば、適当な部品が選定され、設備の小型化が期待される。
さらに、支援装置10は、サーボモータの加減速を平準化しつつサイクルタイムの目標値を達成する制御内容を導出して提案してもよい。例えば、図16上部のタイムチャートに従う動作では、図16中部に示されるように、区間541ではサーボモータのトルク値には許容値まで余裕があり、区間542ではトルク値が許容値を超えている。この場合において、区間541については、許容値の近傍までトルク値を大きくすることで区間541の長さを短縮し、区間542については、トルク値を許容範囲内に収めることを提案する。トルクの許容範囲については、設備ライブラリ111又はシミュレーションデータ1131として提供されてもよいし、ユーザ40によってサーボモータの定格トルク及び許容トルクとして入力されてもよい。このような提案によれば、サーボモータの選定基準が緩和され、サイクルタイムの更なる短縮を見込むことができる。
また、生成部140は、施設の立ち上げ前における複数の段階でタイムチャートを生成して記憶部110に格納してもよいし、立ち上げ後における複数の段階で、又は定期的に、タイムチャートを生成して記憶部110に格納してもよい。すなわち、記憶部110は、タイムチャートのログをタイムチャートデータ112として記憶してもよい。例えば、施設の立ち上げ時のタイムチャートを基準とすれば、経時変化を観察して、サーボモータ及びエアシリンダを含むアクチュエータの寿命を予測し、予知保全に寄与することができる。
さらに、支援装置10は、通常時のタイムチャートと異常発生時のタイムチャートとの双方を表示して、ユーザ40がこれらタイムチャートを比較してもよい。従来は、設備30の動作のログを取得してユーザ40自身がタイムチャートを作成し、誤動作の原因究明やタクトタイム短縮のために利用していた。これに対して、支援装置10によって作成されたタイムチャート同士の比較が可能になれば、例えば、設計段階で作成したタイムチャートとログから作成されたタイムチャートとの比較により、早い段階でバグを洗い出すことが可能になり、タクトタイムの短縮に寄与することができる。同様に、メカ担当者の作成したタイムチャートと、生成部140によって生成されたタイムチャートと、を比較することにより、施設の早期立ち上げ及びタクトタイムの短縮に寄与することができる。
図17には、施設に配置される設備の他の例が示されている。図17の例では、設備30の動作する順番が、動作方向を示す破線の矢印に付された括弧内の番号で示されている。まず、1番の動作は、サーボモータである設備321がボールねじを回転させてワーク42が載置される支持台をD地点からC地点及びB地点をこの順で経由してA地点まで移動させることによりワーク42を設備322,323の直下まで搬送する動作である。2番の動作は、エアシリンダである設備322がピストンロッドを押し出す動作であり、3番の動作は、ピストンロッドの先端に取り付けられたエアチャックである設備323がワーク42を把持する動作である。4番の動作は、設備322がピストンロッドを戻すことで、ワークを把持したエアチャックを上昇させる動作である。そして、5番の動作は、サーボモータである設備324が、設備322が取り付けられた支持台を移動させることにより、壁332を越えてパレット333の直上までワーク42を搬送する動作である。
図18には、図17の動作に対応するタイムチャートが示されている。図18中の縦軸に沿って並ぶ軸の番号は、図17に示される設備321~324の符号に対応している。また、図18中の横軸に沿って付された括弧内の番号は、図17に示される破線の矢印に付された番号に対応している。
図18に示されるように、エアシリンダである設備323は期間(5)において、壁部材に接近することが3Dシミュレータ13によるシミュレーションから判断される。このように、生成部140は、シミュレーションに基づいて設備30が他の機器に近接するタイミングをタイムチャート上で示してもよい。ここで、設備30と他の機器との近接は、設備30と他の機器との間の距離が予め定められた閾値より短くなることである。
従来は、施設の立ち上げ段階における調整に際して、設備30を実際に動作させながら、2以上の動作をオーバーラップさせてサイクルタイムを目標値に収めようとしていた。ここで、オーバーラップは、2以上の動作の少なくとも一部を同時に実行させることで、これら2以上の動作すべての完了を順次実行の場合よりも早く完了させることを意味する。しかしながら、意外なところが干渉してしまうことにより動作のオーバーラップが難しいケースが多かった。これに対して、図18に示されるように設備30が他の機器に接近するタイミングが表示されれば、設備30を実際に用意することなく机上の調整作業において動作をオーバーラップさせる制御プログラム12を容易に作成することができる。このため、現地での立ち上げ段階における調整期間を短縮することができる。また、動作時に干渉する部材が判れば、部材の形状を再検討して、干渉を回避する形状にすることで、サイクルタイムをさらに短縮することができる。
また、図18には、デバイス値Y10がONになると設備322がピストンロッドを押し出す動作を開始し、デバイス値Y20がONになると設備324が支持台を戻す動作を開始することが示されている。これらの動作が同時に実行される場合には、図17からわかるように、設備322のピストンロッドが壁部材に接触して干渉することとなる。このような干渉を避けるために、制御プログラム12には通常、図19に示されるようなインターロックの記述が含まれる。具体的には、デバイス値Y10がONになる条件としてデバイス値Y20のb接点が挿入され、デバイス値Y20がONになる条件としてデバイス値Y10のb接点が挿入される。これにより、デバイス値Y10,Y20双方が同時にONになることが回避される。制御プログラム12においてこのようなインターロックの記述が含まれる場合に、生成部140は、図18に示されるように、インターロックにより動作が規制されている部分にインターロックを示すブロック531を含めてもよい。また、生成部140は、ブロック531に代えて、ブロック531に対応する部分を着色してもよい。これにより、ユーザ40は、インターロックにより動作が規制されている状態をタイムチャートから容易に判断することができる。
また、取得部120は、ユーザ40による編集操作を受け付けて制御プログラム12を取得する場合において、1つのアクチュエータの動作の入力から完了までの一塊を設定する機能をUIとして提供してもよい。図20には、このような一塊の設定例が示されている。具体的には、「エアチャック:ワーク把持」という名称が付された複数の行にわたる記述が、1つの塊として設定されている。設定された塊は、分離されることなく、いわゆるルーチン又は関数のように再利用されてもよい。従来、制御プログラムの構成は、当該プログラムの作成者に依存しており、アクチュエータごとに動作の入力から完了までを塊として制御プログラムが構成されていない場合も多かった。その場合には、同一のアクチュエータ内の動作であっても、制御プログラム内の離れた位置に当該アクチュエータの記述が表れることとなり、非常に可読性が低かった。また、このような構成の制御プログラムに基づいてタイムチャートが生成されるときには、制御プログラム自体が扱いにくいことからタイムチャートについても活用されずに生産性の向上が難しくなることが推測される。これに対して、図20に示されるように、第三者が制御プログラム12内部のアクチュエータの動作に関する記述をまとめることが容易になれば、制御プログラム12の入力端末としての操作性を向上させ、タイムチャートの運用率及び組織内への浸透率を向上させることができると考えられる。
また、図20では、1つの設備30の動作を塊とする例について説明したが、複数の設備30による順次動作を塊として設定するためのUIが提供されてもよい。そして、生成部140は、動作が塊として設定された複数の設備30をまとめた設備ユニットの動作を示すタイムチャートを生成してもよい。図21には、設備322,323によるワークの把持から解放までを、これら設備322,323によって構成されるチャックユニットの動作として示すタイムチャートの例が示されている。従来は、複数のアクチュエータによって構成されるアクチュエータユニットについても、制御プログラム内で記述が点在することが多く、特に、扱う動作軸の数が多くなると、制御プログラムの可読性及び当該制御プログラムから導出されるタイムチャートの可読性が低かった。これに対して、図21に示されたようにアクチュエータユニットの動作をまとめることができれば、タイムチャートを階層化して可読性を向上させ、制御プログラム12のメンテナンス性向上への訴求効果が期待される。
また、図20,21に示された例では、ユーザ40が手動で塊を設定していたが、生成部140は、パターン認識の手法により、制御プログラム12において繰り返し登場する順次処理の記述を塊として抽出してもよい。
また、生成部140は、図20に示されるように制御プログラム12にユーザ40によって付されたコメントを、図21に示されるようにタイムチャートに付してもよい。
また、生成部140が、制御プログラム12、設備データ113及び時間長情報114に基づいてタイムチャートを生成する例について説明したが、適宜、不足する情報をユーザ40が直接入力してもよいし、ユーザ40から追加して提供された情報を利用してタイムチャートを生成してもよい。例えば、制御プログラム12及び補助プログラム1132に表れないイベント間の関係及びイベントとトリガとの関係が、ユーザ40によって指定されてもよい。
また、3Dシミュレータ13によるシミュレーションを実行するためのシミュレーションデータ1131に基づいて、タイムチャートを生成することについて説明した。ここで、シミュレーションデータ1131により示される3Dモデルの拘束条件に基づいてタイムチャートが生成されてもよい。例えば、ヒンジで締結された2つの部品が相関関係をもって動作する場合において、3Dシミュレータ13によって動作の相関関係を検知し、これら部品の動作をタイムチャート上で正確に同期させてもよい。
実施の形態2.
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態では、タイムチャートがユーザ40により提供され又は支援装置10によって生成された後の支援装置10の機能を中心に説明する。
本実施の形態に係る記憶部110は、タイムチャートデータ112によって示されるタイムチャートと、制御プログラム12と、を対応付けて記憶する。詳細には、図4のタイムチャートにおいて矢印501~504で示されるような線と、制御プログラム12において表れる因果関係を示す記述と、を対応付けて記憶する。
図22には、記憶部110に格納された状態の制御プログラム12が、ユーザ40の操作によって変更される例が示されている。例えば、制御プログラム12に含まれるデバイス値Y0がデバイス値Y2に変更され、デバイス値X0がデバイス値X2に変更され、デバイス値Y2がデバイス値Y0に変更され、デバイス値X2がデバイス値X0に変更されている。
支援装置10の修正部150は、制御プログラム12の変更に伴って、記憶部110に格納されているタイムチャートデータ112により示されるタイムチャートを、図23に示されるように修正する。修正部150によるタイムチャートの修正は、制御プログラム12の変更点について、実施の形態1に係る生成部140と同様の手法によりタイムチャートのチャート部品を生成することで実行される。
また、修正部150は、図4に示されるタイムチャートがユーザ40によって図23に示されるように変更された場合には、変更後のタイムチャートに即した因果関係を表すように制御プログラム12を修正する。例えば、図23中の矢印601によって示されるように、デバイス値M0に応じてデバイス値Y2が変化することが、変更後のタイムチャートからわかる。そこで、修正部150は、図22に示されるように、デバイス値M0に応じて変化するデバイス値をY0からY2に修正する。同様に、図23中の矢印602,603,604それぞれによって示される因果関係に従って、修正部150は、図22中の行612,613,614をそれぞれ修正する。修正部150は、修正手段の一例に相当する。
上述のように、修正部150は、制御プログラム及びタイムチャートのうちの一方が変更されたときに、他方の当該変更に対応する部分を修正する。これにより、タイムチャート及び制御プログラムの一方が変更されたときに、他方の修正作業をユーザ40が実施する必要がなくなり、ユーザ負担を軽減することができる。
また、本実施の形態に係る分析部160は、タイムチャートにより示される動作を実現するために設備30に設定すべきパラメータを分析する。例えば、取得部120は、図24に例示される入力画面を介して、モータの型番、ストローク、可搬重量、負荷率及びカム曲線の形状を示すデータを、タイムチャートにより示される動作の詳細を示す詳細情報として取得する。そして、分析部160は、タイムチャートにより示される動作及び当該詳細情報に対する予め定められた演算により、又は、タイムチャートにより示される動作及び詳細情報に対応付けて記憶装置に記憶されたデータを参照することにより、設備30に設定すべきパラメータを導出する。インタフェース部170は、導出されたパラメータを表示部180に出力し、表示部180は、図24に示されるような出力画面を表示する。この出力画面では、モータのゲイン調整用のモデル制御ゲインを表すPG1、及び位置制御ゲインを表すPG2がパラメータとして示されている。なお、パラメータはこれに限定されず、他のパラメータが表示されてもよい。
図25には、分析部160によって導出されるパラメータの第2の例が示されている。図25の例では、エアシリンダの動作を示すタイムチャートと、ユーザ40により指定されたシリンダの型番、ストローク、ワーク重量、絞り開放率及びエア圧力から、パラメータとして配管径が導出されている。図26には、分析部160による分析の他の例が示されている。図26の例では、2つのサーボモータの動作を示すタイムチャートと、入力画面においてユーザ40により指定される情報と、から、推奨されるモータの組合せが示されている。
上述のように、分析部160は、設備30に設定すべきパラメータを分析する。従来は、パラメータが多い場合において、エラーが発生すると、エラーの原因が制御プログラム12自体にあるのか或いはパラメータにあるのかを切り分けることが難しく、デバッグ時間が長くなる傾向があった。これに対して、分析部160が設備30に設定すべきパラメータを分析すれば、デバッグ時間を短縮することができる。分析部160は、分析手段の一例に相当する。
また、分析部160は、タイムチャートにより示される動作及び3Dシミュレータ13によるシミュレーションに基づいて、図15に示されたような平均荷重のような荷重及び動作負荷又は定格負荷のような負荷を分析してもよい。
また、制御プログラム12を実行してエラーが発生した場合に、インタフェース部170は、タイムチャート中のエラーに対応する要素を強調して表示する表示データを表示部180に出力する。例えば、図27に示されるように、デバイス値Y2,X2に応じて時間をカウントするタイマーT3にエラーが発生したときには、タイムチャートにおいてデバイス値Y2,X2を結ぶ線を強調表示する。
図27のようなタイマーは、ある軸の移動情報(デバイス値Y2がONになってから特定の長さの時間が経過してデバイス値X2がON)を設備30が保有していないことから、SW担当者が、特定時間長以内にデバイス値X2がONにならない場合にエラーを出力させるという目的で導入される。移動情報の時間長は、タイムチャートの設計時と同様に、荷重及び軸出力の仕様から算出され、当該時間長に誤差の許容レベルが設定される。設備30が軸の移動情報を保有している場合には、予想と異なる動作をしたときにエラーを出力することを一括で設定することも可能になり、不必要にエラーが発生するプログラム部品をエラー出力の対象から除外することもできる。
なお、図27のようなタイマーでは通常、ダンマリ停止は発生しないが、図27に例示されるような強調表示がなされるエラーは、ダンマリ停止であってもよい。例えば、特段のエラー出力がなくとも、予期せず設備30が停止している場合に、未反応のセンサ出力値又はデバイス値を表示するとともに、ダンマリ停止の可能性を報知してもよい。そして、当該報知の画面におけるユーザのボタン押下によって、支援装置10は、ダンマリ停止に対するエラー処理を追加してもよい。
また、本実施の形態に係る生成部140は、複数の設備30の原点復帰手順を生成する。この手順は、例えば、シミュレーション上の総当たりによって、又は遺伝的アルゴリズムによって生成される。そして、修正部150は、生成された原点復帰手順を複数の設備30に実行させるプログラム部品を制御プログラム12に追加する。さらに、修正部150は、複数の設備30が同時に動作する場合に干渉することがシミュレーションデータ1131を用いたシミュレーションにより示される場合には、図28に例示されるように、プログラム部品にインターロックの記述を追加することで、設備30同士が干渉しない原点復帰を実現する。
従来は、原点復帰を実施する場面において、設備の状態が、自動運転モードにおけるどの時点においても発生しない状態になっていることが多い。そのため、デバッグ時に干渉し、設備が破損するおそれがあり、複数のインターロックをユーザ40が設定する必要がある。しかしながら、軸数が多く、互いに干渉しうる位置関係にある設備において、インターロックの条件は無数に必要となるため、ユーザ40による設定では十分でないことも多い。このため、設備の破損を避けるため、確実に干渉しない手順を慎重に検討する必要があった。これに対して、上述のように原点復帰手順が生成部140によって生成され、インターロックの記述が修正部150によって追加されれば、ソフトウェア製作期間の短縮、デバッグ時間の短縮、及び、不十分なインターロックによる設備の干渉トラブルの抑制に寄与することができる。
また、インターロック条件は、軸数が多くなると指数関数的に増加してしまうため、機械学習を利用して次元を圧縮しておき、ユーザ40による最小限のパラメータ入力により適当なインターロック条件が設定されてもよい。
また、本実施の形態に係る取得部120は、設備30が手動操作されたときの動作軸の位置及び当該動作軸が動作するタイミングを検出するセンサから検出結果を取得する。例えば、JOG運転及びシリンダの単動で手動により設備群に一連の動作をさせて試運転を実行することがある。また、サーボモータを作業者が設備を手で動かしつつ、支援装置10がポイント情報及びインターロック情報を記録する。そして、修正部150は、センサの検出結果と同等に設備30を動作させるプログラム部品を作成して制御プログラム12に追加し、又は、センサの検出結果と同等に設備30が動作するときのチャート部品を作成してタイムチャートに追加する。この場合において、センサである設備311~313は、検出手段の一例に相当する。
施設の設計段階においてタイムチャートを作成することなく、実機でJOG運転及び胆道動作で操作しつつ適当な動作を検討した後に、自動運転の制御プログラム12を作成することがある。これに対して上述のように修正部150が手動操作に対応するプログラム部品又はチャート部品を作成すれば、工数を削減することができる。
また、本実施の形態に係るインタフェース部170は、タイムチャートを修正するユーザによる直感的な操作を受け付ける。例えば、図29中の太い実線621は、指でなぞることにより描かれてもよい。また、点622と点623とをタップすることで、これらの点622,623を結ぶ破線624が描かれてもよい。また、センサの一覧からいずれかのセンサを選択して、タイムチャート上の点とデバイス値とを対応付ける操作がなされてもよい。さらに、タイムチャートの縦軸に並ぶ軸の並べ替え操作を受け付けてもよい。
従来は、タイムチャートを作成するために表計算ソフトウェア又はCAD(Computer Aided Design)ソフトウェアを利用することが多いが、タイムチャートの作成は煩雑な作業であり、作業負担が大きかった。これに対して、図29に示されるような操作が可能であれば、作業時間及び工数を削減することができる。
実施の形態3.
続いて、実施の形態3について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態では、3Dシミュレータ13を活用する支援装置10の機能を中心に説明する。
本実施の形態に係る生成部140は、設備30を実際に制御したときの動作ログから設備30の動作履歴を示す第1画像、及び、設備30に対する制御が3Dシミュレータ13によって模擬されたときの設備30のシミュレーション上の動作履歴を示す第2画像、を含む画像を表示するための表示データを生成して出力する。
例えば、生成部140は、図30に示されるように、シミュレーションに基づく計画段階のタイムチャートを示す第1画像と、動作ログに基づく実績としてのタイムチャートを示す第2画像と、を生成する。これらのタイムチャートの異なる部分については、線701のように強調表示される。
また、生成部140は、図31に示されるように、シミュレーションに基づく計画段階のデバイス値の推移を示す第1画像と、動作ログに基づく実績としてのタイムチャートを示す第2画像と、を生成する。ここで、第1画像及び第2画像は、制御プログラムを実行するプログラマブルコントローラのメモリに格納されているデバイス値及び格納されることが模擬されるデバイス値の推移を示す画像の一例に相当する。さらに、生成部140は、図32に示されるように、シミュレーションに基づく計画段階の3Dモデルの動作を示す第1画像と、動作ログに基づく実績としての3Dモデルを示す第2画像と、を生成する。ここで、第1画像及び第2画像は、被制御機器の形状及び位置を示す画像の一例に相当する。
図30~32に示されるタイムチャート、デバイス値の推移、及び3Dモデルの表示は、ユーザ40の指定によって切り替えられてもよい。また、図30におけるボタン702の押下により、シークバー703上の現在位置を示すポインタ704が移動するともに、第1画像及び第2画像が時刻に沿って変化してもよい。すなわち、動画が再生されてもよい。取得部120は、被制御機器を実際に制御したときの動作ログを取得する取得手段の一例に相当し、生成部140は、動作ログから被制御機器の動作履歴を示す第1画像、及び、被制御機器に対する制御を模擬したときの被制御機器のシミュレーション上の動作履歴を示す第2画像、を含む画像を表示するための表示データを生成して出力する生成手段の一例に相当する。ここで、第1画像及び第2画像の少なくとも一方は、他方とは異なる部分が強調される画像である。
また、図30のシークバー703は、複数の制御区間に対応して区分されている。詳細には、設備30に対する制御が、複数の制御区間における区間制御を順に実行することで実現される。また、計画と実績とのうちの一方の区間制御にかかった時間長が、他方の区間制御にかかった時間長と異なる場合には、白抜きの線705に示されるように、当該制御区間が強調して表示されてもよい。
また、図32の例では、上下方向に移動するピストンロッドを有する設備の機械位置が相違しているが、この相違点の原因となった動作がメッセージ706によって表示されている。このように、生成部140は、動作ログにより示される設備30の動作と、設備30のシミュレーション上の動作と、が異なる場合において、各動作のトリガに相当する事象が異なるときに、トリガに相当する事象が異なることを示す画像を生成してもよい。
また、生成部140は、計画段階のタイムチャートと、実績のタイムチャートと、を図33に示されるように重畳して生成してもよい。
また、本実施の形態に係る記憶部110は、設備30の実際の動作にかかる時間とシミュレーション上の動作にかかる時間との誤差を低減する方策を、設備30に対応付けて記憶する記憶手段の一例に相当する。そして、生成部140は、複数の設備30のそれぞれにおいて生じた誤差を低減する方策を記憶部110から読み出して、図34上部に示されるように、誤差が大きい順に一覧表示する画像を生成する。詳細には、記憶部110は、誤差要因となる設備と、当該要因と、誤差を低減する方策の難易度と、方策を実施したときの誤差の短縮効果と、当該方策と、を対応付けて記憶する。
図34上部の画像において、ユーザ40が順位「3」を選択すると、生成部140は、図34下部に示される画像を生成する。この画像は、選択された順位に対応する方策及び問題のチェック結果を表示する。そして、表示部180は、プロト動作ボタン707が押下されたときには、方策を実施した場合における動作のシミュレーション結果を表示する。詳細には、表示部180は、方策の実施前後のタイムチャートを比較可能な形式で表示する。
以上、説明したように、設備の動作履歴を示す第1画像及びシミュレーション上の動作を示す第2画像を含む画像が表示される。これにより、シミュレーションと実際の動作との差異を容易に検証することができる。支援装置10は、画像生成装置の一例に相当する。
実施の形態4.
続いて、実施の形態4について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態では、シミュレーションに基づいてラインの生産指標を改善するような支援情報を出力する支援装置10の機能を中心に説明する。
図35には、分析部160が、シミュレーションにより得たタイムチャートから制御プログラム12の改善箇所を提案する例が示されている。詳細には、分析部160は、制御プログラム12に規定された設備30の動作の順序を変更して設備30に対する制御を3Dシミュレータ13に模擬させた場合に、設備30が他の機器と接触することによる干渉を回避しつつサイクルタイムが短縮するときには、当該順序の変更を改善策として示す支援情報を出力する。動作の順序の変更は、ランダムに選択されてもよいし、予め規定されたアルゴリズムに従ってなされてもよい。また、当該改善策の採用がユーザによって決定された場合には、修正部150は、制御プログラム12を変更して当該改善策を実現する。図35では、動作順序を入れ替えることを決定するボタンがカーソルによって押下されることが示されている。
また、分析部160は、シミュレーション上において設備30の部材同士が干渉する場合に、図36に示されるように、部材が干渉しなくなるような回避動作を示すタイムチャートを支援情報として出力してもよい。このような改善策を示すタイムチャートは、例えば、動作の変更を総当たりで探索することによって発見される。
なお、改善策は、動作の変更に限定されず、設備30或いはワークの重量又は材質の変更であってもよい。これらの改善策を探索するための制約条件は、ユーザによって設定される。制約条件は、例えば、現状の駆動源についてのサーボモータ或いはエアシリンダであるという型式の固定、ストロークの上限値及び下限値、動作軸同士が干渉する条件である。
図37には、分析部160が、制御プログラム12に規定されたイベントのオーバーラップが可能な部分を提示する例が示されている。詳細には、分析部160は、制御プログラム12に規定された複数の設備30によって順次実行される動作を同時に実行させることを3Dシミュレータ13に模擬させた場合に、複数の設備30が互いに接触することによる干渉を回避しつつサイクルタイムが短縮するときには、順次実行される動作を同時に実行することを改善策として示す支援情報を出力する。
なお、図36に示されるような干渉の回避と、図37に示されるような動作のオーバーラップによるサイクルタイムの短縮と、はトレードオフの関係にある。そこで、干渉の可能性の高さを示す指標値を用いて、図38に示されるような制御内容の編集画面においてユーザ40が、指標値に対応するスライダーを操作することにより制御内容を選択してもよい。指標値は、例えば、設備30同士が最も接近するときの距離に対応する値である。
また、分析部160は、サーボモータの速度の低減を改善策として提案してもよい。具体的には、分析部160は、3Dシミュレータによるシミュレーションにおけるサーボモータの加減速のピーク値を検出し、当該ピーク値が検出されたタイミングにおけるサーボモータの加減速を低減することを改善策として示す支援情報を出力してもよい。
また、分析部160は、制御プログラム12を構成するプログラム部品のうちの、使用されない部品の排除を提案してもよい。例えば、分析部160は、設備30の手動運転を規定するプログラム部品を制御プログラム12から検出し、検出したプログラム部品を、設備30の自動運転の際のスキャン対象から除外することを改善策として示す支援情報を出力してもよい。具体的には、図39に例示されるように、自動運転時の不使用部分についてMC(Master Control、マスタコントロール)を挿入することにより、実行のON/OFFを切り替えてもよい。
また、分析部160は、消費電力のピークをシフトして回生電力を利用するような改善策を提案してもよい。具体的には、分析部160は、図40に示されるように、サイクルタイムにおける設備30の動作に基づいて、消費電力の推移を算出する。そして、分析部160は、ピークとなる時刻の電力を主電源から利用するのではなく、同時刻における他の設備の動作軸の回生電力を利用すること、又は、別時刻において発生して蓄電された回生電力を当該時刻にて放出することを提案してもよい。これにより、消費電力についてサイクルタイムにおける平準化が期待され、主電源に要求される定格電力を低減することができる。
また、分析部160は、図41に示されるように、ユーザ40によってカーソル708を用いて変更対象として指定された部品について、タイムチャート及びシミュレーション結果から、干渉が発生しない最大サイズを算出して、算出したサイズを提示してもよい。従来は、実際の動作をシミュレーション空間上で再現して、設計者の目視により干渉があるか否かを確認し、干渉があれば修正する必要があり、作業に時間がかかっていた。これに対して、図41のような表示がなされれば、作業時間を短縮するとともに、干渉を効率的に回避して、部品のサイズを容易に最適化することができる。
また、分析部160は、図42に示されるように、タイムチャートを含む記憶部110のデータからサーボモータ及びサーボアンプの負荷率を計算し、温度上昇を予測してもよい。そして、分析部160は、温度上昇が閾値を超えて過剰である場合には、温度上昇が予め定められた許容値の範囲内に収まる運転パターンを改善策として提案してもよい。従来は、負荷率が1回のサイクルタイム内の動作時間から算出されることが多かったが、温度上昇、すなわち負荷率の積分値と放熱のバランスまで考慮した熱バランスは、ユーザが別途計算する必要があった。これに対して、図42のような改善策が提案されれば、設備30の劣化を抑制することができる。
また、分析部160は、設備30の動作時間として指定された目標値から、設備30に関するパラメータを提案してもよい。例えば、分析部160は、図43に示されるように、ユーザ40によって選択された動作と、指定された目標動作時間と、に基づいて、予め定められた演算により、又はデータベースを参照することにより、推奨される変更点を提示してもよい。詳細には、分析部160は、物理モデルと記憶部110に記憶されるデータから、設備30の動作中における機械位置、及び、停止後制振時間を予測し、目標時間内での動作を実現するために必要な変更点を提案する。変更点は、例えば、設備30の重量の低減、モータ出力の変更、エア圧の変更を含む。予測は、既存設備のデータから機械学習により得た予測モデルを用いてなされてもよい。
従来の設計手順は、メカ設計及びサイクルタイムの概算、次に、タイムチャートの作成、そして制御プログラムの作成、という順で実行されることがある。タイムチャート及び制御プログラムの作成時点では、メカ構造が確定しているため、次にメカ構造の見直し又は修正を実施する機会は、立ち上げのタイミング又は次号機からとなり、図面改訂が増加してしまい、1号機と次号機以降との構造差を招いていた。これに対して図43に示されるような提案がなされれば、タイムチャートの作成後にメカ設計の変更すべき点が提示され、立ち上げ前におけるメカ設計の修正が可能となる。これにより、立ち上げ期間の短縮、不要品の購入によるロスコストの抑制、及び、1号機と次号機以降との機差の解消が期待される。
また、分析部160は、図44に示されるように、ユーザから指定された余裕度及び危険度に応じた制御プログラムを生成してもよい。詳細には、分析部160は、記憶部110に記憶されるデータから、エアシリンダの動作中における機械位置及び停止後制振時間を予測する。この予測値は、予測精度と確度とともに算出される。予測精度は、時間的及び空間的なバラつきの範囲を表し、確度は、予測精度の定性的な高さを表す。そして、分析部160は、ユーザ40から要求される確度に応じて予測結果を修正して表示する。予測は、外部アプリケーション或いはビッグデータから機械学習により得たモデルによって実行されてもよい。
ユーザ40は、各部位の予測時間に対して実際の移動時間及び経過位置のズレの許容範囲の指標である余裕度、及び、動作指令後に機械位置が指令値から大きくズレた場合に発生する事故の影響の度合いを示す危険度を指定する。分析部160は、サイクルタイムの短縮において、危険度が高い動作軸がボトルネックとなっている場合に、この動作軸の動作をオーバーラップしてサイクルタイムを短縮することを提案する。また、ある時刻において動作軸を検知するセンサを追加すべき位置を提示してもよい。例えば、図45に示されるように、エアシリンダのシミュレーション上の動作において、ピストンロッドが他の軸と干渉する範囲から外れたか否かを検出するセンサの追加することが提案される。ここでセンサを追加すべき位置は、干渉範囲の境界付近に相当する。
以上、本開示の実施の形態について説明したが、本開示は上記実施の形態によって限定されるものではない。上述の実施形態を任意に組み合わせてもよい。
上述の実施の形態に係る支援装置10の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
例えば、プログラムP1を、フレキシブルディスク、CD-ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical disk)に代表されるコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムP1をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
また、プログラムP1をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロードするようにしてもよい。
また、インターネットに代表されるネットワークを介してプログラムP1を転送しながら起動実行することによっても、上述の処理を達成することができる。
さらに、プログラムP1の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムP1を実行することによっても、上述の処理を達成することができる。
なお、上述の機能を、OS(Operating System)が分担して実現する場合又はOSとアプリケーションとの協働により実現する場合には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
また、支援装置10の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア又は回路によって実現してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。