JP6881174B2 - 制御装置および制御方法 - Google Patents

制御装置および制御方法 Download PDF

Info

Publication number
JP6881174B2
JP6881174B2 JP2017175719A JP2017175719A JP6881174B2 JP 6881174 B2 JP6881174 B2 JP 6881174B2 JP 2017175719 A JP2017175719 A JP 2017175719A JP 2017175719 A JP2017175719 A JP 2017175719A JP 6881174 B2 JP6881174 B2 JP 6881174B2
Authority
JP
Japan
Prior art keywords
control
program
state
execution unit
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
Application number
JP2017175719A
Other languages
English (en)
Other versions
JP2019053397A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2017175719A priority Critical patent/JP6881174B2/ja
Priority to US15/894,881 priority patent/US10509393B2/en
Priority to CN201810151496.0A priority patent/CN109491324B/zh
Priority to EP18156410.5A priority patent/EP3457239B1/en
Publication of JP2019053397A publication Critical patent/JP2019053397A/ja
Application granted granted Critical
Publication of JP6881174B2 publication Critical patent/JP6881174B2/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
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4145Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using same processor to execute programmable controller and numerical controller function [CNC] and PC controlled NC [PCNC]
    • 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/32Operator till task planning
    • G05B2219/32059Send code, data for workpiece to each workstation to be used, update data
    • 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/34Director, elements to supervisory
    • G05B2219/34287Plc and motion controller combined
    • 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/34Director, elements to supervisory
    • G05B2219/34288Plc as main controller for cnc
    • 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/34Director, elements to supervisory
    • G05B2219/34302Plc controls movement via nc, no direct interface to servo
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43196Using two motors

Description

本開示は、複数のモータを制御可能な制御装置および当該制御装置における制御方法に関する。
従来から、CNC(Computer Numerical Control:コンピュータ数値制御)に従う工作機械(以下、「CNC工作機械」とも総称する。)が様々な生産現場で利用されている。CNC工作機械においては、各々が「軸」と称される機械構成を複数組み合わせて処理を行うことも多い。このような場合、複数の軸をまとめて制御したいというニーズが存在する。
例えば、国際公開第2016/157395号(特許文献1)は、機械構成を単系統または2つ以上組み合わせた多系統でグループ化し、グループ化された機械構成によりワークを加工することが可能な数値制御装置を開示する。
国際公開第2016/157395号
上述の国際公開第2016/157395号(特許文献1)に開示される数値制御装置においては、加工プログラムごとに解析するプログラム解析部と、ラダープログラムを処理するPLCとがそれぞれ配置された構成になっている。この構成において、CNC工作機械によりワークが加工される際に、例えば、切削油を噴射する噴射器の駆動を制御し、CNC工作機械により加工されたワークを運ぶベルトコンベアの駆動を制御するとされているが、CNC工作機械の各軸の状態を直接把握することはできない。そのため、例えば、PLCがCNC工作機械の各軸の状態に応じた処理を実行する場合には、CNC工作機械の各軸の状態を取得するためのプログラムおよびその機構を実装しなければならず、コストおよび工数を多く要するという課題がある。
本開示は、このような課題の解決に向けられており、その一つの目的は、シーケンスプログラムに従う制御および数値制御プログラムに従う制御を、より少ない工数で実現可能な制御装置を提供することである。
本開示の一例では、複数のモータを制御可能な制御装置が提供される。制御装置は、シーケンスプログラムを制御周期毎に実行する第1のプログラム実行部と、数値制御プログラムに従って各モータに対する指令値を算出する第2のプログラム実行部と、複数のモータのうち予め指定された複数のモータからなるグループに関連付けられた制御状態を管理する状態管理部とを含む。シーケンスプログラムは、第2のプログラム実行部での数値制御プログラムの実行処理を制御するための制御命令を含む。第1のプログラム実行部は、シーケンスプログラムに含まれる制御命令に従って、第2のプログラム実行部での数値制御プログラムの実行に係る指示を与える。状態管理部は、第1のプログラム実行部からの指示、および、第2のプログラム実行部における数値制御プログラムの実行状態の少なくとも一方に基づいて、制御状態を更新する。
この開示によれば、特別なプログラムを作成することなく、複数のモータのうち予め指定された複数のモータからなるグループの制御状態を管理できるため、グループに対する制御を行うプログラムを作成する際の工数を低減できる。
上述の開示において、第1のプログラム実行部は、シーケンスプログラムに含まれる制御状態を参照する命令に従って、状態管理部が管理する制御状態の値を反映して、シーケンスプログラムに従う演算結果を算出してもよい。
この開示によれば、シーケンスプログラムにおいて、グループに属する各モータに対する制御ロジックをより容易に実現できる。
上述の開示において、状態管理部は、制御状態の値を構造体変数のメンバとして参照可能に保持してもよい。
この開示によれば、プログラムの再利用性などを高めることができる。
上述の開示において、構造体変数は、対応のグループの設定に関する情報をさらなるメンバとして有していてもよい。
この開示によれば、プログラムをより簡単に作成することができる。
上述の開示において、状態管理部は、第2のプログラム実行部が数値制御プログラムを実行中において取り得る複数の状態と、第2のプログラム実行部が数値制御プログラムを非実行中において取り得る複数の状態との間で、制御状態を遷移させてもよい。
この開示によれば、第2のプログラム実行部が数値制御プログラムにおいて管理が必要な内容などを反映した制御状態の値を提供できる。
上述の開示において、制御装置は、状態管理部が管理する制御状態の値を保持する共有メモリをさらに含んでいてもよい。
この開示によれば、第1のプログラム実行部および第2のプログラム実行部からの制御状態の値へのアクセスを容易化できる。
上述の開示において、シーケンスプログラムに含まれる制御命令は、ファンクションブロックの形で規定されてもよい。
この開示によれば、シーケンスプログラムの再利用性を高めることができるとともに、シーケンスプログラムの品質を高めることもできる。
上述の開示において、制御装置には、グループに属する複数のモータの指定を受付けるユーザインターフェイスを提供するサポート装置が接続可能になっていてもよい。
この開示によれば、複数のモータが属するグループの設定を容易化できる。
上述の開示において、制御状態は、グループに含まれる複数のモータをまとめた単一の状態を示してもよい。
この開示によれば、複数のモータを一括して制御するのに適した制御状態の値を提供できる。
本開示の別の一例では、複数のモータを制御可能な制御装置における制御方法が提供される。制御方法は、シーケンスプログラムを制御周期毎に実行するステップと、数値制御プログラムに従って各モータに対する指令値を算出するステップと、複数のモータのうち予め指定された複数のモータからなるグループに関連付けられた制御状態を管理するステップとを含む。シーケンスプログラムは、数値制御プログラムの実行処理を制御するための制御命令を含む。数値制御プログラムの実行は、シーケンスプログラムに含まれる制御命令に従う指示によって制御される。制御状態を管理するステップは、シーケンスプログラムに含まれる制御命令に従う指示、および、数値制御プログラムの実行状態の少なくとも一方に基づいて、制御状態を更新するステップを含む。
この開示によれば、特別なプログラムを作成することなく、複数のモータのうち予め指定された複数のモータからなるグループの制御状態を管理できるため、グループに対する制御を行うプログラムを作成する際の工数を低減できる。
本開示の一例によれば、シーケンスプログラムに従う制御および数値制御プログラムに従う制御を、より少ない工数で実現可能な制御装置を提供できる。
本実施の形態に係る制御装置の適用場面の一例を示す模式図である。 本実施の形態に係る制御システムの全体構成例を示す模式図である。 本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置における中間コードの生成例を説明するための模式図である。 本実施の形態に係る制御装置から軸グループを構成するそれぞれのモータに対する指令値の時間波形の一例を示す図である。 本実施の形態に係る制御装置に接続されるサポート装置上で提供されるユーザインターフェイス画面の一例を示す模式図である。 本実施の形態に係る制御装置における軸グループの状態遷移の一例を示す図である。 本実施の形態に係る制御装置におけるCNC_CoordControl(CNC座標制御)命令に対応するファンクションブロックを示す模式図である。 本実施の形態に係る制御装置における軸グループに関連付けられた構造体変数の一例を示す図である。 本実施の形態に係る制御装置において実行されるシーケンスプログラムのコード例を示す図である。 本実施の形態に係る制御装置におけるプログラムの実行動作例を示すタイムチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御装置100の適用場面の一例を示す模式図である。
図1を参照して、制御装置100は、複数のモータを制御可能に構成される。図1に示す適用例においては、モータの一例として、サーボモータ522_1,522_2,522_3(以下、「サーボモータ522」とも総称する。)が制御される。サーボモータ522_1,522_2,522_3は、制御装置100とフィールドネットワーク2を介して接続されるサーボドライバ520_1,520_2,520_3(以下、「サーボドライバ520」とも総称する。)によって駆動される。すなわち、制御装置100からサーボドライバ520に対して、後述するような処理によって算出されるそれぞれの指令値が与えられる。
本発明の「モータ」は、サーボモータに限られることなく、同期モータおよび誘導モータを含む任意の駆動装置を包含する概念である。また、本発明の「モータ」は、例えば、リニアモータのような、回転運動ではなく直線運動するような装置も含み得る。サーボモータ522を駆動する場合には、サーボドライバ520が利用されるが、モータの種類に応じてモータを駆動する装置も適切なものが選択される。
例えば、産業用ロボットやCNC工作機械においては、ワークに対して何らかのアクションを行う場合に、複数のモータを連係させて駆動する必要がある。すなわち、複数のモータに対してそれぞれの指令値を同期して与える必要がある。本明細書において、それぞれの指令値を同期して与える必要がある複数のモータを「グループ」と称する。
一般的に、任意のグループに属するそれぞれのモータが物体を移動させる方向(軸方向)は、互いに異なっており、これらの軸により規定される空間を「座標系」とも称する。例えば、あるグループに属する3つのモータがCNC工作機械のX軸、Y軸、Z軸をそれぞれ駆動するような場合、当該グループに属するモータは、「X−Y−Z座標系」に関連付けられることになる。このような各モータが物体を移動させる軸方向に着目して、以下の説明においては、各グループを「軸グループ」と称することもあり、また、「軸グループ」を、それに属するモータに割当てられた軸により規定される「CNC座標系」と記載することもある。言い換えれば、「CNC座標系」は、グループに属する複数のモータが構成するCNC工作機械をそのまま抽象化した概念に相当する。
通常、1つの軸グループにおいて、モータ数と軸数とは一致するが、1つの軸を複数のモータで回転駆動することもあり、この場合には、モータ数は軸数より多くなる。
図1に示す応用例においては、制御装置100からそれぞれのサーボドライバ520に対して、フィールドネットワーク2を介して、対応する指令値が送信(通信)されるが、これに限らず、制御装置100とサーボドライバ520とを配線接続して、指令値を示す信号を直接伝送するようにしてもよい。
制御装置100は、ストレージ108と、シーケンスプログラム実行部150と、数値制御プログラム実行部160(以下、「NCプログラム実行部」とも略称する。)と、複数のモータのうち予め指定された複数のモータからなるグループ(軸グループ)に関連付けられた制御状態172を管理する状態管理部170を含む。制御状態172は、軸グループに含まれる複数のモータをまとめた単一の状態を示す。すなわち、制御状態172は、軸グループの全体としての状態値を示す。
ストレージ108には、シーケンスプログラム30と、数値制御プログラム32(以下、「NCプログラム」とも略称する)とが格納される。
シーケンスプログラム実行部150は、シーケンスプログラム30を制御周期毎に実行する第1のプログラム実行部の一例であり、NCプログラム実行部160は、NCプログラム32に従って各モータに対する指令値184を算出する第2のプログラム実行部の一例である。
シーケンスプログラム実行部150は、シーケンスプログラム30をサイクリックに実行することで、1または複数の指令値182を算出する。
本発明の「シーケンスプログラム」は、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が算出されるプログラムを包含する概念である。「シーケンスプログラム」は、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131−3に従って記述された1または複数の命令からなるプログラムを包含する。「シーケンスプログラム」には、シーケンス命令および/またはモーション命令を含み得る。なお、「シーケンスプログラム」としては、国際規格IEC61131−3に従って記述された命令に限らず、PLC(プログラマブルコントローラ)の製造メーカまたはベンダーなどが独自に規定した命令を含むようにしてもよい。このように、「シーケンスプログラム」は、即時性および高速性が要求される制御に好適である。
本明細書において、「シーケンス命令」は、基本的には、入力値、出力値、内部値などを算出する1または複数の論理回路により記述される1または複数の命令を包含する用語である。基本的には、1回の制御周期において、「シーケンス命令」は、先頭から最終まで実行され、次の制御周期において、「シーケンス命令」は、先頭から最終までが再度実行される。本明細書において、「モーション命令」は、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度などの数値を指令として算出するための1または複数の命令を包含する用語である。「モーション命令」についても、1回の制御周期において、ファンクションブロックや数値算出式などにより記述されるモーション命令のプログラム(モーションプログラム)の先頭から最終までが実行される。すなわち、制御周期毎に指令値は算出(更新)されることになる。
シーケンスプログラム実行部150により算出される1または複数の指令値182は、典型的には、シーケンス命令に従って決定されるデジタル出力のオン/オフ、および、モーション命令に従って算出されるアナログ出力を含む。
NCプログラム実行部160は、NCプログラム32を逐次解釈することで、NCプログラム32において記述された軌跡を実現できるように、指令値184を順次更新する。上述したように、軸グループが設定されている場合には、NCプログラム実行部160は、同一の軸グループに属している複数のモータに対するそれぞれの指令値184を同期して出力する。
本発明の「数値制御プログラム」は、CNCにおける挙動を記述するプログラムを包含する。「数値制御プログラム」は、典型的には、1行ずつ逐次解釈して実行するインタプリタ方式で記述され、逐次解釈および実行される。一例として、NCプログラムは「Gコード」を用いて記述されることが多いが、これに限らず、任意の言語を採用することができる。
シーケンスプログラム30は、NCプログラム実行部160でのNCプログラム32の実行処理を制御するための制御命令を含む。そして、シーケンスプログラム実行部150がシーケンスプログラム30を実行することで、NCプログラム実行部160の実行に係る指示を与える。例えば、シーケンスプログラム実行部150がシーケンスプログラム30に含まれる制御命令を実行することで、NCプログラム実行部160でのNCプログラム32の実行処理を開始または停止させることができる。
軸グループは、対象となる装置の機構に応じて任意に設定される。ストレージ108に格納される設定情報36は、軸グループの設定を含む。
典型的には、シーケンスプログラム実行部150から出力される1または複数の指令値182と、NCプログラム実行部160から出力される指令値184と、状態管理部170が管理する制御状態172とは、共有メモリ190に保持される。但し、それぞれのデータを保持するための専用領域を設けてもよい。
状態管理部170が管理する制御状態の値を保持する共有メモリ190を設けることで、シーケンスプログラム実行部150およびNCプログラム実行部160からのアクセスを容易化できる。
入出力リフレッシュ処理部180は、所定周期毎に、指令値182および指令値184を含む出力データをフィールド側へ送信するとともに、フィールド側から計測値などの入力データを取得する。本明細書において、制御装置100とフィールド側との間の入力データおよび出力データの遣り取りを、「入出力リフレッシュ処理」とも称す。
状態管理部170は、シーケンスプログラム実行部150からNCプログラム実行部160への指示、および、NCプログラム実行部160におけるNCプログラム32の実行状態の少なくとも一方に基づいて、制御状態172を更新する。制御状態172は、軸グループ毎の状態を示す情報を有しており、例えば、特定の軸グループについて、「動作中」、「停止中」、「減速中」などの状態情報などを含む。
本実施の形態に係る制御装置100においては、制御周期毎にスキャンされるシーケンスプログラム30、および、逐次解釈されるNCプログラム32をそれぞれ実行して、それぞれの指令値を算出する。シーケンスプログラム30に所定の制御命令を含ませることによって、NCプログラム実行部160でのNCプログラム32の実行タイミングなどを制御できる。
また、本実施の形態に係る制御装置100においては、任意の軸グループに関連付けられた制御状態172が適宜更新される。シーケンスプログラム実行部150は、制御状態172の値を参照して、NCプログラム実行部160でのNCプログラム32の実行などを動的に制御することができる。
また、本実施の形態に係る制御装置100においては、シーケンスプログラム実行部150は、制御状態172の値を参照することで、NCプログラム実行部160の状態を把握できるので、シーケンスプログラム実行部150とNCプログラム実行部160との間で状態の情報を交換するためのプログラムなどを必要としない。そのため、シーケンスプログラム30を作成する工数を低減できる。この結果、プログラム作成に係るコストを低減できるとともに、プログラム容量自体も削減できる。
以下、本発明のより具体的な応用例として、本実施の形態に係る制御装置100のより詳細な構成および処理について説明する。
<B.制御システムの全体構成例>
次に、本実施の形態に係る制御装置を含む制御システム1の全体構成例について説明する。図2は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図2には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。
制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。制御装置100は、フィールドネットワーク2を介して各種のフィールドデバイス500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールドデバイス500との間でデータを遣り取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」と総称する。すなわち、本明細書の「フィールドネットワーク」は、狭義の「フィールドネットワーク」に加えて「フィールドバス」を含み得る概念である。
制御装置100において実行される制御演算は、フィールドデバイス500において収集または生成されたデータ(入力データ)を収集する処理(入力処理)、フィールドデバイス500に対する指令値などのデータ(出力データ)を生成する処理(演算処理)、生成した出力データを対象のフィールドデバイス500へ送信する処理(出力処理)などを含む。
フィールドネットワーク2は、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。データの到達時間が保証される点において、EtherCAT(登録商標)が好ましい。
フィールドネットワーク2には、任意のフィールドデバイス500を接続することができる。フィールドデバイス500は、フィールド側にある製造装置や生産ラインなどに対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。
フィールドネットワーク2を介して、制御装置100とフィールドデバイス500との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数100μsecオーダ〜数10msecオーダのごく短い周期で更新されることになる。
図2に示す構成例においては、制御装置100は、CNC工作機械540と、CNC工作機械540に対してワークWを供給する搬送装置550とを制御する。
CNC工作機械540は、位置や速度などを指定するNCプログラム32に従って、マシニングセンタなどを制御することで、任意の対象物を加工する。CNC工作機械540としては、図示のものに限られず、旋盤加工、フライス盤、放電加工などの任意の加工装置に適用できる。
CNC工作機械540および搬送装置550は、制御装置100からの指令値に従って駆動される。搬送装置550により搬送されるワークWは、作業台554の上に配置され、CNC工作機械540により指定された加工が行われる。
図2に示す構成例においては、フィールドデバイス500は、リモートI/O(Input/Output)装置510と、サーボドライバ520_1,520_2,520_3およびサーボモータ522_1,522_2,522_3と、サーボドライバ530とを含む。
リモートI/O装置510は、典型的には、フィールドネットワーク2を介して通信を行う通信カプラと、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
フィールドデバイス500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)、各種ロボットなどを採用することができる。
サーボモータ522_1,522_2,522_3は、CNC工作機械540の一部として組み込まれており、サーボドライバ530は、搬送装置550のコンベアに連結されたサーボモータ532を駆動する。サーボドライバ520_1〜520_3,530は、制御装置100からの指令値(例えば、位置指令値や速度指令値など)に従って、対応するサーボモータを駆動する。
一例として、図2に示す構成例において、サーボモータ522_1,522_2,522_3は、CNC工作機械540のX軸,Y軸,Z軸の駆動源であり、これらの3軸については、一体的に制御することが好ましい。以下の説明においては、サーボモータ522_1,522_2,522_3が1つの軸グループとして設定されているとする。
本実施の形態に係る制御装置100は、シーケンスプログラム30を実行することで、シーケンス命令およびモーション命令に従って決定される指令値だけではなく、NCプログラム32を実行することで、CNC工作機械540の挙動を制御するための指令値を生成できる。但し、シーケンスプログラム30に含まれる制御命令により、NCプログラム32の実行開始および実行終了などが制御される。
制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置300および1または複数の表示装置400が接続されてもよい。
サーバ装置300としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行う処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行うための機械学習ツールなどが想定される。
表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置100での演算結果などをグラフィカルに表示する。
制御装置100には、サポート装置200が接続可能になっている。サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスの構成情報(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ出力する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
<C.制御装置のハードウェア構成例>
次に、本実施の形態に係る制御装置100のハードウェア構成例について説明する。
図3は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。図3を参照して、制御装置100は、CPUユニットと称される演算処理部であり、プロセッサ102と、チップセット104と、主メモリ106と、ストレージ108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。チップセット104は、プロセッサ102および周辺エレメントを制御することで、制御装置100全体としての処理を実現する。主メモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。図1に示す共有メモリ190は、典型的には、主メモリ106によって実現される。ストレージ108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
プロセッサ102は、ストレージ108に格納された各種プログラムを読出して、主メモリ106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。ストレージ108には、基本的な機能を実現するためのシステムプログラム34に加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム(シーケンスプログラム30およびNCプログラム32)が格納される。
上位ネットワークコントローラ110は、上位ネットワーク6を介して、サーバ装置300や表示装置400(図3参照)などとの間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
内部バスコントローラ120は、制御装置100に装着されるI/Oユニット122との間のデータの遣り取りを制御する。フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールドデバイスとの間のデータの遣り取りを制御する。
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
図2に示す制御システム1においては、制御装置100、サポート装置200および表示装置400がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
<D.プログラム実行機構>
次に、本実施の形態に係る制御装置100のプログラム実行機構例について説明する。再度図1を参照して、制御装置100は、シーケンスプログラム30を実行するシーケンスプログラム実行部150と、NCプログラム32を実行する数値制御プログラム実行部160とを有している。
より具体的には、シーケンスプログラム実行部150は、シーケンス命令解釈部152と、ライブラリ154と、モーション指令値演算部156とを有している。
シーケンス命令解釈部152は、シーケンスプログラム30に含まれるシーケンス命令を解釈し、指定されたシーケンス演算(論理演算)を実行する。ライブラリ154は、シーケンスプログラム30に含まれる単純なシーケンス以外の制御命令に対応するコードを提供する。例えば、シーケンスプログラム30は、複合的な処理が可能なファンクションブロックを用いて記述することができるような場合には、シーケンスプログラム30を参照することで、当該ファンクションブロックを解釈して実行するために必要なコードが取得される。
モーション指令値演算部156は、シーケンスプログラム30に含まれるモーション命令に従って指令値を算出する。モーション命令は、1つのコマンドによって複数の制御周期に亘って指令値の算出を定義しており、モーション指令値演算部156は、このようなモーション命令を解釈して、モーション指令値を制御周期毎に更新する。
シーケンスプログラム実行部150のシーケンス命令解釈部152およびモーション指令値演算部156により制御周期毎に算出される1または複数の指令値182は、共有メモリ190へ出力される。
一方、NCプログラム実行部160は、NCプログラム32をインタプリタ方式で実行して、各モータに対する指令値を算出する。NCプログラム実行部160による指令値の算出(更新)は、制御周期毎に繰返し実行される。このように、NCプログラム実行部160は、シーケンスプログラム実行部150による指令値の算出に同期して、NCプログラム32に従う指令値を算出する。このような制御周期毎の指令値の算出を実現するために、NCプログラム実行部160においては、指令値を算出するための中間コードが用いられる。
より具体的には、NCプログラム実行部160は、インタプリタ162と、中間コードバッファ164と、CNC指令値演算部168とを含む。
インタプリタ162は、NCプログラム32の少なくとも一部を解釈して、中間コード166を生成する。より具体的には、インタプリタ162は、NCプログラム32を逐次解釈して中間コード166を生成するとともに、生成した中間コード166を中間コードバッファ164に順次格納する。インタプリタ162は、NCプログラム32から中間コード166の生成をある程度事前に行う。そのため、中間コードバッファ164には、複数の中間コード166が格納されることもある。本実施の形態において、インタプリタ162は、指令値184を算出するための軌道を生成するため、「プランナー」と称されることもある。
CNC指令値演算部168は、インタプリタ162が事前に生成した中間コード166に従って、制御周期毎に指令値184を算出する。一般的に、NCプログラムに記述される命令(コード)は、逐次解釈されるために、演算周期毎に指令値184を算出できる保証はないが、中間コード166を利用することで、制御周期毎の指令値184の算出を実現できる。
インタプリタ162は、生成した中間コード166を中間コードバッファ164に逐次キューイングし、CNC指令値演算部168は、中間コードバッファ164にキューイングされた順に中間コード166を読出す。
本発明の「中間コード」は、逐次解釈されるプログラム(本来的に、一定周期毎に指令値が更新されるという処理には不向きである)に従って、制御周期毎に指令値を算出するための任意の命令を包含する概念である。すなわち、中間コードは、CNC指令値演算部168が制御周期毎に指令値184を算出できるものであれば、どのようなコードであってもよい。典型的には、「中間コード」は、1または複数の命令、あるいは、1または複数の関数を含む。
NCプログラム実行部160のCNC指令値演算部168により制御周期毎に算出される指令値184は、共有メモリ190へ出力される。
<E.中間コード>
次に、NCプログラム実行部160のインタプリタ162がNCプログラム32を解釈して生成される中間コードの一例について説明する。
一般的に、NCプログラム32は、インタプリタ方式で逐次解釈されるコードを含んでおり、各コードを逐次解釈した場合に必要となる時間は、各コードが記述する内容に応じて変化する。すなわち、インタプリタ方式で逐次解釈されるため、制御周期毎に指令値を算出することは容易ではない。
そこで、本実施の形態に係る制御装置100においては、NCプログラム実行部160のインタプリタ162が、NCプログラム32に記述された1または複数のコードを解釈し、その解釈された内容に基づいて、制御周期毎に指令値を算出するための中間コード166を生成する。中間コード166は、NCプログラム32に記述された1または複数のコード毎に生成されるので、通常は、1つのNCプログラム32から複数の中間コード166が生成される。生成される中間コード166は、NCプログラム実行部160の中間コードバッファ164に順次キューイングされる。
中間コード166の各々においては、時間に関する変数を入力として、指令値を算出できる関数が規定されていてもよい。すなわち、中間コード166は、NCプログラム実行部160のCNC指令値演算部168が制御周期毎に指令値を更新するための関数であってもよい。このような関数を用いることで、CNC指令値演算部168は、生成される中間コード166を順次参照して、各制御周期における指令値を算出できる。
より具体的には、中間コード166は、時間と指令値との関係を規定する関数であってもよい。中間コード166を規定するための時間に関する変数としては、時刻、ある基準タイミングからの経過時間、制御周期の累積サイクル数などを用いることができる。
例えば、1番目の中間コード1が制御周期の10倍分の期間に亘って指令値を規定するものであるとすると、NCプログラム実行部160のCNC指令値演算部168は、中間コード1をキューイングして、10制御周期分の期間に亘って指令値を周期的に算出する。同様に、他の中間コード2および中間コード3についても、基本的には、複数の制御周期に亘って指令値を算出できるものとなる。
したがって、NCプログラム実行部160のインタプリタ162によるNCプログラム32から中間コードの生成処理が、NCプログラム実行部160のCNC指令値演算部168による指令値の演算処理に比較して、十分に先だって実行されれば、シーケンスプログラム30に従う処理と同期して、NCプログラム32に従う処理を同期実行できる。
図4は、本実施の形態に係る制御装置100における中間コードの生成例を説明するための模式図である。図4(A)を参照して、NCプログラム実行部160のインタプリタ162がNCプログラム32を逐次実行すると、NCプログラム32に含まれる各命令が解釈される((1)NCプログラム解釈)。この命令の解釈によって、規定された軌道が内部的に生成される((2)軌道生成(軸数分))。軸グループに属する軸の別に、軌道を生成してもよいし、軸グループに属する軸の全体の挙動を規定する軌道を生成してもよい。
最終的に、インタプリタ162は、生成した軌道を所定の区間に分割した上で、各区間の軌道を規定する1または複数の関数(中間コード)を生成する((3)中間コード生成(軸数分))。1または複数の関数についても、軸グループに属する軸の別に生成してもよいし、軸グループに属する軸の全体の挙動を規定する関数を生成してもよい。
複数の区間を共通の中間コードで規定してもよいし、1つの区間をさらに分割してそれぞれの共通コードを生成してもよい。すなわち、NCプログラム32の命令または当該命令によって規定される軌道の区間と、生成される中間コードの数とを一致させる必要はなく、任意に生成すればよい。また、中間コード166の出力形態についても、要求される制御周期の時間幅などを考慮して、適宜設計されてもよい。
図4(A)に示すように、中間コード166の一例としては、時間と指令値との関係を規定する関数であってもよい。図4(A)に示す例では、内部的に生成された軌道は、直線の組み合わせで規定できる。一例として、X軸に関して、直線区間毎(区間1〜区間3)の軌道を時間と速度との関係を示す関数Fx1(t),Fx2(t),Fx3(t)を出力できる。同一の軸グループに属する他の軸(例えば、Y軸およびZ軸)についても、それぞれ同様に関数が出力されてもよい。
図4(B)に示すように、NCプログラム実行部160のCNC指令値演算部168が、制御周期毎に、生成された中間コード166に従って指令値を算出することで、制御周期毎に指令値が算出される((4)指令値算出(軸数分))。すなわち、各区間に対応する関数に、各制御周期の時刻を入力することで、当該時刻における指令値を一意に決定できる。何らかの軸グループが設定されている場合には、当該軸グループに属する各軸について、指令値を同期して出力することが好ましい。
上述の図4には、一例として、CNCで用いられるGコードにより記述された一例を示すが、これに限らず、任意のインタプリタ方式で実行されるプログラムであれば、どのような言語を用いてもよい。また、処理対象の言語形式に応じて、生成される中間コードの形式を異ならせてもよい。
<F.軸グループに対する指令値>
次に、軸グループとして設定された1または複数の軸(モータ)に対して制御周期毎に算出される指令値の一例について説明する。
図5は、本実施の形態に係る制御装置100から軸グループを構成するそれぞれのモータに対する指令値の時間波形の一例を示す図である。図5に示すように、例えば、時刻t1から時刻t2の間において、CNC工作機械540が動作する場合を考える。このような動作を実現するために、軸1〜軸3のそれぞれについての指令値(図5に示す例では、速度指令値としている)は、時刻t1以前においては、いずれもゼロとなっており、また、時刻t1以前においては、いずれもゼロとなっており、また、時刻t2以降においても、いずれもゼロとなっている。
時刻t1において、それぞれの指令値に同期して変化が生じており、これによって、各軸が指定された動作を開示する。また、時刻t2に近付くにつれて、各軸の指令値は徐々にゼロに向かって低減している。
図5に示すように、同一の軸グループに設定される各軸(すなわち、各モータ)に対しては、互いに同期して指令値がそれぞれ与えられる。それぞれの指令値を互いに同期して与えることで、CNC工作機械540に目的の動作を正確に行わせることができる。
<G.軸グループの設定手順例>
次に、軸グループを設定するための手順の一例について説明する。典型的には、制御装置100に接続されるサポート装置200を用いて軸グループを設定できる。すなわち、制御装置100には、軸グループに属する複数のモータの指定を受付けるユーザインターフェイスを提供するサポート装置が接続可能であってもよい。
図6は、本実施の形態に係る制御装置100に接続されるサポート装置200上で提供されるユーザインターフェイス画面の一例を示す模式図である。図6を参照して、軸設定画面700においては、軸グループの識別情報および軸グループに属する軸を設定できる。
軸設定画面700は、座標系番号入力欄702とを含む。座標系番号入力欄702には、軸グループを一意に特定するための識別番号が入力される。
軸設定画面700は、対象の軸グループに属するモータ(軸)の選択を受付けるメンバ設定欄714をさらに含む。メンバ設定欄714は、モータ構成数入力欄706と、論理モータ番号入力欄708と、構成モータ番号入力欄710と、割付軸入力欄712とを含む。
モータ構成数入力欄706には、対象の軸グループに属する軸の数が入力される。
論理モータ番号入力欄708には、シーケンスプログラム30またはNCプログラム32において、各軸(モータ)を特定するための識別子(あるいは、変数)が入力される。ユーザは、プログラム上で各軸の参照を容易化できるような任意の名称を論理モータ番号入力欄708に入力できる。図6に示す例においては、「CNCモータP0」、「CNCモータP1」、「CNCモータP2」といった名称が付与されている。
構成モータ番号入力欄710には、対象の軸グループに属する軸を特定するための、制御装置100が管理する構成情報(コンフィギュレーション)における識別情報が入力される。図6に示す例では、構成情報上の識別子として、「CNC_Motor000(0)」、「CNC_Motor001(1)」、「CNC_Motor002(2)」が設定されている。
割付軸入力欄712には、対象の軸グループに属する各モータがCNC座標系においていずれの軸に対応するのかという情報が入力される。例えば、X−Y−Z座標系を想定した場合には、X軸、Y軸、Z軸の各々が対応するモータと関連付けられる。
最終的に、作成ボタン720が押下されることで、軸グループならびに当該軸グループに属するモータおよび各モータに割り付けられる軸が決定する。すなわち、軸グループに属する各モータに対応する軸が割当てられることで、当該軸グループにより規定されるCNC座標系が決定される。
このような軸グループの設定については、設定情報36(図1)の少なくとも一部としてストレージ108などに格納されてもよい。
上述の説明においては、サポート装置200がユーザインターフェイス画面を提供する構成を例示したが、これに限らず、制御装置100自体にユーザインターフェイス画面を提供する機能を実装してもよい。例えば、制御装置100内にウェブサーバ機能を実装するとともに、当該ウェブサーバ機能を用いて、ユーザインターフェイス画面を提供するようにしてもよい。
<H.制御状態の状態遷移>
上述したように、本実施の形態に係る制御装置100は、複数のモータを含む軸グループについての制御状態172が管理される。以下、状態管理部170により管理される制御状態172の一例について説明する。
図7は、本実施の形態に係る制御装置100における軸グループの状態遷移の一例を示す図である。図7を参照して、軸グループの各々は、7つの状態ST1〜ST7を取り得る。任意の軸グループに属する複数のモータにより規定されるCNC座標系における動作を示す命令(以下、「CNC座標系の動作命令」とも称す。)が与えられることで、状態が変化する。CNC座標系の動作命令は、NCプログラム実行部160がNCプログラム32を実行することで生成されることもあるし、シーケンスプログラム30に規定された特殊命令に従って生成されることもある。
これらの状態のうち、状態ST1〜ST4は、シーケンスプログラム実行部150で実行されるシーケンスプログラム30などに規定される命令に従って、CNC座標系の動作命令などを任意に出力する場合に取り得る状態値であり、状態ST5〜ST7は、NCプログラム実行部160においてNCプログラム32が実行中において取り得る状態値である。
このように、制御装置100の状態管理部170は、NCプログラム実行部160がNCプログラム32を実行中において取り得る複数の状態(状態ST5〜ST7)と、NCプログラム実行部160がNCプログラム32を非実行中において取り得る複数の状態(状態ST1〜ST4)との間で、制御状態を遷移させる。以下、状態ST1〜ST7の各々について説明する。
状態ST1は、「停止中(Standby)」に対応し、CNC座標系の動作命令が実行されていない状態を示す。状態ST1は、NCプログラム32を特定のブロック行まで実行して、プログラムポイントで停止している状態も含む。
状態ST2は、「動作中(Moving)」に対応し、CNC_MoveJog(CNC座標系動作)命令が実行中の状態を示す。実行中の命令が完了または中断すると、状態ST1へ遷移する。
状態ST3は、「減速停止中(Stopping)」に対応し、CNC_CoordStop(CNC座標系強制停止)命令が実行中の状態を示す。CNC_CoordStop命令に従って停止した後、Execute(起動)が「TRUE」の状態にあれば、状態ST3が維持される。
状態ST4は、「エラー減速停止中(ErrorStop)」に対応し、CNC座標系において何らか異常が発生している状態を示す。状態ST4は、CNC_CoordImmediateStop(CNC座標系即停止)命令が実行されている状態、および、CNC座標系の異常の発生によりCNC座標系が停止動作している状態を含み得る。状態ST4においては、CNC座標系の動作命令が発行されても、動作が禁止される。
状態ST5は、「実行中(Executing)」に対応し、CNC_CoordControl(CNC座標制御)命令よりNCプログラム32が実行中の状態を示す。
状態ST6は、「ホールド中(Hold)」に対応し、NCプログラム32のホールド(保留)による停止中の状態を示す。状態ST6は、オプショナルストップ命令、および、シングルブロック実行によるNCプログラム32のサスペンド状態も含む。
状態ST7は、「手動操作(ホールド中)(MovingOnHold)」に対応し、NCプログラム32のホールドによる停止中において、CNC_MoveJog命令を実行中の状態を示す。実行中の命令が完了または中断すると、状態ST7へ遷移する。
図7には、状態間の遷移に係る条件も示している。図7中の実線は、何らかの命令が実行されることに応答した遷移を示し、図7中の破線は、何らかの命令の実行完了またはその他のイベント発生による遷移を示す。
例えば、状態ST2から状態ST1への遷移、および、状態ST7から状態ST6への遷移は、CNC_MoveJog命令の実行完了により発生する。また、状態ST5,ST6,ST7から状態ST1への遷移は、NCプログラム32の実行完了により発生する。図7に示す各遷移は、図中の*で始まる数字に対応して、以下のとおりである。
*1:いずれの状態であっても、CNC座標系の異常発生が発生すると、状態ST4へ遷移する。
*2:CNC_CoordReset(CNC座標系リセット)命令またはResetCNCError(リセットCNCエラー)命令による異常解除により、状態ST4から状態ST1へ遷移する。
*3:CNC_CoordStop命令の「Done(完了)」出力が「TRUE」で、かつ、CNC_CoordStop命令の「Execute(起動)」入力が「FALSE」である場合に、状態ST3から状態ST1へ遷移する。
*4:CNC_CoordControlの実行により、状態ST1から状態ST5へ遷移する。
*5:特殊命令の実行により、状態ST6から状態ST7へ遷移する。
*6:いずれの状態であっても、CNC_CoordStop命令が実行されると、状態ST3へ遷移する。
<I.シーケンスプログラム>
次に、シーケンスプログラムに用いられる命令および変数の一例について説明する。
(i1:命令)
上述の状態遷移の説明においては、いくつかの命令に従って、状態が遷移することを説明した。この状態遷移が生じる条件として、いくつかの命令が実行される場合を示した。このような状態遷移が生じるための命令について説明する。
CNC_MoveJog(CNC座標系動作)命令は、CNC座標系を構成する各モータに対して任意の位置への移動を指示する。基本的には、CNC_MoveJog命令は、NCプログラム32が実行されていない状態で実行される。
CNC_CoordStop(CNC座標系強制停止)命令は、対象となるCNC座標系(軸グループ)に属する各モータに対して、強制的に動作停止を指示する。典型的には、CNC_CoordStopは、何らかの異常条件などと組み合わせて使用される。
CNC_CoordImmediateStop(CNC座標系即停止)命令、対象となるCNC座標系(軸グループ)に属する各モータに対して、強制的に動作停止を指示する。CNC_CoordStop命令は、機械的な保護などを考慮してあるレートで指令値が低減するのに対して、CNC_CoordImmediateStop命令では、指令値を即座にゼロに変更する。典型的には、CNC_CoordStopは、何らかの異常条件などと組み合わせて使用される。
CNC_CoordControl(CNC座標制御)命令は、NCプログラム実行部160でのNCプログラム32の実行を開始する命令である。CNC_CoordControl命令に対応するファンクションブロックについて、以下説明する。
CNC_CoordReset(CNC座標系リセット)命令は、対象となるCNC座標系(軸グループ)に属する各モータに対する指令値などを初期化(リセット)する命令である。
ResetCNCError(リセットCNCエラー)命令は、対象となるCNC座標系(軸グループ)に発生したエラーを復帰(リセット)する命令である。
このようなシーケンスプログラム30に含まれる命令は、ファンクションブロックの形で規定されてもよい。
図8は、本実施の形態に係る制御装置100におけるCNC_CoordControl(CNC座標制御)命令に対応するファンクションブロックを示す模式図である。図8を参照して、CNC_CoordControl命令のファンクションブロック600は、入出力(属性値)として、CNC座標系特定情報601と、数値制御入力602と、数値制御出力603とを含む。ファンクションブロック600は、入力として、有効化指示入力604(Enable)を有する。ファンクションブロック600は、出力として、有効状態入力605(Enabled)と、ビジー状態入力606(Busy)と、エラー状態入力607(Error)と、エラーコード608(ErrorID)とを有する。
CNC座標系特定情報601には、対象となるCNC座標系を特定するための識別情報(図6の座標系番号入力欄702に設定される数値など)が指定される。
数値制御入力602および数値制御出力603には、シーケンスプログラム実行部150とNCプログラム実行部160との間で遣り取りされるデータ群を示すオブジェクト名が指定される。数値制御入力602には、シーケンスプログラム実行部150からNCプログラム実行部160へ渡されるデータ群を格納するオブジェクトを示す変数名が指定され、数値制御出力603には、NCプログラム実行部160からシーケンスプログラム実行部150へ渡されるデータ群を格納するオブジェクトを示す変数名が指定される。これらのオブジェクトは、一種の構造体変数となっており、複数の属性値を有することになる。シーケンスプログラム30において、これらのオブジェクトの属性値を参照することも可能である。
有効化指示入力604には、NCプログラム実行部160によるNCプログラム32の実行開始条件の結果が指定される。
有効状態入力605からは、指定されたCNC座標系におけるNCプログラム32の実行状態を示す値(ブール値)が出力される。ビジー状態入力606からは、指定されたCNC座標系がビジー状態であるか否かを示す値(ブール値)が出力される。エラー状態入力607からは、何らかのエラーが発生しているか否かを示す値(ブール値)が出力される。エラーコード608からは、何らかのエラーが発生したときに、そのエラーの内容を示すコードが出力される。
(i2:構造体変数)
図7に示すような軸グループの状態遷移は、軸グループを示す構造体変数のメンバとして格納および参照されてもよい。すなわち、状態管理部170は、制御状態の値を構造体変数のメンバとして参照可能に保持してもよい。
図9は、本実施の形態に係る制御装置100における軸グループに関連付けられた構造体変数の一例を示す図である。図9には、CNC_Coord[0]に関連付けられた構造体変数620の一例を示す。構造体変数620は、階層構造として表現することができる。一例として、構造体変数620は、軸グループの状態を示す階層622を有する。
階層622は、図7に示す各状態に対応するメンバを含んでおり、軸グループの状態に応じて、メンバが示す値が更新される。例えば、「CNC_Coord[0].Status.Standby」には、対象の軸グループが停止中(Standby)である場合に、「TRUE」を示し、同階層の他のメンバはいずれも「FALSE」を示す。
構造体変数620には、対応の軸グループの設定に関する情報をさらなるメンバとして有していてもよい。一例として、構造体変数620は、軸グループ基本設定を示す階層624をさらに有する。階層624は、対象の軸グループに関するそれぞれの設定値をメンバとして含む。各メンバが示す値を参照することで、シーケンスプログラム30上において、対象の軸グループの設定値などを容易に参照できる。
なお、図9には、説明の便宜上、階層構造として表現したが、実際の各メンバの値を保持する形態はこれに限られることなく、任意の実装を採用できる。
(i3:シーケンスプログラムのコード例)
次に、上述したようなファンクションブロックおよび構造体変数を用いた、シーケンスプログラムのコード例について説明する。
制御装置100のシーケンスプログラム実行部150は、シーケンスプログラム30に含まれる制御状態を参照する命令に従って、状態管理部170が管理する制御状態の値を反映して、シーケンスプログラム30に従う演算結果を算出する。すなわち、シーケンスプログラム30の実行中において、任意の軸グループの制御状態を参照することができ、その参照した制御状態の値に基づいて、予め規定した処理を選択的に実行することができる。
図10は、本実施の形態に係る制御装置100において実行されるシーケンスプログラム30のコード例を示す図である。図10に示す、シーケンスプログラム30のコード630は、NCプログラム32に従うCNC工作機械に対する制御、および、CNC工作機械と協調動作するロボットなどのモーション駆動装置に対する制御を実行する場合を想定している。
より具体的には、コード630は、CNC_CoordControl命令のファンクションブロック640と、ファンクションブロック640の有効化指示入力(Enable)に入力される論理ロジックとを含む。ファンクションブロック640は、例えば、CNC_Coord[0]に対応するCNC座標系(軸グループ)に対して、所定のNCプログラム32に従う制御を開始するための命令である。
ファンクションブロック640の有効化指示入力に入力される論理ロジックは、対象の軸グループの状態が「停止中(Standby)」であることを示す接点642と、ファンクションブロック640が有効状態(Enabled)であることを示す接点644との並列回路である。この論理ロジックは、いわゆる自己保持回路となっている。すなわち、ファンクションブロック640は、対象の軸グループの状態が停止中(Standby)であることを起動条件とし、ファンクションブロック640が有効状態(Enabled)を運転継続条件とする。
接点642は、対象の軸グループを示す構造体変数の状態を示すメンバ(属性)を参照することで容易に規定することができる。接点644は、ファンクションブロック640からの出力フラグの値を参照することで容易に規定できる。
コード630は、さらに、MC_GroupStop命令のファンクションブロック650と、ファンクションブロック650の起動指令入力(Execute)に入力される論理ロジックとを含む。ファンクションブロック650は、ロボットなどの対象のモーション駆動装置に対して動作を停止するための命令である。
ファンクションブロック650の起動指令入力には、CNC_Coord[0]に対応するCNC座標系(軸グループ)が「エラー減速停止中(ErrorStop)」である場合に、「TRUE」が入力される。すなわち、対象のCNC座標系(軸グループ)に何らかのエラーが発生した場合には、対象のモーション駆動装置に対しても同時に動作を停止させるための指令を発行することができる。
このように、CNC工作機械とロボットとを協調動作させる場合などにおいて、一方の装置での異常発生による停止に応答して、他方の装置についても停止させるためのプログラムを容易に作成できる。
以上のように、本実施の形態に従う制御装置100においては、変数を規定することで、対象のCNC座標系(軸グループ)の状態を容易に参照できるので、CNC工作機械およびそれに関連する装置を制御するプログラムの開発工数などを低減できる。
<J.プログラムの実行動作例>
次に、本実施の形態に係る制御装置100におけるプログラムの実行動作例について説明する。
図11は、本実施の形態に係る制御装置100におけるプログラムの実行動作例を示すタイムチャートである。図11には、各制御周期における、主たる構成要素として、シーケンスプログラム実行部150と、NCプログラム実行部160のインタプリタ162およびCNC指令値演算部168と、状態管理部170と、共有メモリ190とにおける処理を示す。
図11を参照して、ある制御周期の開始タイミングが到来すると、まず、入出力リフレッシュ処理が実行される(図1に示す入出力リフレッシュ処理部180)(ステップS10)。続いて、シーケンスプログラム実行部150がシーケンスプログラム30を制御周期毎に実行する処理が実行される。この例においては、シーケンスプログラム実行部150がシーケンスプログラム30(の一部)を実行する(ステップS12)。シーケンスプログラム30の実行より算出された指令値は共有メモリ190に書込まれる。
ここで、シーケンスプログラム30の途中にNCプログラム32の実行開始を指示する命令が含まれているとする。NCプログラム実行部160は、この命令に応答して、NCプログラム32の実行開始を指示する(ステップS14)。すると、CNC指令値演算部168は、対象となる中間コード166を読出し(ステップS16)、CNC指令値を算出する(ステップS20)。CNC指令値演算部168により算出されたCNC指令値は共有メモリ190に書込まれる。このように、NCプログラム実行部160は、NCプログラム32に従って各モータに対する指令値を算出する処理を実行する。
一方、状態管理部170は、CNC指令値演算部168におけるNCプログラム32の実行の状態に応じて制御状態を更新する(ステップS18)。すなわち、状態管理部170は、軸グループに関連付けられた制御状態を管理する処理を実行する。この制御状態を管理する処理は、シーケンスプログラム30に含まれる制御命令に従う指示、および、NCプログラム32の実行状態の少なくとも一方に基づいて、制御状態を更新する処理を含む。
CNC指令値演算部168によるCNC指令値の算出が完了すると、処理はシーケンスプログラム実行部150に戻る。そして、シーケンスプログラム実行部150においては、シーケンスプログラム30の未実行部分の実行が再開される。
すなわち、シーケンスプログラム実行部150は、共有メモリ190から処理に必要な変数が示す値(指令値および/または制御状態)を読出し(ステップS22)、シーケンスプログラム30を実行する(ステップS24)。シーケンスプログラム30の実行より算出された指令値は共有メモリ190に書込まれる。
上述のステップS10〜S24の処理は、制御周期毎に実行しなければならない処理であり、次の制御周期の開始タイミングが到来するまでは、優先度が低い処理が適宜実行される。図11に示す例では、インタプリタ162がNCプログラム32から中間コード166を生成する処理を実行する(ステップS26)。ステップS26において生成される中間コード166は、次の制御周期以降において、CNC指令値の算出に用いられる。
そして、次の制御周期の開始タイミングが到来すると、再度、入出力リフレッシュ処理が実行される(ステップS10)。以下は、ステップS12〜S26に類似した処理が繰返し実行される。
以上のような処理手順によって、シーケンスプログラム実行部150においては、追加のプログラムを作成することなく、CNC座標系(軸グループ)の制御状態を参照することができ、シーケンスプログラム30に従う制御と、NCプログラム32に従う制御とを並列的に実行する場合に、互いのインターロックなどのプログラミングを容易に実現できる。
<K.変形例>
上述の説明においては、シーケンスプログラム30とNCプログラム32とを実行する制御装置100について説明したが、インタプリタ方式で記述されたプログラムであれば、どのようなプログラムについても同様に適用できる。
<L.まとめ>
本実施の形態によれば、例えば、CNC工作機を構成する複数のモータを各軸と規定するとともに、CNC工作機自体を複数の軸からなる抽象化概念として変数化(CNC変数)できる。このような変数を参照することで、シーケンスプログラム上で制御プログラミングが可能となる。
より具体的には、CNC変数を参照して、ファンクションブロック命令など起動することで、NCプログラム32の実行、停止、再開、異常停止、状態監視などの処理をシーケンスプログラム上で実現できる。
CNC変数が示す制御状態を参照するようなプログラムは、他のCNC工作機械に対するプログラムと共通化できる部分が多い(例えば、初期化処理や異常処理など)。そのため、再利用性を高めることができる。
従来の構成においては、CNC工作機械を制御する専用装置と、CNC工作機械の周辺に配置される搬送・組立などの処理を制御するPLCとは、互いに独立している。専用装置により制御されるCNC工作機械の状態については、PLCにおいて専用のプログラムを記述するとともに、ハードウェアを用いたインターフェイスについても用意しなければならない。
これに対して、本実施の形態によれば、CNC工作機械に対する制御については、従来の専用装置と同様のNCプログラムを用いて規定するとともに、CNC工作機械の周辺に配置される装置に対する制御については、シーケンスプログラムを用いて規定できる。さらに、CNC工作機械と周辺機器との間の協調動作については、上述したような制御状態を参照することで、容易にプログラミングできる。その結果、システム全体の開発工数を削減できる。さらに、複数のCNC工作機械が存在した場合であっても、プログラムの裁量性が高いので、処理を共通化することで、プログラムの開発工数およびプログラム容量を削減できる。
<M.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
複数のモータ(522)を制御可能な制御装置(100)であって、
シーケンスプログラム(30)を制御周期毎に実行する第1のプログラム実行部(150)と、
数値制御プログラム(32)に従って各モータに対する指令値を算出する第2のプログラム実行部(160)と、
前記複数のモータのうち予め指定された複数のモータからなるグループに関連付けられた制御状態(172)を管理する状態管理部(170)とを備え、
前記シーケンスプログラムは、前記第2のプログラム実行部での前記数値制御プログラムの実行処理を制御するための制御命令(640)を含み、
前記第1のプログラム実行部は、前記シーケンスプログラムに含まれる制御命令に従って、前記第2のプログラム実行部での前記数値制御プログラムの実行に係る指示を与え、
前記状態管理部は、前記第1のプログラム実行部からの指示、および、前記第2のプログラム実行部における前記数値制御プログラムの実行状態の少なくとも一方に基づいて、前記制御状態を更新する、制御装置。
[構成2]
前記第1のプログラム実行部は、前記シーケンスプログラムに含まれる前記制御状態を参照する命令(642,652)に従って、前記状態管理部が管理する前記制御状態の値を反映して、前記シーケンスプログラムに従う演算結果を算出する、構成1に記載の制御装置。
[構成3]
前記状態管理部は、前記制御状態の値を構造体変数(620)のメンバとして参照可能に保持する、構成1または2に記載の制御装置。
[構成4]
前記構造体変数は、対応のグループの設定に関する情報をさらなるメンバとして有している、構成3に記載の制御装置。
[構成5]
前記状態管理部は、前記第2のプログラム実行部が前記数値制御プログラムを実行中において取り得る複数の状態(ST5〜ST7)と、前記第2のプログラム実行部が前記数値制御プログラムを非実行中において取り得る複数の状態(ST1〜ST4)との間で、前記制御状態を遷移させる、構成1〜4のいずれか1項に記載の制御装置。
[構成6]
前記状態管理部が管理する前記制御状態の値を保持する共有メモリ(190)をさらに備える、構成1〜5のいずれか1項に記載の制御装置。
[構成7]
前記シーケンスプログラムに含まれる制御命令は、ファンクションブロックの形で規定される、構成1〜6のいずれか1項に記載の制御装置。
[構成8]
前記制御装置には、前記グループに属する複数のモータの指定を受付けるユーザインターフェイス(700)を提供するサポート装置(200)が接続可能になっている、構成1〜7のいずれか1項に記載の制御装置。
[構成9]
前記制御状態は、前記グループに含まれる複数のモータをまとめた単一の状態を示す、構成1〜8のいずれか1項に記載の制御装置。
[構成10]
複数のモータを制御可能な制御装置における制御方法であって、
シーケンスプログラムを制御周期毎に実行するステップ(S12,S14,S22,S24)と、
数値制御プログラムに従って各モータに対する指令値を算出するステップ(S16,S20)と、
前記複数のモータのうち予め指定された複数のモータからなるグループに関連付けられた制御状態を管理するステップ(S18)とを備え、
前記シーケンスプログラムは、前記数値制御プログラムの実行処理を制御するための制御命令を含み、
前記数値制御プログラムの実行は、前記シーケンスプログラムに含まれる制御命令に従う指示によって制御され、
前記制御状態を管理するステップは、前記シーケンスプログラムに含まれる制御命令に従う指示、および、前記数値制御プログラムの実行状態の少なくとも一方に基づいて、前記制御状態を更新するステップを含む、制御方法。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 フィールドネットワーク、6 上位ネットワーク、30 シーケンスプログラム、32 数値制御プログラム(NCプログラム)、34 システムプログラム、36 設定情報、100 制御装置、102 プロセッサ、104 チップセット、106 主メモリ、108 ストレージ、110 上位ネットワークコントローラ、112 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、120 内部バスコントローラ、122 I/Oユニット、130 フィールドネットワークコントローラ、150 シーケンスプログラム実行部、152 シーケンス命令解釈部、154 ライブラリ、156 モーション指令値演算部、160 数値制御プログラム実行部(NCプログラム実行部)、162 インタプリタ、164 バッファ、166 中間コード、168 指令値演算部、170 状態管理部、172 制御状態、180 入出力リフレッシュ処理部、182,184 指令値、190 共有メモリ、200 サポート装置、300 サーバ装置、400 表示装置、500 フィールドデバイス、510 リモートI/O装置、520,530 サーボドライバ、522,532 サーボモータ、540 工作機械、550 搬送装置、554 作業台、700 軸設定画面、W ワーク。

Claims (10)

  1. 複数のモータを制御可能な制御装置であって、
    シーケンスプログラムを制御周期毎に実行する第1のプログラム実行部と、
    数値制御プログラムに従って各モータに対する指令値を算出する第2のプログラム実行部と、
    前記複数のモータのうち予め指定された複数のモータからなるグループに関連付けられた制御状態を管理する状態管理部とを備え、前記制御状態は、複数の状態の間を状態遷移するものであり、
    前記シーケンスプログラムは、前記第2のプログラム実行部での前記数値制御プログラムの実行処理を制御するための制御命令を含み、
    前記第1のプログラム実行部は、前記シーケンスプログラムに含まれる制御命令に従って、前記第2のプログラム実行部での前記数値制御プログラムの実行に係る指示を与え、
    前記状態管理部は、前記第1のプログラム実行部からの指示、および、前記第2のプログラム実行部における前記数値制御プログラムの実行状態に基づいて、前記制御状態に含まれる状態を遷移するように構成される、制御装置。
  2. 前記第1のプログラム実行部は、前記シーケンスプログラムに含まれる前記制御状態を参照する命令に従って、前記状態管理部が管理する前記制御状態の値を反映して、前記シーケンスプログラムに従う演算結果を算出する、請求項1に記載の制御装置。
  3. 前記状態管理部は、前記制御状態の値を構造体変数のメンバとして参照可能に保持する、請求項1または2に記載の制御装置。
  4. 前記構造体変数は、対応のグループの設定に関する情報をさらなるメンバとして有している、請求項3に記載の制御装置。
  5. 前記制御状態は、前記第2のプログラム実行部が前記数値制御プログラムを実行中において取り得る複数の状態と、前記第2のプログラム実行部が前記数値制御プログラムを非実行中において取り得る複数の状態とを含む、請求項1〜4のいずれか1項に記載の制御装置。
  6. 前記状態管理部が管理する前記制御状態の値を保持する共有メモリをさらに備える、請求項1〜5のいずれか1項に記載の制御装置。
  7. 前記シーケンスプログラムに含まれる制御命令は、ファンクションブロックの形で規定される、請求項1〜6のいずれか1項に記載の制御装置。
  8. 前記制御装置には、前記グループに属する複数のモータの指定を受付けるユーザインターフェイスを提供するサポート装置が接続可能になっている、請求項1〜7のいずれか1項に記載の制御装置。
  9. 前記制御状態は、前記グループに含まれる複数のモータをまとめた単一の状態を示す、請求項1〜8のいずれか1項に記載の制御装置。
  10. 複数のモータを制御可能な制御装置における制御方法であって、
    シーケンスプログラムを制御周期毎に実行するステップと、
    数値制御プログラムに従って各モータに対する指令値を算出するステップと、
    前記複数のモータのうち予め指定された複数のモータからなるグループに関連付けられた制御状態を管理するステップとを備え、前記制御状態は、複数の状態の間を状態遷移するものであり、
    前記シーケンスプログラムは、前記数値制御プログラムの実行処理を制御するための制御命令を含み、
    前記数値制御プログラムの実行は、前記シーケンスプログラムに含まれる制御命令に従う指示によって制御され、
    前記制御状態を管理するステップは、前記シーケンスプログラムに含まれる制御命令に従う指示、および、前記数値制御プログラムの実行状態に基づいて、前記制御状態に含まれる状態遷移するステップを含む、制御方法。
JP2017175719A 2017-09-13 2017-09-13 制御装置および制御方法 Active JP6881174B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017175719A JP6881174B2 (ja) 2017-09-13 2017-09-13 制御装置および制御方法
US15/894,881 US10509393B2 (en) 2017-09-13 2018-02-12 Control device and control method
CN201810151496.0A CN109491324B (zh) 2017-09-13 2018-02-13 控制装置及控制方法
EP18156410.5A EP3457239B1 (en) 2017-09-13 2018-02-13 Control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017175719A JP6881174B2 (ja) 2017-09-13 2017-09-13 制御装置および制御方法

Publications (2)

Publication Number Publication Date
JP2019053397A JP2019053397A (ja) 2019-04-04
JP6881174B2 true JP6881174B2 (ja) 2021-06-02

Family

ID=61226386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017175719A Active JP6881174B2 (ja) 2017-09-13 2017-09-13 制御装置および制御方法

Country Status (4)

Country Link
US (1) US10509393B2 (ja)
EP (1) EP3457239B1 (ja)
JP (1) JP6881174B2 (ja)
CN (1) CN109491324B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7255369B2 (ja) * 2019-06-06 2023-04-11 オムロン株式会社 制御システム
JP7230703B2 (ja) * 2019-06-20 2023-03-01 オムロン株式会社 制御装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210232A (ja) * 1994-01-17 1995-08-11 Fanuc Ltd 数値制御装置
JP3369470B2 (ja) 1998-05-28 2003-01-20 三菱電機株式会社 サーボシステムコントローラ
GB2354343B (en) * 1998-12-03 2002-12-18 Mitsubishi Electric Corp Servo system controller
JP2001138136A (ja) * 1999-11-10 2001-05-22 Toyoda Mach Works Ltd ネジ切り加工制御装置
JP3896076B2 (ja) * 2002-12-26 2007-03-22 ファナック株式会社 数値制御装置
JP2006287675A (ja) * 2005-04-01 2006-10-19 Renesas Technology Corp 半導体集積回路
IL203642A (en) * 2010-02-01 2014-01-30 Yesaiahu Redler A system and method for optimizing electric current utilization in the control of multiplex motors, and a projectile device containing it
JP5146512B2 (ja) * 2010-10-13 2013-02-20 オムロン株式会社 制御装置、制御システムおよび制御方法
JP4877423B1 (ja) 2011-03-15 2012-02-15 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
JP6116858B2 (ja) * 2012-10-26 2017-04-19 株式会社東芝 制約充足解生成装置
JP6246915B2 (ja) * 2015-03-30 2017-12-13 三菱電機株式会社 数値制御装置
US10474128B2 (en) * 2015-11-16 2019-11-12 Jtekt Corporation Abnormality analysis system and analysis apparatus

Also Published As

Publication number Publication date
US10509393B2 (en) 2019-12-17
EP3457239B1 (en) 2021-06-09
JP2019053397A (ja) 2019-04-04
US20190079497A1 (en) 2019-03-14
EP3457239A1 (en) 2019-03-20
CN109491324B (zh) 2021-08-03
CN109491324A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
JP6946909B2 (ja) 制御システムおよび制御装置
JP6903275B2 (ja) 制御装置および制御方法
JP6806019B2 (ja) 制御装置
JP6950415B2 (ja) 制御装置
JP6919404B2 (ja) 制御装置
JP6950385B2 (ja) 制御装置および制御方法
JP2019061467A (ja) サポート装置およびサポートプログラム
JP6900863B2 (ja) 制御装置、制御方法および制御プログラム
JP6881174B2 (ja) 制御装置および制御方法
JP7020198B2 (ja) 制御装置および制御システム
JP7167516B2 (ja) 制御装置、制御方法、および制御プログラム
JP7231073B2 (ja) 制御装置および制御システム
JP2023151876A (ja) 制御装置、制御方法、開発支援装置、及びプログラム
JP2021026309A (ja) 制御システム、解析方法およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210325

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: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6881174

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250