以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.加工システム10>
図1を参照して、実施の形態に従う加工システム10について説明する。図1は、加工システム10の外観を示す図である。
図1に示されるように、加工システム10は、ワークを加工するための工作機械100と、ワークの搬送装置200とを含む。
本明細書でいう「工作機械」とは、ワークを加工する機能を備えた種々の装置を包含する概念である。本明細書では、工作機械100の一例として、加工対象のワークが水平方向に広がる固定面に取り付けられる立形マシニングセンタを例に挙げて説明を行うが、工作機械100は、立形マシニングセンタに限定されない。たとえば、工作機械100は、加工対象のワークが鉛直方向に広がる固定面に取り付けられる横形マシニングセンタであってもよい。あるいは、工作機械100は、旋盤であってもよいし、付加加工機であってもよいし、その他の切削機械や研削機械であってもよい。
また、本明細書でいう「搬送装置」とは、ワークを搬送する機能を備えた種々の装置を包含する概念である。本明細書では、搬送装置200の一例として、4〜7軸駆動の多関節ロボットを例に挙げて説明を行うが、搬送装置200は、多関節ロボットに限定されない。一例として、搬送装置200は、1〜3軸駆動の直交ロボット(オートローダ)であってもよいし、予め定められたスケジュールに従ってワークを自動搬送するパレット搬送装置であってもよい。
搬送装置200は、加工対象のワークを工作機械100内に搬入する。その後、工作機械100は、予め設計された加工プログラムに従って、ワークの加工を開始する。加工が完了すると、搬送装置200は、工作機械100外へワークを搬出する。ワークの搬出が完了すると、搬送装置200は、次の加工対象のワークを工作機械100に搬入する。このような搬入処理と搬出処理とが繰り返されることで、ワークが順次加工される。
<B.加工システム内の扉>
図2は、図1に示される工作機械100と搬送装置200とを示す図である。以下では、図2を参照して、工作機械100と搬送装置200との間に設けられる扉136について説明する。
理解を容易にするために、以下では、扉136の開閉方向を「X軸方向」と称し、X軸方向に直交する水平方向を「Y軸方向」と称し、X軸方向およびY軸方向の両方に直交する方向(すなわち、重力方向)を「Z軸方向」と称する。
図2(A)には、Z軸方向から表わした工作機械100および搬送装置200が示されている。図2(B)には、Y軸方向から表わした工作機械100が示されている。
図2に示されるように、工作機械100は、主軸115と、テーブル116と、カバー体131と、扉136と、駆動機構137とを有する。
主軸115は、ワークの加工エリアAR1の内部で移動可能に設けられている。また、主軸115は、Z軸方向に沿って移動可能に設けられている。また、主軸115は、モータ駆動により、Z軸に平行な中心軸Axを中心に回転可能に設けられている。主軸115には、各種工具を着脱可能に保持するためのクランプ機構が設けられている。
テーブル116は、加工エリアAR1の内部で移動可能に設けられている。テーブル116は、X軸方向とY軸方向とを含む平面(XY平面)内で移動可能に設けられている。テーブル116上には、ワークを着脱可能に保持するためのワーク装着用治具(図示しない)が設けられている。
カバー体131は、スプラッシュガードとも呼ばれ、工作機械100の外観をなすとともに、加工エリアAR1を区画形成している。カバー体131は、開口132を有する。開口132は、カバー体131の前面から上面にかけて開口し、加工エリアAR1に通じている。
扉136は、開口132を覆うように設けられている。扉136は、X軸方向に沿ってスライド可能に設けられている。扉136が開閉動作することによって、開口132が開状態とされたり、閉状態とされたりする。扉136は、閉状態とされた時に、カバー体131とともに加工エリアAR1を区画形成する。扉136には、作業者が加工エリアAR1内を覗くための透明窓(図示しない)が設けられている。なお、図2には、水平方向にスライド駆動される扉136が示されているが、扉136は、重力方向(Z軸方向)にスライド駆動されてもよい。
以下では、開口132の開口面積が増大する時の扉136の動作を、「開動作」という。扉136がX軸方向の負側にスライドする動作が、「開動作」に対応している。また、開口132の開口面積が減少する時の扉136の動作を、「閉動作」という。扉136がX軸方向の正側にスライドする動作が、「閉動作」に対応している。
駆動機構137は、扉136に接続されている。駆動機構137は、その駆動に伴って、扉136をX軸方向に開閉動作させる。駆動機構137に含まれるモータの種類は、特に限定されないが、一例として、サーボモータ、ステッピングモータ、またはリニアモータである。駆動機構137は、X軸方向の任意の位置で扉136を停止させることができる。
加工エリアAR1外の外部エリアAR2には、搬送装置200と、加工対象のワークWの載置する箱210とが配置される。搬送装置200は、加工エリアAR1と外部エリアAR2との間で、開口132を通じてワークWを搬送する。搬送装置200によるワークWの搬送工程の詳細については後述する。
<C.ワークの搬入工程>
次に、図3および図4を参照して、外部エリアAR2から加工エリアAR1へのワークWの搬入工程について説明する。図3は、ワークWの搬入工程を時系列に示す図である。
ステップS1において、加工システム10は、搬送対象のワークWのサイズ(以下、「ワークサイズ」ともいう。)を認識する。ワークサイズの認識処理が実行されるタイミングは、たとえば、外部エリアAR2から加工エリアAR1へのワークの搬送を開始する前の所定タイミングである。
本明細書でいう「ワークサイズ」とは、搬送対象のワークWの大きさに相関する任意の指標を含む概念である。一例として、ワークサイズは、所定方向におけるワークWの幅であってもよいし、ワークWの体積であってもよい。典型的には、加工システム10は、扉136の開閉方向(すなわち、X軸方向)におけるワークWの幅をワークサイズとして認識する。
図3において、搬送対象のワークWは、ワークWAとして示されている。加工システム10は、搬送対象のワークWAが開口132を通過できるように、開口132の度合い(以下、「開口度合い」ともいう。)を決定する。このとき、加工システム10は、ワークWAのサイズが小さいほど開口度合いを小さくする。
図4は、開口度合いを決定する際に参照される開口規定94を示す図である。図4に示されるように、開口規定94は、ワークサイズが小さいほど、開口度合いが小さくなるように規定される。換言すれば、開口規定94は、ワークサイズが大きいほど、開口度合いが大きくなるように規定される。
ある局面において、開口規定94は、ワークサイズを説明変数とし、開口度合いを目的変数とする算出式で規定される。他の局面において、開口規定94は、開口度合いをワークサイズごとに対応付けたテーブル形式で規定される。
加工システム10は、たとえば、認識したワークサイズに所定サイズを付加した幅を、開口度合いとして決定する。たとえば、認識されたワークサイズが「w1」である場合には、加工システム10は、ワークサイズ「w1」に所定サイズ「Δw」を加算した「w1+Δw」を開口度合いとして決定する。所定サイズ「Δw」は、たとえば、搬送装置200によるワークの把持部分のサイズに応じて決められる。
再び図3を参照して、ステップS2において、加工システム10は、ステップS1で決定された開口度合いに基づいて、扉136の開閉位置を決定する。その後、加工システム10は、決定した開閉位置で扉136が停止するように駆動機構137に制御指令を送る。当該開閉位置は、たとえば、X軸方向における座標値で表わされる。駆動機構137は、当該制御指令を受けて、指定された開閉位置に扉136を駆動する。これにより、搬送対象のワークWAのサイズに応じた開口度合いで扉136が開かれる。
ステップS3において、扉136の開動作が完了したとする。このことに基づいて、搬送装置200は、外部エリアAR2から加工エリアAR1へ、開口132を介して、ワークWAを搬入する。搬入されたワークWAは、テーブル116に設置される。その後、加工システム10は、予め定められた加工プログラムに従って主軸115およびテーブル116を駆動することで、ワークWAを加工する。
以上のように、加工システム10は、ワークWAの搬送前にワークサイズを認識し、当該ワークサイズに応じて、扉136の開口度合いを変える。これにより、加工システム10は、扉136の開位置を固定している場合よりも消費電力を抑えることができる。また、扉136の開動作を最低限にすることで、ワークWAの搬入時間が短縮され、ワーク加工にかかるサイクルタイムが短縮される。
<D.ワークの搬出過程>
次に、図5を参照して、搬送装置200によるワークの搬出工程について説明する。図5は、ワークの搬出工程を時系列に示す図である。
ステップS6において、工作機械100によるワークWAの加工が完了したとする。このことに基づいて、加工システム10は、扉136の開口度合いを決定する。
ある局面において、加工システム10は、外部エリアAR2から加工エリアAR1へワークWAを搬入する際における開口度合いを、加工エリアAR1から外部エリアAR2へワークWAを搬出する際における開口の度合いと同じにする。通常、加工後のワークWAは、加工前のワークWAよりも小さい。そのため、ワークWAの搬入時で利用された開口度合いがワークWAの搬出時に再利用されたとしても、加工後のワークWAは、開口132を通過することができる。このように、ワーク搬入時に決定された開口度合いがワーク搬出時に再利用されることで、ワークサイズを再認識する必要がなくなる。
他の局面において、加工システム10は、外部エリアAR2から加工エリアAR1へワークWAを搬入する際において加工後のワークWAのサイズを再び認識し、認識したワークサイズに応じて開口度合いを決定する。すなわち、加工システム10は、ワーク搬入前に加工前のワークWAのサイズ(第1サイズ)を認識するだけでなく、ワーク搬出前に加工後のワークWAのサイズ(第2サイズ)を認識する。これにより、加工システム10は、ワークWAの搬入前には第1サイズに応じて開口度合いを決定し、ワークWAの搬出時には第2サイズに応じて開口度合いを決定する。通常、加工後のワークWAは、加工前のワークWAよりも小さいため、ワーク搬出時における開口度合いは、ワーク搬入時よりも小さくなる。このように、ワークサイズが搬入時および搬出時で認識されることで、扉136の開動作に係る消費電力をさらに抑えることができる。
ステップS7において、加工システム10は、ステップS6で決定した開口度合いに基づいて扉136の開閉位置を決定する。その後、加工システム10は、決定した開閉位置で扉136が停止するように駆動機構137に制御指令を送る。当該開閉位置は、たとえば、X軸方向における座標値で表わされる。駆動機構137は、当該制御指令を受けて、指定された開閉位置に扉136を駆動する。これにより、加工後のワークWAが通過できる開口度合いで扉136が開かれる。
ステップS8において、扉136の開動作が完了したとする。このことに基づいて、搬送装置200は、加工エリアAR1から外部エリアAR2へ、開口132を介して、加工済みのワークWAを搬出する。搬出されたワークWAは、箱210に設置される。
以上のように、ワークサイズは、加工エリアAR1と外部エリアAR2との間で搬送される前の任意のタイミングで認識される。すなわち、ワークサイズは、外部エリアAR2から加工エリアAR1へのワークの搬入前に認識されてもよいし、加工エリアAR1から外部エリアAR2へのワークの搬出前に認識されてもよい。
<E.加工システム10の装置構成>
次に、図6を参照して、加工システム10の装置構成について説明する。図6は、加工システム10の装置構成の一例を示す図である。
加工システム10は、工作機械100と、ロボットコントローラ200Aと、搬送装置200とを含む。工作機械100は、PLC(Programmable Logic Controller)40と、CNC(Computer Numerical Control)ユニット100Aと、扉136と、駆動機構137と、搬送装置200と、ロボットコントローラ200Aと、画像処理装置300と、カメラ330と、情報処理装置400とを含む。
PLC40は、たとえば、CPUユニット50と、通信ユニット51とを含む。これらのユニットは、フィールドバスBを介して互いに通信を行う。
CPUユニット50は、予め準備されているPLCプログラムに従って、加工システム10を構成する各種ユニットを制御する。当該PLCプログラムは、たとえば、ラダープログラムで記述されている。
通信ユニット51は、外部ユニットとの通信を実現ためのユニットであり、フィールドネットワークNWに接続される。フィールドネットワークNWは、データの到達時間が保証されているネットワークの通称である。フィールドネットワークNWとして、EtherCAT(登録商標)、EtherNet/IP(登録商標)、CC−Link(登録商標)、またはCompoNet(登録商標)などが採用される。フィールドネットワークNWには、PLC40と、CNCユニット100Aと、ロボットコントローラ200Aと、画像処理装置300と、情報処理装置400とが接続される。これらの装置は、フィールドネットワークNWを介して互いに通信を行う。
駆動機構137は、サーボドライバ61と、サーボモータ62とを含む。サーボドライバ61は、CPUユニット50から目標開閉位置の入力を逐次的に受け、サーボモータ62を制御する。サーボモータ62は、扉136をボールねじ(図示しない)を介して駆動し、X軸方向の任意の開閉位置に扉136を駆動する。
より具体的には、サーボドライバ61は、サーボモータ62の回転角度を検知するためのエンコーダ(図示しない)のフィードバック信号から扉136の実開閉位置を算出する。サーボドライバ61は、算出した実開閉位置が目標開閉位置よりも正側にある場合には、扉136が負側に移動するようにサーボモータ62を回転駆動し、算出した実開閉位置が目標開閉位置よりも負側にある場合には、扉136が正側に移動するようにサーボモータ62を回転駆動する。このように、サーボドライバ61は、サーボモータ62の実開閉位置のフィードバックを逐次的に受けながらサーボモータ62の実開閉位置を目標開閉位置に近付ける。これにより、サーボドライバ61は、X軸方向の任意の位置に扉136を駆動する。
CNCユニット100Aは、PLC40から加工開始指令を受けたことに基づいて、予め準備されている加工プログラムの実行を開始する。当該加工プログラムは、たとえば、NC(Numerical Control)プログラムで記述されている。また、CNCユニット100Aは、加工停止中、加工実行中、または加工完了などを示す加工の進行状況をPLC40に出力する。
ロボットコントローラ200Aは、PLC40から搬送開始指令を受けたことに基づいて、予め準備されている搬送プログラムの実行を開始し、当該搬送プログラムに従って、搬送装置200を制御する。また、ロボットコントローラ200Aは、搬送停止中、搬送実行中、または搬送完了などを示す搬送の進行状況をPLC40に出力する。また、ロボットコントローラ200Aは、搬送装置200の各箇所(たとえば、把持部分や各関節など)の実位置を特定するための情報(たとえば、座標値や角度など)を逐次的にPLC40に出力する。
画像処理装置300は、汎用のコンピュータである。画像処理装置300には、カメラ330が接続される。カメラ330は、1台だけ接続されてもよいし、複数台接続されてもよい。カメラ330は、外部エリアAR2にある加工前(搬入前)のワークWを撮影するように設置される。あるいは、カメラ330は、加工エリアAR1にある加工後(搬出前)のワークWを撮影するように設置される。画像処理装置300は、加工前または加工後のワークを撮影して得られた画像をカメラ330から取得し、ワークサイズを検知する。画像に基づくワークサイズの検知方法の詳細については後述する。検知されたワークサイズは、PLC40に送られる。
情報処理装置400は、汎用のコンピュータである。情報処理装置400は、加工プログラム、または、ワークのCAD(Ccomputer-Aided Design)データに基づいて、搬送前のワークについてワークサイズを検知する。情報処理装置400によるワークサイズの検知方法の詳細については後述する。検知されたワークサイズは、PLC40に送られる。
なお、画像処理装置300および情報処理装置400は、必ずしも、別体のコンピュータとして工作機械100に設けられる必要はない。画像処理装置300および情報処理装置400の各機能は、工作機械100内の別の装置に実装されてもよく、たとえば、後述の操作盤130(図11参照)に実装されてもよい。
<F.工作機械100の機能構成>
図7を参照して、工作機械100の機能構成について説明する。図7は、工作機械100の機能構成の一例を示す図である。
工作機械100は、機能構成として、認識部550と、駆動制御部570とを含む。以下では、認識部550および駆動制御部570の機能について順に説明する。
(F1.認識部550)
認識部550は、外部エリアAR2にある加工前(搬入前)のワークW、および加工エリアAR1にある加工後(搬出前)のワークWについて、ワークサイズを認識する。
認識部550は、たとえば、画像取得部552と、画像処理部554と、把持状態取得部556と、推定部558と、プログラム取得部560と、プログラム解析部562と、CADデータ取得部564と、CADデータ解析部566とを含む。
これらの機能構成は、工作機械100を構成するいずれの装置に含まれてもよい。一例として、画像取得部552および画像処理部554は、画像処理装置300に含まれる。把持状態取得部556および推定部558は、PLC40に含まれる。プログラム取得部560、プログラム解析部562、CADデータ取得部564、およびCADデータ解析部566は、情報処理装置400に含まれる。
ワークサイズの認識方法は、特に限定されず、ワークサイズは、種々の方法で認識される。以下では、ワークサイズの認識方法の具体例1〜4について説明する。
(a)ワークサイズの認識方法の具体例1
まず、ワークサイズの認識方法の具体例1について説明する。本具体例では、ワークサイズは、画像処理によって認識される。このような画像処理に基づく認識方法は、画像取得部552および画像処理部554によって実現される。
ある局面において、画像取得部552は、加工エリアAR1へワークを搬入する前に、加工前のワークが写っている画像をカメラ330から取得する。より具体的には、PLC40(図6参照)は、外部エリアAR2から加工エリアAR1への搬入開始指示を搬送装置200に出力する前に、画像取得部552に撮影指示を出力する。これを受けて、画像取得部552は、カメラ330に撮影指示を出力し、カメラ330に撮影を実行させる。これにより、画像取得部552は、カメラ330からワーク画像を取得する。
他の局面において、画像取得部552は、加工エリアAR1からワークを搬出する前に、加工後のワークが写っている画像をカメラ330から取得する。より具体的には、PLC40は、工作機械100から加工完了信号を受信したことに基づいて、画像取得部552に撮影指示を出力する。これを受けて、画像取得部552は、カメラ330に撮影指示を出力し、カメラ330に撮影を実行させる。これにより、画像取得部552は、カメラ330からワーク画像を取得する。
画像処理部554は、画像取得部552によって取得されたワーク画像からワーク領域を認識する。一例として、ワーク領域は、学習済みモデルを用いて認識される。学習済みモデルは、学習用データセットを用いた学習処理により予め生成されている。学習用データセットは、ワークが写っている複数の学習用画像を含む。各学習用画像には、ワークが写っているか否かを示すラベル(あるいは、ワークの種別を示すラベル)が関連付けられる。学習済みモデルの内部パラメータは、このような学習用データセットを用いた学習処理により予め最適化されている。
学習済みモデルを生成するための学習手法には、種々の機械学習アルゴリズムが採用され得る。一例として、当該機械学習アルゴリズムとして、ディープラーニング、コンボリューションニューラルネットワーク(CNN)、全層畳み込みニューラルネットワーク(FCN)、サポートベクターマシンなどが採用される。
図8は、ワーク画像IMGから検知されたワーク領域WRの一例を示す図である。画像処理部554は、ワーク領域WRに関する画像情報に基づいて、ワークサイズを認識する。
ある局面において、画像処理部554は、ワーク領域WRが示す各辺の幅の内の最大幅をワークサイズとして認識する。この場合、図8の例では、幅WXがワークサイズとして認識される。
他の局面において、画像処理部554は、ワーク領域WRが示す各辺の幅の内の最小幅をワークサイズとして認識する。この場合、図8の例では、幅WYがワークサイズとして認識される。
さらに他の局面において、画像処理部554は、ワーク領域WRの面積をワークサイズとして認識する。図8の例では、幅WX×幅WYがワークサイズとして認識される。
(b)ワークサイズの認識方法の具体例2
次に、ワークサイズの認識方法の具体例2について説明する。本具体例では、ワークサイズは、搬送装置200によるワークの把持状態に基づいて認識される。このような認識機能は、把持状態取得部556および推定部558によって実現される。
把持状態取得部556は、搬送装置200によるワークの把持状態をロボットコントローラ200Aから取得する。ロボットコントローラ200Aは、予め定められた搬送プログラムに従って搬送装置200を制御しているので、搬送装置200の把持状態を把握している。典型的には、把持状態取得部556は、搬送装置200がワークを把持したときにおける、把持部分の開き度合いを把持状態として取得する。
図9は、アームロボットとしての搬送装置200を示す図である。搬送装置200は、たとえば、複数のアームAM1〜AM5が互いに連結された多関節ロボットである。アームAM1〜AM5の各連結部には回転軸が含まれており、アームAM1〜AM5の各々は、回転軸の周りを回転可能に構成される。アームAM5の両端には把持部分Gが連結される。
把持状態取得部556は、搬送装置200がワークWを把持しているときにおいて、把持部分Gの開き度合いを取得する。推定部558は、把持状態取得部556によって取得された把持部分Gの開き度合いに基づいて、ワークサイズを推定する。把持部分Gの開き度合いは、把持するワークの大きさに応じて変わるため、ワークサイズは、把持部分Gの開き度合いから推定することができる。
把持部分Gの開き度合いとワークサイズとの対応関係は、予め規定されている。ある局面において、当該対応関係は、把持部分Gの開き度合いを説明変数とし、ワークサイズを目的変数とする算出式で規定される。他の局面において、当該対応関係は、ワークサイズを把持部分Gの開き度合いごとに対応付けたテーブル形式で規定される。
(c)ワークサイズの認識方法の具体例3
次に、ワークサイズの認識方法の具体例3について説明する。本具体例では、ワークサイズは、ワークの加工プログラムに基づいて認識される。このような認識機能は、プログラム取得部560およびプログラム解析部562によって実現される。
プログラム取得部560は、ワークの加工プログラムを取得する。加工プログラムの取得先は、任意である。一例として、加工プログラムは、工作機械100から取得される。あるいは、加工プログラムは、当該加工プログラムを格納する外部記憶媒体から取得される。
プログラム解析部562は、プログラム取得部560の加工プログラムに基づいて、ワークサイズを認識する。加工プログラムは、早送り加工を実行するための命令コードと、切削送り加工を実行するための命令コードとを含む。
「早送り」とは、予め定められた最大速度で主軸115またはテーブル116を駆動する制御を意味する。典型的には、加工プログラムにおいて「G00」のGコードが実行された場合に、主軸115は、早送りで駆動される。
「切削送り」とは、指定された送り速度で主軸115またはテーブル116を駆動する制御を意味する。典型的には、切削送り時における主軸115の送り速度は、早送り時における主軸115の送り速度よりも遅い。切削送りの速度は、加工プログラム122上で指定される。一例として、加工プログラム122において「G01」〜「G03」のGコードが実行された場合に、主軸115またはテーブル116は、切削送りで駆動される。
典型的には、ワークの加工は、早送り時には行われず、切削送り時に行われる。また、早送り指令である「G00」や、切削送り指令である「G01」〜「G03」には、移動先の座標値(X,Y,Z)が規定されている。プログラム解析部562は、たとえば、「G00」が示す移動先の座標値から、「G01」〜「G03」が示す移動先の座標値までの間の距離をワークサイズとして認識する。
なお、上述のプログラム解析方法は一例であり、プログラム解析部562は、ワークサイズを特定することが可能な任意のコードからワークサイズを認識することができる。たとえば、加工プログラム内において、ワークサイズを直接的に規定するコードが含まれていれば、プログラム解析部562は、当該コードに基づいてワークサイズを認識する。
また、ワークサイズは、必ずしも加工プログラムから認識される必要はない。たとえば、工作機械100の中には、オペレータが対話形式での質問に応えることにより自動で加工プログラムを生成する機能を有するものがある。この過程で、オペレータによってワークサイズが入力されてもよい。
(d)ワークサイズの認識方法の具体例4
次に、ワークサイズの認識方法の具体例4について説明する。本具体例では、ワークサイズは、ワークの形状を表わす3次元データに基づいて認識される。このような認識機能は、CADデータ取得部564およびCADデータ解析部566によって実現される。
CADデータ取得部564は、ワークの形状を表わす3次元データを取得する。3次元データの種類は、特に限定しないが、たとえば、CADデータである。CADデータの取得先は、任意である。一例として、ワークのCADデータは、CNCユニット100Aから取得される。あるいは、ワークのCADデータは、外部装置(たとえば、サーバーなど)から取得されてもよい。
CADデータ解析部566は、CADデータ取得部564によって取得されたCADデータに基づいて、ワークサイズを認識する。
ある局面において、CADデータ解析部566は、CADデータが示すワークの各辺の幅の内の最大幅をワークサイズとして認識する。他の局面において、CADデータ解析部566は、CADデータが示す各辺の幅の内の最小幅をワークサイズとして認識する。さらに他の局面において、CADデータ解析部566は、CADデータの体積をワークサイズとして認識する。
(F2.駆動制御部570)
次に、図7に示される駆動制御部570の機能について説明する。
駆動制御部570は、上述の開口規定94(図4参照)を参照して、認識部550によって認識されたワークサイズに基づいて、扉136の開口度合い(すなわち、開閉位置)を決定する。その後、駆動制御部570は、後述のPLCプログラム92(図10参照)に規定されている開閉位置を変更する。これにより、PLCプログラム92の実行時において、変更された開閉位置に扉136が開かれる。
なお、認識部550によって認識されるワークサイズが示す方向は、扉136の開閉方向と対応していないことがある。この場合、駆動制御部570は、認識部550によって認識されるワークサイズが示す方向が、扉136の開閉方向に合うように、搬送装置200にワークを搬送させる。
一例として、図8を参照して、画像からワークサイズが認識される場合(すなわち、上記具体例1)における方向合わせについて説明する。
前提として、カメラ330の配置位置は、既知であるものとする。カメラ330の配置位置が既知であれば、ワーク画像IMG内の座標系(すなわち、カメラ座標系)と、実世界の座標系(すなわち、ワールド座標系)との対応関係が決まる。上述の図8の例では、ワールド座標系のXY方向(図3参照)は、ワーク画像IMGのXY方向と対応しているとする。
認識部550が幅WXをワークサイズとして認識した場合、駆動制御部570は、カメラ座標系のX軸方向がワールド座標系のX軸方向と平行になるように、搬送装置200を駆動する。その結果、画像内のX軸方向が扉136の開閉方向(すなわち、図3に示すX軸方向)と平行になるように、ワークの向きが調整される。その上で、搬送装置200は、ワークの搬送を開始し、扉136を通過させる。
一方で、認識部550が幅WYをワークサイズとして認識した場合、駆動制御部570は、カメラ座標系のY軸方向がワールド座標系のX軸方向と平行になるように、搬送装置200を駆動する。その結果、画像内のY軸方向が扉136の開閉方向(すなわち、図3に示すX軸方向)と平行になるように、ワークの向きが調整される。その上で、搬送装置200は、ワークの搬送を開始し、扉136を通過させる。
<G.各装置の構成>
次に、図10〜図14を参照して、加工システム10を構成する各種装置のハードウェア構成について順に説明する。
(G1.CPUユニット50の構成)
まず、図10を参照して、加工システム10に備えられるCPUユニット50のハードウェア構成について説明する。図10は、CPUユニット50のハードウェア構成の一例を示す図である。
CPUユニット50は、プロセッサ71と、ROM(Read Only Memory)72と、RAM(Random Access Memory)73と、通信インターフェイス74と、フィールドバスコントローラ75と、記憶装置90とを含む。これらのコンポーネントは、内部バス79に接続される。
プロセッサ71は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのASIC(Application Specific Integrated Circuit)、少なくとも1つのFPGA(Field Programmable Gate Array)、またはそれらの組み合わせなどによって構成され得る。
プロセッサ71は、PLCプログラム92などの各種プログラムを実行することでCPUユニット50の動作を制御する。PLCプログラム92は、加工システム10内の各種装置を制御するための命令を規定している。プロセッサ71は、PLCプログラム92の実行命令を受け付けたことに基づいて、記憶装置90またはROM72からRAM73にPLCプログラム92を読み出す。RAM73は、ワーキングメモリとして機能し、PLCプログラム92の実行に必要な各種データを一時的に格納する。
通信インターフェイス74には、LAN(Local Area Network)やアンテナなどが接続される。CPUユニット50は、通信インターフェイス74を介して外部機器(たとえば、サーバー)とデータをやり取りする。CPUユニット50は、当該外部機器からPLCプログラム92をダウンロードできるように構成されてもよい。
フィールドバスコントローラ75は、フィールドバスに接続される各種ユニットとの通信を実現するためのインターフェイスである。当該フィールドバスに接続されるユニットの一例として、通信ユニット51などが挙げられる。
記憶装置90は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置90は、PLCプログラム92や開口規定94などを格納する。PLCプログラム92および開口規定94の格納場所は、記憶装置90に限定されず、プロセッサ71の記憶領域(たとえば、キャッシュメモリなど)、ROM72、RAM73、外部機器(たとえば、サーバー)などに格納されていてもよい。
(G2.工作機械100の構成)
次に、図11を参照して、加工システム10に備えられる工作機械100のハードウェア構成について説明する。図11は、工作機械100のハードウェア構成の一例を示す図である。
工作機械100は、CNCユニット100Aと、サーボドライバ111A〜111Dと、サーボモータ112A〜112Dと、エンコーダ113A〜113Dと、ボールねじ114A,114Bと、主軸115と、操作盤130とを含む。CNCユニット100Aは、プロセッサ101と、ROM102と、RAM103と、通信インターフェイス104とを含む。
プロセッサ101は、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのMPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成される。
プロセッサ101は、加工プログラム122など各種プログラムを実行することでCNCユニット100Aの動作を制御する。プロセッサ101は、加工プログラム122の実行命令を受け付けたことに基づいて、記憶装置120からROM102に加工プログラム122を読み出す。RAM103は、ワーキングメモリとして機能し、加工プログラム122の実行に必要な各種データを一時的に格納する。
通信インターフェイス104は、フィールドネットワークNW(図6参照)に接続するためのインターフェイスである。CNCユニット100Aは、通信インターフェイス104を介してフィールドネットワークNWに接続される各種機器(たとえば、PLC40)とデータをやり取りする。
操作盤130は、工作機械100に対する各種の操作を受け付ける。また、操作盤130は、ディスプレイ(図示しない)を備え、各種の情報を表示する。当該ディスプレイは、たとえば、液晶ディスプレイ、有機ELディスプレイ、またはその他の表示機器である。
CNCユニット100Aは、加工プログラム122に従ってサーボドライバ111A〜111Dを制御する。サーボドライバ111Aは、ボールねじ114Aに接続される上述のテーブル116をCNCユニット100Aからの制御指令に従ってX軸方向(図3参照)に移動し、テーブル116をX軸方向の任意の位置に移動する。サーボドライバ111Bは、ボールねじ114Bに接続されるテーブル116をCNCユニット100Aからの制御指令に従ってY軸方向(図3参照)に移動し、テーブル116をY軸方向の任意の位置に移動する。サーボドライバ111Cは、ボールねじ114Cに接続される主軸115をCNCユニット100Aからの制御指令に従ってZ軸方向(図3参照)に移動し、主軸115をZ軸方向の任意の位置に移動する。サーボドライバ111Dは、CNCユニット100Aからの制御指令に従って、主軸115の回転速度を制御する。
記憶装置120は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置120は、加工プログラム122などを格納する。加工プログラム122の格納場所は、記憶装置120に限定されず、プロセッサ101の記憶領域(たとえば、キャッシュ領域など)、ROM102、RAM103、外部機器(たとえば、サーバー)などに格納されていてもよい。
(G3.ロボットコントローラ200Aの構成)
次に、図12を参照して、図6に示されるロボットコントローラ200Aのハードウェア構成について説明する。図12は、ロボットコントローラ200Aのハードウェア構成の一例を示す図である。
ロボットコントローラ200Aは、プロセッサ201と、ROM202と、RAM203と、通信インターフェイス204と、フィールドバスコントローラ205と、記憶装置90とを含む。これらのコンポーネントは、内部バス209に接続される。これらの構成は、上述のCPUユニット50(図10参照)と同じであるので、以下では相違点についてのみ説明を繰り返さない。
通信インターフェイス204は、外部機器との通信を実現するためのインターフェイスである。通信インターフェイス204は、たとえば、NIC(Network Interface Card)である。一例として、ロボットコントローラ200Aは、通信インターフェイス204を介して、所定の通信プロトコル(たとえば、EtherNet/IP)に従ってPLC40との通信を実現する。
記憶装置220は、搬送装置200を制御するロボット制御プログラム222などを格納する。なお、ロボット制御プログラム222の格納場所は、記憶装置220に限定されず、プロセッサ201の記憶領域(たとえば、キャッシュメモリなど)、ROM202、RAM203、外部機器(たとえば、サーバー)などに格納されていてもよい。
(G4.画像処理装置300の構成)
次に、図13を参照して、図6に示される画像処理装置300のハードウェア構成について説明する。図13は、画像処理装置300のハードウェア構成の一例を示す図である。
画像処理装置300は、プロセッサ301と、ROM302と、RAM303と、通信インターフェイス304と、カメラインターフェイス305と、記憶装置320とを含む。これらのコンポーネントは、内部バス310に接続される。
プロセッサ301は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
プロセッサ301は、ワークサイズを認識するための画像処理プログラム322などの各種プログラムを実行することで画像処理装置300の動作を制御する。プロセッサ301は、各種プログラムの実行命令を受け付けたことに基づいて、記憶装置320またはROM302からRAM303に実行対象のプログラムを読み出す。RAM303は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。
通信インターフェイス304は、フィールドネットワークNW(図6参照)に接続するためのインターフェイスである。画像処理装置300は、通信インターフェイス304を介してフィールドネットワークNWに接続される各種機器(たとえば、PLC40)とデータをやり取りする。
カメラインターフェイス305は、カメラ330と画像処理装置300とを有線または無線で接続するためのインターフェイスである。カメラ330は、CCD(Charge Coupled Device)カメラであってもよいし、赤外線カメラ(サーモグラフィ)であってもよいし、その他の種類のカメラであってもよい。
記憶装置320は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置320は、たとえば、画像処理プログラム322などを格納する。画像処理プログラム322の格納場所は、記憶装置320に限定されず、プロセッサ301の記憶領域(たとえば、キャッシュメモリなど)、ROM302、RAM303、外部機器(たとえば、サーバー)などに格納されていてもよい。
(G5.情報処理装置400の構成)
次に、図14を参照して、図6に示される情報処理装置400のハードウェア構成について説明する。図14は、情報処理装置400のハードウェア構成の一例を示す図である。
情報処理装置400は、プロセッサ401と、ROM402と、RAM403と、通信インターフェイス404と、記憶装置420とを含む。これらのコンポーネントは、内部バス410に接続される。これらの構成は、上述の情報処理装置400(図13参照)と同じであるので、以下では相違点についてのみ説明を繰り返さない。
記憶装置420は、たとえば、認識プログラム422などを格納する。認識プログラム422は、加工プログラムやワークのCADデータに基づいてワークサイズを認識する機能を有する。認識プログラム422の格納場所は、記憶装置420に限定されず、プロセッサ401の記憶領域(たとえば、キャッシュメモリなど)、ROM402、RAM403、外部機器(たとえば、サーバー)などに格納されていてもよい。
<H.フローチャート>
図15を参照して、工作機械100の制御フローについて説明する。図15は、工作機械100によって実行される処理の一部を示すフローチャートである。
図15に示される処理は、工作機械100がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、PLC40は、外部エリアAR2から加工エリアAR1へのワークの搬入タイミングが到来したか否かを判断する。PLC40は、ワークの搬入タイミングが到来したと判断した場合(ステップS110においてYES)、制御をステップS112に切り替える。そうでない場合には(ステップS110においてNO)、PLC40は、制御をステップS130に切り替える。
ステップS112において、PLC40は、ワークサイズの認識処理を実行させる対象の装置(たとえば、画像処理装置300や情報処理装置400など)に、ワークサイズの実行指令を出力する。当該実行指令を受けた装置は、ワークサイズの認識処理を実行する。ワークサイズの認識方法は上述の通りであるので、その説明については繰り返さない。認識されたワークサイズは、PLC40に送信される。
ステップS114において、PLC40は、ステップS112で認識されたワークサイズに基づいて、扉136の開口度合いを決定し、扉136の開閉位置をサーボドライバ61に出力する。サーボドライバ61は、PLC40から受けた開閉位置に基づいて、サーボモータ62を駆動する。これにより、扉136は、指定された開閉位置に開かれる。
ステップS116において、PLC40は、外部エリアAR2から加工エリアAR1へのワークの搬入指示をロボットコントローラ200Aに出力する。これを受けて、ロボットコントローラ200Aは、搬送装置200を制御し、ワークを加工エリアAR1に搬入する。
ステップS118において、PLC40は、扉136の閉動作を実行する。より具体的には、PLC40は、扉136の閉位置をサーボドライバ61に出力する。扉136の閉位置は、予め定められており、固定である。サーボドライバ61は、PLC40から受けた閉位置に扉136が移動するように、サーボモータ62を駆動する。これにより、扉136が閉じられる。
ステップS120において、PLC40は、加工開始指令をCNCユニット100Aに出力する。これにより、CNCユニット100Aは、加工プログラム122に従って、ワークの加工を開始する。その後、CNCユニット100Aは、加工が完了したことに基づいて、加工完了信号をPLC40に出力する。
ステップS130において、PLC40は、加工エリアAR1から外部エリアAR2へのワークの搬出タイミングが到来したか否かを判断する。PLC40は、ワークの搬出タイミングが到来したと判断した場合(ステップS130においてYES)、制御をステップS132に切り替える。そうでない場合には(ステップS130においてNO)、図15に示される処理を終了する。
ステップS132において、PLC40は、ワークサイズの認識処理を実行させる対象の装置(たとえば、画像処理装置300や情報処理装置400など)に、ワークサイズの実行指令を出力する。当該実行指令を受けた装置は、ワークサイズの認識処理を実行する。ワークサイズの認識方法は上述の通りであるので、その説明については繰り返さない。認識されたワークサイズは、PLC40に送信される。
ステップS134において、PLC40は、ステップS132で認識されたワークサイズに基づいて、扉136の開口度合いを決定し、扉136の開閉位置をサーボドライバ61に出力する。サーボドライバ61は、PLC40から受けた開閉位置に基づいて、サーボモータ62を駆動する。これにより、扉136は、指定された開閉位置に開かれる。
ステップS136において、PLC40は、加工エリアAR1から外部エリアAR2へのワークの搬出指示をロボットコントローラ200Aに出力する。これを受けて、ロボットコントローラ200Aは、搬送装置200を制御し、ワークを外部エリアAR2に搬出する。
ステップS138において、PLC40は、扉136の閉動作を実行する。より具体的には、PLC40は、扉136の閉位置をサーボドライバ61に出力する。扉136の閉位置は、予め定められており、固定である。サーボドライバ61は、PLC40から受けた閉位置に扉136が移動するように、サーボモータ62を駆動する。これにより、扉136が閉じられる。
なお、上述では、ワークの搬入時とワークの搬出時とで、ワークサイズを都度認識する例について説明を行ったが、ワークサイズは、ワークの搬出時には必ずしも認識される必要はない。この場合、PLC40は、ステップS112で認識されたワークサイズをステップS132で流用する。その結果、ステップS132の認識処理は実行されず、ステップS134における扉136の開口度合いは、ステップS114における扉136の開口度合いと同じになる。
<I.まとめ>
以上のようにして、加工システム10は、ワークの搬送前にワークサイズを認識し、当該ワークサイズに応じた開口度合いで扉136を開く。これにより、加工システム10は、扉136の開位置を固定している場合よりも消費電力を抑えることができる。また、扉136の開動作を最低限にすることで、ワークの搬入時間が短縮され、ワーク加工に関するサイクルタイムが短縮される。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。