JP7147808B2 - エンジニアリング装置、エンジニアリング方法、及びプログラム - Google Patents

エンジニアリング装置、エンジニアリング方法、及びプログラム Download PDF

Info

Publication number
JP7147808B2
JP7147808B2 JP2020113004A JP2020113004A JP7147808B2 JP 7147808 B2 JP7147808 B2 JP 7147808B2 JP 2020113004 A JP2020113004 A JP 2020113004A JP 2020113004 A JP2020113004 A JP 2020113004A JP 7147808 B2 JP7147808 B2 JP 7147808B2
Authority
JP
Japan
Prior art keywords
register
control device
control
unit
range
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020113004A
Other languages
English (en)
Other versions
JP2022011696A (ja
Inventor
元 木村
誠史郎 坂口
寛将 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2020113004A priority Critical patent/JP7147808B2/ja
Priority to EP21180828.2A priority patent/EP3933523A1/en
Priority to CN202110723414.7A priority patent/CN113867274B/zh
Priority to US17/359,663 priority patent/US12085904B2/en
Publication of JP2022011696A publication Critical patent/JP2022011696A/ja
Application granted granted Critical
Publication of JP7147808B2 publication Critical patent/JP7147808B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41845Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by system universality, reconfigurability, modularity
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31094Data exchange between modules, cells, devices, processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)

Description

本開示は、エンジニアリング装置、エンジニアリング方法、及びプログラムに関する。
特許文献1には、PLC(Programmable Logic Controller)などの上位制御装置の動作をラダーチャートに記述してプログラムを作成し、上位制御装置がプログラムを実行する技術が記載されている。
特開2012-194678号公報
本開示が解決しようとする課題は、例えば、1以上の産業装置の制御装置を制御可能な上位制御装置のレジスタのうち、ユーザが所望する任意のレジスタ範囲を、その制御装置の制御用に割り当てることである。
本開示の一側面に係るエンジニアリング装置は、1以上の産業装置の制御装置を制御可能な上位制御装置の設定を行うエンジニアリング装置であって、前記上位制御装置のレジスタ番号の指定を受け付ける受付部と、前記指定されたレジスタ番号に基づいて、前記上位制御装置が前記制御装置の制御で使用するレジスタ範囲を決定する決定部と、前記上位制御装置のレジスタのうち、前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる割当部と、を有する。
本開示の一側面に係るエンジニアリング方法は、1以上の産業装置の制御装置を制御可能な上位制御装置の設定を行うエンジニアリング方法であって、前記上位制御装置のレジスタ番号の指定を受け付け、前記指定されたレジスタ番号に基づいて、前記上位制御装置が前記制御装置の制御で使用するレジスタ範囲を決定し、前記上位制御装置のレジスタのうち、前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる。
本開示の一側面に係るプログラムは、1以上の産業装置の制御装置を制御可能な上位制御装置の設定を行うエンジニアリング装置を、前記上位制御装置のレジスタ番号の指定を受け付ける受付部、前記指定されたレジスタ番号に基づいて、前記上位制御装置が前記制御装置の制御で使用するレジスタ範囲を決定する決定部、前記上位制御装置のレジスタのうち、前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる割当部、として機能させる。
本開示の一側面によれば、前記受付部は、先頭レジスタ番号の指定を受け付け、前記決定部は、前記指定された先頭レジスタ番号から、当該先頭レジスタ番号よりも所定番号だけ後の終了レジスタ番号までの範囲を、前記レジスタ範囲として決定する。
本開示の一側面によれば、前記決定部は、前記指定されたレジスタ番号と、前記制御装置と前記上位制御装置との間における通信プロファイルで定義されたデータ構造と、に基づいて、前記レジスタ範囲を決定する。
本開示の一側面によれば、前記エンジニアリング装置は、前記決定されたレジスタ範囲と、他の目的で使用される他のレジスタ範囲と、が重複しているか否かを判定する判定部と、前記決定されたレジスタ範囲と、前記他のレジスタ範囲と、が重複していると判定された場合に、所定のアラートを出力する出力部と、を有する。
本開示の一側面によれば、前記上位制御装置は、複数の前記制御装置の各々を制御し、前記受付部は、前記制御装置ごとに、前記レジスタ番号の指定を受け付け、前記決定部は、前記制御装置ごとに、当該制御装置に対して指定された前記レジスタ番号に基づいて、前記上位制御装置が当該制御装置の制御で使用する前記レジスタ範囲を決定し、前記割当部は、前記制御装置ごとに、当該制御装置に対して決定された前記レジスタ範囲を、当該制御装置の制御用に割り当てる。
本開示の一側面によれば、前記制御装置には、所定の動作をするためのプログラムが記憶されており、前記レジスタ範囲には、前記制御装置の前記プログラムを呼び出して前記制御装置に実行させるためのコマンドを格納するコマンドエリアのレジスタ番号が含まれており、前記割当部は、前記コマンドエリアのレジスタ番号を含む前記レジスタ範囲を、前記制御装置の制御用に割り当てる。
本開示の一側面によれば、前記レジスタ範囲には、前記制御装置に対するコマンドを格納するコマンドエリアのレジスタ番号と、前記コマンドエリアに格納されたコマンドの実行を要求するためのコマンド要求情報を格納するコマンド要求情報エリアのレジスタ番号と、を含み、前記割当部は、前記コマンドエリアのレジスタ番号と、前記コマンド要求情報エリアのレジスタ番号と、を含む前記レジスタ範囲を、前記制御装置の制御用に割り当てる。
本開示の一側面によれば、前記レジスタ範囲は、前記制御装置の制御に加えて、前記制御装置の動作に関するモニタリング及びデータ収集の少なくとも一方で使用され、前記割当部は、前記決定されたレジスタ範囲を、前記制御装置の制御と、前記モニタリング及び前記データ収集の少なくとも一方と、のために割り当てる。
本開示の一側面によれば、前記エンジニアリング装置は、前記上位制御装置が前記制御装置を制御するための制御プログラムの作成画面を表示させる表示制御部と、前記作成画面における操作に基づいて、前記制御プログラムを作成する作成部と、を更に有し、前記表示制御部は、前記割り当てられたレジスタ範囲に含まれる複数のレジスタ番号の各々に対応する変数名を前記作成画面に表示させる。
本開示の一側面によれば、前記作成部は、前記作成画面に表示された変数名が指定された場合に、当該指定された変数名に対応するレジスタ番号のレジスタを制御するように、前記制御プログラムを作成する。
本開示の一側面によれば、前記レジスタ範囲に含まれる複数のレジスタ番号の各々に対応する変数名は、階層構造を有し、前記表示制御部は、前記変数名の階層構造に基づいて、前記作成画面における変数名をツリー状に表示させる。
本開示の一側面によれば、前記上位制御装置は、複数種類のレジスタを含み、前記受付部は、前記複数種類のレジスタのうちの何れかのレジスタ番号の指定を受け付け、前記決定部は、前記指定されたレジスタ番号に基づいて、当該レジスタ番号に対応する種類のレジスタの前記レジスタ範囲を決定し、前記割当部は、前記複数種類のレジスタのうち、前記指定されたレジスタ番号に対応する種類のレジスタの前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる。
本開示によれば、例えば、1以上の産業装置の制御装置を制御可能な上位制御装置のレジスタのうち、ユーザが所望する任意のレジスタ範囲を、その制御装置の制御用に割り当てることができる。
エンジニアリング装置を含む生産システムの全体構成の一例を示す図である。 詳細定義画面の一例を示す図である。 ウィンドウが表示された詳細定義画面の一例を示す図である。 システム構成が指定された場合の詳細定義画面の一例を示す図である。 先頭レジスタ番号が指定された場合の詳細定義画面の一例を示す図である。 全てのロボットコントローラの通信設定が行われた場合の詳細定義画面の一例を示す図である。 レジスタ範囲が重複している場合の詳細定義画面の一例を示す図である。 生産システムで実現される機能を示す機能ブロック図である。 構造体データのデータ格納例を示す図である。 詳細定義データのデータ格納例を示す図である。 実施形態の生産システムで実行される処理の一例を示すフロー図である。 変形例(1)における機能ブロック図である。 作成画面の一例を示す図である。
[1.生産システムの全体構成]
1以上の産業装置を制御する制御装置を制御可能な上位制御装置は、予め定められたレジスタ範囲に記憶された変数に基づいて、制御装置を制御する。この点、従来の技術では、上位制御装置のレジスタ範囲が固定されており、ユーザが自由に指定できるものではなかった。そこで発明者達は、上位制御装置のレジスタのうち、ユーザが所望する任意のレジスタ範囲を制御装置の制御用に割り当てるために鋭意研究開発を行った結果、新規かつ独創的なエンジニアリング装置等に想到した。以降、本実施形態に係るエンジニアリング装置等を詳細に説明する。
図1は、エンジニアリング装置を含む生産システムの全体構成の一例を示す図である。図1に示すように、生産システム1は、エンジニアリング装置10、上位制御装置20、ロボットコントローラ30、ロボット40、及びデータ収集装置50を含む。図1では、各装置を1台ずつ示しているが、各装置は複数台存在してもよい。
生産システム1に含まれる各装置は、任意のネットワークに接続可能である。本実施形態では、各装置がEthernet(登録商標)等の一般的なネットワークで接続されている場合を説明するが、各装置は、産業装置用のネットワークにより接続されてもよい。例えば、上位制御装置20と、エンジニアリング装置10及びデータ収集装置50と、が一般的なネットワークで接続され、上位制御装置20とロボットコントローラ30とが産業装置用のネットワークで接続されるといったように、異なる種類のネットワークで接続されてもよい。
エンジニアリング装置10は、1以上のロボット40を制御するロボットコントローラ30を制御可能な上位制御装置20の設定を行うコンピュータである。例えば、エンジニアリング装置10は、パーソナルコンピュータ、携帯電話(スマートフォンを含む)、又は携帯端末(タブレット型端末を含む)である。なお、エンジニアリング装置10は、上位制御装置20以外の他の装置の設定を行ってもよい。
エンジニアリング装置10には、ユーザの設定作業を支援するためのエンジニアリングツールがインストールされている。例えば、エンジニアリングツールは、プログラムの作成、パラメータの設定、装置間の通信設定、レジスタの定義、又は変数の定義といった種々の目的で利用される。エンジニアリング装置10は、CPU11、記憶部12、通信部13、操作部14、及び表示部15を含む。
CPU11は、少なくとも1つのプロセッサを含む。CPU11は、circuitryの一種である。記憶部12は、RAMやハードディスクを含み、各種プログラムやデータを記憶する。CPU11は、これらプログラムやデータに基づいて各種処理を実行する。通信部13は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。操作部14は、マウスやキーボード等の入力デバイスである。表示部15は、液晶ディスプレイ又は有機ELディスプレイ等であり、CPU11の指示により各種画面を表示する。
上位制御装置20は、他の装置を制御可能なコンピュータである。上位制御装置20は、他の装置を制御する機能を有していればよく、必ずしも他の装置を制御しなければならないわけではない。例えば、上位制御装置20は、ロボットコントローラ30への制御を行わずに、ロボットコントローラ30からデータ収集のみを実行してもよい。生産システム1全体は、ラインよりも小さな単位であるセルと呼ばれることがあり、この場合には、上位制御装置20は、セルコントローラと呼ばれることもある。上位制御装置20は、PLC(Programmable Logic Controller)の一種に相当することもある。
本実施形態では、上位制御装置20は、ロボットコントローラ30を制御可能である。例えば、上位制御装置20は、複数のロボットコントローラ30を制御可能であってもよい。また例えば、上位制御装置20は、互いに異なる種類の複数の装置を制御可能であってもよい。上位制御装置20の制御対象となる装置の台数及び種類は、本実施形態の例に限られず、任意の台数及び任意の種類の装置が制御対象になってよい。
上位制御装置20は、CPU21、記憶部22、通信部23、及びIoT部24を含む。CPU21、記憶部22、及び通信部23の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。IoT部24は、ネットワークを介して、他のコンピュータにデータを送信するためのユニットである。例えば、IoT部24は、CPU、記憶部、及び通信部を含む。IoT部24に含まれるCPU、記憶部、及び通信部の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。
なお、CPU21、記憶部22、及び通信部23は、上位制御装置20の第1の筐体(以降、CPUユニット)に含まれており、IoT部24は、上位制御装置20の第2の筐体(以降、IoTユニット)に含まれていてもよい。この場合、エンジニアリング装置10は、CPUユニット及びIoTユニットの各々に接続可能である。ユーザは、エンジニアリング装置10をCPUユニットに接続してもよいし、エンジニアリング装置10をIoTユニットに接続してもよい。
ロボットコントローラ30は、ロボット40を制御するコンピュータである。ロボットコントローラ30は、制御装置の一例である。このため、本実施形態でロボットコントローラ30と記載した箇所は、制御装置と読み替えることができる。制御装置は、後述する産業装置を制御する装置であればよく、任意の種類の装置であってよい。例えば、制御装置は、PLC、モーションコントローラ、モータコントローラ、インバータ、コンバータ、工作機械、搬送装置、又は半導体製造装置であってもよい。制御装置は、任意の台数の産業装置を制御可能である。制御装置は、1台の産業装置だけを制御してもよいし、複数台の産業装置を制御してもよい。制御装置は、産業装置の上位装置に相当する。上位制御装置20は、制御装置を制御することがあるので、制御装置よりも更に上位の装置に相当する。
ロボット40は、ロボットコントローラ30により制御される産業用ロボットである。例えば、ロボット40は、ロボットアーム、ロボットハンド、モータ、及びセンサを含む。センサは、物理量を検出可能なセンサであればよく、例えば、モータエンコーダ、トルクセンサ、モーションセンサ、把持センサ、ビジョンセンサ、又は温度センサである。ロボット40は、産業装置の一例である。このため、本実施形態でロボット40と記載した箇所は、産業装置と読み替えることができる。産業装置は、人間が行う作業の補助又は代行をする機器及びその周辺機器の総称である。例えば、産業用ロボット、サーボアンプ、又はモータは、産業装置に相当する。広い意味では、上位制御装置20、ロボットコントローラ30、及びセンサも産業装置の一種である。上記説明したPLCなどの装置も産業装置の一種である。
データ収集装置50は、生産システム1におけるデータを収集するコンピュータである。データ収集装置50は、パーソナルコンピュータ、サーバコンピュータ、携帯電話(スマートフォンを含む)、又は携帯端末(タブレット型端末を含む)である。データ収集装置50は、CPU51、記憶部52、通信部53、操作部54、及び表示部55を含む。CPU51、記憶部52、通信部53、操作部54、及び表示部55の物理的構成は、それぞれCPU11、記憶部12、通信部13、操作部14、及び表示部15と同様であってよい。
なお、各装置に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されてもよい。また、各装置のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力部(例えば、USB端子)が含まれてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが、読取部又は入出力部を介して供給されてもよい。
また例えば、上位制御装置20には、上位制御装置20が直接的に制御するロボット等の産業装置が接続されていてもよい。また例えば、上位制御装置20及びロボットコントローラ30の各々には、FPGA又はASICと呼ばれる回路が含まれてもよい。また例えば、上位制御装置20及びロボットコントローラ30の各々には、先述したセンサ又は入出力機器などが接続されていてもよい。
[2.生産システムの概要]
本実施形態の上位制御装置20は、複数の変数の各々に基づいて、ロボットコントローラ30を制御する。変数は、ロボットコントローラ30を制御するための制御プログラムにより参照される情報である。制御プログラムは、変数を書き換えることもある。例えば、変数は、途中の計算結果、アラームの有無、又は、センサにより検出された物理量(例えば、トルクセンサにより検出されたトルク値、又は、モータエンコーダにより検出されたモータの回転速度)を示す。
例えば、ロボットコントローラ30が複数の工程を所定の順序で実行する場合、制御プログラムには、各工程の実行順が記述されている。上位制御装置20は、制御プログラムに基づいて、ロボットコントローラ30に対して指示を送る。変数は、工程の実行条件になってもよい。例えば、ロボットコントローラ30は、工程を開始するための変数、工程を一時停止するための変数、又は、工程を終了するための変数を記憶する。変数は、入出力変数と呼ばれることもある。
工程とは、ロボットコントローラ30が行う作業又は動作である。工程は、1つの作業だけから構成されてもよいし、複数の作業の組み合わせから構成されてもよい。工程は、ロボットコントローラ30の用途に応じた任意の内容であってよく、例えば、ワークの認識、ワークの把持、扉の開閉、ワークのセット、又は工作機器を利用した加工などである。ロボットコントローラ30は、少なくとも1つの工程を行う。ロボットコントローラ30が行う工程の数は、任意の数であってよく、ロボットコントローラ30は、1つの工程だけを行ってもよいし、複数の工程を行ってもよい。ロボットコントローラ30は、上位制御装置20から受信した指示と、自身に記憶された装置プログラムと、に基づいて工程を行う。
装置プログラムは、ロボットコントローラ30の動作を定義したプログラムである。装置プログラムには、各工程における個々の手順が定義されている。装置プログラムは、ロボットコントローラ30に応じた任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語等によって作成される。なお、制御プログラムも任意の言語で作成可能である。本実施形態では、工程ごとに装置プログラムが用意されている。このため、あるロボットコントローラ30がn個(nは自然数)の工程を行うとすると、当該ロボットコントローラ30は、少なくともn個の装置プログラムを記憶していることになる。
なお、変数の種類は、上記の例に限られない。例えば、上位制御装置20からロボットコントローラ30に対するコマンドを示す変数が存在してもよい。また例えば、ある変数が示すコマンドの実行開始を示す別の変数が存在してもよい。また例えば、ロボットコントローラ30が実行すべきロボットプログラム名やその実行条件を示す変数が存在してもよい。ロボットプログラムは、ロボットコントローラ30が実行するプログラムであり、例えば、先述した装置プログラムは、ロボットプログラムの一種である。ジョブと呼ばれるプログラムもロボットプログラムの一種である。また例えば、ロボットコントローラ30から上位制御装置20への応答を示す変数が存在してもよい。また例えば、ロボットコントローラ30の制御とは直接的に関係がない変数が存在してもよい。
ユーザは、エンジニアリング装置10を操作して、上記のような変数を記憶する上位制御装置20の設定を行う。本実施形態でユーザと記載した箇所は、上位制御装置20のユーザを意味する。上位制御装置20のユーザは、ロボットコントローラ30のユーザ及びデータ収集装置50のユーザと同じであってもよいが、本実施形態では、これらのユーザが異なる場合を説明する。
例えば、ユーザは、エンジニアリング装置10にインストールされたエンジニアリングツールを利用して、上位制御装置20のレジスタの割り当てを行う。レジスタの割り当ては、上位制御装置20とロボットコントローラ30との間における通信設定の一環として行われる。ユーザがエンジニアリング装置10を操作してエンジニアリングツールが起動すると、各種設定を行うためのメニュー画面が表示部15に表示される。ユーザがメニュー画面から通信設定を行うためのアイコンを選択すると、通信設定の詳細を定義するための詳細定義画面が表示部15に表示される。
図2は、詳細定義画面の一例を示す図である。図2に示すように、詳細定義画面G1では、上位制御装置20と通信する複数の装置の各々の通信設定を行うことができる。本実施形態では、上位制御装置20が8台まで通信可能な場合を説明するが、上位制御装置20が通信可能な装置の上限数は、任意の台数であってよく、8台に限られない。図2の例では、どの装置の通信設定も行われておらず、詳細定義画面G1には、通信設定の情報は表示されない。
図2の例では、システム構成、伝送種別、先頭レジスタ番号、終了レジスタ番号、ウォッチドッグタイマ設定、及びコメントの設定が可能である。システム構成は、装置との接続方法である。システム構成は、通信プロトコルということもできる。例えば、複数の接続方法が用意されており、ユーザは、何れかの接続方法を指定する。伝送種別は、指定されたシステム構成で利用される伝送の種別である。例えば、内蔵のEthernet(登録商標)などのように、複数の種別が用意されており、ユーザは、何れかの種別を指定する。
先頭レジスタ番号は、装置の制御用に割り当てられるレジスタ範囲のうちの最初のレジスタ番号である。レジスタ番号は、個々のレジスタを識別する情報である。レジスタ番号は、アドレスと似た概念であるが、厳密にはアドレスとは異なる意味である。本実施形態では、CPU21に含まれるレジスタに変数が格納されるので、レジスタ番号は、CPU21の個々のレジスタを示す。
レジスタ範囲は、レジスタ番号の帯域である。レジスタ範囲には、複数のレジスタ番号が含まれる。レジスタ範囲に含まれるレジスタ番号の数は、任意の数であってよい。本実施形態では、レジスタ範囲に含まれるレジスタ番号が連番である場合を説明するが、レジスタ範囲に含まれるレジスタ番号は連番でなくてもよい。ある装置に割り当てられたレジスタ範囲に含まれるレジスタには、その装置の制御用の変数が格納され、他の装置の制御用の変数は格納されない。
終了レジスタ番号は、装置の制御用に割り当てられるレジスタ範囲のうちの最後のレジスタ番号である。本実施形態では、レジスタ範囲が連番なので、ある装置のレジスタ範囲は、その装置に指定された先頭レジスタ番号から終了レジスタ番号までになる。終了レジスタ番号は、先頭レジスタ番号に対し、後述する構造体で定義されるサイズ分のオフセットだけ加算した番号になる。
ウォッチドッグタイマ設定は、装置が正常か否かを監視するためのタイマである。図2の例では、ウォッチドッグタイマ設定の値は、デフォルト値が設定されている。ウォッチドッグタイマ設定は、ユーザが指定したシステム構成に応じた値になってもよいし、ユーザが指定した値になってもよい。コメントは、装置の通信設定に関する補足説明であり、ユーザが任意の文字列を入力可能である。
本実施形態では、上位制御装置20に3台のロボットコントローラ30が接続されており、これら3台分の通信設定が行われる場合を例に挙げて説明する。例えば、ユーザは、1台目のロボットコントローラ30の通信設定を行うために、詳細定義画面G1に表示された「No.1」のシステム構成を選択する。「No.1」のシステム構成が選択されると、1台目のロボットコントローラ30のシステム構成を指定するためのウィンドウが表示される。
図3は、ウィンドウが表示された詳細定義画面G1の一例を示す図である。図3に示すように、ウィンドウW10には、予め用意された複数のシステム構成の各々が表示される。ユーザがウィンドウW10から任意のシステム構成を指定すると、指定されたシステム構成に応じた詳細な設定をするための入力フォームが表示される。なお、伝送種別は、ユーザが指定したシステム構成に応じて自動的に指定されてもよいし、複数の伝送種別の中からユーザが指定してもよい。
図4は、システム構成が指定された場合の詳細定義画面G1の一例を示す図である。図4に示すように、入力フォームF10には、コネクション番号、自局ポート、ロボットコントローラ30のIPアドレス、ロボットコントローラ30のポート、コネクションタイプ、プロトコルタイプ、及びコードが表示される。
コネクション番号は、上位制御装置20と通信する装置に割り当てられる番号である。自局ポートは、通信部23に含まれる複数のポートのうち、ロボットコントローラ30との通信で使用されるポートである。ロボットコントローラ30のIPアドレスは、予め設定されていてもよいが、本実施形態では、ユーザが入力フォームF10から指定する。
ロボットコントローラ30のポートは、通信部33に含まれる複数のポートのうち、上位制御装置20との通信で使用するポートである。コネクションタイプ及びプロトコルタイプの各々は、通信のタイプであり、例えば、UDP(User Datagram Protocol)、TCP(Transmission Control Protocol)、又はModbusなどである。コードは、送受信されるデータの形式であり、例えば、バイナリコードなどの形式である。本実施形態では、ロボットコントローラ30のポート、コネクションタイプ、プロトコルタイプ、及びコードの各々が固定値である場合を説明するが、ユーザがこれらの値を指定してもよい。
例えば、ユーザは、入力フォームF10の自局ポートとロボットコントローラ30のIPアドレスの各々に、任意の値を指定する。あるロボットコントローラ30に対応する自局ポートとIPアドレスの少なくとも一方と、他のロボットコントローラ30に対応する自局ポートとIPアドレスの少なくとも一方と、が重複していた場合には、エラーメッセージが表示されてもよい。ユーザは、入力フォームF10に対する入力を終えると、「No.1」の先頭レジスタ番号に任意のレジスタ番号を指定する。なお、ユーザは、入力フォームF10に対する入力の前に、先頭レジスタ番号を指定してもよい。
図5は、先頭レジスタ番号が指定された場合の詳細定義画面G1の一例を示す図である。図5に示すように、ユーザが先頭レジスタ番号を指定すると、終了レジスタ番号が自動的に指定される。図5の例では、ユーザが指定したシステム構成の構造体として、4260個分のサイズが用意されており、ユーザが指定した「GW00000番」から構造体のサイズだけ後の「GW04259番」が終了レジスタとして指定される。上位制御装置20のCPU21に含まれるレジスタのうち、「GW00000番」から「GW04259番」までの4260個のレジスタ番号を含むレジスタ範囲が、1台目のロボットコントローラ30の制御用に割り当てられる。
ユーザは、必要に応じてウォッチドッグタイマ設定とコメントを指定する。以上により、1台目のロボットコントローラ30の通信設定が完了する。ユーザは、続けて2台目と3台目のロボットコントローラ30の通信設定を行う。2台目と3台目のロボットコントローラ30の通信設定も、1台目のロボットコントローラ30と同様の流れで行われる。
図6は、全てのロボットコントローラ30の通信設定が行われた場合の詳細定義画面G1の一例を示す図である。図6に示すように、ユーザは、各ロボットコントローラ30で互いに重複しないように、レジスタ範囲、自局ポート、及びIPアドレスを指定する。2台目と3台目のロボットコントローラ30の通信設定は、入力フォームF11,F12等に対して入力される。ユーザが詳細定義画面G1から所定の操作を行うと、各ロボットコントローラ30の通信設定が保存される。
本実施形態では、通信設定が保存される場合に、ユーザが指定したレジスタ範囲が重複しているか否かが判定される。例えば、あるロボットコントローラ30のレジスタ範囲と、他のロボットコントローラ30のレジスタ範囲と、が重複しているか否かが判定される。また例えば、あるロボットコントローラ30のレジスタ範囲と、ロボットコントローラ30の制御以外の他の目的で使用されるレジスタ範囲と、が重複しているか否かが判定される。
図7は、レジスタ範囲が重複している場合の詳細定義画面G1の一例を示す図である。図7に示すように、レジスタ範囲が重複している場合には、その旨を示すメッセージを含むウィンドウW11が表示される。ウィンドウW11が表示された場合、ユーザは、レジスタ範囲が重複しないように、ロボットコントローラ30の先頭アドレスの指定をやり直す。なお、本実施形態では、レジスタ範囲が重複している場合にのみウィンドウW11が表示される場合を説明するが、レジスタ範囲が重複しているか否かに関係なく、レジスタ範囲が重複しないように促すメッセージを含むウィンドウW11が表示されてもよい。
以上のように、本実施形態のエンジニアリングツールでは、あるロボットコントローラ30の先頭レジスタ番号が指定されると、構造体に定義された分のレジスタ範囲が、そのロボットコントローラ30の制御用に割り当てられる。これにより、ユーザが所望する任意のレジスタ範囲を、ロボットコントローラ30の制御用に割り当てることができるようになっている。以降、生産システム1の詳細を説明する。
[3.生産システムで実現される機能]
図8は、生産システム1で実現される機能を示す機能ブロック図である。本実施形態では、エンジニアリング装置10、上位制御装置20、ロボットコントローラ30、及びデータ収集装置50の各々で実現される機能について説明する。
[3-1.エンジニアリング装置で実現される機能]
図8に示すように、エンジニアリング装置10は、データ記憶部100、表示制御部101、受付部102、決定部103、判定部104、出力部105、及び割当部106を含む。データ記憶部100は、記憶部12を主として実現され、表示制御部101、受付部102、決定部103、判定部104、出力部105、及び割当部106の各々は、CPU11を主として実現される。
[データ記憶部]
データ記憶部100は、上位制御装置20の設定を行うために必要なデータを記憶する。本実施形態では、このデータの一例として、通信プロファイルにおいて定義された構造体を示す構造体データと、詳細定義画面G1で定義された通信設定を示す詳細定義データと、を説明する。通信プロファイルは、上位制御装置20とロボットコントローラ30とを接続するインタフェースである。通信プロファイルは、通信プロトコルと同じ意味であってもよく、通信手順やデータの形式が定義されている。本実施形態では、システム構成を指定することによって、通信プロファイルが指定される。
図9は、構造体データのデータ格納例を示す図である。図9に示すように、構造体データD1には、通信プロファイルにおけるレジスタ体系が定義されたデータである。別の言い方をすれば、構造体データD1は、通信プロファイルに定義された通信で送受信されるデータの形式を示すデータである。複数の通信プロファイルが用意されている場合には、通信プロファイルごとに構造体データD1が用意される。この場合、通信プロファイルごとに、オフセットの幅(レジスタ範囲の広さ)が異なってもよい。構造体データD1には、レジスタ範囲に含まれるレジスタ番号と、そのレジスタ番号に格納される情報と、の関係が示される。例えば、構造体データD1には、オフセット、階層、及び名称が格納される。
オフセットは、先頭レジスタ番号を基準としたレジスタ番号である。オフセットは、先頭レジスタ番号から数えた場合のレジスタ番号、又は、先頭レジスタ番号に対する相対的なレジスタ番号ということもできる。図9のデータ格納例であれば、ユーザが指定した先頭レジスタ番号は、オフセットの最初の番号である「0000番」に相当する。エンジニアリングツールが自動的に設定する終了レジスタ番号は、オフセットの最後の番号である「4259」番に相当する。本実施形態では、「0000番」から「4259番」までの合計4260個のレジスタ番号を含むレジスタ範囲が、ロボットコントローラ30に割り当てられる。
階層は、オフセットに対応するレジスタに格納される変数の属性を示す情報である。属性は、変数の分類を示す情報である。属性は、変数の性質又は特徴を示す情報ということもできる。階層によって属性が表現される場合には、下の階層になるほど、変数の具体的な分類が表現される。図9のデータ格納例では、4段階の階層とするが、階層の段階数は、任意であってよい。なお、属性は、階層の概念がなくてもよい。また、変数は、属性によって分類されていなくてもよい。
名称は、オフセットに対応するレジスタに格納される変数の名称である。変数のデータサイズによっては、1つのレジスタ番号に対応するレジスタには格納できないことがあるので、このような変数は、複数のレジスタ番号にまたがって格納される。変数のデータサイズが大きいほど、その変数に必要なレジスタ番号が多くなる。なお、第1層~第4層のうち、各変数の最下層の名称(例えば、「2500番」の「CmdReqid」)も変数の名称の一種である。
本実施形態では、構造体データD1に定義された変数のうち、主な変数についてのみ説明する。例えば、オフセット「0012番」~「2041番」の変数群は、上位制御装置20がロボットコントローラ30から受信する受信データと同じデータである。この変数群には、「0413番」のコマンド要求ID、「0415番」のメインコマンド、「0416番」のサブコマンド、「0417番」の戻り値、「0418番」の付加データへのオフセットを含むアンサヘッダが複数個含まれる。
コマンド要求IDは、コマンド要求情報の一例である。本実施形態でコマンド要求IDを説明している箇所は、コマンド要求情報と読み替えることができる。コマンド要求情報は、ロボットコントローラ30に対し、コマンドの実行を要求するための情報である。例えば、コマンド要求情報が更新された場合に、コマンドが実行される。更新とは、値が変わることである。また例えば、コマンド要求情報が所定値を示す場合に、コマンドが実行される。コマンド要求情報は、ID以外の任意の形式であってよく、ID以外の名称で呼ばれてもよい。本実施形態のコマンド要求IDは、数値で表現され、コマンドが実行されるたびにインクリメントされる。
メインコマンドは、ロボットコントローラ30が有する複数の機能のうち、ロボットコントローラ30に要求される機能を示す情報である。本実施形態では、ロボット40を制御するロボット制御機能、ロボット40の動作を監視するモニタリング機能、及びロボット40の動作に関するデータを収集する収集機能の3つの機能が用意されており、メインコマンドは、これらの何れかを示す値になる。なお、ロボットコントローラ30は、モニタリング機能又は収集機能を有さなくてもよいし、他の機能を有してもよい。また、ロボットコントローラ30は、単一の機能のみを有してもよい。この場合、メインコマンドは省略可能である。
サブコマンドは、ロボットコントローラ30が実行可能な複数の動作のうち、ロボットコントローラ30に要求された動作を示す情報である。本実施形態では、メインコマンドで示される機能ごとに、複数の動作が用意されている。サブコマンドは、メインコマンドで示された機能に用意された複数の動作のうちの何れかを示す。即ち、本実施形態では、メインコマンドとサブコマンドの組み合わせによって、ロボットコントローラ30が実行する具体的な動作が特定される。
例えば、ロボット制御機能のメインコマンドであれば、アラーム又はエラーのリセット、ホールドの停止、電源制御、HMIのロック、サイクル変更、モード切替、ロボットプログラム実行(スタート)、ロボットプログラム選択、目標位置へのロボット動作、及び各軸のパルスを指定したロボット動作などのサブコマンドが用意されている。また例えば、モニタリング機能のメインコマンドであれば、モニタ設定読み出し、モニタ設定書き込み、及びロボットプログラム情報読み出しなどのサブコマンドが用意されている。また例えば、収集機能のメインコマンドであれば、収集設定状態の読み出し、収集設定の書き込み、収集開始、及び収集終了などのサブコマンドが用意されている。
戻り値は、ロボットコントローラ30の動作結果を示す情報である。例えば、戻り値が第1の値(例えば、0)であることは、動作が正常に完了したことを意味する。また例えば、戻り値が第2の値(例えば、1)であることは、動作に異常が発生したことを意味する。付加データへのオフセットは、ロボットコントローラ30からの応答データに含まれる付加データが格納されたレジスタ番号を特定するための情報である。付加データは、メインコマンドとサブコマンドが所定の組み合わせの場合にのみ付加される。
また例えば、「0012番」~「2041番」の変数群には、上記のアンサヘッダ以外にも、「0504番」~「1054番」のアンサデータエリアが含まれる。アンサデータエリアには、付加データ等のデータが格納される。
また例えば、オフセット「2042番」~「2499番」の変数群は、上位制御装置20がロボットコントローラ30に対して送信する送信データと同じデータである。この変数群には、「2163番」のコマンド要求ID、「2165番」のメインコマンド、「2166番」のサブコマンド、及び「2167番」~「2499番」のコマンドデータエリアが含まれる。コマンド要求ID、メインコマンド、及びサブコマンドの意味は、先述した通りである。
「2163番」~「2166番」のコマンド要求ID、メインコマンド、及びサブコマンドは、上位制御装置20からロボットコントローラ30に送信される。先述した「0413番」~「0416番」コマンド要求ID、メインコマンド、及びサブコマンドは、ロボットコントローラ30から受信される。「2163番」~「2166番」のコマンド要求ID、メインコマンド、及びサブコマンドと、「0413番」~「0416番」コマンド要求ID、メインコマンド、及びサブコマンドと、の値が一致していないことは、何らかの異常が発生した可能性が高いことになる。
「2167番」~「2499番」のコマンドデータエリアには、ロボットコントローラ30に要求された動作に関するデータが格納される。例えば、ロボットプログラムの選択であれば、ロボットプログラム名と、ロボットプログラムの開始部分と、がコマンドデータエリアに格納される。その外にも、コマンドデータエリアには、ロボットプログラムの実行に必要なパラメータなどのデータが格納されてもよいし、ユーザが登録したロボットプログラム群の識別情報などの情報が格納されてもよい。
なお、オフセット「2500番」~「2950番」の変数群は、上位制御装置20がロボットコントローラ30から受信した最新の受信データに相当する。また、構造体データD1には、モニタリング機能用のレジスタ範囲と、収集機能用のレジスタ範囲と、が含まれていてもよい。モニタリング機能用のレジスタ範囲には、ロボット40の動作を監視するための変数が格納される。収集機能用のレジスタ範囲には、データ収集装置50の収集対象となる変数が格納される。
図10は、詳細定義データD2のデータ格納例を示す図である。図10に示すように、詳細定義データD2は、詳細定義画面G1から指定された設定内容を示すデータである。例えば、詳細定義データD2には、装置番号、システム構成、伝送種別、先頭レジスタ番号、終了レジスタ番号、ウォッチドッグタイマ設定値、コメント、自局ポート、ロボットコントローラ30のIPアドレス、ロボットコントローラ30のポート、コネクションタイプ、プロトコルタイプ、及びコードが格納される。これらの情報は、図2-図7の詳細定義画面G1を参照して説明した通りである。ユーザが設定を保存すると、詳細定義データD2が更新される。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。例えば、データ記憶部100は、エンジニアリングツールを記憶する。エンジニアリングツールには、詳細定義画面G1等の各種画面を表示させるためのプログラムと、先頭レジスタ番号から終了レジスタ番号を計算するためのプログラムと、が含まれているものとする。また例えば、データ記憶部100は、ユーザがエンジニアリングツールを利用して作成したプログラムやパラメータを記憶してもよい。
[表示制御部]
表示制御部101は、エンジニアリングツールにおける各種画面を表示部15に表示させる。例えば、表示制御部101は、詳細定義画面G1を表示させる。表示制御部101は、図2-図7を参照して説明したように、詳細定義画面G1を表示させたり、ユーザの操作に応じて表示を更新したりする。
[受付部]
受付部102は、上位制御装置20のレジスタ番号の指定を受け付ける。例えば、受付部102は、先頭レジスタ番号の指定を受け付ける。レジスタ番号の指定は、任意の方法によって行われてよく、例えば、入力フォームに対する数値入力によって受け付けられてもよいし、プルダウンメニューやボタンの選択によって受け付けられてもよい。他の指定についても同様であり、操作部14から入力可能な操作によって行われるようにすればよい。
受付部102は、レジスタ範囲を特定可能なレジスタ番号の指定を受け付ければよい。例えば、受付部102は、終了レジスタ番号の指定を受け付けてもよい。この場合、後述する決定部103は、指定された終了レジスタ番号よりも所定値だけ前の番号を、先頭レジスタ番号として取得すればよい。また例えば、受付部102は、先頭レジスタ番号よりも後であり、かつ、終了レジスタ番号よりも前の中間的なレジスタ番号の指定を受け付けてもよい。この場合、後述する決定部103は、指定されたレジスタ番号の所定値だけ前の番号を先頭レジスタ番号として取得し、指定されたレジスタ番号の所定値だけ後の番号を終了レジスタ番号として取得すればよい。
なお、受付部102は、レジスタ範囲に含まれるレジスタ番号ではなく、レジスタ範囲に含まれないレジスタ番号の指定を受け付けてもよい。例えば、受付部102は、先頭レジスタ番号の1つ前の番号の指定を受け付けてもよい。この場合、後述する決定部103は、指定されたレジスタ番号の1つ後の番号を、先頭レジスタ番号として取得すればよい。また例えば、受付部102は、終了レジスタ番号の1つ後の番号の指定を受け付けてもよい。この場合、後述する決定部103は、指定されたレジスタ番号の1つ前の番号を終了レジスタ番号として取得すればよい。
また、本実施形態のように、レジスタ範囲のオフセットを固定値としない場合には、受付部102は、先頭レジスタ番号と、終了レジスタ番号と、の両方の指定を受け付けてもよい。この場合、レジスタ範囲は、ユーザが指定した任意の広さを有する。この場合も、先頭レジスタ番号及び終了レジスタ番号以外のレジスタ番号が指定されてもよい。また、先頭レジスタ番号と、レジスタ範囲の広さと、が指定されてもよい。即ち、ユーザの操作によって、レジスタ範囲の広さが可変であってもよい。
本実施形態では、上位制御装置20は、複数のロボットコントローラ30の各々を制御するので、受付部102は、ロボットコントローラ30ごとに、レジスタ番号の指定を受け付ける。受付部102は、ロボットコントローラ30の数だけ、レジスタ番号の指定を受け付ける。受付部102は、n個のロボットコントローラ30にそれぞれ対応する、少なくともn個のレジスタ番号の指定を受け付ける。
[決定部]
決定部103は、指定されたレジスタ番号に基づいて、上位制御装置20がロボットコントローラ30の制御で使用するレジスタ範囲を決定する。このレジスタ範囲には、対応するロボットコントローラ30を制御するための制御プログラムによって参照及び書き換えの少なくとも一方が行われる変数群が格納される。レジスタ範囲を決定するとは、少なくとも先頭レジスタ番号と終了レジスタ番号を決定することである。レジスタ範囲が連番ではなく、複数の範囲にまたがる場合(レジスタ範囲が複数の範囲を含む場合)には、個々の範囲の少なくとも先頭レジスタ番号と終了レジスタ番号を決定することは、レジスタ範囲を決定することに相当する。
本実施形態では、ユーザが先頭レジスタ番号を指定するので、決定部103は、指定された先頭レジスタ番号から、当該先頭レジスタ番号を所定値だけ加算した終了レジスタ番号までの範囲を、レジスタ範囲として決定する。この所定値は、予め定められた数値であればよく、本実施形態では、通信プロファイルの構造体データD1に定義されたオフセットの最後の「4259」であるものとする。
決定部103は、指定されたレジスタ番号と、ロボットコントローラ30と上位制御装置20との間における通信プロファイルで定義されたデータ構造(構造体データD1に定義された構造)と、に基づいて、レジスタ範囲を決定する。決定部103は、指定された先頭レジスタ番号を、構造体データD1に定義されたサイズの分だけ加算させた番号を、終了レジスタ番号として決定する。決定部103は、先頭レジスタ番号から終了レジスタ番号までをレジスタ範囲として決定する。このため、同じ通信プロファイルが指定されていれば、どのロボットコントローラ30についても、レジスタ範囲には「4300」個のレジスタ番号が含まれる。
本実施形態では、上位制御装置20は、複数のロボットコントローラ30を制御可能なので、決定部103は、ロボットコントローラ30ごとに、当該ロボットコントローラ30に対して指定されたレジスタ番号に基づいて、上位制御装置20が当該ロボットコントローラ30の制御で使用するレジスタ範囲を決定する。決定部103は、ロボットコントローラ30の数だけレジスタ範囲を決定する。即ち、決定部103は、n個のロボットコントローラ30にそれぞれ対応するn個のレジスタ範囲を決定する。
[判定部]
判定部104は、決定部103により決定されたレジスタ範囲と、他の目的で使用される他のレジスタ範囲と、が重複しているか否かを判定する。他の目的とは、対応するロボットコントローラ30の制御以外の目的である。例えば、他の目的は、他のロボットコントローラ30の制御、ロボットコントローラ30以外の装置(例えば、上位制御装置20直下の装置)の制御、データ収集装置50に対して送信するデータの収集、データの解析、又はプログラムやパラメータの展開などの目的である。他の目的で使用される他のレジスタ範囲を識別する情報は、データ記憶部100に予め記憶されているものとする。
例えば、判定部104は、決定部103により決定されたレジスタ範囲と、他の目的で使用される他のレジスタ範囲と、が1番でも重複していれば、これらが重複していると判定する。なお、判定部104は、決定部103により決定されたレジスタ範囲と、他の目的で使用される他のレジスタ範囲と、が閾値以上の個数だけ重複している場合に、これらが重複していると判定してもよい。他にも例えば、判定部104は、決定部103により決定されたレジスタ範囲と、他の目的で使用される他のレジスタ範囲と、が重複しているが、重複している部分が予備のレジスタなのであれば、これらが重複していないと判定してもよい。
[出力部]
出力部105は、決定部103により決定されたレジスタ範囲と、他のレジスタ範囲と、が重複していると判定された場合に、所定のアラートを出力する。本実施形態では、図7のウィンドウW11がアラートに相当する。アラートは、視覚的に認識可能な画像であればよく、ウィンドウW11以外の画像であってもよい。例えば、ウィンドウW11とは別に表示されるメッセージ、所定のアイコン、又は画面を点滅させることがアラートに相当してもよい。出力部105は、判定部104により重複していると判定されない場合にはアラートを出力せず、判定部104により重複していると判定されたことに応じて、アラートを出力する。なお、アラートは、スピーカからの音声、バイブレータの振動、又はLEDライトの点滅によって出力されてもよい。また、アラートは、電子メールの送信などの他の方法によって出力されてもよい。
[割当部]
割当部106は、上位制御装置20のレジスタのうち、決定部103により決定されたレジスタ範囲を、ロボットコントローラ30の制御用に割り当てる。レジスタ範囲を割り当てるとは、あるロボットコントローラ30に対応するレジスタ範囲が示すレジスタ番号を、そのロボットコントローラ30の制御のために確保又は予約することである。割当部106により割り当てられたレジスタ範囲は、そのレジスタ範囲に対応するロボットコントローラ30の制御専用の記憶領域になる。
例えば、割当部106は、上位制御装置20のデータ記憶部200に、詳細定義データD2を書き込むことによって、レジスタ範囲の割り当てを行う。レジスタ範囲の割り当ては、他のデータを書き込むことによって行われるようにしてもよい。書き込まれるデータには、少なくとも、ロボットコントローラ30を識別する情報(例えば、IPアドレス又は装置名)と、対応するレジスタ範囲と、が関連付けられていればよい。即ち、ロボットコントローラ30の制御用の変数が格納されたレジスタのレジスタ範囲を定義したデータが上位制御装置20のデータ記憶部200に書き込まれるようにすればよい。上位制御装置20は、自身に書き込まれたデータを参照し、どのロボットコントローラ30にどのレジスタ範囲が割り当てられたかを特定する。
本実施形態では、上位制御装置20が複数のロボットコントローラ30を制御可能なので、割当部106は、ロボットコントローラ30ごとに、当該ロボットコントローラ30に対して決定されたレジスタ範囲を、当該ロボットコントローラ30の制御用に割り当てる。割当部106は、n個のロボットコントローラ30にそれぞれ対応するn個のレジスタ範囲を割り当てる。図10のデータ格納例であれば、割当部106は、「GW00000番」~「GW04259番」のレジスタ範囲を、1台目のロボットコントローラ30の制御用に割り当てる。割当部106は、「GW05000番」~「GW09259番」のレジスタ範囲を、2台目のロボットコントローラ30の制御用に割り当てる。割当部106は、「GW10000番」~「GW14259番」のレジスタ範囲を、3台目のロボットコントローラ30の制御用に割り当てる。
例えば、ロボットコントローラ30には、所定の動作をするためのプログラムが記憶されており、レジスタ範囲には、ロボットコントローラ30のプログラムを呼び出してロボットコントローラ30に実行させるためのコマンドを格納するコマンドエリアのレジスタ番号が含まれている。割当部106は、コマンドエリアのレジスタ番号を含むレジスタ範囲を、ロボットコントローラ30の制御用に割り当てる。プログラムは、装置プログラム又はロボットプログラムのプログラムである。
本実施形態では、図9に示すオフセット「2163番」~「2499番」の全部又は一部のエリアがコマンドエリアに相当する。実施形態のコマンドエリアは、少なくとも1つのコマンドを格納可能なエリアであればよい。例えば、コマンドエリアは、メインコマンドとサブコマンドのように複数のコマンドが格納されるエリアではなく、単一のコマンドが格納されるエリアであってもよい。このコマンドは、装置プログラム又は装置プログラムに含まれる一部の処理(例えば、ロボットプログラム)を呼び出すための情報である。
例えば、レジスタ範囲には、ロボットコントローラ30に対するコマンドを格納するコマンドエリアのレジスタ番号と、コマンドエリアに格納されたコマンドの実行を要求するためのコマンド要求IDを格納するコマンド要求IDエリアのレジスタ番号と、を含む。割当部106は、コマンドエリアのレジスタ番号と、コマンド要求IDエリアのレジスタ番号と、を含むレジスタ範囲を、ロボットコントローラ30の制御用に割り当てる。本実施形態では、コマンド要求IDが格納される「2163番」は、コマンド要求IDエリアに相当する。メインコマンドが格納される「2165番」とサブコマンドが格納される「2166番」とは、コマンドエリアに相当する。
なお、レジスタ範囲は、ロボットコントローラ30の制御に加えて、ロボットコントローラ30の動作に関するモニタリング及びデータ収集の少なくとも一方で使用されてもよい。例えば、割当部106は、決定されたレジスタ範囲を、ロボットコントローラ30の制御と、モニタリング及びデータ収集の少なくとも一方と、のために割り当てる。本実施形態では、これらの両方のためにレジスタ範囲が割り当てられるが、何れか一方のみのレジスタ範囲が割り当てられてもよい。モニタリング用のレジスタ範囲には、ロボット40の動作をセンサで検出した検出結果を示す変数が格納される。データ収集のレジスタ範囲には、ロボットコントローラ30の動作結果やセンタの検出結果を示す変数が格納される。
[3-2.上位制御装置で実現される機能]
図8に示すように、上位制御装置20は、データ記憶部200、レジスタ部201、及び動作制御部202含む。データ記憶部200は、記憶部22を主として実現される。レジスタ部201及び動作制御部202の各々は、CPU21を主として実現される。
[データ記憶部]
データ記憶部200は、ロボットコントローラ30を制御するためのデータを記憶する。例えば、データ記憶部200は、制御プログラムとパラメータを記憶する。また例えば、データ記憶部200は、ファームウェアなどの他のプログラムを記憶してもよいし、データ収集装置50にデータを送信するためのプログラムを記憶してもよい。後述する動作制御部202は、これらのプログラム及びパラメータに基づいて、ロボットコントローラ30を制御する。
また例えば、データ記憶部200は、エンジニアリング装置10により設定された設定内容を記憶する。本実施形態では、エンジニアリング装置10の割当部106によりレジスタの割り当てが行われるので、データ記憶部200は、詳細定義データD2を記憶する。この詳細定義データD2は、エンジニアリング装置10のデータ記憶部100に記憶されるものと同じである。なお、データ記憶部200は、詳細定義データD2のうちの一部だけを記憶してもよい。
[レジスタ部]
レジスタ部201は、エンジニアリング装置10により割りあてられたレジスタ範囲に、複数の変数の各々を記憶する。本実施形態では、レジスタ部201は、CPU21に含まれる複数のレジスタの集まりである場合を説明するが、レジスタ部201は、記憶部22又は他の情報記憶媒体に含まれる複数のレジスタの集まりであってもよい。レジスタ部201は、ロボットコントローラ30の制御用の変数以外の変数を記憶してもよい。レジスタ部201は、割当部106により割り当てられた各ロボットコントローラ30に対応するレジスタ範囲に、当該ロボットコントローラ30の制御用の変数を記憶する。
[動作制御部]
動作制御部202は、複数の変数と制御プログラムとに基づいて、ロボットコントローラ30の動作を制御する。例えば、動作制御部202は、ロボットコントローラ30に対するコマンドを、そのロボットコントローラ30に対応するレジスタ範囲に含まれるレジスタに書き込む。動作制御部202は、データ記憶部200に記録された詳細定義データD2を参照し、どのロボットコントローラ30がどのレジスタ範囲に対応するかを特定し、特定したレジスタ範囲に含まれるレジスタにコマンドを書き込む。レジスタに書き込まれたコマンドは、動作制御部202によりロボットコントローラ30に送信される。
ここでは、1台目のロボットコントローラ30にロボットプログラムを実行させる場合の処理を例に挙げて、動作制御部202の処理を説明する。本実施形態では、ロボットプログラムの選択と、ロボットプログラムの実行と、が別々のコマンドとして用意されている場合を説明するが、これらは1つのコマンドとしてまとめられていてもよい。即ち、ロボットプログラムが選択されてすぐにそのロボットプログラムが実行されてもよい。
図10に示すように、1台目のロボットコントローラ30に対応するレジスタ範囲として、「GW00000番」~「GW04259番」が割り当てられている。動作制御部202は、「GW2165番」のレジスタに、ロボット制御の機能を示す値(例えば、1)をメインコマンドとして書き込む。動作制御部202は、「GW2166番」のレジスタに、ロボットプログラム選択を示す値(例えば、3)をサブコマンドとして書き込む。
動作制御部202は、「GW2167番」~「GW2499番」のうちの一部のレジスタに、ロボットプログラム名と、ロボットプログラムの開始部分と、を書き込む。ロボットプログラムの開始部分は、ロボットプログラムに対応する複数のプログラムコードのうち、実行を開始するプログラムコードを特定するための情報である。ラダー言語でロボットプログラムが作成されるのであれば、ロボットプログラムの開始部分は行番号である。ロボットプログラムの途中ではなく先頭から開始する場合には、開始部分が書き込まれなくてもよい。動作制御部202は、上記の書き込みを終えると、ロボットコントローラ30にロボットプログラムを選択させるために、「GW2163番」のコマンド要求IDをインクリメントする。
以上により、ロボットプログラムを選択するための処理が完了する。動作制御部202は、上記の書き込みを終えると、「GW2042番」~「GW2499番」のレジスタに相当する送信データを送信する。ロボットコントローラ30は、送信データを受信して後述する通信用記憶部301に書き込む。ロボットコントローラ30の実行部302は、通信用記憶部301を参照し、コマンド要求IDがインクリメントされたか否かを判定する。ここでは、コマンド要求IDがインクリメントされているので、実行部302は、メインコマンド及びサブコマンドを実行し、送信データに含まれるロボットプログラム名が示すロボットプログラムを読み出す。開始部分が指定されている場合には、実行部302は、その開始部分以降のロボットプログラムを読み出す。読み出されたロボットプログラムは、データ記憶部300又は通信用記憶部301に展開される。
ロボットコントローラ30の実行部302は、上位制御装置20に対し、メインコマンド及びサブコマンドの実行結果を示す応答データを送信する。この応答データは、図9に示す「0012番」~「2041番」と同じ形式である。例えば、実行部302は、実行したコマンドに対応するコマンド要求ID、メインコマンド、及びサブコマンドと、コマンドが正常に実行されたことを示す戻り値と、を含む応答データを送信する。コマンドが正常に実行されなかった場合には、その旨の戻り値が応答データに含まれる。
動作制御部202は、応答データを受信すると、レジスタ部201に書き込む。動作制御部202は、送信データに含まれるコマンド要求ID、メインコマンド、及びサブコマンドと、応答データに含まれるコマンド要求ID、メインコマンド、及びサブコマンドと、が一致するか否かを判定する。また、動作制御部202は、応答データに含まれる戻り値が正常値を示すか否かを判定する。動作制御部202は、一致の判定と正常値の判定が何れも肯定であった場合に、次の処理に移る。一致の判定と正常値の判定の少なくとも一方が否定であった場合には、次の処理に移らずにエラーとしてもよい。
動作制御部202は、「GW2165番」のレジスタに、ロボット制御の機能を示す値(例えば、1)をメインコマンドとして書き込む。動作制御部202は、「GW2166番」のレジスタに、ロボットプログラム実行を示す値(例えば、5)をサブコマンドとして書き込む。動作制御部202は、「GW2163番」のコマンド要求IDをインクリメントする。なお、ロボットプログラム実行の場合には、「GW2167番」~「GW2499番」のレジスタには、何も書き込まれないものとする。
以上により、ロボットプログラムを実行するための処理が完了する。動作制御部202により、「GW2042番」~「GW2499番」のレジスタに相当する送信データが送信される。先述した流れと同様にして、ロボットコントローラ30の実行部302により、コマンド要求IDがインクリメントされたことが検知され、メインコマンド及びサブコマンドが実行される。1つ前のメインコマンド及びサブコマンドによって、既にロボットプログラムが読み出されているので、実行部302は、読み出し済みのロボットプログラムを実行する。ロボットプログラムの開始部分が指定されている場合には、実行部302は、指定された開始部分からロボットプログラムを実行する。ロボットプログラムが実行されると、先述した流れと同様にして応答データが送信されて、ロボットプログラムが正常に実行されたか否かが判定される。
以上では、1台目のロボットコントローラ30の制御について説明したが、2台目以降のロボットコントローラ30についても同様に制御される。動作制御部202は、あるロボットコントローラ30を制御する場合、レジスタ部201のうち、そのロボットコントローラ30に対応するレジスタ範囲のレジスタの変数を書き換えることにより、そのロボットコントローラ30を制御すればよい。
なお、ロボットコントローラ30の制御方法は、上記の例に限られない。動作制御部202は、メインコマンドとサブコマンドを利用せずに、ロボットコントローラ30を制御してもよい。例えば、動作制御部202は、あるロボットコントローラ30に対応するレジスタ範囲のレジスタに、1つのコマンドを書き込むことによって、そのロボットコントローラ30を制御してもよい。また例えば、あるロボットコントローラ30に対応するレジスタ範囲のレジスタに、そのロボットコントローラ30の装置プログラムの開始条件となる変数を記憶させる場合、動作制御部202は、その変数の値を書き換えることによって、そのロボットコントローラ30に装置プログラムの実行開始を指示してもよい。
また、レジスタ部201に記憶された変数の一部又は全部と、通信用記憶部301に記憶された変数の一部又は全部と、は定期的に整合が取られてもよい。また、上位制御装置20とロボットコントローラ30は、非同期通信のネットワークで接続されていてもよいし、同期通信のネットワークで接続されていてもよい。また例えば、上位制御装置20とロボットコントローラ30との間で定期的にデータの送受信が行われてもよい。
[3-3.ロボットコントローラで実現される機能]
図8に示すように、ロボットコントローラ30は、データ記憶部300、通信用記憶部301、及び実行部302を含む。データ記憶部300は、記憶部32を主として実現される。通信用記憶部301及び実行部302は、CPU31を主として実現される。
[データ記憶部]
データ記憶部300は、ロボットコントローラ30が所定の動作をするために必要なデータを記憶する。例えば、データ記憶部300は、装置プログラムやパラメータを記憶する。また例えば、データ記憶部300は、装置プログラムには含まれないロボットプログラムのプログラムを記憶する。
[通信用記憶部]
通信用記憶部301は、上位制御装置20から受信した複数の変数の各々を記憶する。例えば、通信用記憶部301は、上位制御装置20から受信した受信データに含まれる変数を記憶する。この変数は、レジスタ部201に記憶される変数と同じ値である。通信用記憶部301は、他の変数を記憶してもよい。なお、本実施形態では、通信用記憶部301がCPU31内のレジスタにより実現される場合を説明するが、データ記憶部300と通信用記憶部301を分けずに、データ記憶部300が複数の変数の各々を記憶してもよい。なお、通信用記憶部301のレジスタ体系は、予め定義されているものとする。このレジスタ体系は、原則として固定されており、変更できないものとするが、エンジニアリングツールによって変更可能であってもよい。
[実行部]
実行部302は、データ記憶部300に記憶されたプログラムと、通信用記憶部301に記憶された変数と、に基づいて、所定の処理を実行する。実行部302がコマンドを実行する流れについては、先述した通りである。即ち、実行部302は、通信用記憶部301に記録されたコマンド要求IDがインクリメントされたか否かを判定する。実行部302は、コマンド要求IDがインクリメントされたと判定された場合に、メインコマンドとサブコマンドの組み合わせに基づいて、処理を実行する。メインコマンドとサブコマンドの組み合わせと、実行すべき処理内容と、の関係は、予め定義されているものとする。この定義は、装置プログラムの中で定義されていてもよいし、別途定義ファイルが用意されてデータ記憶部300に記憶されていてもよい。なお、実行部302は、ある装置プログラムの開始条件となる変数が所定の値になったことを検知した場合に、その装置プログラムを実行してもよい。
[3-4.データ収集装置で実現される機能]
図8に示すように、データ収集装置50は、データ記憶部500を含む。データ記憶部500は、記憶部52を主として実現される。データ記憶部500は、上位制御装置20から収集した変数が格納された収集データを記憶する。収集データは、収集対象として指定された変数の値が格納されたデータである。収集データには、ある一時点の変数の値が格納されてもよいし、変数の値の時系列的な変化が格納されてもよい。また、収集データには、1つの変数の値だけが格納されていてもよいし、複数の変数の値が格納されていてもよい。また例えば、データ記憶部500は、収集データの解析プログラムを記憶してもよい。
[4.実施形態の生産システムで実行される処理]
図11は、実施形態の生産システム1で実行される処理の一例を示すフロー図である。本実施形態では、生産システム1で実行される処理のうち、ユーザがエンジニアリングツールを利用して通信設定を行うための処理について説明する。CPU11が記憶部12に記憶されたエンジニアリングツールを実行することによって、図11に示す処理が実行される。図11に示す処理は、図8に示す機能ブロックにより実行される処理の一例である。
図11に示すように、エンジニアリング装置10は、エンジニアリングツールを起動して(S1)、図示しないメニュー画面から詳細定義が選択されると、詳細定義画面G1を表示部15に表示させる(S2)。ここでは、ユーザが新たな通信設定を行う場合を説明する。このため、S2において表示される詳細定義画面G1は、図2のような初期状態になる。
エンジニアリング装置10は、操作部14の検出信号に基づいて、詳細定義画面G1におけるユーザの操作を特定する(S3)。ここでは、システム構成を指定する操作、伝送種別を指定する操作、先頭レジスタ番号を指定する操作、自局ポートを指定する操作、ロボットコントローラ30のIPアドレスを指定する操作、又は詳細定義を保存する操作が行われる場合を説明する。コメントを入力する操作などの他の操作が行われた場合には、当該他の操作に応じた処理が実行されるようにすればよい。
システム構成を指定する操作が行われた場合(S3;システム構成)、エンジニアリング装置10は、ウィンドウW10を表示させて、ユーザが指定したシステム構成と、システム構成に応じた入力フォームF10と、を詳細定義画面G1に表示させ(S4)、伝送種別を指定する操作が行われた場合(S3;伝送種別)、エンジニアリング装置10は、ユーザが指定した伝送種別を詳細定義画面G1に表示させ(S5)、S3の処理に戻る。
先頭レジスタ番号を指定する操作が行われた場合(S3;先頭レジスタ番号)、エンジニアリング装置10は、ユーザが指定した先頭レジスタ番号を詳細定義画面G1に表示させる(S6)。エンジニアリング装置10は、記憶部12に記憶された構造体データD1に基づいて、終了レジスタ番号を詳細定義画面G1に表示させ(S7)、S3の処理に戻る。S7においては、エンジニアリング装置10は、先頭レジスタ番号に対し、構造体データD1に示されたサイズの分だけの値を加算した値を、終了レジスタ番号として取得する。S7の処理は、レジスタ範囲を決定する処理である。
自局ポートを指定する操作が行われた場合(S3;自局ポート)、エンジニアリング装置10は、ユーザが指定した自局ポートを詳細定義画面G1に表示させ(S8)、S3の処理に戻る。ロボットコントローラ30のIPアドレスを指定する操作が行われた場合(S3;IPアドレス)、エンジニアリング装置10は、ユーザが指定したロボットコントローラIPアドレスを詳細定義画面G1に表示させ(S9)、S3の処理に戻る。
詳細定義を保存する操作が行われた場合(S3;保存)、エンジニアリング装置10は、レジスタ範囲が重複するか否かを判定する(S10)。S10においては、エンジニアリング装置10は、ロボットコントローラ30のレジスタ範囲ごとに、他のロボットコントローラ30のレジスタ範囲又は他の目的のレジスタ範囲の何れかに重複するか否かを判定する。どのレジスタ範囲が何の目的で割り当てられているかは、予め記憶部12に記録されているものとする。
レジスタ範囲が重複すると判定された場合(S10;Y)、エンジニアリング装置10は、メッセージを含むウィンドウW11を表示させ(S11)、S3の処理に戻る。レジスタ範囲が重複すると判定されない場合(S10;N)、エンジニアリング装置10は、上位制御装置20のうち、指定されたレジスタ範囲を、ロボットコントローラ30の制御用に割り当てて(S12)、本処理は終了する。
以上説明した生産システム1によれば、上位制御装置20のレジスタのうち、ユーザが所望する任意のレジスタ範囲を、ロボットコントローラ30の制御用に使用に割り当てることができる。上位制御装置20のレジスタのうち、他の目的で所定のレジスタ範囲を使用したい場合には、そのレジスタ範囲を避けるようにしてレジスタ番号を指定することによって、他の目的で所定のレジスタ範囲を使用させることができる。上位制御装置20のレジスタに無駄が生じないようにレジスタ番号を指定することで、レジスタを有効活用できる。レジスタを有効活用することで、上位制御装置20のメモリ容量が小さかったとしても、ロボットコントローラ30の制御で使用するレジスタを確保できる。このため、上位制御装置20のコストを下げることができる。
また、生産システム1は、ロボットコントローラ30の制御用に割り当てるレジスタ範囲のうちの先頭レジスタ番号を指定させることによって、レジスタ範囲を指定しやすくなり、ユーザの利便性が向上する。
また、生産システム1は、ユーザにより指定されたレジスタ番号と、ロボットコントローラ30と上位制御装置20との間における通信プロファイルで定義されたデータ構造と、に基づいてレジスタ範囲を割り当てることによって、ロボットコントローラ30と上位制御装置20との間における通信を正確に行うためのレジスタ範囲を確保することができる。
また、生産システム1は、ロボットコントローラ30の制御で使用されるレジスタ範囲と、他の目的で使用される他のレジスタ範囲と、が重複していると判定された場合に、所定のアラートを出力することによって、これらのレジスタ範囲が重複することを防止できる。その結果、上位制御装置20の動作やロボットコントローラ30の制御に支障が出ることを防止できる。
また、生産システム1は、上位制御装置20が複数のロボットコントローラ30を制御する場合であったとしても、複数のロボットコントローラ30の各々を制御用の任意のレジスタ範囲を割り当てることができ、ユーザの利便性が向上する。
また、生産システム1は、コマンドエリアのレジスタ番号を含むレジスタ範囲を、ロボットコントローラ30の制御用に割り当てることによって、ロボットコントローラ30に記憶されたプログラムを呼び出して実行させるためのコマンドをコマンドエリアに格納し、ロボットコントローラ30に記憶されたプログラムを上位制御装置20から呼び出すことができる。
また、生産システム1は、コマンドエリアのレジスタ番号と、コマンド要求IDエリアのレジスタ番号と、を含むレジスタ範囲を、ロボットコントローラ30の制御用に割り当てることにより、正確なタイミングでロボットコントローラ30にコマンドを実行させることができる。例えば、コマンドを実行させたいタイミングではないにもかかわらず、コマンドエリアにコマンドが格納されたとしても、そのコマンドの実行を要求する情報がコマンド要求IDエリアに格納されていなければ、そのコマンドが実行されないようにすることができ、コマンドが誤って実行されることを防止できる。
また、生産システム1は、ロボットコントローラ30を制御する上位制御装置20のレジスタのうち、任意のレジスタ範囲を、そのロボットコントローラ30の制御と、モニタリング及びデータ収集の少なくとも一方と、のために割り当てることができる。
[5.変形例]
なお、本開示は、以上に説明した実施の形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
(1)例えば、エンジニアリングツールが有する機能は、実施形態で説明したレジスタ割り当ての機能に限られない。エンジニアリングツールは、上位制御装置20が実行する制御プログラムの作成機能を有してもよい。本変形例では、あるロボットコントローラ30の制御用に割り当てられたレジスタ範囲に含まれる変数名を表示させることによって、制御プログラムの作成を支援する機能について説明する。
図12は、変形例(1)における機能ブロック図である。図12に示すように、変形例(1)では、実施形態で説明した機能に加えて、エンジニアリング装置10において作成部107が実現される。作成部107は、制御部11を主として実現される。
本変形例の表示制御部101は、上位制御装置20がロボットコントローラ30を制御するための制御プログラムの作成画面を表示させる。例えば、エンジニアリングツールのメニュー画面から制御プログラムを作成するためのアイコンが指定されると、表示制御部101は、作成画面を表示部15に表示させる。
図13は、作成画面の一例を示す図である。本変形例では、ユーザがラダー言語を利用して制御プログラムを作成する場合の作成画面を例に挙げて説明する。図13に示すように、作成画面G2は、あるロボットコントローラ30の制御プログラムのラダーチャートを記述するための表示領域A1と、そのロボットコントローラ30に対応するレジスタ範囲に記憶された変数を表示させるための表示領域A2と、を含む。
表示領域A1に対する基本的な操作は、プログラムの作成を支援する公知のソフトウェアと同様であってよい。表示制御部101は、ユーザの操作に基づいて、ラダーチャートを表示領域A1に表示させる。本変形例では、上位制御装置20に記憶された変数に対する処理を記述する場合には、その変数の名前を表示領域A2から指定できるようになっている。
図9を参照して説明したように、変数は、階層構造を有する。例えば、表示制御部101は、構造体データD1に基づいて、ツリー型メニューによって各変数の階層名を表示領域A2に表示させる。図13では、ロボットコントローラ30の制御用の変数を「Address」という名称で示す。3台のロボットコントローラ30のレジスタ範囲が割り当てられた場合、「Address」の配下には、3台のロボットコントローラ30の各々のレジスタ範囲に含まれる変数名がツリー状に表示される。なお、表示領域A2には、ロボットコントローラ30の制御用の変数以外の変数も表示される。
図13の例では、1台目のロボットコントローラ30の変数群の名前として、「Data_RC1(GW00000)」の文字列が表示領域A2に表示される。本変形例では、変数群の名前に先頭レジスタ番号が併記される場合を説明するが、先頭レジスタ番号は省略してもよい。変数群の名前は、構造体データD1又は詳細定義データD2に格納されていてもよいし、他のデータに格納されていてもよい。
図13に示すように、「Data_RC1(GW00000)」のツリーを開くと、1台目のロボットコントローラ30の各変数がツリー状に表示される。例えば、「Data_RC1(GW00000)」の直下には、第1階層の名前が表示される。第1階層の名前を開くと、その第1階層に対応する第2階層の名前が表示される。以降同様に、最下層(図9の例では第4層)の名前までツリー状に表示される。ユーザは、任意の階層名を指定してツリーを開くことができる。
例えば、ユーザが第1階層の「CommandData」のツリーを開くと、この階層に対応する第2階層の名前として、「SyncCounter」と「CmdRequest」などの文字列が表示される。ユーザが第2階層の「CmdRequest」のツリーを開くと、この階層に対応する第3階層の名前として、「CmdReqid」、「MainCmd」、「SubCmd」、及び「CmdArea」が表示される。図9に示すように、この階層には、第4階層は存在しない。この階層は、第3階層が最下層なので、第3階層の名前は、変数の名前に相当する。
なお、図13では表示されていないが、表示領域A2を下にスクロールさせると、2台目のロボットコントローラ30の変数群の名前「Data_RC2(GW05000)」と、3台目のロボットコントローラ30の変数群の名前「Data_RC3(GW10000)」と、が表示される。ここでは、1台目のロボットコントローラ30に対応する制御プログラムを作成する場合の手順を例に挙げるが、2台目と3台目のロボットコントローラ30に対応する制御プログラムも同様の手順で作成可能である。
以降、1台目のロボットコントローラ30にロボットプログラムを実行させるための制御プログラムを作成する手順を例に挙げる。実施形態で説明したように、1台目のロボットコントローラ30にロボットプログラムを実行させるには、1台目のロボットコントローラに対応するレジスタ範囲のうち、「GW02165番」のメインコマンドに「1」を書き込み、「GW02166番」のサブコマンドに「5」を書き込んだうえで、「GW02163番」のコマンド要求IDをインクリメントさせる必要がある。表示領域A1には、これらの処理を示すように、ラダーチャートを記述する必要がある。
例えば、ユーザが、表示領域A1の所定の行を指定したうえで、表示領域A2に表示された「MainCmd」を指定すると、表示領域A1の指定された行に、1台目のロボットコントローラ30に対応するメインコマンドの変数名が表示される。図13の例では、この変数名は、第0階層「Data_RC1」、第1階層「CommandData」、第2階層「CmdRequest」、及び第3階層「MainCmd」の各々をピリオドでつないだ文字列とする。ユーザは、表示領域A1に対し、この変数名が示すメインコマンドを1にすることを指定する。これにより、メインコマンドに「1」を書き込む処理の記述が完了する。
また例えば、ユーザが、表示領域A1の所定の行を指定したうえで、表示領域A2に表示された「SubCmd」を指定すると、表示領域A1の指定された行に、1台目のロボットコントローラ30に対応するサブコマンドの変数名が表示される。図13の例では、この変数名は、第0階層「Data_RC1」、第1階層「CommandData」、第2階層「CmdRequest」、及び第3階層「SubCmd」の各々をピリオドでつないだ文字列とする。ユーザは、表示領域A1に対し、この変数名が示すサブコマンドを5にすることを指定する。これにより、サブコマンドに「5」を書き込む処理の記述が完了する。
また例えば、ユーザが、表示領域A1の所定の行を指定したうえで、表示領域A2に表示された「CmdReqid」を指定すると、表示領域A1の指定された行に、1台目のロボットコントローラ30に対応するコマンド要求IDの変数名が表示される。図13の例では、この変数名は、第0階層「Data_RC1」、第1階層「CommandData」、第2階層「CmdRequest」、及び第3階層「CmdReqid」の各々をピリオドでつないだ文字列とする。ユーザは、表示領域A1に対し、この変数名が示すコマンド要求IDをインクリメントすることを指定する。これにより、コマンド要求IDをインクリメントする処理の記述が完了する。
以上の手順により、1台目のロボットコントローラ30にロボットプログラムを実行させるためのラダーチャートの作成が完了する。なお、図13に示すように、ユーザは、制御プログラムの実行を開始させるためのコイルも記述する。例えば、制御プログラムの実行は、制御プログラムに関連付けられた変数を所定の値にすることによって開始されてもよいし、他の方法によって開始されてもよい。
作成部107は、作成画面G2における操作に基づいて、制御プログラムを作成する。例えば、作成部107は、表示領域A1に記述されたラダーチャートに基づいて、制御プログラムを作成する。ラダーチャートから制御プログラムを作成する方法自体は、公知の方法を適用可能である。また、作成部107は、プログラム言語に応じた方法に基づいて、制御プログラムを作成すればよい。例えば、ロボット言語で制御プログラムを作成するのであれば、作成部107は、ユーザが利用するロボット言語に応じた方法で制御プログラムを作成すればよい。
以上のように、本変形例の表示制御部101は、割り当てられたレジスタ範囲に含まれる複数のレジスタ番号の各々に対応する変数名を作成画面G2に表示させる。図13の例では、最下層の名前が変数名に相当する。本変形例では、レジスタ範囲に含まれる複数のレジスタ番号の各々に対応する変数名は、階層構造を有し、表示制御部101は、変数名の階層構造に基づいて、作成画面における変数名をツリー状に表示させる。なお、表示制御部101は、変数名をツリー状に表示させなくてもよい。
作成部107は、作成画面に表示された変数名が指定された場合に、当該指定された変数名に対応するレジスタ番号のレジスタを制御するように、制御プログラムを作成する。レジスタを制御とは、レジスタに記憶された変数の参照及び書き換えの少なくとも一方を行うことである。上記の例では、コマンド要求ID、メインコマンド、及びサブコマンドの各々の値を書き換えることは、レジスタを制御することに相当する。
変形例(1)によれば、制御プログラムの作成画面G2において、ロボットコントローラ30の制御用に割り当てられたレジスタ範囲に含まれる複数のレジスタ番号の各々に対応する変数名を表示させることにより、ユーザに変数名を把握させながら制御プログラムを作成させ、制御プログラムを作成する際のユーザの利便性を向上させることができる。
また、作成画面G2から指定された変数名に対応するレジスタ番号のレジスタを制御するように、制御プログラムが作成されることによって、より簡易な操作によって制御プログラムを作成することができ、ユーザの利便性を向上させることができる。
また、階層構造を有する変数名をツリー状に表示させることによって、より直感的なユーザインタフェースとすることができる。
(2)また例えば、上位制御装置20が複数種類のレジスタを含む場合、受付部102は、複数種類のレジスタのうちの何れかのレジスタ番号の指定を受け付けてもよい。本変形例では、上位制御装置20は、電源をオフにしたときにデータを保持する第1のレジスタと、電源をオフにしたときにデータを保持しない第2のレジスタと、を含む場合を説明する。例えば、第1のレジスタは、揮発性メモリ、又は、バッテリバックアップに対応していないメモリである。また例えば、第2のレジスタは、不揮発性メモリ、又は、バッテリバックアップに対応したメモリである。
例えば、受付部102は、詳細定義画面G1において、第1のレジスタ又は第2のレジスタの指定を受け付ける。レジスタの指定は、任意の操作によって行われてよく、例えば、詳細定義画面G1においてレジスタの名前を指定可能に表示させてもよいし、ユーザが入力した文字列によってレジスタが指定されてもよい。受付部102は、レジスタの指定と、レジスタ番号と、の指定を受け付ける。例えば、先頭レジスタ番号の「GW」の文字がレジスタの種類を意味していてもよい。この場合、レジスタの指定とレジスタ番号の指定が一括で受け付けられる。
本変形例の決定部103は、指定されたレジスタ番号に基づいて、当該レジスタ番号に対応する種類のレジスタのレジスタ範囲を決定する。決定部103の処理は、上位制御装置20の複数のレジスタのうち、ユーザが指定したレジスタのレジスタ範囲が対象になる点で実施形態と異なり、レジスタ範囲の決定方法自体は、実施形態で説明した通りである。
例えば、決定部103は、ユーザが第1のレジスタとレジスタ番号を指定した場合、第1のレジスタのうち、ユーザが指定したレジスタ番号に対応するレジスタ範囲を、ロボットコントローラ30の制御用のレジスタ範囲として決定する。また例えば、決定部103は、ユーザが第2のレジスタとレジスタ番号を指定した場合、第2のレジスタのうち、ユーザが指定したレジスタ番号に対応するレジスタ範囲を、ロボットコントローラ30の制御用のレジスタ範囲として決定する。
割当部106は、複数種類のレジスタのうち、指定されたレジスタ番号に対応する種類のレジスタの決定されたレジスタ範囲を、ロボットコントローラ30の制御用に割り当てる。割当部106の処理は、上位制御装置20の複数のレジスタのうち、ユーザが指定したレジスタのレジスタ範囲が対象になる点で実施形態と異なり、レジスタ範囲の割当方法自体は、実施形態で説明した通りであり、本変形例では、レジスタを識別する情報が上位制御装置20に書き込まれる。上位制御装置20は、レジスタを識別する情報とレジスタ範囲とに基づいて、あるロボットコントローラ30に対応するレジスタとレジスタ範囲を特定する。
例えば、割当部106は、ユーザが第1のレジスタとレジスタ番号を指定した場合、第1のレジスタのうち、ユーザが指定したレジスタ番号に対応するレジスタ範囲を、ロボットコントローラ30の制御用のレジスタ範囲として割り当てる。また例えば、割当部106は、ユーザが第2のレジスタとレジスタ番号を指定した場合、第2のレジスタのうち、ユーザが指定したレジスタ番号に対応するレジスタ範囲を、ロボットコントローラ30の制御用のレジスタ範囲として割り当てる。
変形例(2)によれば、上位制御装置20が複数種類のレジスタを含む場合であったとしても、任意のレジスタの任意のレジスタ範囲を割り当てることができ、ユーザの利便性が向上する。
(3)また例えば、上記変形例を組み合わせてもよい。
また例えば、上記説明した各機能は、生産システム1における任意の装置で実現されるようにすればよい。例えば、データ収集装置50で実現されるものとして説明した機能が上位制御装置20又はロボットコントローラ30によって実現されてもよい。また例えば、上位制御装置20で実現されるものとして説明した機能がデータ収集装置50又はロボットコントローラ30によって実現されてもよい。また例えば、各機能が複数のコンピュータによって分担されるのではなく、1つのコンピュータによって実現されてもよい。
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
1 生産システム、10 エンジニアリング装置、11,21,31,51 CPU、12,22,32,52 記憶部、13,23,33,43 通信部、14,54 操作部、15,55 表示部、20 上位制御装置、24 IoT部、30 ロボットコントローラ、40 ロボット、50 データ収集装置、A1,A2 表示領域、D1 構造体データ、D2 詳細定義データ、G1 詳細定義画面、G2 作成画面、F10 入力フォーム、W10,W11 ウィンドウ、100 データ記憶部、101 表示制御部、102 受付部、103 決定部、104 判定部、105 出力部、106 割当部、107 作成部、200 データ記憶部、201 レジスタ部、202 動作制御部、300 データ記憶部、301 通信用記憶部、302 実行部、500 データ記憶部。

Claims (14)

  1. 1以上の産業装置の制御装置を制御可能な上位制御装置の設定を行うエンジニアリング装置であって、
    前記上位制御装置のレジスタ番号のユーザによる指定を受け付ける受付部と、
    前記ユーザにより指定されたレジスタ番号と、前記制御装置と前記上位制御装置との間における通信プロファイルで定義されたデータ構造に示された構造体のサイズと、に基づいて、前記上位制御装置が前記制御装置の制御で使用するレジスタ範囲を決定する決定部と、
    前記上位制御装置のレジスタのうち、前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる割当部と、
    を有するエンジニアリング装置。
  2. 前記受付部は、先頭レジスタ番号の指定を受け付け、
    前記決定部は、前記指定された先頭レジスタ番号から、当該先頭レジスタ番号よりも前記データ構造に示された構造体のサイズの分だけ後の終了レジスタ番号までの範囲を、前記レジスタ範囲として決定する、
    請求項1に記載のエンジニアリング装置。
  3. 前記エンジニアリング装置は、
    前記決定されたレジスタ範囲と、他の目的で使用される他のレジスタ範囲と、が重複しているか否かを判定する判定部と、
    前記決定されたレジスタ範囲と、前記他のレジスタ範囲と、が重複していると判定された場合に、所定のアラートを出力する出力部と、
    を有する請求項1又は2に記載のエンジニアリング装置。
  4. 前記上位制御装置は、複数の前記制御装置の各々を制御し、
    前記受付部は、前記制御装置ごとに、前記レジスタ番号の指定を受け付け、
    前記決定部は、前記制御装置ごとに、当該制御装置に対して指定された前記レジスタ番号に基づいて、前記上位制御装置が当該制御装置の制御で使用する前記レジスタ範囲を決定し、
    前記割当部は、前記制御装置ごとに、当該制御装置に対して決定された前記レジスタ範囲を、当該制御装置の制御用に割り当てる、
    請求項1~の何れかに記載のエンジニアリング装置。
  5. 前記制御装置には、所定の動作をするためのプログラムが記憶されており、
    前記レジスタ範囲には、前記制御装置の前記プログラムを呼び出して前記制御装置に実行させるためのコマンドを格納するコマンドエリアのレジスタ番号が含まれており、
    前記割当部は、前記コマンドエリアのレジスタ番号を含む前記レジスタ範囲を、前記制御装置の制御用に割り当てる、
    請求項1~の何れかに記載のエンジニアリング装置。
  6. 前記レジスタ範囲には、前記制御装置に対するコマンドを格納するコマンドエリアのレジスタ番号と、前記コマンドエリアに格納されたコマンドの実行を要求するためのコマンド要求情報を格納するコマンド要求情報エリアのレジスタ番号と、を含み、
    前記割当部は、前記コマンドエリアのレジスタ番号と、前記コマンド要求情報エリアのレジスタ番号と、を含む前記レジスタ範囲を、前記制御装置の制御用に割り当てる、
    請求項1~の何れかに記載のエンジニアリング装置。
  7. 前記レジスタ範囲は、前記制御装置の制御に加えて、前記制御装置の動作に関するモニタリング及びデータ収集の少なくとも一方で使用され、
    前記割当部は、前記決定されたレジスタ範囲を、前記制御装置の制御と、前記モニタリング及び前記データ収集の少なくとも一方と、のために割り当てる、
    請求項1~の何れかに記載のエンジニアリング装置。
  8. 前記エンジニアリング装置は、
    前記上位制御装置が前記制御装置を制御するための制御プログラムの作成画面を表示させる表示制御部と、
    前記作成画面における操作に基づいて、前記制御プログラムを作成する作成部と、
    を更に有し、
    前記表示制御部は、前記割り当てられたレジスタ範囲に含まれる複数のレジスタ番号の各々に対応する変数名を前記作成画面に表示させる、
    請求項1~の何れかに記載のエンジニアリング装置。
  9. 前記作成部は、前記作成画面に表示された変数名が指定された場合に、当該指定された変数名に対応するレジスタ番号のレジスタを制御するように、前記制御プログラムを作成する、
    請求項に記載のエンジニアリング装置。
  10. 前記レジスタ範囲に含まれる複数のレジスタ番号の各々に対応する変数名は、階層構造を有し、
    前記表示制御部は、前記変数名の階層構造に基づいて、前記作成画面における変数名をツリー状に表示させる、
    請求項又はに記載のエンジニアリング装置。
  11. 前記上位制御装置は、複数種類のレジスタを含み、
    前記受付部は、前記複数種類のレジスタのうちの何れかのレジスタ番号の指定を受け付け、
    前記決定部は、前記指定されたレジスタ番号に基づいて、当該レジスタ番号に対応する種類のレジスタの前記レジスタ範囲を決定し、
    前記割当部は、前記複数種類のレジスタのうち、前記指定されたレジスタ番号に対応する種類のレジスタの前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる、
    請求項1~10の何れかに記載のエンジニアリング装置。
  12. 1以上の産業装置の制御装置を制御可能な上位制御装置の設定を行うエンジニアリング方法であって、
    前記上位制御装置のレジスタ番号のユーザによる指定を受け付け、
    前記ユーザにより指定されたレジスタ番号と、前記制御装置と前記上位制御装置との間における通信プロファイルで定義されたデータ構造に示された構造体のサイズと、に基づいて、前記上位制御装置が前記制御装置の制御で使用するレジスタ範囲を決定し、
    前記上位制御装置のレジスタのうち、前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる、
    エンジニアリング方法。
  13. 1以上の産業装置の制御装置を制御可能な上位制御装置の設定を行うエンジニアリング装置を、
    前記上位制御装置のレジスタ番号のユーザによる指定を受け付ける受付部、
    前記ユーザにより指定されたレジスタ番号と、前記制御装置と前記上位制御装置との間における通信プロファイルで定義されたデータ構造に示された構造体のサイズと、に基づいて、前記上位制御装置が前記制御装置の制御で使用するレジスタ範囲を決定する決定部、
    前記上位制御装置のレジスタのうち、前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる割当部、
    として機能させるためのプログラム。
  14. 1以上の産業装置の制御装置を制御可能な上位制御装置の設定を行うエンジニアリング装置であって、
    前記上位制御装置のレジスタ番号の指定を受け付ける受付部と、
    前記指定されたレジスタ番号に基づいて、前記上位制御装置が前記制御装置の制御で使用するレジスタ範囲を決定する決定部と、
    前記上位制御装置のレジスタのうち、前記決定されたレジスタ範囲を、前記制御装置の制御用に割り当てる割当部と、
    前記上位制御装置が前記制御装置を制御するための制御プログラムの作成画面を表示させる表示制御部と、
    前記作成画面における操作に基づいて、前記制御プログラムを作成する作成部と、を有し、
    前記表示制御部は、前記割り当てられたレジスタ範囲に含まれる複数のレジスタ番号の各々に対応し階層構造を有する変数名を、前記作成画面に前記変数名の階層構造に基づいてツリー状に表示させる、
    エンジニアリング装置。
JP2020113004A 2020-06-30 2020-06-30 エンジニアリング装置、エンジニアリング方法、及びプログラム Active JP7147808B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020113004A JP7147808B2 (ja) 2020-06-30 2020-06-30 エンジニアリング装置、エンジニアリング方法、及びプログラム
EP21180828.2A EP3933523A1 (en) 2020-06-30 2021-06-22 Engineering device, engineering method, and program
CN202110723414.7A CN113867274B (zh) 2020-06-30 2021-06-28 工程设备、工程方法和信息存储介质
US17/359,663 US12085904B2 (en) 2020-06-30 2021-06-28 Engineering device, engineering method, and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020113004A JP7147808B2 (ja) 2020-06-30 2020-06-30 エンジニアリング装置、エンジニアリング方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2022011696A JP2022011696A (ja) 2022-01-17
JP7147808B2 true JP7147808B2 (ja) 2022-10-05

Family

ID=76553589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020113004A Active JP7147808B2 (ja) 2020-06-30 2020-06-30 エンジニアリング装置、エンジニアリング方法、及びプログラム

Country Status (4)

Country Link
US (1) US12085904B2 (ja)
EP (1) EP3933523A1 (ja)
JP (1) JP7147808B2 (ja)
CN (1) CN113867274B (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189536A1 (en) 2006-09-29 2008-08-07 Rockwell Automation Technologies, Inc. Interoperably configurable HMI system and method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249715A (ja) * 1998-02-26 1999-09-17 Yaskawa Electric Corp シーケンスプログラムの自動生成方法とモーションコントローラ
US6952811B1 (en) * 1998-07-30 2005-10-04 Mitsubishi Denki Kabushiki Kaisha Ladder circuit editing system
JP3691986B2 (ja) 1999-07-09 2005-09-07 株式会社東芝 プログラマブルコントローラ
JP5810563B2 (ja) 2011-03-15 2015-11-11 オムロン株式会社 制御プログラム開発支援装置、制御プログラム開発支援用プログラム及び記録媒体
JP5899805B2 (ja) * 2011-10-28 2016-04-06 株式会社ジェイテクト プログラマブルコントローラの周辺装置
JP6008265B2 (ja) 2013-05-30 2016-10-19 インテル・コーポレーション パイプライン化されたスケジュールにおけるエイリアスレジスタ割り当て
US9323664B2 (en) * 2013-07-23 2016-04-26 Intel Corporation Techniques for identifying read/write access collisions for a storage medium
JP2017027259A (ja) * 2015-07-17 2017-02-02 株式会社安川電機 機械制御プログラム作成装置、コンピュータプログラム、機械制御プログラム中のレジスタへの参照の入れ替え方法及びコンピュータにより実行可能な電子データ作成装置
JP6161752B2 (ja) 2016-03-04 2017-07-12 株式会社日立製作所 制御コントローラ及びそのプログラミング方法
JP6408044B2 (ja) * 2017-01-25 2018-10-17 ファナック株式会社 プログラマブルコントローラ
JP6757386B2 (ja) * 2018-10-23 2020-09-16 株式会社キーエンス プログラマブルロジックコントローラおよびプログラム作成支援装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189536A1 (en) 2006-09-29 2008-08-07 Rockwell Automation Technologies, Inc. Interoperably configurable HMI system and method

Also Published As

Publication number Publication date
CN113867274A (zh) 2021-12-31
US20210405597A1 (en) 2021-12-30
EP3933523A1 (en) 2022-01-05
US12085904B2 (en) 2024-09-10
CN113867274B (zh) 2024-07-23
JP2022011696A (ja) 2022-01-17

Similar Documents

Publication Publication Date Title
EP1351108B1 (en) Method and apparatus for programming
JP5810563B2 (ja) 制御プログラム開発支援装置、制御プログラム開発支援用プログラム及び記録媒体
US6725288B2 (en) System for transmitting data between a device data area and a variable data area of a memory according to a memory map based on an identifying data of a device detected
JP6372308B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体
US11165745B2 (en) Control system, controller, and control method
WO2019176336A1 (ja) 制御システム、開発支援装置、および開発支援プログラム
JP7147808B2 (ja) エンジニアリング装置、エンジニアリング方法、及びプログラム
CN107465620B (zh) 一种通用数据路由器及其通信方法
JP4462426B2 (ja) Plc用ツール装置
JP7276265B2 (ja) 生産システム、上位制御装置、制御装置、通信方法、及びプログラム
JP2005259079A (ja) ツール
JP2006302216A (ja) 表示装置、画面データ作成装置及び画面表示システム
JP2011175351A (ja) 画面データ作成装置、画面データ作成方法、及び画面データ作成プログラム
JP2003131709A (ja) 制御表示装置、制御プログラムおよびそれを記録した記録媒体
JP3345361B2 (ja) 制御装置
JP3939518B2 (ja) 入出力アドレス設定装置、入出力アドレス設定プログラムおよびそれを記録した記録媒体
JP2003271209A (ja) 制御装置並びに拡張機器及びプログラミングツール
JP5492573B2 (ja) トレース機能を備える接続機器シミュレータ装置、方法、及びプログラム
JP2000242313A (ja) アドレス自動割付方法および装置
JP4001458B2 (ja) タグ名共有化装置、タグ名共有化方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP7147807B2 (ja) エンジニアリング装置、上位制御装置、エンジニアリング方法、処理実行方法、及びプログラム
JPWO2014112059A1 (ja) プログラマブルコントローラシステム、プログラマブル表示器、支援装置、プログラム
JP6874814B2 (ja) 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム
JP4414050B2 (ja) データ作成装置、データ作成方法、データ作成プログラムを記録した記録媒体および表示装置
JP2007252162A (ja) 電動機駆動装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220905

R150 Certificate of patent or registration of utility model

Ref document number: 7147808

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150