JP5825446B2 - 信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法 - Google Patents

信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法 Download PDF

Info

Publication number
JP5825446B2
JP5825446B2 JP2014551797A JP2014551797A JP5825446B2 JP 5825446 B2 JP5825446 B2 JP 5825446B2 JP 2014551797 A JP2014551797 A JP 2014551797A JP 2014551797 A JP2014551797 A JP 2014551797A JP 5825446 B2 JP5825446 B2 JP 5825446B2
Authority
JP
Japan
Prior art keywords
reference signal
synchronization
count value
value
unit
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
JP2014551797A
Other languages
English (en)
Other versions
JPWO2014091592A1 (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Application granted granted Critical
Publication of JP5825446B2 publication Critical patent/JP5825446B2/ja
Publication of JPWO2014091592A1 publication Critical patent/JPWO2014091592A1/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/06Clock generators producing several clock signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0682Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

本発明は、所定の信号を同期させるための信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法に関する。
従来、プロセッサ等を用いて所定のプログラムを実行させるような場合に、大規模処理への対応や処理の迅速化、負荷分散等の目的から、複数のプロセッサを用いて処理を実行するマルチプロセッサシステムが知られている。このようなマルチプロセッサシステムでは、複数のプロセッサ間でカウンタ(タイマ)の同期を行うために、主プロセッサから従プロセッサのカウンタに対して割り込み信号等を発生させ、従プロセッサはその割り込み信号に合わせてカウンタの同期を図っている。
また、従来のプラント制御用伝送システム等の産業用ネットワークにおいては、システムを構成する各機器が、リアルタイム性を保証したうえで相互に大容量のデータ交換を行う必要がある。したがって、例えば各機器に搭載されるアプリケーションによるアクセス要求の発生に応じてイベント的に相互アクセスを行うような場合には、ネットワーク負荷がアプリケーションに依存してしまい、リアルタイム性を保証することができない場合がある。
そこで、従来、各機器に仮想的な共有メモリ(コモンメモリ)を設け、更新タイミングでネットワーク上の全ノード(局)へ自ノードデータの送信を行う技術が存在する。このような技術を用いた場合には、受信した各ノードが、そのデータを更新し、アプリケーションにアクセスさせることにより、リアルタイム性を保証したデータ交換方式を実現している。また、従来、上述したデータ交換時にネットワーク上での効率的な同報通信(ブロードキャスト通信)を実現するための手法が提案されている(例えば、特許文献1参照)。
特許文献1では、各ノードの内蔵タイマによる時分割多重アクセス方式とマスタノードからの同期化フレームによるスレーブノードの内蔵タイマ補正を併用している。また、特許文献1に示す手法では、伝送路をバス又はシリアルケーブルで接続されたネットワークとして構成している。
特開2005−159754号公報
ところで、上述したような主プロセッサと従プロセッサ間等でのカウンタ同期補正処理では、主プロセッサから従プロセッサのカウンタに対して直接(ハードウェア的に)リセットさせるのが好ましい。しかしながら、このカウンタは、内部で行う複数のプログラム処理の実行基準となるカウンタであるため、外部により勝手に書き換えられると他の処理に問題が生じ得る。また、カウンタが従プロセッサのCPU(Central Processing Unit)等に内蔵されているような場合には、主プロセッサから直接従プロセッサのカウンタをリセットすることができない。したがって、従来、一旦主プロセッサから従プロセッサに割り込み信号を送信し、従プロセッサがその信号を受信して、所定のソフトウェアを用いて間接的(ソフトウェア的)にカウンタのリセット処理を実行している。
そのような場合に、従プロセッサは、主プロセッサから割り込み信号を受信してから、その信号に対応する自カウンタのリセット処理を実行するまでの間にオーバーヘッド等による遅延時間が発生する。そのため、従来、リセット処理を行ったとしても、主プロセッサと従プロセッサとのカウンタ同期誤差が残ってしまう。
また、ネットワーク間のマスタースレーブ関係にあるノード間のカウンタの同期については、例えば、同期化フレームを受信しタイマをクリアする等の手法が考えられる。しかしながら、上述と同様に、同期化フレーム受信後にファームウェアが介在してカウンタのクリアを行うと、そのオーバーヘッド等の遅延時間によってカウンタに誤差が生じていた。
したがって、従来手法である同期化フレームを用いたノード間の同期手法についても、マスタノードと各スレーブノードとの同期時間の測定の補正をマイコンのファームウェアで行っている場合には、マイコンの処理時間による誤差が発生する。
そこで、カウンタの書き換えによる他の処理への影響を抑えるべく、主プロセッサから従プロセッサに送信される割り込み信号をハードウェア的に計数し、従プロセッサ内のカウンタとの差分に基づいて、従プロセッサのカウンタの計数目標(基準値)を調整することで、主プロセッサと従プロセッサの同期を図ることが考えられる。
主プロセッサのカウンタと従プロセッサのカウンタは、それぞれ電気的特性が異なるので、主プロセッサと従プロセッサとの間で、カウンタのずれがどの程度であるか推定することは難しい。そこで、上記従プロセッサのカウンタの基準値を調整する同期補正処理を割り込み信号毎に行えば、主プロセッサと従プロセッサとの同期が保たれることとなる。しかし、同期補正処理を頻繁に行うと、その処理負荷が増大し、本来実行すべき他の処理に影響を及ぼすおそれがある。
本発明は、上記の点に鑑みて考案されたものであり、処理負荷を抑制しつつ、所定の信号を高精度に同期させる信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法を提供することを目的とする。
上記の課題を解決するために、第1基準信号に従って動作する主モジュールと、第2基準信号に従って動作する従モジュールとを含み、第1基準信号に第2基準信号を同期させる本発明の信号同期システムは、主モジュールは、計数を行い、予め設定された基準値に計数値が達することで第1基準信号を生成する第1基準信号生成部を備え、従モジュールは、計数を行い、基準値に計数値が達することで第2基準信号を生成する第2基準信号生成部と、同期補正処理を行う間隔を計数する間隔計数部と、間隔計数部において同期補正処理を行う補正処理間隔値に計数値が達した後、第1基準信号を受信してリスタートし、計数を行うオーバーヘッド計数部と、間隔計数部において補正処理間隔値に計数値が達した後、第1基準信号の受信に応じて第2基準信号生成部の計数値及びオーバーヘッド計数部の計数値を取得する計数値取得部と、第2基準信号生成部の計数値とオーバーヘッド計数部の計数値との差分を相殺する値を、第2基準信号生成部に一時的に基準値として設定する同期補正部と、を備えることを特徴とする。
なお、本発明の構成要素、表現又は構成要素の任意の組み合わせを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造等に適用したものも本発明の態様として有効である。
本発明によれば、処理負荷を抑制しつつ、所定の信号を高精度に同期させることができる。
第1実施形態における信号同期システムの概略構成の一例を示す図である。 プロセッサモジュールのハードウェア構成の一例を示す図である。 第1実施形態における同期補正処理例を説明するためのタイムチャート図(その1)である。 第1実施形態における同期補正処理例を説明するためのタイムチャート図(その2)である。 第1実施形態における同期補正処理例を説明するためのタイムチャート図(その3)である。 信号同期方法の概略的なシーケンス例を示す図である。 第2実施形態におけるノード同期システムの概略構成の一例を示す図である。 第2実施形態における同期補正処理例を説明するためのタイムチャート図(その1)である。 第2実施形態における同期補正処理例を説明するためのタイムチャート図(その2)である。 第2実施形態における同期補正処理例を説明するためのタイムチャート図(その3)である。 第2実施形態における伝送遅延時間の通知手順の一例を説明するための図である。 第2実施形態におけるマスタノード及びスレーブノードを用いたノード同期システムを含むネットワーク伝送システムの概略構成の一例を示す図である。 ノード同期方法の概略的なシーケンス例を示す図である。
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書及び図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
(本実施形態について)
本実施形態は、例えば、複数のプロセッサモジュールや、少なくとも1のプロセッサモジュールをそれぞれ含む複数のノード、装置、基板といった、主従関係にあるモジュール間でカウンタ(タイマ)同期を行う場合に、主モジュール側からの割り込み信号(カウンタリセット信号)に対し、従モジュール側のオーバーヘッド値を求める。また、本実施形態は、求めたオーバーヘッド値と従モジュール側のカウンタとに基づいて同期補正処理を行う。
ただし、当該同期補正処理を頻繁に実行すると処理負荷が増大するので、本実施形態においては、同期補正処理を行う間隔を計数し、所定の補正処理間隔値毎に定期的(間欠的)に同期補正処理を実行する。
また、本実施形態は、主従関係にある装置をマスタノード及びスレーブノードとした場合に、通信路上の遅延時間(伝送遅延時間)も考慮して同期補正処理を行う。
以下に、本実施形態における信号同期システム、及び、ノード同期システムを好適に実施した形態について、図面を用いて説明する。
(第1実施形態:信号同期システム)
図1は、第1実施形態における信号同期システムの概略構成の一例を示す図である。図1に示す信号同期システム10は、一例として、モジュールとしての複数のプロセッサモジュール(図1の例では、プロセッサモジュール11a〜11c)間で、カウンタ同期を行うためのマルチプロセッサの一例を示している。
図1に示す信号同期システム10は、複数のプロセッサモジュール11a〜11c(以下、必要に応じて「プロセッサモジュール11」という)と、伝送バス12と、I/O(入出力)モジュール13(図1中、13a〜13dで示す)と、外部機器14(図1中、14a〜14dで示す)と、プログラミング装置15とを有する。ここで、図1の例では、説明の便宜上、プロセッサモジュール11aを主プロセッサモジュールとし、プロセッサモジュール11b,11cを従プロセッサモジュールとして、それぞれのプロセッサモジュールとしての主な構成について説明する。ただし、従プロセッサモジュールの数等については図1のように2つに限定されるものではない。
なお、本実施形態においては、上記の構成に限定されるものではなく、1つのプロセッサモジュールが主プロセッサモジュール11aにも従プロセッサモジュール11b,11cにもなり得るように同一の構成を有している。また、各プロセッサモジュール11は、伝送バス12により接続されている。なお、第1実施形態では、伝送バス12による遅延時間は生じていないものとする。
ここで、主プロセッサモジュール11aは、第1基準信号生成部21と、第1演算部22と、記憶部23とを有する。なお、図1の例では、第1基準信号生成部21は後述するCPUに内蔵されているが、これに限定されるものではなく、例えば第1基準信号生成部21とCPUとが別体で構成されていてもよい。また、上述した「内蔵されている」とは、例えば第1基準信号生成部21に対して、CPU内の各機能部(第1基準信号生成部21や第1演算部22)のみがアクセスできることを意味する。
また、従プロセッサモジュール11b,11cは、第2基準信号生成部31と、第2演算部32と、間隔計数部33と、オーバーヘッド計数部34と、計数値取得部35と、同期判定部36と、同期補正部37と、記憶部38とを有する。なお、図1の例では、第2基準信号生成部31がCPUに内蔵されているが、これに限定されるものではなく、例えば第2基準信号生成部31とCPUとが別体で構成されていてもよい。
第1基準信号生成部21は、計数を行い、予め設定された基準値に計数値が達することで第1基準信号を生成する。なお、第1基準信号生成部21は、ハードウェア的なカウンタ(以下、必要に応じて「タイマ」ともいう)として機能する。上述した計数値は、基準値に基づいてサイクリックにカウントされている。図1では、このようなハードウェア的なカウンタを破線で示している。
第1演算部22は、第1基準信号生成部21によって生成された第1基準信号に応じて、記憶部23に記憶されている所定のアプリケーションプログラム等を実行(演算)する。また、第1基準信号は、割り込み信号(カウンタリセット信号)として、伝送バス12を介して従プロセッサモジュール11b,11cにも与えられる(送信される)。
記憶部23は、第1演算部22で演算させる所定のアプリケーションプログラム(シーケンスプログラム)を記憶する。なお、第1演算部22が演算する所定のアプリケーションプログラムは、例えば主プロセッサモジュール11aに接続されたI/Oモジュール13aに指示を与え、I/Oモジュール13aによって外部機器14aを制御する処理である。そのため、記憶部23には、主に自プロセッサモジュール11aに接続されているI/Oモジュール13aや外部機器14aに対して所定の処理を実行するためのプログラムが記憶される。
つまり、主プロセッサモジュール11aは、第1基準信号を所定周期毎に生成し、第1演算部22は、第1基準信号に応じてアプリケーションプログラム(シーケンスプログラム)を実行(演算)することで所定の機器を制御し、当該アプリケーションプログラム(シーケンスプログラム)はサイクリックに実行される。
次に、従プロセッサモジュール11b,11cについて説明するが、従プロセッサモジュール11b,11cは同一の構成であるため、以下の説明では、従プロセッサモジュール11bを用いて説明し、従プロセッサモジュール11cの説明は省略する。
第2基準信号生成部31は、計数を行い、上述した第1基準信号生成部21に設定されている基準値と同一の基準値が設定され、基準値に計数値が達することで第2基準信号を生成する。なお、第2基準信号生成部31は、ハードウェア的なカウンタとして機能する。上述した計数値は、基準値に基づいてサイクリックにカウントされている。付言すると、第1基準信号生成部21と第2基準信号生成部31のそれぞれのカウンタは、フリーランニングカウンタであり、自走している。
第2演算部32は、第2基準信号生成部31によって生成された第2基準信号に応じて、記憶部38に記憶されている所定のアプリケーションプログラム等を実行(演算)する。
なお、第2基準信号生成部31は、例えばCPU内の第2演算部32からしかアクセスすることができないカウンタであり、CPUに内蔵されたカウンタ(CPU内蔵カウンタ)である。すなわち、第2基準信号生成部31は、主プロセッサモジュール11a等の外部からハード的にリセットすることができないカウンタである。
また、第2演算部32は、主プロセッサモジュール11aからの第1基準信号(同期基準信号)を割り込み信号として受信し、後述の同期補正処理を起動する。
間隔計数部33は、計数を行い、同期処理を行う補正処理間隔に相当する補正処理間隔値が予め設定され、補正処理間隔値に計数値が達すると、その旨を示す補正処理開始信号を生成する。
なお、補正処理間隔値は、以下のような計算を通じて設定されている。例えば、当該信号同期システムに要求される加工精度を満たすために許容される、主プロセッサモジュール11aと従プロセッサモジュール11bとの同期誤差が10μsであるとする。この場合、本実施形態では、同期誤差が1〜5μsとなるまでの最短時間を計算する。ここで、1μs以上としたのは、それより短いと、同期補正処理の頻度が高くなって処理負荷が増加するからであり、5μs以下としたのは、10μsに対するマージンを考慮したものである。
このとき、主プロセッサモジュール11aと従プロセッサモジュール11bとで用いられる発振器の周波数が50MHz、発振精度が50ppmであったとする。この条件下において、同期誤差が1μsとなる最短時間は、1クロックの時間×同期許容誤差ずれる発振回数であり、20ns×((1μs/20ns)×(1/50ppm))=20msとなる。同様に、同期誤差が5μsとなる最短時間は、100msとなる。したがって、補正処理間隔値は、20ms〜100msを計数値に換算した値とするとよい。補正処理間隔値をこのような範囲に設定し、同期補正処理を間欠的に実行することで、処理負荷を抑制しつつ、より高い加工精度や生産品質の向上を実現できる。
オーバーヘッド計数部34は、計数を行い、補正処理開始信号の受信後、すなわち、間隔計数部33の計数値が補正処理間隔値に達した後、上述した第1基準信号の受信を起点として、同期補正処理が実行されるまでのオーバーヘッド値を計測する。具体的には、オーバーヘッド計数部34は、第1基準信号を受信してリスタートするハードウェア的なカウンタ(タイマ)として機能する。
オーバーヘッド計数部34はハードウェアで構成されたカウンタなので、第1基準信号に対して直ぐに反応するが、同期補正処理は、例えば、計数値を読み込むための準備が整うまでに時間を要する。この計数値を読み込むための準備が整うまでに要する時間がオーバーヘッドとなる。なお、オーバーヘッドとは、あるイベントが発生してからそのイベントに対する処理(ソフトウェア)が実際に実行されるまでの遅延時間を意味するが、本例ではオーバーヘッド計数部34がリスタートされた起点から同期補正処理が実際に行われるまでの時間であり、これに限定されるものではない。
計数値取得部35は、補正処理開始信号の受信後、すなわち、間隔計数部33の計数値が補正処理間隔値に達した後、第1基準信号の受信に応じ、同期補正処理が実際に実行される時点(開始時点)での、第2基準信号生成部31の計数値及びオーバーヘッド計数部34の計数値を取得する。
同期判定部36は、計数値取得部35によって取得された、第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値とが等しいとき、第1基準信号と第2基準信号とが同期していると判定する。また、同期判定部36は、計数値取得部35によって取得された、第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値とが異なるとき、上述した第1基準信号と第2基準信号とが非同期であると判定する。
また、同期判定部36は、計数値取得部35によって取得された第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値とを時間換算し、双方の時間が等しいときに同期していると判定し、また双方の時間が異なるときには非同期であると判定することもできる。つまり、第1実施形態では、各プロセッサモジュール11間において、各カウンタの1クロックあたりの単位時間が等しくない場合もありえる。したがって、そのような場合には、各計数値を時間に換算し、換算された時間で同期/非同期の判定を行う。
同期補正部37は、同期判定部36が第1基準信号と第2基準信号とが同期していると判定すると、基準値を第2基準信号生成部31に設定する。また、同期補正部37は、同期判定部36が第1基準信号と第2基準信号とが非同期であると判定すると、第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値との差分を相殺する値を求める。具体的に、同期補正部37は、計数値取得部35によって取得された、第2基準信号生成部31の計数値から、オーバーヘッド計数部34の計数値を差し引いて同期補正値を求める。次に、同期補正部37は、求めた同期補正値を基準値から差し引き、差し引いた値を第2基準信号生成部31に新たな基準値として設定する。この新たな基準値とは、同期判定部36が同期を判定したときに使われるタイマ基準値(デフォルトの基準値)に対し、同期判定部36が非同期を判定したときに一時的に使われるタイマ基準値である。
また、同期判定部36が第1基準信号と第2基準信号とが非同期であると判定し、差し引いた値を第2基準信号生成部31に新たな基準値として設定し、その差し引いた値での計数が完了すると、同期補正部37は、速やかに、基準値を第2基準信号生成部31に設定する。こうして、一時的に基準値を同期補正値分だけ変更することができる。ここでは、同期補正値分の補正を一度に実行する例を挙げているが、かかる場合に限らず、複数回に分けて実行してもよい。その場合においても、同期補正部37は、同期補正処理が完了した後、基準値を第2基準信号生成部31に設定する。
なお、同期補正部37は、同期判定部36が第1基準信号と第2基準信号との同期を判定すれば、その都度上述したデフォルトの基準値を第2基準信号生成部31に設定してもよいが、同期が保たれている場合には、一度デフォルトの基準値を設定すれば、何もしなくてもよい。
また、本実施形態では、補正処理間隔毎に同期補正処理が実行されるので、第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値とが異なる可能性が高く、同期判定部36が、第1基準信号と第2基準信号とが非同期であると判定することが多い。そこで、同期判定部36による判定を実行することなく、すなわち、第1基準信号と第2基準信号とが同期であるか非同期であるかに拘わらず、同期補正部37が第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値との差分を相殺する値を求め、その値を第2基準信号生成部31に新たな基準値として設定してもよい。
このように、同期判定部36の構成を省略することにより、判定処理が不要になり、判定に費やす処理分、処理負荷を軽減することが可能となる。
記憶部38は、第2演算部32で演算させる所定のアプリケーションプログラム(シーケンスプログラム)を記憶する。なお、第2演算部32が演算する所定のアプリケーションプログラムは、例えば従プロセッサモジュール11bに接続されたI/Oモジュール13b,13cに指示を与え、I/Oモジュール13b,13cによって外部機器14b,14cを制御する処理である。そのため、記憶部38には、主に自プロセッサモジュール11bに接続されているI/Oモジュール13b,13cや外部機器14b,14cに対して所定の処理を実行するためのプログラムが記憶される。
I/Oモジュール13は、外部機器14等と入出力処理を行う。例えば、I/Oモジュール13は、接続された外部機器14等から得られるデータ等をプロセッサモジュール11に出力(送信)したり、プロセッサモジュール11により演算処理された結果を外部機器14等に出力したり、記憶したりする。つまり、プロセッサモジュール11は、I/Oモジュール13から得られた入力データをアプリケーションプログラムで演算し、この演算結果をI/Oモジュール13に出力データとして与えることにより、外部機器14を制御する。
外部機器14は、例えば各種センサやモータ、記録装置等である。外部機器14は、I/Oモジュール13からの制御信号等に基づいて、データの検出や駆動、データの入出力等を行う。
ここで、基準値は、プロセッサモジュール11a,プロセッサモジュール11b,プロセッサモジュール11cのそれぞれに予め設定されていてもよく、それぞれに外部接続されるプログラミング装置15(設定装置)からも設定することができる。
プログラミング装置15は、ユーザ等が使用するPC(Personal Computer)等にプロセッサモジュール11と通信し、基準値を設定する機能を付加すれば実現できるが、これに限定されるものではなく、専用の設定装置であってもよい。これにより、ユーザ毎に基準値(処理周期)を任意に調整することができる。
ここで、上述の例では、信号同期システム10の一例としてマルチプロセッサについて説明したが、信号同期システム10としては、第1基準信号生成部21と、第2基準信号生成部31と、オーバーヘッド計数部34と、計数値取得部35と、同期判定部36と、同期補正部37とを含んでいればよい。
なお、信号同期システム10の適用例については、マルチプロセッサに限定されるものではなく、例えば主装置側を原子時計による日付・時刻情報のデジタル信号を送信する送信局とし、従装置側を電波時計としたタイマ同期システムとしての応用も可能である。
(プロセッサモジュール11のハードウェア構成例)
次に、プロセッサモジュール11のハードウェア構成例について、図を用いて説明する。図2は、プロセッサモジュール11のハードウェア構成の一例を示す図である。図2に示すプロセッサモジュール11は、入力部41と、出力部42と、CPU43と、FPGA44と、メモリ45と、外部インタフェース46とを有し、これらは共通バスBにより接続されている。
入力部41は、例えばユーザ等からのプログラムの実行等、各種操作信号を入力する。なお、入力部41は、例えばユーザ等が操作するキーボードや、マウス、タッチパネル等のポインティングデバイスを有していてもよく、音声等により入力する場合には、音声入力デバイスを有していてもよい。
出力部42は、本実施形態における処理を行うプロセッサモジュール11を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、CPU43が実行する制御プログラムの実行経過や結果等を表示する。
CPU43は、OS(Operating System)等の制御プログラム、及びメモリ45に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、プロセッサモジュール11全体の処理を制御することで本実施形態における各処理を実現する。また、CPU43は、メモリ45と協働して、上述した第1演算部22、第2演算部32、計数値取得部35、同期判定部36、同期補正部37として実質的に機能し、第1基準信号生成部21、第2基準信号生成部31を内蔵する。なお、プログラム実行中に必要な各種情報等は、メモリ45から取得し、実行結果等をメモリ45に格納してもよい。
FPGA(Field−Programmable Gate Array)44は、論理回路を書き換え可能な集積回路である。FPGA44は、CPU43を補助する様々な論理回路で構成され、本実施形態では、特に、間隔計数部33、オーバーヘッド計数部34として機能する。ただし、間隔計数部33はソフトウェアで処理されてもよい。
メモリ45は、CPU43により読み出された実行プログラム等を格納する。なお、メモリ45は、ROM(Read Only Memory)やRAM(Random Access Memory)等からなる。また、メモリ45は、補助記憶装置として、ハードディスク等のストレージ手段を有していてもよい。また、メモリ45は、本実施形態における実行プログラムやコンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行う。なお、メモリ45は、上述した記憶部23,38等に対応する。
外部インタフェース46は、伝送バス12等を介して他のプロセッサモジュール11間とのデータや制御信号の送受信を行う。また、外部インタフェース46は、接続されたI/Oモジュール13とのデータや制御信号の送受信等も行う。
上述したハードウェア構成により、本実施形態における同期補正処理を実行することが可能となる。また、実行プログラムをインストールすることにより、汎用のパーソナルコンピュータ等で本実施形態における同期補正処理を容易に実現することが可能となる。
次に、第1実施形態における同期補正処理例について以下に説明する。
(第1実施形態における同期補正処理例)
図3〜図5は、第1実施形態における同期補正処理例を説明するためのタイムチャート図(その1〜その3)である。図3〜図5に示す例では、主プロセッサモジュール11aと、従プロセッサモジュール11bとの間における計数値の同期例を示している。なお、第1実施形態における基準値(処理周期)は、1000μsとするが、これに限定されるものではなく、例えば上述したプログラミング装置15により適宜設定を変更することができる。
図3では、主プロセッサモジュール11aの第1基準信号生成部21が計数を行っている。その計数値が図3の(1)時点で基準値に達すると、第1基準信号を出力する。そして、第1演算部22は、当該第1基準信号に応じて所定の処理を実行する。図3中、ハッチングで示した三角形の領域は、計数値の推移を示し、時間の経過に従い計数値が増加し、計数目標(例えば基準値)に達するとリセットされる。
また、従プロセッサモジュール11bの第2基準信号生成部31が計数を行っている。その計数値が図3の(2)時点で基準値に達すると、第2基準信号を出力する。そして、第2演算部32は、当該第2基準信号に応じて所定の処理を実行する。このように、主プロセッサモジュール11a及び従プロセッサモジュール11bでは、それぞれ、独立した第1基準信号及び第2基準信号に応じて所定の処理が遂行される。
また、従プロセッサモジュール11bでは、間隔計数部33が計数を行い、計数値が補正処理間隔値に達すると(図3の(3))、補正処理開始信号を生成する。かかる補正処理開始信号に応じて同期補正処理の準備が開始される。
主プロセッサモジュール11aで生成される第1基準信号は、割り込み信号として従プロセッサモジュール11bに送信されている。従プロセッサモジュール11bは、第1基準信号を割り込みとして受信し、ソフトウェアによる同期補正処理を起動させている(図3の(4))。これと共に従プロセッサモジュール11bのオーバーヘッド計数部34は、当該ハードウェアによるカウンタの計数値をクリアしてリスタートしている(図3の(5))。続いて、同期補正処理の準備が整うと、図3の(6)時点で、計数値取得部35は、第2基準信号生成部31から計数値を取得する(図3の(7))と共に、オーバーヘッド計数部34から計数値を取得する(図3の(8))。
同期判定部36は、計数値取得部35によって与えられた計数値を時間に換算する。ここでは、例えば、第2基準信号生成部31の計数値から300μsを得、オーバーヘッド計数部34の計数値から300μsを得たとする。こうして、第1基準信号の割り込みの起点から、同期補正処理において計数値が取得されるまでのオーバーヘッドを計測すると共に、その時点の第2基準信号生成部31の計数値を取得することができる。第1基準信号と第2基準信号とが同期している場合、かかる計数値は等しくなるはずである。
同期判定部36は、計数値取得部35から得た、第2基準信号生成部31の計数値(300μs)とオーバーヘッド計数部34の計数値(300μs)とを比較する。この場合、同期判定部36は、双方が同じ値なので第1基準信号と第2基準信号とが同期していると判定する。
同期判定部36によって第1基準信号と第2基準信号とが同期していると判定されたため、同期補正部37は、通常通り、基準値1000μsを第2基準信号生成部31に設定している(この時点で第2基準信号生成部31は、リスタートしていない)。そして、第2基準信号生成部31は、図3の(9)の時点で計数値が基準値1000μsに達したため、リスタートしている。
なお、第2基準信号生成部31については、上述したCPU43に内蔵されているが、本実施形態においては、これに限定されるものではなく、CPU43と別体であってもよい。
また、付言しておくが、図3に示す同期補正処理の中には、計数値取得部35、同期判定部36、同期補正部37のプログラムの処理が含まれている。
図4は、従プロセッサモジュール11bのカウンタが、主プロセッサモジュール11aのカウンタより3μs遅れている場合を示している。
図4では、従プロセッサモジュール11bの間隔計数部33が計数を行い、計数値が補正処理間隔値に達すると(図4の(1))、補正処理開始信号を生成する。かかる補正処理開始信号に応じて同期補正処理の準備が開始される。
主プロセッサモジュール11aの第1基準信号生成部21は、計数値が基準値に達したため、1000μs毎に第1基準信号を出力している。従プロセッサモジュール11bは、補正処理開始信号が生成された後、第1基準信号を割り込みとして受信し、ソフトウェアによる同期補正処理を起動させる(図4の(2))。これと共に従プロセッサモジュール11bのオーバーヘッド計数部34は、当該ハードウェアによるカウンタの計数値をクリアしてリスタートしている(図4の(3))。続いて、同期補正処理の準備が整うと、図4の(4)時点で、計数値取得部35は、第2基準信号生成部31から計数値を取得する(図4の(5))と共に、オーバーヘッド計数部34から計数値を取得する(図4の(6))。
同期判定部36は、計数値取得部35によって与えられた計数値を時間に換算する。ここでは、例えば、第2基準信号生成部31の計数値から297μsを得、オーバーヘッド計数部34の計数値から300μsを得たとする。同期判定部36は、両計数値を比較し、両計数値が異なる値なので第1基準信号と第2基準信号とが非同期であると判定する。
同期判定部36によって非同期が判定されたため、同期補正部37は、第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値との差分が相殺されるように、第2基準信号生成部31に臨時の基準値を設定する。具体的には、同期補正部37は、「基準値(処理周期)−(オーバーヘッド計数部34の計数値−第2基準信号生成部31の計数値)」という式にて第2基準信号生成部31の計数値のリスタート値(リセット値)を求め、求めた計数値を臨時の基準値として第2基準信号生成部31にセットする。この例の場合、臨時の基準値は1000μs−(300μs−297μs)=997μsとなる。そして、第2基準信号生成部31は、図4の(7)の時点で計数値が臨時の基準値997μsに達したため、リスタートしている。ちなみに、オーバーヘッド計数部34の計数値−第2基準信号生成部31の計数値の値が同期補正値である。
このようにすることにより、第1実施形態は、第2サイクルに対し、次の第3サイクルの第1基準信号の出力タイミングと略同タイミングで第2基準信号生成部31をリスタートすることができる。したがって、第1実施形態は、第1基準信号と第2基準信号とを同期させることができる。なお、図4の場合、第3サイクル以降は、基準値が1000μsに設定される。
図5は、従プロセッサモジュール11bのカウンタが、主プロセッサモジュール11aのカウンタより3μs進んでいる場合を示している。
図5では、従プロセッサモジュール11bの間隔計数部33が計数を行い、計数値が補正処理間隔値に達すると(図5の(1))、補正処理開始信号を生成する。かかる補正処理開始信号に応じて同期補正処理の準備が開始される。
主プロセッサモジュール11aの第1基準信号生成部21は、計数値が基準値に達したため、1000μs毎に第1基準信号を出力している。従プロセッサモジュール11bは、補正処理開始信号が生成された後、第1基準信号を割り込みとして受信し、ソフトウェアによる同期補正処理を起動させている(図5の(2))。これと共に従プロセッサモジュール11bのオーバーヘッド計数部34は、当該ハードウェアによるカウンタの計数値をクリアしてリスタートしている(図5の(3))。続いて、同期補正処理の準備が整うと、図5の(4)時点で、計数値取得部35は、第2基準信号生成部31から計数値を取得する(図5の(5))と共に、オーバーヘッド計数部34から計数値を取得する(図5の(6))。
同期判定部36は、計数値取得部35によって与えられた計数値を時間に換算する。ここでは、例えば、第2基準信号生成部31の計数値から303μsを得、オーバーヘッド計数部34の計数値から300μsを得たとする。同期判定部36は、両計数値を比較し、両計数値が異なる値であるため、第1基準信号と第2基準信号とが非同期であると判定する。
同期判定部36によって非同期が判定されたため、同期補正部37は、第2基準信号生成部31の計数値とオーバーヘッド計数部34の計数値との差分が相殺されるように、第2基準信号生成部31に臨時の基準値を設定する。具体的には、同期補正部37は、図4の説明と同様に計算して、臨時の基準値を求め、第2基準信号生成部31にセットする。この例の場合、臨時の基準値は、1000μs−(300μs−303μs)=1003μsとなる。そして、第2基準信号生成部31は、図4の(7)の時点で計数値が臨時の基準値1003μsに達したため、リスタートしている。ちなみに、オーバーヘッド計数部34の計数値−第2基準信号生成部31の計数値の値が同期補正値である。
このようにすることにより、第1実施形態は、第2サイクルに対し、次の第3サイクルの第1基準信号の出力タイミングと略同タイミングで第2基準信号生成部31をリスタートすることができる。したがって、本実施形態の信号同期システムは第1基準信号と第2基準信号とを同期させることができる。なお、図5の第3サイクル以降は、基準値が1000μsに設定される。以上のように、第1実施形態では、主プロセッサモジュール11aのカウンタ(タイマ)に対して従プロセッサモジュール11bのカウンタ(タイマ)が遅れた場合も進んだ場合も適切にカウンタ同期を実現することができる。
(信号同期方法のシーケンス例)
図6は、信号同期方法の概略的なシーケンス例を示す図である。図6の例では、説明の便宜上、主プロセッサモジュール11aと従プロセッサモジュール11bとを用いた同期について説明するが、本実施形態においてはこれに限定されるものではなく、1つの主プロセッサモジュールに対して複数の従プロセッサモジュールを同期させることができる。
図6のカウンタ同期処理において、まず、主プロセッサモジュール11aの第1基準信号生成部21は、第1基準信号を生成し(S01)、従プロセッサモジュール11bの第2基準信号生成部31は、第2基準信号を生成する(S02)。なお、この処理は、ハードウェア的にサイクリックに動作されている。また、主プロセッサモジュール11aは、S01の処理で得られた第1基準信号を従プロセッサモジュール11bにも送信している。したがって、従プロセッサモジュール11bは、常に第1基準信号を受信できる状態にある。
また、従プロセッサモジュール11bの間隔計数部33は、補正処理間隔を計数し、計数値が補正処理間隔値に達すると、補正処理開始信号を生成して同期補正処理の準備を開始する(S03)。
間隔計数部33の計数値が補正処理間隔値に達した後、主プロセッサモジュール11aで送信された第1基準信号を、従プロセッサモジュール11bが受信すると(S04)、ソフトウェアによる同期補正処理を起動させる(S05)と共に、オーバーヘッド計数部34をリスタートする(S06)。そして、計数値取得部35は、第2基準信号生成部31とオーバーヘッド計数部34との両計数値を取得し(S07)、同期判定部36は、かかる両計数値に基づいて同期判定を行い(S08)、非同期であると判定されれば、同期補正部37が同期補正を行う(S09)。
こうして、処理負荷を抑制しつつ、所定の信号を高精度に同期させることができる。
(第2実施形態:ノード同期システム)
第2実施形態は、上述した第1実施形態における伝送バス12による遅延時間を含めて同期補正処理を実行することが特徴である。図7は、第2実施形態におけるノード同期システムの概略構成の一例を示す図である。図7に示すノード同期システム50は、ノード51a〜51c等の複数のノードの間で、カウンタ同期を行う一例である。
ノード同期システム50は、複数のノード51a〜51c(以下、必要に応じて「ノード51」という)と、通信路(通信ネットワーク)52と、I/O(入出力)モジュール53(図7中、53a〜53dで示す)と、外部機器54(図7中、54a〜54dで示す)と、プログラミング装置55とを有する。すなわち、ノード同期システム50は、マスタノード51aと、スレーブノード51b,51cとが通信ネットワークとしての通信路52を介して接続されている。
ここで、便宜上、ノード51aをマスタノードとし、ノード51b,51cをスレーブノードとして、それぞれのノード固有の構成について説明するが、これに限定されるものではなく、各ノードがマスタノードにもスレーブノードにもなりえるように両方の構成を兼ね備えている。なお、第2実施形態では、通信路52による伝送遅延時間が生じているものとする。
ここで、第2実施形態(図7)と第1実施形態(図1)との違いについて説明しておく。マスタノード51aは、第1実施形態での主プロセッサモジュール11aに相当し、スレーブノード51b,51cは、第1実施形態での従プロセッサモジュール11b,11cに相当する。また、プログラミング装置55は、第1実施形態でのプログラミング装置15と実質的に等しく、更に、I/Oモジュール53a〜53dは、第1実施形態でのI/Oモジュール13a〜13dと実質的に等しい。また、外部機器54a〜54dは、第1実施形態での外部機器14a〜14dと実質的に等しい。よって、以下の説明では第1実施形態と同じ構成のものについてはその説明を割愛する。
マスタノード51aは、第1基準信号生成部61(第1の実施形態の第1基準信号生成部21に対応)と、第1演算部62(第1実施形態の第1演算部22に対応)と、記憶部63(第1実施形態の記憶部23に対応)と、間隔計数部64(第1の実施形態の間隔計数部33に対応)と、伝送遅延時間通知部65と、同期化フレーム通知部66とを有する。
マスタノード51aの第1実施形態での主プロセッサモジュール11aとの主な相違点は、第1実施形態では従プロセッサモジュール11bに設けられていた間隔計数部33が間隔計数部64として加わったこと、及び、新たに、伝送遅延時間通知部65と、同期化フレーム通知部66とが加わったことである。よって、以下の説明においては、第2実施形態の主要部分を説明することとし、第1実施形態と同様の動きについては割愛する。
以下、第2実施形態での一例を説明する。第2実施形態において、間隔計数部64は、計数を行い、同期処理を行う補正処理間隔に相当する補正処理間隔値が予め設定され、補正処理間隔値に計数値が達すると、その旨を示す補正処理開始信号を生成する。なお、補正処理間隔値は第1の実施形態と実質的に等しいので、ここではその説明を省略する。
なお、ここでは、マスタノード51a側で補正処理間隔を計っているが、スレーブノード51b側で補正処理間隔を計ってもよい。その場合、スレーブノード51bにおいて補正処理間隔値に計数値が達すると、マスタノード51aに補正処理開始信号を送信し、同期補正処理を開始することとなる。
補正処理開始信号の受信後、マスタノード51aの伝送遅延時間通知部65は、伝送遅延時間を算出するために伝送遅延時間リクエストフレームをスレーブノード51b,51cに送信する。この伝送遅延時間リクエストフレームは、後述の同期化フレームとフォーマットが実質的に等しく、同期化フレーム内の所定部分(例えば、コマンド部)のデータが異なるフレームである。かかる伝送遅延時間リクエストフレームは、第1基準信号生成部61によって生成された第1基準信号に同期して送信される。
続いて、伝送遅延時間通知部65は、伝送遅延時間リクエストフレームに応答したスレーブノードからの受信完了フレームを受信する。そして、伝送遅延時間通知部65は、応答フレーム受信時の時刻と伝送遅延時間リクエストフレームを送信したときの時刻との差分から、マスタノード51aとスレーブノード51b,51c間の往復伝送遅延時間を計算する。そして、伝送遅延時間通知部65は、計算した往復伝送遅延時間を含む伝送遅延時間通知フレームを次の第1基準信号に同期してスレーブノード51b,51cに送信することで、スレーブノード51b,51cに通信路52による遅延時間を通知する。
往復伝送遅延時間を通知した後、マスタノード51aは、第1基準信号に基づき(第1基準信号に同期して)、予め用意された同期化フレームを、通信路52を介してスレーブノード51b,51cに送信する。なお、この処理は、同期化フレーム通知部66が実行する。後に詳述するが、同期化フレームは、スレーブノード51b,51cの第2基準信号生成部71の計数値をマスタノード51aの第1基準信号生成部61の計数値に合わせるための同期基準信号である。
次に、スレーブノード51b,51cについて説明する。スレーブノード51b,51cは、第2基準信号生成部71(第1の実施形態の第2基準信号生成部31に対応)と、第2演算部72(第1の実施形態の第2演算部32に対応)と、オーバーヘッド計数部74(第1の実施形態のオーバーヘッド計数部34に対応)と、計数値取得部75(第1の実施形態の計数値取得部35に対応)と、同期判定部76(第1の実施形態の同期判定部36に対応)と、同期補正部77(第1の実施形態の同期補正部37に対応)と、記憶部78(第1の実施形態の記憶部38に対応)と、受信完了通知部79と、フレーム受信部80とを有する。なお、CPU43には、第2基準信号生成部71が内蔵されている。スレーブノード51b,51cは、同一の構成であるため、以下の説明では、スレーブノード51bを用いて説明し、スレーブノード51cの説明は省略する。
第1実施形態のプロセッサモジュール11bとの主な相違点は、同期判定部76が第1実施形態の同期判定部36と相違すること、受信完了通知部79とフレーム受信部80とが加わったことである。ただし、他の構成要素については、第1の実施形態と実質的に等しいので、ここでは、その説明を割愛する。以下、通信路52の伝送遅延時間を含めたスレーブノード51bの同期補正処理について説明する。
受信完了通知部79は、上述した伝送遅延時間リクエストフレームをマスタノード51aから受信し、その伝送遅延時間リクエストフレームに応じて、受信完了フレームをマスタノード51aに送信する。
フレーム受信部80は、マスタノード51aによって送信された上述した伝送遅延時間通知フレームを受信し、そのフレームに含まれる往復伝送遅延時間(値)を上述したメモリ45等に退避する。このようにして、スレーブノード51bはマスタノード51aとスレーブノード51b間との往復伝送遅延時間をマスタノード51aから得る。
マスタノード51aから往復伝送遅延時間を得たスレーブノード51bは、同期化フレームを受信し、第2演算部72に割り込みを発生させる。割り込みを受けた第2演算部72は、後述の同期補正処理を起動する。なお、本実施形態においては、往復伝送遅延時間を得ずに同期化フレームを受信した場合でも、往復伝送遅延時間をゼロ(0)として同期補正処理を起動してよいことは勿論である。また、同期化フレームを受信してから第2演算部72に割り込みが上がるスピードを勘案すると、不図示であるが、同期化フレームの受信手段としては、FPGA44等のハードウェアロジックを使うことが好ましい。
また、オーバーヘッド計数部74は、上述した同期化フレームの受信を起点として、同期補正処理が実行されるまでのオーバーヘッド値を計測する。具体的には、オーバーヘッド計数部74には、同期化フレームを受信してリスタートするハードウェア的なカウンタ(タイマ)として機能する。
計数値取得部75は、同期化フレームの受信に応じ、実際に同期補正処理が実行される開始時点での、第2基準信号生成部71の計数値及びオーバーヘッド計数部74の計数値を取得する。
同期判定部76は、上述した往復伝送遅延時間を2で除算して通信路52の片道の伝送遅延時間を求め、更にこの片道の伝送遅延時間と上述したオーバーヘッド計数部74の計数値を時間換算した値とを加えた総合遅延時間を求める。そして、同期判定部76は、求めた総合遅延時間と、計数値取得部75によって取得された第2基準信号生成部71の計数値を時間換算した値とを比較する。この比較の結果、双方が等しいとき、同期判定部76は、第1基準信号と第2基準信号とが同期していると判定し、双方が相違するとき、第1基準信号と第2基準信号とが非同期であると判定する。ここで同期とは、第1基準信号生成部61の計数値と第2基準信号生成部71の計数値が等しいことを意味する。
なお、同期判定部76は、第1実施形態の同期判定部36と同様に、各カウンタの計数値を時間に換算して比較することで、同期/非同期を判定することも勿論可能である。
第2実施形態では、補正処理間隔毎に、同期判定部76によって第1基準信号と第2基準信号とが同期であると判定されると、同期補正部77は、基準値を第2基準信号生成部71に設定する。また、第1基準信号と第2基準信号とが非同期であると判定されると、第2基準信号生成部71の計数値と、総合遅延時間値との差分を相殺する値を求める。具体的に、同期補正部77は、計数値取得部75によって取得された、第2基準信号生成部71の計数値から総合遅延時間値を差し引いて同期補正値を求める。続いて、同期補正部77は、求めた同期補正値を基準値から差し引き、差し引いた値を第2基準信号生成部71に新たな基準値として設定する。この新たな基準値とは、同期判定部76が同期を判定したときに第2基準信号生成部71に設定される基準値(デフォルトの基準値)に対し、第2基準信号生成部71のタイマ値を補正するために一時的に設定される(臨時の基準値)。
なお、本実施形態は、デフォルトの基準値が第2基準信号生成部71に設定され、同期が保たれていれば、以後デフォルトの基準値を書き換えしなくてよいことは勿論である。
このようにして本実施形態は、同期基準信号(同期化フレーム)が通信路52を介して通知される際の伝送遅延時間の影響をも考慮した同期補正処理を行うことができる。すなわち、第2実施形態では、ノード間の伝送遅延時間とスレーブノード51b,51cのオーバーヘッドとを含めた計数値の補正を行うことができ、高精度なノード間の同期を実現できる。
(第2実施形態における同期補正処理例)
図8〜図10は、第2実施形態における同期補正処理例を説明するためのタイムチャート図であり、マスタノード51aとスレーブノード51b間での計数値の同期例である。なお、第2実施形態における基準値(処理周期)は、第1実施形態と同様1000μsとし、この基準値はプログラミング装置55により適宜変更することができる。
図8では、マスタノード51aの第1基準信号生成部61が計数を行っている。その計数値が図8の(1)時点で基準値に達すると、第1基準信号を出力する。そして、第1演算部62は、当該第1基準信号に応じて所定の処理を実行する。
また、スレーブノード51bの第2基準信号生成部71が計数を行っている。その計数値が図8の(2)時点で基準値に達すると、第2基準信号を出力する。そして、第2演算部72は、当該第2基準信号に応じて所定の処理を実行する。このように、マスタノード51a及びスレーブノード51bでは、それぞれ、独立した第1基準信号及び第2基準信号に応じて所定の処理が遂行される。
また、マスタノード51aでは、間隔計数部64が計数を行い、計数値が補正処理間隔値に達すると(図8の(3))、補正処理開始信号を生成する。かかる補正処理開始信号に応じてマスタノード51aにおける同期補正処理が開始される。
同期補正処理が開始すると、マスタノード51aの伝送遅延時間通知部65は、伝送遅延時間を算出するために伝送遅延時間リクエストフレームを送信する(図8の(4))。スレーブノード51bの受信完了通知部79は、伝送遅延時間リクエストフレームをマスタノード51aから受信すると、その伝送遅延時間リクエストフレームに応じて、受信完了フレームをマスタノード51aに送信する(図8の(5))。
続いて、マスタノード51aの伝送遅延時間通知部65は、受信完了フレームに応じて、マスタノード51aとスレーブノード51b間の往復伝送遅延時間を計算し、計算した往復伝送遅延時間(400μs)を含む伝送遅延時間通知フレームを送信する(図8の(6))。スレーブノード51bのフレーム受信部80は、伝送遅延時間通知フレームを受信すると、そのフレームに含まれる往復伝送遅延時間(値)をメモリ45等に退避する(図8の(7))。
同期補正処理が開始後、マスタノード51aの同期化フレーム通知部66は、同期化フレームを割り込み信号としてスレーブノード51bに送信する(図8の(8))。そして、スレーブノード51bは、同期化フレームを通信路52の片道の伝送遅延時間(200μs)を経て図8の(9)の時点で受信し、スレーブノード51bにおけるソフトウェアによる同期補正処理を起動している。また、同期化フレームの受信に伴い、オーバーヘッド計数部74のハードウェアによるカウンタがクリアされリスタートしている(図8の(10))。
続いて、同期補正処理の準備が整うと、図8の(11)時点で、計数値取得部75は、第2基準信号生成部71から計数値を取得する(図8の(12))と共に、オーバーヘッド計数部74から計数値を取得する(図8の(13))。
続いて、計数値取得部75は、第2基準信号生成部71の計数値を参照して時間に換算し400μsを取得している。これに引き続き、同期判定部76は、往復伝送遅延時間(400μs)から片道の伝送遅延時間200μsを求め、求めた伝送遅延時間とオーバーヘッド計数部74の計数値を時間換算した200μsとを加算し総合遅延時間400μsを求めている。そして、同期判定部76は、総合遅延時間400μsと計数値取得部75が取得した、第2基準信号生成部71の計数値を時間換算した400μsとを比較し、双方が等しいので第1基準信号と第2基準信号とが同期していると判定している。
同期判定部76によって第1基準信号と第2基準信号とが同期していると判定されたため、同期補正部77は、通常通り、基準値1000μsを第2基準信号生成部71に設定している(設定時点で第2基準信号生成部71はリスタートしていない)。そして、第2基準信号生成部71は、図8の(14)の時点で計数値が基準値1000μsに達したため、リスタートしている。
図9は、スレーブノード51bのカウンタが、マスタノード51aのカウンタより3μs遅れている場合を示している。
図9において、マスタノード51aの間隔計数部64の計数値が補正処理間隔値に達し、同期補正処理が開始されてから、スレーブノード51bのフレーム受信部80が伝送遅延時間通知フレームに含まれる往復伝送遅延時間(値)をメモリ45等に退避するまでの処理は、図8の処理と実質的に等しいので、ここでは、その説明を省略する。
同期補正処理が開始後、図9の(1)時点で、マスタノード51aの同期化フレーム通知部66は、同期化フレームを割り込み信号としてスレーブノード51bに送信する。そして、スレーブノード51bは、同期化フレームを通信路52の片道の伝送遅延時間(200μs)を経て図9(2)の時点で受信し、スレーブノード51bにおけるソフトウェアによる同期補正処理を起動している。また、同期化フレームの受信に伴い、オーバーヘッド計数部74のカウンタがクリアされリスタートしている(図9の(3))。
続いて、同期補正処理の準備が整うと、図9の(4)時点で、計数値取得部75は、第2基準信号生成部71から計数値を取得する(図9の(5))と共に、オーバーヘッド計数部74から計数値を取得する(図9の(6))。
続いて、計数値取得部75は、第2基準信号生成部71の計数値を参照して時間に換算し397μsを取得している。これに引き続き、同期判定部76は、往復伝送遅延時間(400μs)から片道の伝送遅延時間200μsを求め、求めた伝送遅延時間とオーバーヘッド計数部74の計数値を時間換算した200μsとを加算し総合遅延時間400μsを求めている。そして、同期判定部76は、総合遅延時間400μsと計数値取得部75が取得した、第2基準信号生成部71の計数値を時間換算した397μsとを比較し、双方が相違するので第1基準信号と第2基準信号とが非同期であると判定する。
同期判定部76によって第1基準信号と第2基準信号とが非同期であると判定されたため、同期補正部77は、第2基準信号生成部71に臨時の基準値を設定している。具体的には、同期補正部77は、「基準値(処理周期)−(総合遅延時間−第2基準信号生成部71の計数値)」という式にて第2基準信号生成部71のリスタート値(リセット値)を求め、求めた計数値を臨時の基準値として第2基準信号生成部71にセットする。この例の場合、臨時の基準値は1000μs−(400μs−397μs)=997μsとなる。そして、第2基準信号生成部71は、図9の(7)の時点で計数値が臨時の基準値997μsに達したため、リスタートしている。ちなみに、総合遅延時間−第2基準信号生成部71の計数値の値が同期補正値である。
図10は、スレーブノード51bのカウンタが、マスタノード51aのカウンタより3μs進んでいる場合を示している。
図10において、マスタノード51aの間隔計数部64の計数値が補正処理間隔値に達し、同期補正処理が開始されてから、スレーブノード51bのフレーム受信部80が伝送遅延時間通知フレームに含まれる往復伝送遅延時間(値)をメモリ45等に退避するまでの処理は、図8及び図9の処理と実質的に等しいので、ここでは、その説明を省略する。
同期補正処理が開始後、図10の(1)時点で、マスタノード51aの同期化フレーム通知部66は、同期化フレームを割り込み信号としてスレーブノード51bに送信する。そして、スレーブノード51bは、同期化フレームを通信路52の片道の伝送遅延時間(200μs)を経て図10(2)の時点で受信し、スレーブノード51bにおけるソフトウェアによる同期補正処理を起動している。また、同期化フレームの受信に伴い、オーバーヘッド計数部74のカウンタがクリアされリスタートしている(図10の(3))。
続いて、同期補正処理の準備が整うと、図10の(4)時点で、計数値取得部75は、第2基準信号生成部71から計数値を取得する(図10の(5))と共に、オーバーヘッド計数部74から計数値を取得する(図10の(6))。
続いて、計数値取得部75は、第2基準信号生成部71の計数値を参照して時間に換算し403μsを取得している。これに引き続き、同期判定部76は、往復伝送遅延時間(400μs)から片道の伝送遅延時間200μsを求め、求めた片道の伝送遅延時間とオーバーヘッド計数部74の計数値を時間換算した200μsとを加算し総合遅延時間400μsを求めている。そして、同期判定部76は、総合遅延時間400μsと計数値取得部75が取得した、第2基準信号生成部71の計数値を時間換算した403μsとを比較し、双方が相違するので第1基準信号と第2基準信号とが非同期であると判定する。
同期判定部76によって第1基準信号と第2基準信号とが非同期であると判定されたため、同期補正部77は、第2基準信号生成部71に臨時の基準値を設定している。この例の場合、臨時の基準値は1000μs−(400μs−403μs)=1003μsとなる。そして、第2基準信号生成部71は、図10の(7)の時点で計数値が臨時の基準値1003μsに達したため、リスタートしている。
なお、図9及び図10の例の場合、第3サイクルで、マスタ側のカウンタとスレーブ側のカウンタとが同期することになるため、以後、同期補正部77は、元の基準値1000μsを第2基準信号生成部71に設定している(設定時点で第2基準信号生成部71は、リスタートしていない)。そして、第2基準信号生成部71は、計数値が基準値1000μsに達したときにリスタートする。すなわち、第2実施形態は、第3サイクルに対し、次の第4サイクルのマスタ側のカウンタのリスタートと略同タイミングでスレーブ側のカウンタをリスタートすることができるため、マスタ側のカウンタの値とスレーブ側のカウンタの値とを略等しい値に合わせることができる。
なお、同期補正処理には、第1実施形態と同様に計数値取得部75、同期判定部76、同期補正部77のプログラムの処理が含まれている。
また、スレーブノード51bの第2基準信号生成部71は、CPU43に内蔵されていることを前提に説明したが、これに限定されるものではない。すなわち、第2基準信号生成部71は、CPU43と別体であっても実現可能である。ただ、第2基準信号生成部71がCPU43に内蔵されていることにより、CPU43の外部で生成された所定の信号で第2基準信号生成部71をハード的にリセットすることができない。言い換えれば、第2基準信号生成部71はプログラムが介在してその動作が制御されるカウンタである。このため、本実施形態は第2基準信号生成部71のリセット処理(リスタート処理)をプログラムで実行する必要があり、そのオーバーヘッドが同期誤差に繋がる。よって、本実施形態ではオーバーヘッドを計測するという構成が必要になる(第1実施形態でも同様)。
また、第2実施形態において、同期補正処理は同期化フレーム受信によって起動される割り込み処理である。
また、上記説明においてスレーブノード51bは、例えば、往復伝送遅延時間をマスタノード51aから得て保持し、保持した往復伝送遅延時間を同期補正処理の際に活用する。これとは別に、マスタノード51aが往復伝送遅延時間を同期化フレームに含めてスレーブノード51bに送信し、これを受信したスレーブノード51bが同期化フレームに含まれる往復伝送時間を活用する方法もある。このようにすることで、マスタノード51aは状況に応じた往復伝送遅延時間をスレーブノード51bに適宜通知することができるため、スレーブノード51bでは状況に応じた往復伝送遅延時間をタイムリーに活用できる。
また、伝送遅延時間通知部65について、往復伝送遅延時間をスレーブノード51bに通知するよう説明したが、これに限定されるものではない。例えば伝送遅延時間通知部65は、算出した往復伝送遅延時間を半分にして片道の伝送遅延時間を求め、求めた片道の伝送遅延時間をスレーブノード51bに通知するようにしてもよい。この場合、スレーブノード51bの同期判定部76は、与えられた片道の伝送遅延時間をそのまま使って総合遅延時間を求めるようにすればよい。
以上の説明のように第2実施形態では、通信路52による信号の伝送遅延時間を含めて第1基準信号と第2基準信号とを同期させることができる。
(同期補正処理における伝送遅延時間の通知手順について)
次に、上述した同期補正処理における伝送遅延時間の通知手順について説明する。図11は、第2実施形態における伝送遅延時間の通知手順の一例を説明するための図である。なお、図11の例では、上述したマスタノード51aと、スレーブノード51b,51cとを有し、各ノード51は、通信路52を介して信号の送受信が可能な状態で接続されているものとする。また、以下の説明では、マスタノード51aが各ノード51間の通信路52による信号の伝送遅延時間を取得する例を示す。
また、図11に示す四角はフレームを示し、各ノード51に対する線上の四角は送信フレームを示し、線下の四角は受信フレームを示している。また、図11に示すフレームは、伝送遅延時間リクエストフレーム81(図11における「REQ*」(*は、例えば各スレーブノードの識別子(例えばb、c)を示す(以下同様))と、受信完了フレーム82(図11における「REC*」)と、伝送遅延時間通知フレーム83(図11における「SET*」)と、伝送遅延時間通知フレーム83に対する応答フレーム84(図11における「ANS*」)とを有する。
図11の例において、マスタノード51aは、スレーブノード51bに対する伝送遅延時間リクエストフレーム81b(REQb)をマスタノード同期基準にしたがって通信路52上にブロードキャスト送信する。このとき、伝送遅延時間リクエストフレーム81bには、スレーブノード51bに対する伝送遅延時間リクエストであることを示す情報(対象ノード情報)が含まれている。
ブロードキャスト送信された伝送遅延時間リクエストフレーム81bは、通信路52を介して所定の伝送遅延時間後に各スレーブノード51b,51cで受信される。なお、図11の例では、スレーブノード51bは、マスタノード同期基準から遅延時間D1で伝送遅延時間リクエストフレーム81bを受信し、スレーブノード51cは、マスタノード同期基準から遅延時間D2で伝送遅延時間リクエストフレーム81bを受信する。
ここで、各スレーブノード51b,51cは、伝送遅延時間リクエストフレーム81bに含まれている上述した対象ノード情報を確認する。上述したように、伝送遅延時間リクエストフレーム81bは、スレーブノード51bに対するリクエストであるため、スレーブノード51bのみがマスタノード51aに対して受信完了フレーム82b(RECb)をブロードキャスト送信する。このとき、受信完了フレーム82bには、マスタノード51aに対する受信完了フレームであることを示す情報(対象ノード情報)が含まれている。
送信された受信完了フレーム82bは、通信路52を介してマスタノード51a及びスレーブノード51cで受信される。次に、マスタノード51a及びスレーブノード51cは、受信完了フレーム82bに含まれている上述した対象ノード情報を確認する。上述したように、受信完了フレーム82bは、マスタノード51aに対するフレームである。そのため、マスタノード51aは、マスタノード同期基準にしたがって送信した伝送遅延時間リクエストフレーム81bの送信から、その受信完了フレーム82bを受信するまでの時間情報に基づいて、スレーブノード51bに対する伝送遅延時間を設定する。なお、ここで、設定される伝送遅延時間は、通信路52を介してマスタノード51aとスレーブノード51b間を所定の信号が往復する往復伝送遅延時間でもよく、片道分の伝送遅延時間でもよい。
また、マスタノード51aは、設定した伝送遅延時間をスレーブノード51bに通知するための伝送遅延時間通知フレーム83b(SETb)を作成し、作成した伝送遅延時間通知フレーム83bをマスタノード同期基準にしたがってブロードキャスト送信する。なお、伝送遅延時間通知フレーム83bには、上述した対象ノード情報が含まれている。
ブロードキャスト送信された伝送遅延時間通知フレーム83bは、上述した伝送遅延時間リクエストフレーム81bと同様に通信路52を介して所定の伝送遅延時間後に各スレーブノード51b,51cで受信される。
このとき、スレーブノード51bは、受信した伝送遅延時間通知フレーム83bの対象ノード情報から自ノードに対する情報であると判断し、フレーム内に含まれる伝送遅延時間と、上述したオーバーヘッド時間等とを含めた第2実施形態における同期補正処理を行う。また、スレーブノード51bは、伝送遅延時間通知フレーム83bに対する応答フレーム84b(ANSb)を作成し、作成した応答フレーム84bをブロードキャスト送信する。このとき、応答フレーム84bには、マスタノード51aに対するフレームであることを示す情報(対象ノード情報)及び同期補正処理が完了したことを示す情報等が含まれている。
送信された応答フレーム84bは、上述した受信完了フレーム82bと同様に、通信路52を介してマスタノード51a及びスレーブノード51cで受信される。次に、マスタノード51a及びスレーブノード51cは、応答フレーム84bに含まれている上述した対象ノード情報を確認する。上述したように、応答フレーム84bは、マスタノード51aに対するフレームである。そのため、マスタノード51aは、スレーブノード51bからの応答フレーム84bにより、同期補正処理が完了したことを把握することができる。なお、スレーブノード51cは、伝送遅延時間リクエストフレーム81b(REQb)と、受信完了フレーム82b(RECb)と、伝送遅延時間通知フレーム83b(SETb)と、応答フレーム84b(ANSb)とを受信しているが、何れも自ノードに対するフレームではないため、受信したフレームは破棄される。
上述した内容までが、スレーブノード51bへの伝送遅延時間通知手順である。したがって、マスタノード51aは、同様にスレーブノード51cに対して伝送遅延時間の通知を行う。
具体的には、図11の例において、マスタノード51aは、スレーブノード51cに対する伝送遅延時間リクエストフレーム81c(REQc)をマスタノード同期基準にしたがって通信路52上にブロードキャスト送信する。ブロードキャスト送信された伝送遅延時間リクエストフレーム81cは、上述したように通信路52を介して所定の伝送遅延時間(D1,D2)で各スレーブノード51b,51cにて受信される。
伝送遅延時間リクエストフレーム81cは、スレーブノード51cに対するリクエストであるため、スレーブノード51cのみがマスタノード51aに対して受信完了フレーム82c(RECc)をブロードキャスト送信する。送信された受信完了フレーム82cは、通信路52を介してマスタノード51a及びスレーブノード51cで受信される。受信完了フレーム82cは、マスタノード51aに対するフレームである。そのため、マスタノード51aは、マスタノード同期基準にしたがって送信した伝送遅延時間リクエストフレーム81cの送信から、その受信完了フレーム82cを受信するまでの時間情報に基づいて、スレーブノード51cに対する伝送遅延時間を設定する。なお、ここで、設定される伝送遅延時間は、通信路52を介してマスタノード51aとスレーブノード51c間を所定の信号が往復する往復伝送遅延時間でもよく、片道分の伝送遅延時間でもよい。
また、マスタノード51aは、設定した伝送遅延時間をスレーブノード51cに通知するための伝送遅延時間通知フレーム83c(SETc)を作成し、作成した伝送遅延時間通知フレーム83cをマスタノード同期基準にしたがってブロードキャスト送信する。ブロードキャスト送信された伝送遅延時間通知フレーム83cは、上述した伝送遅延時間リクエストフレーム81cと同様に通信路52を介して所定の伝送遅延時間(D1,D2)で各スレーブノード51b,51cにて受信される。
このとき、スレーブノード51cは、上述したように、受信した伝送遅延時間通知フレーム83cの対象ノード情報から自ノードに対する情報であると判断し、フレーム内に含まれる伝送遅延時間と、上述したオーバーヘッド時間等とを含めた第2実施形態における同期補正処理を行う。また、スレーブノード51cは、伝送遅延時間通知フレーム83cに対する応答フレーム84c(ANSc)を作成し、作成した応答フレーム84cをブロードキャスト送信する。このとき、応答フレーム84cには、マスタノード51aに対するフレームであることを示す情報(対象ノード情報)及び同期補正処理が完了したことを示す情報等が含まれている。
送信された応答フレーム84cは、上述した受信完了フレーム82cと同様に、通信路52を介してマスタノード51a及びスレーブノード51cで受信される。次に、マスタノード51a及びスレーブノード51bは、応答フレーム84cに含まれている上述した対象ノード情報を確認する。上述したように、応答フレーム84cは、マスタノード51aに対するフレームである。そのため、マスタノード51aは、スレーブノード51cからの応答フレーム84cにより、同期補正処理が完了したことを把握することができる。なお、スレーブノード51bは、伝送遅延時間リクエストフレーム81c(REQc)と、受信完了フレーム82c(RECc)と、伝送遅延時間通知フレーム83c(SETc)と、応答フレーム84c(ANSc)とを受信しているが、何れも自ノードに対するフレームではないため、受信したフレームは破棄される。
第2実施形態では、上述した処理を通信路52の各スレーブノード51b,51cに対して順次実施することで、伝送遅延時間を通知することができる。
なお、伝送遅延時間の通知手順については、上述した手順に限定されるものでない。例えば、伝送遅延時間リクエストフレーム81をブロードキャスト送信し、これを受信したスレーブノード51b,51cが応答フレーム84の送信によって、通信路52上やマスタノード51a上で輻輳しないように、例えば上述した各ノード内部にセンドカウンタを設け、そのセンドカウンタを使って異なるタイミングで応答フレーム84を送信するように制御してもよい。
上述した第2実施形態では、例えばイーサネット(登録商標)のようなスター型トポロジを持つシステムにおいて、時分割多重伝送方式を用いたコモンメモリネットワークに対し、各ノードのカウンタを同期化し、装置全体で制御のタイミングを合わせる同期制御ができる。また、第2実施形態において、同期させるカウンタは、マイコン内部のカウンタを用いたり、FPGA等のハードウェアにてカウンタを用いて構成することができる。したがって、第2実施形態では、例えば送受信されるフレームの受信タイミングでマスタノード51aと同期しているカウンタと、マイコンでの処理時間を計測するカウンタとを、例えばFPGA等のハードウェアで構成し、その計数値をマイコンで演算することで、処理誤差を補正することができる。
ここで、上述の例では、ノード同期システム50の一例として、マスタ−スレーブ間のノード同期について説明したが、本実施形態においては、これに限定されるものではなく、例えば保護リレー等におけるサンプリング同期技術にも応用することができる。
(ネットワーク伝送システム:概略構成例)
ここで、上述した第2実施形態では、例えば各ノード間を、IEEE802.3u(100BASE−TX)やIEEE802.3ab(1000BASE−T)等のようなHUB(ハブ)等の中継装置を介して接続される場合がある。図12は、第2実施形態におけるマスタノード51a及びスレーブノード51b,51cを用いたノード同期システム50を含むネットワーク伝送システムの概略構成の一例を示す図である。図12に示すネットワーク伝送システム90は、一例として、上述した複数のノード51(図12の例では、ノード51a〜51c)と、1又は複数の中継装置としてのHUB91(図12の例では、HUB91a〜91e)とを有する。なお、ノードや中継装置の数や種類、接続方法についてはこれに限定されるものではない。
図12の例では、図7のマスタノード、すなわちノード51aをノードA(マスタ局)とし、図7のスレーブノード、すなわちノード51b,ノード51cをノードB,ノードC(スレーブ局)とする。また、図12に示すように、ネットワーク伝送システム90の通信路は、例えばマスタノード51aとスレーブノード51bとの間に中継装置を有するスター型である。なお、中継装置は、一例としてHUBを用いているが、本実施形態においてはこれに限定されるものではなく、例えばルータ、リピータ、光コンバータ等を用いることもできる。
また、マスタノード51a及びスレーブノード51b,51cは、例えばプログラマブルコントローラ(制御装置、もしくはPLC(Programmable Logic Controller)ともいう)であり、ネットワーク伝送システム90の通信路はこれらプログラマブルコントローラ同士のデータを交換するデータ交換バスである。このデータ交換バスに接続される機器としては、例えば上述のプログラマブルコントローラに加え、PC、サーバ、I/Oモジュール、ドライブ装置(例えば、インバータ、サーボ等)等がある。
図12に示すネットワーク伝送システム90は、ノード51a及びノード51cが同一のHUB91aに接続されており、ノード51bは、5段のHUB(中継装置)を経由してノード51a及びノード51cと接続されている。
ここで、一般的なイーサネットのHUBでは、ストア&フォワードといわれるインタフェース方式が採用されている。この場合、送られてきたフレームは、全てをHUB内の受信バッファに蓄え、HUB内部処理(例えば、異常判定や宛先判定等)を行ってから送信される。
(ノード同期方法のシーケンス例)
図13は、ノード同期方法の概略的なシーケンス例を示す図である。図13の例では、説明の便宜上、マスタノード51aとスレーブノード51bとを用いた同期について説明するが、本実施形態においてはこれに限定されるものではなく、1つのマスタノードに対して複数のスレーブノードを同期させることができる。
図13のノード同期処理において、まず、マスタノード51aの第1基準信号生成部61は、第1基準信号を生成し(S11)、スレーブノード51bの第2基準信号生成部71は、第2基準信号を生成する(S12)。また、この処理は、ハードウェア的にサイクリックに動作されている。
また、マスタノード51aの間隔計数部64は、補正処理間隔を計数し、計数値が補正処理間隔値に達すると、補正処理開始信号を生成して同期補正処理を開始する(S13)。
間隔計数部64の計数値が補正処理間隔値に達すると、マスタノード51aにおける同期補正処理が開始され(S13)、マスタノード51aの伝送遅延時間通知部65は、伝送遅延時間を算出するために伝送遅延時間リクエストフレームを送信する(S14)。なお、伝送遅延時間リクエストフレームは、同期化フレームに含まれる所定部分のデータを変えただけのものであり、同期化フレームと言い換えることができるが、ここでは便宜上、「伝送遅延時間リクエストフレーム」として説明している。
スレーブノード51bの受信完了通知部79は、伝送遅延時間リクエストフレームを受信すると、受信完了通知を生成し、マスタノード51aに通知する(S15)。
マスタノード51aの伝送遅延時間通知部65は、受信完了通知を受信すると、例えば往復伝送遅延時間を算出し(S16)、算出した往復伝送遅延時間等を含む伝送遅延時間通知フレームを生成し(S17)、生成した伝送遅延時間通知フレームを、通信路52を介してスレーブノード51bに送信する(S18)。
スレーブノード51bのフレーム受信部80は、伝送遅延時間通知フレームを受信すると、そのフレームに含まれる往復伝送遅延時間(値)をメモリ45等に退避する(S19)。そして、マスタノード51aの同期化フレーム通知部66は、第1基準信号に同期させて、同期化フレームを割り込み信号としてスレーブノード51bに送信する(S20)。スレーブノード51bが同期化フレームを受信すると(S21)、ソフトウェアによる同期補正処理を起動させる(S22)と共に、オーバーヘッド計数部74をリスタートする(S23)。そして、計数値取得部75は、第2基準信号生成部71とオーバーヘッド計数部74との両計数値を取得し(S24)、同期判定部76は、かかる両計数値に基づいて同期判定を行い(S25)、非同期であると判定されれば、総合遅延時間を算出する(S26)。総合遅延時間とは、例えば伝送遅延時間とオーバーヘッド値とを加算した値であるが、これに限定されるものではない。また、スレーブノード51bの同期補正部77は、算出された総合遅延時間を用いて同期補正を行う(S27)。なお、図13に示す処理では、スレーブノード51bは、同期補正が完了したことを示す応答フレームをマスタノード51aに送信してもよい。また、マスタノード51aは、通信路52に接続されたスレーブノード51b以外のスレーブノードに対しても上述した手順でノード同期処理を行う。
ここで、本実施形態では、コンピュータを、上述したノード51が有する各手段として機能させるためのプログラム(ノード同期プログラム)を生成し、生成したプログラムを、コンピュータ等にインストールすることにより、上述した各ノード同期処理を実現することができる。
上述したように、本実施形態によれば、処理負荷を抑制しつつ、所定の信号を高精度に同期させることができる。これにより、例えば、各ノード51のデータ交換周期の安定化を実現することができる。また、本実施形態によれば、例えばイーサネットのようなスター型トポロジを持つシステムにおいて、時分割多重伝送方式を用いた共有メモリネットワークに対し、各ノード51のタイマを同期化し、伝送の効率化とデータ交換の効率化、データ交換周期の安定化等を実現することができる。
なお、本実施形態は、例えば鉄鋼プラント等のような大規模設備等における一連の動作を複数の操作を用いて行う場合の同期手法に適用することができ、更にギガビットイーサネット全般における各装置間の同期方式としても広く適用することができる。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
なお、本明細書の信号同期方法、及び、ノード同期方法の各工程は、必ずしもシーケンス図として記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
本発明は、所定の信号を同期させるための信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法に利用することができる。
10 信号同期システム
11 プロセッサモジュール
12 伝送バス
13,53 I/O(入出力)モジュール
14,54 外部機器
15,55 プログラミング装置
21,61 第1基準信号生成部
22,62 第1演算部
23,38,63,78 記憶部
31,71 第2基準信号生成部
32,72 第2演算部
34,74 オーバーヘッド計数部
35,75 計数値取得部
36,76 同期判定部
37,77 同期補正部
41 入力部
42 出力部
43 CPU
44 FPGA
45 メモリ
46 外部インタフェース
50 ノード同期システム
51 ノード
52 通信路
65 伝送遅延時間通知部
66 同期化フレーム通知部
79 受信完了通知部
80 フレーム受信部
81 伝送遅延時間リクエストフレーム
82 受信完了フレーム
83 伝送遅延時間通知フレーム
84 応答フレーム
90 ネットワーク伝送システム
91 HUB(中継装置)

Claims (18)

  1. 第1基準信号に従って動作する主モジュールと、第2基準信号に従って動作する従モジュールとを含み、該第1基準信号に該第2基準信号を同期させる信号同期システムであって、
    前記主モジュールは、
    計数を行い、予め設定された基準値に計数値が達することで前記第1基準信号を生成する第1基準信号生成部を備え、
    前記従モジュールは、
    計数を行い、前記基準値に計数値が達することで前記第2基準信号を生成する第2基準信号生成部と、
    同期補正処理を行う間隔を計数する間隔計数部と、
    前記間隔計数部において前記同期補正処理を行う補正処理間隔値に計数値が達した後、前記第1基準信号を受信してリスタートし、計数を行うオーバーヘッド計数部と、
    前記間隔計数部において前記補正処理間隔値に計数値が達した後、前記第1基準信号の受信に応じて前記第2基準信号生成部の計数値及び前記オーバーヘッド計数部の計数値を取得する計数値取得部と、
    前記第2基準信号生成部の計数値と前記オーバーヘッド計数部の計数値との差分を相殺する値を、前記第2基準信号生成部に一時的に基準値として設定する同期補正部と、
    を備えることを特徴とする信号同期システム。
  2. 前記従モジュールは、該従モジュールにおける演算を実行するプロセッサを含み、
    前記第2基準信号生成部は、前記プロセッサのみがアクセスできるカウンタであることを特徴とする請求項1に記載の信号同期システム。
  3. 前記従モジュールに含まれるプロセッサは、前記計数値取得部、前記同期補正部として機能することを特徴とする請求項2に記載の信号同期システム。
  4. 前記従モジュールは、
    前記計数値取得部によって取得された、前記第2基準信号生成部の計数値と前記オーバーヘッド計数部の計数値とが異なるとき前記第1基準信号と前記第2基準信号とが非同期であると判定する同期判定部をさらに備え、
    前記同期補正部は、前記同期判定部に非同期であると判定された場合にのみ、前記差分を相殺する値を、前記第2基準信号生成部に一時的に基準値として設定することを特徴とする請求項1から3のいずれか1項に記載の信号同期システム。
  5. 前記同期判定部は、前記計数値取得部によって取得された前記第2基準信号生成部の計数値と前記オーバーヘッド計数部の計数値とを時間換算し、双方の時間が異なるとき非同期であると判定することを特徴とする請求項4に記載の信号同期システム。
  6. 前記第1基準信号生成部は、前記第1基準信号を周期的に生成し、
    前記第2基準信号生成部は、前記第2基準信号を周期的に生成することを特徴とする請求項1から5のいずれか1項に記載の信号同期システム。
  7. 前記基準値は、外部接続される設定装置から設定できることを特徴とする請求項1から6のいずれか1項に記載の信号同期システム。
  8. 第1基準信号に従って動作するマスタノードと、第2基準信号に従って動作するスレーブノードとを含み、該第1基準信号に該第2基準信号を同期させるノード同期システムであって、
    前記マスタノードは、
    計数を行い、予め設定された基準値に計数値が達することで前記第1基準信号を生成する第1基準信号生成部と、
    同期補正処理を行う間隔を計数する間隔計数部と、
    前記間隔計数部において前記同期補正処理を行う補正処理間隔値に計数値が達した後、前記マスタノードと前記スレーブノードとを接続する通信路における伝送遅延時間を算出して前記スレーブノードに通知する伝送遅延時間通知部と、
    前記通信路を介して前記第1基準信号に同期した同期化フレームを前記スレーブノードに送信する同期化フレーム通知部と、
    を備え、
    前記スレーブノードは、
    計数を行い、前記基準値に計数値が達することで前記第2基準信号を生成する第2基準信号生成部と、
    前記同期化フレームを受信してリスタートし、計数を行うオーバーヘッド計数部と、
    前記同期化フレームの受信に応じて前記第2基準信号生成部の計数値及び前記オーバーヘッド計数部の計数値を取得する計数値取得部と、
    前記第2基準信号生成部の計数値と、前記オーバーヘッド計数部の計数値と前記伝送遅延時間を示す値との和である総合遅延時間値との差分を相殺する値を、前記第2基準信号生成部に一時的に基準値として設定する同期補正部と、
    を備えることを特徴とするノード同期システム。
  9. 前記伝送遅延時間通知部は、伝送遅延時間リクエストフレームを前記スレーブノードに送信し、前記伝送遅延時間リクエストフレームに対する前記スレーブノードからの受信完了フレームを受信し、該受信時の時刻と前記伝送遅延時間リクエストフレームを送信したときの時刻との差分から、前記伝送遅延時間を算出することを特徴とする請求項8に記載のノード同期システム。
  10. 前記通信路は、前記マスタノードと前記スレーブノードとの間に中継装置を有するスター型であることを特徴とする請求項8または9に記載のノード同期システム。
  11. 前記スレーブノードは、該スレーブノードにおける演算を実行するプロセッサを含み、
    前記第2基準信号生成部は、前記プロセッサのみがアクセスできるカウンタであることを特徴とする請求項8から10のいずれか1項に記載のノード同期システム。
  12. 前記スレーブノードに含まれるプロセッサは、前記計数値取得部、前記同期補正部として機能することを特徴とする請求項11に記載のノード同期システム。
  13. 前記スレーブノードは、
    前記計数値取得部によって取得された、前記第2基準信号生成部の計数値と前記総合遅延時間とが異なるとき前記第1基準信号と前記第2基準信号とが非同期であると判定する同期判定部をさらに備え、
    前記同期補正部は、前記同期判定部に非同期であると判定された場合にのみ、前記差分を相殺する値を、前記第2基準信号生成部に一時的に基準値として設定することを特徴とする請求項8から12のいずれか1項に記載のノード同期システム。
  14. 前記同期判定部は、前記計数値取得部によって取得された前記第2基準信号生成部の計数値と前記オーバーヘッド計数部の計数値とを時間換算し、双方の時間が異なるとき非同期であると判定することを特徴とする請求項13に記載のノード同期システム。
  15. 前記第1基準信号生成部は、前記第1基準信号を周期的に生成し、
    前記第2基準信号生成部は、前記第2基準信号を周期的に生成することを特徴とする請求項8から14のいずれか1項に記載のノード同期システム。
  16. 前記基準値は、外部接続される設定装置から設定できることを特徴とする請求項8から15のいずれか1項に記載のノード同期システム。
  17. 第1基準信号に従って動作する主モジュールと、第2基準信号に従って動作する従モジュールとによって、該第1基準信号に該第2基準信号を同期させる信号同期方法であって、
    前記主モジュールは、
    計数を行い、予め設定された基準値に計数値が達することで前記第1基準信号を生成し、
    前記従モジュールは、
    計数を行い、前記基準値に計数値が達することで前記第2基準信号を生成し、
    同期補正処理を行う間隔を計数し、
    前記同期補正処理を行う補正処理間隔値に計数値が達した後、前記第1基準信号を受信してリスタートし、計数を行い、
    前記同期補正処理を行う間隔を示す計数値が前記補正処理間隔値に達した後、前記第2基準信号を生成するための計数値及び前記第1基準信号を受信してリスタートした計数値を取得し、
    前記第2基準信号を生成するための計数値と前記第1基準信号を受信してリスタートした計数値との差分を相殺する値を、前記第2基準信号を生成するための計数に一時的に基準値として設定することを特徴とする信号同期方法。
  18. 第1基準信号に従って動作するマスタノードと、第2基準信号に従って動作するスレーブノードとによって、該第1基準信号に該第2基準信号を同期させるノード同期方法であって、
    前記マスタノードは、
    計数を行い、予め設定された基準値に計数値が達することで前記第1基準信号を生成し、
    同期補正処理を行う間隔を計数し、
    前記同期補正処理を行う間隔の計数値が補正処理間隔値に達した後、前記マスタノードと前記スレーブノードとを接続する通信路における伝送遅延時間を算出して前記スレーブノードに通知し、
    前記通信路を介して前記第1基準信号に同期した同期化フレームをスレーブノードに送信し、
    前記スレーブノードは、
    計数を行い、前記基準値に計数値が達することで前記第2基準信号を生成し、
    前記同期化フレームを受信してリスタートし、計数を行い、
    前記同期化フレームの受信に応じて前記第2基準信号を生成するための計数値及び前記同期化フレームを受信してリスタートした計数値を取得し、
    前記第2基準信号を生成するための計数値と、前記同期化フレームを受信してリスタートした計数値と前記伝送遅延時間を示す値との和である総合遅延時間値との差分を相殺する値を、前記第2基準信号を生成するための計数に一時的に基準値として設定することを特徴とするノード同期方法。
JP2014551797A 2012-12-13 2012-12-13 信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法 Active JP5825446B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/082334 WO2014091592A1 (ja) 2012-12-13 2012-12-13 信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法

Publications (2)

Publication Number Publication Date
JP5825446B2 true JP5825446B2 (ja) 2015-12-02
JPWO2014091592A1 JPWO2014091592A1 (ja) 2017-01-05

Family

ID=50933913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014551797A Active JP5825446B2 (ja) 2012-12-13 2012-12-13 信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法

Country Status (4)

Country Link
JP (1) JP5825446B2 (ja)
KR (1) KR101636496B1 (ja)
CN (1) CN104838615B (ja)
WO (1) WO2014091592A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6400553B2 (ja) * 2015-09-28 2018-10-03 ファナック株式会社 ユニット間での同期制御機能を有する数値制御システム
JP6719994B2 (ja) * 2016-06-30 2020-07-08 キヤノン株式会社 通信システム、通信機器および通信方法
WO2019010626A1 (zh) * 2017-07-11 2019-01-17 深圳市柔宇科技有限公司 拍摄方法和终端
KR102200451B1 (ko) * 2018-09-21 2021-01-08 주식회사 룩시드랩스 시간 동기화를 위한 방법 및 장치
FR3108817B1 (fr) 2020-03-26 2022-03-04 Safran Procédé de communication selon un protocole TDMA entre un dispositif maître et au moins un dispositif esclave
JP7243695B2 (ja) * 2020-08-25 2023-03-22 横河電機株式会社 情報処理装置、情報処理システム、及び情報処理方法
CN114285512B (zh) * 2021-11-17 2024-01-23 中国电子科技集团公司第五十四研究所 通信校时方法、通信系统及通信设备
KR20230079632A (ko) * 2021-11-29 2023-06-07 성창 주식회사 서버와 IoT 디바이스 사이의 시간 동기화 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
JP2005253033A (ja) * 2004-02-06 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 網同期装置、クロック伝達方法およびクロック伝達パケット網

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691071B2 (en) * 2002-05-13 2004-02-10 Motorola, Inc. Synchronizing clock enablement in an electronic device
US7844703B2 (en) * 2006-11-02 2010-11-30 International Business Machines Corporation System and method of measurement for a distributed computer system
CN101039145B (zh) * 2007-03-30 2010-08-04 华为技术有限公司 时钟的实现方法、装置
CN100589371C (zh) * 2007-07-16 2010-02-10 中兴通讯股份有限公司 一种消除源同步信号长线传输时延的系统及方法
JP5127482B2 (ja) * 2008-01-30 2013-01-23 株式会社東芝 タイミング同期方法、同期装置、同期システム及び同期プログラム
KR101011314B1 (ko) * 2008-03-31 2011-01-28 후지쯔 가부시끼가이샤 클럭 발생 기능을 갖는 장치, 기준 주파수 설정 방법 및 기준 주파수 조정 방법
CN101431796A (zh) * 2008-12-10 2009-05-13 扬州万方电子技术有限责任公司 用于有中心宽带无线通信系统时钟主从同步的方法
US8120935B2 (en) * 2011-03-29 2012-02-21 American Superconductor Corporation Power converter with dual ring network control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
JP2005253033A (ja) * 2004-02-06 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 網同期装置、クロック伝達方法およびクロック伝達パケット網

Also Published As

Publication number Publication date
JPWO2014091592A1 (ja) 2017-01-05
KR20150084917A (ko) 2015-07-22
CN104838615B (zh) 2017-08-18
CN104838615A (zh) 2015-08-12
WO2014091592A1 (ja) 2014-06-19
KR101636496B1 (ko) 2016-07-05

Similar Documents

Publication Publication Date Title
JP5825446B2 (ja) 信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法
JP6753262B2 (ja) 制御装置および通信装置
JP6523497B1 (ja) マスタ制御装置およびこれを用いた同期通信システム
EP3026515B1 (en) Programmable controller system
JP5935903B2 (ja) 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法
WO2016004644A1 (zh) 一种监控以太网时钟同步的方法及装置
CN107402534B (zh) 调节方法、EtherCAT主站及计算机可读存储介质
JP5488634B2 (ja) 情報処理装置、管理コントローラ、システム時刻同期方法、及びプログラム
JP2011193457A (ja) 時間同期を行うためのシステムおよび方法
US20220147022A1 (en) Control system
CN110572230A (zh) 一种用于实现时间同步的修正方法及装置
JP2019101480A (ja) 制御装置および制御方法
JP6010802B2 (ja) 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム
JP2011023788A (ja) ネットワーク同期方法と同期化回路
WO2020021597A1 (ja) 通信装置、通信システムおよび同期制御方法
JP5850143B2 (ja) 信号同期システム、マルチプロセッサ、及びノード同期システム
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
JP5067670B2 (ja) マシンコントローラシステム
JP5372315B2 (ja) テレメーターシステムの子局装置
JP5662119B2 (ja) ノードシステムおよび監視ノード
JP6085864B2 (ja) 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム
JP5223809B2 (ja) 同期通信システム
JP2014157386A (ja) データ処理システム
JP5449484B2 (ja) 電子制御装置および電子制御装置に適用されるアプリケーションの実行間隔監視方法
JPH07141307A (ja) マルチプロセッサシステムの同期化回路

Legal Events

Date Code Title Description
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: 20150915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150928

R150 Certificate of patent or registration of utility model

Ref document number: 5825446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250