JP7294078B2 - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- JP7294078B2 JP7294078B2 JP2019204825A JP2019204825A JP7294078B2 JP 7294078 B2 JP7294078 B2 JP 7294078B2 JP 2019204825 A JP2019204825 A JP 2019204825A JP 2019204825 A JP2019204825 A JP 2019204825A JP 7294078 B2 JP7294078 B2 JP 7294078B2
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- control
- variable
- program
- control device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13069—Execute bit operation during instruction fetch cycle for word operation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23328—Modification program
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25174—Ethernet
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Programmable Controllers (AREA)
Description
本発明は、複数の制御対象を制御するための制御装置に関する。
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。このような制御装置は、直接的に制御対象を制御するだけではなく、他の装置に制御指令を与えることで、間接的に制御対象を制御する場合もある。また、これまで複数の専用装置を用いて実現されていた制御システムを、より少ない数の制御装置に統合したいというニーズも生じている。例えば、特許文献1に示す技術では、PLCのCPUユニットにおいて、モーション演算プログラムおよびユーザプログラムが同期して実行される。
また、特許文献2では、実行形式の異なる複数種類のプログラムに従う制御演算を単一の制御装置で実現する技術が開示されている。当該技術では、例えば、制御周期毎にプログラム全体が実行される形式のプログラムと、一部の解釈により生成される中間コードに従って逐次実行される形式のプログラムとに関して、それぞれの指令値演算を行い、制御周期毎に各指令値を併せて出力する構成が採用されている。
複数の制御対象を制御するために、実行形式の異なる複数種類のプログラムに従う制御演算が行われる場合、それぞれの制御演算で使用される変数は、当該制御演算に応じて適宜設定されるのが一般的である。したがって、それぞれの制御演算が、異なる制御装置で行われる場合には、一方の制御装置による制御演算において、他方の制御装置が使用する変数にアクセスする必要があるときは、異なる制御装置間において当該変数にアクセスするための通信処理を行う必要がある。その結果、ユーザは、複数の制御対象を同時に制御するためには、各制御対象を制御するための制御演算を実行するプログラムを、その種類に従って作成する必要があるとともに、両プログラム(両制御装置)間での変数(データ)の通信に関する処理プログラムを作成する必要があった。
また、複数の制御対象を制御するために、実行形式の異なる複数種類のプログラムに従う制御演算が単一の制御装置で行われる場合であっても、種類の異なるプログラム間での演算処理のための変数のやり取りについて、具体的な構成は十分に検討されていない。すなわち、従来技術においては、異なる種類のプログラムにおいて制御演算のための変数を共有する場合、どのように共有すべきかについては十分な検討が為されていない。そのため、異なる制御対象を単一の制御装置で行う場合であっても、ユーザによるプログラム生成の負荷は十分に軽減されていない。
本発明は、このような問題に鑑みてなされたものであり、実行形式の異なる複数種類のプログラムに従う制御演算が単一の制御装置で行われる場合であっても、ユーザのプログラム生成の負荷を軽減し得る技術を提供することを目的とする。
本発明においては、上記課題を解決するために、実行形式の異なる複数種類のプログラムの実行を単一の制御装置で可能とした上で、それぞれのプログラムで使用可能な変数を一方のプログラム側で保持し、他方のプログラムはその一方のプログラムを介して当該変数にアクセスする構成を採用した。当該構成の採用により、ユーザによる当該変数の管理が容易となり、ユーザのプログラム生成の負荷が軽減される。
具体的に、本発明は、実行毎に全体が実行される第1の実行形式に従ったプログラムと、逐次実行される第2の実行形式に従ったプログラムと、を有する制御装置であって、予め定められた制御周期毎に前記第1の実行形式に従ったプログラムを実行して第1の制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、前記第2の実行形式に従ったプログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に第2の制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、前記第1の指令値および前記第2の指令値を前記制御周期毎に出力する出力部と、を備える。そして、当該制御装置において、前記第1処理部と前記第2処理部のうちいずれか一方の処理部が、該第1処理部による演算と該第2処理部による演算の両方において使用可能な所定変数を保持し、該第1処理部と該第2処理部のうち他方の処理部は、該一方の処理部を介して該所定変数にアクセス可能に構成される。
上記の制御装置は、実行形式の種類が異なるプログラムである、第1の実行形式に従ったプログラムと第2の実行形式に従ったプログラムを有している。前者の実行形式は、その実行毎にプログラム全体が実行される形式であり、後者の実行形式は逐次実行の形式である。このように異なる実行形式のプログラムが利用可能となることで、ユーザは、制御対象の制御に適したプログラムを適宜選択でき制御装置の利便性が高められる。
そして、第1処理部が、制御周期毎に第1の実行形式に従ったプログラムを実行しそれに基づく第1の指令値を演算する。また、第2処理部は、インタプリタの解釈を経て生成される中間コードに従って制御周期毎に第2の実行形式に従ったプログラムに基づく第2の指令値を演算するように構成される。そして、出力部により第1の指令値と第2の指令値とが出力されることで、異なる実行形式のプログラムに基づいた各指令値を同期して出力することができる。
このように構成される制御装置において、第1処理部と第2処理部のうちいずれか一方の処理部が、該第1処理部による演算と該第2処理部による演算の両方において使用される所定変数を保持するように構成される。すなわち、所定変数については両処理部が使用するものでありながら、一方の処理部のみが保持している。その上で、所定変数を保持していない、第1処理部と該第2処理部のうち他方の処理部は、自己の演算に当該所定変数が必要な場合には、当該所定変数を保持している一方の処理部を介して、当該所定変数にアクセスする。この結果、他方の処理部も、当該所定変数を使用して自己の演算を実現できる。このとき、第1処理部と第2処理部は、単一の制御装置において形成されているため、ユーザは第1処理部と第2処理部との間のデータのやり取りを制御するプログラムを準備する必要は無く、ユーザの負荷軽減が図られる。
ここで、一例として、前記一方の処理部は前記第1処理部であり、前記他方の処理部は前記第2処理部であってもよい。また別法として、前記一方の処理部は前記第2処理部であり、前記他方の処理部は前記第1処理部であってもよい。
また、上述までの制御装置において、前記所定変数は、前記一方の処理部による演算と前記他方の処理部による演算とにおいて、同一の変数名に設定されてもよい。この場合、
前記他方の処理部によって前記所定変数を使用するとき、該他方の処理部は、前記一方の処理部において該所定変数と同一の変数名を有する変数の値を該所定変数の値として使用してもよい。すなわち、所定変数について、一方の処理部と他方の処理部とで変数名を同一にすることで、その変数名を利用して両処理部間の所定変数のやり取りが行われる。
前記他方の処理部によって前記所定変数を使用するとき、該他方の処理部は、前記一方の処理部において該所定変数と同一の変数名を有する変数の値を該所定変数の値として使用してもよい。すなわち、所定変数について、一方の処理部と他方の処理部とで変数名を同一にすることで、その変数名を利用して両処理部間の所定変数のやり取りが行われる。
また、別法として、上述までの制御装置において、前記一方の処理部による演算における前記所定変数の第1変数名と、前記他方の処理部による演算における前記所定変数の第2変数名とは異なり、前記第1変数名と前記第2変数名との相関を画定する相関情報が保持されてもよい。この場合、前記他方の処理部によって前記所定変数として前記第2変数名の変数を使用するとき、該他方の処理部は、前記相関情報に基づいて該第2変数名に関連付けられた前記第1変数名の変数の値を該所定変数の値として使用してもよい。すなわち、所定変数について、一方の処理部と他方の処理部とで変数名は異なるものの変数名に関する相関情報が制御装置に保持されることで、その相関情報に基づいて両処理部間の所定変数のやり取りが行われる。
実行形式の異なる複数種類のプログラムに従う制御演算が単一の制御装置で行われる場合であっても、ユーザのプログラム生成の負荷を軽減し得る。
<適用例>
実施形態に係る制御装置の適用例について、図1及び図2に基づいて説明する。図1は、当該制御装置100が適用される制御システム1の概略構成図であり、図2は、制御装置100に形成される機能部をイメージ化した図である。
実施形態に係る制御装置の適用例について、図1及び図2に基づいて説明する。図1は、当該制御装置100が適用される制御システム1の概略構成図であり、図2は、制御装置100に形成される機能部をイメージ化した図である。
制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータである。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器と接続されてもよい。フィールド機器は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報をやり取りする入出力装置などを含み、図1においては、フィールド機器として、ロボット210や、サーボドライバ220及びモータ222が例示されている。サーボドライバ220は、制御装置100からの指令値(例えば、位置指令や速度指令など)に従って、モータ222を駆動する。また、ロボット210としては、パラレルロボット、スカラロボット、多関節ロボットが例示できる。このように制御装置100は、ロボット210やサーボドライバ220及びモータ222を統合的に制御し得るように構成された制御装置であり、その詳細については後述する。
制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器との間でデータをやり取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、本願においては、「フィールドネットワーク」と総称する。制御装置100は、各種のフィールド機器において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、フィールド機器に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のフィールド機器へ送信する処理(出力処理)等を行う。
ここで、フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)等が知られている。そして、フィールドネットワーク2を介して、制御装置100とフィールド機器との間でやり取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このようなやり取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
また、制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置10が接続されてもよい。サーバ装置10としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。
ここで、図2に基づいて、制御装置100の構成について説明する。制御装置100は、上記の通り所定の制御演算を実行する一種のコンピュータであり、当該制御演算に必要なプロセッサやメモリを備えている。当該プロセッサは、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサとしては、複数のコアを有する構成を採用してもよいし、当該プロセッサを複数配置してもよい。当該メモリとしては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置や、HD
D(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。そして、プロセッサは、メモリに格納された各種プログラムを読出して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。メモリには、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム(IECプログラム51およびアプリケーションプログラム52)が格納される。
D(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。そして、プロセッサは、メモリに格納された各種プログラムを読出して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。メモリには、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム(IECプログラム51およびアプリケーションプログラム52)が格納される。
なお、本願におけるIECプログラム51とは、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が演算されるプログラムであり、典型的には、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規
格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。IECプログラム51には、シーケンス制御およびモーション制御の命令が含まれる。このようなIECプログラム51は、制御周期毎にすべてのプログラムが実行(スキャン)される実行形式に対応するものであり、即時性および高速性が要求される制御に好適である。一方で、本願におけるアプリケーションプログラム52は、ロボットを用いて特定の加工や動作を行うための制御プログラムであり、ロボットによる制御アプリケー
ションを実現するための1または複数の命令からなるプログラムを包含し、IECプログラム51とは区別される。ロボット制御に関するアプリケーションプログラム52は、一例として、ロボット言語を用いて記述され、1行ずつ逐次実行されるインタプリタ方式が採用される。
格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。IECプログラム51には、シーケンス制御およびモーション制御の命令が含まれる。このようなIECプログラム51は、制御周期毎にすべてのプログラムが実行(スキャン)される実行形式に対応するものであり、即時性および高速性が要求される制御に好適である。一方で、本願におけるアプリケーションプログラム52は、ロボットを用いて特定の加工や動作を行うための制御プログラムであり、ロボットによる制御アプリケー
ションを実現するための1または複数の命令からなるプログラムを包含し、IECプログラム51とは区別される。ロボット制御に関するアプリケーションプログラム52は、一例として、ロボット言語を用いて記述され、1行ずつ逐次実行されるインタプリタ方式が採用される。
そして、図2に示すように、制御装置100は、制御アプリケーション処理部30と、IECプログラム処理部40と、上位ネットワークインターフェイス20と、下位ネットワークインターフェイス60と、を有する。下位ネットワークインターフェイス60は、IECプログラム処理部40および制御アプリケーション処理部30と、フィールドネットワーク2を介して接続されているフィールド機器との間のデータのやり取りを仲介する。上位ネットワークインターフェイス20は、IECプログラム処理部40および制御アプリケーション処理部30と、上位ネットワーク6を介して接続されているサーバ装置10との間のデータのやり取りを仲介する。例えば、制御装置100は、上位ネットワーク6を介して接続されているサーバ装置10から、生産の開始/終了といった指示を受ける。サーバ装置10は、制御アプリケーションを動作させるためのアプリケーションプログラムおよびレシピ情報(生産に適したパラメータなどの情報)などを制御装置100に送信することもある。
IECプログラム処理部40は、予め定められた制御周期毎にIECプログラム51を実行(スキャン)して1または複数の指令値を演算する。すなわち、IECプログラム処理部40は、IECプログラム51に従って、制御周期毎に指令値を演算する。なお、本願では、モータ222を含んで構成される所定の装置を制御するためにIECプログラム51の実行が行われるものとする。そして、モーション処理部42は、IECプログラム51に含まれるモーション命令に従って、制御周期毎に指令値を演算する機能を提供する。すなわち、IECプログラム51に含まれるモーション命令は、複数の制御周期に亘る挙動を指示する命令(例えば、モータ222で構成される所定の装置の出力が何らかの軌道を描くための命令)を含む。このようなモーション命令が実行されると、実行されたモーション命令の指示内容に従って、モーション処理部42が制御周期毎に指令値を演算する。すなわち、モーション処理部42は、上記の所定の装置に対して制御周期毎に指令値を出力することで、モーション命令により指示された挙動を実現する。
また、IECプログラム処理部40は、共有メモリ41を有している。共有メモリ41は、モーション処理部42による指令値の演算処理に使用される所定の変数に関するデータ(変数データ)を保持している。したがって、IECプログラム処理部40は、所定の装置の挙動を制御するための指令値演算に際して、適時、共有メモリ41へのアクセスを行う。また、この共有メモリ41に保持されている変数データは、後述する制御アプリケーション処理部30からもアクセス可能に構成されており、その詳細については後述する。また、共有メモリ41には、上述した指令値演算のための変数データ以外のデータが格納されてもよい。例えば、本願開示では、IECプログラム処理部40による処理結果の一部または全部が共有メモリ41に格納され、制御アプリケーション処理部30は、IECプログラム処理部40の共有メモリ41に格納されたデータを参照することができる。また、制御アプリケーション処理部30からIECプログラム処理部40の共有メモリ41へのデータ書込みも可能であってもよく、このように制御アプリケーション処理部30から書込まれたデータは、モーション処理部42から参照可能とされる。
次に、制御アプリケーション処理部30は、アプリケーションプログラム52およびレシピ情報などに基づいて、制御アプリケーションを制御するための指令値を演算する。なお、本願では、ロボット210を制御するためにアプリケーションプログラム52が制御アプリケーション処理部30によって実行されるものとする。制御アプリケーション処理部30は、IECプログラム処理部40による指令値の演算および出力と同期して、制御
アプリケーション用の指令値を演算および出力する。すなわち、制御アプリケーション処理部30は、IECプログラム処理部40による演算処理と同期して、ロボット210を制御するための指令値の演算処理を実行する。なお、このIECプログラム処理部40と制御アプリケーション処理部30の同期処理については、後述する。IECプログラム処理部40による指令値の演算処理と同期した指令値の演算を実現するために、制御アプリケーション処理部30は、モーション処理部32と、バッファ33と、インタプリタ34とを含む。
アプリケーション用の指令値を演算および出力する。すなわち、制御アプリケーション処理部30は、IECプログラム処理部40による演算処理と同期して、ロボット210を制御するための指令値の演算処理を実行する。なお、このIECプログラム処理部40と制御アプリケーション処理部30の同期処理については、後述する。IECプログラム処理部40による指令値の演算処理と同期した指令値の演算を実現するために、制御アプリケーション処理部30は、モーション処理部32と、バッファ33と、インタプリタ34とを含む。
インタプリタ34は、逐次アプリケーションプログラム52の少なくとも一部を解釈して中間コードを生成するとともに、生成した中間コードを格納するバッファ33を有する。本願における中間コードは、制御周期毎に指令値を演算するための命令を包含する概念であり、1または複数の命令、あるいは、1または複数の関数を含んでもよい。そして、モーション処理部32は、インタプリタ34が事前に生成しバッファ33に格納されている中間コードに従って、制御周期毎に指令値を演算する。一般的に、アプリケーションプログラム52に記述される命令(コード)は、逐次実行されるために、指令値の演算周期を保証できないが、本願開示では、このように中間コードを利用することで、モーション処理部32は、制御周期毎に指令値を演算できるようになる。中間コードにおいて記述される命令には、各制御アプリケーションに応じた座標系が用いられてもよい。
また、制御アプリケーション処理部30は、必要に応じて、モーション処理部32による、ロボット210の制御のための指令値の演算処理のために、適時、共有メモリ41にアクセス可能に構成されている。例えば、モータ222を含む所定の装置とロボット210とを同期制御する際に、当該所定の装置の動きに対応させてロボット210の動きを決定する必要がある場合には、モーション処理部32による演算処理において当該所定の装置に関連する変数であり、共有メモリ41に保持されている変数データを使用する必要がある。このような場合には、制御アプリケーション処理部30は、IECプログラム処理部40を介して共有メモリ41にアクセスし、当該変数データを取得する。
制御アプリケーション処理部30による共有メモリ41内の変数データの具体的な態様について説明する。第1の形態では、IECプログラム処理部40による指令値演算で使用される変数名と、制御アプリケーション処理部30による指令値演算で使用される変数名とが同一に設定される。この場合、制御アプリケーション処理部30においてモーション処理部32による演算処理が行われる際に、アプリケーションプログラム52に含まれる変数と同一名の変数の値を返すように、制御アプリケーション処理部30からIECプログラム処理部40に対して問合せ処理が行われる。問合せられたIECプログラム処理部40は、同一名の変数が共有メモリ41内に保持されている場合には、当該変数の変数データを制御アプリケーション処理部30に対して返答する。この結果、モーション処理部32による演算処理が継続される。なお、同一名の変数が共有メモリ41内に保持されていない場合には、IECプログラム処理部40は、エラー信号を制御アプリケーション処理部30に対して返答する。
また、第2の形態では、IECプログラム処理部40による指令値演算で使用される変数名と、制御アプリケーション処理部30による指令値演算で使用される変数名とは、異なる変数名で設定される。その上で、IECプログラム処理部40側の変数名と制御アプリケーション処理部30側の変数名との相関を画定するテーブル(図3を参照)が、制御アプリケーション処理部30に保持されている。この場合、制御アプリケーション処理部30においてモーション処理部32による演算処理が行われる際に、アプリケーションプログラム52に含まれる変数(図3における「制御アプリケーション処理部側の変数」)に対応する、共有メモリ41に保持されている変数(図3における「IECプログラム処理部側の変数」)を特定し、その特定された変数の値を返すように、制御アプリケーショ
ン処理部30からIECプログラム処理部40に対して問合せ処理が行われる。問合せ後の返答については、第1の形態と同様である。
ン処理部30からIECプログラム処理部40に対して問合せ処理が行われる。問合せ後の返答については、第1の形態と同様である。
このように共有メモリ41を介して、IECプログラム処理部40と制御アプリケーション処理部30との間で、指令値演算のための変数を共有する形態を採用することで、ユーザは、所定の装置とロボット210とを同期制御するにあたって、IECプログラム処理部40と制御アプリケーション処理部30との間のデータのやり取りを制御するプログラムを別途準備する必要は無くなり、以て、ユーザの負荷軽減が図られる。
<プログラムの同期実行>
制御装置100においては、IECプログラム51とアプリケーションプログラム52の同期実行が実現される。制御アプリケーション処理部30のインタプリタ34は、制御周期より長い周期、例えば、制御周期の2倍分の周期毎にアプリケーションプログラム52を逐次実行する。ただし、IECプログラム処理部40のモーション処理部42および制御アプリケーション処理部30のモーション処理部32は、いずれも同一の制御周期毎に指令値を演算する。したがって、制御装置100からの指令値の出力は、いずれも予め定められた制御周期で同期して行われる。このように、IECプログラム処理部40および制御アプリケーション処理部30は、アクチュエータの動きを連続的に制御するためのモーション処理部をそれぞれ有しており、これらのモーション処理部が同期して指令値を演算することで、IECプログラム51に従う制御およびアプリケーションプログラム52に従う制御の両方を制御周期と同期させて実行することができ、これによって制御周期単位での精密な制御が実現される。
制御装置100においては、IECプログラム51とアプリケーションプログラム52の同期実行が実現される。制御アプリケーション処理部30のインタプリタ34は、制御周期より長い周期、例えば、制御周期の2倍分の周期毎にアプリケーションプログラム52を逐次実行する。ただし、IECプログラム処理部40のモーション処理部42および制御アプリケーション処理部30のモーション処理部32は、いずれも同一の制御周期毎に指令値を演算する。したがって、制御装置100からの指令値の出力は、いずれも予め定められた制御周期で同期して行われる。このように、IECプログラム処理部40および制御アプリケーション処理部30は、アクチュエータの動きを連続的に制御するためのモーション処理部をそれぞれ有しており、これらのモーション処理部が同期して指令値を演算することで、IECプログラム51に従う制御およびアプリケーションプログラム52に従う制御の両方を制御周期と同期させて実行することができ、これによって制御周期単位での精密な制御が実現される。
次に、制御装置100におけるIECプログラム51およびアプリケーションプログラム52の実行タイミングの詳細について、図4に基づいて説明する。図4は、制御装置100におけるプログラムの実行タイミングの一例を示す図である。なお、制御装置100においては、プロセッサのリソースを考慮して、優先度が高い高優先度タスク(図4中の上段の処理)と優先度が低い低優先度タスク(図4中の下段の処理)が設定されている。具体的には、下位ネットワークインターフェイス60、IECプログラム処理部40とそのモーション処理部42の実行、および制御アプリケーション処理部30のモーション処理部32の実行は、高優先度タスクとして設定され、制御アプリケーション処理部30のインタプリタ34の実行は低優先度タスクとして設定されている。
すなわち、下位ネットワークインターフェイス60に関連する入出力リフレッシュ処理B60、IECプログラム51の実行処理B40、IECプログラム51に従ってモーション処理部42によって行われる指令値の演算処理B42、アプリケーションプログラム52に従ってモーション処理部32によって行われる指令値の演算処理B32は、高優先度タスクとして実行される。一方、アプリケーションプログラム52を逐次解釈する処理B34は、低優先度タスクとして実行される。
ここで、高優先度タスクは、予め定められた制御周期T1毎に繰返し実行される。低優先度タスクは、各制御周期内で高優先度タスクが実行されていない期間に都度実行される。すなわち、制御周期毎に、高優先度タスクの実行時間が割当てられ、高優先度タスクの実行時間以外の時間において、低優先度タスクが実行される。
まず、高優先度タスクについて説明すると、各制御周期が到来すると、入出力リフレッシュ処理B60が実行された後、IECプログラム処理部40によりIECプログラム51の全体が実行(スキャン)されて、シーケンス制御についての1または複数の指令値が演算される(実行処理B40)。併せて、モーション処理部42によりIECプログラム51に含まれるモーション命令に関するモーション処理が実行されて、モーション命令に
ついての1または複数の指令値が演算される(実行処理B42)。さらに、制御アプリケーション処理部30のモーション処理部32により、バッファ33に格納されている中間コードに従ってロボット210の制御用のモーション指令が準備される(実行処理B32)。以下、同様の処理が制御周期毎に繰返される。なお、モーション処理部32がバッファ33から中間コードを読み出すタイミングは、各制御周期でなくともよい。これは、読み出された中間コードは、複数の制御周期T1にわたって指令値を演算できるだけの命令を含む場合、その複数の制御周期T1においては中間コードの読み出しを一度で行える。
ついての1または複数の指令値が演算される(実行処理B42)。さらに、制御アプリケーション処理部30のモーション処理部32により、バッファ33に格納されている中間コードに従ってロボット210の制御用のモーション指令が準備される(実行処理B32)。以下、同様の処理が制御周期毎に繰返される。なお、モーション処理部32がバッファ33から中間コードを読み出すタイミングは、各制御周期でなくともよい。これは、読み出された中間コードは、複数の制御周期T1にわたって指令値を演算できるだけの命令を含む場合、その複数の制御周期T1においては中間コードの読み出しを一度で行える。
このように、ある制御周期における高優先度タスクの実行が完了すると、モータ222等に関するシーケンス制御についての指令値及びそのモーション制御についての指令値と、ロボット210に関する制御アプリケーションについての指令値のセットが用意される。これらの指令値は、基本的には、次の制御周期が到来すると、フィールド側に反映される。すなわち、IECプログラム処理部40および制御アプリケーション処理部30は、同一の制御周期で入力データに応じた指令値を演算するので、入力に同期した出力を実現できる。
一方、低優先度タスクについては、制御アプリケーション処理部30のインタプリタ34は、アプリケーションプログラム52を逐次実行する。すなわち、インタプリタ34は、アプリケーションプログラム52の読込みおよび解析を低優先度で実行する。インタプリタ34がアプリケーションプログラム52を解析処理して生成された中間コードは、バッファ33の容量を考慮しながら、逐次、バッファ33に格納される。バッファ33に格納された中間コードは、制御アプリケーション処理部30のモーション処理部32により順次参照されて、演算処理B32での指令値の生成に用いられる。このとき、インタプリタ34は、高優先度タスクの演算周期である制御周期の整数倍分の中間コードを事前に余分に生成しておくことで、モーション処理部32による処理に影響を与えることなく、制御アプリケーションに対する指令値を制御周期毎に演算できる。
また、インタプリタ34は、予め定められた制御アプリケーション同期周期(制御周期の整数倍)が到来する前に、アプリケーションプログラム52の解釈を一時停止する。その一時停止したタイミングで、IECプログラム処理部40と制御アプリケーション処理部30との間でデータ同期を行うことで、双方に整合性をもつデータを共有する。このように、インタプリタ34は、同期周期毎に、IECプログラム処理部40との間で共有するデータを更新する。共有データの更新に併せて、フィールド側から取得される入力データおよび出力データについても更新(データ同期)するようにしてもよい。これにより、制御アプリケーション処理部30側でも、IECプログラム処理部40で取得されたデータを利用してロボット210の制御が可能となる。制御アプリケーション同期周期は、制御周期の整数倍に設定されれば、どのような長さであってもよい。制御アプリケーションにおいて要求される制御の精度などに応じて、適宜設定される。
次に、図5、図6に基づいて、制御装置100によるフィールド機器(ロボット210及びモータ222)の処理の流れについて説明する。図5は、上述した高優先度タスクの処理に関するフローチャートであり、図6は、上述した低優先度タスクの処理に関するフローチャートである。
先ず、高優先度タスクの処理の流れについて説明する。制御周期T1が到来すると、下位ネットワークインターフェイス60が入出力リフレッシュ処理を実行する(S101の処理)。これによって、直前の制御周期T1において演算された指令値(B40、B42、B32等による指令値)がフィールド機器のアクチュエータ等へ出力されるとともに、フィールド機器からの入力データが取得される。続いて、S102において、今回の制御周期がデータ同期のタイミングと一致するか否かが判定される。そこで肯定判定されると
、IECプログラム処理部40と制御アプリケーション処理部30との間でデータ同期が実行される(S103の処理)。またS102で否定判定されると、処理はS104へ進む。
、IECプログラム処理部40と制御アプリケーション処理部30との間でデータ同期が実行される(S103の処理)。またS102で否定判定されると、処理はS104へ進む。
次に、S104では上記の実行処理B40が行われ、続いてS105では上記の実行処理B42が行われる。その後、S106で、ロボット210を制御するためのモーション指令の準備を行う、上記のロボット実行処理B32が行われる。そして、ロボット実行処理B32が行われる際に、アプリケーションプログラム52に所定の変数が含まれている場合には、上述した第1の形態又は第2の形態に従って、共有メモリ41内に保持されている、対応する変数の値が利用される。
図5に示す高優先度タスクの一連の処理により演算、準備された指令値は、次の制御周期T1が到来したときにフィールドへ出力される。そして、当該一連の処理の終了後であって次の制御周期T1が到来するまでの期間において、図6に示す低優先度タスクが実行されることになる。
図6に基づいて、低優先度タスクの処理の流れについて説明する。低優先度タスクは、インタプリタ34によるアプリケーションプログラム52の解釈処理に関するものである。先ず、S201で、制御アプリケーション処理部30により、バッファ33に中間コードが残っているか否かが判定される。当該判定を行うのは、バッファ33の容量を超えた中間コードの生成を行わないようにするためである。S201で肯定判定されれば低優先度タスクは終了し、否定判定されれば処理はS202へ進む。S202では、インタプリタ34によって、アプリケーションプログラム52の一部が読み込まれる。例えば、アプリケーションプログラム52を構成するコードの一行分が読み込まれる。そして、S203では、インタプリタ34によって読込んだコードが解釈されて中間コードが生成される。生成された中間コードは、S204でバッファ33に格納される。なお、S202~S204の処理に関し、実行対象となるアプリケーションプログラムが存在しない場合にはこれらの処理は行われず、結果として、バッファ33には中間コードは格納されないことになる。このような一連の処理を有する低優先度タスクは、自身に対してプログラムの実行時間が割当てられている期間において繰返される。
このように図5、図6に示す一連の処理が行われることで、制御装置100において、図4に示す実行タイミングで、IECプログラム51およびアプリケーションプログラム52が実行されることになる。
<付記1>
実行毎に全体が実行される第1の実行形式に従ったプログラム(51)と、逐次実行される第2の実行形式に従ったプログラム(52)と、を有する制御装置(100)であって、
予め定められた制御周期毎に前記第1の実行形式に従ったプログラム(51)を実行して第1の制御対象(222)を制御するための第1の指令値を演算可能に構成された第1処理部(40)と、
前記第2の実行形式に従ったプログラム(52)を実行してインタプリタ(34)により該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に第2の制御対象(210)を制御するための第2の指令値を演算可能に構成された第2処理部(30)と、
前記第1の指令値および前記第2の指令値を前記制御周期毎に出力する出力部(60)と、
を備え、
前記第1処理部(40)と前記第2処理部(30)のうちいずれか一方の処理部が、該
第1処理部(40)による演算と該第2処理部(30)による演算の両方において使用可能な所定変数を保持し、該第1処理部(40)と該第2処理部(30)のうち他方の処理部は、該一方の処理部を介して該所定変数にアクセス可能に構成される、
制御装置。
実行毎に全体が実行される第1の実行形式に従ったプログラム(51)と、逐次実行される第2の実行形式に従ったプログラム(52)と、を有する制御装置(100)であって、
予め定められた制御周期毎に前記第1の実行形式に従ったプログラム(51)を実行して第1の制御対象(222)を制御するための第1の指令値を演算可能に構成された第1処理部(40)と、
前記第2の実行形式に従ったプログラム(52)を実行してインタプリタ(34)により該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に第2の制御対象(210)を制御するための第2の指令値を演算可能に構成された第2処理部(30)と、
前記第1の指令値および前記第2の指令値を前記制御周期毎に出力する出力部(60)と、
を備え、
前記第1処理部(40)と前記第2処理部(30)のうちいずれか一方の処理部が、該
第1処理部(40)による演算と該第2処理部(30)による演算の両方において使用可能な所定変数を保持し、該第1処理部(40)と該第2処理部(30)のうち他方の処理部は、該一方の処理部を介して該所定変数にアクセス可能に構成される、
制御装置。
2: フィールドネットワーク
6: 上位ネットワーク
10: サーバ装置
30: 制御アプリケーション処理部
40: IECプログラム処理部
51: IECプログラム
52: アプリケーションプログラム
100: 制御装置
210: ロボット
220: サーボドライバ
222: モータ
6: 上位ネットワーク
10: サーバ装置
30: 制御アプリケーション処理部
40: IECプログラム処理部
51: IECプログラム
52: アプリケーションプログラム
100: 制御装置
210: ロボット
220: サーボドライバ
222: モータ
Claims (4)
- 実行毎に全体が実行される第1の実行形式に従ったプログラムと、逐次実行される第2の実行形式に従ったプログラムと、を有する制御装置であって、
予め定められた制御周期毎に前記第1の実行形式に従ったプログラムを実行して第1の制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、
前記第2の実行形式に従ったプログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に第2の制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、
前記第1の指令値および前記第2の指令値を前記制御周期毎に出力する出力部と、
を備え、
前記第1処理部と前記第2処理部のうちいずれか一方の処理部が、該第1処理部による演算と該第2処理部による演算の両方において使用可能な所定変数を保持し、該第1処理部と該第2処理部のうち他方の処理部は、該一方の処理部を介して該所定変数にアクセス可能に構成される、
制御装置。 - 前記一方の処理部は前記第1処理部であり、前記他方の処理部は前記第2処理部である、
請求項1に記載の制御装置。 - 前記所定変数は、前記一方の処理部による演算と前記他方の処理部による演算とにおいて、同一の変数名に設定され、
前記他方の処理部によって前記所定変数を使用するとき、該他方の処理部は、前記一方の処理部において該所定変数と同一の変数名を有する変数の値を該所定変数の値として使用する、
請求項1又は請求項2に記載の制御装置。 - 前記一方の処理部による演算における前記所定変数の第1変数名と、前記他方の処理部による演算における前記所定変数の第2変数名とは異なり、
前記第1変数名と前記第2変数名との相関を画定する相関情報が保持され、
前記他方の処理部によって前記所定変数として前記第2変数名の変数を使用するとき、該他方の処理部は、前記相関情報に基づいて該第2変数名に関連付けられた前記第1変数名の変数の値を該所定変数の値として使用する、
請求項1又は請求項2に記載の制御装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019204825A JP7294078B2 (ja) | 2019-11-12 | 2019-11-12 | 制御装置 |
EP20887884.3A EP4036670A4 (en) | 2019-11-12 | 2020-10-21 | CONTROL DEVICE |
US17/771,449 US12117788B2 (en) | 2019-11-12 | 2020-10-21 | Control device with second processing unit that accesses variable via first processing unit |
PCT/JP2020/039564 WO2021095466A1 (ja) | 2019-11-12 | 2020-10-21 | 制御装置 |
CN202080073707.9A CN114585979B (zh) | 2019-11-12 | 2020-10-21 | 控制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019204825A JP7294078B2 (ja) | 2019-11-12 | 2019-11-12 | 制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021077219A JP2021077219A (ja) | 2021-05-20 |
JP7294078B2 true JP7294078B2 (ja) | 2023-06-20 |
Family
ID=75897935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019204825A Active JP7294078B2 (ja) | 2019-11-12 | 2019-11-12 | 制御装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12117788B2 (ja) |
EP (1) | EP4036670A4 (ja) |
JP (1) | JP7294078B2 (ja) |
CN (1) | CN114585979B (ja) |
WO (1) | WO2021095466A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024018790A (ja) * | 2022-07-29 | 2024-02-08 | 株式会社日立産機システム | コントロールシステム及び方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018185772A (ja) | 2017-04-27 | 2018-11-22 | 株式会社日立産機システム | 産業用コントローラ及び産業用コントローラにおけるデータ共有方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3446256B2 (ja) * | 1993-09-03 | 2003-09-16 | 株式会社日立製作所 | Faシステムの制御方法及び装置 |
US5984499A (en) * | 1997-09-12 | 1999-11-16 | Manufacturing Data Systems, Inc. | Method and apparatus for a numerical control system for processing multiple job streams |
JP3690106B2 (ja) * | 1998-04-02 | 2005-08-31 | 三菱電機株式会社 | 機器系統の監視制御方法 |
DE102006054421A1 (de) * | 2006-11-16 | 2008-05-21 | Endress + Hauser Gmbh + Co. Kg | Vorrichtung mit einer modular aufgebauten Messwandlerschaltung |
JP4877423B1 (ja) | 2011-03-15 | 2012-02-15 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
WO2016014137A2 (en) * | 2014-05-06 | 2016-01-28 | Neurala, Inc. | Apparatuses, methods, and systems for defining hardware-agnostic brains for autonomous robots |
JP6540166B2 (ja) * | 2015-03-31 | 2019-07-10 | オムロン株式会社 | 制御装置 |
JP2018037021A (ja) * | 2016-09-02 | 2018-03-08 | オムロン株式会社 | 制御装置および制御システム |
JP6953768B2 (ja) | 2017-04-06 | 2021-10-27 | 富士電機株式会社 | 支援装置、プログラム |
JP6919404B2 (ja) * | 2017-08-10 | 2021-08-18 | オムロン株式会社 | 制御装置 |
JP6950385B2 (ja) | 2017-09-12 | 2021-10-13 | オムロン株式会社 | 制御装置および制御方法 |
JP6903275B2 (ja) * | 2017-09-14 | 2021-07-14 | オムロン株式会社 | 制御装置および制御方法 |
JP6806019B2 (ja) * | 2017-09-26 | 2020-12-23 | オムロン株式会社 | 制御装置 |
JP6891838B2 (ja) * | 2018-03-15 | 2021-06-18 | オムロン株式会社 | 開発支援装置、開発支援方法、および開発支援プログラム |
JP6857153B2 (ja) * | 2018-03-29 | 2021-04-14 | 株式会社日立産機システム | コントロール装置 |
-
2019
- 2019-11-12 JP JP2019204825A patent/JP7294078B2/ja active Active
-
2020
- 2020-10-21 EP EP20887884.3A patent/EP4036670A4/en active Pending
- 2020-10-21 CN CN202080073707.9A patent/CN114585979B/zh active Active
- 2020-10-21 WO PCT/JP2020/039564 patent/WO2021095466A1/ja unknown
- 2020-10-21 US US17/771,449 patent/US12117788B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018185772A (ja) | 2017-04-27 | 2018-11-22 | 株式会社日立産機システム | 産業用コントローラ及び産業用コントローラにおけるデータ共有方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021077219A (ja) | 2021-05-20 |
EP4036670A1 (en) | 2022-08-03 |
EP4036670A4 (en) | 2023-11-01 |
US20220397880A1 (en) | 2022-12-15 |
CN114585979A (zh) | 2022-06-03 |
CN114585979B (zh) | 2024-12-03 |
US12117788B2 (en) | 2024-10-15 |
WO2021095466A1 (ja) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6903275B2 (ja) | 制御装置および制御方法 | |
CN109388107B (zh) | 控制装置 | |
JP6950385B2 (ja) | 制御装置および制御方法 | |
JP2019061466A (ja) | 制御装置 | |
US20190095246A1 (en) | Support device and non-transitory storage medium | |
CN113168135B (zh) | 同步控制装置、同步控制系统和同步控制方法 | |
JP2019057253A (ja) | 制御装置、制御方法およびサポート装置 | |
JP7294078B2 (ja) | 制御装置 | |
JP7230703B2 (ja) | 制御装置 | |
JP7456165B2 (ja) | 制御装置 | |
JP7396063B2 (ja) | データ処理方法 | |
JP7318406B2 (ja) | 制御装置 | |
WO2020137522A1 (ja) | 同期制御装置、同期制御システム、同期制御方法、及びシミュレーション装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220907 |
|
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: 20230509 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230522 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7294078 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |