JP2019067045A - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP2019067045A
JP2019067045A JP2017190344A JP2017190344A JP2019067045A JP 2019067045 A JP2019067045 A JP 2019067045A JP 2017190344 A JP2017190344 A JP 2017190344A JP 2017190344 A JP2017190344 A JP 2017190344A JP 2019067045 A JP2019067045 A JP 2019067045A
Authority
JP
Japan
Prior art keywords
command
control
program
application
application program
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.)
Granted
Application number
JP2017190344A
Other languages
English (en)
Other versions
JP6950415B2 (ja
Inventor
純児 島村
Junji Shimamura
純児 島村
哲司 若年
Tetsuji Wakatoshi
哲司 若年
知行 島村
Tomoyuki Shimamura
知行 島村
英詞 山本
Eiji Yamamoto
英詞 山本
征彦 仲野
Masahiko Nakano
征彦 仲野
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2017190344A priority Critical patent/JP6950415B2/ja
Priority to EP18176693.2A priority patent/EP3462255B1/en
Priority to CN201810600587.8A priority patent/CN109581976B/zh
Priority to US16/005,683 priority patent/US10908577B2/en
Publication of JP2019067045A publication Critical patent/JP2019067045A/ja
Application granted granted Critical
Publication of JP6950415B2 publication Critical patent/JP6950415B2/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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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/41865Total 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 job scheduling, process planning, material flow
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • 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
    • 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/4155Numerical 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 programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • 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]
    • 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/41815Total 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 the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • 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
    • 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/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25482Synchronize several sequential processes, adjust
    • 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/31261Coordination control
    • 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/32252Scheduling production, machining, job shop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)

Abstract

【課題】単一の制御装置において、シーケンスプログラムに加えて、複数のアプリケーションプログラムを並列的に実行させる際に、複数のアプリケーションプログラムの実行タイミングなどを容易に制御できる構成を提供する。【解決手段】制御装置100は、第1のアプリケーションプログラムが第1の特殊コマンドを含み、第2のアプリケーションプログラムが第1の特殊コマンドに対応する第2の特殊コマンドを含む場合に、指令演算部164は、第1のアプリケーションプログラムにおいて第1の特殊コマンド以降に記述されたコマンドに従う制御指令、および、第2のアプリケーションプログラムにおいて第2の特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングを基準として出力する。【選択図】図4

Description

本発明は、制御対象を制御するための制御装置に関する。
生産現場においては、様々なFA(Factory Automation)技術が広く普及している。このようなFAシステムは、PLC(プログラマブルコントローラ)といった制御装置だけではなく、CNC(Computer Numerical Control:コンピュータ数値制御)およびロボットなどの高度な動作が可能な各種アクチュエータなどを含む。このようなFAシステムはますます大規模化する傾向にある。
例えば、特開2016−194831号公報(特許文献1)は、複数のモータの制御を複数の制御プログラムで並列に実行することで実現する場合に、容易に制御プログラム間の同期を図ることが可能な制御装置を開示する。特許文献1は、制御プログラム1と制御プログラム2の実行開始のタイミングで、そのタイミングの1つ前の制御プログラム1の軸変数を制御プログラム2に受け渡す構成を開示する。すなわち、制御プログラム2の実行開始後に、制御プログラム1の軸変数が更新されたとしても、制御プログラム2への当該変数の受け渡しは行われないようになっている。
ロボットなどを制御するシステムにおいては、複数のプロセッサ間でメモリを共有する方式が採用されることもある。
例えば、特開2011−062798号公報(特許文献2)は、CPUを有するPLCとロボットCPUとからなるロボットシステムを開示する。このロボットシステムにおいては、ロボットCPUは、データを入出力するI/Oエリア内での位置と、この位置に書き込まれるデータと、によって定義された指示情報を、所定のプログラム言語で動作する指示送信装置から受信すると、定義に基づいて指示情報に応じた動作をロボットに行なわせる。特許文献2に開示されるロボットシステムにおいては、I/OエリアのデータをPLCおよびロボットCPUの間で共有する。
特開平01−280804号公報(特許文献3)は、数値制御装置(NC)と該NCに接続するプログラマブルロジックコントローラ(PLC)とを有する制御装置において、NCにPLCとの共有メモリを有する構成を開示している。
特開2003−228418号公報(特許文献4)は、産業用ロボットの制御装置(RC)とPLCの双方からアクセス可能なデュアルポートランダムアクセスメモリを有する産業用ロボットの制御装置を開示する。
特開平06−149329号公報(特許文献5)は、NC工作機械に付加して使用するロボットの制御装置を開示する。この制御装置において、操作パネルよりロボットプログラムの転送操作が入力されると、ロボットプログラムはプログラム保存用RAMから共通RAMに書き込まれ、CPUがそれを認識してロボットプログラム保存用RAM内にロボットプログラムを登録する。その後、操作パネルよりロボットプログラム運転操作を行なうと共通RAMにロボットプログラム運転指令が書き込まれ、CPUがそれを認識し、ロボットプログラム保存用RAM内に登録されているロボットプログラムを読みだしてロボットに指令することによりロボットプログラム運転が実行される。
また、アプリケーションプログラムにプログラムの実行自体を制御するためのコードを挿入する技術が存在する。
特開平08−234820号公報(特許文献6)は、複数のアクチュエータに同時動作を行わせるNCプログラムによる同時動作指令方式を開示する。同時動作指令方式においては、複数の汎用Mコードの同時動作開始を意味する指令と、同時動作解除を意味する指令とを予め特殊Mコードとして設定し、同時動作させる複数の汎用Mコードの並びの直前に、同時動作開始を意味する特殊Mコードを、並びの直後に同時動作解除を意味する特殊Mコードを配列してNCプログラムを作成し、このNCプログラムの実行に際しては、同時動作開始指令後、同時動作解除指令が出るまでは、アクチュエータからの動作確認を待つことなく、汎用Mコードを次々と記憶して直ちに実行する。
特開昭60−245002号公報(特許文献7)は、中央処理装置からの制御に応じて所定のプログラムに従って工作機械を数値制御する装置を開示する。この装置は、中央処理装置からドゥエル実行の指令を受けたとき該指令によって指定された時間動作するタイマと、外部的にドゥエルの終了を指令する手段とを具え、該タイマの動作中工作機械の動作を停留状態にしてドゥエルを実行するとともに該タイマの動作終了時またはドゥエル終了指令を受けたとき工作機械の動作停留を解除してドゥエルを終了することで、ドゥエルに対するスキップを行う。
また、特開2014−241018号公報(特許文献8)は、一つの加工プログラムによって、工作機械とロボットの両方を制御する制御装置を開示する。
特開2016−194831号公報 特開2011−062798号公報 特開平01−280804号公報 特開2003−228418号公報 特開平06−149329号公報 特開平08−234820号公報 特開昭60−245002号公報 特開2014−241018号公報
近年のICT(Information and Communication Technology)の進歩に伴って、制御装置の処理能力も飛躍的に向上しつつある。従来技術においては、NC工作機械やロボットは、PLCとは独立した専用の制御装置を用いて制御する構成が一般的であったが、これらの制御についても、PLCに含めたいというニーズが存在する。また、シーケンス制御、モーション制御、NC工作機械に対する制御、ロボットに対する制御を互いにより正確に同期させることで、生産効率を高めたいというニーズが存在する。従来技術は、これらのニーズに十分に応えるものではなかった。
上述の特許文献1は、複数のモータの制御を複数の制御プログラムで並列に実行する際に、一方の制御プログラムの軸変数を他方の制御プログラムに受け渡すことで、制御プログラム間の同期を実現することを開示するが、NC工作機械やロボットについては言及がなく、また、一方の制御プログラムから他方の制御プログラムへの軸変数を開示するのみであり、両制御プログラムをコード単位で同期させる方法については開示されていない。
上述の特許文献2〜5は、複数の制御装置あるいは複数のプロセッサ間でデータを共有することが前提であり、単一の制御装置で複数の処理を実行させることについては、何ら想定されていない。
特許文献6は、制御装置を用いてNC装置での同時動作を制御することを前提とするものであり、単一の制御装置で複数の処理を実行させることについては、何ら想定されていない。
特許文献7は、1つのプログラムにおけるドゥエル動作を開示するにすぎず、複数のプログラム間の同期実行については、何ら開示するものではない。
特許文献8は、一つの加工プログラムを工作機械およびロボット用のプログラムに分離することを開示するのみであり、工作機械とロボットとの間の同期実行などについては、何ら開示されていない。
本発明は、単一の制御装置において、シーケンスプログラムに加えて、複数のアプリケーションプログラムを並列的に実行させる際に、複数のアプリケーションプログラムの実行タイミングなどを容易に制御できる構成を提供することを一つの目的としている。
本開示の一例によれば、制御装置は、シーケンスプログラムと、逐次実行される第1および2のアプリケーションプログラムとを格納する記憶部を含む。第1および2のアプリケーションプログラムの各々は1または複数のコマンドを含む。制御装置は、制御周期毎にシーケンスプログラムを実行して制御指令を出力するプログラム実行部と、制御周期が同じまたは制御周期より長い第1の周期毎に第1のアプリケーションプログラムの少なくとも一部を構文解析して第1の内部コマンドを逐次生成するとともに、制御周期が同じまたは制御周期より長い第2の周期毎に第2のアプリケーションプログラムの少なくとも一部を構文解析して第2の内部コマンドを逐次生成する解析部と、解析部により生成される第1および第2の内部コマンドを格納する共有メモリと、第1および第2の内部コマンドに従って制御周期毎にそれぞれの制御指令を出力する指令演算部とを含む。第1のアプリケーションプログラムが第1の特殊コマンドを含み、第2のアプリケーションプログラムが第1の特殊コマンドに対応する第2の特殊コマンドを含む場合に、指令演算部は、第1のアプリケーションプログラムにおいて第1の特殊コマンド以降に記述されたコマンドに従う制御指令、および、第2のアプリケーションプログラムにおいて第2の特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングを基準として出力する。
この開示によれば、単一の制御装置において、複数のアプリケーションプログラムを並列的に実行させるにあたって、ユーザは、各アプリケーションプログラムに互いに対応する特殊コードをそれぞれ追加するだけで、各特殊コード以降に記述されたコマンドに従うそれぞれの制御指令を共通のタイミングを基準として出力させることができる。このような共通のタイミングを基準として出力を用いることで、複数の制御アプリケーションを互いに連係して動作させることができる。このような連係動作によって、生産設備の作業効率を高めて、生産性を向上させることができる。
上述の開示において、制御装置は、第1の特殊コマンドの直前に記述されたコマンドまでの実行完了、および、第2の特殊コマンドの直前に記述されたコマンドまでの実行完了を検知して、解析部に対して、共通のタイミングを通知する調停部をさらに含んでいてもよい。
この開示によれば、解析部自体が特殊コマンドに基づくタイミングの管理を行う必要がなく、制御装置の機能構成をより簡素化および独立化できる。
上述の開示において、第1の特殊コマンドおよび第2の特殊コマンドは、第1の特殊コマンド以降に記述されたコマンドに従う制御指令、および、第2の特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングから同時に出力するための命令を含んでいてもよい。
この開示によれば、複数の制御アプリケーションを同時に動作させるような用途において、制御周期の精度で同期を実現できる。
上述の開示において、第1の特殊コマンドは、第1の特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングから指定された時間だけ経過後に出力するための命令を含んでいてもよい。
この開示によれば、複数の制御アプリケーションを任意の時間差を保って並列的に動作させるような用途において、制御周期の精度で時間差を管理できる。
上述の開示において、第1のアプリケーションプログラムおよび第2のアプリケーションプログラムは、シーケンスプログラムにより更新される変数を実行開始条件として指定可能になっていてもよい。
この開示によれば、シーケンスプログラムにより制御される設備と、アプリケーションプログラムにより制御される制御アプリケーションとの間の同期や連係をより柔軟に実現できる。
上述の開示において、第1および第2の特殊コマンドは、コマンド本体に加えて、互いを対応付けるための引数が指定されてもよい。
この開示によれば、複数の特殊コマンドを各アプリケーションプログラムに記述する必要がある場合であっても、引数だけを指定すればよいので、プログラミングの手間を低減できる。
上述の開示において、解析部は、第1および第2のアプリケーションプログラムに記述されたコマンドから内部コマンドを生成するにあたって、当該内部コマンドの生成対象となるコマンド以降に記述されたコマンドも参照するようにしてもよい。
この開示によれば、アプリケーションプログラムから内部コマンドを生成するにあたって、その生成される内部コマンドの精度を向上させることができる。また、内部コマンドが軌跡を示す場合などには、より滑らかな軌跡を実現できる。
上述の開示において、解析部は、予め定められた実行周期毎にアプリケーションプログラムの構文解析を実行し、実行周期毎の構文解析の開始から実行完了までの期間において、共有メモリへの書込みを禁止するようにしてもよい。
この開示によれば、アプリケーションプログラムとシーケンスプログラムとの間で、共有される変数が処理の途中で変更させるような事態を防止できる。
本発明によれば、単一の制御装置において、シーケンスプログラムに加えて、複数のアプリケーションプログラムを並列的に実行させる際に、複数のアプリケーションプログラムの実行タイミングなどを容易に制御できる。
本実施の形態に係る制御装置におけるアプリケーションプログラムの実行例を説明するための模式図である。 本実施の形態に係る制御システムの全体構成例を示す模式図である。 本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置の機能構成例を示すブロック図である。 本実施の形態に係る制御装置における内部コマンドの生成処理を説明するための模式図である。 本実施の形態に係る制御装置における処理実行のタイミングの一例を示すタイムチャートである。 本実施の形態に係る制御装置の共有メモリへのアクセス処理の一例を示すタイムチャートである。 本実施の形態に係る制御装置において共通のタイミングを基準としたプログラム実行の実現例を示すシーケンス図である。 本実施の形態に係る制御装置において共通のタイミングを基準としたプログラム実行を実現するためのプログラム例を示す模式図である。 本実施の形態に係る制御装置によるロボットおよびNC工作機械の制御の一例を示すタイムチャートである。 本実施の形態に係る制御装置において共通のタイミングを基準としたプログラム実行を実現するための別のプログラム例を示す模式図である。 図11に示すプログラム例に対応するプログラム実行を示すタイムチャートである。 本実施の形態に係る制御装置においてシーケンスプログラムでの処理結果を条件としたアプリケーションプログラムの同期実行を実現するためのプログラム例を示す模式図である。 図13に示すプログラム例に対応するプログラム実行を示すタイムチャートである。 本実施の形態に係る表示機能部を有する制御装置の外観を示す模式図である。 本実施の形態に係る制御装置の共有メモリへのアクセス処理の別の一例を示すタイムチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。本実施の形態に係る制御装置100は、シーケンスプログラムと複数のアプリケーションプログラムとを実行する。これらのプログラムは、制御対象に応じて、ユーザによって任意に作成されるものであるため、以下の説明においては、便宜上、シーケンスプログラムおよび1または複数のアプリケーションプログラムを「ユーザプログラム」と総称することもある。
本明細書において、「シーケンスプログラム」は、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が算出されるプログラムを包含する概念である。「シーケンスプログラム」は、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131−3に従って記述された1または複数の命令からなるプログラムを包含する。「シーケンスプログラム」には、シーケンス命令および/またはモーション命令を含み得る。なお、「シーケンスプログラム」としては、国際規格IEC61131−3に従って記述された命令に限らず、PLC(プログラマブルコントローラ)の製造メーカまたはベンダーなどが独自に規定した命令を含むようにしてもよい。このように、「シーケンスプログラム」は、即時性および高速性が要求される制御に好適である。
本明細書において、「シーケンス命令」は、基本的には、入力値、出力値、内部値などを算出する1または複数の論理回路により記述された1または複数の命令を包含する用語である。基本的には、1回の制御周期において、「シーケンス命令」は、先頭から最終まで実行され、次の制御周期において、「シーケンス命令」は、先頭から最終までが再度実行される。
本明細書において、「モーション命令」は、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度などの数値を指令として算出するための1または複数の命令を包含する用語である。「モーション命令」についても、1回の制御周期において、ファンクションブロックや数値算出式などにより記述されたモーション命令のプログラム(モーションプログラム)の先頭から最終までが実行される。すなわち、制御周期毎に指令値は算出(更新)されることになる。
制御周期毎にシーケンスプログラムを実行することで出力される制御指令は、典型的には、シーケンス命令に従って決定されるデジタル出力のオン/オフ、ならびに、モーション命令に従って算出されるアナログ出力を含む。
本明細書において、「アプリケーションプログラム」は、逐次実行される任意のプログラムを包含する。典型的には、「アプリケーションプログラム」は、1行ずつ逐次実行して実行するインタプリタ方式で実行可能な任意の言語で記述されたプログラムを包含する。「アプリケーションプログラム」は、1または複数のコマンドにより記述される。
このような「アプリケーションプログラム」の一例として、NC工作機械を制御するためのプログラム(以下、「NCプログラム」とも称する。)がある。NC工作機械は、典型的には、旋盤加工、フライス盤、放電加工などの加工装置を含む。
また、「アプリケーションプログラム」の別の一例として、ロボットを制御するためのプログラムがある。ロボットは、典型的には、多関節型ロボットやスカラ型ロボットを含む。
NCプログラムは、予め定められた言語に従って記述される。一例として、NCプログラムは「G言語」を用いて記述され、ロボットを制御するためのプログラムは、専用のロボット言語(例えば、「M言語」と称されるコマンド群)を用いて記述されることが多い。
以下の説明において、例えば、NC工作機械および/またはおよびロボットを用いた、特定の加工または動作を行う装置または機械ならびにそれらの制御を包含して、「制御アプリケーション」と称することもある。
制御装置100は、各アプリケーションプログラムについて、制御周期が同じまたは制御周期より長いアプリケーション実行周期毎に当該アプリケーションプログラムの少なくとも一部を構文解析して内部コマンドを逐次生成し、生成された内部コマンドに従って制御周期毎に制御指令を出力する。
逐次実行されるアプリケーションプログラムは、本来的に、一定周期毎に制御指令を出力する処理には不向きであるため、制御周期毎の制御指令の出力に適した内部コマンドが生成される。このような内部コマンドは、制御周期毎に制御指令を出力できるものであれば、どのようなコードであってもよい。典型的には、内部コマンドは、時間を入力変数とする1または複数の関数、あるいは、時間を引数とする1または複数の命令であってもよい。
制御装置100において複数のアプリケーションプログラムが実行される場合には、制御装置100は、制御周期が同じまたは制御周期より長い第1の周期(アプリケーション実行周期T21)毎に第1のアプリケーションプログラムの少なくとも一部を構文解析して第1の内部コマンドを逐次生成するとともに、制御周期が同じまたは制御周期より長い第2の周期(アプリケーション実行周期T22)毎に第2のアプリケーションプログラムの少なくとも一部を構文解析して第2の内部コマンドを逐次生成する。そして、制御装置100は、第1および第2の内部コマンドに従って制御周期毎にそれぞれの制御指令を出力する。
例えば、ロボットを用いて、ワークをNC工作機械内に配置し、NC工作機械で処理された後のワークをロボットで取り出すような制御アプリケーションを想定する。このような制御アプリケーションにおいては、ロボットの動作タイミングとNC工作機械の動作タイミングと互いに連係させることが好ましい。例えば、ロボットによるワークの配置が完了次第、NC工作機械の動作を開始させることで開始の待ち時間を削減でき、あるいは、NC工作機械での加工が完了次第、ロボットにより処理済ワークを取り出すことで、次のワークの処理開始までの待ち時間を削減できる。
本実施の形態に係る制御装置100は、このようなそれぞれ別のアプリケーションプログラムによって制御される装置の動作タイミングをより緻密に制御することが可能である。
図1は、本実施の形態に係る制御装置100におけるアプリケーションプログラムの実行例を説明するための模式図である。図1には、複数のアプリケーションプログラム32−1,32−2の一例として、NCプログラムおよびロボットプログラムを想定する。
図1を参照して、NCプログラムにおいては、G言語に従って必要な動作を規定するためのコマンドが記述されている。NCプログラムの実行時には、各コマンドが逐次実行される。同様に、ロボットプログラムにおいても、必要な動作を規定するためのコマンドが記述されている。ロボットプログラムの実行時にも、各コマンドが逐次実行される。
図1に示すアプリケーションプログラム32−1は、通常の動作を規定するコマンドに加えて、50行目に「SyncStar(1)」という特殊コマンド320−1を含む。また、アプリケーションプログラム32−2についても、通常の動作を規定するコマンドに加えて、「SyncStar(1)」という特殊コマンド320−2を含む。
特殊コマンド320−1と特殊コマンド320−2とは、互いに対応付けられている。制御装置100は、あるアプリケーションプログラムにこのような特殊コマンドが発現すると、他のアプリケーションプログラムにおいて対応する特殊コマンドを基準として、2つのアプリケーションプログラムに従う制御指令を出力する。
すなわち、複数のアプリケーションプログラムに記述されるそれぞれの特殊コマンドは、各特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングを基準として出力することを命令するものである。図1に示す例では、アプリケーションプログラム32−1の特殊コマンド320−1以降のコマンドと、アプリケーションプログラム32−2の特殊コマンド320−2以降のコマンドとは、共通のタイミングを基準として実行を開始する。このように、制御装置100は、アプリケーションプログラム間でそれぞれのコマンドを、共通のタイミングを基準として実行させる、アプリケーションプログラムの調停処理を実行する。
図1に示すように、例えば、アプリケーションプログラム32−1の50行目に特殊コマンド320−1が記述されている場合において、その直前(すなわち、49行目)のコマンドが実行されると、アプリケーションプログラム32−2における対応する特殊コマンドの実行状態が確認される。図1には、アプリケーションプログラム32−2に含まれる特殊コマンド320−2の直前に記述されたコマンドの実行が、アプリケーションプログラム32−1の49行目のコマンドの実行完了より遅い例を示す。そのため、特殊コマンド320−1は、アプリケーションプログラム32−2に記述された特殊コマンド320−2の直前に記述されたコマンドの実行完了を待つ命令と同義となる。
アプリケーションプログラム32−2に含まれる特殊コマンド320−2の直前に記述されたコマンドの実行が完了すると、アプリケーションプログラム32−1の特殊コマンド320−1以降のコマンド、および、アプリケーションプログラム32−2の特殊コマンド320−2以降のコマンドは、共通のタイミングを基準として実行開始される。
図1に示す例では、アプリケーションプログラム32−1の特殊コマンド320−1以降に記述されたコマンド「G01 X20 Y10」、および、アプリケーションプログラム32−2の特殊コマンド320−2以降に記述されたコマンド「MOVE X200 Y100」は、共通のタイミングを基準に同時に実行開始される。
なお、図1には、アプリケーションプログラム32−1に記述された特殊コマンド320−1迄のコマンドの実行が、アプリケーションプログラム32−2に記述された特殊コマンド320−2迄のコマンドの実行より早い場合を例示するが、その逆においても同様の動作が行われる。
すなわち、アプリケーションプログラム32−2に記述された特殊コマンド320−2迄のコマンドの実行が、アプリケーションプログラム32−1に記述された特殊コマンド320−1迄のコマンドの実行より早い場合には、特殊コマンド320−2は、アプリケーションプログラム32−1に記述された特殊コマンド320−1の直前に記述されたコマンドの実行完了を待つ命令と同義となる。
本明細書において、「制御指令を共通のタイミングを基準として出力する」は、対象のそれぞれのコマンドに従う制御指令を共通のタイミングを基準として同時に出力開始する場合に加えて、対象のそれぞれのコマンドに従う制御指令を共通のタイミングを基準としてそれぞれのオフセット時間経過後に出力開始する場合を含む。例えば、アプリケーションプログラム32−1の対象となるコマンドについては、共通のタイミングが到来すると実行を開始し、アプリケーションプログラム32−2の対象となるコマンドについては、共通のタイミングから予め定められたオフセット時間だけ経過すると実行を開始するようにしてもよい。このようなオフセット時間を用いることで、複数の制御アプリケーションを所定時間だけずらして並列的に動作させることができる。このようなオフセット時間を設定することで、例えば、NC工作機械にロボットが移動するまでに要する時間などを考慮した並列動作を容易に実現できる。
説明の便宜上、図1には、特殊コマンド320−1および特殊コマンド320−2を同一のコードを用いて規定しているが、これに限らず、互いに対応付けができるコードであれば、どのようなコードを用いてもよい。例えば、それぞれの言語形式に準じたコードを特殊コマンドとして用いるようにしてもよい。各アプリケーションプログラムの言語形式に準じた特殊コマンドを採用することで、それぞれのプログラムの開発者にとって、特殊コマンドの使用をより容易化できる。
また、図1には、2つのアプリケーションプログラムについて説明したが、3つ以上のアプリケーションプログラムにそれぞれ特殊コマンドを記述することで、対象となる3つ以上のアプリケーションプログラムの間で、各特殊コマンド以降に記述されたそれぞれのコマンドに従う制御指令を、共通のタイミングを基準として出力することができる。
また、同一のアプリケーションプログラム内に異なる複数のアプリケーションプログラムとそれぞれ対応する特殊コマンドを記述してもよい。
以上のように、単一の制御装置100が複数のアプリケーションプログラムを実行する場合に、それぞれのアプリケーションプログラムに対応する特殊コマンドを記述することで、各アプリケーションプログラムにおいて特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングを基準として出力することができる。それぞれのアプリケーションプログラムに記述されたコマンドに従う制御指令を共通のタイミングを基準として出力することで、複数のアクチュエータや装置を連係して動作させるにあたって、連係動作をより緻密に制御できる。すなわち、制御装置100の制御周期の単位で連係動作を制御できるので、従来に比較して、待ち時間などを削減でき、それによって、生産効率を高めることができる。
以下、本発明のより具体的な応用例として、本実施の形態に係る制御装置100のより詳細な構成および処理について説明する。
<B.制御システムの全体構成例>
まず、本実施の形態に係る制御装置100を含む制御システム1の全体構成例について説明する。図2は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図2には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。
図2を参照して、制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器500との間でデータを遣り取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」と総称する。すなわち、本明細書の「フィールドネットワーク」は、狭義の「フィールドネットワーク」に加えて「フィールドバス」を含み得る概念である。
フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
フィールドネットワーク2には、任意のフィールド機器500を接続することができる。フィールド機器500は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。
フィールドネットワーク2を介して、制御装置100とフィールド機器500との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数100μsecオーダ〜数10msecオーダのごく短い周期で更新されることになる。このようなデータの遣り取りは、フィールド機器500において収集または生成されたデータ(以下、「入力データ」とも称す。)を制御装置100へ送信する処理、および、制御装置100からフィールド機器500に対する制御指令などのデータ(以下、「出力データ」とも称す。)を送信する処理を含む。このような遣り取りされるデータの更新処理が上述の「入出力リフレッシュ処理」に相当する。
図2に示す構成例においては、フィールド機器500は、リモートI/O(Input/Output)装置510と、ロボット520およびロボットコントローラ522と、NC工作機械530と、サーボドライバ540およびサーボモータ542とを含む。
サーボモータ542は、コンベア544を駆動して、NC工作機械530の前に配置されたワークテーブル546にワークWを搬送する。ロボット520は、ワークテーブル546上の処理前のワークWをNC工作機械530内に配置し、NC工作機械530での処理済ワークWを取り出してワークテーブル546上に配置する。
フィールド機器500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、ならびに、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)などを採用することができる。
リモートI/O装置510は、典型的には、フィールドネットワーク2を介して通信を行う通信カプラと、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。
リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
ロボットコントローラ522は、制御装置100からの制御指令(位置指令または速度指令など)に従って、軌跡計算および各軸の角度計算などを行うとともに、計算結果に従って、ロボット520を構成するサーボモータなどを駆動する。
サーボドライバ540は、制御装置100からの制御指令(例えば、位置指令または速度指令など)に従って、サーボモータ542を駆動する。
制御装置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を複数配置してもよい。すなわち、制御装置100は、1または複数のプロセッサ102、および/または、1または複数のコアを有するプロセッサ102を有している。チップセット104は、プロセッサ102および周辺エレメントを制御することで、制御装置100全体としての処理を実現する。主メモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
プロセッサ102は、ストレージ108に格納された各種プログラムを読出して、主メモリ106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。ストレージ108には、基本的な機能を実現するためのシステムプログラム34に加えて、制御対象の製造装置や設備に応じて作成されるシーケンスプログラム30および1または複数のアプリケーションプログラム32(総称して、「ユーザプログラム」)が格納される。すなわち、ストレージ108は、シーケンスプログラム30と、逐次実行される複数のアプリケーションプログラム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の機能構成例について説明する。図4は、本実施の形態に係る制御装置100の機能構成例を示すブロック図である。
図4には、制御装置100が制御アプリケーション1および制御アプリケーション2を制御する構成例を示す。制御アプリケーション1および制御アプリケーション2の各々は、典型的には、リレーやコンタクタなどのI/Oデバイスおよびサーボモータなどの各種アクチュエータを含む。制御アプリケーション1および制御アプリケーション2に加えて、他のI/Oデバイスおよび各種センサについても、フィールドネットワーク2を介して制御装置100と接続されている。
制御装置100は、上位ネットワーク6を介して接続されているサーバ装置300などから、生産の開始/終了といった命令を受ける。サーバ装置300は、レシピ情報38(生産品種や生産に適したパラメータなどの情報)を制御装置100に送信することもある。制御装置100は、図示しない他の制御装置100とネットワーク接続されていてもよい。
図4を参照して、制御装置100は、PLC処理エンジン150と、アプリケーション解析部160と、アプリケーション調停部162と、制御指令演算部164と、共有メモリ170と、共有メモリ制御部172と、表示機能部174と、フィールドネットワークインターフェイス176と、上位ネットワークインターフェイス178とを含む。
PLC処理エンジン150は、シーケンスプログラム30の実行および制御装置100全体の処理を管理する。より具体的には、PLC処理エンジン150は、シーケンスプログラム実行部152と、スケジューラ154とを含む。
シーケンスプログラム実行部152は、制御周期毎にシーケンスプログラム30を実行(スキャン)して制御指令を出力する。
スケジューラ154は、制御装置100において実行される処理の順序を調停するものである。制御装置100においては、1または複数の処理を「タスク」として登録し、スケジューラ154は、予め設定された優先度に基づいて、1または複数のタスクに対してプロセッサリソースを割当てる。
アプリケーション解析部160は、アプリケーションプログラム32の少なくとも一部を構文解析して、内部コマンド40を生成する。アプリケーション解析部160には、異なる種類のアプリケーションプログラム32が提供されることもある。アプリケーション解析部160は、予め格納されたアプリケーションプログラム32を実行するようにしてもよいし、サーバ装置300から適宜送信されるアプリケーションプログラム32を実行するようにしてもよい。
例えば、アプリケーション解析部160が2つのアプリケーションプログラム(第1および第2のアプリケーションプログラム)を処理する場合には、制御周期が同じまたは制御周期より長い第1のアプリケーション実行周期毎に第1のアプリケーションプログラムの少なくとも一部を構文解析して第1の内部コマンドを逐次生成するとともに、制御周期が同じまたは制御周期より長い第2のアプリケーション実行周期毎に第2のアプリケーションプログラムの少なくとも一部を構文解析して第2の内部コマンドを逐次生成することになる。
制御指令演算部164は、シーケンスプログラム30に含まれるモーション命令に従って、制御指令を制御周期毎に算出する。また、制御指令演算部164は、アプリケーション解析部160により、アプリケーションプログラム毎に逐次生成される内部コマンド40に従って、制御指令を制御周期毎に算出する。
シーケンスプログラム実行部152および制御指令演算部164は、制御周期毎に処理を実行する(高優先タスク)。一方、アプリケーション解析部160によるアプリケーションプログラム32に対する処理は、制御周期の整数倍であるアプリケーション実行周期T2(第2の周期)毎に実行される(低優先タスク)。
アプリケーション調停部162は、アプリケーション解析部160において複数のアプリケーションプログラム32が処理される場合に、その実行タイミングなどを調停する。アプリケーション調停部162の処理の詳細については、後述する。
共有メモリ170は、PLC処理エンジン150、アプリケーション解析部160、および制御指令演算部164の間で共有されるデータを保持する。共有されるデータは、構造体変数として格納されるようにしてもよい。例えば、アプリケーション解析部160により逐次生成される内部コマンド40は、共有メモリ170の構造体変数に逐次書込まれる。すなわち、共有メモリ170は、アプリケーション解析部160により生成されるアプリケーション毎の内部コマンドを格納する。
共有メモリ制御部172は、共有メモリ170に対するデータ読書きの排他制御、および、外部からの要求に応じた共有メモリ170へのアクセスなどを行う。例えば、共有メモリ制御部172は、共有メモリ170上のデータをフィールドネットワークインターフェイス176へ与えることで、フィールドネットワーク2を介して接続される任意のフィールド機器500へ送信される。
表示機能部174は、共有メモリ170に格納されるデータおよびアプリケーション解析部160による処理結果などをユーザなどへ出力する。
フィールドネットワークインターフェイス176は、フィールドネットワーク2を介して接続されているフィールド機器500との間のデータの遣り取りを仲介する。
上位ネットワークインターフェイス178は、上位ネットワーク6を介して接続されている装置との間のデータの遣り取りを仲介する。
<E.内部コマンドの一例>
次に、制御装置100のアプリケーション解析部160がアプリケーションプログラム32を構文解析して生成する内部コマンド40の一例について説明する。アプリケーションプログラム32としては、インタプリタ方式で実行可能な任意の言語で記述されたどのようなプログラムを採用することもできるが、以下の説明においては、NCプログラムまたはロボットプログラムのように、1または複数のコマンドのより予め軌跡を規定するプログラムを想定する。
図5は、本実施の形態に係る制御装置100における内部コマンド40の生成処理を説明するための模式図である。図5(A)を参照して、アプリケーション解析部160がアプリケーションプログラム32を構文解析して、アプリケーションプログラム32に含まれる各命令が構文解析される((1)アプリケーションプログラム解析)。アプリケーションプログラム32を構文解析によって、規定された軌跡が内部的に生成される((2)軌跡生成)。アプリケーションプログラム32は、区間毎に軌跡を規定する命令を含むことが多いので、各命令に対応する区間毎に軌跡が生成される。
複数の軸からなるグループが規定される場合には、軸毎に軌跡を生成してもよいし、当該グループに属する軸の全体の挙動を規定する軌跡を生成してもよい。
アプリケーション解析部160は、生成した軌跡を示す内部コマンド40(典型的には、1または複数の関数)を生成する((3)内部コマンド生成)。軌跡が区間毎に規定される場合には、各区間に対応する内部コマンド40が生成される。
以上のように、アプリケーション解析部160は、アプリケーションプログラム32を構文解析して軌跡上の通過点を算出し、算出した通過点に基づいて内部コマンドを生成するようになっている。
複数の区間を共通の内部コマンド40で規定してもよいし、1つの区間をさらに分割して個別の内部コマンド40をそれぞれ生成してもよい。すなわち、アプリケーションプログラム32の命令または当該命令によって規定される軌跡の区間と、生成される内部コマンド40の数とを一致させる必要はなく、任意に生成すればよい。また、内部コマンド40の出力形態についても、要求される制御周期の時間幅などを考慮して、適宜設計されてもよい。
図5(A)に示すように、内部コマンド40の一例としては、時間と指令値との関係を規定する関数であってもよい。図5(A)に示す例では、内部的に生成された軌跡は、直線の組合せで規定できる。一例として、X軸に関して、直線区間毎(区間1〜区間3)の軌跡を時間と速度との関係を示すFx1(t),Fx2(t),Fx3(t)を出力できる。同一のグループに属する他の軸(例えば、Y軸およびZ軸)についても、それぞれ同様に関数が出力されてもよい。
図5(B)に示すように、制御指令演算部164が、制御周期毎に、生成された内部コマンド40に従って制御指令を算出することで、制御周期毎に制御指令が出力される((4)指令値演算)。すなわち、各区間に対応する関数に、各制御周期の時刻を入力することで、当該時刻における指令値を一意に決定できる。何らかのグループが設定されている場合には、当該グループに属する各軸について、指令値を同期して出力することが好ましい。
上述の図5には、一例として、CNCで用いられるG言語により記述されたコマンドの一例を示すが、これに限らず、任意のインタプリタ方式で実行されるプログラムであれば、どのような言語を用いてもよい。また、処理対象の言語形式に応じて、生成される内部コマンド40の形式を異ならせてもよい。
<F.制御装置における処理実行のタイミング>
次に、本実施の形態に係る制御装置100における処理実行のタイミングについて説明する。図6は、本実施の形態に係る制御装置100における処理実行のタイミングの一例を示すタイムチャートである。図6に示すタイムチャートにおいては、制御装置100が、アプリケーション実行周期T21毎にアプリケーションプログラム1を構文解析し、アプリケーション実行周期T22毎にアプリケーションプログラム2を構文解析する例を示す。
図6を参照して、高優先タスクとして、入出力リフレッシュ処理10と、シーケンスプログラムに含まれるシーケンス命令に従う制御指令に出力処理12と、シーケンスプログラムに含まれるモーション命令に従う制御指令の出力処理16と、アプリケーションプログラム1に従う制御指令の出力処理14−1と、アプリケーションプログラム2に従う制御指令の出力処理14−2とが設定されている。
アプリケーションプログラム1およびアプリケーションプログラム2の構文解析処理20−1,20−2は、それぞれ低優先タスク1,2として設定されている。
アプリケーション解析部160(図4)は、アプリケーション実行周期T21(図6に示す例では、制御周期T1の2倍)毎に、アプリケーションプログラム1の少なくとも一部を構文解析して内部コマンド40を逐次生成する。生成される内部コマンド40は、逐次、共有メモリ170内のバッファ170−1にキューイング(エンキュー)される。
また、アプリケーション解析部160(図4)は、アプリケーション実行周期T22(図6に示す例では、制御周期T1の3倍)毎に、アプリケーションプログラム2の少なくとも一部を構文解析して内部コマンド40を逐次生成する。生成される内部コマンド40は、逐次、共有メモリ170内のバッファ170−2にキューイング(エンキュー)される。
なお、アプリケーションプログラム1およびアプリケーションプログラム2をそれぞれ処理する互いに独立した2つのアプリケーション解析部160を用意してもよい。
低優先タスクの各々は、アプリケーション実行周期T21またはT22内に処理を完了できればよい。図6に示す例において、複数の低優先タスクを同時実行できないので、一方の低優先タスクは中断(サスペンド)状態で待機する。
高優先タスクは、制御周期T1毎に実行される。アプリケーションプログラムに従う制御指令の出力処理14−1,14−2においては、アプリケーション解析部160により生成される内部コマンド40は、共有メモリ170のバッファ170−1,170−2からそれぞれ読出されて(デキューされて)、当該制御周期T1における制御指令が算出される。
説明の便宜上、アプリケーション実行周期T21が制御周期T1の2倍であり、アプリケーション実行周期T22が制御周期T1の3倍である場合を例示したが、これに限らず、アプリケーション実行周期T21,T22は、対象となるアプリケーションプログラムの種類に応じて、制御周期T1の整数倍として設定でき、制御周期T1と同じ長さに設定することもできる。
<G.共有メモリのアクセス処理>
次に、本実施の形態に係る制御装置100における共有メモリへのアクセス処理について説明する。上述したように、制御装置100においては、異なる実行周期で複数のプログラムが実行される。これらのプログラムの実行に必要なデータやこれらのプログラムの実行により算出されるデータの全部または一部は、共有メモリ170に格納されてもよい。共有メモリ170に格納されるデータは、プログラム間で相互に参照可能になる。
以下では、実行周期が同一ではないことを考慮した、共有メモリ170へのアクセス処理の一例について説明する。
図7は、本実施の形態に係る制御装置100の共有メモリ170へのアクセス処理の一例を示すタイムチャートである。図7に示すタイムチャートにおいては、PLC処理エンジン150およびアプリケーション解析部160が共有メモリ170へアクセスする処理例を示す。
PLC処理エンジン150は、予め定められた制御周期T1毎にシーケンスプログラム30をサイクリックに実行する。各制御周期T1において、PLC処理エンジン150は、フィールドネットワークインターフェイス176との間で入出力リフレッシュ処理を実行する。
具体的には、PLC処理エンジン150は、フィールドネットワーク2を介して接続されているフィールド機器500に対する制御指令(出力データ)をフィールドネットワークインターフェイス176へ出力するとともに、フィールドネットワークインターフェイス176を介して、フィールド機器500からの計測値および状態値(入力データ)を取得する。PLC処理エンジン150とフィールドネットワークインターフェイス176との間のデータの遣り取り(入出力リフレッシュ処理)は、制御周期T1毎に繰返し実行される。フィールドネットワークインターフェイス176は、所定のフレーム伝送周期毎に、フィールド機器500との間で出力データおよび入力データを遣り取りする。
そのため、PLC処理エンジン150とフィールドネットワークインターフェイス176との間の制御周期T1毎のデータ遣り取りによって、PLC処理エンジン150とフィールド機器500との間では、所定周期毎に出力データおよび入力データを更新できる。
PLC処理エンジン150がフィールドネットワークインターフェイス176を介して取得した入力データの一部または全部は、共有メモリ170に書込まれてもよい。この書込み処理によって、アプリケーション解析部160は、PLC処理エンジン150が取扱うデータにアクセスできるようになる。
PLC処理エンジン150は、制御周期T1毎に、共有メモリ170にアクセスして必要なデータを読込む。PLC処理エンジン150が共有メモリ170から読込んだデータの一部または全部は、次の制御周期T1において、フィールドネットワークインターフェイス176へ出力されてもよい。この出力処理によって、アプリケーション解析部160が取扱うデータをフィールド機器500へ制御指令として出力することもできる。
本実施の形態に係る制御装置100において、アプリケーション解析部160によるアプリケーションプログラム32に対する構文解析は、制御周期が同じまたは制御周期より長いアプリケーション実行周期T2毎に実行される。すなわち、アプリケーション解析部160は、予め定められたアプリケーション実行周期毎にアプリケーションプログラム32の構文解析を実行する。
このアプリケーション解析部160によるアプリケーションプログラム32の構文解析中において、処理対象の変数値が変更されないように、以下のような共有メモリに対する排他処理が実行されることが好ましい。
具体的には、図7に示すように、各アプリケーション実行周期において、アプリケーション解析部160が対象のアプリケーションプログラム32に対する処理の実行を開始すると、アプリケーション解析部160は共有メモリ170への書込み禁止を設定する。すなわち、アプリケーション解析部160は、アプリケーション実行周期毎の構文解析の開始から実行完了までの期間において、共有メモリ170への書込みを禁止する。なお、共有メモリ170の領域を複数のアプリケーションプログラム32に対してそれぞれに割当てている場合には、各アプリケーションプログラム32に割当てられた一部の領域のみを書込み禁止の対象としてもよい。
アプリケーション解析部160により書込みが禁止された期間(書込み禁止期間)において、PLC処理エンジン150からの当該領域へのデータの書込みが禁止される。そのため、PLC処理エンジン150は、各制御周期T1におけるシーケンスプログラム30の実行前に共有メモリ170から必要となるデータを読込むものの、シーケンスプログラム30の実行により算出される制御指令などの出力データを共有メモリ170へ書込むことはしない。
アプリケーション実行周期T2において、アプリケーションプログラム32に対する構文解析の処理の実行が完了すると、アプリケーション解析部160は、当該構文解析の処理の実行により生成されたデータ(典型的には、内部コマンド40を記述するデータ)を共有メモリ170へ書込み、続いて、共有メモリ170への書込み禁止を解除する。
共有メモリ170への書込み禁止が解除されると、PLC処理エンジン150は、シーケンスプログラム30の実行により算出される制御指令などのデータを共有メモリ170へ書込む。PLC処理エンジン150により共有メモリ170へ書込まれたデータは、次のアプリケーション実行周期において、アプリケーション解析部160により読込まれることになる。すなわち、アプリケーション解析部160は、各アプリケーション実行周期T2の開始時には、PLC処理エンジン150が同一の制御周期T1において共有メモリ170へ書込んだデータを参照できる。つまり、PLC処理エンジン150とアプリケーション解析部160との間のデータの遣り取りは、同一の制御周期T1内で完了することになる。
このように、本実施の形態に係る制御装置100においては、アプリケーション解析部160によるアプリケーションプログラム32に対する1回の構文解析に要する処理時間(アプリケーション実行周期T2)は、シーケンスプログラム30(シーケンス命令および/またはモーション命令)の実行周期(制御周期T1)と同じか、あるいは、実行周期(制御周期T1)より長い。このような実行形態において、アプリケーションプログラム32に対する1回の構文解析処理の途中で、シーケンスプログラム30からの制御指令などのデータが変更することを防止するために、アプリケーション解析部160は、自身の処理が完了するまでの間、他からの共有メモリ170へのデータの書込みを禁止する。但し、このデータの書込み禁止期間であっても、他からのデータ読込み(データ参照)は可能とされる。
アプリケーション解析部160は、アプリケーション実行周期T2における構文解析の処理が完了した時点で、共有メモリ170へのデータ書込みの禁止を解除する。この解除以降、PLC処理エンジン150から共有メモリ170へのデータ書込みが可能となる。
アプリケーション解析部160は、アプリケーションプログラム32に対する解析処理の実行中においては、アプリケーションプログラム32に関する情報が途中で変化することを防止するために、各アプリケーション実行周期T2において生成されたデータを処理完了後に共有メモリ170へ書込む。
アプリケーション解析部160から共有メモリ170へ書込まれたデータは、次の制御周期T1において、共有メモリ170から読出され、当該制御周期T1において算出されたシーケンスプログラム30に基づく制御指令とともに、フィールド機器500へ与えられる。そのため、シーケンスプログラム30に基づく制御指令およびアプリケーションプログラム32に基づく制御指令を同期して、フィールド機器500へ与えることができる。
<H.共通のタイミングを基準としたプログラム実行:その1>
次に、上述の図1に示すような複数のアプリケーションプログラムについて、共通のタイミングを基準としたプログラム実行を実現するための一例について説明する。
シーケンスプログラム30は、制御周期毎に全体がスキャン実行される。これに対して、アプリケーションプログラム32は、インタプリタ方式で、プログラムが一行ずつ解釈および実行される。本実施の形態に係る制御装置100においては、アプリケーション解析部160は、アプリケーションプログラム32に含まれるコマンドをある程度余分に構文解析(先読み(Look Ahead))しており、特殊コマンドの存在を予め知ることができる。
すなわち、アプリケーション解析部160が先読み動作を行う場合には、アプリケーションプログラム32に記述されたコマンドから内部コマンドを生成するにあたって、当該内部コマンドの生成対象となるコマンド以降に記述されたコマンドも参照する。そのため、アプリケーション解析部160は、複数のアプリケーションプログラム32の間で共通のタイミングを基準として実行すべきコマンド(行)を事前に特定できる。
図1に示すように、複数のアプリケーションプログラム32のそれぞれにおいて、共通のタイミングを基準として実行すべきコマンドが記述された行の直前に、予め定められたキーワードを含む特殊コマンドを記述する。それぞれの特殊コマンド以降に記述されたコマンドは、すべてのアプリケーションプログラムが実行開始可能になった後に実行が開始される。
このように、複数のアプリケーションプログラムのコマンドが、共通のタイミングを基準として実行開始され、それぞれのコマンドによって生成される制御指令は、共通のフィールドネットワーク2を介して接続されたそれぞれの制御アプリケーションへ同時に与えられる。これによって、NC工作機械とロボットとの間で連係動作を実現できる。
それぞれのアプリケーションプログラム32が実行開始可能になったか否かについては、典型的には、アプリケーション調停部162によって管理される。
図8は、本実施の形態に係る制御装置100において共通のタイミングを基準としたプログラム実行の実現例を示すシーケンス図である。図8には、一例として、制御装置100がアプリケーションプログラム1およびアプリケーションプログラム2をそれぞれ処理する場合を示す。
図8を参照して、制御指令演算部164は、共有メモリ170に逐次格納されるそれぞれの内部コマンドを読出して(シーケンスSQ2)、それぞれの制御指令を算出する(シーケンスSQ4)。シーケンスSQ4の処理は制御周期T1毎に繰返される。シーケンスSQ2の処理は、内部コマンドに基づく制御指令の算出に応じて、適宜実行される。
アプリケーション解析部160は、アプリケーションプログラム1に対する構文解析の先読み動作によって、特殊コマンドを発見すると(シーケンスSQ10)、当該特殊コマンド以降に記述されたコマンドに基づいて内部コマンドを生成する(シーケンスSQ12)。そして、アプリケーション解析部160は、アプリケーションプログラム1の当該特殊コマンド以前に記述されたコマンドに基づいて生成された先行の内部コマンドの処理状況を確認する(シーケンスSQ14)。先行する内部コマンドの処理状況の確認は、共有メモリ170を参照することで実現されてもよいし、制御指令演算部164での制御指令の算出処理の状況を示すフラグなどを参照することで実現されてもよい。
アプリケーション解析部160は、先行の内部コマンドに基づく制御指令の算出が完了したことを検知すると、アプリケーションプログラム1の処理が特殊コマンドに到達したこと(すなわち、実行開始可能になったこと)を、アプリケーション調停部162へ通知する(シーケンスSQ16)。
同様に、アプリケーション解析部160は、アプリケーションプログラム2に対する構文解析の先読み動作によって、特殊コマンドを発見すると(シーケンスSQ20)、当該特殊コマンド以降に記述されたコマンドに基づいて内部コマンドを生成する(シーケンスSQ22)。そして、アプリケーション解析部160は、アプリケーションプログラム2の当該特殊コマンド以前に記述されたコマンドに基づいて生成された先行の内部コマンドの処理状況を確認する(シーケンスSQ24)。
アプリケーション解析部160は、先行の内部コマンドに基づく制御指令の算出が完了したことを検知すると、アプリケーションプログラム2の処理が特殊コマンドに到達したこと(すなわち、実行開始可能になったこと)を、アプリケーション調停部162へ通知する(シーケンスSQ26)。
アプリケーション調停部162は、アプリケーションプログラム1およびアプリケーションプログラム2のいずれからも、実行開始可能になった通知を受けると、アプリケーション解析部160に対して、アプリケーションプログラム1およびアプリケーションプログラム2についての実行開始通知を送出する(シーケンスSQ30)。
実行開始通知を受けて、アプリケーション解析部160は、シーケンスSQ12において生成済の内部コマンド、および、シーケンスSQ22において生成済の内部コマンドを共有メモリ170内のそれぞれのバッファにキューイング(エンキュー)する(シーケンスSQ28)。
制御指令演算部164は、共有メモリ170のそれぞれのバッファから内部コマンドを読出して(デキューして)、それぞれの制御指令を算出する。
このように、アプリケーション調停部162は、アプリケーションプログラム1の特殊コマンドの直前に記述されたコマンドまでの実行完了、および、アプリケーションプログラム2の特殊コマンドの直前に記述されたコマンドまでの実行完了を検知して、アプリケーション解析部160に対して、共通のタイミングを通知する。
以上のような内部処理によって、共通のタイミングを基準としたプログラム実行を実現できる。
図9は、本実施の形態に係る制御装置100において共通のタイミングを基準としたプログラム実行を実現するためのプログラム例を示す模式図である。図9に示すシーケンスプログラム30は、図2に示す、コンベア544、NC工作機械530、およびロボット520の制御に向けられる。
図9に示すシーケンスプログラム30は、コンベア544を駆動するサーボモータ542を制御するためのモーション命令を規定するファンクションブロック302と、NC工作機械530を制御するためのアプリケーションプログラム32−1(NCプログラム)の実行開始を指示するファンクションブロック304と、ロボット520を制御するためのアプリケーションプログラム32−2(ロボットプログラム)の実行開始を指示するファンクションブロック306とを含む。
ファンクションブロック302,304,306の各々は、運転開始フラグがTRUEになることで、指定された処理を実行する。
アプリケーションプログラム32−1およびアプリケーションプログラム32−2には、共通のタイミングを基準として実行するための特殊コマンド(SyncStart)を含む。図9に示すアプリケーションプログラム32−1においては、「G01 X−10 Y−50」とのコマンドと、「G01 X20 Y10」とのコマンドの間に、特殊コマンド320−1が配置されている。また、アプリケーションプログラム32−2においては、「MOVE X30 Y10」とのコマンドと、「MOVE X200 Y100」とのコマンドとの間に、特殊コマンド320−2が配置されている。
特殊コマンド320−1および特殊コマンド320−2には、互いを関連付けるキーワードとして、引数としての「1」が付加されている。特殊コマンド320−1と特殊コマンド320−2との間で、基準タイミングを合せる処理が実行される。すなわち、特殊コマンド320−1および特殊コマンド320−2は、コマンド本体(SyncStart)に加えて、互いを対応付けるための引数が指定される。そして、特殊コマンド320−1以降に記述されたコマンドおよび特殊コマンド320−2以降に記述されたコマンドは、共通のタイミングを基準として実行される。
図9に示すように、共通のタイミングを基準として実行させる対象のコマンドの直前に、基準タイミング合わせを指示するための特殊コマンド320−1,320−2を配置する。これらの特殊コマンドのうち、引数の値(図9に示す例では、「1」)が一致するものが互いに対応付けられた特殊コマンドであると判断される。そして、これらの特殊コマンドが記載された次の行に記載のコマンドは、共通のタイミングを基準として実行される。図9に示す例では、それぞれの特殊コマンド以降に記述されたコマンド同士が共通のタイミングを基準として同時に実行開始される。
図9に示す例において、特殊コマンド320−1および特殊コマンド320−2は、特殊コマンド320−1以降に記述されたコマンドに従う制御指令、および、特殊コマンド320−2以降に記述されたコマンドに従う制御指令を、共通のタイミングから同時に出力するための命令に相当する。
このようなシーケンスプログラム30およびアプリケーションプログラム32を用意することで、上述の図1に示すように、ロボット520およびNC工作機械530を共通のタイミングを基準として動作させることができる。
<I.共通のタイミングを基準としたプログラム実行:その2>
次に、上述の図1に示すような複数のアプリケーションプログラムについて、共通のタイミングを基準としたプログラム実行を実現するための別の一例について説明する。上述の説明においては、特殊コマンド以降に記述されたコマンドを、共通のタイミングを基準に同時に実行開始する例を示したが、これに限らず、共通のタイミングを基準として一方または両方のコマンドに従う制御指令を各オフセット時間経過後に出力開始するようにしてもよい。
図10は、本実施の形態に係る制御装置100によるロボット520およびNC工作機械530の制御の一例を示すタイムチャートである。図15を参照して、典型的な動作例として、ロボット520は、コンベア544により搬送されるワークWをピックアップして、NC工作機械530の内部に配置する。NC工作機械530は、ワークWに対して加工処理を実施する。そして、ロボット520は、NC工作機械530の内部からワークWを取り出して、次工程の受入れ位置へ当該ワークWを配置する。
図10には、NC工作機械530においてワークWに対する加工が終了する直前の動作例を示す。NC工作機械530のワークWに対する加工処理が時刻t2に終了するとすれば、ロボット520は、時刻t2において加工処理が終了したワークWを取り出すことが好ましい。そのため、ロボット520は、時刻t2において、NC工作機械530のワーク取出位置に到着できるように、時刻t1から動作を開始する。そして、ロボット520は、時刻t2においてワークWを取り出し、時刻t3から次工程への移動を開始する。一方、NC工作機械530は、ワークWがロボット520により取り出されるとすぐに、新たなワークWを受入れるための受入位置までの移動を開始する。
但し、時刻t2から時刻t3の間は、ロボット520がワークWを取り出す動作を行っているため、NC工作機械530はロボット520と干渉しないように、動作を停止する。すなわち、ロボット520は、時刻t2を基準に動作を開始する一方で、NC工作機械530は、時刻t2を基準に所定時間だけ動作を停止した後に、動作を開始する。
図10に示す時刻t2から時刻t3までの時間は、上述した「オフセット時間」の一例に相当する。上述したような特殊コマンドを用いることで、このようなオフセット時間を反映した動作を実現できる。
図11は、本実施の形態に係る制御装置100において共通のタイミングを基準としたプログラム実行を実現するための別のプログラム例を示す模式図である。図11に示すシーケンスプログラム30は、図9に示すシーケンスプログラム30と同様であるが、シーケンスプログラム30から呼び出されるアプリケーションプログラム32−1(NCプログラム)に記述される特殊コマンドが異なっている。
より具体的には、図11に示すアプリケーションプログラム32−1においては、図9に示すアプリケーションプログラム32−1の特殊コマンド320−1に代えて、特殊コマンド322が記述されている。
特殊コマンド322には、対応する特殊コマンド320−2と関連付けるための第1引数として「1」が付加されている。さらに、特殊コマンド322には、第2引数としてオフセット時間の長さを示す「100」が付加されている。
図11に示すように、それぞれのアプリケーションプログラム32に記述された特殊コマンドのうち、引数の値(図9に示す例では、「1」)が一致するものが互いに対応付けられた特殊コマンドであると判断される。そして、これらの特殊コマンドが記載された次の行に記載のコマンドは、共通のタイミングを基準として実行される。但し、特殊コマンド322以降に記述されたコマンドは、第2引数として指定された「100」に相当するオフセット時間だけ待機した上で、実行開始される。
図12は、図11に示すプログラム例に対応するプログラム実行を示すタイムチャートである。図12を参照して、アプリケーションプログラム32−2に含まれる特殊コマンド320−2の直前に記述されたコマンドの実行が完了すると、共通のタイミングが基準として設定される。
アプリケーションプログラム32−2の特殊コマンド320−2には、オフセット時間が設定されていないので、特殊コマンド320−2以降のコマンドは、基準タイミングの直後に実行が開始される。
これに対して、アプリケーションプログラム32−1の特殊コマンド322には、オフセット時間が設定されているので、特殊コマンド322以降のコマンドは、基準タイミングから指定されたオフセット時間の経過後に実行が開始される。
図12に示す例において、特殊コマンド322は、特殊コマンド322以降に記述されたコマンドに従う制御指令を、共通のタイミングから指定された時間だけ経過後に出力するための命令に相当する。
以上のように、オフセット時間を含む特殊コマンドを用いることで、所定の相対的な時間関係を維持したまま、複数のアプリケーションプログラムを実行させることができる。
上述の図11および図12に示す例では、一方のアプリケーションプログラムのみにオフセット時間を設定する例を示すが、それぞれのアプリケーションプログラムの記述される特殊コマンドにオフセット時間を設定してもよい。それぞれのアプリケーションプログラムにオフセット時間を設定することで、複数のアプリケーションプログラムを一定の時間差をもって実行することができ、共通のタイミングを基準に同時に実行開始だけではなく、多種多様な制御アプリケーションに対応できるようになる。
<J.任意の条件による複数のアプリケーションプログラムの同期実行>
次に、任意の条件による複数のアプリケーションプログラム32の同期実行について説明する。上述の説明においては、複数のアプリケーションプログラム32に特殊コマンドを記述することで、共通のタイミングを基準に実行開始する例を示したが、これに限らず、任意の条件の成立を基準タイミングとすることもできる。
図13は、本実施の形態に係る制御装置100においてシーケンスプログラムでの処理結果を条件としたアプリケーションプログラムの同期実行を実現するためのプログラム例を示す模式図である。図13に示すシーケンスプログラム30は、コンベア544を駆動するサーボモータ542を制御するためのモーション命令を規定するファンクションブロック302と、NC工作機械530を制御するためのアプリケーションプログラム32−1(NCプログラム)の実行開始を指示するファンクションブロック304と、ロボット520を制御するためのアプリケーションプログラム32−2(ロボットプログラム)の実行開始を指示するファンクションブロック306とを含む。
ファンクションブロック302によりサーボモータ542に対する制御指令が与えられ、ワークWの搬送が完了すると、コンベア搬送完了を示すコイル303がTRUEになる。このようなシーケンス命令および/またはモーション命令により更新されるデータ(フラグ値など)は、アプリケーションプログラム32に対する構文解析においても参照可能である。
図13に示す例では、アプリケーションプログラム32−3(NCプログラム)の1行目において、「コンベア搬送完了=TRUE」といった条件が記述されている。すなわち、アプリケーションプログラム32−3は、コンベア搬送完了を示すコイル303がTRUEになったことを条件に実行されることになる。
同様に、アプリケーションプログラム32−4(ロボットプログラム)においても、「コンベア搬送完了=TRUE」といった条件が記述されている。すなわち、アプリケーションプログラム32−4は、コンベア搬送完了を示すコイル303がTRUEになったことを条件に実行されることになる。
図13に示すように、それぞれのアプリケーションプログラムには、「コンベア搬送完了=TRUE」との条件が記述されており、この共通の条件によって、処理実行の基準となる共通のタイミングを設定することができる。
このように、本実施の形態に係る制御装置100においては、アプリケーションプログラム中において、シーケンスプログラム30により更新される変数が参照可能になっている。すなわち、アプリケーションプログラム32−3および32−4は、シーケンスプログラム30により更新される変数を実行開始条件として指定可能になっている。
図13に示す例では、「コンベア搬送完了」という変数が「TRUE」になったときに、NCプログラムおよびロボットプログラムの両方について処理が開始されることになる。
図14は、図13に示すプログラム例に対応するプログラム実行を示すタイムチャートである。図14を参照して、「コンベア搬送完了」という変数が「TRUE」になったタイミングが、実質的に共通の基準タイミングとして設定される。そして、アプリケーションプログラム32−1およびアプリケーションプログラム32−2の各コマンドは、この共通の基準タイミングから実行が開始される。このように、シーケンスプログラムでの変数を利用することで、複数のアプリケーションプログラムについて、共通のタイミングを基準として同時に実行開始させることができる。
説明の便宜上、図13および図14には、2つのアプリケーションプログラムを同時に実行開始する例を示したが、これに限らず、3つ以上のアプリケーションプログラムを同時に実行開始させるようにすることもできる。
また、複数のアプリケーションプログラムを同時に実行開始する例を示したが、上述したようなオフセット時間を設定することも可能である。この場合には、各アプリケーションプログラムにおいて、基準タイミングを規定する条件の後に、待機すべきオフセット時間を明示的に記述することで実現できる。
本実施の形態に係る制御装置100においては、アプリケーションプログラム32中に特殊コマンドを記述して共通のタイミングを設定する方法だけに限らず、シーケンスプログラムにより更新される変数を利用して共通のタイミングを設定する方法を採用できるので、プログラム開発者から見れば、プログラミングの自由度を高めることができる。
<K.表示機能部>
次に、本実施の形態に係る制御装置100の表示機能部174について説明する。制御装置100は、ユーザに対して任意の情報を視覚的に提示する表示部を有していてもよい。この表示部は、ユーザからの操作を受付ける入力機能を有していてもよい。図15は、本実施の形態に係る表示機能部を有する制御装置の外観を示す模式図である。
図15(A)を参照して、制御装置100Aは、電源ユニット140と、CPUユニット142と、表示ユニット144とを含む。CPUユニット142は、上述の制御装置100と同様の機能を提供する。表示ユニット144は、ディスプレイを含み、CPUユニット142による演算結果などを出力する。表示ユニット144は、タッチパネルなどのユーザ入力機能を有していてもよい。
図15(A)に示す制御装置100Aは、本体に比較的小型のディスプレイを含む表示ユニット144を有しており、表示ユニット144には、共有メモリ170上のデータに基づく表示がなされる。ユーザは、表示ユニット144により共有メモリ170上のデータの内容を確認できる。
図15(B)を参照して、制御装置100Bは、タッチパネル146と、本体部148とを含み、一体型として構成されている。タッチパネル146は、本体部148による演算結果などを表示するとともに、ユーザ操作を受付けて、その操作内容を示す信号を本体部148へ出力する。本体部148は、上述の制御装置100と同様の機能を提供する。
図15(B)に示す制御装置100Bの構成によれば、本体に比較的大型のディスプレイを配置することができるので、共有メモリ170上のデータに基づく表示だけではなく、アプリケーションプログラムの内容および実行状況などを表示することも可能となる。また、ユーザは、タッチパネル146を操作することで、アプリケーションプログラムを編集することもできる。
図16は、本実施の形態に係る制御装置100の共有メモリ170へのアクセス処理の別の一例を示すタイムチャートである。図16に示すタイムチャートにおいては、表示機能部174およびアプリケーション解析部160が共有メモリ170へアクセスする処理例を示す。
図16を参照して、上述したように、各アプリケーション実行周期において、アプリケーション解析部160が対象のアプリケーションプログラム32に対する処理の実行を開始すると、アプリケーション解析部160は共有メモリ170への書込み禁止を設定する。この書込み禁止期間が終了すると、共有メモリ170から表示機能部174へのデータの書込みが実行される。
また、タッチパネルなどを介してユーザからの操作を受付けた場合には、書込み禁止期間以外のタイミングで、ユーザからの操作内容を示すデータが共有メモリ170に書込まれる。なお、共有メモリ170へのデータ書込みについては、指定された処理が実行されてないことなどをさらなる条件として許可するようにしてもよい。
以上のように、本実施の形態に係る制御装置100,100A,100Bにおいては、表示機能部174が共有メモリ170へアクセスすることで、アプリケーションプログラム32に対する処理の結果や処理状況などをユーザへ提示することができ、また、ユーザからのアプリケーションプログラム32に対する編集などを可能にすることもできる。これによって、アプリケーションプログラム32を実行する際のユーザビリティを高めることができる。
<L.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
シーケンスプログラム(30)と、逐次実行される第1および2のアプリケーションプログラム(32)とを格納する記憶部(108)を備え、前記第1および2のアプリケーションプログラムの各々は1または複数のコマンドを含み、
制御周期毎に前記シーケンスプログラムを実行して制御指令を出力するプログラム実行部(152)と、
前記制御周期が同じまたは前記制御周期より長い第1の周期毎に前記第1のアプリケーションプログラムの少なくとも一部を構文解析して第1の内部コマンドを逐次生成するとともに、前記制御周期が同じまたは前記制御周期より長い第2の周期毎に前記第2のアプリケーションプログラムの少なくとも一部を構文解析して第2の内部コマンドを逐次生成する解析部(160)と、
前記解析部により生成される前記第1および第2の内部コマンドを格納する共有メモリ(170)と、
前記第1および第2の内部コマンドに従って前記制御周期毎にそれぞれの制御指令を出力する指令演算部(164)とを備え、
前記第1のアプリケーションプログラムが第1の特殊コマンド(320−1;322)を含み、前記第2のアプリケーションプログラムが前記第1の特殊コマンドに対応する第2の特殊コマンド(320−2)を含む場合に、前記指令演算部は、前記第1のアプリケーションプログラムにおいて前記第1の特殊コマンド以降に記述されたコマンドに従う制御指令、および、前記第2のアプリケーションプログラムにおいて前記第2の特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングを基準として出力する、制御装置。
[構成2]
前記第1の特殊コマンドの直前に記述されたコマンドまでの実行完了、および、前記第2の特殊コマンドの直前に記述されたコマンドまでの実行完了を検知して、前記解析部に対して、前記共通のタイミングを通知する調停部(162)をさらに備える、構成1に記載の制御装置。
[構成3]
前記第1の特殊コマンド(320−1)および前記第2の特殊コマンド(320−2)は、前記第1の特殊コマンド以降に記述されたコマンドに従う制御指令、および、前記第2の特殊コマンド以降に記述されたコマンドに従う制御指令を、前記共通のタイミングから同時に出力するための命令を含む、構成1または2に記載の制御装置。
[構成4]
前記第1の特殊コマンド(322)は、前記第1の特殊コマンド以降に記述されたコマンドに従う制御指令を、前記共通のタイミングから指定された時間だけ経過後に出力するための命令を含む、構成1または2に記載の制御装置。
[構成5]
前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムは、前記シーケンスプログラムにより更新される変数(303)を実行開始条件として指定可能になっている、構成1〜4のいずれか1項に記載の制御装置。
[構成6]
前記第1および第2の特殊コマンドは、コマンド本体に加えて、互いを対応付けるための引数が指定される、構成1〜5のいずれか1項に記載の制御装置。
[構成7]
前記解析部は、前記第1および第2のアプリケーションプログラムに記述されたコマンドから内部コマンドを生成するにあたって、当該内部コマンドの生成対象となるコマンド以降に記述されたコマンドも参照する、構成1〜6のいずれか1項に記載の制御装置。
[構成8]
前記解析部は、
予め定められた実行周期毎にアプリケーションプログラムの構文解析を実行し、
前記実行周期毎の構文解析の開始から実行完了までの期間において、前記共有メモリへの書込みを禁止する、構成1〜7のいずれか1項に記載の制御装置。
<M.利点>
本実施の形態に係る制御装置は、シーケンス命令およびモーション命令を含むシーケンスプログラムに加えて、1または複数のアプリケーションプログラムを並列的に実行できる。このような並列実行においても、それぞれの命令に従う制御指令を制御周期毎に出力できるので、シーケンスプログラムおよびアプリケーションプログラムの別にかかわらず、同一の制御精度を実現できる。
本実施の形態に係る制御装置は、複数のアプリケーションプログラムを並列的に実行するにあたって、それぞれのアプリケーションプログラムが制御する制御アプリケーションの間の連係動作を制御周期で同期させることができる。あるいは、制御アプリケーションの間の動作を制御周期の単位で規定されるオフセット時間だけずらして連係動作させることもできる。このような精緻な連係動作を提供することで、設備をより効率的に動作させることもでき、これによって生産効率を高めることもできる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 フィールドネットワーク、6 上位ネットワーク、10 入出力リフレッシュ処理、12,14,16 出力処理、20 構文解析処理、30 シーケンスプログラム、32 アプリケーションプログラム、34 システムプログラム、38 レシピ情報、40 内部コマンド、100,100A,100B 制御装置、102 プロセッサ、104 チップセット、106 主メモリ、108 ストレージ、110 上位ネットワークコントローラ、112 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、120 内部バスコントローラ、122 I/Oユニット、130 フィールドネットワークコントローラ、140 電源ユニット、142 CPUユニット、144 表示ユニット、146 タッチパネル、148 本体部、150 処理エンジン、152 シーケンスプログラム実行部、154 スケジューラ、160 アプリケーション解析部、162 アプリケーション調停部、164 制御指令演算部、170 共有メモリ、170−1,170−2 バッファ、172 共有メモリ制御部、174 表示機能部、176 フィールドネットワークインターフェイス、178 上位ネットワークインターフェイス、200 サポート装置、300 サーバ装置、302,304,306 ファンクションブロック、303 コイル、320,322 特殊コマンド、400 表示装置、500 フィールド機器、510 リモートI/O装置、520 ロボット、522 ロボットコントローラ、530 NC工作機械、540 サーボドライバ、542 サーボモータ、544 コンベア、546 ワークテーブル、W ワーク。

Claims (8)

  1. シーケンスプログラムと、逐次実行される第1および2のアプリケーションプログラムとを格納する記憶部を備え、前記第1および2のアプリケーションプログラムの各々は1または複数のコマンドを含み、
    制御周期毎に前記シーケンスプログラムを実行して制御指令を出力するプログラム実行部と、
    前記制御周期が同じまたは前記制御周期より長い第1の周期毎に前記第1のアプリケーションプログラムの少なくとも一部を構文解析して第1の内部コマンドを逐次生成するとともに、前記制御周期が同じまたは前記制御周期より長い第2の周期毎に前記第2のアプリケーションプログラムの少なくとも一部を構文解析して第2の内部コマンドを逐次生成する解析部と、
    前記解析部により生成される前記第1および第2の内部コマンドを格納する共有メモリと、
    前記第1および第2の内部コマンドに従って前記制御周期毎にそれぞれの制御指令を出力する指令演算部とを備え、
    前記第1のアプリケーションプログラムが第1の特殊コマンドを含み、前記第2のアプリケーションプログラムが前記第1の特殊コマンドに対応する第2の特殊コマンドを含む場合に、前記指令演算部は、前記第1のアプリケーションプログラムにおいて前記第1の特殊コマンド以降に記述されたコマンドに従う制御指令、および、前記第2のアプリケーションプログラムにおいて前記第2の特殊コマンド以降に記述されたコマンドに従う制御指令を、共通のタイミングを基準として出力する、制御装置。
  2. 前記第1の特殊コマンドの直前に記述されたコマンドまでの実行完了、および、前記第2の特殊コマンドの直前に記述されたコマンドまでの実行完了を検知して、前記解析部に対して、前記共通のタイミングを通知する調停部をさらに備える、請求項1に記載の制御装置。
  3. 前記第1の特殊コマンドおよび前記第2の特殊コマンドは、前記第1の特殊コマンド以降に記述されたコマンドに従う制御指令、および、前記第2の特殊コマンド以降に記述されたコマンドに従う制御指令を、前記共通のタイミングから同時に出力するための命令を含む、請求項1または2に記載の制御装置。
  4. 前記第1の特殊コマンドは、前記第1の特殊コマンド以降に記述されたコマンドに従う制御指令を、前記共通のタイミングから指定された時間だけ経過後に出力するための命令を含む、請求項1または2に記載の制御装置。
  5. 前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムは、前記シーケンスプログラムにより更新される変数を実行開始条件として指定可能になっている、請求項1〜4のいずれか1項に記載の制御装置。
  6. 前記第1および第2の特殊コマンドは、コマンド本体に加えて、互いを対応付けるための引数が指定される、請求項1〜5のいずれか1項に記載の制御装置。
  7. 前記解析部は、前記第1および第2のアプリケーションプログラムに記述されたコマンドから内部コマンドを生成するにあたって、当該内部コマンドの生成対象となるコマンド以降に記述されたコマンドも参照する、請求項1〜6のいずれか1項に記載の制御装置。
  8. 前記解析部は、
    予め定められた実行周期毎にアプリケーションプログラムの構文解析を実行し、
    前記実行周期毎の構文解析の開始から実行完了までの期間において、前記共有メモリへの書込みを禁止する、請求項1〜7のいずれか1項に記載の制御装置。
JP2017190344A 2017-09-29 2017-09-29 制御装置 Active JP6950415B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017190344A JP6950415B2 (ja) 2017-09-29 2017-09-29 制御装置
EP18176693.2A EP3462255B1 (en) 2017-09-29 2018-06-08 Synchronization of control programs
CN201810600587.8A CN109581976B (zh) 2017-09-29 2018-06-12 控制装置
US16/005,683 US10908577B2 (en) 2017-09-29 2018-06-12 Control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017190344A JP6950415B2 (ja) 2017-09-29 2017-09-29 制御装置

Publications (2)

Publication Number Publication Date
JP2019067045A true JP2019067045A (ja) 2019-04-25
JP6950415B2 JP6950415B2 (ja) 2021-10-13

Family

ID=62684593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017190344A Active JP6950415B2 (ja) 2017-09-29 2017-09-29 制御装置

Country Status (4)

Country Link
US (1) US10908577B2 (ja)
EP (1) EP3462255B1 (ja)
JP (1) JP6950415B2 (ja)
CN (1) CN109581976B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021106467A1 (ja) * 2019-11-25 2021-06-03 オムロン株式会社 制御システム、制御装置および制御方法
JP6915759B1 (ja) * 2019-05-13 2021-08-04 株式会社安川電機 マシン制御システム、プログラム、マシン、システム及びデバイス
WO2021229842A1 (ja) * 2019-05-13 2021-11-18 株式会社安川電機 マシン制御システム、プログラム、マシン、システム及びデバイス
WO2021241440A1 (ja) * 2020-05-28 2021-12-02 ファナック株式会社 制御装置
WO2023026373A1 (ja) * 2021-08-24 2023-03-02 ファナック株式会社 数値制御システム
US12030174B2 (en) 2021-11-08 2024-07-09 Kabushiki Kaisha Yaskawa Denki Machine control via wireless communication

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902577B2 (en) 2017-06-19 2021-01-26 Apeel Technology, Inc. System and method for hyperspectral image processing to identify object
DE102018214417B3 (de) * 2018-08-27 2019-07-25 Volkswagen Aktiengesellschaft Verfahren zur Programmierung eines Roboters sowie Recheneinrichtung und Computerprogramm
JP7277292B2 (ja) * 2019-07-08 2023-05-18 ファナック株式会社 Plc装置
JP7318406B2 (ja) * 2019-08-07 2023-08-01 オムロン株式会社 制御装置
JP7332443B2 (ja) * 2019-11-20 2023-08-23 ファナック株式会社 ロボット制御装置及びロボット制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60245002A (ja) 1984-05-18 1985-12-04 Fanuc Ltd ドウエルに対するスキツプ装置
JPH01280804A (ja) 1988-05-06 1989-11-13 Mitsubishi Electric Corp 制御装置
JP3211422B2 (ja) 1992-11-11 2001-09-25 ブラザー工業株式会社 ロボット制御装置
JPH08161022A (ja) * 1994-12-07 1996-06-21 Fanuc Ltd Cncの多系統待ち合わせ方式
JP3332061B2 (ja) 1995-02-28 2002-10-07 豊和工業株式会社 制御装置
JP2003228418A (ja) 2002-02-06 2003-08-15 Toshiba Mach Co Ltd 産業用ロボットの制御装置およびその装置における表示方法
CN101526805A (zh) * 2009-04-02 2009-09-09 陈丽黄 Plc模拟控制系统及其模拟控制方法
JP2011062798A (ja) 2009-09-18 2011-03-31 Mitsubishi Electric Corp ロボット制御装置およびロボット制御方法
CN201716564U (zh) * 2010-06-25 2011-01-19 中国科学院沈阳自动化研究所 高性能可编程控制器专用处理器体系结构
US8706262B2 (en) * 2011-03-15 2014-04-22 Omron Corporation CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
US8639364B2 (en) * 2011-07-13 2014-01-28 KUKA Robotics Corporation Uniform synchronizing robot control and deadlock detection in uniform synchronization
JP5099251B1 (ja) * 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
EP2685377B1 (de) * 2012-07-10 2018-01-31 Siemens Aktiengesellschaft Verfahren und Anordnung zur Synchronisierung von zwei auf einer Hardware-Plattform ablaufenden Prozessen
JP5752179B2 (ja) 2013-06-11 2015-07-22 ファナック株式会社 工作機械とロボットを制御する制御装置
JP2016194831A (ja) 2015-03-31 2016-11-17 オムロン株式会社 制御装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6915759B1 (ja) * 2019-05-13 2021-08-04 株式会社安川電機 マシン制御システム、プログラム、マシン、システム及びデバイス
WO2021229842A1 (ja) * 2019-05-13 2021-11-18 株式会社安川電機 マシン制御システム、プログラム、マシン、システム及びデバイス
WO2021106467A1 (ja) * 2019-11-25 2021-06-03 オムロン株式会社 制御システム、制御装置および制御方法
JP2021086232A (ja) * 2019-11-25 2021-06-03 オムロン株式会社 制御システム、制御装置および制御方法
WO2021241440A1 (ja) * 2020-05-28 2021-12-02 ファナック株式会社 制御装置
JP7436660B2 (ja) 2020-05-28 2024-02-21 ファナック株式会社 制御装置
WO2023026373A1 (ja) * 2021-08-24 2023-03-02 ファナック株式会社 数値制御システム
US12030174B2 (en) 2021-11-08 2024-07-09 Kabushiki Kaisha Yaskawa Denki Machine control via wireless communication

Also Published As

Publication number Publication date
CN109581976A (zh) 2019-04-05
CN109581976B (zh) 2021-08-20
EP3462255B1 (en) 2021-07-28
JP6950415B2 (ja) 2021-10-13
US10908577B2 (en) 2021-02-02
EP3462255A1 (en) 2019-04-03
US20190101881A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
JP6950415B2 (ja) 制御装置
JP6919404B2 (ja) 制御装置
JP6946909B2 (ja) 制御システムおよび制御装置
CN109557890B (zh) 控制装置
JP6903275B2 (ja) 制御装置および制御方法
JP6950385B2 (ja) 制御装置および制御方法
JP6900863B2 (ja) 制御装置、制御方法および制御プログラム
JP6881174B2 (ja) 制御装置および制御方法
JP7167516B2 (ja) 制御装置、制御方法、および制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210906

R150 Certificate of patent or registration of utility model

Ref document number: 6950415

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150