JP2022133624A - 情報処理装置、方法およびプログラム - Google Patents

情報処理装置、方法およびプログラム Download PDF

Info

Publication number
JP2022133624A
JP2022133624A JP2021032405A JP2021032405A JP2022133624A JP 2022133624 A JP2022133624 A JP 2022133624A JP 2021032405 A JP2021032405 A JP 2021032405A JP 2021032405 A JP2021032405 A JP 2021032405A JP 2022133624 A JP2022133624 A JP 2022133624A
Authority
JP
Japan
Prior art keywords
cycle
communication
control
time
processing
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.)
Pending
Application number
JP2021032405A
Other languages
English (en)
Inventor
亮太 赤井
Ryota Akai
太雅 新實
Taiga Niimi
光宏 米田
Mitsuhiro Yoneda
信幸 阪谷
Nobuyuki Sakatani
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 JP2021032405A priority Critical patent/JP2022133624A/ja
Priority to PCT/JP2021/034695 priority patent/WO2022185589A1/ja
Publication of JP2022133624A publication Critical patent/JP2022133624A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G04HOROLOGY
    • G04GELECTRONIC TIME-PIECES
    • G04G5/00Setting, i.e. correcting or changing, the time-indication
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Electric Clocks (AREA)
  • Computer And Data Communications (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】制御装置の処理負荷とネットワーク負荷から同期精度を満たす通信周期の範囲を設定する。【解決手段】情報処理装置は、各制御装置について、予め定められた周期における制御関連処理の処理負荷に基づく余裕時間と1回の時刻同期処理の所要時間とから第1の通信周期を算出し、ネットワーク負荷に基づく余剰帯域と1回の同期メッセージの通信に必要な帯域とから第2の通信周期を算出し、各制御装置の第1の通信周期のうちの最長周期および第2の通信周期の両者のうちの長い方の周期と、予め定められた同期精度に基づく通信周期とを用いて同期メッセージの通信周期の範囲を算出する。【選択図】図11

Description

本開示は、FA(Factory Automation)の制御システムの通信周期を設定する装置に関する。
様々な生産現場において、PLC(Programmable Logic Controller)などの制御装置を用いた制御システムが広く普及している。制御システムとしては、1台の制御装置が周辺装置を制御するシステムに加えて、複数台の制御装置が互いにデータを遣り取りして協働で周辺装置を制御する分散制御システムが提案されている。分散制御システムでは、高精度に協働するために、複数の制御装置が互いに時刻同期することが望まれる。
例えば、特許文献1(特開2016-131332号公報)は、ネットワーク帯域の消費量を抑制して時刻同期を実現する構成を開示する。また、特許文献2(特開2018-88646号公報)は、トラフィックを低減して時刻同期を実現する構成を開示する。
特開2016-131332号公報 特開2018-88646号公報
FAの制御システムにおいて、要求される同期精度を満たすことができても、処理に係る負荷およびネットワークに係る負荷が大きくなってしまい、分散制御の精度が確保できない可能性が生じる。より具体的には、各制御装置において制御周期において制御処理にかかる負荷が高い場合は、制御周期内で制御処理を完了することができない。また、ネットワークにおいて制御装置間の通信のための通信帯域を確保しなければならないが、時刻同期のための通信によってネットワーク帯域が圧迫されてしまうと、当該通信帯域の確保が困難となる。
したがって、時刻同期のための通信周期を短くするほど同期精度はよくなる一方で、時刻同期処理に係る負荷またはネットワークに係る負荷は高くなるので、時刻同期の処理に係る負荷またはネットワークに係る負荷と時刻同期の高精度化との間には、いわゆるトレードオフの関係があり、適切な通信周期の設定処理が望まれる。
本開示に係る情報処理装置は、FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する情報処理装置であって、各複数の制御装置は、制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理とを含む処理を実行し、情報処理装置は、同期メッセージを、ネットワークを介し各制御装置に通信する周期の範囲を算出する範囲算出部を備え、範囲算出部は、各制御装置について、予め定められた周期における制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の時刻同期処理の所要時間とから、第1の通信周期を算出する第1算出部と、ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出する第2算出部と、を含み、各制御装置の第1の通信周期のうちの最長周期および第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて範囲を算出する。
上述の開示によれば、同期メッセージに従い制御装置間で時刻同期処理を実施する複数の制御装置がネットワーク接続される構成において、情報処理装置は、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期と、予め定められた同期精度に基づく通信周期とから、同期メッセージをネットワークを介して各制御装置に通信する周期を設定するべき範囲を算出できる。
上述の開示において、範囲算出部は、範囲の上限値および下限値として、それぞれ、予め定められた同期精度に基づく通信周期および長い方の周期を算出する。
上述の開示によれば、情報処理装置は、範囲を、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期以上であって、予め定められた同期精度に基づく通信周期以下となるように算出する。
上述の開示において、情報処理装置は、範囲算出部によって算出された周期の範囲をディスプレイに表示させる範囲表示部と、算出された周期の範囲のうちから、情報処理装置に対するユーザ操作に基づき、同期メッセージを、ネットワークを介し各制御装置に通信する周期を決定する決定部と、をさらに備える。
上述の開示によれば、ユーザは、情報処理装置によって算出されて表示される通信周期の範囲から、同期メッセージを、ネットワークを介し各制御装置に通信する周期を選択的に決定できる。
上述の開示において、範囲表示部は、ネットワークに適用される通信プロトコルに従うデフォルトの周期を、範囲に関連付けてディスプレイに表示させる。
上述の開示において、範囲に関連付けて表示されるデフォルトの周期を目安に、ネットワークを介し各制御装置に通信する周期を選択的に決定できる。
上述の開示において、決定部によって決定された周期を示すデータを、各制御装置に設定する。
上述の開示によれば、情報処理装置は、ユーザ操作に基づき通信周期が決定されると、決定された通信周期を自動的に各制御装置に設定できる。
上述の開示において、情報処理装置は、各制御装置が、決定された周期に基づき送信される同期メッセージに従って時刻同期処理を実行する場合、同期精度を評価する評価部を、さらに備える。
上述の開示によれば、ユーザは、評価された同期精度を当該ユーザが決定した周期の妥当性を判断するための支援情報として利用できる。
上述の開示において、第1算出部は、第1の情報から、余裕時間と所要時間とを算出し、第1の情報は、予め定められた周期、各制御装置が有する処理性能、および制御関連処理と時刻同期処理のサイズの各項目を含み、第2算出部は、第2の情報から、利用可能帯域、ネットワーク負荷に基づく帯域、および1回の同期メッセージの通信に必要な帯域を算出し、第2の情報は、ネットワークの伝送性能、各制御装置が処理に要する帯域と、各制御装置の時刻同期の性能の各項目を含み、情報処理装置は、さらに、第1の情報の項目、第2の情報の項目および予め定められた同期精度の項目を表示し、少なくとも1つの項目を調整するユーザ操作を受付けるUI(ユーザインターフェイス)を備える。
上述の開示によれば、ユーザは、範囲を決定する第1の通信周期を第2の通信周期を算出するための項目および同期精度を確認して、これら項目を操作して調整することができる。
上述の開示において、UIは、さらに、算出された範囲を変更する1つ以上の変更態様と、各変更態様に関連付けて調整するべき項目と調整量とを表示する。
上述の開示によれば、ユーザは項目を操作して調整する場合に、調整操作を支援する情報として、算出された範囲の変更態様毎に、当該変更態様を実現するために調整するべき項目と調整量とを取得できる。
上述の開示において、UIは、さらに、調整する操作をユーザから受付けた場合に、第1の情報、第2の情報および予め定められた同期精度に基づき通信周期の範囲を算出するよう、範囲算出部を起動する。
上述の開示によれば、情報処理装置は、ユーザ操作によって調整された項目に基づき、範囲を算出するから、ユーザは、算出された範囲から、当該項目の調整量の妥当性を判断できる。
上述の開示において、複数の制御装置は、それぞれが、FAの異なる工程毎に備えられる分散型の制御システムを構成する。
上述の開示によれば、分散型制御システムについて、異なる工程に備えられた制御装置間で予め定められた同期精度で時刻同期するための同期メッセージの通信周期の範囲を算出できる。
上述の開示において、制御装置は、1または複数の制御対象の機器を接続し、予め定められた周期は制御周期を示す。
上述の開示によれば、時刻同期するための同期メッセージの通信周期の範囲を、制御周期を用いて設定できる。
本開示に係る方法は、FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する方法であって、各複数の制御装置は、制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理を含む処理を実行する実行部を有し、方法は、同期メッセージを、ネットワークを介し各制御装置に通信する周期の範囲を算出するステップを備え、範囲を算出するステップは、各制御装置について、予め定められた周期における制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の時刻同期処理の所要時間とから、第1の通信周期を算出するステップと、ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出するステップと、各制御装置の第1の通信周期のうちの最長周期および第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて範囲を算出するステップと、を含む。
上述の開示に係る方法によれば、同期メッセージに従い制御装置間で時刻同期処理を実施する複数の制御装置がネットワーク接続される構成において、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期と、予め定められた同期精度に基づく通信周期とから、同期メッセージをネットワークを介して各制御装置に通信する周期を設定するべき範囲を算出できる。
本開示によれば、上記の記載の方法をプロセッサに実行させるためのプログラムを提供する。プログラムがプロセッサによって実行されると、各制御装置の処理負荷とネットワークの通信負荷に基づく通信周期と、予め定められた同期精度に基づく通信周期とから、ネットワークを介して各制御装置に同期メッセージを通信する周期を設定するべき範囲を算出できる。
本開示によれば、制御装置の処理負荷とネットワーク負荷に基づき、同期精度を満たすような、時刻同期のための周期範囲を設定できる。
本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。 本実施の形態に係る時刻同期に関する構成例を示す模式図である。 本実施の形態に係る分散型システム300のデータ通信を説明する図である。 本実施の形態に係る制御装置2のハードウェア構成例を示すブロック図である。 本実施の形態に係るサポート装置500のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御装置2のソフトウェア構成例を示すブロック図である。 本実施の形態に係るサポート装置500のモジュール構成を模式的に示す図である。 本実施の形態に係る通信周期設定の概略処理を示すフローチャートである。 本実施の形態に係る処理負荷に基づく第1の通信周期の算出処理の一例を示す図である。 本実施の形態に係るネットワーク負荷に基づく第2の通信周期の算出処理の一例を示す図である。 本実施の形態に係る通信周期の範囲の設定におけるデータの流れを示す図である。 同期精度とノード数の関係を模式的に示すグラフである。 本実施の形態に係る通信周期設定のためのUI画面の一例を示す図である。 本実施の形態に係る通信周期設定のためのUI画面の他の例を示す図である。 本実施の形態に係る周期範囲の設定条件を調整するUI画面の一例を示す図である。 PTPの通信シーケンスの一例を示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。本実施の形態では、「制御装置」の典型例として、PLCを説明するが、PLCの名称に限定されることなく、本明細書に開示された技術思想は、任意の制御装置に対して適用可能である。
また、本実施の形態では、制御装置は時間を管理する管理タイマを有する。制御装置は、管理タイマを、基準時間を管理する基準タイマに合わせる「時刻同期処理」を実行する。
図1は、本実施の形態に係る制御システム1の全体構成の一例を模式的に示す図である。
図1を参照して、制御システム1は生産ラインのFAを実現する。より具体的には、制御システム1では、ネットワークが複数レベルに接続されており、各レベルのネットワークには、それぞれ異なる機能が割り当てられる。具体的には、限定されないが、例えば4つのレベルのネットワーク11~14が設けられている。
ネットワーク11は、コントロールレベルのネットワークである。ネットワーク11は、複数の制御装置2A、2Bおよび2Cと、装置/ライン管理装置190よびSCADA(Supervisory Control And Data Acquisition)機能を提供する表示装置280とが接続されており、ネットワーク11では装置間でデータを遣り取りできるデータリンクが形成される。制御装置2A、2Bおよび2Cを区別しない場合は「制御装置2」と称する。ネットワーク11は、主に、時刻同期および制御系に係る情報を伝送する。
制御装置2には、1または複数のフィールド機器90が接続される。これらのフィールド機器90は、制御装置2に直接接続される場合もあるが、ネットワーク110を介して制御装置2に接続されることもある。1または複数のフィールド機器90の各々は、製造装置または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。したがって、図1に示す制御システム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は、指定された観測値と管理タイマの時刻を含むフレームを生成し、ネットワーク11,12および13を介して製造実行システム400に転送する。
ネットワーク14は、インターネットなどの外部ネットワークを含む。ネットワーク14には、製造実行システム400とクラウド上の外部装置などが接続される。製造実行システム400は、クラウド上の装置とデータを遣り取りすることにより、時系列DB450のデータをクラウド上の装置に転送する。
図1に示す制御システム1において、ネットワーク11~14およびネットワーク110には、このような要求される特性の違いに応じたプロトコルおよびフレームワークが採用される。例えば、ファクトリーネットワークに属するネットワーク11および12のプロトコルとしては、汎用的なEthernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)を用いてもよい。また、ネットワーク110のプロトコルとしては、マシンコントロール用ネットワークの一例であるEtherCAT(登録商標)を採用してもよい。なお、ネットワーク11のプロトコルとネットワーク110のプロトコルとは、同じであってもよいし、異なっていてもよい。このようなマシンコントロールに適したネットワーク技術を採用することで、機器間の伝送に要する時間が保証されたリアルタイム性を提供できる。
これに対して、コーポレートネットワークに属するネットワーク13および14のプロトコルとしては、接続先の多様性を担保するために、汎用的なEthernetなどが用いられる。汎用的なEthernetを採用することで、送信可能なデータ量などの制限を排除できる。
制御装置2または装置/ライン管理装置190は、サポート装置500が接続され得る。サポート装置500は、制御装置2が制御対象を制御するために必要な準備を支援する装置である。
制御システム1は、制御装置2A、2Bおよび2Cが、それぞれ、異なる工程3A、3Bおよび3Cに備えられる分散型システム300を備える。限定されないが、例えば、工程3Aは、ワーク(部品、部材)を整列させながら搬送するパーツフィーダの工程を示し、工程3Bは、工程3Aで整列されたワークをロボットのPick&Place動作によって移動させる工程を示し、工程3Cは移動後のワークを組立てる工程を示す。分散型システム300では、各工程の制御装置2に接続されるフィールド機器90の動作は、前後工程の制御装置2に接続されるフィールド機器90の動作とは異なる。分散型システム300における要求タクトタイムを満たすために、ある工程における動作は当該工程の前後工程の動作と同期して実施される。
制御装置2は、当該制御装置2に接続されるフィールド機器90のシーケンス制御を実現するためのシーケンスプログラムおよびモーション制御を実現するためのモーションプログラムなどを含む制御に関するプログラムを、同期した時刻に基づく予め定められた周期(これを、制御周期ともいう)毎に実行することで、フィールド機器90のリアルタイム制御を実現している。
本開示において、「時刻」は、時の流れにおけるある一点を示すものを意図し、例えば、時分秒などの単位を用いて規定される。「タイマ」は、制御装置2および関連する装置内でタイミングを制御するための値を計測し、基本的には、予め定められた単位時間毎に所定値ずつインクリメントまたはデクリメントされるカウンタを含んで構成され得る。カウンタは、例えば整数値を表す予め定められたビット長を有する。基準タイマと制御装置2の管理タイマとの間の時刻の差(誤差または変位)に基づき「同期精度」を示すことができる。したがって、時刻の差(誤差または変位)が小さいほど「同期精度」は高く、時刻の差(誤差または変位)が大きいほど「同期精度」は低い。
図1において時刻同期を実現する構成は、例えば、ネットワーク11が産業用ネットワークのプロトコルであるTSN(Time-Sensitive Networking)に従うデータ通信を実施するケースと、ネットワーク11がEtherCAT(登録商標:Ethernet for Control Automation Technology)に従うデータ通信を実施するケースとを含み得る。なお、ネットワーク11に適用される規格は、これらに限定されず、例えばIEEE1588であってもよい。
図1を参照して、「基準タイマ」となるマスタは、制御装置2A,2Bおよび2Cのいずれかが有するタイマであって、これらタイマのうち最も高い精度のタイマに相当する。マスタは、制御装置2に限定されず、ネットワーク11上の他の装置(例えば、装置/ライン管理装置190)のタイマであってもよい。
サポート装置500は、制御システム1(または分散型システム300)の設計時に、時刻同期のための同期メッセージの通信周期をユーザが設定するのを支援する支援ツールを提供する。
サポート装置500は、支援ツールとして、通信周期の設定処理を実行する。より具体的には、サポート装置500は、設定可能な通信周期の範囲を算出し(ステップS5)、算出した範囲を表示することで、ユーザに提示する(ステップS7)。ユーザは、サポート装置500を操作することにより、提示された通信周期の範囲において所望の通信周期を決定すると、サポート装置500は、ユーザが決定した通信周期を示す通信周期データ200を設定するための通知を、各制御装置2に送信する(ステップS11)。ステップS5、ステップS7、ステップS11の処理の詳細は図8で後述する。
サポート装置500は、ステップS5において、同期メッセージを、ネットワーク11を介し各制御装置2に通信する周期の範囲を設定する。より具体的には、サポート装置500は、周期の範囲における最短となる通信周期を、各制御装置2の処理負荷とネットワーク負荷とに基づき算出し、最長となる通信周期を、例えば仕様においてシステムに要求される同期精度に基づき算出する。
サポート装置500は、最短となる通信周期に、各制御装置2の処理負荷に基づく第1の通信周期とネットワーク負荷に基づく第2の通信周期のうちの長い方を設定する。より具体的には、サポート装置500は、第1の通信周期を、各制御装置2について、予め定められた周期における制御に関連する処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置2が実行する1回の時刻同期処理の所要時間とから算出する。したがって、第1の通信周期は、予め定められた周期の1または複数個の長さに相当し得る。また、サポート装置500は、第2の通信周期を、ネットワーク11の利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから算出する。このネットワーク負荷は、ネットワーク11における制御装置2間の通信に係る負荷に加えて、制御装置2と上位のネットワーク(ネットワーク12、13および14の1つ以上)との通信に係る負荷を含み得る。
サポート装置500は、上記の最短となる通信周期に、各制御装置2について算出された上記の第1の通信周期のうちの最長周期および上記の第2の通信周期の両者のうちの長い方を設定し、上記の最長となる通信周期に、予め定められた同期精度に基づく通信周期を設定する。この予め定められた同期精度は、制御システム1(より特定的には、分散型システム300)に必要とされる同期精度を含む。
サポート装置500は、算出された同期メッセージの通信周期の範囲をユーザに提示する。ユーザは、提示された通信周期の範囲において、各制御装置2に設定するべき通信周期を決定し、サポート装置500は、決定された通信周期を通知する通信周期データ200は各制御装置2に送信する。
これにより、ユーザは、各制御装置2の処理負荷とネットワーク負荷とに基づいた通信周期であって、システムに必要な同期精度を満たすような通信周期を設定できる。
本実施の形態では、負荷、周期および範囲などを「算出」することは、負荷、周期および範囲などを推定する、または見積もるとの意味も含む。上記の「余裕時間」は、予め定められた周期における時刻同期処理を実行可能な時間に相当する。また、「所要時間」は、処理を実行するために使用可能な制御装置2のリソース(プロセッサなど)を時刻同期処理の実行のみに用いた場合の処理開始から終了までの時間を示す。分散型システム300では、制御装置2が実行する制御関連処理の種類(処理のプログラムのサイズ(命令数、ステップ数)など)および制御装置2の処理性能(プロセッサの演算速度、メモリの種類、メモリの読み書き速度など)は、制御装置2間で異なるから、余裕時間および所要時間も制御装置2間で異なる。このような分散型システム300の特徴から、最短の周期を、各制御装置2の処理負荷に基づく第1の通信周期を用いて算出することに意義がある。
また、本実施の形態では、ネットワーク11の利用可能帯域は、データ到達時間を保証するために、制御関連処理に係る制御系データが優先的に割り当てられるとともに、余剰帯域は、通信要求などの状況に応じて、同期メッセージ等の他のデータが割り当てられる。ネットワーク11の制御系データ通信に割り当てられる帯域および上位ネットワークとの通信帯域を含む「ネットワーク負荷」の大きさに応じて、ネットワーク11の残り通信帯域である余剰帯域の大きさは変化し、その結果、ネットワーク負荷の大きさに応じて第2の通信周期も変化する。このようなネットワーク帯域の割り当ての特徴から、最短の周期を、ネットワーク負荷に基づく第2の通信周期を用いて算出することに意義がある。
以下、本実施の形態のより具体的な応用例について説明する。
<B.制御システム1における時刻同期>
本実施の形態に従う制御システム1においては、複数の制御装置2の各々が有するタイマを互いに時刻同期させる。これにより、互いに異なる制御装置2に接続される、すなわち異なる工程間において複数のフィールド機器90の協調制御を実現する。
以下、本実施の形態に係る制御システム1が提供する時刻同期機能について説明する。
(b1.ネットワーク構成例)
図2は、本実施の形態に係る時刻同期に関する構成例を示す模式図である。図2を参照して、分散型システム300は、複数の制御装置2A,2Bおよび2Cと、制御対象となる複数のフィールド機器90A~90Iとを備える。制御システム1は、一例として、少なくとも一部の制御装置がデイジーチェーン接続のネットワークを採用する。制御装置2A,2Bおよび2Cの各々は、対応するネットワーク110内のデータ伝送を管理するマスタとして機能する。フィールド機器90A~90Iは、対応するマスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。
制御装置2A,2Bおよび2Cは、コントロールレベルのネットワーク11に接続されている。制御装置2Aに接続されるネットワーク110には、フィールド機器90A、90Bおよび90Cがデイジーチェーンで順次接続されており、制御装置2Bに接続されるネットワーク110には、フィールド機器90D、90Eおよび90Fがデイジーチェーンで順次接続されており、制御装置2Cに接続されるネットワーク110には、フィールド機器90G、90Hおよび90Iがデイジーチェーンで順次接続されている。フィールド機器90のネットワーク110上の接続態様は、デイジーチェーンに限定されない。
ネットワーク110内において、制御装置2および1または複数のフィールド機器90は、いずれもデータ伝送機能を有する通信装置とみなし得て、通信装置は、ネットワーク110上を伝送されるデータを受信すると、当該データを必要に応じて、隣接して接続されている別の通信装置へ伝送する。
ネットワーク110に接続される複数の通信装置、すなわち制御装置2および1または複数のフィールド機器90の間では、送受信タイミングが同期されている(図中の時刻同期(3)に相当)。具体的には、制御装置2および1または複数のフィールド機器90は、それぞれ、互いに時刻同期されたタイマを備える。制御装置2および1または複数のフィールド機器90の各々は、それらの時刻同期されたタイマに従って、データの送信または受信のタイミングを決定する。なお、本実施の形態では「タイミング」は何らかの事象が生じる時期、時間または時刻の概念を表す。
図2を参照して、制御装置2Aはタイマ102Aを備え、フィールド機器90A、90Bおよび90Cはそれぞれタイマ91A、91Bおよび91Cを備える。制御装置2Aのタイマ102Aがマスタとして機能し、フィールド機器90A、90Bおよび90Cのタイマ91A、91Bおよび91Cがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Aのタイマ値に基づく値が、タイマ91A、91Bおよび91Cに設定される。
制御装置2Bはタイマ102Bを有しており、フィールド機器90D、90Eおよび90Fはタイマ91D、91Eおよび91Fをそれぞれ有している。制御装置2Bのタイマ102Bがマスタとして機能し、フィールド機器90D、90Eおよび90Fのタイマ91D、91Eおよび91Fがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Bのタイマ値に基づく値が、タイマ91D、91Eおよび91Fに設定される。
制御装置2Cはタイマ102Cを有しており、フィールド機器90G、90Hおよび90Iはタイマ91G、91Hおよび91Iをそれぞれ有している。制御装置2Cのタイマ102Cがマスタとして機能し、フィールド機器90G、90Hおよび90Iのタイマ91G、91Hおよび91Iがこのマスタを基準としてタイミングを同期させる。例えば、タイマ102Cのタイマ値に基づく値が、タイマ91G、91Hおよび91Iに設定される。
すなわち、制御装置2A,2Bおよび2Cの各々は、対応のネットワーク110内のデータ伝送を管理するマスタとして機能し、各制御装置2に接続されるフィールド機器90は、マスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。マスタとスレーブとの間でタイマを互いに時刻同期させることにより、ネットワーク110を構成する制御装置2とフィールド機器90との間でデータの伝送タイミングなどを互いに一致させることができる。
図2に示す例において、制御装置2Aは、さらに、タイマ102Aと時刻同期されたタイマ101Aを有している。制御装置2Bは、さらに、タイマ102Bと時刻同期されたタイマ101Bを有している。制御装置2Cは、さらに、タイマ102Cと時刻同期されたタイマ101Cを有している(図中の時刻同期(2)に相当)。制御システム1においては、例えば、タイマ101A、101Bおよび101Cのいずれかを、制御システム1全体のマスタとして機能させる。
一例として、図2では、制御装置2Aのタイマ101Aがマスタである。制御装置2Aと2Cのタイマ101Bと101Cはこのマスタに時刻同期する。これにより、複数の制御装置2A,2Bおよび2Cの間で、互いに時刻同期させることができる(図中の時刻同期(1)に相当)。
時刻同期(1)、時刻同期(2)および(3)によって、制御装置2A,2Bおよび2Cのタイマが互いに時刻同期し、各制御装置2に接続されたフィールド機器90それぞれのタイマが互いに時刻同期することになる。
図3は、本実施の形態に係る分散型システム300のデータ通信を説明する図である。図3以降の各図では、“NW”はネットワークの略である。図3を参照して、ネットワーク110に接続される制御装置2Aと複数のフィールド機器90A、90Bおよび90Cとの間では、時刻同期したタイマに基づく予め定められた周期に従って、データが遣り取りされる。予め定められた周期は、例えば制御周期に基づいている。
制御装置2Bと複数のフィールド機器90D、90Eおよび90Fとの間、および、制御装置2Cと複数のフィールド機器90G、90Hおよび90Iとの間においても、時刻同期したタイマに基づく予め定められた周期に従って、データが遣り取りされる。このような、ネットワーク110上の「下位ネットワーク(NW)通信」によるデータの遣り取りによって、制御装置2およびフィールド機器90の制御動作が実現される。
上位のネットワーク11に接続される制御装置2A,2Bおよび2Cの間では、時刻同期したタイマに基づく予め定められた周期に従って、各制御装置2が入力処理によってフィールド機器90から収集したデータ、演算処理によって生成した出力データなどが遣り取りされる。このようなネットワーク11上の「上位ネットワーク(NW)通信」によるデータの遣り取りによって、制御装置2Aに接続されるフィールド機器90、制御装置2Bに接続されるフィールド機器90および制御装置2Cに接続されるフィールド機器90を連係して動作させることができる。ネットワーク11上の「上位ネットワーク(NW)通信」には、ネットワーク12,13,14と制御装置2との間の通信も含み得る。
「下位ネットワーク(NW)通信」および「上位のネットワーク(NW)通信」によって、分散型システム300を構成する異なる工程間で、フィールド機器90の制御タイミングを同期させることができて、要求されるタクトタイムを満たすことができる。
<C.構成と時刻同期処理>
分散型システム300を構成する機器の構成を説明する。図4は、本実施の形態に係る制御装置2のハードウェア構成例を示すブロック図である。図5は、本実施の形態に係るサポート装置500のハードウェア構成例を示すブロック図である。
(c1.制御装置2の構成)
図4を参照して、制御装置2は、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ105と、USB(Universal Serial Bus)コントローラ107と、メモリカードインターフェイス109と、フィールドネットワークコントローラ118と、カウンタ126と、RTC(Real Time Clock)128とを含む。
プロセッサ102は、CPU(Central Processing Unit)、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と各デバイスを制御することで、制御装置2全体としての処理を実現する。
主記憶装置106には、通信周期データ200が格納される。二次記憶装置108には、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラムが格納される。さらに、二次記憶装置108には、後述するような時系列データベースも格納される。
上位ネットワークコントローラ105は、上位のネットワーク11を介して、製造実行システム400またはクラウド上の装置(図1参照)などとの間のデータを遣り取りする。USBコントローラ107は、USB接続を介してサポート装置500との間のデータの遣り取りを制御する。
メモリカードインターフェイス109は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
カウンタ126は、制御装置2における各種処理の実行タイミングを管理するための時刻基準として用いられる。カウンタ126は、「管理タイマ」または「基準タイマ」となり得る。図2の時刻同期(1)においては、制御装置2Aのカウンタ126は基準タイマを構成し、制御装置2B,2Cのカウンタ126は管理タイマを構成し得る。カウンタ126は、典型的には、所定周期毎にカウンタ値をインクリメントまたはデクリメントする。カウンタ126として、プロセッサ102を駆動するシステムバス上に配置された、ハードウェアタイマーである高精度イベントタイマー(HPET:High Precision Event Timer)などを用いて実装してもよいし、あるいは、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用回路を用いて実装してもよい。
RTC128は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ102などへ提供する。
フィールドネットワークコントローラ118は、ネットワーク110を介したフィールド機器90を含む他のデバイスとの間のデータの遣り取りを制御する。フィールドネットワークコントローラ118は、他のデバイスとの間でタイミングを管理するための時刻基準として用いられるカウンタ119を有している。図4では、フィールド機器90のタイマ91はカウンタ91A、91B…で示される。
カウンタ119ならびにフィールド機器90などのデバイスが有するカウンタ(カウンタ91A,91B)については、上述のカウンタ126と同様の構成を採用できる。カウンタ119は、カウンタ126と同期する。
フィールドネットワークコントローラ118は、ネットワーク110を介した定周期通信を行うための通信マスタとして機能し、フィールドバスに接続されている各デバイスが有するカウンタが示すカウンタ値とカウンタ119が示すカウンタ値との差分を逐次監視して、必要に応じて、カウンタ値にずれが発生しているデバイスに対して補正を指示するための同期信号を出力する。このように、フィールドネットワークコントローラ118は、デバイスのカウンタが示すカウンタ値をカウンタ119が示すカウンタ値と一致させるための指令をデバイスへ与える同期管理機能を有している。
図4には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置2の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
本実施の形態に係る制御システム1においては、制御装置2およびサポート装置500が別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
(c2.サポート装置500の構成)
図5を参照してサポート装置500は、コンピュータなどの情報処理装置に相当する。サポート装置500は、携帯型および据え置き型の情報処理装置を含む。サポート装置500は、CPU(Central Processing Unit)501、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置で構成されるメモリ502、タイマ503、HDDなどの不揮発性に記憶装置で構成されるハードディスク504、入力インターフェース505、表示コントローラ506、通信インターフェース507、データリーダ/ライタ508を含む。これらの各部は、バス509を介して互いにデータ通信が可能なように接続されている。
入力インターフェース505は、CPU501とキーボード510、マウス(図示せず)、タッチパネル(図示せず)などの入力装置との間のデータ伝送を仲介する。表示コントローラ506は、ディスプレイ511と接続され、CPU501における処理の結果などを表示する。通信インターフェース507は、USBを介して制御装置2または装置/ライン管理装置190と通信する。データリーダ/ライタ508は、CPU501と外部の記憶媒体であるメモリカード512との間のデータ伝送を仲介する。
なお、図4のメモリカード116と図5のメモリカード512は、揮発性記憶媒体または不揮発性記憶媒体を含み、例えば、CF(Compact Flash:登録商標)、SD(Secure Digital)などの汎用的な半導体記憶デバイス、またはフレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体を含む。
ハードディスク504は、各種プログラムおよびデータを格納する。図5では、サポート装置500が有するツールのうち、特に、設定支援ツール560に関連するプログラムおよびデータが示される。ハードディスク504は、設定支援プログラム561と制御システム1または分散型システム300の仕様を示す仕様データ550を格納する。
より具体的には、設定支援プログラム561は、通信周期を算出するための項目を設定する項目設定プログラム565と、通信周期の範囲を算出する範囲算出プログラム570と、算出された周期範囲を、ディスプレイ511に表示させることによりユーザに提示する範囲表示プログラム580と、ユーザ操作に基づく通信周期を決定する決定プログラム590と、決定された通信周期を示す通信周期データ200を各制御装置2に設定するための設定プログラム595とを含む。範囲算出プログラム570は、各制御装置2の処理負荷に基づく上記に述べた第1の通信周期を算出する第1算出プログラム571とネットワーク負荷に基づく上記の第2の通信周期を算出する第2算出プログラム572とを有する。決定プログラム590は、通信周期の範囲の再設定のためにユーザを支援するユーザ支援プログラム591と、ユーザ操作に基づき決定された通信周期を評価する評価プログラム592を含む。
(c3.制御装置2のソフトウェア構成例)
次に、本実施の形態に係る制御システム1を構成する制御装置2のソフトウェア構成例について説明する。
図6は、本実施の形態に係る制御装置2のソフトウェア構成例を示すブロック図である。図6を参照して、制御装置2は、実行エンジン150と、時系列データベース180と、上位接続プログラム192と、ゲートウェイプログラム194とを含む。
実行エンジン150は、各種プログラムの実行環境下において各種プログラムを実行する1種のプログラムを構成する。典型的には、この実行環境は、制御装置2のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで提供される。
より具体的には、実行エンジン150は、フィールド機器90の制御に関連する制御関連処理を実現するための制御プログラム152と、変数管理プログラム160と、入力プログラム172と、出力プログラム174とを含む。実行エンジン150は、さらに、時刻同期処理を実現するための時刻同期プログラム177、および制御に関するサービス処理を含む各種処理を実現するためのゲートウェイプログラム194および上位接続プログラム192を含む。また、実行エンジン150は、プログラムの実行順序を管理するスケジューラプログラム170を含む。
制御プログラム152は、典型的には、ユーザプログラム154と、データベース書込みプログラム156と、シリアライズ通信プログラム158とにより構成される。ユーザプログラム154は、制御演算機能を提供する主たる部分に相当し、制御装置2の制御対象の製造装置や設備などに応じて任意に構成することができる。ユーザプログラム154は、例えば、ファンクションブロックなどを利用したラダーロジックなどで規定することができる。
データベース書込みプログラム156は、ユーザプログラム154内に規定された命令によって呼び出され、時系列データベース180に対して指定されたデータを書込む。シリアライズ通信プログラム158は、データベース書込みプログラム156から時系列データベース180に対して書込まれるデータに対してシリアライズ処理を行う。ゲートウェイプログラム194は、クラウド上の装置と通信する。例えば、クラウド上のIoTサービスを提供する装置に対して、時系列データベース180の時系列データ182を提供する。データベース書込みプログラム156と、シリアライズ通信プログラム158と、ゲートウェイプログラム194とは、オプショナルな構成であってもよい。
変数管理プログラム160は、実行エンジン150で利用可能な値を変数の形で管理する。より具体的には、変数管理プログラム160は、制御装置2の状態などを示すシステム変数と、制御装置2と接続されるフィールド機器90等の各種デバイスが保持する値を示すデバイス変数と、制御装置2で実行されるユーザプログラム154が保持する値を示すユーザ変数とを管理する。
入力プログラム172は、制御装置2と接続されるアクチュエータ、センサなどのデバイスを含むフィールド機器90からの入力データを取得する機能を提供する。出力プログラム174は、制御装置2において実行されるユーザプログラム154によって算出される指令値(出力データ)を、ネットワーク110を介して接続される対象のデバイスであるフィールド機器90へ出力する。本実施の形態では、時刻同期プログラム177は、図2に示した主に、時刻同期(1)の処理を実現する。時刻同期の処理については、図16で後述する。
スケジューラプログラム170は、制御装置2のプロセスまたはタスクなどに対して、プロセッサ102を含むリソース割当てや実行タイミングなどを、プロセスまたはタスクに割当てられた実行の優先度に従い管理する。このような、プロセスまたはタスクは、制御プログラム152および変数管理プログラム160、入力プログラム172、出力プログラム174、および時刻同期プログラム177等が制御装置2により実行されることにより生成され得るプロセスまたはタスクが含まれる。
時系列データベース180は、典型的には、主記憶装置106または二次記憶装置108に配置され、データを格納する機能とともに、外部からの要求(クエリ)に応答して、指定されたデータを応答する検索機能を搭載している。時系列データベース180は、データベース書込みプログラム156により書込まれる時系列データ182を格納している。すなわち、時系列データベース180は、入力データ、出力データ、制御プログラム152による制御演算において算出される演算データ、製造データ、イベントデータの少なくとも一部を時系列に格納する。
上位接続プログラム192は、製造実行システム400などの上位のネットワーク13に接続された外部装置との間でデータを遣り取りする。本実施の形態に係る制御装置2においては、制御装置2から製造実行システム400に対して入力データや演算データが出力されるとともに、製造実行システム400から製造情報を受信することができる。
本実施の形態では、製造実行システム400は図1の時系列DB450を有している。この場合には、上位接続プログラム192に代えて、あるいは、上位接続プログラム192の一部として、データベース接続プログラム193(図中ではデータベースを“DB”と示す)が設けられ得る。データベース接続プログラム193が実行されることにより、制御装置2内の時系列データベース180の時系列データ182は、製造実行システム400に転送されて、時系列DB450に格納され得る。
変数管理プログラム160は、入力プログラム172がフィールドから取得する入力データ(状態値)および上位接続プログラム192が製造実行システム400から取得する製造データを変数として管理する。ユーザプログラム154は、変数管理プログラム160により管理されるシステム変数、デバイス変数、ユーザ変数を参照しつつ、予め指定された制御演算を実行し、その実行結果(出力データ)を変数管理プログラム160に出力する。
(c4.サポート装置500のモジュール構成)
図7は、本実施の形態に係るサポート装置500のモジュール構成を模式的に示す図である。図7に示すモジュールは、図5のハードディスク504に格納された当該モジュールに対応のプログラムが実行されることで実現される。
より具体的には、設定支援ツール560は、項目設定プログラム565に対応の項目設定部520と、範囲算出プログラム570に対応の範囲算出部530とを備える。範囲算出部530は、第1算出プログラム571および第2算出プログラム572に対応する第1算出部531および第2算出部532を有する。設定支援ツール560は、さらに、範囲表示プログラム580に対応の範囲表示部535と、決定プログラム590に対応の決定部536と、設定プログラム595に対応の設定部539を含む。決定部536は、ユーザ支援プログラム591に対応のユーザ支援部537および評価プログラム592に対応の評価部538を含む。ユーザ支援部537は、ユーザインターフェイスUI(User Interface)53を含む。サポート装置500は、設定支援ツール560に関連して、設定支援ツール560からの出力に基づく表示制御データに従いディスプレイ511を制御する表示制御部540と、キーボード510を介したサポート装置500に対するユーザ操作を受け付けるための操作受付部541を有する。
設定支援ツール560は、表示制御部540と操作受付部541とを含んで構成されるUIを提供する。本実施の形態ではUIは、グラフィカルユーザインターフェイスGUI(graphical user interface)を含む概念である。UIは、ディスプレイ511により設定支援ツール560からの情報をユーザに提示し、また、キーボード510により設定支援ツール560に対するユーザ操作を受付ける、いわゆるインタラクティブ環境を実現する。
項目設定部520は、仕様データ550から検索したデータを、通信周期の範囲を算出するための項目に設定する。仕様データ550は、制御システム1または分散型システム300の設計仕様を表す。より具体的には、仕様データ550は、各制御装置2について、当該制御装置2において実行されるUPG(User Program)の仕様を示すUPG仕様データ551と、各制御装置2における制御周期を示す制御周期データ552と、システムの構成を示すシステム構成データ553と、上位ネットワーク12,13,14を介した通信によりネットワーク11に係る負荷を示す上位NW(ネットワークの略)負荷データ554と、システムに必要な同期精度555を含む。
UPG仕様データ551は、制御装置2において実行される制御に関連する制御関連処理を実現するためのUPGプログラムの仕様を示す。より具体的には、UPGプログラムは、制御プログラム152、変数管理プログラム160、入力プログラム172および出力プログラム174を含む。UPG仕様データ551は、例えば各プログラムのサイズ(命令数、ステップ数など)を含む。
システム構成データ553は、ネットワーク11に接続される機器(制御装置2)の台数(ノード数ともいう)、トポロジ、各機器の種類、各種性能情報を含む。性能情報は、各制御装置2の処理性能(プロセッサの演算速度、メモリサイズ・速度など)、ネットワーク11の伝送性能(通信速度、各種帯域など)、各制御装置2の時刻同期の性能を含む。時刻同期の性能を示す情報は、同期精度と相関関係を有する値であって、例えば後述するタイムスタンプの分解能と、Sync滞留時間と、最大周波数ドリフトと、最大周波数ジッタなどと、1回の同期メッセージの通信に必要な帯域と、制御関連処理の実行時の必要な帯域とを含み得る。
図5のハードディスク504に格納されたプログラムは、図5に示されるように個別のプログラムとして提供されてもよく、または、2つ以上のプログラムが組合わされて1つのプログラムとして提供されてもよい。
(c5.スケジューラと優先度)
スケジューラプログラム170は、実行されると、制御周期において処理の実行順序を管理するスケジューラを実現する。スケジューラは制御関連処理、時刻同期処理およびサービス処理のプロセスまたはタスクに、処理に予め割当てられた実行の優先度に従いプロセッサ102を含むリソースを割当てる。
本実施の形態では、制御関連処理のプロセスまたはタスクは最も高い優先度が割り当てられて、時刻同期処理とサービス処理のプロセスまたはタスクは低い優先度が割り当てられる。スケジューラは、制御周期において、プロセッサ102を、制御関連処理に最優先で割当て、制御関連処理の実行が終了すると、余りの「余裕時間」において、プロセッサ102を、優先度の低い処理に割当てる。これにより、各制御装置2では制御関連処理を制御周期内で実行することが保証されるとともに、ネットワーク11には、制御装置2間で遣り取りされるデータが優先して伝送されて、データの到達時間を保証できる。本実施の形態では、説明を簡単にするために、制御周期の「余裕時間」には主に時刻同期処理が実行される。
(c6.時刻同期処理)
制御システム1では、時刻同期のために、例えばIEEE1588、IEEE802.1AS,IEEE802.1AS-Revなどの高精度時刻同期プロトコルを採用することができる。高精度時刻同期プロトコルとして、例えば、IEEE1588には、PTP(Precision Time Protocol)が規定されている。PTPは、基準タイマであるマスタと、基準タイマに同期するタイマであるスレーブとを含む通信システムに適用され得る。PTPでは、マスタとスレーブとの間で定期的に同期メッセージを有したフレームを遣り取りし、その過程で得られた情報に基づいて、スレーブの時刻をマスタの時刻に合わせる補正が行なわれる。
図16は、PTPの時刻同期処理のシーケンスの一例を示す図である。図16に示すシーケンスにおいては、マスタMとスレーブSとが連係することにより、マスタとスレーブとの間の時刻同期が実現される。説明を簡単にするために、マスタMは、中継器を介さずにスレーブSと通信する。
最初に、マスタMは、時刻T1でスレーブSへSyncメッセージ169を送信し、スレーブSはマスタからSyncメッセージ169を時刻T2で受信する。次に、マスタMは、時刻T1を示す情報を含むFollow_UpメッセージをスレーブSに送信する。スレーブSは、Follow_Upメッセージを受信すると、時刻T1と時刻T2とを記録する。
次に、スレーブSは、時刻T3においてマスタMへDelay_Reqメッセージを送信する。マスタMは、時刻T4でDelay_Reqメッセージを受信すると、スレーブSにDelay_Respメッセージを送信する。Delay_Respメッセージは、時刻T4を示す情報を含んでいる。スレーブSは、Delay_Respメッセージを受信すると、マスタMがDelay_Reqメッセージを受信したことを確認できるため、時刻T3と時刻T4とを記録する。
スレーブSは、時刻T1,T2,T3,T4(すなわち、4つのタイムスタンプ)を記録している。スレーブSは、これらタイムスタンプに基づく通信の遅延時間を含む誤差をなくすように、スレーブSをマスタMに時刻合わせする。本実施の形態では、当該誤差の大きさが「同期精度」を表す。マスタMおよびスレーブSは、それぞれ、制御装置2Aのタイマ101Aおよび制御装置2Bのタイマ101B(または制御装置2Cのタイマ101C)に対応する。
制御装置2は、時刻同期処理において、上記の誤差をなくすようにスレーブSの時刻を補正する補正処理を実行する。補正処理は、補正プログラム178を実行することで実現される。本実施の形態では、1回あたりの補正量は上限が決められている。したがって、誤差が大きい場合、補正処理を複数回繰り返す必要がある、すなわち、補正処理を完了するには、1または複数の制御周期をかける必要がある。補正処理を完了する前に、マスタはSyncメッセージ169を送信する(または、スレーブSはSyncメッセージ169を受信する)と、新しいタイムスタンプをもとにした補正処理をすぐに実行できないため、同期精度が低下してしまう。設定支援ツール560は、補正処理を完了することを保証する通信周期を設定できるよう構成されている。
本実施の形態では、「時刻同期処理」は、通信周期毎に実施される図16の通信シーケンスに係るメッセージ通信処理と上記の補正処理とを含む。「通信周期」は、マスタMとスレーブSとの間で、同期メッセージを、ネットワーク11を介して伝送するための周期を示す。より具体的には、通信周期は、マスタMがSyncメッセージ169をスレーブSに送信する周期またはスレーブSがマスタMからSyncメッセージ169を受信する周期を示す。各制御装置2のスケジューラは、設定支援ツール560によって設定された通信周期データ200が示す通信周期に従い、プロセッサ102をメッセージ通信処理に割当てる。これにより、各制御装置2は、Syncメッセージ169を通信するタイミングを、当該制御装置2が補正処理を完了するときに設定でき、その結果、正確な補正を保証できる。
本実施の形態に係る時刻同期のプロトコルはPTPに限定されず、有線または無線通信の他のプロトコルを適用できる。例えば、NTP(Network Time Protocol)またはSNTP(Simple Network Time Protocol)、GPS(Global Positioning System)または同期イーサネット(登録商標)のプロトコル、NW帯域が制限される場合のCS-NMS(Clock-sampling mutual network synchronization)、RBS((Reference Broadcast Synchronization)およびRBIS(Reference Broadcast Infrastructure Synchronization)のプロトコルを適用することもできる。GPSおよび同期イーサネットのプロトコルは、NW負荷は関連しない。
<D.フローチャート>
図8は、本実施の形態に係る通信周期設定の概略処理を示すフローチャートである。図8の処理は、同期メッセージの通信周期を設定可能な範囲である「周期範囲」を設定する処理と、周期範囲のうちからユーザ操作に基づき通信周期を決定し、決定された通信周期を分散型システム300に設定する処理とを含む。
ユーザは、キーボード510を操作して、分散型システム300の仕様を作成し、CPU501は、作成された仕様を示す仕様データ550を、ハードディスク504に格納する(ステップS1)。CPU501は、項目設定部520としてステップS3の処理を実行する(ステップS3)。より具体的には、CPU501は、仕様データ550をディスプレイ511に表示する。ユーザはキーボード510を操作することにより、設定支援ツール560を起動し、周期範囲を設定するための項目データをサポート装置500に入力する。
CPU501は、設定支援ツール560として、ステップS5~S11の処理を実行する。より具体的には、CPU501は、項目設定部520として、ユーザ操作に基づく項目データを設定し、CPU501は、範囲算出部530として、項目データに基づき周期範囲を算出し(ステップS5)、CPU501は、範囲表示部535として、算出した周期範囲を、ディスプレイ511を介してユーザに提示する(ステップS7)。より具体的には、ステップS7では、CPU501は、表示制御部540を介して、ディスプレイ511に周期範囲を示す画像を表示させる。CPU501は、決定部536として、キーボード510からのユーザ操作に基づき、ディスプレイ511に表示された周期範囲のうちから、ユーザ指定の通信周期を決定する。
CPU501は、操作受付部541を介して、通信周期を決定するユーザ操作を受け付けたか否かを判定し(ステップS9)、決定操作を受け付けたと判定すると(ステップS9でYES)、CPU501は、設定部539として、決定された通信周期を示す通信周期データ200の通知を、ネットワーク11に接続される各制御装置2に送信する(ステップS11)。分散型システム300の各制御装置2は、サポート装置500から通知された通信周期データ200を当該制御装置2に設定する(ステップS17)。
一方、CPU501は、通信周期を決定するユーザ操作を受け付けないと判定すると(ステップS9でNO)、例えば、周期範囲を再設定するためのユーザ支援機能の起動操作を受付けたと判定すると、CPU501は、ユーザ支援部537として、再設定のための支援情報をディスプレイ511に表示する(ステップS13)。ユーザは、表示された再設定の支援情報に基づき、キーボード510を操作して、周期範囲を再設定するための情報をサポート装置500に入力する(ステップS15、S1)。CPU501は、ユーザによる入力情報に基づき仕様データ550を再作成(変更)する(ステップS3)。これにより、設定支援ツール560は、ステップS5に移行して、変更後の仕様データ550の項目データに基づき範囲算出部530を起動し、範囲算出部530に周期範囲を再算出させて、ユーザに提示する(ステップS5、S7)。
図8の処理によれば、ユーザは、設定支援ツール560と対話しながら、周期範囲を設定し、設定された周期範囲のうちから通信周期を決定できる。
<E.周期範囲の設定処理>
本実施の形態では、CPU201は、設定支援ツール560として、周期範囲を下限値と上限値を用いて設定する。より具体的には、設定支援ツール560は、各制御装置2の制御関連処理の処理負荷とネットワーク負荷とに基づく通信周期から必要な同期精度555に基づく通信周期までの幅を有した周期範囲を設定する。
図9は、本実施の形態に係る処理負荷に基づく第1の通信周期の算出処理の一例を示す図である。図10は、本実施の形態に係るネットワーク負荷に基づく第2の通信周期の算出処理の一例を示す図である。図11は、本実施の形態に周期範囲の設定におけるデータの流れを示す図である。CPU501は、設定支援ツール560として図11の示す流れでデータを処理することにより、周期範囲を設定する。図11では、データの流れが、図8の処理のステップS1~S7と関連付けて示される。
図9と図10と図11を参照して、周期範囲の下限値の周期Tminと上限値の周期Tmaxを算出する手順を説明する。CPU501は、第1算出部531として、図9の処理を実行する。より具体的には、CPU501は、処理負荷を算出するための単位時間Callを取得する。単位時間Callは一定時間であって、例えば制御周期データ552が示す制御周期または1秒を示す。また、CPU501は、UPG仕様データ551が示すプログラムのサイズと、システム構成データ553が示すプロセッサ102の演算速度とから、制御関連処理に要する処理時間(処理負荷)を算出し、算出値を単位時間Callあたりの処理時間Cappに設定し、また、CPU510は、Csyn=(Call-Capp)の演算式に従って、単位時間Callあたりの余裕の処理時間Csynを算出する。また、CPU501は、制御装置2において1回の時刻同期処理に要する処理時間(処理負荷)を示す処理時間Cを、UPG仕様データ551が示す時刻同期プログラム177のサイズとシステム構成データ553が示すプロセッサ102の演算速度とから算出する。CPU501は、制御装置2について、第1の通信周期TCmin=(C/Csyn)を算出する。CPU501は、各制御装置2について上記に述べた手順に従い第1の通信周期TCminを算出する。各制御装置2の第1の通信周期TCminのうちの最長の第1の通信周期TCminが、後述する周期Tminの候補となる。
CPU501は、第2算出部532として、図10の処理を実行する。より具体的には、CPU501は、ネットワーク11について単位時間あたりに伝送することのできる最大のデータ量を示す帯域Nallと、UPG(制御関連処理など)に関連の通信処理においてネットワーク11を伝送されるデータ量を示す帯域Nappとを用いて、Nsyn=(Nall-Napp)の演算式に従って、帯域Nsynを算出する。帯域Nallはシステム構成データ553のネットワーク11の伝送性能から取得できる。帯域Nallは、限定されないが、例えばEtherNet(登録商標)の通信ケーブルの最大帯域100メガbps(bit per second)または1ギガbpsが適用され得る。データ量Nappは、UPGの実行においてネットワーク11に係る通信負荷(NW負荷)に相当する。CPU501は、UPG仕様データ551から、制御関連処理のUPGのうちネットワーク通信を伴うUPGの利用帯域を取得し、取得したUPGの利用帯域と上位NW負荷データ554が示す帯域との合計からNW負荷に相当する帯域Nappを算出する。帯域Nsynは、時刻同期のメッセージ通信が利用可能な帯域(伝送データ量、NW負荷)を示す。CPU501は、ネットワーク11が全く未使用の空き帯域である場合に、1回の時刻同期のメッセージ通信(図16の通信シーケンス)で使用される帯域N(伝送データ量、NW負荷)をシステム構成データ553の各制御装置2の時刻同期の性能から取得する、またはネットワーク11において実測する。CPU501は、稼働時のネットワーク11における時刻同期の通信所要時間、すなわち第2の通信周期Tnmin=(N/Nsyn)を算出する。
CPU501は、範囲算出部530として、各制御装置2の第1の通信周期TCminのうちの最長の周期と第2の通信周期Tnminとを比較し、それらのうちの長い方を周期Tminに設定する。周期Tminは、周期範囲の下限値になり得る。
また、CPU501は、必要な同期精度555とシステム構成データ553から取得されるネットワーク11の伝送性能と各制御装置2の時刻同期の性能を示す値とから、通信周期Tmaxを算出する。通信周期Tmaxは周期範囲の上限値になり得る。
上限値Tmaxを算出する演算式と、PTPの同期精度Eを算出する演算式を説明する。同期精度Eを算出する演算式は、例えば、次の演算式(1)で示されることが知られている。
E=(0.5×b×(sync))+(a×b×c×d)+e…(式1)
上記の式(1)において、第1項の括弧内に用いる変数syncは、syncメッセージ169の送信周期、すなわち時刻同期のための通信周期を示す。なお、他のメッセージの送信周期を変数syncとしてもよい。式(1)の他の変数は、ネットワーク11に接続されるノード(制御装置2)が有する時刻同期の性能に依存する値とネットワーク11に接続される最大ノード数を示し、ノード数が多くなるほど(式1)で算出される同期精度Eは低下する。
ステップS5において、CPU501は、変数a,b,c,d,eの値を、システム構成データ553のノード(制御装置2)が有する時刻同期の性能から取得し、取得されたこれら値と必要な同期精度555(すなわち、式1の“E”に相当)とを用いて、(式1)から変数syncを算出する。これにより、必要な同期精度555を満たす変数syncの値、すなわち同期メッセージの通信周期Tmaxが算出される。CPU501は、算出された変数syncが示す通信周期Tmaxを周期範囲の上限値に設定する。
上記の(式1)によれば、通信周期を示す変数syncの値が固定であれば、ネットワーク11に接続される制御装置2の台数が増加するほど、同期精度Eは低下する。この点を、グラフで補足する。図12は、同期精度とノード数の関係を模式的に示すグラフである。図12は、縦軸に同期精度(誤差の大きさ)をとり、横軸にノード数(制御装置2の台数)を示している。図12では、シミュレーション結果に基づき、変数Syncの値121および値123を変化させた場合の同期精度の変化がグラフで示される。グラフに示されるように、通信周期が同じであれば、ネットワーク11に接続される制御装置2の台数が増加するほど、同期精度Eは低下することが示される。したがって、必要な同期精度555を確保する場合、制御装置2の台数が多くなるほど変数syncの値は小さくなる。仮に、この変数syncの値よりも大きい値の通信周期で同期通信を実行すれば、必要な同期精度555を満たすことができなくなる。これら背景から、CPU501は、システム構成データ553(ノード数など)と(式1)とにより、必要な同期精度555を満たすことが可能な周期範囲の上限値(通信周期Tmax)を取得できる。
<F.周期範囲のUIと同期精度の評価>
図13は、本実施の形態に係る通信周期設定のためのUI画面の一例を示す図である。CPU501は、範囲表示部535として、ステップS7の処理を実行する。図13のUI画面は、通信周期を指定するユーザ操作を受付ける画面の一例であって、図8のステップS7において表示される。
図13の画面は、周期範囲(Tmin~Tmax)と、当該周期範囲に関連付けて、TSNで推奨されるデフォルト周期Tdef、Tmin~Tmaxの中央値Tcenを示すインジケータ601と、通信周期Tmin、Tdef、Tcen、Tmaxおよびユーザ設定の周期Tusrのそれぞれについての参照値602を有する通信周期テーブル609を含む。
通信周期テーブル609の参照値602は、対応の通信周期Tmin、Tdef、Tcen、Tmaxおよび周期Tusrのそれぞれについて、通信周期31を示す値(単位:ms)、当該通信周期を元に確保できる同期精度32(単位:μs)、当該通信周期31で同期通信処理を実行する場合のプロセッサ102に係る処理負荷33およびネットワーク11に係るNW負荷34を含む。処理負荷33(単位:%)は処理時間Csync/単位時間を示し、NW負荷34(単位:%)はデータ量Nsyn/帯域Nallを示す。CPU501が、仕様データ550と図11における算出値とを用いた、(式1)を含む所定の演算式に従って、各通信周期31の値に応じた参照値602(同期精度32、処理負荷33およびNW負荷34)を算出する。図13では、参照値602のうち、仕様データ550が示す必要な同期精度555は、例えば10μsは強調マーク(図13のスターマーク)が付される。図13の参照値602は、例示であり限定されない。
図8のステップS15において、ユーザは、参照値602を、通信周期を設定するための支援情報として利用できる。例えば、ユーザは、必要な同期精度555よりも高い精度を有する周期として、参照値602から、例えばTSNで推奨されるデフォルト周期Tdef(125ms)を指定操作する。CPU501は、指定操作に基づき、デフォルト周期Tdefを設定周期604として決定する。
(f1.ユーザが決定した通信周期の評価)
ユーザは、図13の参照値602が示す通信周期31以外の周期を、設定周期604として決定することもできる。その場合、CPU501は、評価部538として、ユーザ設定の通信周期に基づく同期精度を評価する。より具体的には、CPU501は、各制御装置2が、決定された設定周期604に基づき送信される同期メッセージに従って時刻同期処理を実行する場合、同期精度Eを算出することにより、当該設定周期604に対応の同期精度を評価する。
ユーザは、キーボード510を操作し、項目603に通信周期31(設定周期604)を設定する。CPU501は、評価部538として、項目603に設定された通信周期31の元で取得される同期精度を算出し、算出値を同期精度32として項目603として設定する。項目603の同期精度32を算出する際には、CPU501は、変数syncにユーザ設定の通信周期31の値を代入して、(式1)などの所定の演算式により通信周期31の同期精度Eを算出するとともに、処理負荷33およびNW負荷34を算出し、算出された値を項目603に設定する。ユーザは、図13のUI画面において、通信周期31(設定周期604)について評価された情報、すなわち同期精度32,処理負荷33およびNW負荷34を、通信周期31を最終的に設定周期604として決定するか否かを判断するための支援情報として利用できる。
本実施の形態では、評価部538による評価は、同期精度32、処理負荷33およびNW負荷34の算出であったが、これら全ての算出に限定されず、同期精度32、処理負荷33およびNW負荷34のうちの少なくとも1つ、特定的には、同期精度32の算出であってもよい。
図8のステップS11では、CPU501は、図13のUI画面でユーザ操作により決定された設定周期604を示す通信周期データ200の通知を各制御装置2に送信する。
(f2.周期範囲の提示とユーザ操作の他の例)
図14は、本実施の形態に係る通信周期設定のためのUI画面の他の例を示す図である。図15は、本実施の形態に係る周期範囲の設定条件を調整するUI画面の一例を示す図である。図13は、(Tmax≧Tmin)の条件が満たされるケースであったが、例えば(Tmax<Tmin)の条件が満たされるとCPU501は、図14の画面をディスプレイ511に表示させる。(Tmax<Tmin)の条件が満たされる周期範囲では、通信周期を決定することができない。
ユーザは、通信周期の決定を可能とする周期範囲を取得するために、図14のボタン605を操作して、ユーザ支援部537の設定支援機能を起動する。ボタン605が操作されると、CPU501は、ユーザ支援部537として、図15の設定支援情報606をディスプレイ511に表示させる。図15に記載の単位ms/sは、処理負荷の単位であって、単位時間(s)当たりの処理時間(ms)を表す。
図15のUI画面は、UI53により提供される。UI画面は、設定支援情報606と、通信周期テーブル609と、ボタン608とを含む。設定支援情報606は、仕様データ550の各項目うち、(Tmin≦Tmax)の条件を満たすために調整可能な項目を含む。設定支援情報606は、(Tmin≦Tmax)の条件を満たすための周期範囲の変更態様を表す方針611(Tminを小さくする61aとTmaxを大きくする61b)、方針611を実現するための方法612と、方法612を実現するたに調整(変更など)されるべき項目の現在値などを示す現状613と、現状613が示す項目の値の調整量を表す条件614と、現状613が示す項目のユーザ調整操作後の値を示す入力615とを含む。現状613は、仕様データ550における調整するべき項目の現在値を示す。条件614は、(Tmin≦Tmax)を満たすために現状613が示す項目の値の調整量(増減と値)を示す。
ユーザは、図15の設定支援情報606の現状613の項目のうち、1または複数の項目の調整(変更)後の値を、入力615に設定する。ユーザは、当該項目に対応の条件614を目安に、項目の値を調整できる。
現状613の項目は、第1の周期を算出するための、制御周期、各制御装置2が有する処理性能、および制御関連処理と時刻同期処理のサイズなどを含む。また、現状613の項目は、第1の周期を算出するための、ネットワーク11の伝送性能、各制御装置2が処理に要する帯域と、各制御装置2の時刻同期の性能などを含む。現状613の項目は、さらに、必要な同期精度の項目も含む。UI53は、図15の画面から、少なくとも1つの項目を調整するユーザ操作を受付ける。
図15では、項目の値を調整において、例えば、ユーザが、調整操作によって調整後のNW帯域の値607を入力615に設定する。ユーザは、ボタン608を操作すると、CPU501は、範囲算出部530を起動する。CPU501は、範囲算出部530として、図15の入力615において受け付けた調整操作後の各項目の値に基づき、通信周期の範囲を再度算出する。CPU501は、再算出された周期範囲のデータを図15の通信周期テーブル609に設定する。ユーザは、通信周期テーブル609に設定された値に基づき、再算出された周期範囲において通信周期を決定するかを判断できるとともに、入力615の各項目の値をシステムの仕様データ550に反映するかを判断できる。
図15のUI画面を用いた周期範囲の再算出が実施されるケースは、(Tmax<Tmin)の条件が満たされるケース以外であってもよい。例えば(Tmax≧Tmin)の条件が満たされるケースであっても、ユーザが周期範囲の変更を希望する(すなわち、TmaxまたはTminの値を変更する周期範囲の再算出を実施する)場合は、ユーザは、図15のUI画面を操作して、調整操作後にボタン608を操作することにより、図15の調整後の入力615の値に基づきCPU501に周期範囲を再算出させることができる。
本実施の形態に係る設定支援ツール560によれば、各制御装置2の処理負荷およびネットワーク11のNW負荷に基づき、必要な同期精度555を満たすことのできる周期範囲が算出されてユーザに提示される。ユーザは、分散型システム300の設計時(仕様作成時)に、また、システム設計時の仕様データ550を作成する場合に、設定支援ツール560を利用することで、時刻同期のための通信周期に係るデバッグ作業の工数、すなわち通信周期に係る項目の試行錯誤の設定工数を削減できる。
<G.プログラム>
サポート装置500のCPU501は、設定支援プログラム561を実行することにより、ユーザに対し、周期設定のための設定支援ツール560を提供する。ハードディスク504には、設定支援ツール560を実現するためのプログラムおよびデータなどを記憶し得る。
設定支援ツール560を実現するためのプログラムおよびデータは、通信インターフェース507および各種通信回線を介してハードディスク504にダウンロードされてもよい。または、メモリカード512を介してハードディスク504にダウンロードされるとしてもよい。メモリカード512は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。サポート装置500は、このメモリカード512から、設定支援ツール560に関するプログラムまたはデータを取得してもよい。
プログラムは、CPU501などの1つ以上のプロセッサにより、またはプロセッサとASIC(Application Specific Integrated Circuit),FPGA(Field-Programmable Gate Array)などの回路との組合せにより実行され得る。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
FA(ファクトリオートメーション)のネットワーク(11)に接続される複数の制御装置(2A、2B、2C)の通信周期を処理する情報処理装置(500)であって、
各前記複数の制御装置は、
制御に関連する制御関連処理と、同期メッセージ(169)に従い制御装置間で時刻同期させるための時刻同期処理とを含む処理を実行し、
前記情報処理装置は、
前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出する範囲算出部(530)を備え、
前記範囲算出部は、
前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期(TCmin)を算出する第1算出部(531)と、
前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期(Tnmin)を算出する第2算出部(532)と、を含み、
前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期(Tmin)と、予め定められた同期精度(555)に基づく通信周期(Tmax)とを用いて前記範囲を算出する、情報処理装置。
[構成2]
前記範囲算出部は、
前記範囲の上限値および下限値として、それぞれ、前記予め定められた同期精度に基づく通信周期および前記長い方の周期を算出する、構成1に記載の情報処理装置。
[構成3]
前記範囲算出部によって算出された前記周期の範囲をディスプレイ(511)に表示させる範囲表示部(535)と、
算出された前記周期の範囲のうちから、前記情報処理装置に対するユーザ操作に基づき、前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期を決定する決定部(536)と、をさらに備える、構成1または2に記載の情報処理装置。
[構成4]
前記範囲表示部は、前記ネットワークに適用される通信プロトコルに従うデフォルトの周期(Tdef)を、前記範囲に関連付けて前記ディスプレイに表示させる、構成3に記載の情報処理装置。
[構成5]
前記決定部によって決定された前記周期を示すデータを、前記各制御装置に設定する、構成3または4に記載の情報処理装置。
[構成6]
前記各制御装置が、決定された前記周期に基づき送信される前記同期メッセージに従って前記時刻同期処理を実行する場合、同期精度を評価する評価部(538)を、さらに備える、構成3から5のいずれか1に記載の情報処理装置。
[構成7]
前記第1算出部は、第1の情報から、前記余裕時間と前記所要時間とを算出し、
前記第1の情報は、前記予め定められた周期、前記各制御装置が有する処理性能、および前記制御関連処理と前記時刻同期処理のサイズの各項目を含み、
前記第2算出部は、第2の情報から、前記利用可能帯域、前記ネットワーク負荷に基づく帯域、および1回の同期メッセージの通信に必要な帯域を算出し、
前記第2の情報は、前記ネットワークの伝送性能、前記各制御装置が処理に要する帯域と、前記各制御装置の時刻同期の性能の各項目を含み、
前記第1の情報の項目、前記第2の情報の項目および前記予め定められた同期精度の項目を表示し、少なくとも1つの項目を調整するユーザ操作を受付けるUI(ユーザインターフェイス)(53)を備える、構成1から6のいずれか1に記載の情報処理装置。
[構成8]
前記UIは、さらに、
算出された前記範囲を変更する1つ以上の変更態様(61a、61b)と、各変更態様に関連付けて調整するべき項目(612)と調整量(614)とを表示する、構成7に記載の情報処理装置。
[構成9]
前記UIは、さらに、
前記調整する操作をユーザから受付けた場合に、前記第1の情報、前記第2の情報および前記予め定められた同期精度に基づき前記通信周期の範囲を算出するよう、前記範囲算出部を起動する、構成7または8に記載の情報処理装置。
[構成10]
前記複数の制御装置は、それぞれが、前記FAの異なる工程毎に備えられる分散型の制御システム(300)を構成する、構成1から9のいずれか1に記載の情報処理装置。
[構成11]
前記制御装置は、1または複数の制御対象の機器(90A~90I)を接続し、
前記予め定められた周期は制御周期(552)を示す、構成1から10のいずれか1に記載の情報処理装置。
[構成12]
FA(ファクトリオートメーション)のネットワーク(111)に接続される複数の制御装置(2A、2B、2C)の通信周期を処理する方法であって、
各前記複数の制御装置は、
制御に関連する制御関連処理と、同期メッセージ(169)に従い制御装置間で時刻同期させるための時刻同期処理を含む処理を実行する実行部(150)を有し、
前記方法は、
前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出するステップ(S5)を備え、
前記範囲を算出するステップは、
前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期(TCmin)を算出するステップと、
前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期(Tnmin)を算出するステップと、
前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期(Tmin)と、予め定められた同期精度(555)に基づく通信周期(Tmax)とを用いて前記範囲を算出するステップと、を含む、方法。
[構成13]
構成12に記載の方法をプロセッサに実行させるためのプログラム(561)。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 制御システム、2,2A,2B,2C 制御装置、3A,3B,3C 工程、11,12,13,14,110 ネットワーク、31,318 通信周期、32,555,E 同期精度、33,Csync 処理負荷、34,Nsyn NW負荷、53 UI、90,90A,90B,90C,90D,90E,90F,90G,90H,90I フィールド機器、126 カウンタ、102 プロセッサ、150 実行エンジン、152 制御プログラム、154 ユーザプログラム、156 データベース書込みプログラム、158 シリアライズ通信プログラム、160 変数管理プログラム、169 Syncメッセージ、170 スケジューラプログラム、172 入力プログラム、174 出力プログラム、177 時刻同期プログラム、178 補正プログラム、200 通信周期データ、300 分散型システム、500 サポート装置、510 キーボード、511 ディスプレイ、520 項目設定部、530 範囲算出部、531 第1算出部、532 第2算出部、535 範囲表示部、536 決定部、537 ユーザ支援部、538 評価部、539 設定部、540 表示制御部、541 操作受付部、550 仕様データ、551 UPG仕様データ、552 制御周期データ、553 システム構成データ、554 負荷データ、560 設定支援ツール、561 設定支援プログラム、565 項目設定プログラム、570 範囲算出プログラム、571 第1算出プログラム、572 第2算出プログラム、580 範囲表示プログラム、590 決定プログラム、591 ユーザ支援プログラム、592 評価プログラム、595 設定プログラム、601 インジケータ、602 参照値、603 項目、604 設定周期、606 設定支援情報、609 通信周期テーブル、611 方針、612 方法、613 現状、614 調整条件、615 入力。

Claims (13)

  1. FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する情報処理装置であって、
    各前記複数の制御装置は、
    制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理とを含む処理を実行し、
    前記情報処理装置は、
    前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出する範囲算出部を備え、
    前記範囲算出部は、
    前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期を算出する第1算出部と、
    前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出する第2算出部と、を含み、
    前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて前記範囲を算出する、情報処理装置。
  2. 前記範囲算出部は、
    前記範囲の上限値および下限値として、それぞれ、前記予め定められた同期精度に基づく通信周期および前記長い方の周期を算出する、請求項1に記載の情報処理装置。
  3. 前記範囲算出部によって算出された前記周期の範囲をディスプレイに表示させる範囲表示部と、
    算出された前記周期の範囲のうちから、前記情報処理装置に対するユーザ操作に基づき、前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期を決定する決定部と、をさらに備える、請求項1または2に記載の情報処理装置。
  4. 前記範囲表示部は、前記ネットワークに適用される通信プロトコルに従うデフォルトの周期を、前記範囲に関連付けて前記ディスプレイに表示させる、請求項3に記載の情報処理装置。
  5. 前記決定部によって決定された前記周期を示すデータを、前記各制御装置に設定する、請求項3または4に記載の情報処理装置。
  6. 前記各制御装置が、決定された前記周期に基づき送信される前記同期メッセージに従って前記時刻同期処理を実行する場合、同期精度を評価する評価部を、さらに備える、請求項3から5のいずれか1項に記載の情報処理装置。
  7. 前記第1算出部は、第1の情報から、前記余裕時間と前記所要時間とを算出し、
    前記第1の情報は、前記予め定められた周期、前記各制御装置が有する処理性能、および前記制御関連処理と前記時刻同期処理のサイズの各項目を含み、
    前記第2算出部は、第2の情報から、前記利用可能帯域、前記ネットワーク負荷に基づく帯域、および1回の同期メッセージの通信に必要な帯域を算出し、
    前記第2の情報は、前記ネットワークの伝送性能、前記各制御装置が処理に要する帯域と、前記各制御装置の時刻同期の性能の各項目を含み、
    前記第1の情報の項目、前記第2の情報の項目および前記予め定められた同期精度の項目を表示し、少なくとも1つの項目を調整するユーザ操作を受付けるUI(ユーザインターフェイス)を備える、請求項1から6のいずれか1項に記載の情報処理装置。
  8. 前記UIは、さらに、
    算出された前記範囲を変更する1つ以上の変更態様と、各変更態様に関連付けて調整するべき項目と調整量とを表示する、請求項7に記載の情報処理装置。
  9. 前記UIは、さらに、
    前記調整する操作をユーザから受付けた場合に、前記第1の情報、前記第2の情報および前記予め定められた同期精度に基づき前記通信周期の範囲を算出するよう、前記範囲算出部を起動する、請求項7または8に記載の情報処理装置。
  10. 前記複数の制御装置は、それぞれが、前記FAの異なる工程毎に備えられる分散型の制御システムを構成する、請求項1から9のいずれか1項に記載の情報処理装置。
  11. 前記制御装置は、1または複数の制御対象の機器を接続し、
    前記予め定められた周期は制御周期を示す、請求項1から10のいずれか1項に記載の情報処理装置。
  12. FA(ファクトリオートメーション)のネットワークに接続される複数の制御装置の通信周期を処理する方法であって、
    各前記複数の制御装置は、
    制御に関連する制御関連処理と、同期メッセージに従い制御装置間で時刻同期させるための時刻同期処理を含む処理を実行する実行部を有し、
    前記方法は、
    前記同期メッセージを、前記ネットワークを介し前記各制御装置に通信する周期の範囲を算出するステップを備え、
    前記範囲を算出するステップは、
    前記各制御装置について、予め定められた周期における前記制御関連処理の処理負荷に基づく当該処理の実行時間を除いた余裕時間と、当該制御装置が実行する1回の前記時刻同期処理の所要時間とから、第1の通信周期を算出するステップと、
    前記ネットワークの利用可能帯域から、ネットワーク負荷に基づく帯域を除いた余剰帯域と、1回の同期メッセージの通信に必要な帯域とから、第2の通信周期を算出するステップと、
    前記各制御装置の前記第1の通信周期のうちの最長周期および前記第2の通信周期の両者のうちの長い方の通信周期と、予め定められた同期精度に基づく通信周期とを用いて前記範囲を算出するステップと、を含む、方法。
  13. 請求項12に記載の方法をプロセッサに実行させるためのプログラム。
JP2021032405A 2021-03-02 2021-03-02 情報処理装置、方法およびプログラム Pending JP2022133624A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021032405A JP2022133624A (ja) 2021-03-02 2021-03-02 情報処理装置、方法およびプログラム
PCT/JP2021/034695 WO2022185589A1 (ja) 2021-03-02 2021-09-22 情報処理装置、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021032405A JP2022133624A (ja) 2021-03-02 2021-03-02 情報処理装置、方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2022133624A true JP2022133624A (ja) 2022-09-14

Family

ID=83154947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021032405A Pending JP2022133624A (ja) 2021-03-02 2021-03-02 情報処理装置、方法およびプログラム

Country Status (2)

Country Link
JP (1) JP2022133624A (ja)
WO (1) WO2022185589A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7399349B1 (ja) * 2022-09-21 2023-12-15 三菱電機株式会社 設定支援装置、制御システム、設定支援方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6490971B2 (ja) * 2015-01-14 2019-03-27 株式会社日立製作所 時刻同期システム
JP6502114B2 (ja) * 2015-02-12 2019-04-17 株式会社神戸製鋼所 通信制御システム及び通信制御方法
JP6626015B2 (ja) * 2017-01-04 2019-12-25 株式会社東芝 同期装置、同期方法、同期プログラム、および同期システム
JP6962099B2 (ja) * 2017-09-25 2021-11-05 オムロン株式会社 制御システムおよび制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7399349B1 (ja) * 2022-09-21 2023-12-15 三菱電機株式会社 設定支援装置、制御システム、設定支援方法及びプログラム

Also Published As

Publication number Publication date
WO2022185589A1 (ja) 2022-09-09

Similar Documents

Publication Publication Date Title
JP6962099B2 (ja) 制御システムおよび制御装置
US6157957A (en) Clock synchronization system and method using a continuous conversion function for a communication network
JP5184597B2 (ja) 通信制御装置及び通信・制御システム
JP7484912B2 (ja) 制御システム
JP6192995B2 (ja) 通信装置、通信システム、通信方法およびコンピュータプログラム
JP6523497B1 (ja) マスタ制御装置およびこれを用いた同期通信システム
WO2015128981A1 (ja) プログラマブルコントローラシステム、そのコントローラ
JP2006148907A (ja) 周期的に作動するコミュニケーションシステムにおける時間同期化方法
KR101636496B1 (ko) 신호 동기 시스템, 노드 동기 시스템, 신호 동기 방법, 및 노드 동기 방법
JP6449430B2 (ja) ネットワーク装置用の時刻同期方法、装置及び時刻同期サーバ
JP2019146060A (ja) 通信システム、通信装置および通信方法
JP2018128780A (ja) 演算装置、制御装置および制御方法
WO2022185589A1 (ja) 情報処理装置、方法およびプログラム
JP2021012405A (ja) 制御システム、設定装置およびコンピュータプログラム
WO2021131530A1 (ja) 制御システム
US20190229885A1 (en) Computing device and control system
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
JP7020198B2 (ja) 制御装置および制御システム
Plasberg et al. Towards Distributed Real-Time capable Robotic Control using ROS2
WO2023026431A1 (ja) 通信制御装置、通信制御方法及びプログラム
WO2024079892A1 (ja) データ収集装置、データ収集システム、データベース作成方法及びプログラム
Ring et al. Distributed clock synchronization in discrete event simulators for wireless factory automation
Thibodeaux The specification and implementation of a model of computation
JP7034399B1 (ja) 入力ユニット、制御システム、通信方法及びプログラム
WO2022190416A1 (ja) 制御システム、サポート方法およびプログラム