[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2019067046A - 制御システムおよび制御装置 - Google Patents

制御システムおよび制御装置 Download PDF

Info

Publication number
JP2019067046A
JP2019067046A JP2017190345A JP2017190345A JP2019067046A JP 2019067046 A JP2019067046 A JP 2019067046A JP 2017190345 A JP2017190345 A JP 2017190345A JP 2017190345 A JP2017190345 A JP 2017190345A JP 2019067046 A JP2019067046 A JP 2019067046A
Authority
JP
Japan
Prior art keywords
control
unit
command
control device
timing
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
JP2017190345A
Other languages
English (en)
Other versions
JP6946909B2 (ja
Inventor
純児 島村
Junji Shimamura
純児 島村
史将 片山
Fumimasa Katayama
史将 片山
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 JP2017190345A priority Critical patent/JP6946909B2/ja
Priority to EP18176806.0A priority patent/EP3462257B1/en
Priority to CN201810595829.9A priority patent/CN109582397B/zh
Priority to US16/005,687 priority patent/US10761515B2/en
Publication of JP2019067046A publication Critical patent/JP2019067046A/ja
Application granted granted Critical
Publication of JP6946909B2 publication Critical patent/JP6946909B2/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/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
    • G05B19/41825Total 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 machine tools and manipulators only, machining centre
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/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/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/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/0428Safety, monitoring
    • 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/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/41835Total 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 programme execution
    • 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
    • G05B19/4187Total 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 by tool management
    • 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/10Plc systems
    • G05B2219/12Plc mp multi processor system
    • G05B2219/1211Exchange control, I-O data to other plc, using separate synchronizing
    • 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/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15014Configure priorities of different tasks
    • 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/25266Microcontroller combined with plc

Landscapes

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

Abstract

【課題】制御装置と別の制御装置とを組み合わせた制御システムであっても制御アプリケーション同士を連係させることが可能な構成を提供する。【解決手段】第1の制御装置は、第1の周期毎に第1の制御指令を出力する第1のプログラム実行部と、第2の周期毎に第1のアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部と、解釈部により生成された内部コマンドに従って、第1の周期毎に第2の制御指令を出力する指令演算部と、解釈部による解釈処理を管理する調停部とを含む。調停部は、前記第2の制御装置からのタイミングの通知に応答して、前記解釈部により生成される内部コマンドに従う第2の制御指令の出力タイミングを調整する。【選択図】図2

Description

本発明は、制御対象を制御する制御システムおよびそれを構成する制御装置に関する。
生産現場においては、様々なFA(Factory Automation)技術が広く普及している。このようなFAシステムは、PLC(プログラマブルコントローラ)といった制御装置だけではなく、CNC(Computer Numerical Control:コンピュータ数値制御)およびロボットなどの高度な動作が可能な各種装置などを含む。このようなFAシステムはますます大規模化する傾向にある。
例えば、特開2001−027904号公報(特許文献1)は、複数のCNC装置を連結させることで、制御する軸数を増大させ、かつ、複数のCNC装置間の同期を取ることができる数値制御システムを開示する。この数値制御システムにおいて、マスタユニットおよび1または複数のスレーブユニットがケーブルを介して接続されている。マスタユニットおよびスレーブユニットの各々は、ラダープログラムを実行するPMC用プロセッサおよびCNC用プロセッサを有している。
また、特開2016−092544号公報(特許文献2)は、マスタ制御装置により第1制御対象物を制御するとともに、当該マスタ制御装置とネットワークを介して接続されるスレーブ制御装置により第1制御対象物と異なる第2制御対象物を制御する制御システムを開示する。この制御システムは、マスタ制御装置およびスレーブ制御装置を含む。マスタ制御装置およびスレーブ制御装置の各々は、演算処理部を有するコントローラとは別に、別の演算処理部を有するロボットコントローラを含んでいる。
近年のICT(Information and Communication Technology)の進歩に伴って、制御装置の処理能力も飛躍的に向上しつつある。従来技術においては複数の専用装置を用いて実現されていたFAシステムをより少ない数の制御装置で実現したいというニーズも生じている。
特開2001−027904号公報 特開2016−092544号公報
上述した特許文献1および特許文献2に開示される構成においては、複数のプロセッサまたは演算処理部が分散配置された構成が採用されており、それぞれのプロセッサまたは演算処理部の間で同期処理を実現するために構成が冗長になり得る。
一方で、実行形式の異なる複数種類のプログラム(例えば、ラダープログラム、CNCプログラム、ロボットプログラムなど)のすべてを単一の制御装置で実現できるとは限らず、一部の専用装置での処理を制御装置に取込むとともに、残りの専用装置はそのままといった事態も生じ得る。本発明は、このような、制御装置と別の制御装置とを組み合わせた制御システムであっても、CNC工作機械やロボットを連係させることが可能な構成を提供することを一つの目的としている。
本開示の一例に従う制御システムは、第1の制御装置と、第1の制御装置とネットワーク接続された第2の制御装置と、第1の制御装置からの制御指令に従って動作する1または複数のアクチュエータとを含む。第1の制御装置および第2の制御装置は、互いに時刻同期されたタイマを有している。第1の制御装置は、第1の周期毎にシーケンスプログラムを実行して第1の制御指令を出力する第1のプログラム実行部と、第1の周期と同じまたは第1の周期より長い第2の周期毎に第1のアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部と、解釈部により生成された内部コマンドに従って、第1の周期毎に、1または複数のアクチュエータのうち少なくとも一部に対する第2の制御指令を出力する指令演算部と、解釈部による解釈処理を管理する調停部とを含む。第2の制御装置は、第2のアプリケーションプログラムを逐次解釈して対象の可動機械に対する第3の制御指令を出力する第2のプログラム実行部と、第3の制御指令を出力するタイミングを第1の制御装置へ事前に通知するタイミング管理部とを含む。調停部は、第2の制御装置からのタイミングの通知に応答して、解釈部により生成される内部コマンドに従う第2の制御指令の出力タイミングを調整する。
この開示によれば、第1の制御装置は、第2の制御装置から通知されるタイミングに基づいて、第2の制御指令の出力タイミングを調整するので、第1の制御装置により制御される制御アプリケーションと、第2の制御装置により制御される制御アプリケーションとを連係動作させることができる。
上述の開示において、調停部は、第2の制御装置から通知されるタイミングと、第1の制御装置のタイマが示す値とに基づいて、第2の制御指令の出力タイミングを決定する。
この開示によれば、互いに時刻同期されたタイマが示す値を用いるので、高精度に連係動作を実現できる。
上述の開示において、第2の制御装置から通知されるタイミングは、第2の制御装置のタイマによって管理される値に基づくものである。
この開示によれば、タイマが示す値を用いてタイミングを規定することで、より精度の高いタイミング調整を実現できる。
上述の開示において、
調停部は、第2の制御指令の出力タイミングの到来前に、解釈部に第2の制御指令の生成を指示する。
この開示によれば、第2の制御装置から通知されたタイミングと同時に第2の制御指令を出力することができ、さらに、場合によっては、第2の制御装置から通知されたタイミングより前に第2の制御指令を出力することもできる。
上述の開示において、調停部は、第2の制御指令の生成が第2の制御指令の出力タイミングに間に合わないと判断されると、第2の制御指令の生成に係るタスクの優先度を上げる。
この開示によれば、少なくとも、第2の制御装置から通知されたタイミングと同時に第2の制御指令を出力することを保証できる。
上述の開示において、調停部は、第2の制御装置から通知されるタイミングと同時に、第2の制御指令の出力が開始されるように、出力タイミングを調整する。
この開示によれば、第1の制御装置により制御される制御アプリケーションと、第2の制御装置により制御される制御アプリケーションとを同期動作させることができる。
上述の開示において、調停部は、第2の制御装置から通知されるタイミングから予め定められた時間だけずれたタイミングで、第2の制御指令の出力が開始されるように、出力タイミングを調整する。
この開示によれば、一定の時間的なずれをもって、第1の制御装置により制御される制御アプリケーションと、第2の制御装置により制御される制御アプリケーションとを連係動作せることができる。
本開示の別一例に従えば、制御アプリケーションとネットワーク接続された制御装置が提供される。制御装置は、第1の周期毎にシーケンスプログラムを実行して第1の制御指令を出力する第1のプログラム実行部と、第1の周期と同じまたは第1の周期より長い第2の周期毎にアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部と、解釈部により生成された内部コマンドに従って、第1の周期毎に、1または複数のアクチュエータのうち少なくとも一部に対する第2の制御指令を出力する指令演算部と、制御アプリケーションからの制御指令を出力するタイミングの通知に基づいて、解釈部による解釈処理を管理する調停部とを含む。調停部は、制御アプリケーションからのタイミングの通知に応答して、解釈部により生成される内部コマンドに従う第2の制御指令の出力タイミングを調整する。
この開示によれば、外部装置から通知されるタイミングに基づいて、第2の制御指令の出力タイミングを調整するので、制御装置により制御される制御アプリケーションと、当該外部装置により制御される制御アプリケーションとを連係動作させることができる。
本発明によれば、制御装置と別の制御装置とを組み合わせた制御システムであっても、CNC工作機械やロボットを連係させることが可能な構成を提供できる。
本実施の形態に係る制御システムの全体構成例を示す模式図である。 本実施の形態に係る制御システムにおける処理の概要を説明するためのタイムチャートである。 本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置の機能構成例を示すブロック図である。 本実施の形態に係る制御装置における内部コマンドの生成処理を説明するための模式図である。 本実施の形態に係る制御装置におけるタスクの実行スケジュールの一例を示すタイムチャートである。 本実施の形態に係る制御システムに含まれるCNC工作機械のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御システムに含まれるCNC工作機械の機能構成例を示すブロック図である。 本実施の形態に係る制御システムにおける動作予定時刻の通知を利用した連係動作に係るシーケンス図である。 本実施の形態に係る制御システムにおける動作予定時刻の通知を利用した連係動作を実現するためのプログラム例である。 本実施の形態に係る制御装置における優先度変更の効果を説明するための模式図である。 本実施の形態に係る制御装置における処理手順の一例を示すフローチャートである。 本実施の形態に係る制御システムにおける動作予定時刻の通知を利用した連係動作の一例を示すタイムチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、図1および図2を参照して、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図1には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。
図1を参照して、制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器500との間でデータを遣り取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」と総称する。すなわち、本明細書の「フィールドネットワーク」は、狭義の「フィールドネットワーク」に加えて「フィールドバス」を含み得る概念である。
フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
フィールドネットワーク2には、任意のフィールド機器500を接続することができる。フィールド機器500は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。
フィールドネットワーク2として、EtherCAT(登録商標)を採用した場合には、フィールドネットワーク2に接続されるノードのうち少なくとも1つが「マスタ」として機能し、その他のノードが「スレーブ」として機能する。「マスタ」として機能するノードは、フィールドネットワーク2におけるフレームの転送タイミングなどを管理する。
図1に示す例においては、制御装置100が「マスタ」として機能し、その他のフィールド機器500が「スレーブ」として機能する。マスタ−スレーブ型の構成を採用するフィールドネットワーク2においては、ノード間で互いに時刻同期されたタイマTMRを有しており、各ノードが有するタイマTMRが示す時刻(実施的には、カウンタ値)に基づいて、フレームの転送タイミングなどが決定される。
図1に示す構成においては、フィールドネットワーク2に接続されるフィールド機器500は、リモートI/O(Input/Output)装置510と、ロボットコントローラ522,526と、CNC工作機械530と、サーボドライバ540とを含む。
CNC工作機械530は、後述するように、自身で制御指令を生成する機構を有しており、フィールドネットワーク2を介して受信されるデータに基づいて動作する。すなわち、CNC工作機械530は、一種の制御装置を内蔵しており、その制御装置から出力される制御指令に従って処理を実行する。
一方、ロボットコントローラ522,526およびサーボドライバ540は、制御装置100からの制御指令に従って動作する1または複数のアクチュエータに相当する。サーボドライバ540に対する制御指令は、制御装置100においてサイクリック実行されるシーケンスプログラムに含まれるモーション命令に従って生成される。一方、ロボットコントローラ522,526に対する制御指令は、制御装置100において逐次実行されるアプリケーションプログラムおよびサイクリック実行される制御指令演算処理によって実現される。
本実施の形態に係る制御装置100は、制御周期(第1の周期)毎にシーケンスプログラムを実行して制御指令を出力するプログラム実行部(一例として、シーケンスプログラム実行部152(詳細については後述する))を有している。
本明細書において、シーケンスプログラムは、実行毎に全体がスキャンされて、実行毎に制御指令を出力できるプログラムを包含する概念である。シーケンスプログラムは、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131−3に従って記述された1または複数の命令からなるプログラムを包含する。シーケンスプログラムには、シーケンス命令および/またはモーション命令を含み得る。なお、シーケンスプログラムとしては、国際規格IEC61131−3に従って記述された命令に限らず、PLC(プログラマブルコントローラ)の製造メーカまたはベンダーなどが独自に規定した命令を含むようにしてもよい。このように、シーケンスプログラムは、即時性および高速性が要求される制御に好適である。
基本的には、シーケンスプログラムは、制御対象やアプリケーションに応じて、ユーザによって任意に作成される。
本明細書において、「シーケンス命令」は、入力値、出力値、内部値などを演算する1または複数の論理回路により記述される1または複数の命令を包含する用語である。1回の制御周期において、「シーケンス命令」は、先頭から最終まで実行され、次の制御周期において、「シーケンス命令」は、先頭から最終までが再度実行される。
本明細書において、「モーション命令」は、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度などの数値を制御指令として演算するための1または複数の命令を包含する用語である。「モーション命令」についても、1回の制御周期において、ファンクションブロックや数値演算式などにより記述されるモーション命令のプログラム(モーションプログラム)の先頭から最終までが実行される。
制御周期毎にシーケンスプログラムを実行することで出力される制御指令は、典型的には、シーケンス命令に従って決定されるデジタル出力のオン/オフ、ならびに、モーション命令に従って演算されるアナログ出力を含む。
また、本実施の形態に係る制御装置100は、制御周期(第1の周期)と同じまたは制御周期より長いアプリケーション実行周期(第2の周期)毎に1または複数のアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部(一例として、アプリケーションプログラム解釈部160(詳細については後述する))を有している。
本明細書において、「アプリケーションプログラム」は、逐次実行される任意のプログラムを包含する。典型的には、「アプリケーションプログラム」は、1行ずつ逐次実行して実行するインタプリタ方式で実行可能な任意の言語で記述されたプログラムを包含する。以下の説明においては、このような「アプリケーションプログラム」の一例として、CNC(Computer Numerical Control:コンピュータ数値制御)における挙動を記述するプログラム(以下、「NCプログラム」とも称する。)がある。また、「アプリケーションプログラム」の別の一例として、ロボットを制御するためのプログラムがある。
NCプログラムは、予め定められた言語に従って記述される。一例として、NCプログラムは「G言語」を用いて記述され、ロボットを制御するためのプログラムは、専用のロボット言語を用いて記述されることが多い。
以下の説明において、例えば、CNC(Computer Numerical Control:コンピュータ数値制御)および/またはおよびロボットを用いた、特定の加工または動作を行う装置または機械ならびにそれらの制御を包含して、「制御アプリケーション」と称することもある。
本明細書において、「内部コマンド」は、アプリケーションプログラムに記述されたコマンドに応じた処理を実現するための、アプリケーションプログラムとは別表現の命令を包含する。「内部コマンド」は、制御周期毎に制御指令を算出できれば、どのような命令であってもよい。上述したようなアプリケーションプログラムは、逐次実行されるため、本来的に一定周期毎に制御指令を出力する処理には不向きである。そのため、制御周期毎の制御指令の出力に適した内部コマンドが生成される。典型的には、「内部コマンド」は、時間を入力変数とする1または複数の関数、あるいは、時間を引数とする1または複数の命令であってもよい。
さらに、本実施の形態に係る制御装置100は、解釈部により生成された内部コマンドに従って、制御周期(第1の周期)毎に、ロボットコントローラ522,526およびサーボドライバ540(1または複数のアクチュエータ)のうち少なくとも一部に対する制御指令を出力する指令演算部(一例として、制御指令演算部164(詳細については後述する))を有している。このような指令演算部を採用することで、シーケンスプログラムの実行により算出される制御指令の出力周期と同じ周期で、アプリケーションプログラムに従う制御指令を出力できる。
制御装置100およびこれらのフィールド機器500は、互いに時刻同期されたタイマTMRを有している。そのため、フィールドネットワーク2に接続されているノード同士では、動作タイミングなどを共有できる。例えば、CNC工作機械530の動作に合せて、制御装置100から制御指令を出力するタイミングを調整することで、CNC工作機械530とロボット520,524との連係動作、および/または、CNC工作機械530とコンベア544との連係動作などを容易に実現できる。
本実施の形態に係る制御システム1においては、CNC工作機械530のような内蔵の制御装置で実行されるアプリケーションプログラムによって制御される可動機械と、制御装置100からの制御指令によって制御される可動機械との連係を容易に実現できる構成を提供する。
図2は、本実施の形態に係る制御システム1における処理の概要を説明するためのタイムチャートである。図2には、CNC工作機械530とロボット520とを連係して動作させる場合の処理例を示す。
ロボット520を動作させるための制御指令は、制御装置100において実行されるアプリケーションプログラム32に従って生成されるものとする。すなわち、図2には、アプリケーションプログラム32の一例として、ロボットプログラムを示す。
図2を参照して、任意の実行開始タイミングを基準として、CNC工作機械530およびロボット520の動作を開始する場合を想定する。このような連係動作を実現するにあたって、CNC工作機械530は、実行開始タイミングの到来前に動作を開始する予定の時刻(動作予定時刻)を制御装置100へ通知する。この動作予定時刻は、典型的には、時刻同期されたタイマTMRが示す時刻(カウンタ値)を用いて指定される。
制御装置100は、動作予定時刻の通知を受けると、アプリケーションプログラムのうち、対象となるコマンドを解釈して内部コマンドを生成する。そして、予め通知されていた実行開始タイミングが到来すると、CNC工作機械530は、予め定められた動作を開始し、制御装置100は、予め生成した内部コマンドに従う制御指令の出力を開始する。この制御指令がロボットコントローラ522へ与えられることで、ロボット520は、CNC工作機械530の実行開始タイミングと同じタイミングで動作を開始できる。
このように、CNC工作機械530の制御装置は、アプリケーションプログラムを逐次解釈して対象の可動機械に対する制御指令を出力するプログラム実行部(一例として、アプリケーションプログラム実行部584(詳細については後述する))と、制御指令を出力する実行開始タイミングを制御装置100へ事前に通知するタイミング管理部(一例として、処理タイミング管理部590(詳細については後述する))とを有している。制御装置100の調停部(一例として、アプリケーション調停部162(詳細については後述する))は、CNC工作機械530の制御装置からの実行開始タイミングの通知に応答して、解釈部により生成される内部コマンドに従う制御指令の出力時期を調整する。
図2に示すような制御装置100とCNC工作機械530との間の遣り取りを採用することで、制御装置100により制御されるロボット520と、内蔵の制御装置により制御されるCNC工作機械530とを連係動作させることができる。すなわち、本実施の形態に係る制御システム1によれば、制御装置100からの制御指令によって動作するアクチュエータの間だけではなく、制御装置100とは独立した制御装置によって動作する制御アプリケーションとの間で、連係動作を実現できる。
説明の便宜上、図2には、実行開始タイミングを基準として、CNC工作機械530およびロボット520が同時に動作を開始する例を示すが、これに限らず、実行開始タイミングを基準として一方または両方が何らかのオフセット時間をもつようにしてもよい。例えば、一方の装置は実行開始タイミングから動作を開始し、他方の装置は実行開始タイミングからあるオフセット時間だけ遅れて動作を開始するようにしてもよい。このようなオフセット時間を設定することで、装置間に一定の遅れ時間を与えた連係動作を実現できる。
図1には、制御装置100からの制御指令に従って動作する1または複数のアクチュエータについても、フィールドネットワーク2に接続されている例を示すが、これに限らず、制御装置100からの制御指令を受けることができれば、どのような接続形態であってもよい。例えば、フィールドネットワーク2に接続されたリモートI/O装置510から信号線を介して制御指令を与えるようにしてもよい。本実施の形態に係る制御システム1においては、制御装置100から出力される制御指令が制御対象のフィールド機器500に与えられるタイミングと、連係動作の対象となる装置に対して対応する制御指令が与えられるタイミングとが実質的に同一になればよく、それぞれの制御指令の伝送形態まで共通にする必要はない。
説明の便宜上、図2には、CNC工作機械530から制御装置100に対して実行開始タイミングを通知する場合を例示するが、これに限らず、制御装置100からCNC工作機械530に対して実行開始タイミングを通知するようにしてもよい。さらに、何らかの実行主体から制御装置100およびCNC工作機械530に対して、共通の実行開始タイミングを通知するようにしてもよい。いずれの場合においても、実行開始タイミングが到来すると、制御指令を出力できるように、必要な処理が事前に実行される。
以下、本発明のより具体的な応用例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
<B.制御システムの全体構成例>
まず、図1に示す制御システム1の全体構成例についてより詳細に説明する。
図1に示す構成例において、サーボドライバ540は、制御装置100からの制御指令(例えば、位置指令または速度指令など)に従って、サーボモータ542を駆動する。サーボモータ542は、コンベア544を駆動して、CNC工作機械530の前に配置されたワークテーブル546にワークWを搬送する。
CNC工作機械530は、位置や速度などを指定するプログラムに従って、マシニングセンタなどを制御することで、任意の対象物を加工する。CNC工作機械530は、典型的には、旋盤加工、フライス盤、放電加工などの加工装置を含む。
ロボットコントローラ522はロボット520を駆動し、ロボットコントローラ526はロボット524を駆動する。ロボットコントローラ522,526は、制御装置100からの制御指令(位置指令または速度指令など)に従って、軌跡計算および各軸の角度計算などを行うとともに、計算結果に従って、ロボット520,524を構成するサーボモータなどを駆動する。
ロボット520,524は、ワークテーブル546上のワークWをCNC工作機械530内に配置し、あるいは、CNC工作機械530での処理済ワークWを取り出してワークテーブル546上に配置する。
リモートI/O装置510は、典型的には、フィールドネットワーク2を介して通信を行う通信カプラと、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
フィールド機器500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、ならびに、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)などを採用することができる。
フィールドネットワーク2を介して、制御装置100とフィールド機器500との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数100μsecオーダ〜数10msecオーダのごく短い周期で更新されることになる。このようなデータの遣り取りは、フィールド機器500において収集または生成されたデータ(以下、「入力データ」とも称す。)を制御装置100へ送信する処理、および、制御装置100からフィールド機器500に対する制御指令などのデータ(以下、「出力データ」とも称す。)を送信する処理を含む。このような遣り取りされるデータの更新処理が上述の「入出力リフレッシュ処理」に相当する。
制御装置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およびアプリケーションプログラム32が格納される。
上位ネットワークコントローラ110は、上位ネットワーク6を介して、サーバ装置300や表示装置400(図1参照)などとの間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(シーケンスプログラム30、アプリケーションプログラム32、トレースデータなど)を読出すことが可能になっている。
内部バスコントローラ120は、制御装置100に装着されるI/Oユニット122との間のデータの遣り取りを制御する。フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールドデバイスとの間のデータの遣り取りを制御する。
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
図3に示す制御システム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(第1の制御装置)は、PLC処理エンジン150と、アプリケーションプログラム解釈部160と、アプリケーション調停部162と、制御指令演算部164と、共有メモリ170と、共有メモリ制御部172と、表示機能部174と、フィールドネットワークインターフェイス176と、マスタ処理部178と、内部カウンタ180と、上位ネットワークインターフェイス182と、システムサービス処理部184とを含む。
PLC処理エンジン150は、シーケンスプログラム30の実行および制御装置100全体の処理を管理する。より具体的には、PLC処理エンジン150は、シーケンスプログラム実行部152と、スケジューラ154とを含む。
シーケンスプログラム実行部152は、制御周期T1毎にシーケンスプログラム30を実行(スキャン)して制御指令を出力する。
スケジューラ154は、制御装置100において実行される処理の順序を調停するものであり、具体的には、予め設定された優先度に基づいて、1または複数のタスクに対してプロセッサリソースを割当てる。
アプリケーションプログラム解釈部160は、制御周期T1と同じまたは制御周期T1より長いアプリケーション実行周期T2毎にアプリケーションプログラム32の少なくとも一部を解釈して内部コマンド40を逐次生成する。アプリケーションプログラム解釈部160には、異なる種類のアプリケーションプログラム32が提供されることもある。アプリケーションプログラム解釈部160は、予め格納されたアプリケーションプログラム32を実行するようにしてもよいし、サーバ装置300から適宜送信されるアプリケーションプログラム32を実行するようにしてもよい。
制御指令演算部164は、シーケンスプログラム30に含まれるモーション命令に従って、制御指令を制御周期T1毎に演算する。また、制御指令演算部164は、アプリケーションプログラム解釈部160により生成された内部コマンド40に従って、制御指令を制御周期T1毎に演算する。これらの制御指令は、ロボットコントローラ522,526およびサーボドライバ540の少なくとも一部に向けられたものとなる。
シーケンスプログラム実行部152および制御指令演算部164は、制御周期T1毎に処理を実行する(高優先タスク)。一方、アプリケーションプログラム解釈部160によるアプリケーションプログラム32に対する処理は、制御周期T1の整数倍であるアプリケーション実行周期T2(第2の周期)毎に実行される(低優先タスク)。
アプリケーション調停部162は、アプリケーションプログラム解釈部160による解釈処理を管理する。アプリケーション調停部162は、外部からの動作予定時刻(実行開始タイミング)の通知に応答して、アプリケーションプログラム解釈部160におけるアプリケーションプログラム32により生成される内部コマンドに従う制御指令の出力タイミングを調整する。
より具体的には、アプリケーション調停部162は、処理タイミング管理機能163を有している。処理タイミング管理機能163は、外部から通知される動作予定時刻(実行開始タイミング)と同時に、アプリケーションプログラム32に従う制御指令の出力が開始されるように、出力タイミングを調整する。処理タイミング管理機能163は、マスタ処理部178の内部カウンタ180が示すカウンタ値などに基づいて、出力タイミングを決定する。
このとき、アプリケーション調停部162は、アプリケーションプログラム解釈部160での解釈処理の開始タイミングや優先度などを管理変更する。
共有メモリ170は、PLC処理エンジン150、アプリケーションプログラム解釈部160、および制御指令演算部164の間で共有されるデータを保持する。共有されるデータは、構造体変数として格納されるようにしてもよい。例えば、アプリケーションプログラム解釈部160により逐次生成される内部コマンド40は、共有メモリ170の構造体変数に逐次書込まれる。
共有メモリ制御部172は、共有メモリ170に対するデータ読書きの排他制御、および、外部からの要求に応じた共有メモリ170へのアクセスなどを行う。例えば、共有メモリ制御部172は、共有メモリ170上のデータをフィールドネットワークインターフェイス176へ与えることで、フィールドネットワーク2を介して接続される任意のフィールド機器500へ送信される。
表示機能部174は、共有メモリ170に格納されるデータおよびアプリケーションプログラム解釈部160による処理結果などをユーザなどへ出力する。
フィールドネットワークインターフェイス176は、フィールドネットワーク2を介して接続されているフィールド機器500との間のデータの遣り取りを仲介する。
マスタ処理部178は、フィールドネットワーク2におけるフレームの転送タイミングの管理などを行う。マスタ処理部178は、内部カウンタ180を有している。内部カウンタ180は、フィールドネットワーク2に接続されたノード間で共通に参照される、マスタクロックとして利用されてもよい。すなわち、内部カウンタ180のカウンタ値に基づいて、フィールドネットワーク2に接続された各ノードが有しているカウンタの値が揃えられる。
上位ネットワークインターフェイス182は、上位ネットワーク6を介して接続されている装置との間のデータの遣り取りを仲介する。
システムサービス処理部184は、上位ネットワークインターフェイス182を介した、1または複数のサーバ装置300などへのデータ伝送を司る。システムサービス処理部184は、典型的には、PLC処理エンジン150およびアプリケーションプログラム解釈部160のいずれもがタスク処理を実行していない期間において、外部との間でデータを遣り取りする。
<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の出力形態についても、要求される制御周期T1の時間幅などを考慮して、適宜設計されてもよい。
図5(A)に示すように、内部コマンド40の一例としては、時間と指令値との関係を規定する関数であってもよい。図5(A)に示す例では、内部的に生成された軌跡は、直線の組合せで規定できる。一例として、X軸に関して、直線区間毎(区間1〜区間3)の軌跡を時間と速度との関係を示すFx1(t),Fx2(t),Fx3(t)を出力できる。同一のグループに属する他の軸(例えば、Y軸およびZ軸)についても、それぞれ同様に関数が出力されてもよい。
図5(B)に示すように、制御指令演算部164が、制御周期T1毎に、生成された内部コマンド40に従って制御指令を演算することで、制御周期T1毎に制御指令が出力される((4)指令値演算)。すなわち、各区間に対応する関数に、各制御周期の時刻を入力することで、当該時刻における指令値を一意に決定できる。何らかのグループが設定されている場合には、当該グループに属する各軸について、指令値を同期して出力することが好ましい。
上述の図5には、一例として、CNCで用いられるG言語により記述されたコマンドの一例を示すが、これに限らず、任意のインタプリタ方式で実行されるプログラムであれば、どのような言語を用いてもよい。また、処理対象の言語形式に応じて、生成される内部コマンド40の形式を異ならせてもよい。
<F.タスクの実行スケジュール>
次に、本実施の形態に係る制御装置100におけるそれぞれのタスクの実行スケジュールについて説明する。図6は、本実施の形態に係る制御装置100におけるタスクの実行スケジュールの一例を示すタイムチャートである。
図6を参照して、高優先タスクとして、第1タスク10(入出力リフレッシュ処理)および第2タスク18(シーケンス命令実行処理12と、アプリケーションプログラムに従う制御指令の出力処理14と、シーケンスプログラム30に含まれるモーション命令に従う制御指令の出力処理16とを含む)が設定されている。低優先タスクとして、第3タスク20(アプリケーションプログラム32を解釈して内部コマンド40を逐次生成する処理)が設定されている。
高優先タスクは、制御周期T1毎に実行される。アプリケーションプログラムに従う制御指令の出力処理14においては、アプリケーションプログラム解釈部160により生成される内部コマンド40が、共有メモリ170から内部コマンド40が読出されて(デキューされて)、当該制御周期T1における制御指令が算出される。
低優先タスクは、アプリケーション実行周期T2毎に実行される。アプリケーション実行周期T2は、制御周期T1の整数倍(図6に示す例では、2倍)の単位で設定される。すなわち、アプリケーションプログラム解釈部160は、アプリケーション実行周期T2毎に、アプリケーションプログラム32の少なくとも一部を解釈して内部コマンド40を逐次生成する。生成される内部コマンド40は、逐次、共有メモリ170内のバッファにキューイング(エンキュー)される。
低優先タスクは、アプリケーション実行周期T2内に処理を完了できればよい。低優先タスクは、高優先タスクが実行される期間中には、プロセッサリソースが割当てられないので、中断(サスペンド)状態で待機する。
図6に示すようなそれぞれのタスクの実行スケジュール、すなわちプロセッサリソースの割当ては、スケジューラ154によって実行される。スケジューラ154は、各タスクに設定されている優先度に基づいて、各タスクに対するプロセッサリソースの割当てを行う。
説明の便宜上、アプリケーション実行周期T2が制御周期T1の2倍である場合を例示したが、これに限らず、アプリケーション実行周期T2は、対象となるアプリケーションプログラムの種類に応じて、制御周期T1の整数倍として設定でき、制御周期T1と同じ長さに設定することもできる。
<G.CNC工作機械のハードウェア構成例>
次に、本実施の形態に係る制御システム1に含まれるCNC工作機械530のハードウェア構成例について説明する。図7は、本実施の形態に係る制御システム1に含まれるCNC工作機械530のハードウェア構成例を示すブロック図である。
図7を参照して、CNC工作機械530は、制御アプリケーションの一例であり、制御指令が与えられる可動機械を含む。より具体的には、CNC工作機械530は、メインコントローラ550と、フィールドネットワークコントローラ562と、バスコントローラ564と、入力部566と、出力部568と、複数のアクチュエータ570−1,570−2,・・・とを含む。
メインコントローラ550は、制御装置100とネットワーク接続された別の制御装置に相当し、アプリケーションプログラム532を逐次解釈して、制御指令を逐次出力する。より具体的には、メインコントローラ550は、プロセッサ552と、主メモリ554と、ストレージ556と、ROM(Read Only Memory)560とを含む。
プロセッサ552は、CPU、MPU、GPUなどで構成される。プロセッサ552としては、複数のコアを有する構成を採用してもよいし、プロセッサ552を複数配置してもよい。主メモリ554は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ556は、例えば、フラッシュメモリ、HDD、SSDなどの不揮発性記憶装置などで構成される。ストレージ556には、1または複数のアプリケーションプログラム532が格納される。
ROM560は、プロセッサ552における基本的な処理(例えば、1または複数のアプリケーションプログラム532を解釈する処理)を実現するためのシステムプログラムなどを格納する。
プロセッサ552は、ROM560に格納されたシステムプログラム、および、ストレージ556に格納された1または複数のアプリケーションプログラム532を読出して、主メモリ554に展開して逐次解釈することで、制御指令を逐次出力する。CNC工作機械530のメインコントローラ550においては、1または複数のアプリケーションプログラム532が直接解釈されて、制御指令が出力されるため、上述したような内部コマンドは生成されなくてもよい。
フィールドネットワークコントローラ562は、フィールドネットワーク2を介して制御装置100などとの間でデータを遣り取りする。
バスコントローラ564は、メインコントローラ550と、入力部566、出力部568、複数のアクチュエータ570−1,570−2,・・・との間でデータを遣り取りする。
入力部566は、操作ボタンやダイヤルなどのユーザ操作を受付けるコンポーネントである。入力部566に対するユーザ操作を示す信号は、バスコントローラ564を介して、メインコントローラ550へ与えられる。
出力部568は、表示灯やブザーなどのユーザに対する通知を行うためのコンポーネントである。メインコントローラ550からの指令に応じて、出力部568は点灯や鳴動などを行う。
アクチュエータ570−1,570−2,・・・は、CNC工作機械530の各可動部を駆動するためのコンポーネントであり、サーボドライバおよびサーボモータなどを含む。メインコントローラ550からの制御指令は、バスコントローラ564を介して、対象のアクチュエータ570−1,570−2,・・・へ与えられる。
<H.CNC工作機械の機能構成例>
次に、本実施の形態に係る制御システム1に含まれるCNC工作機械530の機能構成例について説明する。図8は、本実施の形態に係る制御システム1に含まれるCNC工作機械530の機能構成例を示すブロック図である。
図8を参照して、CNC工作機械530は、スレーブ処理部580と、内部カウンタ582と、アプリケーションプログラム実行部584と、入出力データ処理部586と、システムサービス処理部588と、処理タイミング管理部590とを含む。
スレーブ処理部580は、フィールドネットワーク2におけるフレームの送受信を管理する。スレーブ処理部580は、内部カウンタ582を有している。内部カウンタ582は、制御装置100の内部カウンタ180と同期されており、内部カウンタ180が示すカウンタ値に基づいて、フレーム転送が制御される。
アプリケーションプログラム実行部584は、1または複数のアプリケーションプログラム532を逐次解釈して、対象のアクチュエータ570−1,570−2,・・・(可動機械に相当)に対する制御指令を出力する。
入出力データ処理部586は、アプリケーションプログラム実行部584からの制御指令を対象となるアクチュエータなどへ出力する。また、入出力データ処理部586は、入力部からの入力データをアプリケーションプログラム実行部584へ出力し、アプリケーションプログラム実行部584からの出力データを出力部へ出力する。
システムサービス処理部588は、CNC工作機械530における付帯的な処理を管理する。
処理タイミング管理部590は、予め定められた条件などに従って、図1に示す実行開始タイミングの通知処理などを担当する。すなわち、処理タイミング管理部590は、CNC工作機械530における制御指令を出力するタイミングを制御装置100へ事前に通知する。処理タイミング管理部590による通知されるタイミングは、アプリケーションプログラム532の実行状況などに基づいて決定されてもよい。また、処理タイミング管理部590は、外部から実行開始タイミングの通知を受けた場合には、予め定められた条件などに従って、アプリケーションプログラム実行部584におけるアプリケーションプログラム532の実行開始タイミングなどを制御する。
<I.動作予定時刻の通知を利用した連係動作>
次に、本実施の形態に係る制御システム1における動作予定時刻の通知を利用した連係動作について説明する。
(i1:全体シーケンス)
まず、動作予定時刻の通知を利用した連係動作に係る全体シーケンスの一例について説明する。図9は、本実施の形態に係る制御システム1における動作予定時刻の通知を利用した連係動作に係るシーケンス図である。
図9には、典型例として、制御装置100の制御指令演算部164、アプリケーションプログラム解釈部160、および、アプリケーション調停部162、ならびに、CNC工作機械530のアプリケーションプログラム実行部584および処理タイミング管理部590、が関与する処理を示す。
図9を参照して、CNC工作機械530のアプリケーションプログラム実行部584において、任意の実行開始条件が成立すると(シーケンスSQ2)、アプリケーションプログラム実行部584から処理タイミング管理部590へ実行開始条件の成立が通知される(シーケンスSQ4)。実行開始条件は、CNC工作機械530において、任意のアプリケーションプログラム532の実行を開始させるための条件である。
実行開始条件の成立の通知を受けると、処理タイミング管理部590は、実行開始条件の内容、または、予め定められた設定値などに基づいて、動作を開始する予定の時刻(動作予定時刻)を決定する(シーケンスSQ6)。決定された動作予定時刻は、制御装置100のアプリケーション調停部162へ通知される(シーケンスSQ8)。
制御装置100のアプリケーション調停部162は、CNC工作機械530からの動作予定時刻に基づいて、対応するアプリケーションプログラム32の実行開始タイミングを決定する(シーケンスSQ10)。この実行開始タイミングは、典型的には、CNC工作機械530から通知されるタイミング(動作予定時刻)と制御装置100が管理している内部カウンタ180のカウンタ値が示す現在時刻(すなわち、タイマTMRが示す値)との差分に基づいて決定される。
アプリケーション調停部162は、実行開始タイミングの到来前に、アプリケーションプログラム解釈部160に制御指令の生成を指示する。すなわち、アプリケーション調停部162は、アプリケーションプログラム解釈部160に対して、内部コマンドの生成を指示する(シーケンスSQ12)。この指示に応答して、アプリケーションプログラム解釈部160は、対象となるアプリケーションプログラム532を解釈して内部コマンドを生成する(シーケンスSQ14)。この生成された内部コマンドは、共有メモリ170内のバッファに逐次キューイング(エンキュー)されて、制御指令演算部164からのアクセスが可能になる(シーケンスSQ16)。
また、アプリケーション調停部162は、シーケンスSQ10において決定した実行開始タイミングが到来すると、アプリケーションプログラム解釈部160に対して、生成した内部コマンドに従う制御指令の出力開始を指示する(シーケンスSQ18)。この出力開始の指示を受けて、制御指令演算部164は、内部コマンドに従う制御指令の出力を開始する(シーケンスSQ20)。
一方、CNC工作機械530のアプリケーションプログラム実行部584においても、アプリケーションプログラム532に従う制御指令の出力を開始する(シーケンスSQ22)。
このような一連の手続きによって、動作予定時刻を基準とした、連係動作を実現できる。
(i2:プログラム例)
次に、動作予定時刻の通知を利用した連係動作を実現するためのプログラム例について説明する。図10は、本実施の形態に係る制御システム1における動作予定時刻の通知を利用した連係動作を実現するためのプログラム例である。
図10に示すシーケンスプログラム30は、コンベア544およびロボット520(図1参照)の制御に向けられる。なお、CNC工作機械530は、内蔵のメインコントローラ550がアプリケーションプログラム532を実行することで制御される。
シーケンスプログラム30は、コンベア544を駆動するサーボモータ542を制御するためのモーション命令を規定するファンクションブロック302と、CNC工作機械530を制御するためのアプリケーションプログラム32(ロボットプログラム)の実行開始を指示するファンクションブロック304とを含む。
ファンクションブロック302は、運転開始フラグがTRUEになることで、指定された処理を実行する。
ファンクションブロック304は、CNC工作機械530から動作予定時刻を受信したことを条件として活性化される。ファンクションブロック304には、受信された動作予定時刻が格納される変数StartTimeがExecTimeの値として与えられている。ファンクションブロック304は、変数StartTimeを入力として実行されることで、アプリケーション調停部162が実行開始タイミングなどを決定する。そして、決定された実行開始タイミングに従って、指定されたアプリケーションプログラム32に従う制御指令の出力が開始される。
図10に示すように、ユーザは、CNC工作機械530からの動作予定時刻の通知などを意識することなく、比較的簡単なコーディングによって、CNC工作機械530との連係動作を実現できる。
(i3:優先度変更)
上述の図9などを参照して説明したように、予め通知された動作予定時刻から制御指令の出力を開始できるように、制御装置100においては、アプリケーションプログラム32を解釈して、内部コマンドを事前に生成しておく必要がある。
一方で、対象のアプリケーションプログラム32に含まれるコマンドの数および種類によっては、解釈により多くの時間を要する場合もある。このような場合において、内部コマンドの生成が予め通知された動作予定時刻に間に合わない可能性もある。
このような場合において、アプリケーションプログラム32を解釈して内部コマンドを生成する処理に関連付けられる優先度をより高い方向に変更するようにしてもよい。より高い優先度を設定することで、当該処理に割当てられる演算時間あるはプロセッサリソースを増大させることができるので、優先度を維持した場合に比較して、内部コマンドの生成をより短時間で完了させることができる。
図11は、本実施の形態に係る制御装置100における優先度変更の効果を説明するための模式図である。図11には、優先度の別に4種類の処理(タスク)を並列的に実行する例を示す。より具体的には、優先度の高いタスクとして、第1タスク10(入出力リフレッシュ処理)および第2タスク18(シーケンス命令実行処理12と、アプリケーションプログラムに従う制御指令の出力処理14と、シーケンスプログラム30に含まれるモーション命令に従う制御指令の出力処理16とを含む)が示されている。それに加えて、優先度の低いタスクとして、第3タスク20(アプリケーションプログラム32を解釈して内部コマンド40を逐次生成する処理)と、第4タスク22と、第5タスク24とが示されている。
第4タスク22は、制御装置100が提供する任意の処理を含む。第5タスク24は、制御装置100と外部装置との間のデータ通信などの処理(システムサービス)を含む。
図11に示す例においては、第1タスク10および第2タスク18が制御周期T1毎に繰返し実行される。各制御周期T1において、第1タスク10および第2タスク18が実行されていない期間において、第3〜第5タスクが優先度に応じて実行される。
図11(A)に示す例においては、第4タスク22に対しては、制御周期T1毎にプロセッサリソースが割当てられている。一方、第3タスク20に対しては、第1タスク10、第2タスク18、第4タスク22のいずれもが実行されていない期間においてのみ実行されるので、1回の第3タスク20が実行完了するには、3回の制御周期T1に相当する時間が必要になっている。すなわち、第3タスク20がトリガされてから、指定された処理を完了するまでには、制御周期T1の3倍の時間が必要である。
一方、図11(B)に示す例では、第3タスク20の優先度は第4タスク22より高く設定されている。図11(B)に示す例においては、第1タスク10および第2タスク18のいずれもが実行されていない期間において、第3タスク20が優先的に実行されることになり、その結果、1回の第3タスク20の実行は2回の制御周期T1に相当する時間で処理を完了できる。すなわち、アプリケーションプログラム32から内部コマンドをより短い時間で生成できる。
上述の図11に示したように、事前に通知された動作予定時刻までに内部コマンドの生成が間に合わないと判断された場合には、アプリケーションプログラム32を解釈して内部コマンドを生成するためのタスクに設定されている優先度を変更するようにしてもよい。このような優先度の変更によって、事前に通知された動作予定時刻までに内部コマンドの生成を間に合わせることができる。
なお、アプリケーションプログラム解釈部160は、アプリケーションプログラム32に含まれるコマンドをある程度余分に構文解析(先読み(Look Ahead))している。先読み動作においては、アプリケーションプログラム32に記述されたコマンドから内部コマンドを生成するにあたって、当該内部コマンドの生成対象となるコマンド以降に記述されたコマンドも参照される。そのため、アプリケーションプログラム解釈部160は、現在処理中のコマンドだけではなく、次に処理すべきコマンドを事前に知ることができ、動作予定時刻までに内部コマンドの生成を完了できるか否かを事前に判断できる。
より具体的には、制御装置100のアプリケーション調停部162は、アプリケーションプログラム解釈部160の処理状況またはアプリケーションプログラム解釈部160からの通知を受けて、事前に通知された動作予定時刻までの内部コマンドの生成が間に合わない状況を知ると、スケジューラ154に対して、内部コマンドの生成に係るタスクに設定されている優先度の変更を指示する。この優先度の変更指示に応答して、スケジューラ154は、対象のタスクの優先度を変更し、より多くのプロセッサリソースを割当てることで、より早期に内部コマンドを生成完了させる。
すなわち、アプリケーション調停部162は、アプリケーションプログラム32に従う制御指令の生成が動作予定時刻(実行開始タイミング)に間に合わないと判断されると、アプリケーションプログラム32に従う制御指令の生成に係るタスクの優先度を上げる。これにより、内部コマンドの生成を動作予定時刻に間に合わせる。
以上のように、事前に通知された動作予定時刻と内部コマンドの生成状況とを考慮して、内部コマンドを生成するタスクに設定されている優先度を変更するようにしてもよい。このような優先度の動的な変更によって、連係動作を動作予定時刻に開始できないといった事態の発生を回避できる。
(i4:処理手順)
次に、本実施の形態に係る制御システム1における動作予定時刻の通知を利用した連係動作を実現するための処理手順の一例について説明する。
図12は、本実施の形態に係る制御装置100における処理手順の一例を示すフローチャートである。図12に示す各ステップは、典型的には、制御装置100のプロセッサ102がアプリケーションプログラム32およびシステムプログラム34を実行することで実現される。
図12を参照して、制御装置100は、いずれかの制御アプリケーション(上述の例では、CNC工作機械530)から動作予定時刻の通知を受けたか否かを判断する(ステップS100)。動作予定時刻の通知を受けると(ステップS100においてYES)、制御装置100は、通知された動作予定時刻と制御装置100が管理している現在時刻との差分に基づいて、対応するアプリケーションプログラム32の実行開始タイミングを決定する(ステップS102)。また、制御装置100は、対応するアプリケーションプログラム32の対象となるコマンドを解釈して内部コマンドを生成する(ステップS104)。
そして、制御装置100は、ステップS102において決定した実行開始タイミングが到来するか否かを判断し(ステップS106)する。実行開始タイミングが到来すると(ステップS106においてYES)、制御装置100は、ステップS104において生成済の内部コマンドに従う制御指令の算出および出力を開始する(ステップS108)。
以上のような処理手順によって、動作予定時刻の通知を利用した連係動作を実現できる。
<J.オフセット時間>
上述の説明においては、事前に通知された動作予定時刻を基準として、同時に動作を開始する例を示したが、これに限らず、共通の動作予定時刻を基準として一方または両方の動作を各オフセット時間経過後に開始するようにしてもよい。
図13は、本実施の形態に係る制御システム1における動作予定時刻の通知を利用した連係動作の一例を示すタイムチャートである。図13を参照して、任意の実行開始タイミングを基準として、CNC工作機械530およびロボット520の動作を開始する場合を想定する。
制御装置100は、動作予定時刻の通知を受けると、アプリケーションプログラムのうち、対象となるコマンドを解釈して内部コマンドを生成する。図13に示す例においては、予め通知されていた実行開始タイミングが到来すると、予め定められた動作開始待ち時間だけ待機した後に、予め生成した内部コマンドに従う制御指令の出力を開始する。一方、CNC工作機械530は、実行開始タイミングが到来すると、予め定められた動作を開始する。
このように、アプリケーション調停部162は、外部から通知される動作予定時刻(実行開始タイミング)から予め定められた時間だけずれたタイミングで、アプリケーションプログラム32に従う制御指令の出力が開始されるように、出力タイミングを調整するようにしてもよい。
この結果、制御装置100により制御されるロボット520は、CNC工作機械530の動作開始から、予め定められたオフセット時間だけ遅れて動作を開始することになる。このような動作遅れ時間を設定することで、例えば、ロボット520とNC工作機械530との間の干渉の発生を回避できる。
このようなオフセット時間は、アプリケーションプログラム32を起動する際に、シーケンスプログラム30上で設定しておいてもよいし、事前に任意のパラメータとして設定されていてもよい。
<K.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
第1の制御装置(100)と、
前記第1の制御装置とネットワーク接続された第2の制御装置(550)と、
前記第1の制御装置からの制御指令に従って動作する1または複数のアクチュエータ(522,526,540)とを備え、
前記第1の制御装置および前記第2の制御装置は、互いに時刻同期されたタイマ(TMR)を有しており、
前記第1の制御装置は、
第1の周期毎にシーケンスプログラムを実行して第1の制御指令を出力する第1のプログラム実行部(152)と、
前記第1の周期と同じまたは前記第1の周期より長い第2の周期毎に第1のアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部(160)と、
前記解釈部により生成された内部コマンドに従って、前記第1の周期毎に、前記1または複数のアクチュエータのうち少なくとも一部に対する第2の制御指令を出力する指令演算部(164)と、
前記解釈部による解釈処理を管理する調停部(162)とを備え、
前記第2の制御装置は、
第2のアプリケーションプログラムを逐次解釈して対象の可動機械に対する第3の制御指令を出力する第2のプログラム実行部(584)と、
前記第3の制御指令を出力するタイミングを前記第1の制御装置へ事前に通知するタイミング管理部(590)とを備え、
前記調停部は、前記第2の制御装置からのタイミングの通知に応答して、前記解釈部により生成される内部コマンドに従う第2の制御指令の出力タイミングを調整する、制御システム。
[構成2]
前記調停部は、前記第2の制御装置から通知されるタイミングと、前記第1の制御装置のタイマが示す値とに基づいて、前記第2の制御指令の出力タイミングを決定する、構成1に記載の制御システム。
[構成3]
前記第2の制御装置から通知されるタイミングは、前記第2の制御装置のタイマ(582)によって管理される値に基づくものである、構成2に記載の制御システム。
[構成4]
前記調停部は、前記第2の制御指令の出力タイミングの到来前に、前記解釈部に前記第2の制御指令の生成を指示する、構成2または3に記載の制御システム。
[構成5]
前記調停部は、前記第2の制御指令の生成が前記第2の制御指令の出力タイミングに間に合わないと判断されると、前記第2の制御指令の生成に係るタスクの優先度を上げる、構成4に記載の制御システム。
[構成6]
前記調停部は、前記第2の制御装置から通知されるタイミングと同時に、前記第2の制御指令の出力が開始されるように、出力タイミングを調整する、構成1〜5のいずれか1項に記載の制御システム。
[構成7]
前記調停部は、前記第2の制御装置から通知されるタイミングから予め定められた時間だけずれたタイミングで、前記第2の制御指令の出力が開始されるように、出力タイミングを調整する、構成1〜5のいずれか1項に記載の制御システム。
[構成8]
制御アプリケーションとネットワーク接続された制御装置(100)であって、
第1の周期毎にシーケンスプログラムを実行して第1の制御指令を出力する第1のプログラム実行部(152)と、
前記第1の周期と同じまたは前記第1の周期より長い第2の周期毎にアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部(160)と、
前記解釈部により生成された内部コマンドに従って、前記第1の周期毎に、1または複数のアクチュエータのうち少なくとも一部に対する第2の制御指令を出力する指令演算部(164)と、
前記制御アプリケーションからの制御指令を出力するタイミングの通知に基づいて、前記解釈部による解釈処理を管理する調停部(162)とを備え、
前記調停部は、前記制御アプリケーションからのタイミングの通知に応答して、前記解釈部により生成される内部コマンドに従う第2の制御指令の出力タイミングを調整する、制御装置。
<L.利点>
本実施の形態に係る制御装置は、シーケンス命令およびモーション命令を含むシーケンスプログラムに加えて、1または複数のアプリケーションプログラムを並列的に実行できる。このような並列実行において、制御指令を制御周期毎に出力できるので、アプリケーションプログラムに従う制御においても、シーケンスプログラムに従う制御と同じ制御精度を実現できる。
本実施の形態に係る制御装置は、制御装置からの制御指令により制御される制御アプリケーションと、自身が出力する制御指令により制御される制御アプリケーションとを並列的に実行するにあたって、いずれかの制御アプリケーションから通知された動作予定時刻に基づいて、複数の制御アプリケーション間の連係動作を実現できる。
複数の制御アプリケーションの実行開始タイミングを互いに一致させることもできるし、制御アプリケーションの間の動作を制御周期の単位で規定されるオフセット時間だけずらして連係動作させることもできる。このような精緻な連係動作を提供することで、設備をより効率的に動作させることもでき、これによって生産効率を高めることもできる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 フィールドネットワーク、6 上位ネットワーク、10 第1タスク、12 シーケンス命令実行処理、14,16 出力処理、18 第2タスク、20 第3タスク、22 第4タスク、24 第5タスク、30 シーケンスプログラム、32,532 アプリケーションプログラム、34 システムプログラム、38 レシピ情報、40 内部コマンド、100 制御装置、102,552 プロセッサ、104 チップセット、106,554 主メモリ、108,556 ストレージ、110 上位ネットワークコントローラ、112 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、120 内部バスコントローラ、122 I/Oユニット、130,562 フィールドネットワークコントローラ、150 処理エンジン、152 シーケンスプログラム実行部、154 スケジューラ、160 アプリケーションプログラム解釈部、162 アプリケーション調停部、163 処理タイミング管理機能、164 制御指令演算部、170 共有メモリ、172 共有メモリ制御部、174 表示機能部、176 フィールドネットワークインターフェイス、178 マスタ処理部、180,582 内部カウンタ、182 上位ネットワークインターフェイス、184,588 システムサービス処理部、200 サポート装置、300 サーバ装置、302,304 ファンクションブロック、400 表示装置、500 フィールド機器、510 リモートI/O装置、520,524 ロボット、522,526 ロボットコントローラ、530 CNC工作機械、540 サーボドライバ、542 サーボモータ、544 コンベア、546 ワークテーブル、550 メインコントローラ、560 ROM、564 バスコントローラ、566 入力部、568 出力部、570 アクチュエータ、580 スレーブ処理部、584 アプリケーションプログラム実行部、586 入出力データ処理部、590 処理タイミング管理部、T1 制御周期、T2 アプリケーション実行周期、TMR タイマ、W ワーク。

Claims (8)

  1. 第1の制御装置と、
    前記第1の制御装置とネットワーク接続された第2の制御装置と、
    前記第1の制御装置からの制御指令に従って動作する1または複数のアクチュエータとを備え、
    前記第1の制御装置および前記第2の制御装置は、互いに時刻同期されたタイマを有しており、
    前記第1の制御装置は、
    第1の周期毎にシーケンスプログラムを実行して第1の制御指令を出力する第1のプログラム実行部と、
    前記第1の周期と同じまたは前記第1の周期より長い第2の周期毎に第1のアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部と、
    前記解釈部により生成された内部コマンドに従って、前記第1の周期毎に、前記1または複数のアクチュエータのうち少なくとも一部に対する第2の制御指令を出力する指令演算部と、
    前記解釈部による解釈処理を管理する調停部とを備え、
    前記第2の制御装置は、
    第2のアプリケーションプログラムを逐次解釈して対象の可動機械に対する第3の制御指令を出力する第2のプログラム実行部と、
    前記第3の制御指令を出力するタイミングを前記第1の制御装置へ事前に通知するタイミング管理部とを備え、
    前記調停部は、前記第2の制御装置からのタイミングの通知に応答して、前記解釈部により生成される内部コマンドに従う第2の制御指令の出力タイミングを調整する、制御システム。
  2. 前記調停部は、前記第2の制御装置から通知されるタイミングと、前記第1の制御装置のタイマが示す値とに基づいて、前記第2の制御指令の出力タイミングを決定する、請求項1に記載の制御システム。
  3. 前記第2の制御装置から通知されるタイミングは、前記第2の制御装置のタイマによって管理される値に基づくものである、請求項2に記載の制御システム。
  4. 前記調停部は、前記第2の制御指令の出力タイミングの到来前に、前記解釈部に前記第2の制御指令の生成を指示する、請求項2または3に記載の制御システム。
  5. 前記調停部は、前記第2の制御指令の生成が前記第2の制御指令の出力タイミングに間に合わないと判断されると、前記第2の制御指令の生成に係るタスクの優先度を上げる、請求項4に記載の制御システム。
  6. 前記調停部は、前記第2の制御装置から通知されるタイミングと同時に、前記第2の制御指令の出力が開始されるように、出力タイミングを調整する、請求項1〜5のいずれか1項に記載の制御システム。
  7. 前記調停部は、前記第2の制御装置から通知されるタイミングから予め定められた時間だけずれたタイミングで、前記第2の制御指令の出力が開始されるように、出力タイミングを調整する、請求項1〜5のいずれか1項に記載の制御システム。
  8. 制御アプリケーションとネットワーク接続された制御装置であって、
    第1の周期毎にシーケンスプログラムを実行して第1の制御指令を出力する第1のプログラム実行部と、
    前記第1の周期と同じまたは前記第1の周期より長い第2の周期毎にアプリケーションプログラムの少なくとも一部を解釈して内部コマンドを逐次生成する解釈部と、
    前記解釈部により生成された内部コマンドに従って、前記第1の周期毎に、1または複数のアクチュエータのうち少なくとも一部に対する第2の制御指令を出力する指令演算部と、
    前記制御アプリケーションからの制御指令を出力するタイミングの通知に基づいて、前記解釈部による解釈処理を管理する調停部とを備え、
    前記調停部は、前記制御アプリケーションからのタイミングの通知に応答して、前記解釈部により生成される内部コマンドに従う第2の制御指令の出力タイミングを調整する、制御装置。
JP2017190345A 2017-09-29 2017-09-29 制御システムおよび制御装置 Active JP6946909B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017190345A JP6946909B2 (ja) 2017-09-29 2017-09-29 制御システムおよび制御装置
EP18176806.0A EP3462257B1 (en) 2017-09-29 2018-06-08 Control system and control device
CN201810595829.9A CN109582397B (zh) 2017-09-29 2018-06-11 控制系统以及控制装置
US16/005,687 US10761515B2 (en) 2017-09-29 2018-06-12 Control system for controlling control object and control device for linking control applications in control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017190345A JP6946909B2 (ja) 2017-09-29 2017-09-29 制御システムおよび制御装置

Publications (2)

Publication Number Publication Date
JP2019067046A true JP2019067046A (ja) 2019-04-25
JP6946909B2 JP6946909B2 (ja) 2021-10-13

Family

ID=62597368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017190345A Active JP6946909B2 (ja) 2017-09-29 2017-09-29 制御システムおよび制御装置

Country Status (4)

Country Link
US (1) US10761515B2 (ja)
EP (1) EP3462257B1 (ja)
JP (1) JP6946909B2 (ja)
CN (1) CN109582397B (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021002060A1 (ja) * 2019-07-03 2021-01-07 オムロン株式会社 制御システム、サポート装置および設定プログラム
WO2021019818A1 (ja) * 2019-07-31 2021-02-04 オムロン株式会社 制御システム、解析方法およびプログラム
JP2021086232A (ja) * 2019-11-25 2021-06-03 オムロン株式会社 制御システム、制御装置および制御方法
JPWO2021157515A1 (ja) * 2020-02-05 2021-08-12
WO2021172334A1 (ja) * 2020-02-27 2021-09-02 ファナック株式会社 情報処理装置
JPWO2021241440A1 (ja) * 2020-05-28 2021-12-02
WO2022030405A1 (ja) * 2020-08-06 2022-02-10 オムロン株式会社 制御システム、制御装置およびプログラム
WO2022162958A1 (ja) * 2021-01-27 2022-08-04 オムロン株式会社 制御装置、プログラム実行方法およびプログラム
WO2022264424A1 (ja) * 2021-06-18 2022-12-22 ファナック株式会社 制御装置及び制御方法
WO2024089881A1 (ja) * 2022-10-28 2024-05-02 ファナック株式会社 ロボット制御装置、工作機械及び連携システム
US12085967B2 (en) 2020-11-12 2024-09-10 Mitsubishi Electric Corporation Movement system and position estimation method
JP7585648B2 (ja) 2020-08-06 2024-11-19 オムロン株式会社 制御システム、制御装置およびプログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020024183A1 (zh) * 2018-08-01 2020-02-06 西门子股份公司 互连设备、通信方法和包括机器人的系统
JP6845202B2 (ja) * 2018-10-11 2021-03-17 ファナック株式会社 数値制御方法及び処理装置
JP7141905B2 (ja) * 2018-10-12 2022-09-26 株式会社日立産機システム コントロール装置及びコントロール方法
DE112019006613T5 (de) * 2019-01-09 2021-09-30 Mitsubishi Electric Corporation Numerische Steuerungsvorrichtung und numerisches Steuerungsverfahren
EP3968653A4 (en) 2019-05-13 2023-05-24 Kabushiki Kaisha Yaskawa Denki MACHINE CONTROL SYSTEM, PROGRAM, MACHINE AND CONTROL METHOD
JP7277292B2 (ja) * 2019-07-08 2023-05-18 ファナック株式会社 Plc装置
CN115516870A (zh) * 2020-05-13 2022-12-23 株式会社安川电机 机器控制系统、程序、机器、系统以及设备
CN113204187B (zh) * 2020-06-30 2023-05-09 欧姆龙(上海)有限公司 控制系统及其控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4807475B1 (ja) * 2011-03-15 2011-11-02 オムロン株式会社 演算ユニット、出力制御方法、およびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5912814A (en) * 1997-05-07 1999-06-15 Allen-Bradley Company, Llc Redundant multitasking industrial controllers synchronized data tables
JP3386777B2 (ja) 1999-05-11 2003-03-17 ファナック株式会社 数値制御システム
CN101893876B (zh) * 2009-05-20 2012-08-08 北京四方继保自动化股份有限公司 一种用于大型分布式控制系统的控制网络的方法
JP6465620B2 (ja) 2014-10-31 2019-02-06 ヤマハ発動機株式会社 制御システムおよび制御方法
JP6477063B2 (ja) * 2015-03-12 2019-03-06 オムロン株式会社 情報管理装置、制御指令発生装置、トレーニング装置、トレーニングシステム、情報管理プログラム、情報管理方法、制御指令発生プログラム、および制御指令発生方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4807475B1 (ja) * 2011-03-15 2011-11-02 オムロン株式会社 演算ユニット、出力制御方法、およびプログラム

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021002060A1 (ja) * 2019-07-03 2021-01-07 オムロン株式会社 制御システム、サポート装置および設定プログラム
JP7415345B2 (ja) 2019-07-03 2024-01-17 オムロン株式会社 制御システム、サポート装置および設定プログラム
JP2021012404A (ja) * 2019-07-03 2021-02-04 オムロン株式会社 制御システム、サポート装置および設定プログラム
JP2021026309A (ja) * 2019-07-31 2021-02-22 オムロン株式会社 制御システム、解析方法およびプログラム
CN114041092B (zh) * 2019-07-31 2024-07-02 欧姆龙株式会社 控制系统、分析方法以及记录介质
WO2021019818A1 (ja) * 2019-07-31 2021-02-04 オムロン株式会社 制御システム、解析方法およびプログラム
US12045034B2 (en) 2019-07-31 2024-07-23 Omron Corporation Control system, method, and program to improve debugging efficiency of an NC program and sequence program respectively controlling a machine tool and a peripheral target instrument
JP7247808B2 (ja) 2019-07-31 2023-03-29 オムロン株式会社 制御システム、解析方法およびプログラム
CN114041092A (zh) * 2019-07-31 2022-02-11 欧姆龙株式会社 控制系统、分析方法以及程序
JP2021086232A (ja) * 2019-11-25 2021-06-03 オムロン株式会社 制御システム、制御装置および制御方法
WO2021106467A1 (ja) * 2019-11-25 2021-06-03 オムロン株式会社 制御システム、制御装置および制御方法
JPWO2021157515A1 (ja) * 2020-02-05 2021-08-12
WO2021157515A1 (ja) * 2020-02-05 2021-08-12 ファナック株式会社 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法
JP7364699B2 (ja) 2020-02-05 2023-10-18 ファナック株式会社 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法
JP7381711B2 (ja) 2020-02-27 2023-11-15 ファナック株式会社 情報処理装置
JPWO2021172334A1 (ja) * 2020-02-27 2021-09-02
WO2021172334A1 (ja) * 2020-02-27 2021-09-02 ファナック株式会社 情報処理装置
US12147215B2 (en) 2020-05-28 2024-11-19 Fanuc Corporation Control device
WO2021241440A1 (ja) * 2020-05-28 2021-12-02 ファナック株式会社 制御装置
JPWO2021241440A1 (ja) * 2020-05-28 2021-12-02
JP7436660B2 (ja) 2020-05-28 2024-02-21 ファナック株式会社 制御装置
WO2022030405A1 (ja) * 2020-08-06 2022-02-10 オムロン株式会社 制御システム、制御装置およびプログラム
JP7585648B2 (ja) 2020-08-06 2024-11-19 オムロン株式会社 制御システム、制御装置およびプログラム
US12085967B2 (en) 2020-11-12 2024-09-10 Mitsubishi Electric Corporation Movement system and position estimation method
WO2022162958A1 (ja) * 2021-01-27 2022-08-04 オムロン株式会社 制御装置、プログラム実行方法およびプログラム
DE112021007562T5 (de) 2021-06-18 2024-03-28 Fanuc Corporation Steuervorrichtung und Steuerverfahren
WO2022264424A1 (ja) * 2021-06-18 2022-12-22 ファナック株式会社 制御装置及び制御方法
WO2024089881A1 (ja) * 2022-10-28 2024-05-02 ファナック株式会社 ロボット制御装置、工作機械及び連携システム

Also Published As

Publication number Publication date
US20190101904A1 (en) 2019-04-04
EP3462257B1 (en) 2021-10-27
JP6946909B2 (ja) 2021-10-13
CN109582397B (zh) 2021-10-29
US10761515B2 (en) 2020-09-01
EP3462257A1 (en) 2019-04-03
CN109582397A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
JP6946909B2 (ja) 制御システムおよび制御装置
JP6806019B2 (ja) 制御装置
JP6919404B2 (ja) 制御装置
JP6903275B2 (ja) 制御装置および制御方法
JP6962099B2 (ja) 制御システムおよび制御装置
CN109581976B (zh) 控制装置
US10606246B2 (en) Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle
JP2019061467A (ja) サポート装置およびサポートプログラム
US11269313B2 (en) Controller and control system that stores data in current control cycle for output in next control cycle
JP6881174B2 (ja) 制御装置および制御方法
JP7231073B2 (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 Request for written amendment filed

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210830

R150 Certificate of patent or registration of utility model

Ref document number: 6946909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150