IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特開2024-136434ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム
<>
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図1
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図2
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図3
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図4
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図5
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図6
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図7
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図8
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図9
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図10
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図11
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図12
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図13
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図14
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図15
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図16
  • 特開-ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024136434
(43)【公開日】2024-10-04
(54)【発明の名称】ラインを制御するためのレシピを管理する装置、システム、方法及びプログラム
(51)【国際特許分類】
   G05B 23/02 20060101AFI20240927BHJP
   G05B 19/418 20060101ALI20240927BHJP
   G05B 19/05 20060101ALI20240927BHJP
【FI】
G05B23/02 G
G05B19/418 Z
G05B23/02 302V
G05B19/05 A
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023047550
(22)【出願日】2023-03-24
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】長谷川 直人
【テーマコード(参考)】
3C100
3C223
5H220
【Fターム(参考)】
3C100AA22
3C100AA38
3C100BB13
3C223AA11
3C223BA03
3C223BB08
3C223BB17
3C223CC02
3C223DD03
3C223EA02
3C223FF23
3C223GG01
3C223HH02
3C223HH04
5H220AA04
5H220BB07
5H220CC06
5H220CX01
5H220HH08
5H220JJ12
5H220JJ53
(57)【要約】
【課題】レシピ及びワークを容易に切り替える技術を提供する。
【解決手段】装置210は、生産プロセスのプロジェクトを格納するストレージを備える。プロジェクトは、1つ以上のレシピと、1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含む。装置210は、1つ以上の生産情報のいずれかの選択を受け付けるための入力部と、シミュレーションを実行するための制御部と、シミュレーションの実行画面を出力するための出力部とをさらに備える。制御部は、1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいてシミュレーションを実行する。
【選択図】図2
【特許請求の範囲】
【請求項1】
ラインを制御するための1つ以上のレシピを管理する装置であって、
生産プロセスのプロジェクトを格納するストレージを備え、
前記プロジェクトは、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記装置は、
前記1つ以上の生産情報のいずれかの選択を受け付けるための入力部と、
シミュレーションを実行するための制御部と、
前記シミュレーションの実行画面を出力するための出力部とをさらに備え、
前記制御部は、前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいて前記シミュレーションを実行する、装置。
【請求項2】
現実のラインを構成する1つ以上の機器に関する情報及び現実のワークに関する情報を受信するための通信部をさらに備え、
前記シミュレーションは、前記1つ以上の機器に関する情報に基づく前記現実のラインの動作を再現したシミュレーションであり、
前記制御部は、前記現実のワークに関する情報を参照し、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なるか否かを判定し、
前記出力部は、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なることに基づいて、警告を出力する、請求項1に記載の装置。
【請求項3】
前記プロジェクトは、ワークの情報を含み、
前記制御部は、前記ワークの情報を選択された前記第1生産情報に関連付けられる前記第1ワークを示すように変更する、請求項1または2に記載の装置。
【請求項4】
前記制御部は、前記第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、前記第2生産情報に関連付けられる第2レシピ及び第2ワークに基づいて前記シミュレーションを実行する、請求項1または2に記載の装置。
【請求項5】
前記1つ以上の生産情報の設定入力のためのUI(User Interface)をさらに備え、
前記入力部は、前記UIを介して、
前記1つ以上の生産情報の各々に関連付けられるレシピの入力と、
前記1つ以上の生産情報の各々に関連付けられるワークの入力とを受け付け可能に構成される、請求項1または2に記載の装置。
【請求項6】
ラインを制御するための1つ以上のレシピを管理するシステムであって、
生産プロセスのプロジェクトを管理する第1装置と、
シミュレーションを実行する第2装置とを備え、
前記第1装置は、前記プロジェクトを格納するストレージを備え、
前記プロジェクトは、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記第1装置は、
前記1つ以上の生産情報のいずれかの選択を受け付けるための入力部と、
前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークを前記第2装置に送信するための第1通信部を備え、
前記第2装置は、
受信した前記第1レシピ及び前記第1ワークに基づいて前記シミュレーションを実行するための制御部と、
前記シミュレーションの実行画面を出力するための出力部とを備える、システム。
【請求項7】
前記第2装置は、現実のラインを構成する1つ以上の機器に関する情報及び現実のワークに関する情報を受信するための第2通信部をさらに備え、
前記シミュレーションは、前記1つ以上の機器に関する情報に基づく前記現実のラインの動作を再現したシミュレーションであり、
前記制御部は、前記現実のワークに関する情報を参照し、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なるか否かを判定し、
前記出力部は、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なることに基づいて、警告を出力する、請求項6に記載のシステム。
【請求項8】
前記プロジェクトは、ワークの情報を含み、
前記第1装置は、前記ワークの情報を選択された前記第1生産情報に関連付けられる前記第1ワークを示すように変更する、請求項6または7に記載のシステム。
【請求項9】
前記第1通信部は、前記第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、前記第2生産情報に関連付けられる第2レシピ及び第2ワークの情報を前記第2装置に送信する、請求項6または7に記載のシステム。
【請求項10】
前記第1装置は、前記1つ以上の生産情報の設定入力のためのUIをさらに備え、
前記入力部は、前記UIを介して、
前記1つ以上の生産情報の各々に関連付けられるレシピの入力と、
前記1つ以上の生産情報の各々に関連付けられるワークの入力とを受け付け可能に構成される、請求項6または7に記載のシステム。
【請求項11】
前記第1通信部は、前記第2装置に前記第1レシピを送信するときに、前記第2装置に事前に送った3D(Dimensional)データを送信データから除外する、請求項6または7に記載のシステム。
【請求項12】
ラインを制御するための1つ以上のレシピを管理するための方法であって、
生産プロセスのプロジェクトをストレージに保存することを含み、
前記プロジェクトは、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記方法は、
前記1つ以上の生産情報のいずれかの選択を受け付けることと、
シミュレーションを実行することと、
前記シミュレーションの実行画面を出力することとを含み、
前記シミュレーションを実行することは、前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいて前記シミュレーションを実行することを含む、方法。
【請求項13】
ラインを制御するための1つ以上のレシピを管理するためのプログラムであって、
生産プロセスのプロジェクトをストレージに保存することをコンピュータに実行させ、
前記プロジェクトは、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記プログラムは、
前記1つ以上の生産情報のいずれかの選択を受け付けることと、
シミュレーションを実行することと、
前記シミュレーションの実行画面を出力することとをさらにコンピュータに実行させ、
前記シミュレーションを実行することは、前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいて前記シミュレーションを実行することを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ラインを制御するためのレシピを管理する技術に関し、より特定的には、レシピ及びワークの3Dデータの管理技術に関する。
【背景技術】
【0002】
工場等では製造ラインによって製品又はその部品(「ワーク」と呼ばれる)が加工される。ラインは、複数の機器からなる生産設備等である。ライン上の各機器は、PLC(Programmable Logic Controller)等の制御装置によって制御される。同一のラインが、異なるワークを加工することがある。これに対応するために、レシピと呼ばれる設定情報が使用されることがある。レシピは、制御装置の設定情報として使用される。ユーザは、制御装置に設定するレシピを切り替えることで、同一のラインを用いて異なるワークを加工し得る。
【0003】
また、制御装置により実行される制御プログラムの動作確認のために、シミュレーション技術が使用されることがある。さらに、現実のライン等の動作を3D空間内(シミュレーション)で再現する技術が知られている。レシピは、これらのシミュレーションの設定情報としても使用される。
【0004】
ユーザは、端末のディスプレイに表示されるシミュレーション画面を見ることで、制御プログラムの動作、又は、自身から離れた位置にある実際のラインの動作を確認し得る。このようなシミュレーション技術は、制御プログラムの開発支援、及び、制御装置によって制御されるラインの動作確認に使用され得る。
【0005】
制御プログラムの開発支援技術に関し、例えば、特開2016-091066号公報(特許文献1)は、「データが分類され、階層的に管理されたグループの名称の中から、入力文字に適合する検索グループ名を検索し、該検索グループ名を、該検索グループ名のグループの親グループの名称と共に表示する」サポート装置を開示している([要約]参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2016-091066号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に開示された技術によると、制御装置で使用されるプログラム及び設定情報等をプロジェクトとして管理することはできるかもしれない。しかしながら、特許文献1に開示された技術では、シミュレータに設定するレシピ及びワークの切り替え等を容易に行うことができない。
【0008】
例えば、制御プログラムのデバッグのために、ユーザは、シミュレータにレシピを設定することがある。この場合、ユーザは、シミュレータが表示するワークの情報もレシピに合わせて変更する必要がある。このような場合に、シミュレータに設定されるレシピ及びワークを容易に切り替えるための技術が望まれている。
【0009】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、シミュレータに設定するレシピ及びワークを容易に切り替えるための技術を提供することにある。
【課題を解決するための手段】
【0010】
ある実施の形態に従うと、ラインを制御するための1つ以上のレシピを管理する装置が提供される。装置は、生産プロセスのプロジェクトを格納するストレージを備える。プロジェクトは、1つ以上のレシピと、1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含む。装置は、1つ以上の生産情報のいずれかの選択を受け付けるための入力部と、シミュレーションを実行するための制御部と、シミュレーションの実行画面を出力するための出力部とをさらに備える。制御部は、1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいてシミュレーションを実行する。
【0011】
上記の開示によれば、装置は、生産情報が選択されたことに応じて、互いに関連付けられたレシピ及びワークに基づいてシミュレーションを実行し得る。これにより、ユーザは、生産情報を選択するだけで、シミュレータで使用されるレシピ及びワークの両方を切り替え得る。結果として、ユーザは、各レシピ及び各ワークの対応関係を覚えておく必要は無い。
【0012】
ある局面において、装置は、現実のラインを構成する1つ以上の機器に関する情報及び現実のワークに関する情報を受信するための通信部をさらに備える。シミュレーションは、1つ以上の機器に関する情報に基づく現実のラインの動作を再現したシミュレーションである。制御部は、現実のワークに関する情報を参照し、シミュレーション内のワークの形状と、現実のワークの形状とが異なるか否かを判定する。出力部は、シミュレーション内のワークの形状と、現実のワークの形状とが異なることに基づいて、警告を出力する。
【0013】
上記の開示によれば、装置は、シミュレーション内で現実のラインの動作を再現し得る。さらに、装置は、シミュレーション内のワークと、現実のライン上のワークとが異なることに基づいて、警告を出力し得る。これにより、ユーザは、シミュレーション及び現実のライン間で、ワークが異なることを把握し得る。結果として、ユーザは、シミュレーションの設定ミス、又は、現実のラインで誤ったワークが使用されていること等を把握し得る。
【0014】
ある局面において、プロジェクトは、ワークの情報を含む。制御部は、ワークの情報を選択された第1生産情報に関連付けられる第1ワークを示すように変更する。
【0015】
上記の開示によれば、装置は、プロジェクト内のワークの情報を、選択された生産情報に関連付けられたワークを示すように変更し得る。これにより、ユーザは、生産情報を選択するだけで、シミュレータに送信されるワークも変更し得る。
【0016】
ある局面において、制御部は、第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、第2生産情報に関連付けられる第2レシピ及び第2ワークに基づいてシミュレーションを実行する。
【0017】
上記の開示によれば、装置は、生産情報の選択入力を受け付けるだけで、シミュレータに設定されるレシピ及びワークの両方を変更し得る。
【0018】
ある局面において、装置は、1つ以上の生産情報の設定入力のためのUI(User Interface)をさらに備える。入力部は、UIを介して、1つ以上の生産情報の各々に関連付けられるレシピの入力と、1つ以上の生産情報の各々に関連付けられるワークの入力とを受け付け可能に構成される。
【0019】
上記の開示によれば、装置は、ユーザから、生産情報に関連付けられるレシピ及びワークの入力を受け付け得る。
【0020】
他の実施に従うと、ラインを制御するための1つ以上のレシピを管理するシステムが提供される。システムは、生産プロセスのプロジェクトを管理する第1装置と、シミュレーションを実行する第2装置とを備える。第1装置は、プロジェクトを格納するストレージを備える。プロジェクトは、1つ以上のレシピと、1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含む。第1装置は、1つ以上の生産情報のいずれかの選択を受け付けるための入力部と、1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、第1生産情報に関連付けられる第1レシピ及び第1ワークを第2装置に送信するための第1通信部を備える。第2装置は、受信した第1レシピ及び第1ワークに基づいてシミュレーションを実行するための制御部と、シミュレーションの実行画面を出力するための出力部とを備える。
【0021】
上記の開示によれば、システムは、生産情報が選択されたことに応じて、互いに関連付けられたレシピ及びワークに基づいてシミュレーションを実行し得る。これにより、ユーザは、生産情報を選択するだけで、シミュレータで使用されるレシピ及びワークの両方を切り替え得る。結果として、ユーザは、各レシピ及び各ワークの対応関係を覚えておく必要は無い。
【0022】
ある局面において、第2装置は、現実のラインを構成する1つ以上の機器に関する情報及び現実のワークに関する情報を受信するための第2通信部をさらに備える。シミュレーションは、1つ以上の機器に関する情報に基づく現実のラインの動作を再現したシミュレーションである。制御部は、現実のワークに関する情報を参照し、シミュレーション内のワークの形状と、現実のワークの形状とが異なるか否かを判定する。出力部は、シミュレーション内のワークの形状と、現実のワークの形状とが異なることに基づいて、警告を出力する。
【0023】
上記の開示によれば、システムは、シミュレーション内で現実のラインの動作を再現し得る。さらに、システムは、シミュレーション内のワークと、現実のライン上のワークとが異なることに基づいて、警告を出力し得る。これにより、ユーザは、シミュレーション及び現実のライン間で、ワークが異なることを把握し得る。結果として、ユーザは、シミュレーションの設定ミス、又は、現実のラインで誤ったワークが使用されていること等を把握し得る。
【0024】
ある局面において、プロジェクトは、ワークの情報を含む。第1装置は、ワークの情報を選択された第1生産情報に関連付けられる第1ワークを示すように変更する。
【0025】
上記の開示によれば、システムは、プロジェクト内のワークの情報を、選択された生産情報に関連付けられたワークを示すように変更し得る。これにより、ユーザは、生産情報を選択するだけで、シミュレータに送信されるワークも変更し得る。
【0026】
ある局面において、第1通信部は、第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、第2生産情報に関連付けられる第2レシピ及び第2ワークの情報を第2装置に送信する。
【0027】
上記の開示によれば、システムは、生産情報の選択入力を受け付けるだけで、シミュレータに設定されるレシピ及びワークの両方を変更し得る。
【0028】
ある局面において、第1装置は、1つ以上の生産情報の設定入力のためのUIをさらに備える。入力部は、UIを介して、1つ以上の生産情報の各々に関連付けられるレシピの入力と、1つ以上の生産情報の各々に関連付けられるワークの入力とを受け付け可能に構成される。
【0029】
上記の開示によれば、システムは、ユーザから、生産情報に関連付けられるレシピ及びワークの入力を受け付け得る。
【0030】
ある局面において、第1通信部は、第2装置に第1レシピを送信するときに、第2装置に事前に送った3D(Dimensional)データを送信データから除外する。
【0031】
上記の開示によれば、システムは、第1装置から第2装置にレシピを送信するときに、第2装置に事前に送った3Dデータを送信データから除外し得る。結果として、システムは、第1装置及び第2装置間の通信量を削減し得る。
【0032】
また、他の実施に従うと、ラインを制御するための1つ以上のレシピを管理するための方法が提供される。方法は、生産プロセスのプロジェクトをストレージに保存することを含む。プロジェクトは、1つ以上のレシピと、1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含む。方法は、1つ以上の生産情報のいずれかの選択を受け付けることと、シミュレーションを実行することと、シミュレーションの実行画面を出力することとを含む。シミュレーションを実行することは、1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいてシミュレーションを実行することを含む。
【0033】
上記の開示によれば、方法は、生産情報が選択されたことに応じて、互いに関連付けられたレシピ及びワークに基づいてシミュレーションを実行し得る。これにより、ユーザは、生産情報を選択するだけで、シミュレータで使用されるレシピ及びワークの両方を切り替え得る。結果として、ユーザは、各レシピ及び各ワークの対応関係を覚えておく必要は無い。
【0034】
さらに、他の実施に従うと、ラインを制御するための1つ以上のレシピを管理するためのプログラムが提供される。プログラムは、生産プロセスのプロジェクトをストレージに保存することをコンピュータに実行させる。プロジェクトは、1つ以上のレシピと、1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含む。プログラムは、1つ以上の生産情報のいずれかの選択を受け付けることと、シミュレーションを実行することと、シミュレーションの実行画面を出力することとをさらにコンピュータに実行させる。シミュレーションを実行することは、1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいてシミュレーションを実行することを含む。
【0035】
上記の開示によれば、プログラムを実行するコンピュータは、生産情報が選択されたことに応じて、互いに関連付けられたレシピ及びワークに基づいてシミュレーションを実行し得る。これにより、ユーザは、生産情報を選択するだけで、シミュレータで使用されるレシピ及びワークの両方を切り替え得る。結果として、ユーザは、各レシピ及び各ワークの対応関係を覚えておく必要は無い。
【発明の効果】
【0036】
ある実施の形態に従うと、シミュレータに設定するレシピ及びワークを容易に切り替えることが可能である。
【0037】
この開示内容の上記及び他の目的、特徴、局面及び利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0038】
図1】本開示の技術の適用例を示す図である。
図2】本実施の形態に従うシステム20の構成の一例を示す図である。
図3】第1装置200及び第2装置210の構成の一例を示す図である。
図4】プロジェクトのデータ構造の一例を示す図である。
図5】シミュレーションの実行結果の表示の一例を示す図である。
図6】生産情報の編集画面の第1の例を示す図である。
図7】生産情報の編集画面の第2の例を示す図である。
図8】生産情報の編集画面の第3の例を示す図である。
図9】生産情報の編集画面の第4の例を示す図である。
図10】生産情報の編集画面の第5の例を示す図である。
図11】生産情報の編集画面の第6の例を示す図である。
図12】システム20により実行されるレシピ切り替え処理の手順の一例を示す図である。
図13】第2装置210により実行される警告の出力処理の手順の一例を示す図である。
図14】警告画面の一例を示す図である。
図15】第1装置200から第2装置210に転送されるデータの削減の様子の一例を示す図である。
図16】転送の設定画面の一例を示す図である。
図17】プロジェクトの画面の一例を示す図である。
【発明を実施するための形態】
【0039】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0040】
<A.適用例>
図1は、本開示の技術の適用例を示す図である。図1を参照して、本開示の技術を適用可能なシステムの動作例、レシピの切り替え時の課題、及び、本明細書で使用する用語について説明する。
【0041】
本開示の技術は、レシピ及びワークの切り替えを容易にする。レシピは、ラインを制御する制御装置に適用される設定情報である。すなわち、レシピは、製造プロセスの設定情報であるとも言える。例えば、レシピAは、ワークAの製造プロセスAを示し、レシピBは、ワークBの製造プロセスBを示す。制御装置は、レシピAを適用(設定)されると、ワークAを加工するようにラインを制御する。同様に、制御装置は、レシピBを適用(設定)されると、ワークBを加工するようにラインを制御する。
【0042】
また、レシピは、シミュレーションの設定としても使用される。ここでのシミュレーションは、工場等の製造ライン及び検査ライン等の任意のラインの動作のシミュレーションである。レシピを設定されたシミュレータは、3D空間上でラインを再現する。また、レシピを設定されたシミュレータは、エミュレーション機能を使用して、制御装置の動作を再現する。
【0043】
制御装置及びシミュレータは、レシピに含まれる一部又は全てのデータを使用し得る。レシピは、一例として、制御装置の制御プログラムの変数の値を含む。また、レシピは、3Dデータ(CAD(Computer Aided Design)データ)等を含む。ここでの3Dデータは、例えば、ワークの3Dデータ、及び、ラインを構成する各機器及び各物(土台及びフレーム等)の3Dデータ等を含む。
【0044】
制御装置は、レシピに含まれる変数の値に基づいて、ラインを制御し得る。一例として、制御装置は、レシピAの変数の値に基づいて、ワークAを加工するようにラインを制御し得る。他の例として、制御装置は、レシピBの変数の値に基づいて、ワークBを加工するようにラインを制御し得る。シミュレータは、レシピに含まれる3Dデータに基づいて、3D空間上にラインを再現する。また、シミュレータは、レシピに含まれる変数の値に基づいて、エミュレーション機能を使用して、制御装置の動作を再現し得る。このように、レシピは、現実のラインの稼働、及び、シミュレーションの実行の2つの目的で使用され得る。
【0045】
本開示の技術は、シミュレータに設定されるレシピ及びワークの切り替えを容易にすることで、制御プログラムのデバッグの工数を削減し得る。さらに、本開示の技術は、シミュレータに設定されるレシピ及びワークの切り替えを容易にすることで、現実のラインの動作をシミュレーションで容易に再現し得る。
【0046】
(a.本開示の技術を適用可能なシステムの動作例)
レシピは、シミュレーションの実行に必要な各種設定を含む。一例として、レシピは、ラインを再現するための3Dデータ、ロボットの3Dデータを含み得る。また、レシピは、制御プログラムの変数の値、及び、その他のシミュレーションの実行に必要な任意のデータを含み得る。
【0047】
システム20(図2参照)、第1装置200(図2参照)、又は、第2装置210(図2参照)は、選択されたレシピに基づいてシミュレーションを実行する。第1装置200及び第2装置210は、独立してシミュレーションを実行する機能を備える。よって、これ以降の説明において、本明細書中のシステム20を第1装置200又は第2装置210と読み替えてもよい。ユーザは、レシピを切り替えることで、システム20に実行させるシミュレーションを切り替え得る。より具体的には、ユーザは、システム20により実行されるIDE(Integrated Development Environment)310(図3参照)又はシミュレータ320(図3参照)にレシピを設定又は入力する。IDE310及びシミュレータ320は、独立してシミュレーションを実行する機能を備える。よって、これ以降の説明において、シミュレータ320をIDE310と読み替えてもよい。シミュレータ320は、レシピを解釈して、シミュレーションを実行する。シミュレータ320は、シミュレーションの実行画面を出力する。
【0048】
一例として、ユーザは、同一又は類似のラインに異なるワークを加工させたい場合にレシピを切り替える。例えば、ラインXは、ワークAの加工と、ワークBの加工とに対応しているとする。また、ワークAの加工に対応するレシピはレシピAであり、ワークBの加工に対応するレシピはレシピBであるとする。ワークAを加工する場合とワークBを加工する場合とで、ラインXに含まれる各機器は異なる動作をする必要がある。また、ワークAを加工する場合とワークBを加工する場合とで、ワークが固定されるプラットフォーム、及び、ワークを加工するロボットの先端のツール等が異なることがある。レシピは、このような各機器の動作に関する情報、プラットフォーム、ロボットのツール、及び、その他のラインの切り替えに必要な任意の設定情報を含む。ユーザは、シミュレータ320にラインXによるワークAの加工を再現させたい場合、シミュレータ320にレシピAを設定又は入力する。ユーザは、シミュレータ320にラインXによるワークBの加工を再現させたい場合、シミュレータ320にレシピBを設定又は入力する。
【0049】
図1の例では、シミュレーションの実行画面101は、レシピAのシミュレーションの実行画面である。実行画面102の画面は、レシピBのシミュレーションの実行画面である。ユーザは、レシピA,Bを切り替えることで、異なるワークの加工に対応するラインの動作を確認し得る。すなわち、ユーザは、レシピA,Bを切り替えることで、異なるワークの加工に対応する制御プログラムの動作を確認し得る。
【0050】
システム20のシミュレーション機能の用途は主に2つ存在する。第1の用途は、制御プログラムのデバッグである。第2の用途は、実際のラインの動作の再現である。以下順番に説明する。
【0051】
まず、第1の用途である制御プログラムのデバッグについて説明する。ユーザは、ラインを稼働させるために、制御プログラムを作成する。制御プログラムは、PLC等の制御装置220(図2参照)にインストールされる。ユーザは、制御プログラムのデバッグのために、制御装置220によって制御される各機器の動作を確認する必要がある。しかしながら、制御プログラムの実装時に、ラインが完成しているとは限らない。また、実際のラインを動作させると、デバッグに時間がかかり、さらに、廃棄されるワークが大量に発生し得る。そこで、シミュレータ320は、制御装置220の動作を再現するエミュレーション機能と、ラインの動作を再現するシミュレーション機能とを提供する。すなわち、シミュレータ320は、エミュレータと、シミュレータとを含む。
【0052】
一例として、ユーザは、ラインXによるワークAの加工のための制御プログラムを実装したとする。この場合、ユーザは、ワークAに対応するレシピAをシミュレータ320に設定する。シミュレータ320は、レシピAに含まれる制御プログラムの変数の値に基づいて、制御装置220の動作をエミュレートする。また、シミュレータ320は、レシピAに含まれる3Dデータ等に基づいて、3D空間上にラインXを再現する。ユーザは、シミュレータ320を使用することで、制御プログラムによりラインXがどのように動作するかを確認し得る。結果として、ユーザは、現実のラインを構築する必要はなく、また、迅速に制御プログラムの実行結果を確認し得る。さらに、ユーザは、制御プログラムの開発工数を削減し得る。
【0053】
次に、第2の用途である実際のラインの動作の再現について説明する。ユーザは、ラインの稼働後に、ラインが正常に稼働しているか否かを確認する必要がある。しかしながら、ユーザにとって、常にラインを確認できる場所にいることは大きな負担となる。また、ユーザは、遠隔地にあるラインの動作を確認したいことがある。そこで、システム20は、現実のラインの動作を3D空間で再現する機能を提供する。
【0054】
より具体的には、第2装置210は、1つ以上の制御装置220を管理する機能を備える。第2装置210は、レシピ又はレシピの一部(制御プログラムの変数等)を1つ以上の制御装置220に設定し得る。1つ以上の制御装置220は、レシピ又はレシピの一部に基づいて、実際のラインを制御し得る。1つ以上の制御装置220の各々は、各機器への命令及び各センサーから取得した信号の値等を第2装置210に送信する。ある実施の形態に従うと、1つ以上の制御装置220の各々は、自装置が保有する内部情報を第2装置210に送信してもよい。内部情報は、各機器への命令の値及び各センサーから取得した信号の値等を含む。他の実施の形態に従うと、1つ以上の制御装置220の各々は、制御プログラムの変数の値を第2装置210に送信してもよい。また、他の実施の形態に従うと、1つ以上の制御装置220の各々は、制御プログラムの変数の値から算出された各機器の位置の物理量を第2装置210に送信してもよい。当該物理量は、例えば、ロボットの関節の角度等を含み得る。第2装置210は、制御装置220から受信する各種情報に基づいて、実際のラインの動作を3D空間上で再現する。そのため、制御装置220がレシピに従って動作し、第2装置210は、現実のラインの動作を模倣しているとも言える。
【0055】
一例として、ユーザは、現実のラインX上でワークAが加工されている様子を確認したいとする。この場合、システム20(第2装置210)は、レシピA(又はレシピAの一部)を1つ以上の制御装置220に設定する。1つ以上の制御装置220は、レシピAに基づいて、ラインを制御する。1つ以上の制御装置220は、各機器への命令及び各センサーから取得した信号の値等をシステム20(第2装置210)に送信する。システム20(第2装置210)は、レシピAに含まれる各種3Dデータに基づいて、3D空間上にラインを再現する。3D空間上のラインに含まれる各機器は、現実のラインに含まれる各機器と同一である。また、システム20は、1つ以上の制御装置220から受信した各種情報に基づいて、3D空間上に配置された各機器を動作させる。すなわち、システム20は、3D空間上に配置された各機器を現実の各機器と連動させる。こうすることで、ユーザは、シミュレーションの実行画面を見ることにより、現実のラインの動作を確認し得る。その結果、ユーザは、例えば、現実のラインが見える位置にいる必要はなく、また、遠隔地のラインの動作も確認し得る。
【0056】
さらに、システム20は、シミュレーション機能に加えて、警告機能を備える。システム20が、第2の用途である実際のラインの動作の再現のために使用されたとする。この場合、3D空間に再現されたライン上のワークと、現実のライン上のワークとが異なる可能性がある。このような事態は、シミュレーションの設定ミス、又は、現実のラインにおけるヒューマンエラー等により発生し得る。そこで、システム20は、3D空間に再現されたライン上のワークと、現実のライン上のワークとが異なることに基づいて、警告を出力する。
【0057】
より具体的には、システム20は、現実のラインに設置されたカメラが撮像したワークの画像又は映像を取得する。次に、システム20は、画像又は映像に映るワークの形状と、シミュレーション内のワークの形状とを比較する。システム20は、画像又は映像に映るワークの形状と、シミュレーション内のワークの形状とが一致しないことに基づいて、警告を出力する。他の例として、システム20は、1つ以上のセンサーにより、現実のライン上のワークの形状を推定してもよい。この場合、システム20は、1つ以上のセンサーの出力信号から推定されたワークの形状と、シミュレーション内のワークの形状とを比較する。システム20は、1つ以上のセンサーの出力信号から推定されたワークの形状と、シミュレーション内のワークの形状とが一致しないことに基づいて、警告を出力する。
【0058】
ある実施の形態に従うと、システム20は、第1装置200又は第2装置210のディスプレイに警告を表示し得る。他の実施の形態に従うと、システム20は、ユーザの端末に警告を含む情報を送信し得る。さらに他の実施の形態に従うと、システム20は、第1装置200又は第2装置210のディスプレイに警告を表示し、かつ、ユーザの端末に警告を含む情報を送信し得る。こうすることで、ユーザは、シミュレーション内のワーク、及び、現実のライン上のワークが異なることを把握し得る。シミュレーション内のワークとは、シミュレータに設定されているレシピに関連付けられたワークである。
【0059】
(b.レシピの切り替え時の課題)
次に、レシピを切り替えることに起因する課題について説明する。前述の通り、ユーザは、レシピを切り替えることで、制御装置220の動作を変更し得る。すなわち、ユーザは、レシピを切り替えることで、同一ラインにおいて、製造プロセスを変更し得る。また、ユーザは、レシピを切り替えることで、システム20に様々なワークに対応するシミュレーションを実行させ得る。
【0060】
しかしながら、レシピが切り替わった際、ユーザは、システム20に切り替え後のレシピに対応するワークを設定又は入力し直さなければならない。なぜならば、レシピと、ワークとは直接的に関連づいていないためである。レシピは、ライン上の各機器の動作を定義する情報を含む。これに対して、ワークの情報は、ラインによって加工されるものを示し、レシピとは別のデータである。従来技術において、ユーザは、シミュレータに設定されるレシピを切り替えると、シミュレータに設定するワークの情報も手動で変更する必要があった。このような状況下では、レシピの数が多い場合、ワークの数も多くなり、レシピの切り替え作業は煩雑になる。
【0061】
そこで、システム20は、レシピとワークとを関連付けるための生産情報というデータをプロジェクトに追加する機能をユーザに提供する。ユーザは、生産情報を一度定義すれば、レシピ及びワークの対応関係を覚えておく必要はない。また、ユーザは、生産情報を選ぶだけで、レシピ及びワークの両方をシステム20に設定し得る。システム20は、生産情報の選択の入力を受け付けたことに基づいて、生産情報に関連付けられたレシピとワークとを用いてシミュレーションを実行し得る。
【0062】
(c.本明細書で使用する用語)
本明細書において「システム」は、1又は複数の装置からなる構成、サーバを包含する。また、システムは、クラウド環境に構築された仮想マシン若しくはコンテナ、又は、これらの少なくとも一部からなる構成も包含する。装置は、パーソナルコンピューター、ワークステーション、サーバ装置、タブレット又はスマートフォン等の任意の情報処理装置であってもよい。また、装置は、これらの組合せであってもよい。
【0063】
ある実施の形態に従うと、システムは、ディスプレイ及びキーボード等の入出力機器と接続されて、ユーザに使用されてもよい。他の実施の形態に従うと、システムは、ネットワークを介して、サービス又はウェブアプリケーションとして、ユーザに各種機能を提供してもよい。この場合、ユーザは、自身の端末にインストールされたブラウザ又はクライアントソフトウェアを介して、システムの機能を使用し得る。
【0064】
また、システムが1つの装置からなる場合、システムを装置と読み替えてもよい。例えば、本開示の技術は、第1装置200又は第2装置によって実行されてもよい。そのため、本明細書内のシステム20を第1装置200又は第2装置210に読み替えてもよい。
【0065】
本明細書において「プロジェクト」は、ラインに実行させる生産プロセスを管理する単位である。一例として、プロジェクトは、ライン毎に作成されてもよい。プロジェクトは、少なくとも、1つ以上のレシピ、1つ以上のワークの情報及び1つ以上の生産情報を要素として含む。ワークの情報は、ワークの3Dデータでもよいし、ワークの3Dデータの位置を示す情報(メモリ上のアドレス等)であってもよい。
【0066】
一例として、プロジェクトは、レシピA及びレシピBを含むとする。この場合、プロジェクトは、さらに、レシピAとワークAとを関連付ける生産情報Aと、レシピBとワークBとを関連付ける生産情報Bとを含み得る。ある実施の形態に従うと、プロジェクトは、ワークの情報として、複数のワークの3Dデータを含んでもよい。例えば、ワークの情報は、ワークAの3Dデータ及びワークBの3Dデータを含み得る。この場合、システム20は、生産情報Aが選択されたことに基づいて、プロジェクト内のレシピA及びワークAの3Dデータをシミュレータに設定又は出力する。他の実施の形態に従うと、プロジェクトは、ワークの情報として、ワークの3Dデータの位置を示す情報(メモリ上のアドレス等)を含んでもよい。この場合、システム20は、生産情報Aが選択されたことに基づいて、プロジェクト内のワークの情報の参照先をワークAの3Dデータに変更する。システム20は、生産情報Aが選択されたことに基づいて、プロジェクト内のレシピA及びワークの情報によって示されるワークAの3Dデータをシミュレータに設定又は出力する。
【0067】
ある実施の形態に従うと、システム20は、レシピ、ワークの情報及び生産情報は、装置の単位で管理し得る。例えば、第2装置210が2台存在するとする(例えば、第2装置A、第2装置B)。この場合、プロジェクトは、第2装置Aに設定するためのレシピ、ワークの情報及び生産情報と、第2装置Bに設定するためのレシピ、ワークの情報及び生産情報とを含み得る。同様に、プロジェクトは、3つ以上の装置に設定するためのレシピ、ワークの情報及び生産情報を含み得る。
【0068】
本明細書において「レシピ」は、制御装置220及びシミュレータ320の設定情報に相当する。レシピは、制御プログラムの変数、ロボットの先端のツールの設定、ワークが設置されるプラットフォームの設定及びその他の任意の設定を含み得る。システム20は、レシピを1つ以上の制御装置220に設定することで、現実のラインの動作を変更し得る。また、システム20は、レシピをシミュレータ320に設定することで、シミュレーションの動作を変更し得る。プロジェクトは、要素として、1つ以上のレシピを含む。ある実施の形態に従うと、レシピは、制御装置220ではなく、制御装置220を管理する第2装置210に設定されてもよい。この場合、第2装置210は、管理下の1つ以上の制御装置の各々に、レシピに含まれる制御プログラムの変数の値を設定し得る。また、第2装置210は、管理下の1つ以上の制御装置の各々に、レシピに含まれる任意の情報を設定し得る。又は、第2装置210は、管理下の1つ以上の制御装置の各々に、レシピ自体を設定し得る。
【0069】
本明細書において「ワーク」は、ライン上で加工、製造及び/又は検査等をされる対象となるものである。ワークは、機械部品、電子部品、食料品又はその他の任意のものを包含する。本明細書中でデータとして送信されるワークは、ワークの3Dデータ又はワークの3Dデータの場所を示すデータを包含する。プロジェクトは、要素として、1つ以上のワークの3Dデータ、又は、いずれかのワークの3Dデータの場所を示すデータを包含する。
【0070】
本明細書において「3Dデータ」は、CADソフトウェアにより設計されたCADデータである。又は、3Dデータは、その他の3Dモデリングソフトによりデザインされたデータであってもよい。又は、3Dデータは、3Dスキャナー等によるスキャン結果から生成されたデータであってもよい。
【0071】
本明細書において「ライン」は、ワークを製造、加工及び/又は検査するための設備である。ラインは、ロボット、センサー、ベルトコンベア及びその他の任意の機器の組み合わせによって構成され得る。
【0072】
本明細書において「シミュレータ」は、ラインの動作を再現する機能を備える。また、シミュレータは、制御装置の動作をエミュレートする機能を備える。また、シミュレータは、制御装置のエミュレーション機能と、ラインの動作のシミュレーション機能とを連動させる機能を備える。ユーザは、当該機能を用いて、制御プログラムのデバッグを行い得る。また、シミュレータは、制御装置から得られた各種情報に基づいて、現実のラインの動作を再現する機能を備える。ユーザは、当該機能を用いて、例えば、現実のラインの動作確認をリモートで行い得る。
【0073】
本明細書におけるシミュレータは、エミュレータからの信号に基づいて、3D空間上のオブジェクトを動作させ得る。また、本明細書におけるシミュレータは、制御装置から得られた各種情報に基づいて、3D空間上のオブジェクトを動作させ得る。このように、シミュレータは、外部から得られた数値情報に基づいて、3D空間に配置されたオブジェクトの位置を変更し得る。すなわち、シミュレータは、外部から得られる情報に基づいてオブジェクトの動きを可視化するビジュアライザであるとも言える。そのため、本明細書中のシミュレータ320は、ビジュアライザと読み替えられてもよい。また、IDE310は、ビジュアライザの機能を備えていると読み替えてもよい。また、本明細書中で、シミュレーションは、ビジュアライズ処理であると読み替えてもよい。同様に、シミュレーションの実行は、ビジュアライズ処理の実行と読み替えてもよい。ビジュアライズ処理は、エミュレータ又は制御装置から得られた情報に基づいて、3D空間上のオブジェクトを動作させ、動作の様子を出力することを含む。
【0074】
<B.本実施の形態に従うシステムの構成>
図2は、本実施の形態に従うシステム20の構成の一例を示す図である。システム20は、1つ以上の第1装置200と、1つ以上の第2装置210とを備える。システム20(第1装置200)は、制御装置220のエミュレーション機能と、ラインの動作のシミュレーション機能とを連動させ得る。これにより、ユーザは、現実のラインを構築する前に、制御プログラムのデバッグを行い得る。また、システム20(第2装置210)は、必要に応じて、外部の制御装置220から各種信号を受信して、現実のラインの動作を再現し得る。これにより、ユーザは、現実のラインの動作をリモートで監視し得る。さらに、ユーザは、第1装置200によりプロジェクトを編集し、第2装置210に編集されたプロジェクトの全て又は一部を送信し得る。第2装置210は、受信したプロジェクトの全て又は一部に基づいて、シミュレーションを実行し得る。
【0075】
ある実施の形態に従うと、システム20は、1つ以上の第1装置200を備え、1つ以上の第2装置210を備えなくてもよい。この場合、システム20(第1装置200)は、制御装置220のエミュレーション機能と、ラインの動作のシミュレーション機能とを連動させ得る。これにより、ユーザは、現実のラインを構築する前に、制御プログラムのデバッグを行い得る。
【0076】
また、他の実施の形態に従うと、システム20は、1つ以上の第2装置210を備え、1つ以上の第1装置200を備えなくてもよい。この場合、システム20(第2装置210)は、必要に応じて、制御装置220から各種信号を受信して、現実のラインの動作を再現し得る。これにより、ユーザは、現実のラインの動作をリモートで監視し得る。
【0077】
第1装置200は、ユーザによって、端末として使用される。第1装置200は、主に、制御プログラムの開発及び生産プロセスのプロジェクトの編集等に使用される。第1装置200は、制御プログラムの開発及び生産プロセスのプロジェクトの編集のためのIDE310を備える。プロジェクトは、1つ以上のレシピと、1つ以上の生産情報と、1つ以上のワークに関する情報とを含む。
【0078】
第2装置210は、1つ以上の制御装置220を管理する。より具体的には、第2装置210は、ユーザによって設定されたレシピ又はレシピの一部(制御プログラムの変数等)を1つ以上の制御装置220に送信する。1つ以上の制御装置220の各々は、設定されたレシピ又はレシピの一部(制御プログラムの変数等)に基づいて、現実のライン230を制御する。また、第2装置210は、1つ以上の制御装置220から取得した各種情報に基づいて、現実のライン230の動作を3D空間(シミュレーション)上で再現する。第2装置210は、現実のライン230の動作を3D空間(シミュレーション)上で再現するためのシミュレータ320を備える。第1装置200及び第2装置210は、同様のシミュレーション機能を備える。また、第2装置210は、シミュレーション内のワークと、現実のライン上のワークとが一致しているか否かを判定する機能を備える。第2装置210は、シミュレーション内のワークと、現実のライン上のワークとが一致していない場合、警告を出力する。
【0079】
制御装置220は、現実のライン230上の1つ以上の機器232を制御し、1つ以上のセンサー234から信号を取得する。制御装置220は、第2装置210から、レシピ又はレシピの一部(制御プログラムの変数等)を受信する。制御装置220は、受信した情報に基づいて、自装置内の制御プログラムの変数等を変更する。制御装置220は、変数の値がセットされた制御プログラムに基づいて、例えば、現実のライン230上のワークを加工する。1つ以上の制御装置220の各々は、各機器232への命令、及び、各センサー234から得た信号を第2装置210に送信する。第2装置210は、各制御装置220から受信した情報に基づいて、現実のライン230の動作を3D空間上で再現する。
【0080】
現実のライン230は、1つ以上の機器232及び1つ以上のセンサー234から構成される生産設備又は検査設備等である。現実のライン230は、1つ以上の制御装置220によって制御される。機器232は、現実のライン230を構成するロボット又はその他の産業機械等である。各機器232は、制御装置220から送られてくる命令に基づいて動作する。センサー234は、センサー素子の反応を電気信号に変えて制御装置220に出力する。センサー234は、アナログ信号を出力してもよいし、デジタル信号を出力してもよい。
【0081】
ユーザが制御プログラムのデバッグを行う場合、現実のライン230の動作を再現する必要なく、制御装置220からの情報も不要である。そのため、ユーザは、制御プログラムのデバッグを行う場合、第1装置200のみを使用してもよい。ユーザが現実のライン230をリモートで監視する場合、現実のライン230の動作を再現する必要があり、制御装置220からの情報も必要となる。そのため、ユーザは、現実のライン230をリモートで監視する場合、第2装置210を使用する。また、ユーザは、プロジェクトを第1装置200で編集し、第2装置210にシミュレーションを実行させてもよい。この場合、ユーザは、第1装置200のIDE310を用いて、プロジェクトを編集及びプロジェクトの一部を第2装置210に送信する。また、ユーザは、第2装置210のシミュレータ320にシミュレーションを実行させる。
【0082】
ある実施の形態に従うと、ユーザは、第2装置210により、プロジェクトを管理及びシミュレーションを実行してもよい。この場合、第2装置210は、ラインを制御するための1つ以上のレシピを管理する装置である。また、第2装置210は、生産プロセスのプロジェクト450(図4参照)を格納するストレージ303(図3参照)を備える。プロジェクト450は、1つ以上のレシピと、1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含む。第2装置210は、1つ以上の生産情報のいずれかの選択を受け付けるための入力部(入力IF305(図3参照)と、シミュレーションを実行するための制御部(プロセッサ301(図3参照))と、シミュレーションの実行画面を出力するための出力部(出力IF306(図3参照))とをさらに備える。制御部(プロセッサ301)は、1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいてシミュレーションを実行する。実際には、制御部(プロセッサ301)は、ユーザから、シミュレーションの実行命令の入力を受け付けたことに基づいて、シミュレーションを実行し得る。制御部(プロセッサ301)は、実行命令の入力を受け付けたときに選択されていた生産情報に基づいて、シミュレーションを実行する。
【0083】
他の実施の形態に従うと、ユーザは、第1装置200によりプロジェクトを管理及び編集して、第2装置210によりシミュレーションを実行してもよい。システム20は、生産プロセスのプロジェクトを管理する第1装置200と、シミュレーションを実行する第2装置210とを備える。第1装置200は、プロジェクト450を格納するストレージ303を備える。プロジェクト450は、1つ以上のレシピと、1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含む。第1装置200は、1つ以上の生産情報のいずれかの選択を受け付けるための入力部(入力IF305)と、1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、第1生産情報に関連付けられる第1レシピ及び第1ワークを第2装置に送信するための第1通信部(通信IF307)とを備える。第2装置210は、受信した第1レシピ及び第1ワークに基づいてシミュレーションを実行するための制御部(プロセッサ301)と、シミュレーションの実行画面を出力するための出力部(出力IF306)とを備える。実際には、制御部(プロセッサ301)は、ユーザから、シミュレーションの実行命令の入力を受け付けたことに基づいて、シミュレーションを実行し得る。制御部(プロセッサ301)は、実行命令の入力を受け付けたときに設定されていた生産情報に基づいて、シミュレーションを実行する。
【0084】
さらに、第2装置210は、シミュレーション内のワークと現実のライン上のワークとが一致していない場合、警告を出力する。より具体的には、第2装置210は、現実のラインを構成する1つ以上の機器に関する情報及び現実のワークに関する情報を受信するための通信部(通信IF307(図3参照))をさらに備える。シミュレーションは、1つ以上の機器に関する情報に基づく現実のライン230の動作を再現したシミュレーションである。制御部(プロセッサ301)は、現実のワークに関する情報を参照し、シミュレーション内のワークの形状と、画像に写る現実のワークの形状とが異なるか否か(又は一致するか否か)を判定する。出力部(出力IF306)は、シミュレーション内のワークの形状と、現実のワークの形状とが異なることに基づいて、警告を出力する。
【0085】
1つ以上の機器に関する情報は、制御装置220から各機器への命令及び制御装置220が各センサーから取得した信号の値であってもよい。1つ以上の機器に関する情報は、制御装置220に格納された各機器の状態および各センサーの信号を示す内部情報であってもよい。1つ以上の機器に関する情報は、制御プログラムの変数の値であってもよい。また、1つ以上の機器に関する情報は、制御プログラムの変数の値から算出された各機器の位置の物理量であってもよい。当該物理量は、例えば、ロボットの関節の角度等を含み得る。現実のワークに関する情報は、例えば、カメラによって撮像されたワークの写真又は映像であってもよい。また、現実のワークに関する情報は、1つ以上のセンサーから得られるワークの形状に関する信号であってもよい。第2装置210は、第2装置210のディスプレイに警告を表示してもよい。また、第2装置210は、第1装置200に警告を含むメッセージを送信してもよい。この場合、第1装置200は、第1装置200のディスプレイに警告を表示し得る。
【0086】
図3は、第1装置200及び第2装置210の構成の一例を示す図である。第1装置200及び第2装置210は、図3に示されるハードウェア上でプログラムを実行することにより、本明細書に開示される技術を実現し得る。第1装置200及び第2装置210は、プロセッサ301と、メモリ302と、ストレージ303と、外部機器IF304と、入力IF305と、出力IF306と、通信IF307とを含む。ある実施の形態に従うと、制御装置220は、構成の一部として、図3に示される構成の一部又は全てを備えてもよい。ストレージ303には、IDE310及び/又はシミュレータ320が格納される。IDE310及びシミュレータ320は、プログラムである。
【0087】
プロセッサ301は、第1装置200又は第2装置210の各種機能を実現するためのプログラムを実行し得る。プロセッサ301は、例えば、少なくとも1つの集積回路によって構成される。ある実施の形態に従うと、プロセッサ301は、例えば、少なくとも1つのCPU(Central Processing Unit)と、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのFPGA(Field Programmable Gate Array)、少なくとも1つのASIC(Application Specific Integrated Circuit)又はこれらの組み合わせ等を含んでいてもよい。
【0088】
メモリ302は、プロセッサ301によって実行されるプログラムと、プロセッサ301によって参照されるデータとを格納する。ある局面において、メモリ302は、DRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)等によって実現され得る。
【0089】
ストレージ303は、不揮発性メモリであり、プロセッサ301によって実行されるプログラム及びプロセッサ301によって参照されるデータを格納している。その場合、プロセッサ301は、ストレージ303からメモリ302に読み出されたプログラムを実行し、ストレージ303からメモリ302に読み出されたデータを参照する。ある局面において、ストレージ303は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)又はフラッシュメモリー等によって実現され得る。
【0090】
外部機器IF304は、プリンター、スキャナー及び外付けHDD等の任意の外部機器に接続され得る。ある局面において、外部機器IF304は、USB(Universal Serial Bus)端子等によって実現され得る。
【0091】
入力IF305は、キーボード、マウス、タッチパッド又はゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力IF305は、USB端子、PS/2端子及びBluetooth(登録商標)モジュール等によって実現され得る。
【0092】
出力IF306は、ブラウン管ディスプレイ、液晶ディスプレイ又は有機EL(Electro-Luminescence)ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力IF306は、USB端子、D-sub端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High-Definition Multimedia Interface)端子及びディスプレイポート端子等によって実現され得る。
【0093】
通信IF307は、有線ネットワーク又は無線ネットワークを介して他の機器と接続される。ある局面において、通信IF307は、有線LAN(Local Area Network)ポート及びWi-Fi(登録商標)(Wireless Fidelity)モジュール等によって実現され得る。他の局面において、通信IF307は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信し得る。
【0094】
IDE310は、統合開発環境である。IDE310は、制御プログラムを記述するエディタ、及び、制御プログラムのデバッガを含む。また、IDE310は、シミュレーションの実行機能、及び、シミュレーションの設定の編集機能を提供する。また、IDE310は、生産プロセスのプロジェクトの管理機能を備える。一例として、IDE310は、プロジェクトの追加、更新、削除の機能を備える。また、IDE310は、プロジェクト内のレシピ、ワークの情報及び生産情報の追加、更新、削除の機能を備える。また、IDE310は、プロジェクト内の一部又は全てのデータを他の装置に設定する機能を備える。ここでの他の装置は、制御装置220又は1つ以上の制御装置220を管理する第2装置210等である。また、IDE310は、プロジェクト内の一部又は全てのデータに基づいて、シミュレーションを実行する機能を備える。例えば、IDE310は、プロジェクト内のレシピおよびワークの情報に基づいて、シミュレーションを実行し得る。レシピおよびワークの情報は、生産情報によって関連付けられる。
【0095】
シミュレータ320は、シミュレーションの実行機能、及び、シミュレーションの設定の編集機能を提供する。また、シミュレータ320は、生産プロセスのプロジェクトの管理機能を備える。一例として、シミュレータ320は、プロジェクトの追加、更新、削除の機能を備える。また、シミュレータ320は、プロジェクト内のレシピ、ワークの情報及び生産情報の追加、更新、削除の機能を備える。また、シミュレータ320は、プロジェクト内の一部又は全てのデータを他の装置に設定する機能を備える。ここでの他の装置は、制御装置220又は1つ以上の制御装置220を管理する第2装置210等である。また、シミュレータ320は、プロジェクト内の一部又は全てのデータに基づいて、シミュレーションを実行する機能を備える。例えば、シミュレータ320は、プロジェクト内のレシピおよびワークの情報に基づいて、シミュレーションを実行し得る。レシピおよびワークの情報は、生産情報によって関連付けられる。さらに、シミュレータ320は、1つ以上の制御装置220から各種情報を受信して、現実のライン230の動作を3D空間上で再現する機能を備える。
【0096】
IDE310は、制御プログラムの開発環境にシミュレータ320の機能を追加したプログラムであると言える。ある実施の形態に従うと、第1装置200は、IDE310を備え、第2装置210は、シミュレータ320を備えてもよい。この場合、ユーザは、第1装置200を用いて、制御プログラムの開発及びシミュレーションの設定の編集を行う。また、ユーザは、第2装置210を用いて、シミュレーションを実行する。その際、第2装置210は、第1装置200からシミュレーションの設定(レシピ及びワークの3Dデータ)を取得する。
【0097】
<C.プロジェクトのデータ構成>
図4は、プロジェクトのデータ構造の一例を示す図である。プロジェクト400は生産情報を含まない。プロジェクト450は生産情報を含む。プロジェクト400及びプロジェクト450を比較して、生産情報の有無により、プロジェクト管理がどのように変化するのかを説明する。図4の例では、プロジェクト400及びプロジェクト450は、いずれも3つのレシピを含む。
【0098】
(a.生産情報を含まないプロジェクトのデータ構成)
まず、プロジェクト400を使用した場合のレシピの切り替え作業について説明する。プロジェクト400は、アプリケーションマネージャー410と、レシピマネージャー420と、1つ以上のワークの3Dデータ(ワーク1~3)を含む。
【0099】
アプリケーションマネージャー410は、例えば、第2装置210等のレシピを管理する装置(アプリケーション)単位でデータを管理する。ある実施の形態に従うと、アプリケーションマネージャー410は、アプリケーションを管理するための設定ファイル又はスクリプト等であってもよい。例えば、プロジェクト400が2つの装置(装置A、装置B)の設定を含むとする。この場合、プロジェクト400は、装置Aに対応するアプリケーションAと、装置Bに対応するアプリケーションBとを含む。アプリケーションA,Bは、装置単位の設定である。これ以降、「アプリケーション」は、アプリケーションマネージャー410によって管理される装置単位でのシミュレーションの設定を示す。図4の例では、プロジェクト450は、単一のアプリケーションを含む。プロジェクト400のアプリケーションは、ワーク1~3の各々のCADデータと、レシピ1~3の各々を含む。
【0100】
レシピマネージャー420は、レシピを管理する。ある実施の形態に従うと、レシピマネージャー420は、レシピを管理するための設定ファイル又はスクリプト等であってもよい。レシピマネージャー420が管理する各レシピは、例えば、各ワークに対応する。ユーザは、レシピ1をレシピ2に切り替えたいとする。この場合、ユーザは、レシピマネージャー420により、シミュレータ320に設定されるレシピをレシピ1からレシピ2に変更し得る。しかしながら、レシピ1~3と、ワーク1~3とは互いに関連付けられていない。そのため、ユーザは、シミュレータ320に設定するワークも変更する必要がある。すなわち、ユーザは、プロジェクト400に登録されている1つ以上のワークの中から、レシピ2で使用するワークの3Dデータを選択する必要がある。例えば、レシピが何十個もある場合、ユーザは、各レシピ及び各ワークの関係を把握するのは困難である。そこで、この問題を解決するために、システム20は、プロジェクト450のようなデータ構造を提供する。
【0101】
(b.生産情報を含むプロジェクトのデータ構成)
次に、プロジェクト450を使用した場合のレシピの切り替え作業について説明する。プロジェクト450は、プロジェクト400と同様に、アプリケーションマネージャー410と、レシピマネージャー420とを含む。また、プロジェクト450は、プロジェクト400と異なり、生産情報マネージャー430と、ワークの情報440とを含む。
【0102】
生産情報マネージャー430は、生産情報を管理する。生産情報は、レシピとワークとを関連付けた情報である。例えば、生産情報1は、レシピ1とワーク1とを関連付けた情報である。ある実施の形態に従うと、生産情報マネージャー430は、生産情報を管理するための設定ファイル又はスクリプト等であってもよい。ユーザは、システム20が提供するUIを介して、生産情報をプロジェクト450に登録し得る。より具体的には、ユーザは、システム20に登録されているレシピと、ワークの3Dデータとを関連付けることで、生産情報を定義し得る。ユーザは、プロジェクト450に登録された生産情報を選択することで、レシピ及びワークの組み合わせを選択し得る。例えば、現在、生産情報1が選択されているとする。この場合、システム20は、レシピ1及びワーク1をシミュレータ320に入力する。シミュレータ320は、レシピ1及びワーク1に基づいて、シミュレーションを実行する。次に、ユーザは、生産情報2を選択したとする。この場合、システム20は、レシピ1及びワーク1の代わりにレシピ2及びワーク2を選択し、レシピ2及びワーク2をシミュレータ320に入力する。実際には、システム20は、ユーザからシミュレータ320への設定入力の命令を受け付けたことに基づいて、レシピ2及びワーク2をシミュレータ320に入力する。シミュレータ320は、レシピ2及びワーク2に基づいて、シミュレーションを実行する。実際には、シミュレータ320は、ユーザからシミュレーションの実行命令を受け付けたことに基づいて、シミュレーションを実行する。ある実施の形態に従うと、生産情報は、レシピ及びワーク以外の任意の情報を含んでもよい。例えば、生産情報は、ロボットに取り付けられるツールの情報、ワークが設置されるプラットフォームの情報等を含んでもよい。
【0103】
ワークの情報440は、ワークの3Dデータを示す任意の情報である。例えば、ワークの情報440は、ワークの3Dデータであってもよいし、ワークの3Dデータの位置を示すデータ(メモリ上のアドレス等)であってもよい。ワークの情報440は、選択された生産情報に関連付けられたワークを示す。例えば、生産情報1が選択された場合、ワークの情報440は、ワーク1を示す。このとき、ワークの情報440は、ワーク1の3Dデータであってもよいし、ワーク1の3Dデータの位置を示すデータであってもよい。システム20は、ワークの情報440が示すワークの3Dデータをシミュレータ320に入力する。
【0104】
上記の通り、ユーザは、レシピとワークとを生産情報により関連付け得る。また、ユーザは、生産情報を選択することで、シミュレータ320に入力されるレシピ及びワークの両方を選択し得る。ワークの情報440は、選択された生産情報に関連付けられたワークを示す。システム20は、選択されたレシピと、選択されたワーク(ワークの情報440が示すワーク)とをシミュレータ320に入力又は送信する。このように、ユーザは、生産情報を予めプロジェクト450に登録することで、各レシピ及び各ワークの対応を覚えておく必要は無い。ユーザは、生産情報を選択するだけで、シミュレータ320に入力されるレシピ及びワークの両方を一度に選択し得る。これにより、ユーザの負担は減り、また、レシピ及びワークの組み合わせの間違いを減らすことができる。
【0105】
一例として、第2装置210がレシピ1及びワーク1を設定されたとする。この場合に、第2装置210が、制御プログラムのデバッグに使用されるとする。このとき、第2装置210は、レシピ1に含まれる制御プログラムの変数の値を使用して、制御装置220の動作をエミュレートする。また、第2装置210は、レシピ1に含まれる3Dデータを使用して、3D空間上にラインを再現する。当該ラインは、構築前のラインでもよい。第2装置210は、エミュレーション機能及びシミュレーション機能を連携させて、ラインの動作を再現する。このとき、3D空間上では、ワーク1が使用される。第2装置210は、ワーク1が表示されるシミュレーションの実行結果を出力する。
【0106】
他の例として、第2装置210がレシピ1及びワーク1を設定されたとする。この場合に、第2装置210が、現実のライン230の動作の再現に使用されるとする。このとき、第2装置210は、レシピ1に含まれる制御プログラムの変数の値を1つ以上の制御装置220に送信する。制御装置220は、受信した設定(変数の値)に基づいて、現実のライン230を制御する。制御装置220は、各機器への命令及び各センサーから取得した信号の値等を第2装置210に送信する。各機器への命令及び各センサーから取得した信号の値は、制御装置220に一旦格納された内部情報であってもよい。ある実施の形態に従うと、制御装置220は、制御プログラムの変数の値を第2装置210に送信してもよい。他の実施の形態に従うと、制御装置220は、制御プログラムの変数の値から算出された各機器の位置の物理量を第2装置210に送信してもよい。当該物理量は、例えば、ロボットの関節の角度等を含み得る。次に、第2装置210は、レシピ1に含まれる各3Dデータを使用して、3D空間上にラインを再現する。第2装置210は、1つ以上の制御装置220から受信した各種情報に基づいて、3D空間上で現実のライン230の動作を再現する。このとき、3D空間上では、ワーク1が使用される。第2装置210は、ワーク1が表示されるシミュレーションの実行結果を出力する。
【0107】
図4に示されるプロジェクト450は、一例であり、プロジェクト450のデータ構造の例はこれに限られない。プロジェクト450は、任意のデータ構造により、レシピ、ワーク及び生産情報を管理し得る。ある実施の形態に従うと、プロジェクト450は、アプリケーションマネージャー410を含まなくてもよい。この場合、プロジェクト450の直下に、レシピマネージャー420、生産情報マネージャー430及びワークの情報440が配置される。また、他の実施の形態に従うと、プロジェクト450は、レシピマネージャー420及び生産情報マネージャー430を含まなくてもよい。この場合、プロジェクト450は、レシピマネージャー420及び生産情報マネージャー430の代わりになる設定ファイル等を含み得る。
【0108】
少なくとも、プロジェクト450は、ワークの情報440を含む。第1装置200又は第2装置210の制御部(プロセッサ301)は、ワークの情報を選択された第1生産情報に関連付けられる第1ワークを示すように変更する。
【0109】
また、第1装置200又は第2装置210の制御部(プロセッサ301)は、第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、第2生産情報に関連付けられる第2レシピ及び第2ワークに基づいてシミュレーションを実行する。又は、第1装置200の通信IF307は、第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、第2装置210に、第2生産情報に関連付けられる第2レシピ及び第2ワークを送信してもよい。この場合、第2装置210は、受信した第2レシピ及び第2ワークに基づいてシミュレーションを実行する。
【0110】
前述のように、システム20は、プロジェクト450内の選択されたレシピ及びワークをシミュレータ320に入力する。このとき、プロジェクトを管理する装置と、シミュレーションを実行する装置とは、同一であってもよいし、別であってもよい。
【0111】
一例として、第1装置200がプロジェクトを管理して、第2装置210がシミュレータ320を実行してもよい。この場合、ユーザは、第1装置200にインストールされたIDE310を介して、プロジェクト450を編集する。ユーザは、第1装置200(IDE310)にシミュレータ320への設定の送信命令を入力する。第1装置200(IDE310)は、選択されたレシピ及びワークを第2装置210にインストールされたシミュレータ320に送信する。ユーザは、第1装置200(IDE310)を介して、第2装置210(シミュレータ320)にシミュレーション実行命令を送信する。第2装置210(シミュレータ320)は、シミュレーション実行命令に従い、受信したレシピ及びワークに基づいて、シミュレーションを実行する。第2装置210(シミュレータ320)は、シミュレーションの実行結果を第2装置210のディスプレイに表示してもよい。又は、第2装置210(シミュレータ320)は、第1装置200(IDE310)に実行結果を送信してもよい。この場合、第1装置200(IDE310)は、第1装置200のディスプレイにシミュレーションの実行結果を表示し得る。
【0112】
他の例として、第1装置200がプロジェクトの管理及びシミュレータ320の実行の両方を行ってもよい。この場合、ユーザは、第1装置200にインストールされたIDE310を介して、プロジェクト450を編集する。ユーザは、第1装置200(IDE310)にシミュレーションの実行命令を入力する。第1装置200(IDE310)は、選択されたレシピ及びワークに基づいて、シミュレーションを実行する。第1装置200(IDE310)は、シミュレーションの実行結果を第1装置200のディスプレイに表示する。
【0113】
さらに他の例として、第2装置210がプロジェクトの管理及びシミュレータ320の実行の両方を行ってもよい。この場合、ユーザは、第1装置200にインストールされたIDE310を介して、プロジェクト450を編集する。ユーザは、第1装置200(IDE310)を介して、第2装置210(シミュレータ320)にシミュレーションの実行命令を送信する。第2装置210(シミュレータ320)は、選択されたレシピ及びワークに基づいて、シミュレーションを実行する。第2装置210(シミュレータ320)は、シミュレーションの実行結果を第2装置210のディスプレイに表示する。
【0114】
図5は、シミュレーションの実行結果の表示の一例を示す図である。実行結果501は、生産情報1に基づくシミュレーションの実行結果である。実行結果502は、生産情報2に基づくシミュレーションの実行結果である。生産情報1は、レシピ1とワーク1とを含む。すなわち、生産情報1は、レシピ1及びワーク1を関連付けている。生産情報2は、レシピ2とワーク2とを含む。すなわち、生産情報2は、レシピ2及びワーク2を関連付けている。ユーザは、生産情報を変更するだけで、シミュレータ320に入力されるレシピ及びワークの両方を変更し得る。例えば、ユーザが生産情報1を生産情報2に切り替えたとする。この場合、図5に示されるように、シミュレータ320が出力するシミュレーションの実行結果は、実行結果501から実行結果502に変化する。システム20は、これらの実行結果を第1装置200のディスプレイ、第2装置210のディスプレイ又は両方の装置のディスプレイに表示し得る。
【0115】
<D.本実施の形態に従うシステムが提供する画面例>
次に、図6図11を参照して、システム20が提供する生産情報の編集画面の例について説明する。図6図11に示される各画面は、IDE310及びシミュレータ320のUIとして提供され得る。また、図6図11に示される各画面は、第1装置200のディスプレイ又は第2装置210のディスプレイに表示され得る。
【0116】
図6は、生産情報の編集画面の第1の例を示す図である。図6に示される各画面は、生産情報による切替対象を選択する画面である。切替対象は、プロジェクト内で、生産情報によって変更されるデータである。例えば、生産情報の変更によって、レシピ及びワークが変更されるとする。この場合、レシピ及びワークは、切替対象である。生産情報は、切替対象として、レシピ及びワーク以外にも任意のデータを含み得る。例えば、切替対象は、ロボット(ロボットのツール)、及び、ワークを設置するプラットフォーム等を含み得る。ユーザは、図6に示される各画面を介して、生産情報に任意のデータを切替対象として追加し得る。
【0117】
画面600は、エクスプローラーであり、生産情報の項目601を含む。画面600上で生産情報の項目601が選択されると、画面610が表示される。画面610は、アイコン612と、リスト614とを含む。ユーザは、リスト614から生産情報中の切替対象を選択し、アイコン612を選択し得る。これにより、切替対象を表示する画面620に、選択された切替対象が追加される。図6の例では、画面620に、切替対象622としてワークが追加されている。
【0118】
ある実施の形態に従うと、画面600~画面620は、1つの画面又はUIとして構成されてもよい。この場合、画面600~画面620の各々は、1つの画面を構成するメニュー、エクスプローラー、パネル又はその他の任意の項目であり得る。他の実施の形態に従うと、画面600~画面620は、個別の画面であってもよい。
【0119】
図7は、生産情報の編集画面の第2の例を示す図である。図7に示される各画面は、生産情報に含まれる各項目を編集するための画面である。
【0120】
画面700は、編集する生産情報を選択するための画面である。ユーザは、画面700上で、編集する生産情報を選択して、編集ボタン702を押す。そうすると、選択された生産情報の編集のための画面710がディスプレイに表示される。図7の例では、生産情報1の編集のための画面が表示されている。
【0121】
ある実施の形態に従うと、画面700及び画面710は、1つの画面又はUIとして構成されてもよい。この場合、画面700及び画面710の各々は、1つの画面を構成するメニュー、エクスプローラー、パネル又はその他の任意の項目であり得る。他の実施の形態に従うと、画面700及び画面710は、個別の画面であってもよい。
【0122】
図8は、生産情報の編集画面の第3の例を示す図である。図8に示される各画面は、画面710の続きである。画面800は、画面710において、編集項目としてレシピの項目802が選択されたときの画面である。レシピの項目802が選択されると、画面800には、レシピの選択項目804が表示される。レシピの選択項目804は、リスト、ラジオボタン又はその他の任意のUIであってもよい。ユーザは、レシピの選択項目804から、生産情報に関連付けるレシピを選択し得る。画面800の例では、ユーザは、生産情報1に関連付けるレシピとして、レシピ1を選択している。
【0123】
画面810は、画面710において、編集項目としてワークの項目812が選択されたときの画面である。ワークの項目812が選択されると、画面810には、ワークの編集項目814が表示される。ワークの編集項目814は、ワークの3D表示及びワークのプロパティ等を含む。ユーザは、ワークの編集項目814で、ワークの設定変更及び参照するワークの切替等のワークに関連する任意の操作を行い得る。
【0124】
図9は、生産情報の編集画面の第4の例を示す図である。編集項目814の表示の他の例を示す図である。編集項目814の言語及び項目はカスタマイズ可能である。編集項目814は、一例として、3Dデータ(CADデータ等)の更新ボタン900を含み得る。ユーザは、更新ボタン900を押すことで、3Dデータを更新するための画面1000をディスプレイに表示させ得る。
【0125】
図10は、生産情報の編集画面の第5の例を示す図である。図10に示される各画面は、生産情報に関連付けられるワークの3Dデータの更新画面である。画面1000は、ワークの3Dデータのソースを選択する画面である。画面1000でワークの3Dデータのソースが選択されると、画面1010が表示される。ユーザは、画面1010を介して、生産情報に関連付けるワークを更新し得る。一例として、ユーザは、選択されたソースの中から、ワークを選択し得る。
【0126】
図11は、生産情報の編集画面の第6の例を示す図である。図11に示される各画面は、生産情報の確認及び編集が可能な画面である。画面1100及び画面1110は、同一の画面であり、表示項目が異なる。画面1100には、レシピ1とレシピ1に関連付けられるワークの詳細情報とが表示されている。画面1110には、レシピ2とレシピ2に関連付けられるワークの詳細情報とが表示されている。ユーザは、これらの画面を介して、生産情報に関連付けられるレシピの変更及びワークのパラメータの調整等を行い得る。
【0127】
上述のように、第1装置200及び第2装置210、すなわちシステム20は、1つ以上の生産情報の設定入力のためのUIを備える。第1装置200及び第2装置210の入力部(入力IF305)は、UIを介して、1つ以上の生産情報の各々に関連付けられるレシピの入力と、1つ以上の生産情報の各々に関連付けられるワークの入力とを受け付け可能に構成される。各画面は、出力IF306を介してディスプレイに出力される。
【0128】
<E.フローチャート>
次に、図12及び図13を参照して、システム20が実行する処理の手順の一例について説明する。図12及び図13の処理の実行主体をシステム20から第1装置200又は第2装置210に読み替えてもよい。
【0129】
ある実施の形態に従うと、プロセッサ301は、図12及び図13の処理を行うためのプログラムをストレージ303からメモリ302に読み込んで、当該プログラムを実行してもよい。当該プログラムは、例えば、IDE310、シミュレータ320又はその他のプログラムである。他の局面において、当該処理の一部又は全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【0130】
図12は、システム20により実行されるレシピ切り替え処理の手順の一例を示す図である。図12を参照して、システム20が新しい生産情報4の追加入力を受け付けてから当該生産情報4に基づくシミュレーションを実行するまでの手順について説明する。
【0131】
ステップS1210において、システム20は、生産情報を追加する操作を受け付ける。システム20は、IDE310又はシミュレータ320が提供するUIを介して、新しい生産情報を追加する操作を受け付ける。図12の例では、システム20は、生産情報4を受け付けている。
【0132】
ステップS1220において、システム20は、レシピの追加及び編集操作を受け付ける。システム20は、IDE310又はシミュレータ320が提供するUIを介して、レシピを追加及び/又は編集する操作を受け付ける。図12の例では、システム20は、レシピ4を追加する操作を受け付けている。レシピをプロジェクトに追加したり、レシピを編集したりする必要が無い場合、システム20は、本ステップの処理を実行しなくてもよい。
【0133】
ステップS1230において、システム20は、生産情報の編集操作を受け付ける。例えば、システム20は、図6図11に示される各画面等を介して、生産情報の編集操作を受け付ける。一例として、システム20は、生産情報にレシピ及びワークを関連付ける操作を受け付ける。また、システム20は、生産情報にその他の情報(ロボットのツール又はワークを設置されるプラットフォームの情報等)を関連付ける操作を受け付け得る。図12の例では、生産情報4には、レシピ4及びワーク4が関連付けられている。
【0134】
ステップS1240において、システム20は、生産情報の適用操作を受け付け得る。生産情報の適用操作は、生産情報の選択操作である。生産情報が選択されると、シミュレータ320に入力される情報(レシピ及びワーク等)も決定される。そのため、生産情報の適用操作は、シミュレータ320に入力される情報を選択又は決定する操作であるとも言える。図12の例では、生産情報4が選択される。
【0135】
ステップS1250において、システム20は、生産情報に関連付けられたレシピを選択する。図12の例では、生産情報4が選択されているので、システム20は、生産情報4に関連付けられるレシピ4を選択する。
【0136】
ステップS1260において、システム20は、生産情報に関連付けられたワークを選択する。図12の例では、生産情報4が選択されているので、システム20は、生産情報4に関連付けられるワーク4を選択する。このとき、プロジェクト内のワークの情報は、選択されたワーク4を示す。システム20は、ワークの情報をワーク4の3Dデータに置き換えてもよい。また、システム20は、ワークの情報の参照先(メモリ上のアドレス等)をワーク4の3Dデータに変更してもよい。
【0137】
ステップS1270において、システム20は、選択されたレシピ及びワークの情報をシミュレータ320に送信する。システム20は、ユーザからシミュレータ320への設定の送信命令を受け付けたことに基づいて、本ステップの処理を実行し得る。シミュレータ320は、受信したレシピ及びワークに基づいて、シミュレーションを実行する。また、シミュレータ320は、シミュレーションの実行結果を出力する。システム20は、選択されたレシピ及びワークの情報をIDE310に送信してもよい。この場合、IDE310は、受信したレシピ及びワークに基づいて、シミュレーションを実行する。また、IDE310は、シミュレーションの実行結果を出力する。いずれの場合でも、生産情報4によって選択されたワーク4が、シミュレーションに使用される。また、第2装置210のディスプレイ等に表示されるシミュレーションの実行結果画面は、ワーク4を映す。
【0138】
図13は、第2装置210により実行される警告の出力処理の手順の一例を示す図である。図13に示される処理は、制御装置220から各種信及びワークの画像を取得する処理を含む。そのため、図13に示される処理は、制御装置220と通信可能な第2装置210によって実行される。
【0139】
ステップS1310において、第2装置210は、ワークをカメラ又はセンサーで確認する。より具体的には、第2装置210は、ワークに関する情報を取得する。ワークに関する情報は、現実のライン230に設けられたカメラが撮像した画像又は映像であってもよい。又は、ワークに関する情報は、現実のライン230に設けられたセンサーによって得られたワークの形状に関する信号であってもよい。ある実施の形態に従うと、第2装置210は、現実のライン230に設けられたカメラ又はセンサーから、画像又はセンサー信号を直接受信してもよい。他の実施の形態に従うと、第2装置210は、制御装置220を介して、画像又はセンサー信号を受信してもよい。
【0140】
ステップS1320において、第2装置210は、現実のライン230上のワークが、選択された生産情報で設定されているワークか否かを判定する。すなわち、第2装置210は、現実のライン230上のワークの形状と、シミュレーション内のワークの形状とが同一か否かを判定する。又は、第2装置210は、現実のライン230上のワークの形状と、シミュレーション内のワークの形状とが異なるか否かを判定してもよい。
【0141】
第2装置210は、現実のライン230上のワークが、選択された生産情報で設定されているワークであると判定した場合(ステップS1320にてYES)、制御をステップS1340に移す。そうで無い場合(ステップS1320にてNO)、第2装置210は、制御をステップS1330に移す。
【0142】
ステップS1330において、第2装置210は、警告を出力する。ある実施の形態に従うと、第2装置210は、第2装置210のディスプレイに警告を表示する。他の実施の形態に従うと、第2装置210は、第1装置200に警告を含むメッセージを送信する。さらに、他の実施の形態に従うと、第2装置210は、ラインの監督者等が保有する端末に警告を含むメッセージを送信する。
【0143】
ステップS1340において、第2装置210は、次のワークがあるか否かを判定する。すなわち、第2装置210は、現実のライン230がまだワークを加工するのか否かを判定する。第2装置210は、次のワークがあると判定した場合(ステップS1340にてYES)、制御をステップS1310に移す。そうで無い場合(ステップS1340にてNO)、第2装置210は、処理を終了する。
【0144】
図14は、警告画面の一例を示す図である。一例として、第2装置210は、ステップS1330の処理中に、第2装置210のディスプレイに画面1400のような警告画面を出力してもよい。画面1400は、シミュレーションの実行画面及び警告表示を含む。又は、第2装置210は、第1装置200に警告を含むメッセージを送信してもよい。この場合、第1装置200は、第1装置200のディスプレイに画面1400のような警告画面を表示してもよい。
【0145】
<F.シミュレータへの転送データの削減>
システム20は、シミュレータ320に、レシピ及びワークを設定する(送信する)。レシピには、例えば、ラインを構成する各機器の3Dデータ等が含まれ得る。例えば、ユーザが、第1装置200でプロジェクトを編集して、第2装置210でシミュレーションを実行したいとする。この場合、第1装置200のIDE310は、第2装置210のシミュレータ320に、ラインを構成する各機器の3Dデータ等も送信する必要がある。しかしながら、このような3Dデータ等は、データ量が多く、データの送受信に悪影響を及ぼしかねない。そこで、システム20は、過去にシミュレータ320に設定された(送信された)データと、新しくシミュレータ320に送信されるデータとを比較し、差分を求める。そして、システム20は、差分のみをシミュレータ320に設定する(送信する)。シミュレータ320に送信されるデータは、例えば、レシピ、ワーク及び/又はシミュレーションに関するその他の任意の情報を含み得る。
【0146】
ある実施の形態に従うと、システム20は、レシピ等の中にシミュレーションの実行に不要なデータがあるか否かを判定し得る。システム20は、不要なデータを発見した場合、当該不要なデータをシミュレータ320への送信データから除外し得る。不要なデータは、例えば、ワークの加工に直接関係しない土台の部品等である。
【0147】
図15は、第1装置200から第2装置210に転送されるデータの削減の様子の一例を示す図である。3Dデータ群1500は、レシピに含まれる全3Dデータである。3Dデータ群1510は、実際にシミュレータ320に送信される1つ以上の3Dデータである。3Dデータ群1510は、シミュレータ320の実行に必要な最低限度のデータの集合であってもよい。また、3Dデータ群1510は、過去のレシピと新しいレシピの差分となるデータのみを含んでいてもよい。
【0148】
図16は、転送の設定画面の一例を示す図である。画面1600は、シミュレータ320への転送データの確認画面である。ターゲット(シミュレータ320)が保有していない3Dデータ(未送信データ1610)にはチェックが入る。ユーザは、画面1600を参照することで、送信されるデータを確認し得る。また、ユーザは、画面1600を介して、送信するデータを変更し得る。画面1600は、ターゲット(シミュレータ320)へのファイル転送を実行するボタン、及び、ターゲット(シミュレータ320)からのファイル取得処理を実行するボタン等を含み得る。
【0149】
図17は、プロジェクトの画面の一例を示す図である。画面1700は、プロジェクト内又はレシピ内のデータの確認画面である。画面1700は、他の画面の一部(エクスプローラー等)であってもよい。画面1700には、一例として、シミュレータ320が保有していない3Dデータ(未送信データ1702,1704,1706,1708)の情報が表示されている。画面1700は、シミュレータ320がこれらの3Dデータを保有していないことを示す表示を含み得る。例えば、シミュレータ320が保有していない3Dデータのアイコンに斜線が入れられてもよい。ユーザは、画面1600及び画面1700等を参照することで、シミュレータ320に転送されるデータを把握し得る。
【0150】
上述のように、第2装置210の通信IF307は、第2装置210に第1レシピを送信するときに、第2装置210に事前に送った3Dデータを送信データから除外し得る。第2装置210は、第2装置210が保有するデータの差分だけを受信する。第2装置210(シミュレータ320)は、第2装置210が既に保有するデータと、受信した差分とに基づいて、シミュレーションを実行し得る。
【0151】
以上説明した通り、本実施の形態に従うシステム20は、生産情報を含むプロジェクトを管理する機能を提供する。生産情報は、レシピ及びワークを関連付ける。ユーザは、生産情報を選択するだけで、シミュレータ320に設定するレシピ及びワークの両方を選択し得る。
【0152】
また、システム20は、シミュレーション内のワークの形状と、現実のライン230におけるワークの形状とが一致するか否か(異なるか否か)を判定し得る。システム20は、シミュレーション内のワークの形状と、現実のライン230におけるワークの形状とが異なる場合、警告を出力する。これにより、ユーザは、シミュレータ320へのレシピの設定ミス又は現実のライン230で間違ったワークが加工されていること等を把握し得る。
【0153】
<G.付記>
以上のように、本実施の形態は以下のような開示を含む。
[構成1]
ラインを制御するための1つ以上のレシピを管理する装置(210)であって、
生産プロセスのプロジェクト(450)を格納するストレージ(303)を備え、
前記プロジェクト(450)は、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記装置(210)は、
前記1つ以上の生産情報のいずれかの選択を受け付けるための入力部(305)と、
シミュレーションを実行するための制御部(301)と、
前記シミュレーションの実行画面を出力するための出力部(306)とをさらに備え、
前記制御部(301)は、前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいて前記シミュレーションを実行する、装置(210)。
[構成2]
現実のラインを構成する1つ以上の機器に関する情報及び現実のワークに関する情報を受信するための通信部(307)をさらに備え、
前記シミュレーションは、前記1つ以上の機器に関する情報に基づく前記現実のラインの動作を再現したシミュレーションであり、
前記制御部(301)は、前記現実のワークに関する情報を参照し、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なるか否かを判定し、
前記出力部(306)は、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なることに基づいて、警告を出力する、構成1に記載の装置(210)。
[構成3]
前記プロジェクト(450)は、ワークの情報を含み、
前記制御部(301)は、前記ワークの情報を選択された前記第1生産情報に関連付けられる前記第1ワークを示すように変更する、構成1又は2に記載の装置(210)。
[構成4]
前記制御部(301)は、前記第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、前記第2生産情報に関連付けられる第2レシピ及び第2ワークに基づいて前記シミュレーションを実行する、構成1又は2に記載の装置(210)。
[構成5]
前記1つ以上の生産情報の設定入力のためのUI(User Interface)をさらに備え、
前記入力部(305)は、前記UIを介して、
前記1つ以上の生産情報の各々に関連付けられるレシピの入力と、
前記1つ以上の生産情報の各々に関連付けられるワークの入力とを受け付け可能に構成される、構成1又は2に記載の装置(210)。
[構成6]
ラインを制御するための1つ以上のレシピを管理するシステム(20)であって、
生産プロセスのプロジェクト(450)を管理する第1装置(200)と、
シミュレーションを実行する第2装置(210)とを備え、
前記第1装置(200)は、前記プロジェクト(450)を格納するストレージ(303)を備え、
前記プロジェクト(450)は、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記第1装置(200)は、
前記1つ以上の生産情報のいずれかの選択を受け付けるための入力部(305)と、
前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークを前記第2装置(210)に送信するための第1通信部(307)を備え、
前記第2装置(210)は、
受信した前記第1レシピ及び前記第1ワークに基づいて前記シミュレーションを実行するための制御部(301)と、
前記シミュレーションの実行画面を出力するための出力部(306)とを備える、システム(20)。
[構成7]
前記第2装置(210)は、現実のラインを構成する1つ以上の機器に関する情報及び現実のワークに関する情報を受信するための第2通信部(307)をさらに備え、
前記シミュレーションは、前記1つ以上の機器に関する情報に基づく前記現実のラインの動作を再現したシミュレーションであり、
前記制御部(301)は、前記現実のワークに関する情報を参照し、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なるか否かを判定し、
前記出力部(306)は、前記シミュレーション内のワークの形状と、前記現実のワークの形状とが異なることに基づいて、警告を出力する、構成6に記載のシステム(20)。
[構成8]
前記プロジェクト(450)は、ワークの情報を含み、
前記第1装置(200)は、前記ワークの情報を選択された前記第1生産情報に関連付けられる前記第1ワークを示すように変更する、構成6又は7に記載のシステム(20)。
[構成9]
前記第1通信部(307)は、前記第1生産情報が選択されている状態で第2生産情報が選択されたことに基づいて、前記第2生産情報に関連付けられる第2レシピ及び第2ワークの情報を前記第2装置(210)に送信する、構成6又は7に記載のシステム(20)。
[構成10]
前記第1装置(200)は、前記1つ以上の生産情報の設定入力のためのUIをさらに備え、
前記入力部(305)は、前記UIを介して、
前記1つ以上の生産情報の各々に関連付けられるレシピの入力と、
前記1つ以上の生産情報の各々に関連付けられるワークの入力とを受け付け可能に構成される、構成6又は7に記載のシステム(20)。
[構成11]
前記第1通信部(307)は、前記第2装置(210)に前記第1レシピを送信するときに、前記第2装置(210)に事前に送った3D(Dimensional)データを送信データから除外する、構成6又は7に記載のシステム(20)。
[構成12]
ラインを制御するための1つ以上のレシピを管理するための方法であって、
生産プロセスのプロジェクト(450)をストレージ(303)に保存することを含み、
前記プロジェクト(450)は、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記方法は、
前記1つ以上の生産情報のいずれかの選択を受け付けることと、
シミュレーションを実行することと、
前記シミュレーションの実行画面を出力することとを含み、
前記シミュレーションを実行することは、前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいて前記シミュレーションを実行することを含む、方法。
[構成13]
ラインを制御するための1つ以上のレシピを管理するためのプログラムであって、
生産プロセスのプロジェクト(450)をストレージ(303)に保存することをコンピュータに実行させ、
前記プロジェクト(450)は、
前記1つ以上のレシピと、
前記1つ以上のレシピの各々と1つ以上のワークの各々とを関連付ける1つ以上の生産情報とを含み、
前記プログラムは、
前記1つ以上の生産情報のいずれかの選択を受け付けることと、
シミュレーションを実行することと、
前記シミュレーションの実行画面を出力することとをさらにコンピュータに実行させ、
前記シミュレーションを実行することは、前記1つ以上の生産情報の中から第1生産情報が選択されたことに基づいて、前記第1生産情報に関連付けられる第1レシピ及び第1ワークに基づいて前記シミュレーションを実行することを含む、プログラム。
【0154】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態及び各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0155】
20 システム、101 シミュレーションの実行画面、102 実行画面、200 第1装置、210 第2装置、220 制御装置、230 現実のライン、232 機器、234 センサー、301 プロセッサ、302 メモリ、303 ストレージ、304 外部機器IF、305 入力IF、306 出力IF、307 通信IF、310 IDE、320 シミュレータ、400,450 プロジェクト、410 アプリケーションマネージャー、420 レシピマネージャー、430 生産情報マネージャー、440 ワークの情報、501,502 実行結果、600,610,620,700,710,800,810,1000,1010,1100,1110,1400,1600,1700 画面、601,802,812 項目、612 アイコン、614 リスト、622 切替対象、702 編集ボタン、804 選択項目、814 編集項目、900 更新ボタン、1500,1510 データ群、1610,1702,1704,1706,1708 未送信データ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17