[go: up one dir, main page]

JP7375532B2 - 制御システム - Google Patents

制御システム Download PDF

Info

Publication number
JP7375532B2
JP7375532B2 JP2019234534A JP2019234534A JP7375532B2 JP 7375532 B2 JP7375532 B2 JP 7375532B2 JP 2019234534 A JP2019234534 A JP 2019234534A JP 2019234534 A JP2019234534 A JP 2019234534A JP 7375532 B2 JP7375532 B2 JP 7375532B2
Authority
JP
Japan
Prior art keywords
time
unit
counter
control system
conversion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019234534A
Other languages
English (en)
Other versions
JP2021103439A5 (ja
JP2021103439A (ja
Inventor
重行 江口
佳秀 西山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2019234534A priority Critical patent/JP7375532B2/ja
Priority to EP20907744.5A priority patent/EP4083726A4/en
Priority to US17/781,322 priority patent/US12105551B2/en
Priority to PCT/JP2020/044659 priority patent/WO2021131530A1/ja
Priority to CN202080082096.4A priority patent/CN114761889A/zh
Publication of JP2021103439A publication Critical patent/JP2021103439A/ja
Publication of JP2021103439A5 publication Critical patent/JP2021103439A5/ja
Application granted granted Critical
Publication of JP7375532B2 publication Critical patent/JP7375532B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • 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/13Plc programming
    • G05B2219/13063Synchronization between modules
    • 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/15063Real time clock
    • 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/21Pc I-O input output
    • G05B2219/21055Number of halfwaves equals number of I-O, send block of halfwaves, synchro gap

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

本開示は、FA(Factory Automation)の制御システムに関する。
様々な生産現場において、PLC(プログラマブルロジックコントローラ)などの制御装置を用いたFA技術が広く普及している。従来は、FAの制御システムにおいて実時刻を管理する時計の精度が高くなかったので、時計とは別に制御用のカウンタが実装されていたが、実時刻を管理する高精度な時計が利用可能になりつつある。このような利用方法として、制御用のカウンタを実時刻に同期させる仕組みが提案されている。
例えば、特開2018-190216号公報(特許文献1)は、PLCが内部クロックを備え、時刻サーバからグローバル時刻を取得し、内部クロックを取得したグローバル時刻に同期させる構成を開示する。
特開2018-190216号公報
制御システムにおいて管理可能な実時刻の精度は上がりつつあるが、その一方で、制御用のカウンタは従来のものを利用しつつ、制御システムにおいて高精度な時刻を利用したいとの要望がある。
本開示の目的は、従来の制御用のカウンタを用いて、制御システムの環境または運用において利用可能な精度を有した時刻を提供することである。
この開示にかかる制御システムは、ファクトリオートメーションの制御システムであって、データを遣り取りする第1のユニットおよび第2のユニットと、クロックを用いて、第1のユニットが備える制御用のカウンタと第2のユニットが備える制御用のカウンタとを同期させる同期手段と、を備え、各ユニットは、ユニット間で共有される情報であって、当該ユニットのカウンタのカウンタ値から時刻を算出する換算に関する情報を格納するための情報格納手段を備える。
上述の開示によれば、換算に関する情報を用いてカウンタ値から時刻を算出することによって、従来の制御用のカウンタを用いながら、上記の環境または運用において利用可能な精度を有した時刻を提供することができる。
上述の開示において、クロックは、ユニット外の外部クロックまたは第1のユニットおよび第2のユニットのうちの一方のユニットが備える内部クロックを含む。
上述の開示によれば、ユニット間のカウンタを同期させるためのクロックとして、外部クロックまたはユニットの内部クロックを利用できる。これにより、制御システムは、外部クロックまたはユニットの内部クロックの精度を有した、すなわち上記の環境または運用において利用可能な精度を有した時刻を提供することができる。
上述の開示において、同期手段は、外部クロックが管理する時刻の精度が所定条件を満たすとき、第1のユニットおよび第2のユニットの互いに同期するカウンタの値を、外部クロックの時刻に合わせて調整する。
上述の開示によれば、外部クロックの精度が所定条件を満たす、例えば精度が高い場合は、第1のユニットおよび第2のユニットの互いに同期するカウンタの値は、外部クロックの時刻に合わせて調整されることで、カウンタのカウンタ値を外部クロックに同期させることができる。
上述の開示において、同期手段は、外部クロックが管理する時刻の精度が所定条件を満たさないとき、内部クロックが管理する時刻を基準として、第1のユニットおよび第2のユニットのカウンタを同期させる。
上述の開示によれば、外部クロックの精度が所定条件を満たさない、例えば精度が低い場合は、第1のユニットおよび第2のユニットの互いに同期するカウンタの値は、ユニットが備える内部クロックの時刻を基準に同期させることができる。
上述の開示において、換算に関する情報は、各ユニットのカウンタ値と基準カウンタ値との差と、基準カウンタ値に対応する基準時刻から実時刻を換算するための換算式を含み、基準時刻は、クロックの時刻を含む。
上述の開示によれば、各ユニットは、基準カウンタ値、これに対応するクロックの時刻および当該ユニットのカウンタ値を用いて、換算式から時刻を算出することができる。
上述の開示において、一方のユニットは、他のユニットと共有される換算に関する情報を管理する管理手段を備え、管理手段は、制御用のカウンタの同期に用いるクロックに応じて、共有される換算に関する情報を更新する。
上述の開示によれば、管理手段は、ユニット間で共有される換算に関する情報を、カウンタの同期に用いるクロックに応じて更新することができる。例えば、クロックが外部クロックであれば、すなわち外部クロックの時刻の管理の精度が所定条件を満たす場合は、換算に関する情報は更新されずに固定のままであるが、当該精度が所定条件を満たさない場合は、換算に関する情報を内部クロックの時刻に基づき更新する。
上述の開示において、管理手段は、外部クロックが管理する時刻の精度が所定条件を満たさないとき、換算式を、基準カウンタ値および基準時刻に、それぞれ、一方のユニットのカウンタ値および当該カウンタ値に対応する内部クロックの時刻が設定されるように更新する。
上述の開示によれば、換算式を、カウンタの同期に用いる内部クロックの時刻と対応するカウンタ値を設定することで更新できる。
上述の開示において、第1のユニットは、データバスを介して第2のユニットとデータを遣取りし、制御システムは、一方のユニットにネットワーク接続される第3のユニットを備え、同期手段は、さらに、一方のユニットが備えるカウンタと第3のユニットが備える制御用のカウンタとを同期させ、第3のユニットは、ユニット間で共有される換算に関する情報を格納する。
上述の開示によれば、カウンタの同期の構成および換算に関する情報に基づく時刻の換算の構成を、ネットワーク上のユニットにも展開することができる。
上述の開示において、換算に関する情報は、カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を含む。
上述の開示によれば、換算に関する情報を介して、各ユニットに、カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を提供することができる。
上述の開示において、各ユニットは、共有される換算に関する情報に従い、カウンタのカウンタ値から時刻を算出し、アプリケーションから受付ける時刻の問合せに対し、算出された時刻を含む応答を出力する。
上述の開示によれば、ユニットにおいてはアプリケーションが、換算された時刻を参照(問合せ)する構成を提供することができる。
上述の開示において、問合せを受付けたとき換算を実施する。
上述の開示によれば、アプリケーションに、換算された時刻を提供する構成として、問合せ毎に換算を実施する構成を提供できる。したがって、アプリケーションは、最新の換算値(時刻)を取得できる。
上述の開示において、各ユニットは、換算された時刻を格納し、応答は、格納されている換算された時刻を含む。
上述の開示によれば、アプリケーションからの問合せの都度、換算を実施するのではなく、その時に格納されている(既に換算された)時刻を提供することができる。したがって、問合せの都度、換算を実施する必要はないので、換算に係る負荷を低減できる。
本開示によれば、従来の制御用のカウンタを用いて、制御システムの環境または運用において利用可能な精度を有した時刻を提供できる。
本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。 本実施の形態に従う制御システム1のネットワーク構成例を示す模式図である。 本実施の形態に従う制御システム1のデータ通信処理を示す模式図である。 本実施の形態に係る制御装置2のユニットの構成例を示す模式図である。 本実施の形態に係る制御装置2が備えるCPUユニット100のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置2が備える機能ユニット200のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置2が備える機能ユニット300のハードウェア構成例を示すブロック図である。 本実施の形態に係るCPUユニット100のソフトウェア構成例を示すブロック図である。 本実施の形態に係る制御装置2が管理する時刻同期のための構成の一例を模式的に示す図である。 本実施の形態に係る時刻換算情報30の一例を模式的に示す図である。 本実施の形態に係る時刻換算情報30を共有する構成の一例を模式的に示す図である。 本実施の形態に係る時刻換算情報30を共有する構成の他の例を模式的に示す図である。 本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。 本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。 本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。 本実施の形態に係る基準クロックの精度に応じて時刻換算情報30を共有する構成を模式的に示す図である。 本実施の形態に係る基準クロックの精度は所定条件を満たす場合の処理のフローチャートである。 本実施の形態に係る基準クロックの精度は所定条件を満たさない場合の処理のフローチャートである。 本実施の形態に係る製造実行システム400の構成例を示す図である。 図19のDB管理プログラム411が実行されることで提供されるDBマネージャーを示す図である。 本実施の形態に係る制御装置2が製造実行システム400に時系列データを送信する場合の処理例を示す模式図である。 本実施の形態に係る制御装置2において生成される時系列データのフレームを模式的に示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。図9は、本実施の形態に係る制御装置2が管理する時刻同期のための構成の一例を模式的に示す図である。ファクトリオートメーションの制御システムは、複数の制御装置を備える。この制御装置は、例えばPLCに相当する。制御装置は、データを遣り取りする第1のユニット(CPUユニット100)および第2のユニット(機能ユニット200)を備える。制御システムは、クロックを用いて、第1のユニットが備える制御用のカウンタ126と第2のユニットが備える制御用のカウンタ213とを同期させる同期処理部(同期処理部216、同期処理部114)を備える。各ユニットは、ユニット間で共有される情報であって、当該ユニットが備えるカウンタのカウンタ値から時刻を換算するための換算に関する時刻換算情報30を格納している。時刻換算情報30は、換算情報管理部115(換算情報管理部215)によって、ユニット間で共有されるように、当該時刻換算情報30の配信が実施される。
したがって、制御システムは、ユニット間で制御用のカウンタ同士を同期させる構成と、同期したカウンタのカウンタ値から時刻を算出する換算に関する時刻換算情報30をユニット間で共有する構成とを備える。これら両方の構成を備えることで、制御システムでは、各ユニットが備える制御用のカウンタは従来のものを用いて、ユニット間で同期した時刻を提供する仕組みを実現することができる。
カウンタの同期に用いるクロックには、ユニット外の外部クロックであるマスタクロック191Aまたは第1のユニットおよび第2のユニットのうちの一方のユニットが備える内部クロック(例えばCPUユニット100が備えるRTC(Real Time Clock)128)を含めることができる。したがって、制御システムでは、システムが利用可能なクロックを用いた時刻、すなわち利用可能な環境および運用における精度を有した時刻を提供することが可能となる。これにより、制御システムは、当該システムの環境または運用に柔軟に対応し得る時刻を提供することが可能となる。
以下、本実施の形態のより具体的な応用例について説明する。
以下の説明においては、「制御装置」の典型例として、PLCを具体例として説明するが、PLCの名称に限定されることなく、本明細書に開示された技術思想は、任意の制御装置に対して適用可能である。また、PLC(制御装置)を含むシステム全体を、以下では「制御システム」とも称する。
<B.制御システムの全体構成>
まず、本実施の形態に従うFAに適用され得る制御システムの全体構成について説明する。図1は、本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。
図1を参照して、制御システム1では、ネットワークが複数レベルに接続されており、各レベルのネットワークには、それぞれ異なる機能が割り当てられる。具体的には、限定されないが、例えば4つのレベルのネットワーク11~14が設けられている。
ネットワーク11は、コントロールレベルのネットワークである。ネットワーク11は、複数の制御装置2A、2Bおよび2C(以下、「制御装置2」と総称することもある。)と、装置/ライン管理装置190よびSCADA(Supervisory Control And Data Acquisition)機能を提供する表示装置280とが接続されており、ネットワーク11では装置間でデータを遣り取りできるデータリンクが形成される。装置/ライン管理装置190および表示装置280は、ネットワークに接続される装置および生産ラインを管理する機器に相当する。ネットワーク11は、主として、制御系に係る情報の伝送を主たる機能として提供する。
制御装置2には、例えばセンサ、アクチュエータといった各種のフィールド機器90が接続される。これらのフィールド機器90は、制御装置2に装着される入出力ユニットを介して制御装置2に直接接続される場合もあるが、ネットワーク110を介して制御装置2に接続されることもある。図1では、制御装置2は、1または複数のネットワーク110に接続される。各ネットワーク110には、1または複数のフィールド機器90が接続される。1または複数のフィールド機器90の各々は、製造装置または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。したがって、図2に示す制御システム1では、ネットワーク11~14の4つのレベルに加えて、フィールドレベルのネットワーク110がさらに追加されている。
ネットワーク110を介して、制御装置2とフィールド機器90との間で遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
ネットワーク12は、管理レベルのネットワークとして提供される。ネットワーク12には、装置およびラインを管理する装置/ライン管理装置190、製造計画等を管理する製造管理装置380および390が接続される。装置/ライン管理装置190、製造管理装置380および390は、ネットワーク12を介して、製造計画等の管理情報の遣り取り、および装置またはラインの情報を遣り取りする。
ネットワーク13は、コンピュータレベルのネットワークとして提供される。ネットワーク13には、製造管理装置380および390、ならびに時系列DB(データベースの略)450を管理する製造実行システム(MES:Manufacturing Execution System)400が接続される。製造管理装置380および390、ならびに製造実行システム400は、ネットワーク13を介して、生産管理および情報系のデータを遣り取りする。
製造実行システム400は、ネットワーク13を介して収集するフィールド機器90からの入力値である観測値を、観測された順番に従う時系列のデータとして時系列DB450に格納する。
具体的には、本実施の形態では、制御装置2は、指定された観測値を含むフレームを生成する機能を有する。制御装置2は、生成されるフレームをネットワーク11,12および13を介して製造実行システム400に転送する。製造実行システム400は、制御装置2から受信した観測値のフレームを時系列に従い時系列DB450に格納する。
本実施の形態では、時系列DB450に格納されるデータを「時系列データ」とも称す。本実施の形態において、「時系列データ」は、任意の対象についてのデータ(観測値)の時間的な変化を連続的(あるいは、一定間隔をおいて不連続)に観測して得られる一連の値を意味する。
本明細書において「観測値」は、制御装置2での制御演算において利用可能な値(実値)を総称する概念であり、典型的には、制御対象から取得されて制御演算に入力される値(フィールドから取得された測定値など)、取得された入力値に基づいて制御演算によって決定される制御対象に対する出力値(フィールドへ与えられる指令値など)、制御演算の過程において算出される演算値(任意の変数値)などを含み得る。すなわち、「観測値」は、制御装置2においてデータとして格納できる、あるいは、制御装置2からデータとして外部出力できる任意の値を包含するものである。
ネットワーク14は、インターネットなどの外部ネットワークを含む。ネットワーク14には、製造実行システム400とクラウド上の外部装置などが接続される。製造実行システム400は、クラウド上の装置とデータを遣り取りすることにより、時系列DB450のデータをクラウド上の装置に転送する。
制御装置2は、サポート装置500が接続され得る。サポート装置500は、制御装置2が制御対象を制御するために必要な準備を支援する装置である。
制御システム1のネットワーク11に接続される制御装置2A、2Bおよび2Cは、それぞれ、異なる工程3A、3Bおよび3Cに備えられる。限定されないが、例えば、工程3Aは製品(ワーク)の組立工程を示し、工程3Bは組立てられた製品の塗装工程を示し、工程3Cが塗装された製品の検査工程を示す。
図1に示す制御システム1において、ネットワーク12およびそれ以下のレベルにあるネットワーク11およびネットワーク110は、「ファクトリーネットワーク」とも称され、機器を現実に制御するためのデータ(以下、「制御系データ」と総称することもある)を遣り取りする制御系通信を提供する。一方、ネットワーク13およびそれ以上のレベルにあるネットワーク14は、「コーポレートネットワーク」とも称され、生産ライン/工場での生産活動などを監視・管理・制御するためのデータ(以下、「情報系データ」と総称することもある)を遣り取りする情報系通信を提供する。
ネットワーク11~14およびネットワーク110には、このような要求される特性の違いに応じたプロトコルおよびフレームワークが採用される。例えば、ファクトリーネットワークに属するネットワーク11および12のプロトコルとしては、汎用的なEthernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)を用いてもよい。また、ネットワーク110のプロトコルとしては、マシンコントロール用ネットワークの一例であるEtherCAT(登録商標)を採用してもよい。なお、ネットワーク11のプロトコル(第1のプロトコル)とネットワーク110のプロトコル(第2のプロトコル)とは、同じであってもよいし、異なっていてもよい。このようなマシンコントロールに適したネットワーク技術を採用することで、機器間の伝送に要する時間が保証されたリアルタイム性を提供できる。
これに対して、コーポレートネットワークに属するネットワーク13および14のプロトコルとしては、接続先の多様性を担保するために、汎用的なEthernetなどが用いられる。汎用的なEthernetを採用することで、送信可能なデータ量などの制限を排除できる。
<C.制御システム1における時刻同期>
図1に示すファクトリーネットワークにおいては、ネットワーク11に接続される複数の制御装置2A,2Bおよび2Cの各々は、ネットワーク110を介して接続される1または複数のフィールド機器90とのデータを送受信する。具体的には、制御装置2は、フィールド機器90において収集または生成されたデータ(入力データ)を収集する処理(入力処理)、フィールド機器90に対する指令などのデータ(出力データ)を生成する処理(演算処理)および、生成した出力データを対象のフィールド機器90へ送信する処理(出力処理)などを実行する。
ネットワーク110では、データの到着時間が保証される必要がある。そのため、制御装置2は、データ伝送のタイミングを規定する、データが送受信される主体(すなわち、1または複数のフィールド機器90)の間で互いに時刻同期されたタイマを有している。
しかしながら、複数の制御装置2の間で時刻同期がとれていない場合には、例えば、1つの制御装置2に接続されるフィールド機器90と、別の制御装置2に接続されるフィールド機器90との間は時刻同期させることができない。その結果、入出力リフレッシュ処理のタイミングが一致しない場合が生じ得るため、互いに異なる制御装置2に接続される複数のフィールド機器90を連係して動作させることが困難となる。
そこで、本実施の形態に従う制御システム1においては、複数の制御装置2の各々が有するタイマを互いに時刻同期させる。これにより、互いに異なる制御装置2に接続される、すなわち異なる工程間において複数のフィールド機器90の協調制御を実現する。
以下、本実施の形態に係る制御システム1が提供する時刻同期機能について説明する。
(c1.ネットワーク構成例)
次に、本実施の形態に従う制御システム1のネットワーク構成例について説明する。図2は、本実施の形態に従う制御システム1のネットワーク構成例を示す模式図である。
図2に示す制御システム1は、複数の制御装置2A,2Bおよび2Cと、複数のフィールド機器90A~90Iとを備える。制御システム1は、一例として、少なくとも一部の制御装置がデイジーチェーン接続のネットワークを採用する。制御装置2A,2Bおよび2Cの各々は、対応するネットワーク110内のデータ伝送を管理するマスタとして機能する。フィールド機器90A~90Iは、対応するマスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。
制御装置2A,2Bおよび2Cは、コントロールレベルのネットワーク11(上位のネットワーク)に接続されている。ネットワーク11には、例えば装置/ライン管理装置190が接続されている。
制御装置2Aに接続されるネットワーク110には、フィールド機器90A~90Cがデイジーチェーンで順次接続されており、制御装置2Bに接続されるネットワーク110には、フィールド機器90D~90Fがデイジーチェーンで順次接続されており、制御装置2Cに接続されるネットワーク110には、フィールド機器90G~90Iがデイジーチェーンで順次接続されている。
ネットワーク110内において、制御装置2および1または複数のフィールド機器90は、いずれもデータ伝送機能を有する通信装置とみなすことができる。図2に示す例においては、制御装置2および1または複数のフィールド機器90の各々は、隣接して接続されているある通信装置から、ネットワーク上を伝送されるデータを受信すると、当該データを必要に応じて、隣接して接続されている別の通信装置へ伝送する機能を有している。
本実施の形態に従う制御システム1において、ネットワーク110に接続される複数の通信装置、すなわち制御装置2および1または複数のフィールド機器90の間では、送受信タイミングが同期されている(図中の時刻同期(3)に相当)。具体的には、制御装置2および1または複数のフィールド機器90の各々は、互いに時刻同期されたタイマ(あるいは、同期してインクリメントまたはデクリメントされるカウンタ)を備える。制御装置2および1または複数のフィールド機器90の各々は、それらの時刻同期されたタイマまたはカウンタに従って、データの送信または受信のタイミングを決定する。
なお、本実施の形態では「タイミング」は何らかの事象が生じる時期、時間または時刻の概念を表す。また、「時刻同期」とはお互いが有するタイマ,時間データ等を同期させることを示す。
図2を参照して、制御装置2Aはタイマ102Aを備え、フィールド機器90A~90Cはそれぞれタイマ91A~91Cを備える。制御装置2Aのタイマ102Aがマスタとして機能し、フィールド機器90A~90Cのタイマ91A~91Cがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Aのタイマ値に基づく値が、タイマ91A~91Cに設定される。
制御装置2Bはタイマ102Bを有しており、フィールド機器90D~90Fはタイマ91D~91Fをそれぞれ有している。制御装置2Bのタイマ102Bがマスタとして機能し、フィールド機器90D~90Fのタイマ91D~91Fがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Bのタイマ値に基づく値が、タイマ91D~91Fに設定される。
制御装置2Cはタイマ102Cを有しており、フィールド機器90G~90Iはタイマ91G~91Iをそれぞれ有している。制御装置2Cのタイマ102Cがマスタとして機能し、フィールド機器90G~90Iのタイマ91G~91Iがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Cのタイマ値に基づく値が、タイマ91G~91Iに設定される。
すなわち、制御装置2A,2Bおよび2Cの各々は、対応のネットワーク110内のデータ伝送を管理するマスタとして機能し、各制御装置2に接続されるフィールド機器90は、マスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。マスタとスレーブとの間でタイマを互いに時刻同期させることにより、ネットワーク110を構成する制御装置2とフィールド機器90との間でデータの伝送タイミングなどを互いに一致させることができる。
図2に示す例において、制御装置2Aは、さらに、タイマ102Aと時刻同期されたタイマ101Aを有している。制御装置2Bは、さらに、タイマ102Bと時刻同期されたタイマ101Bを有している。制御装置2Cは、さらに、タイマ102Cと時刻同期されたタイマ101Cを有している(図中の時刻同期(2)に相当)。制御システム1においては、例えば、タイマ101A~101Cのいずれかを、制御システム1全体のマスタとして機能させることができる。
一例として、図2では、制御装置2Aのタイマ101Aがマスタに設定され、制御装置2B,2Cのタイマがこのマスタに時刻同期する。これにより、複数の制御装置2A,2Bおよび2Cの間で、互いに時刻同期させることができる(図中の時刻同期(1)に相当)。
このように、複数の制御装置2A,2Bおよび2Cの各々は、複数の制御装置2A,2Bおよび2Cの間で互いに時刻同期された装置間タイマ(タイマ101A、101Bおよび101C)と、ネットワーク110を介して接続される1または複数のフィールド機器90と時刻同期された機器間タイマ(タイマ102A、102Bおよび102C)とを有しており、装置間タイマと機器間タイマとは互いに時刻同期している。この結果、制御装置2Aおよびフィールド機器90A~90Cの間で時刻同期された機器間タイマ(タイマ102A)と、制御装置2Bおよびフィールド機器90D~90Fの間で時刻同期された機器間タイマ(タイマ102B)と、制御装置2Cおよびフィールド機器90G~90Iの間で時刻同期された機器間タイマ(タイマ102C)とが互いに時刻同期することになる。
なお、図2には、いずれかの制御装置2のタイマをマスタとして設定する構成例について説明したが、ネットワーク11を介して外部から取得する時刻をマスタとしてもよく、または装置/ライン管理装置190などの外部装置のタイマをマスタとしてもよい。
(c2.時刻同期したデータ通信)
図3は、本実施の形態に従う制御システム1のデータ通信処理を示す模式図である。図3を参照して、ネットワーク110に接続される制御装置2Aと複数のフィールド機器90A~90Cとの間では、予め定められたシステム周期に従って、データが遣り取りされる。
制御装置2Bと複数のフィールド機器90D~90Fとの間、および、制御装置2Cと複数のフィールド機器90G~90Iとの間においても、システム周期に従って、データが遣り取りされる。このようなデータの遣り取りによって、制御装置2およびフィールド機器90の制御動作が実現される。以下の説明では、ネットワーク110上の通信を「下位ネットワーク(NW)通信」とも称する。
上位のネットワーク11に接続される制御装置2A,2Bおよび2Cの間では、予め定められたシステム周期に従って、各制御装置2が入力処理によってフィールド機器90から収集したデータ、演算処理によって生成した出力データなどが遣り取りされる。このようなデータの遣り取りによって、制御装置2Aに接続されるフィールド機器90、制御装置2Bに接続されるフィールド機器90および制御装置2Cに接続されるフィールド機器90を連係して動作させることができる。すなわち、異なる工程間でフィールド機器90を連係して動作させることができる。以下の説明では、ネットワーク11上の通信を「上位のネットワーク(NW)通信」とも称する。
本実施の形態に従う制御システム1においては、下位ネットワーク通信におけるデータの伝送を開始すべきタイミングは、複数の制御装置2A,2Bおよび2Cの間で互いに時刻同期されているタイマに基づいて決定される。これにより、複数の制御装置2A,2Bおよび2Cの間では、フィールド機器90との間でデータを遣り取りするタイミングなどを互いに一致させることができるため、結果的に、異なる工程間でフィールド機器90の制御タイミングを同期させることができる。
<D.制御装置2の構成と時刻同期>
図4は、本実施の形態に係る制御装置2のユニットの構成例を示す模式図である。図4を参照して、制御システム1が備える制御装置2は、CPU(Central Processing Unit)のユニット100(以下、CPUユニット100と称する)、1または複数の機能ユニット200、および1または複数の機能ユニット300を含む。図4では、制御装置2が備える機能ユニット300は4台としているが、1台以上であれば4台に限定されず、また制御装置2が備える機能ユニット200は2台としているが、1台以上であれば2台に限定されない。CPUユニット100は、1または複数の機能ユニット200を、データバス111と信号線113を介して接続する。また、CPUユニット100は、1または複数の機能ユニット300を、データバス112を介して接続する。
データバス111は、限定されないが、例えばPCIe(PCI Express(ピーシーアイエクスプレス))に従うI/Oシリアルインタフェースのバスである。信号線113は、光ファイバケーブルまたは電気的な信号ケーブルであり、トリガ信号である後述する時刻同期信号130を伝送する。
CPUユニット100は、制御対象に応じて作成されたプログラムを実行するプログラム実行部を有している。より具体的には、CPUユニット100は、システムプログラムおよび各種のユーザプログラムを実行する演算処理部に相当する。
機能ユニット200は、通信処理または情報処理を実施する。機能ユニット200は、データバス111を接続するインターフェイスおよび信号線113を接続する信号ポート212Pを備える。機能ユニット200はネットワーク11と制御装置2との間を仲介するように配置されることで、CPUユニット100は、機能ユニット200を介して、ネットワーク11に接続されたデバイスとの間でデータ通信を行うことができる。また、CPUユニット100の信号ポート110Pと機能ユニット200の信号ポート212Pとの間に信号線113が接続されることで、CPUユニット100および機能ユニット200は信号線113を介して時刻同期信号130を受信する。
本実施の形態において、機能ユニット200は、CPUユニット100に対するネットワーク14等のインターネットからのアクセス、および、ネットワーク11内の他の装置からのCPUユニット100に対するアクセスを監視するとともに、何らかのセキュリティ事象の発生を検知すると、制御装置2の内部または外部へ当該検知したセキュリティ事象に係る通知を行う。なお、機能ユニット200が実施する情報処理は、セキュリティ監視処理に限定されない。
機能ユニット300は、フィールド機器90等の制御対象の設備および装置、ならびに、それらに配置されている各種デバイス(センサやアクチュエータなど)との間で信号を遣り取りする、いわゆるI/Oユニットの機能を備える。具体的には、機能ユニット300は、CPUユニット100において算出される指令値をフィールドへ出力、あるいは、フィールドからの入力値を収集する。機能ユニット300としては、例えば、制御対象からのデジタル信号を受取るDI(Digital Input)モジュール、制御対象に対してデジタル信号を出力するDO(Digital Output)モジュール、制御対象からのアナログ信号を受取るAI(Analog Input)モジュール、制御対象に対してアナログ信号を出力するAO(Analog Output)モジュールのうち1または複数のモジュールを有している。さらに、機能ユニット300としては、PID(Proportional Integral Derivative)制御やモーション制御といった特殊機能を実装したコントローラを含み得る。
機能ユニット200または機能ユニット300は、CPUユニット100に対して、着脱自在に外付けされ得る拡張ユニットとして提供され得る。
(d1.CPUユニット100の構成)
図5は、本実施の形態に係る制御装置2が備えるCPUユニット100のハードウェア構成例を示すブロック図である。
CPUユニット100は、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ105と、USB(Universal Serial Bus)コントローラ107と、メモリカードインターフェイス109と、ローカルバスコントローラ120,122と、フィールドネットワークコントローラ118と、カウンタ126と、RTC(Real Time Clock)128と、信号ポート110Pを含む。
プロセッサ102は、CPU、MPU(microprocessor unit)、GPU(Graphics Processing Unit)などで構成され、二次記憶装置108に格納された各種プログラムを読出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。二次記憶装置108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。主記憶装置106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。
チップセット104は、プロセッサ102と各デバイスを制御することで、CPUユニット100全体としての処理を実現する。
二次記憶装置108には、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラムが格納される。さらに、二次記憶装置108には、時刻換算情報30が格納される。時刻換算情報30は、各ユニットが備えるカウンタの値から時刻(実時間)を算出するための換算に関する情報を示す。また、二次記憶装置108には、後述するような時系列データベースも格納される。なお、時刻換算情報30を格納するデバイスは、二次記憶装置108に限定されず、主記憶装置106に格納されてもよい。
上位ネットワークコントローラ105は、上位のネットワーク11を介して、製造実行システム400またはクラウド上の装置(図1参照)などとの間のデータを遣り取りする。USBコントローラ107は、USB接続を介してサポート装置500との間のデータの遣り取りを制御する。
メモリカードインターフェイス109は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
カウンタ126は、CPUユニット100における各種処理の実行タイミングを管理するための時刻基準として用いられる。カウンタ126は、典型的には、所定周期毎にカウンタ値をインクリメントまたはデクリメントする。カウンタ126として、プロセッサ102を駆動するシステムバス上に配置された、ハードウェアタイマーである高精度イベントタイマー(HPET:High Precision Event Timer)などを用いて実装してもよいし、あるいは、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用回路を用いて実装してもよい。
RTC128は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ102などへ提供する。
ローカルバスコントローラ122は、CPUユニット100に接続され得る機能ユニット300-1,300-2,…との間でデータを遣り取りするインターフェイスである。ローカルバスコントローラ122は、データバス112を介して接続される他のデバイスである、機能ユニット300-1,300-2,…との間でタイミングを管理するための時刻基準として用いられるカウンタ124を有している。同様に、機能ユニット300-1,300-2,…の各々も、ローカルバスコントローラ122および他の機能ユニット300との間でタイミングを管理するための時刻基準として用いられるカウンタ125を有している。カウンタ124およびカウンタ125については、上述のカウンタ126と同様の構成を採用できる。
フィールドネットワークコントローラ118は、ネットワーク110を介したフィールド機器90を含む他のデバイスとの間のデータの遣り取りを制御する。フィールドネットワークコントローラ118は、他のデバイスとの間でタイミングを管理するための時刻基準として用いられるカウンタ119を有している。図5では、フィールド機器90のタイマ91をカウンタ91A、91B…で示される。
ローカルバスコントローラ120は、CPUユニット100に接続され得る機能ユニット200-1,200-2,…との間でデータを遣り取りするインターフェイスである。ローカルバスコントローラ120は、データバス111を介して接続される他のデバイスである、機能ユニット200-1,200-2,…との間でタイミングを管理するための時刻基準として用いられるカウンタ121を有している。同様に、機能ユニット200-1,200-2,…の各々も、ローカルバスコントローラ120との間でタイミングを管理するための時刻基準として用いられるカウンタ213を有している。カウンタ121およびカウンタ213は上述のカウンタ126と同様の構成を採用できる。
また、ネットワーク110上の各デバイスも、フィールドネットワークコントローラ118との間でタイミングを管理するための時刻基準として用いられるカウンタを有している。
カウンタ119ならびにフィールド機器90などのデバイスが有するカウンタ(カウンタ91)については、上述のカウンタ126と同様の構成を採用できる。
フィールドネットワークコントローラ118は、ネットワーク110を介した定周期通信を行うための通信マスタとして機能し、フィールドバスに接続されている各デバイスが有するカウンタが示すカウンタ値とカウンタ119が示すカウンタ値との差分を逐次監視して、必要に応じて、カウンタ値にずれが発生しているデバイスに対して補正を指示するための同期信号を出力する。このように、フィールドネットワークコントローラ118は、デバイスのカウンタが示すカウンタ値をカウンタ119が示すカウンタ値と一致させるための指令をデバイスへ与える同期管理機能を有している。
信号ポート110Pは、時刻同期信号130を伝送する信号線113が接続される。
図5のCPUユニット100では、カウンタ119、カウンタ121およびカウンタ124は、カウンタ126と同期する。
図5には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、CPUユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
本実施の形態に係る制御システム1においては、CPUユニット100およびサポート装置500が別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
(d2.機能ユニット200の構成)
図6は、本実施の形態に係る制御装置2が備える機能ユニット200のハードウェア構成例を示すブロック図である。図6を参照して、機能ユニット200は、プロセッサ202、チップセット204、主メモリ206、ストレージ208、ユニット間インターフェイス210、ネットワークインターフェイス220、および信号ポート212Pを含む。信号ポート212Pは、時刻同期信号130を伝送する信号線113が接続される。
プロセッサ202は、CPU、MPU、GPUなどで構成される。上述のCPUユニット100と同様に、機能ユニット200は、1または複数のプロセッサ202、および/または、1または複数のコアを有するプロセッサ202を有している。チップセット204は、プロセッサ202および周辺エレメントを制御することで、機能ユニット200全体としての処理を実現する。チップセット204は、時刻同期信号130を生成する回路素子である信号ジェネレーター205を含む。信号ジェネレーター205からの時刻同期信号130は、信号ポート212Pを介して信号線113に送出される。主メモリ206は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ208は、例えば、フラッシュメモリなどの不揮発性記憶装置などで構成される。
プロセッサ202は、ストレージ208に格納された各種プログラムを読出して、主メモリ206に展開して実行することで、例えばセキュリティ事象の監視などの処理を実現する。ストレージ208には、基本的な処理を実現するためのOS(Operating System)27を含むシステムプログラム22とユーザプログラム20を格納する。また、ストレージ208は、カウンタ213のカウンタ値から実時刻を算出するための換算に関する情報である時刻換算情報30を格納するとともに、機能ユニット200が収集した観測値の時系列データを格納する記憶領域21を有する。なお、時刻換算情報30を格納する記憶デバイスは、ストレージ208に限定されず、主メモリ206であってもよい。
ユーザプログラム20は、機能ユニット200が扱う時刻を管理する時刻管理プログラム26およびセキュリティ監視処理のためのセキュリティプログラム24を含む。時刻管理プログラム26は、ユニット間でカウンタを同期するためのカウンタ同期プログラム23、および実行されるとカウンタ値を補正する補正プログラム25を含む。セキュリティプログラム24は、実行されると、制御装置2の運用者または管理者などが予め定めた規則などを規定するセキュリティ設定に基づく、セキュリティ監視処理を実施し、処理の結果に基く観測値を収集し、時系列データとして記憶領域21に格納する。補正プログラム25が実行されることによりカウンタ値の補正処理が実施されるが、補正処理については後述する。
ユニット間インターフェイス210は、データバス111を接続する。ユニット間インターフェイス210は、データバス111を介してCPUユニット100または他の機能ユニット200とデータを遣り取りする。
ユニット間インターフェイス210は、CPUユニット100または他の機能ユニット200とデータを送受信するためのコントローラ(図中ではTx/Rx CTRLで示す)およびバッファを備えるデータ通信回路211、およびカウンタ213を備える。
ネットワークインターフェイス220は、ネットワーク11を介してデータを遣り取りするためにコントローラ(図中ではTx/Rx CTRLで示す)222およびバッファ226を含む。
ユニット間インターフェイス210およびネットワークインターフェイス220が備えるバッファは、送信すべきデータおよび受信したデータなどを一時的に蓄える記憶部に相当する。カウンタ213は、CPUユニット100が備えるカウンタ126(図6参照)と同様の構成を備える。
機能ユニット200のネットワークインターフェイス220およびユニット間インターフェイス201は、例えばNIC(Network Interface Card)を備える。また、図6は、プロセッサ202がプログラムを実行することで必要な処理が実現される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装されてもよい。
(d3.機能ユニット300の構成)
図7は、本実施の形態に係る制御装置2が備える機能ユニット300のハードウェア構成例を示すブロック図である。図7を参照して、機能ユニット300は、制御システム1による様々な機械または設備等の制御を実現するために必要な各種機能を提供する。より具体的には、機能ユニット300の各々は、機能モジュール157と、I/O(入出力)インターフェイス159と、通信回路161とを含む。
機能モジュール157は、各機能ユニット300の主たる処理を実行する部分であり、制御対象の機械または設備などからのフィールド情報の収集および制御対象の機械または設備などへの指令信号の出力などを司る。
I/Oインターフェイス159は、制御対象の機械または設備等との間の信号の遣り取りを仲介する回路である。
通信回路161は、データバス112を順次転送されるデータを処理する。すなわち、通信回路161は、データバス112を介して何らかのデータを受信すると、当該受信したデータを処理した後に、データバス112上において次に位置する機能ユニット300へ当該通信データを送信する。通信回路161は、このようなデータをリレーする機能を提供する。
より具体的には、通信回路161は、送受信ポート162,164、送受信のためのコントローラ(図中ではTx/Rx CTRLで示す)166およびカウンタ168を含む。
送受信ポート162,164は、データバス112と物理的に接続される部位であり、コントローラ166からの指令に従って、データバス112上を伝送されるデータの受信および再生などの処理を行うことで、データの順次転送を実現する。
コントローラ166は、データバス112上を転送されるデータの読出し、データの変更等のデータ処理を実施する。
カウンタ168は、コントローラ166による指令出力または機能モジュール157での処理実行などのタイミングの基準となるクロックを発生する。カウンタ168には、例えばリアルタイムクロックによるカウンタを採用することもできるが、本実施の形態においては、所定周期でカウントアップ(インクリメント)するフリーランカウンタを適用することができる。
(d4.CPUユニット100のソフトウェア構成例)
次に、本実施の形態に係る制御システム1を構成するCPUユニット100のソフトウェア構成例について説明する。
図8は、本実施の形態に係るCPUユニット100のソフトウェア構成例を示すブロック図である。図8を参照して、CPUユニット100は、PLCエンジン150と、時系列データベース180と、上位接続プログラム192と、ゲートウェイプログラム194とを含む。
PLCエンジン150は、各種プログラムの実行環境下において各種プログラムを実行する。典型的には、この実行環境は、CPUユニット100のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで提供される。
より具体的には、PLCエンジン150は、制御プログラム152と、変数管理プログラム160と、スケジューラプログラム170と、入力プログラム172と、出力プログラム174と、時刻同期プログラム177と、換算情報管理プログラム179とを含む。変数管理プログラム160と、スケジューラプログラム170と、入力プログラム172と、出力プログラム174とについては、システムプログラムの一部として実装されてもよい。この場合には、これらのプログラムが提供するそれぞれの機能を単一のシステムプログラムが提供するようにしてもよい。
制御プログラム152は、典型的には、ユーザプログラム154と、データベース書込みプログラム156と、シリアライズ通信プログラム158とにより構成される。ユーザプログラム154は、制御演算機能を提供する主たる部分に相当し、CPUユニット100の制御対象の製造装置や設備などに応じて任意に構成することができる。ユーザプログラム154は、例えば、ファンクションブロックなどを利用したラダーロジックなどで規定することができる。
データベース書込みプログラム156は、ユーザプログラム154内に規定された命令によって呼び出され、時系列データベース180に対して指定されたデータを書込む。
シリアライズ通信プログラム158は、データベース書込みプログラム156から時系列データベース180に対して書込まれるデータに対してシリアライズ処理を行う。より具体的には、シリアライズ通信プログラム158は、時系列データを格納可能なバイト列に変換する処理(シリアライズ)を実行する。対象のデータは、シリアライズ処理により所定のバイト列に変換された上で、時系列データベース180内に格納される。なお、時系列データベース180へのデータ書込みの速度およびデータ容量などに応じて、必ずしもシリアライズ処理を行う必要はない。すなわち、シリアライズ通信プログラム158はオプショナルな構成である。
変数管理プログラム160は、PLCエンジン150で利用可能な値を変数の形で管理する。より具体的には、変数管理プログラム160は、CPUユニット100の状態などを示すシステム変数と、CPUユニット100とローカルバスまたはフィールドバスを介して接続される各種デバイスが保持する値を示すデバイス変数と、CPUユニット100で実行されるユーザプログラム154が保持する値を示すユーザ変数とを管理する。
入力プログラム172は、CPUユニット100とローカルバスまたはフィールドバスを介して接続される各種デバイスから入力データを取得する機能を提供する。
出力プログラム174は、CPUユニット100において実行されるユーザプログラム154によって算出される指令値(出力データ)をデータバス112またはネットワーク110を介して接続される対象のデバイスへ出力する。
時刻同期プログラム177は、CPUユニット100内の制御プログラムの実行周期、データバス112に接続される機能ユニット200、およびネットワーク110に接続されるフィールド機器90と相互の間で時刻同期を実現する。時刻同期プログラム177は、時刻同期をとるために管理するタイマを適宜補正するための補正プログラム178を備える。補正プログラム178が実行されることにより後述する補正処理が実施されるが、補正処理については後述する。
換算情報管理プログラム179は、カウンタの値から時刻を算出するための換算に関する換算情報の管理を実現する。換算情報管理プログラム179が実現する換算情報の管理には、ユニット間における換算情報の共有を含む。換算情報の共有は、例えば時刻換算情報30を他のユニットに配信することにより実現される。
スケジューラプログラム170は、CPUユニット100のプロセスまたはタスクなどに対して、リソース割当てや実行タイミングなどを管理する。このような、プロセスまたはタスクは、制御プログラム152および変数管理プログラム160、入力プログラム172、出力プログラム174、時刻同期プログラム177および換算情報管理プログラム179等がCPUユニット100により実行されることにより生成され得るプロセスまたはタスクが含まれる。
時系列データベース180は、典型的には、主記憶装置106または二次記憶装置108に配置され、データを格納する機能とともに、外部からの要求(クエリ)に応答して、指定されたデータを応答する検索機能を搭載している。時系列データベース180は、データベース書込みプログラム156により書込まれる時系列データ182を格納している。すなわち、時系列データベース180は、入力データ、出力データ、制御プログラム152による制御演算において算出される演算データ、製造データ、イベントデータの少なくとも一部を時系列に格納する。このような入力データおよび出力データには、CPUユニット100が機能ユニット300から受信するデータおよびCPUユニット100が機能ユニット300へ送信するデータが含まれる。また、イベントデータには、CPUユニット100が、機能ユニット200から受信するセキュリティ監視に関するデータが含まれ得る。
上位接続プログラム192は、製造実行システム400などの上位のネットワーク13に接続された外部装置との間でデータを遣り取りする。本実施の形態に係るCPUユニット100においては、CPUユニット100から製造実行システム400に対して入力データや演算データが出力されるとともに、製造実行システム400から製造情報を受信することができる。このように、上位接続プログラム192は、制御対象に関連付けられた製造実行システム400から製造データを取得する製造データ取得機能を提供する。
本実施の形態では、製造実行システム400は時系列DB450を有している。この場合には、上位接続プログラム192に代えて、あるいは、上位接続プログラム192の一部として、データベース接続プログラム193(図中ではデータベースを“DB”と示す)が設けられ得る。データベース接続プログラム193は、例えば、リレーショナルデータベースに対してSQLなどのクエリを送信するとともに、応答を受信する処理を実行するようにしてもよい。データベース接続プログラム193が実行されることにより、CPUユニット100内の時系列データベース180の時系列データ182は、製造実行システム400に転送されて、時系列DB450に格納され得る。データベース接続プログラム193により製造実行システム400へ出力される時系列データの詳細については後述する。
ゲートウェイプログラム194は、クラウド上の装置と通信する。例えば、クラウド上のIoTサービスを提供する装置に対して、時系列データベース180の時系列データ182を提供する。具体的には、ゲートウェイプログラム194は、時系列データベース180から、指定された種類のデータを指定された周期で取得して、時系列データとして出力する。ゲートウェイプログラム194によりIoTサービスの提供装置へ出力される時系列データは、例えば、データベース接続プログラム193により製造実行システム400へ出力される時系列データと同様な構成を備えることができる。
CPUユニット100の入力プログラム172は、データバス111,112および/またはネットワーク110を介してセンサ等のフィールド機器90から入力データを取得する。
CPUユニット100の上位接続プログラム192は、製造実行システム400から製造データを取得する。変数管理プログラム160は、これらの取得された入力データおよび製造データを変数として管理する。
ユーザプログラム154は、変数管理プログラム160により管理されるシステム変数、デバイス変数、ユーザ変数を参照しつつ、予め指定された制御演算を実行し、その実行結果(出力データ)を変数管理プログラム160に出力する。
出力プログラム174は、ユーザプログラム154の制御演算によって算出される出力データを制御出力として、データバス112および/またはネットワーク110を介してアクチュエータ等のフィールド機器90へ出力する。
データベース書込みプログラム156は、変数管理プログラム160により管理される変数のうち指定された観測値を時系列データベース180に書込む。
上位接続プログラム192は、変数管理プログラム160により管理される変数のうち指定された変数の値、および/または、時系列データベース180に格納された時系列データ182のうち指定されたデータを、時系列データとして製造実行システム400へ出力する。
ゲートウェイプログラム194は、変数管理プログラム160により管理される変数のうち指定された変数の値、および/または、時系列データベース180に格納された時系列データ182のうち指定されたデータを、時系列データとしてIoTサービスへ出力する。IoTサービスの提供装置は、例えば、CPUユニット100からの時系列データに基づいて、挙動解析を行って、制御対象の設備や装置などの予知保全などを行うサービスを提供する。
<E.時刻同期の構成>
まず、本実施の形態に係る制御装置2は、時刻およびカウンタを同期させる機能(以下、それぞれ「時刻同期」および「カウンタ同期」とも称す。)を有している。
本明細書において、「時刻」は、時の流れにおけるある一点を示すものを意図し、例えば、時分秒などの単位を用いて規定される。「カウンタ」は、制御装置2および関連する装置内でタイミングを制御するための値を包含し、基本的には、予め定められた単位時間毎に所定値ずつインクリメントまたはデクリメントされる値(以下では、カウンタが示す値を「カウンタ値」とも称す。)を示す。本実施の形態では、限定されないが、カウンタ値はタイマの値に相当し、限定されないが、例えばナノ秒のオーダを表現し得る64ビット長の整数値を表す。
本実施の形態では、制御装置2を構成するユニット間および各ユニットとフィールド機器90を含む他のデバイスとの間では、カウンタ値を用いた時刻同期が採用される。
再び、図9を参照して、ネットワーク11から各制御装置2が実時刻を管理する基準クロックであるマスタクロックのカウンタ値を受信(取得)するための構成、および時刻同期信号130をトリガとして時刻同期の実現するための構成を説明する。図9では、時刻同期信号130は、機能ユニット200の信号ジェネレーター205により生成されて信号線113に伝送される。
このような時刻同期を実現する構成は、例えば、ネットワーク11がTSN(Time-Sensitive Networking)に従うデータ通信を実施するケースと、ネットワーク11がEtherCAT(登録商標:Ethernet for Control Automation Technology)に従うデータ通信を実施するケースとを含み得る。なお、ネットワーク11に適用される規格は、これらに限定されず、例えばIEEE1588であってもよい。
図9を参照して、時刻を管理するマスタクロック191Aは、例えばネットワーク11上の装置/ライン管理装置190により提供される。マスタクロック191Aは、例えばインターネット上に配置された時刻同期サーバが管理する絶対時刻(実時刻)を示す。マスタクロック191Aは、カウンタ同期のための基準クロックとして用いることができて、基準クロックとしてのマスタクロック191Aは、ネットワーク11上の他の装置に備えられてもよい。
CPUユニット100は、時刻同期プログラム177が実行されることにより、同期処理部114を備える。同期処理部114は、上位ネットワークコントローラ105を介して装置/ライン管理装置190と通信し、マスタクロック191Aを参照する。同期処理部114は、装置/ライン管理装置190の時刻同期サーバとしての機能を利用して、マスタクロック191Aの時刻を取得するとき、ネットワーク11等の伝送遅延を補正する。これにより、同期処理部114は、マスタクロック191Aから、より正確な時刻を取得することができる。また、同期処理部114は、時刻同期プロトコルを用いて時刻を取得する際に、同期処理部114は時刻同期プロトコルを実行したタイミングにおけるカウンタ126のカウンタ値をラッチする。これにより、マスタクロック191Aから取得される時刻とカウンタ値の紐付けが得られる。このような紐付けの結果は「時刻換算情報30」となる。紐付けを維持することは、マスタクロック191AとCPUユニット100の同期に相当する。また、この紐付けを維持するにあたって、「時刻換算情報30」の更新、ユニット内の時刻(RTC128の時刻)の更新、カウンタの補正が実行され得る。
機能ユニット200は、カウンタ同期プログラム23が実行されることにより実現される同期処理部216を備える。機能ユニット200の同期処理部216は、例えば起動時にデータバス111を介してCPUユニット100からカウンタ126のカウンタ値を受信し、受信したカウンタ値をカウンタ213に設定する。以降は、同期処理部216は、カウンタ213のカウンタ値を内部のハードウェア回路からの出力に同期して周期的に更新(インクリメント、またはデクリメント)し、更新後の値を制御用のカウンタ213に設定する。これにより、カウンタ213のカウンタ値は周期的に更新される。
CPUユニット100では、スケジューラプログラム170は、制御用のカウンタ126を基準にして制御プログラム152等のスケジューリングを実施する。また、入力プログラム172および出力プログラム174は、カウンタ126に同期したカウンタ119およびカウンタ124を基準にして各デバイスと時刻同期を実施する。これにより、CPUユニット100内における制御プログラム152等のスケジューリング、および制御装置2に接続される各デバイスと当該制御装置2の時刻同期を、マスタクロック191Aを基準にして実施することが可能となる。その結果、CPUユニット100内における制御プログラム等のスケジューリングおよび制御装置2に接続される各デバイス(フィールド機器90など)と当該制御装置2の間の入出力を、マスタクロック191Aに同期させて実施することが可能となる。
(e1.同期処理部によるカウンタの調整処理)
本実施の形態では、例えば、カウンタ126のカウンタ値の更新はCPUユニット100の内部のハードウェア回路の出力信号に同期して実施される。そのため、ハードウェア回路の誤差等に起因して機能ユニット200のカウンタ213のカウンタ値と、CPUユニット100のカウンタ126のカウンタ値との差(以下、これを同期ずれともいう)が大きくなる可能性がある。同期ずれが大きくなると、CPUユニット100内における制御プログラムのスケジューリング、および制御装置2に接続される各デバイスと当該制御装置2との間の入出力を、マスタクロック191Aに同期させて実施することができないとの事態が生じる。なお、上記の差が生じる要因は、ハードウェア回路の誤差等に限定されない。
このような事態を防止するために、機能ユニット200の同期処理部216とCPUユニット100の同期処理部114は、同期ずれを低減するための補正処理を実施する。この補正処理は、同期処理部114では補正プログラム178が実行されることにより実現されて、同期処理部216では補正プログラム25が実行されることにより実現される。同期処理部114および同期処理部216は、信号線113から時刻同期信号130をトリガとして、ラッチ処理を含む補正処理を実施する。
ラッチ処理では、同期処理部114および同期処理部216は、それぞれ、時刻同期信号130を受信(入力)したとき、カウンタ126およびカウンタ213のカウンタ値をラッチ(取得)し、ラッチしたカウンタ値を所定の記憶領域に格納する。その後、同期処理部114および同期処理部216は、データバス111を介して、ラッチされたカウンタ値を相互に遣り取りして照合し、照合の結果に基づきカウンタ値の差(以下、この差を同期ずれともいう)を導出し、導出された差が小さくなるように、対応するカウンタのカウンタ値を差に基づく調整値で調整する。この調整は、例えば、カウンタ値を調整値で加算または減算するカウンタ値の補正処理を含む。
なお、同期ずれの調整が実施されるタイミングは、時刻同期信号130が受信された時点であってもよく、または、時刻同期信号130を受信した時から所定時間経過後であってもよい。
また、時刻同期信号130の送信元のユニットは、機能ユニット200に限定されず、制御システム1に備えられる他のユニットであってもよい。本実施の形態では、時刻同期信号130は、周期的に、例えば1m秒毎に出力されるが、周期的に出力される方式に限定されない。例えば、機能ユニット200は、カウンタ213のカウンタ値が、ある指示値に等しくなったときに、時刻同期信号130が出力するとしてもよい。
(e2.実時刻を提供するクロックの切替)
上記の実施の形態では、マスタクロック191Aをカウンタを同期させるための基準クロックとして用いたが、時刻同期のための基準クロックを切替えることができる。
具体的には、同期処理部114(または同期処理部216)は、マスタクロック191Aから受信する時刻について、時刻の精度(例えば、ミリ秒、マイクロ秒など)が所定条件を満たすか否かを判断する。なお、時刻の精度の指標は、ミリ秒、マイクロ秒などに限定されない。例えば、指標は、マスタクロック191Aの供給源(timesource)となるサーバーの精度(サーバ名など)、同期のプロトコル、マスタクロック191Aが示すtimezoneなどの情報を含んでもよい。したがって、所定条件は、時刻の精度の指標が示す値が、所定値であることを含み得る。マスタクロック191Aが供給する時刻の精度は所定条件を満たすと判断されたとき、上記の時刻同期において、カウンタ126と213のカウンタ値は、マスタクロック191Aから受信される時刻に合わせて調整される。
これに対して、同期処理部114(または同期処理部216)は、マスタクロック191Aから受信する時刻の精度は所定条件を満たさないと判断したとき、CPUユニット100および機能ユニット200のうちの一方のユニットが備える内部クロックが管理する時刻を基準として、CPUユニット100のカウンタ126および機能ユニット200のカウンタ213を同期させる。本実施の形態では、この内部クロックとして、RTC128を用いるが、機能ユニット200がRTCに対応する内部クロックを備える場合は、基準クロックとして機能ユニット200の内部クロックを用いてもよい。
本実施の形態では、同期処理部114(または同期処理部216)は、マスタクロック191Aが管理する時刻の精度を、限定されないが、例えば、制御システム1の構成を示すコンフィグレーション情報から取得することができる。
(e3.時刻同期の他の実装例)
図9を参照して、制御システム1は、さらに、CPUユニット100および機能ユニット200とは異なるユニット370を備えて、ユニット370に上記に述べた時刻同期処理を実施させてもよい。
ユニット370は、信号線113とデータバス111に接続され得る。ユニット370は、ハードウェアプロセッサを備えて、ハードウェアプロセッサがプログラムを実行することにより、CPUユニット100のカウンタ126および機能ユニット200のカウンタ213を同期させる。具体的には、ユニット370は、信号線113において時刻同期信号130を検出すると、データバス111を介してカウンタ126とカウンタ213からカウンタ値を読出す。ユニット370は、読出されたカウンタ値を用いて上記に述べたように、同期ずれを小さくするようカウンタ126および213のカウンタ値を補正する。ユニット370は、補正後のカウンタ値を、データバス111を介して各カウンタに設定する。
以上のとおり、各制御装置2においては、マスタクロック191Aの時刻を用いて、(i)ユニット間で時刻同期が実現され、また(ii)各ユニットと当該ユニットに接続されるデバイス間で時刻同期が実現され、また(iii)CPUユニット100ではスケジューラプログラム170により制御プログラム152,入力プログラム172および出力プログラム174の実行についての時刻同期が実現される。さらに各制御装置2が共通のマスタクロック191Aを用いた時刻同期を実施することで、(iv)異なる制御装置2の間で時刻同期を実現することができる。また、異なる工程毎に制御装置2が備えられる場合は、異なる工程間で時刻同期を実施することができる。
<F.時刻換算情報と換算の例>
図10は、本実施の形態に係る時刻換算情報30の一例を模式的に示す図である。時刻換算情報30は、ユニット間で共有される情報であって、カウンタの値から実時刻を算出する換算に関する情報を含む。例えば、時刻換算情報30は、ユニット間で共有される換算式36と変換表35を含む。本実施の形態では、ユニット間での換算式の共有は、図10に示される変換表35を用いて実現される。
換算式36は、例えば、currentTOD = baseTOD + (currentCount - baseCount)である。換算式36は、基準時刻(baseTOD)からの経過時間を制御用のカウンタ値を用いた(currentCount - baseCount)で算出し、この算出値に基準時刻(baseTOD)を加算することで現在の実時刻(currentTOD)を得る式である。
図10を参照して変換表35は、表の要素31のそれぞれに対応付けて、当該要素の説明32、型・単位の例33および値の例34を含む。要素31は、例えば「baseCount」と「baseTOD」と「timezone」と「timeSource」を含む。「baseCount」と「baseTOD」は、換算式36のオペランドを示す。具体的には、「baseCount」は、基準となる制御用カウンタ値であって、本実施の形態では、CPUユニット100のカウンタ126のカウンタ値を示す。また、「baseTOD」は、「baseCount」の値と対になる値とであって、本実施の形態では、CPUユニット100のRTC128のクロック値であるTOD値を示す。
CPUユニット100の後述する時刻管理部117は、換算式36のオペランド(baseCount)および(baseTOD)に、それぞれ、変換表35の要素31から読出した値を設定し、制御用のカウンタ126の現在のカウンタ値をオペランド(currentCount)に設定することにより、換算式36から現在の実時刻を示す(currentTOD)の値を算出する。同様に、機能ユニット200の後述する時刻管理部215は、換算式36のオペランド(baseCount)および(baseTOD)に、それぞれ、変換表35の要素31から読出した値を設定し、制御用のカウンタ213の現在のカウンタ値をオペランド(currentCount)に設定することにより、換算式36から現在の実時刻を示す(currentTOD)の値を算出する。なお、演算においては、単位の適切な変換が実施される。
換算の一例として、変換表35とcurrentCount=333444555666のケースでは、次のように現在の実時刻が換算される。
currentTOD={秒=1558436425, ナノ秒=849614166}(=May 21 20:00:25 2019 (JST))
なお、変換表35の要素31のうち、「timezone」と「timeSource」は、カウンタの同期に用いるクロックが管理する時刻の精度に関する情報の一例であって、換算に際してはオプション情報として扱うこともできる。
<G.時刻換算情報30の共有>
本実施の形態では、例えば、時刻換算情報30が各ユニット間で共有されるように、マスタ(例えばCPUユニット100)が時刻換算情報30をスレーブ(例えば機能ユニット200)に配信する。
図11は、本実施の形態に係る時刻換算情報30を共有する構成の一例を模式的に示す図である。図11では、マスタ(CPUユニット100)には、例えば2台のスレーブ(機能ユニット200)が接続されている。なお、マスタに接続されるスレーブの台数は、1台または複数台である。
マスタの換算情報管理部123は、二次記憶装置108に格納されている時刻換算情報30を各スレーブに配信(送信)する。この配信は、例えばデータバス111を介して実施される。スレーブは、時刻管理プログラム26が実行されることで実現される時刻管理部215を備える。時刻管理部215は、マスタから送信された時刻換算情報30を受信し、ストレージ208に格納するとともに、時刻換算情報30を用いて上記に述べた現在時刻(currentTOD)を算出する。また、時刻管理部215は、OS27が備える時間マネージャー214が管理する現在時刻を、算出された現在時刻で調整する。これにより、各スレーブでは、OS27が管理する現在時刻を、ユニット間で共有される時刻換算情報30から算出された現在時刻(currentTOD)に更新することができて、その結果、ユニットが管理する現在時刻を、ユニット間で互いに同期させることができる。
なお、機能ユニット200がRTC128に対応する内部クロックを備えて、マスタクロック191Aを当該内部クロックを同期させる場合は、機能ユニット200が備える換算情報管理部がマスタとなって、時刻換算情報30を管理し、スレーブとなるCPUユニット100に配信するとしてもよい。
(g1.時刻換算情報30の共有の他の例)
本実施の形態では、例えば、時刻換算情報30が各ユニット間で共有されるように、マスタによって時刻換算情報30が配信されるスレーブは機能ユニット200に限定されない。このようなスレーブには、例えば、機能ユニット300またはフィールド機器90が含まれ得る。図12は、本実施の形態に係る時刻換算情報30を共有する構成の他の例を模式的に示す図である。
図12では、例えば、マスタと時刻換算情報30を共有するユニットとしてネットワーク110に接続されたフィールド機器90が示される。
CPUユニット100は、ネットワーク110(例えばEtherCAT(登録商標))を介して接続されるフィールド機器90A、90Bおよび90Cと互いに時刻同期する。より具体的には、CPUユニット100の制御用のカウンタ119とフィールド機器90A、90Bおよび90Cのカウンタ91A、91Bおよび91Cが互いに時刻同期する。図12では、マスタからの時刻換算情報30はフィールド機器90Bに配信されているが、他のフィールド機器に配信されてもよい。
なお、図12のケースでは、共有される変換表35の要素31の「baseCount」と「baseTOD」は、そのネットワーク110のプロトコルが機器間で同期するクロック(例:EtherCATではDistributed Clock (DC))値と、それに対応するTOD値のペアとなる。
図12によれば、CPUユニット100は、データバス111を介して機能ユニット200とデータを遣取りするとともに、ネットワーク110に接続される第3のユニットと通信する。同期処理部は、CPUユニット100が備えるカウンタ126とフィールド機器90が備える制御用のカウンタ91とを同期させる。図12では、CPUユニット100のカウンタ126として、当該カウンタ126に時刻同期しているカウンタ119が示されている。フィールド機器90は、CPUユニット100から配信される時刻換算情報30を格納する。これにより、CPUユニット100、機能ユニット200およびフィールド機器90の間で、制御用のカウンタを同期させることができるとともに、時刻換算情報30をユニット間で共有できる。
<H.現在時刻を参照するための構成>
図13、図14および図15は、本実施の形態に係る機能ユニット200のアプリケーションが現在時刻を参照するケースを模式的に示す図である。機能ユニットのアプリケーションは、限定されないが、例えばセキュリティプログラム24を含み得る。図13は、アプリケーションがOS27に現在時刻を問合せるケースを示す、図14と図15は、アプリケーションは時刻管理部215に現在時刻を問合せるケースを示す。
図13を参照して、アプリケーションはOS27に現在時刻を問合わせると(ステップ(1))、OS27の時間マネージャー214は、応答として、管理している現在時刻をアプリケーションに返信する(ステップ(2))。図13のケースでは、既存のアプリケーションは、一般的なインターフェイスで現在時刻を、すなわち時刻管理部215がユニット間で共有する時刻換算情報30から算出された現在時刻を取得することができる。
図14を参照して、アプリケーションは時刻管理部215に現在時刻を問合せると(ステップ(1))、時刻管理部215は制御用のカウンタ213から現在のカウンタ値を参照(読出)し(ステップ(2))、当該カウンタ値を(currentCount)として用いて、変換表35および換算式36に基づき、現在時刻を算出し(ステップ(3))、算出した現在時刻を、応答としてアプリケーションに返信する(ステップ(4))。図14のケースでは,時刻管理部215が問合せを受信したときにカウンタ213が示すカウンタ値(currentCount)を用いて現在時刻が算出されるので、アプリケーションは高い精度を有した現在時刻を取得できる。
図15のケースでは、時刻管理部215は、内部にカウンタ213の現在のカウンタ値と時刻換算情報30から算出した現在時刻を保持し、保持される現在時刻を適宜更新している(ステップ(1))。時刻管理部215は、アプリケーションから現在時刻の問合わせを受けると(ステップ(2))、保持している計算済みの現在時刻を応答としてアプリオケーションに返信する(ステップ(3))。図15のケースでは、アプリケーションが高い頻度で問合せを実施するとしても、時刻管理部215は保持されている現在時刻を返信するだけなので(すなわち、問合せの都度、現在時刻を算出する必要はなく)、時刻管理部215によるハードウェア(例えば、カウンタ213)への高頻度なアクセスを回避することができる。
なお、各ユニットは、図13~図15に示すケースに従う方法のうちの1つを提供してもよく、または、複数の方法を提供してもよい。
<I.基準クロックの精度に応じた時刻換算情報30の共有>
図16は、本実施の形態に係る基準クロックの精度に応じて時刻換算情報30を共有する構成を模式的に示す図である。図16では、CPUユニット100にデータバス111を介して接続される例えば2台の機能ユニット200が示されている。2台の機能ユニット200は、図16では、機能ユニット200Aと機能ユニット200Bとして区別されるが、これら機能ユニットは同様の構成を備えている。図16では、これら機能ユニット200のうち、機能ユニット200Aがマスタクロック191Aを提供する外部の時刻サーバと通信する。図17は、本実施の形態に係る基準クロックの精度は所定条件を満たす場合の処理のフローチャートである。図18は、本実施の形態に係る基準クロックの精度は所定条件を満たさない場合の処理のフローチャートである。この基準クロックは、例えば、マスタクロック191Aに相当し、マスタクロック191Aは、例えば装置/ライン管理装置190が提供するTSNのグランドマスタクロックである。
図17を参照して、マスタクロック191Aが管理する時刻の精度が所定条件を満たす場合の処理を、適宜、図9を参照しつつ説明する。このケースでは、時刻換算情報30は固定である。まず、図16の機能ユニット200Aの同期処理部216(図9)は、装置/ライン管理装置190との間で時刻同期のプロトコルを実施する(ステップS1)。例えば、ステップS1では、同期処理部216は、マスタクロック191Aの現在時刻(実時刻)を問合せ(ステップS3)、装置/ライン管理装置190からマスタクロック191Aの現在時刻を受信する(ステップS5)。
同期処理部216は同期の結果261(図16)を取得し(ステップS7)、取得した同期の結果261をCPUユニット100に送信する(ステップS9)。この同期の結果261は、(マスタクロック191Aの実時刻と対応するカウンタ213のカウンタ値)を含む。
CPUユニット100の同期処理部114(図9)は、機能ユニット200Aから同期の結果261を受信し(ステップS11)、受信した同期の結果を分析する(ステップS13)。分析において、同期処理部114は、同期の結果261の実時刻およびカウンタ値を、それぞれ、変換表35の「baseTOD」および「baseCount」の値と比較し、比較の結果に基づき、外部の実時間の経過に同期するようにカウンタ126(図9)のカウンタ値を調整(補正)する(ステップS15)。カウンタ126には、補正(加算または減算)後のカウンタ値が設定される。
具体的には、同期処理部114は、現在保持している変換表35の要素31(baseCount,baseTOD)と今回取得された同期の結果261の差を、時刻(TOD)およびカウンタ値のそれぞれについて計算する。
算出されたTODの差、カウンタ値の差分の差(=TOD上の経過時間と、カウンタ上の経過時間の差)が、外部の時計であるマスタクロック191Aに対する、制御用のカウンタ126の進捗の差分(進んでいる・遅れている)となる。同期処理部114は、算出した制御用のカウンタ126の進捗の差分を相殺するように、コントローラの制御用カウンタを補正する。補正では、実行中の制御に影響が発生しないよう、時間をかけて少量ずつ減算または加算を実施する。なお、補正には、制御用のカウンタ126の速度そのものの補正を含んでもよい。
その後、時刻同期信号130(図9)をトリガとして、同期処理部114および同期処理部216は、上記に述べた時刻同期処理を実施する(ステップS17,S19)。この時刻同期信号130をトリガとした時刻同期処理は、機能ユニット200Bの同期処理部216およびCPUユニット100の同期処理部114との間でも同様に実施される。
なお、ステップS15の処理は、制御システム1の起動後、最初の時刻同期プロトコルの実行時には実施されない。つまり、差分を計算するための換算式36を含む時刻換算情報30がまだ各ユニットに格納されていないからである。この場合は、CPUユニット100は、同期の結果261を用いて換算式36を含む時刻換算情報30を更新し、ユニット群に更新後の時刻換算情報30を配信し、ユニット間で共有する。
図17では、同期の結果261を用いてCPUユニット100の制御用のカウンタ126が補正されることで、すなわちカウンタ126がマスタクロック191Aに同期することで、各ユニットの制御用のカウンタをマスタクロック191Aに同期させることができる。ステップS1の処理は定期的に実施されることで、各ユニットの制御用のカウンタをマスタクロック191Aに精度良く同期させる(同期ずれを少なくする)ことができる。制御システム1は外部の精度の高い時計(マスタクロック191A)から実時刻を取得し、システム全体の時刻と制御用のカウンタを、これに同期させて動作することができる。
これに対して、図18の処理では、同期の結果261を用いた制御用のカウンタ126の補正は実施されず、換算情報管理部115(図9)は、同期の結果261に基づき変換表35を更新(変更)する。
図18を参照して、マスタクロック191Aが管理する時刻の精度が所定条件を満たさない場合の処理を、適宜、図9を参照して説明する。このケースでは、時刻換算情報30は同期の結果261に応じて更新される。まず、図16の機能ユニット200Aの同期処理部216(図9)は、装置/ライン管理装置190との間で時刻同期のプロトコルを実施する(ステップS1、S3、S5)。同期処理部216は同期の結果261(図16)を取得し(ステップS7)、取得した同期の結果261をCPUユニット100に送信する(ステップS9)。CPUユニット100の同期処理部114(図9)は、機能ユニット200Aから同期の結果261を受信する(ステップS11)。
換算情報管理部115は、受信した同期の結果261に基づき時刻換算情報30を更新し、更新後の時刻換算情報30を機能ユニット200Aに送信(配信)する(ステップS23)。機能ユニット200の換算情報管理部215は、時刻換算情報30を受信し(ステップS25)、受信した更新後の時刻換算情報30により、ストレージ208の元の時刻換算情報30を更新(上書き)する(ステップS27)。
そして、同期処理部114と同期処理部216は、CPUユニット100のカウンタ126と機能ユニット200のカウンタ213を同期させる(ステップS24、S28)。
上記のステップS21では、換算情報管理部115は、同期の結果261を分析し、分析の結果に基づき、変換表35を更新するとともに、RTC128の現在時刻を更新する。この更新は、大きな時刻の変化が生じないよう、例えば小さい調整量を用いて繰り返し実施(時間をかけて実施)する。ここで、同期の結果261が、時刻のみの形式であった場合、換算情報管理部115は、カウンタ126の現在のカウンタ値を用いて、同期の結果261を(時刻,当該時刻に対応するカウンタ値)に変更する。換算情報管理部115は、同期の結果261が示す時刻および当該時刻に対応するカウンタ値を、それぞれ、「baseTOD」および「baseCount」として変換表35に設定し、変換表35を更新する。
なお、図18では、カウンタの同期処理は、時刻換算情報30の配信の後に実施されているが、同期処理の実施タイミングはこれに限定されない。上記の時刻換算情報30の更新および共有に係る処理(ステップS23、S25、S27)および時刻同期信号130をトリガとした時刻同期処理(ステップS24、S28)は、機能ユニット200BとCPUユニット100との間でも同様に実施される。
図18では、同期の結果261を用いてCPUユニット100のRTC128はマスタクロック191Aの時間に同期することで、すなわちカウンタ126がマスタクロック191Aに同期する。これにより、各ユニットにおける時刻換算情報30を用いた時刻換算処理によって、ユニット間でマスタクロック191Aから取得した時刻を共有することが可能となる。
なお、機能ユニット200Bは、マスタクロック191を備える外部のサーバーと通信することが可能であり、その場合、機能ユニット200Aで実施された処理(図17と図18)と同様の処理を機能ユニット200Bでも実施することができる。
<J.時系列データの処理>
図19は、本実施の形態に係る製造実行システム400の構成例を示す図である。製造実行システム400は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図19を参照して、製造実行システム400は、プロセッサ402と、メインメモリ404と、入力部406と、出力部408と、ストレージ410と、光学ドライブ415と、外部装置と通信するためのUSBコントローラ420と、ネットワーク13,14を接続するネットワークインターフェイス413を含む。これらのコンポーネントは、プロセッサバス418を介して接続されている。
プロセッサ402は、CPUやGPUなどで構成され、ストレージ410に格納されたプログラムを読出して、メインメモリ404に展開して実行することで、後述するような各種処理を実現する。
メインメモリ404は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ410は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ410には、基本的な機能を実現するためのOS412に加えて、製造実行システム400としての機能を提供するための各種プログラムが格納される。各種プログラムは、DB管理プログラム411を含む。また、ストレージ410は、時系列DB450を格納する領域を有する。
入力部406は、キーボードやマウスなどで構成され、製造実行システム400に対するユーザ操作を受付ける。出力部408は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ402からの処理結果などを出力する。
製造実行システム400は、光学ドライブ415を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体414(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ410などにインストールされる。
図19には、プロセッサ402がプログラムを実行することで、製造実行システム400として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
図20は、図19のDB管理プログラム411が実行されることで提供されるDBマネージャーを示す図である。図20を参照して、プロセッサ402により、DB管理プログラム411が実行されることで提供されるDBマネージャー451は、時系列DB450を管理(例えば、DBの生成,集約,編集,解析,出力等)する。
(J1.観測値の時刻同期)
図21は、本実施の形態に係る制御装置2が製造実行システム400に時系列データを送信する場合の処理例を示す模式図である。図21では時刻同期処理が実施されないケース(図21(A)参照)と時刻同期処理が実施されるケース(図21(B)参照)とが対比して示される。図22は、本実施の形態に係る制御装置2において生成される時系列データのフレームを模式的に示す図である。
図21(A)には、制御装置2A,2Bが上位のネットワーク13を介して製造実行システム400と接続されている構成を示す。図21(A)に示す構成においては、制御装置2Aと制御装置2Bとの間では時刻同期がなされていないとする。
各時系列データには、制御装置2A,2Bが収集した観測値および各観測値に対応付けられる時刻が含まれる。逆にいえば、図21(A)に示す構成においては、制御装置2A,2Bは、各観測値の収集タイミングを示す情報としては時刻を付加することしかできない。時刻は、制御装置2A,2Bがそれぞれ管理するものであり、時刻同期は不完全である。
その結果、製造実行システム400にて収集される時系列データの間では、時刻が完全には一致しないので、DBマネージャー451は、タイミングを正確に合せてそれぞれの時系列データを集約(すなわち、統合)することはできない。
これに対して、図21(B)に示す構成においては、制御装置2Aと制御装置2Bとは上記に述べた時刻同期されたカウンタおよび時刻換算情報30で換算された時刻を備えている。その結果、制御装置2A,2Bからそれぞれ送信される時系列データのフレームには、工程3A,3Bにおいて収集した観測値に対応付けて、各観測値を収集したタイミングを示す時刻(例えば、時刻換算情報30で換算された時刻)およびカウンタ値を含めることができる(図22(A)と(B)を参照)。
DBマネージャー451は、制御装置2A,2Bのそれぞれから受信した時系列データに含まれるカウンタ値または時刻を用いて、時系列データに含まれる観測値のタイミングを合せることができる。すなわち、異なる制御装置2(異なる工程)でそれぞれ収集された観測値であっても、時間軸をほぼ完全に一致させて集約し(図22(C)参照)、集約したデータを観測値の解析に用いることができる。
<K.利点>
本実施の形態においては、各ユニット(機能ユニット200、CPUユニット100、機能ユニット300、フィールド機器90)は、自ユニットが備える既存の制御用のカウンタを用いて、マスタクロック191Aとの時刻同期およびユニット間の時刻同期を実現することができる。この場合、各ユニットは、特別な時刻参照のプロトコル(例えば、通信の所要時間のゆれを補償する仕組みを備えたコストがかかるプロトコル)を実装および実行する必要はない。
上記の時刻同期に関して、図16に示されるように、制御用のカウンタが相互に同期しているユニット群のうちいずれか一台が外部のマスタクロック191Aと時刻同期する関係を確立することで、互いに時刻同期しているユニットすべてが同じ時刻(マスタクロック191Aの時刻)を共有することができる。
各ユニットの制御用のカウンタは一旦、マスタクロック191Aと時刻同期すれば、その後は、その「カウンタ値」をマスタクロック191Aの時刻から独立させることができる。これにより、外部の時刻サーバーの有無、時刻サーバーの時刻の管理精度が低い、時刻サーバーが提供する時刻の非連続な変更など、制御システム1に関する構成および環境の変動があるとしても、制御システム1では、各ユニットの制御用のカウンタを互いに時刻同期した状態に維持することができる。このことは、制御システム1において安定した制御動作を維持することを可能にする。
<L.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
ファクトリオートメーションの制御システム(1)であって、
データを遣り取りする第1のユニット(100)および第2のユニット(200)と、
クロック(191A、128)を用いて、前記第1のユニットが備える制御用のカウンタ(126)と前記第2のユニットが備える制御用のカウンタ(213)とを同期させる同期手段(115、215、370)と、を備え、
各ユニットは、
ユニット間で共有される情報であって、当該ユニットの前記カウンタのカウンタ値から時刻を算出する換算に関する情報(30)を格納するための情報格納手段(108、208)を備える、制御システム。
[構成2]
前記クロックは、ユニット外の外部クロック(191A)または前記第1のユニットおよび前記第2のユニットのうちの一方のユニットが備える内部クロック(128)を含む、構成1に記載の制御システム。
[構成3]
前記同期手段は、
前記外部クロックが管理する時刻の精度が所定条件を満たすとき、前記第1のユニットおよび前記第2のユニットの互いに同期するカウンタの値を、前記外部クロックの時刻に合わせて調整する、構成2に記載の制御システム。
[構成4]
前記同期手段は、
前記外部クロックが管理する時刻の精度が所定条件を満たさないとき、前記内部クロックが管理する時刻を基準として、前記第1のユニットおよび前記第2のユニットのカウンタを同期させる、構成2または3に記載の制御システム。
[構成5]
前記換算に関する情報は、各ユニットの前記カウンタ値と基準カウンタ値との差と、前記基準カウンタ値に対応する基準時刻から実時刻を換算するための換算式(36)を含み、
前記基準時刻は、前記クロックの時刻を含む、構成2から4のいずれか1に記載の制御システム。
[構成6]
前記一方のユニットは、他のユニットと共有される前記換算に関する情報を管理する管理手段(115、215)を備え、
前記管理手段は、前記制御用のカウンタの同期に用いる前記クロックに応じて、共有される前記換算に関する情報を更新する、構成5に記載の制御システム。
[構成7]
前記管理手段は、
前記外部クロックが管理する時刻の精度が前記所定条件を満たさないとき、前記換算式を、前記基準カウンタ値および前記基準時刻に、それぞれ、前記一方のユニットの前記カウンタ値および当該カウンタ値に対応する前記内部クロックの時刻が設定されるように更新する、構成6に記載の制御システム。
[構成8]
前記第1のユニットは、データバス(111)を介して前記第2のユニットとデータを遣取りし、
前記制御システムは、前記一方のユニットにネットワーク(110)接続される第3のユニット(90)を備え、
前記同期手段は、さらに、
前記一方のユニットが備える前記カウンタと前記第3のユニットが備える制御用のカウンタ(91)とを同期させ、
前記第3のユニットは、
ユニット間で共有される前記換算に関する情報を格納する、構成2から7のいずれか1に記載の制御システム。
[構成9]
前記換算に関する情報は、前記カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を含む、構成1から8のいずれか1に記載の制御システム。
[構成10]
前記各ユニットは、
共有される前記換算に関する情報に従い、前記カウンタのカウンタ値から前記時刻を換算し、
アプリケーションから受付ける前記時刻の問合せに対し、換算された前記時刻を含む応答を出力する、構成1から9のいずれか1に記載の制御システム。
[構成11]
前記問合せを受付けたとき前記換算を実施する、構成10に記載の制御システム。
[構成12]
前記各ユニットは、
換算された前記時刻を格納し、
前記応答は、格納されている前記換算された時刻を含む、構成10または11に記載の制御システム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 制御装置、11,12,13,14,110 ネットワーク、23,177 カウンタ同期プログラム、24 セキュリティプログラム、25,178 補正プログラム、26 時刻管理プログラム、30 時刻換算情報、35 変換表、36 換算式、90 フィールド機器、91A,119,121,124,125,126,168,213 カウンタ、100 CPUユニット、370 ユニット、111,112 データバス、113 信号線、114,216 同期処理部、115,123,215 換算情報管理部、130 時刻同期信号、179 換算情報管理プログラム、200 機能ユニット、205 信号ジェネレーター、261 同期の結果。

Claims (13)

  1. ファクトリオートメーションの制御システムであって、
    データを遣り取りする第1のユニットおよび第2のユニットと、
    クロックを用いて、前記第1のユニットが備える制御用のカウンタと前記第2のユニットが備える制御用のカウンタとを同期させる同期手段と、を備え、
    各ユニットは、
    ユニット間で共有される情報であって、当該ユニットの前記カウンタのカウンタ値から時刻を算出する換算に関する情報を格納するための情報格納手段を備える、制御システム。
  2. 前記クロックは、ユニット外の外部クロックまたは前記第1のユニットおよび前記第2のユニットのうちの一方のユニットが備える内部クロックを含む、請求項1に記載の制御システム。
  3. 前記外部クロックが管理する時刻の精度が所定条件を満たすか否かを判断する判断手段を、さらに備える、請求項2に記載の制御システム。
  4. 前記同期手段は、
    前記外部クロックが管理する時刻の精度が前記所定条件を満たすと前記判断手段によって判断されるとき、前記第1のユニットおよび前記第2のユニットの互いに同期するカウンタの値を、前記外部クロックの時刻に合わせて調整する、請求項に記載の制御システム。
  5. 前記同期手段は、
    前記外部クロックが管理する時刻の精度が前記所定条件を満たさないと前記判断手段によって判断されるとき、前記内部クロックが管理する時刻を基準として、前記第1のユニットおよび前記第2のユニットのカウンタを同期させる、請求項またはに記載の制御システム。
  6. 前記換算に関する情報は、各ユニットの前記カウンタ値と基準カウンタ値との差と、前記基準カウンタ値に対応する基準時刻から実時刻を換算するための換算式を含み、
    前記基準時刻は、前記クロックの時刻を含む、請求項からのいずれか1項に記載の制御システム。
  7. 前記一方のユニットは、他のユニットと共有される前記換算に関する情報を管理する管理手段を備え、
    前記管理手段は、前記制御用のカウンタの同期に用いる前記クロックに応じて、共有される前記換算に関する情報を更新する、請求項に記載の制御システム。
  8. 前記管理手段は、
    前記外部クロックが管理する時刻の精度が前記所定条件を満たさないと前記判断手段によって判断されるとき、前記換算式を、前記基準カウンタ値および前記基準時刻に、それぞれ、前記一方のユニットの前記カウンタ値および当該カウンタ値に対応する前記内部クロックの時刻が設定されるように更新する、請求項に記載の制御システム。
  9. 前記第1のユニットは、データバスを介して前記第2のユニットとデータを遣取りし、
    前記制御システムは、前記一方のユニットにネットワーク接続される第3のユニットを備え、
    前記同期手段は、さらに、
    前記一方のユニットが備える前記カウンタと前記第3のユニットが備える制御用のカウンタとを同期させ、
    前記第3のユニットは、
    ユニット間で共有される前記換算に関する情報を格納する、請求項2からのいずれか1項に記載の制御システム。
  10. 前記換算に関する情報は、前記カウンタの同期に用いるクロックが管理する時刻の精度に関する情報を含む、請求項1からのいずれか1項に記載の制御システム。
  11. 前記各ユニットは、
    共有される前記換算に関する情報に従い、前記カウンタのカウンタ値から前記時刻を換算し、
    アプリケーションから受付ける前記時刻の問合せに対し、換算された前記時刻を含む応答を出力する、請求項1から10のいずれか1項に記載の制御システム。
  12. 前記問合せを受付けたとき前記換算を実施する、請求項11に記載の制御システム。
  13. 前記各ユニットは、
    換算された前記時刻を格納し、
    前記応答は、格納されている前記換算された時刻を含む、請求項11または12に記載の制御システム。
JP2019234534A 2019-12-25 2019-12-25 制御システム Active JP7375532B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019234534A JP7375532B2 (ja) 2019-12-25 2019-12-25 制御システム
EP20907744.5A EP4083726A4 (en) 2019-12-25 2020-12-01 Control system
US17/781,322 US12105551B2 (en) 2019-12-25 2020-12-01 Control system
PCT/JP2020/044659 WO2021131530A1 (ja) 2019-12-25 2020-12-01 制御システム
CN202080082096.4A CN114761889A (zh) 2019-12-25 2020-12-01 控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019234534A JP7375532B2 (ja) 2019-12-25 2019-12-25 制御システム

Publications (3)

Publication Number Publication Date
JP2021103439A JP2021103439A (ja) 2021-07-15
JP2021103439A5 JP2021103439A5 (ja) 2023-01-17
JP7375532B2 true JP7375532B2 (ja) 2023-11-08

Family

ID=76573905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019234534A Active JP7375532B2 (ja) 2019-12-25 2019-12-25 制御システム

Country Status (5)

Country Link
US (1) US12105551B2 (ja)
EP (1) EP4083726A4 (ja)
JP (1) JP7375532B2 (ja)
CN (1) CN114761889A (ja)
WO (1) WO2021131530A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7577044B2 (ja) 2021-10-14 2024-11-01 株式会社日立製作所 制御装置、制御システム、及び時刻同期方法
WO2023238410A1 (ja) * 2022-06-10 2023-12-14 日本電信電話株式会社 制御装置、制御方法、及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017077628A1 (ja) 2015-11-05 2017-05-11 三菱電機株式会社 機能ユニット及び制御装置
JP2018151918A (ja) 2017-03-14 2018-09-27 オムロン株式会社 制御装置、データ構造、情報処理方法
JP2018179865A (ja) 2017-04-19 2018-11-15 三菱電機株式会社 アンテナ位置計測装置
JP2018190216A (ja) 2017-05-09 2018-11-29 オムロン株式会社 制御装置、タイムスタンプ修正方法、プログラムおよびデータ構造
JP2019146060A (ja) 2018-02-22 2019-08-29 オムロン株式会社 通信システム、通信装置および通信方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6465620B2 (ja) * 2014-10-31 2019-02-06 ヤマハ発動機株式会社 制御システムおよび制御方法
DE102016104767B4 (de) * 2016-03-15 2017-10-12 Pilz Gmbh & Co. Kg Vorrichtung und Verfahren zum Steuern einer automatisierten Anlage
JP6772748B2 (ja) * 2016-10-14 2020-10-21 オムロン株式会社 演算装置および制御システム
JP6523497B1 (ja) * 2018-01-17 2019-06-05 三菱電機株式会社 マスタ制御装置およびこれを用いた同期通信システム
JP6608019B2 (ja) * 2018-09-10 2019-11-20 三菱電機株式会社 機能ユニット及び制御装置
DE102020202690B3 (de) * 2020-03-03 2021-07-15 Zf Friedrichshafen Ag Synchronisieren eines Slave-Zeitgebers mit einem Master-Zeitgeber
DE102021111071B4 (de) * 2021-04-29 2023-03-30 Technische Universität Chemnitz - Körperschaft des öffentlichen Rechts Verfahren zum Abgleich und/oder zur Synchronisation von Zählerwerten von zumindest zwei Geräten, Gerät und Anordnung von Geräten

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017077628A1 (ja) 2015-11-05 2017-05-11 三菱電機株式会社 機能ユニット及び制御装置
JP2018151918A (ja) 2017-03-14 2018-09-27 オムロン株式会社 制御装置、データ構造、情報処理方法
JP2018179865A (ja) 2017-04-19 2018-11-15 三菱電機株式会社 アンテナ位置計測装置
JP2018190216A (ja) 2017-05-09 2018-11-29 オムロン株式会社 制御装置、タイムスタンプ修正方法、プログラムおよびデータ構造
JP2019146060A (ja) 2018-02-22 2019-08-29 オムロン株式会社 通信システム、通信装置および通信方法

Also Published As

Publication number Publication date
WO2021131530A1 (ja) 2021-07-01
EP4083726A1 (en) 2022-11-02
EP4083726A4 (en) 2024-01-10
US12105551B2 (en) 2024-10-01
CN114761889A (zh) 2022-07-15
US20230023970A1 (en) 2023-01-26
JP2021103439A (ja) 2021-07-15

Similar Documents

Publication Publication Date Title
JP7484912B2 (ja) 制御システム
CN108572613B (zh) 控制装置、信息处理方法
JP6399136B1 (ja) 制御装置、制御プログラム、および制御システム
JP2019146060A (ja) 通信システム、通信装置および通信方法
JP7375532B2 (ja) 制御システム
JP7359199B2 (ja) 制御システムにおいて実施される方法
WO2018070190A1 (ja) 演算装置および制御システム
WO2020189086A1 (ja) 制御システム、設定装置、および設定プログラム
WO2022185589A1 (ja) 情報処理装置、方法およびプログラム
US11003631B2 (en) Apparatus and method for implementing process control redundancy using operating system (OS) file system support
WO2022030402A1 (ja) 制御装置およびプログラム
WO2024162337A1 (ja) 制御装置、制御システム、方法およびプログラム
Huang et al. Research on software synchronization method of real-time ethernet distributed motion control system
JP7404789B2 (ja) 制御システム、制御システムの通信制御方法、および制御装置
Zunino et al. Experimental characterization of asynchronous notification latency for subscriptions in opc ua
JP7294517B1 (ja) 制御システム、制御システムの制御方法、及び、ネットワークスイッチ
JP7589598B2 (ja) 制御システム、サポート方法およびプログラム
WO2024224962A1 (ja) 制御装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231009

R150 Certificate of patent or registration of utility model

Ref document number: 7375532

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150