JPWO2013164887A1 - 信号同期システム、マルチプロセッサ、及びノード同期システム - Google Patents

信号同期システム、マルチプロセッサ、及びノード同期システム Download PDF

Info

Publication number
JPWO2013164887A1
JPWO2013164887A1 JP2014513325A JP2014513325A JPWO2013164887A1 JP WO2013164887 A1 JPWO2013164887 A1 JP WO2013164887A1 JP 2014513325 A JP2014513325 A JP 2014513325A JP 2014513325 A JP2014513325 A JP 2014513325A JP WO2013164887 A1 JPWO2013164887 A1 JP WO2013164887A1
Authority
JP
Japan
Prior art keywords
reference signal
value
synchronization
unit
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014513325A
Other languages
English (en)
Other versions
JP5850143B2 (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
Publication of JPWO2013164887A1 publication Critical patent/JPWO2013164887A1/ja
Application granted granted Critical
Publication of JP5850143B2 publication Critical patent/JP5850143B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Abstract

基準値が設定され、該基準値に計数値が達することで、第1基準信号生成部及び第2基準信号生成部により第1基準信号及び第2基準信号を生成し、生成された前記第1基準信号を受信して所定の処理を実行し、前記第1基準信号を受信してリスタートし、該リスタート時点を起点に前記所定の処理が実行されるまでのオーバーヘッドを計測し、前記オーバーヘッドの経過後に前記所定の処理が実行される時点での計数値を取得し、取得された計数値と前記オーバーヘッドの値が異なるとき前記第1基準信号と前記第2基準信号とが非同期であると判定し、前記オーバーヘッドの値から前記計数値を差し引いて同期補正値を求め、求めた同期補正値を前記基準値から差し引いた値を第2基準信号生成部に臨時の基準値として設定する。

Description

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

Claims (16)

  1. 基準値が設定され、該基準値に計数値が達することで第1基準信号を生成する第1基準信号生成部と、
    前記基準値が設定され、該基準値に計数値が達することで第2基準信号を生成する第2基準信号生成部と、
    前記第1基準信号生成部によって生成された前記第1基準信号を受信して所定の処理を実行する演算部と、
    前記第1基準信号を受信してリスタートし、該リスタート時点を起点に前記所定の処理が実行されるまでのオーバーヘッドを計測するオーバーヘッド計測部と、
    前記オーバーヘッドの経過後に前記所定の処理が実行される時点での前記第2基準信号生成部の計数値を取得する計数値取得部と、
    前記計数値取得部によって取得された計数値と前記オーバーヘッドの値が異なるとき前記第1基準信号と前記第2基準信号とが非同期であると判定する同期判定部と、
    前記同期判定部が前記第1基準信号と前記第2基準信号との非同期を判定すると、前記オーバーヘッドの値から前記計数値取得部によって取得された計数値を差し引いて同期補正値を求め、求めた同期補正値を前記基準値から差し引いた値を前記第2基準信号生成部に臨時の基準値として設定する同期補正部と、を備えることを特徴とする信号同期システム。
  2. 前記第2基準信号生成部は、前記演算部のみがアクセスできるカウンタであることを特徴とする請求項1に記載の信号同期システム。
  3. 前記同期判定部は、
    前記計数値取得部によって取得された計数値及び前記オーバーヘッド計測部によって計測された前記オーバーヘッドの値を時間換算し、両者の時間が異なるとき非同期であると判定することを特徴とする請求項1に記載の信号同期システム。
  4. 基準値が設定され、該基準値に計数値が達することで第1基準信号を生成する第1基準信号生成部と、前記第1基準信号生成部によって生成された前記第1基準信号に同期してプログラムを実行する第1演算部と、を含む主プロセッサと、
    前記基準値が設定され、該基準値に計数値が達することで第2基準信号を生成する第2基準信号生成部と、前記第1基準信号が接続され、前記第2基準信号生成部によって生成された前記第2基準信号に同期してプログラムを実行し、前記第1基準信号を受信すると所定の処理を実行する第2演算部と、前記第1基準信号を受信してリスタートし、該リスタートを起点に前記所定の処理が実行されるまでのオーバーヘッドを計測するオーバーヘッド計測部と、前記オーバーヘッドの経過後に前記所定の処理が実行される時点での前記第2基準信号生成部の計数値を取得する計数値取得部と、前記計数値取得部によって取得された計数値と前記オーバーヘッドの値とが異なるとき前記第1基準信号と前記第2基準信号とが非同期であると判定する同期判定部と、前記同期判定部が前記第1基準信号と前記第2基準信号との非同期を判定すると、前記オーバーヘッドの値から前記計数値取得部によって取得された計数値を差し引いて同期補正値を求め、求めた同期補正値を前記基準値から差し引いた値を前記第2基準信号生成部に臨時の基準値として設定する同期補正部と、を含む従プロセッサと、を備えることを特徴とするマルチプロセッサ。
  5. 前記第2基準信号生成部は、前記第2演算部のみがアクセスできるカウンタであることを特徴とする請求項4に記載のマルチプロセッサ。
  6. 前記同期判定部は、
    前記計数値取得部によって取得された計数値及び前記オーバーヘッド計測部によって計測された前記オーバーヘッドの値を時間換算し、両者の時間が異なるとき非同期であると判定することを特徴とする請求項4に記載のマルチプロセッサ。
  7. 前記第1基準信号は、周期毎に出力され、
    前記第1演算部は、前記周期毎に前記プログラムを実行することで外部に接続される機器を制御することを特徴とする請求項4に記載のマルチプロセッサ。
  8. 前記基準値は、外部接続される設定装置から設定できることを特徴とする請求項4に記載のマルチプロセッサ。
  9. 前記オーバーヘッドは、前記オーバーヘッド計測部がリスタートされた起点から前記所定の処理の開始時点までの時間であることを特徴とする請求項4に記載のマルチプロセッサ。
  10. 基準値が設定され、該基準値に計数値が達することで第1基準信号を生成する第1基準信号生成部と、前記第1基準信号生成部によって生成された前記第1基準信号に同期してプログラムを実行する第1演算部と、通信路を介して前記第1基準信号に同期した同期化フレームをスレーブノードに送信する同期化フレーム通知部と、前記同期化フレームが前記マスタノードから送信され前記スレーブノードに受信されるまでの伝送遅延時間を算出して前記スレーブノードに通知する伝送遅延時間通知部と、を含むマスタノードと、
    前記基準値が設定され、該基準値に計数値が達することで第2基準信号を生成する第2基準信号生成部と、前記第1基準信号が接続され、前記第2基準信号生成部によって生成された前記第2基準信号に同期してプログラムを実行し、前記第1基準信号を受信すると所定の処理を実行する第2演算部と、前記第1基準信号を受信してリスタートし、該リスタートを起点に前記所定の処理が実行されるまでのオーバーヘッドを計測するオーバーヘッド計測部と、前記オーバーヘッドの経過後に前記所定の処理が実行される時点での前記第2基準信号生成部の計数値を取得する計数値取得部と、前記マスタノードによって通知された前記伝送遅延時間の値と前記オーバーヘッドの値とを加算して総合遅延時間値を求め、求めた総合遅延時間値と前記計数値取得部によって取得された前記第2基準信号生成部の計数値とを比較し、両者が相違するとき第1基準信号と第2基準信号とが非同期であると判定する同期判定部と、前記同期判定部が前記第1基準信号と前記第2基準信号との非同期を判定すると前記総合遅延時間値から前記計数値取得部によって取得された計数値を差し引いて同期補正値を求め、求めた同期補正値を前記基準値から差し引いた値を前記第2基準信号生成部に臨時の基準値として設定する同期補正部と、を含むスレーブノードとを有するノード同期システム。
  11. 前記伝送遅延時間通知部は、
    伝送遅延時間リクエストフレームを前記スレーブノードに送信し、前記伝送遅延時間リクエストフレームに対する前記スレーブノードからの受信完了フレームを受信し、該受信時の時刻と前記伝送遅延時間リクエストフレームを送信したときの時刻との差分から、前記伝送遅延時間を算出することを特徴とする請求項10に記載のノード同期システム。
  12. 前記通信路は、前記マスタノードと前記スレーブノードとの間に中継装置を有するスター型であることを特徴とする請求項10に記載のノード同期システム。
  13. 前記第2基準信号生成部は、前記第2演算部のみがアクセスできるカウンタであることを特徴とする請求項10に記載のノード同期システム。
  14. 前記同期判定部は、
    前記計数値取得部によって取得された計数値及び前記総合遅延時間値を時間換算し、両者の時間が異なるとき非同期であると判定することを特徴とする請求項10に記載のノード同期システム。
  15. 前記基準値は、前記マスタノード又は前記スレーブノードに接続される設定装置から設定できることを特徴とする請求項10に記載のノード同期システム。
  16. 前記オーバーヘッドは、前記オーバーヘッド計測部がリスタートされた起点から前記所定の処理の開始時点までであることを特徴とする請求項10に記載のノード同期システム。
JP2014513325A 2012-05-01 2012-05-01 信号同期システム、マルチプロセッサ、及びノード同期システム Active JP5850143B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/061580 WO2013164887A1 (ja) 2012-05-01 2012-05-01 信号同期システム、マルチプロセッサ、及びノード同期システム

Publications (2)

Publication Number Publication Date
JPWO2013164887A1 true JPWO2013164887A1 (ja) 2015-12-24
JP5850143B2 JP5850143B2 (ja) 2016-02-03

Family

ID=49514297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014513325A Active JP5850143B2 (ja) 2012-05-01 2012-05-01 信号同期システム、マルチプロセッサ、及びノード同期システム

Country Status (5)

Country Link
JP (1) JP5850143B2 (ja)
KR (1) KR101578751B1 (ja)
CN (1) CN104115450B (ja)
IN (1) IN2014DN07649A (ja)
WO (1) WO2013164887A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015229462A (ja) * 2014-06-06 2015-12-21 富士電機株式会社 同期システム
JP6400553B2 (ja) * 2015-09-28 2018-10-03 ファナック株式会社 ユニット間での同期制御機能を有する数値制御システム
JP7310495B2 (ja) * 2019-09-26 2023-07-19 オムロン株式会社 制御システム、情報処理装置およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216595A (ja) * 2002-01-25 2003-07-31 Mitsubishi Electric Corp マルチプロセッサ同期方式及びパケット及び中継装置及びプロセッサ装置及びマルチプロセッサ同期方法
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327468A (en) * 1992-06-19 1994-07-05 Westinghouse Electric Corp. Synchronization of time-of-day clocks in a distributed processing network system
JPH0877103A (ja) * 1994-09-07 1996-03-22 Hitachi Ltd バス同期化方式及びこれを用いた装置,システム
CN1868200B (zh) * 2004-06-08 2012-03-21 苹果公司 便携式设备
US8549341B2 (en) * 2008-08-29 2013-10-01 Netlogic Microsystems, Inc. System and method for reducing latency associated with timestamps in a multi-core, multi-threaded processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216595A (ja) * 2002-01-25 2003-07-31 Mitsubishi Electric Corp マルチプロセッサ同期方式及びパケット及び中継装置及びプロセッサ装置及びマルチプロセッサ同期方法
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム

Also Published As

Publication number Publication date
IN2014DN07649A (ja) 2015-05-15
CN104115450A (zh) 2014-10-22
KR20140121849A (ko) 2014-10-16
JP5850143B2 (ja) 2016-02-03
WO2013164887A1 (ja) 2013-11-07
KR101578751B1 (ko) 2015-12-18
CN104115450B (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
JP5825446B2 (ja) 信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法
JP6753262B2 (ja) 制御装置および通信装置
JP6152920B2 (ja) プログラマブルコントローラシステム、そのコントローラ
JP5850143B2 (ja) 信号同期システム、マルチプロセッサ、及びノード同期システム
US11307553B2 (en) Control device and control method
US20220413474A1 (en) Control system
US20220147022A1 (en) Control system
US10474598B2 (en) Microcomputer
TWI540873B (zh) Communication devices and communication methods and program products
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
JP2010061458A (ja) マシンコントローラシステムおよびマシンコントローラ間同期方法
KR101243434B1 (ko) 게이트웨이를 이용한 필드버스 동기화 방법 및 게이트웨이를 이용한 필드버스 동기화 시스템
US20200310887A1 (en) Method for synchronized operation of multicore processors
JP2014157386A (ja) データ処理システム
KR20230087090A (ko) 이기종 시스템의 태스크 동기화 장치 및 방법
JP2006065523A (ja) 情報処理装置システム及びその負荷試験方法
JP2016095784A (ja) 冗長化制御システムおよびその制御装置
JP2004310414A (ja) マルチプロセッサ制御システムの同期処理方式
JP2012226475A (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: 20151104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151117

R150 Certificate of patent or registration of utility model

Ref document number: 5850143

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