JP5141972B2 - 産業用コントローラ - Google Patents

産業用コントローラ Download PDF

Info

Publication number
JP5141972B2
JP5141972B2 JP2008261533A JP2008261533A JP5141972B2 JP 5141972 B2 JP5141972 B2 JP 5141972B2 JP 2008261533 A JP2008261533 A JP 2008261533A JP 2008261533 A JP2008261533 A JP 2008261533A JP 5141972 B2 JP5141972 B2 JP 5141972B2
Authority
JP
Japan
Prior art keywords
time
time difference
master
measuring means
difference
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
JP2008261533A
Other languages
English (en)
Other versions
JP2009157913A (ja
Inventor
英治 竹本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2008261533A priority Critical patent/JP5141972B2/ja
Publication of JP2009157913A publication Critical patent/JP2009157913A/ja
Application granted granted Critical
Publication of JP5141972B2 publication Critical patent/JP5141972B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

この発明は、PLCやPAC等の産業用コントローラに関するものである。
FA(Factory Automation)におけるネットワークシステムは、生産設備の制御を司る1または複数のPLC(Programmable Logic Controller)と、そのPLCにより動作が制御される機器とが、制御系のネットワークに接続される。それらPLCと機器は、その制御系のネットワークを介してサイクリックに通信を行なうことで、I/Oデータの送受を行ない、生産設備を制御する。
また、最近では、次世代の産業用コントローラとして、PAC(Programmable Automation Controller)と称されるコントローラが開発されている。このPACは、パーソナルコンピュータが持つ高速性や高機能や機能拡張性に加え、PLCが持つ高精度や耐久性を備えている。
上記のPLCやPAC等の産業用コントローラは、複数のユニットを連結して構成されるタイプのものがある。各ユニットには、時計が内蔵されたものがある。その時計が内蔵されたユニットは、その時計に合わせて指定された動作(制御値の出力,データの取得等)を行なうものがある。各ユニットに内蔵された時計は、通常相互に時間合わせ等をすることはなく、仮に時間あわせ(時間同期)をする場合には、複数のユニットのうちの1つが基準時刻を管理するマスタとなり、マスタ以外のユニットがマスタに管理されるスレーブとなり、スレーブがマスタから受け取った現在時刻をそのまま各スレーブの時計に上書きすることで対応していた。また、ネットワークでつながれたコントローラ間で時計情報を調整し、同期した時計情報を生成する手段を持つものもあった。
特開平4−135210号 特開2001−27904号 特開2007−213474号
従来のPLCにおける計時機能は、およそ1秒単位であり、リアルタイムOSを用いても1秒(以下、秒を「s」と表記する)単位よりも桁が小さく、数百μsからそれ以下のμs単位であった。そのため、各ユニットに存在する時計同士の時間同期を高精度にする必要性があまりなかった。しかし、高速性を有するPACは、μs単位よりも桁が小さく、数百μsからそれ以下のns単位での計時が要求される。そして、高精度を担保するためには、各ユニットに実装されるns単位の計時機能を持つ内部時計が、基準となる時計、つまりマスタの時計と正確に時間同期する必要がある。すなわち、ns単位の時計を持たない従来のシステムでは、たとえばモータユニットが複数台接続されていた場合に各モータユニットによってモータを同期させて動作しようとしたとき、各モータユニット内の時間が高精度に同期していないために個々のモータの動作にμs単位の時間ばらつきが発生する。従来のシステムは、基本の計時機能が1秒単位であるので、μs単位のばらつきはシステム全体に対しては、さほど影響を与えない。しかし、計時機能がns単位となった場合には、μs単位の時間のばらつきは同期制御をするうえで大きな影響があるという新たな課題が見つかった。
そして、時間同期として、マスタから受け取った現在時刻をそのままスレーブの時計に上書きする方式を採った場合、ns単位といった計時機能に対してばらつきはμs単位に及ぶこともあることに鑑みると、上書きにより修正したスレーブの時計の刻みは大きく跳躍することになる。つまり時間の進みが連続的でなくなり、途中の時刻を経由しないような状況となる。たとえば、1000nsを示していた時計が急に9000nsに上書きされた場合、途中の5000nsに予定されていた制御は実行するタイミングを失い、制御に重大な影響を与えるので、係る上書きによる時間同期は行えない。なお、計時機能が、従来の秒単位やms単位のものでは、たとえ上書きにより一気に時計の刻みが飛んだとしても、問題は生じないため、本発明のような解決課題はなかった。
この発明は、仮にnsオーダーの計時機能を持つ計時手段を備えたユニット間であっても、制御に影響を与えることなく比較的短時間で時間同期を行なうことができる産業用コントローラを提供することを目的とする。
この発明による産業用コントローラは、(1)複数のユニットを連結して構成される産業用コントローラであって、その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなる。マスタは、自己の計時手段に基づき規則的な周期で所定のスレーブに対して計時タイミング信号を複数回送る機能を有する。スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、を備える。上記の構成を基本構成とし、時間差調整量算出手段が求める調整量は、スレーブ側の時間軸のズレを徐々にマスタ側に近づけるものとした。計時手段は、実施形態の時計に対応する。
本発明では、スレーブ側の計時手段の時間軸のズレが徐々に解消され、最終的にマスタ側の計時手段と時間合わせ(時間同期)が行なわれるので、調整作業中であってもスレーブの時間軸は連続して進む。よって、本発明の産業用コントローラは、スレーブの時間軸上で設定された処理が飛ばされ、実行されないようなことが無く、正しく制御が行なわれる。また、この時間合わせの調整作業は、定期的(たとえば1秒間隔)或いは不定期に実行すると良い。このようにすると、仮に計時手段の性能があまり高くなく、個々にばらつきがあるとともに、時間の経過に伴いずれが生じるような場合でも、適宜のタイミングで調整作業を行なうことで、常時マスタとスレーブの計時手段の時間同期が保証される。この作用効果は、以下の各発明でも同様である。
規則的な周期は、実施形態に示すように、1つの固定した周期(t1,t2,t3,…が、同一時間間隔)でもよいし、個々の周期は変わるもののその変化が一定の規則に従って行なわれるものでもよい。一定の規則に従って個々の周期が変わるものとしては、たとえば、t1まで1.0秒,t2まで1.2秒,t3まで1.5秒,t4まで1.0秒,t5まで1.2秒,t6まで1.5秒,t7まで1.0秒,…というようにある規則(パターン)で各周期を変化させるのを繰り返し行なうようにしたり、t1まで1.0秒,t2まで1.2秒,t3まで1.0秒,t4まで1.2秒,t5まで1.0秒,…というように2つ置きに交互に変化させるようにしたりするなどの他、各種のバリエーションをとることができる。1つの固定した周期とした場合、プロセッサのクロック周期に基づいて処理を行なうことで、IEEE1588の規格に準拠させることができる。もちろん、プロセッサのクロック周期に基づいて実行させることは、本発明の必須の要件ではない。
(2)別の解決手段は、上記の基本構成を前提とし、調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求める手段を備える。そして、時間差認識手段は、前記調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻が一致していると仮定した場合の時間差を、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cとして求めることができるものであり、時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cと前記ずれに基づき、自機の計時手段の時刻と前記マスタの計時手段の時刻の差を徐々に少なくし、前記4回目の周期の終了時点で自機の計時手段の時刻が前記マスタの計時手段の時刻に一致するような前記調整量を求める機能と、を有するようにした。この発明は、図8(b),図11(b),図12(b),図13(b)に示す実施形態並びに変形例にて実現される。
これにより、各周期では、スレーブの計時手段の時刻は、連続的に変化しながら修正され、調整開始時点(実施形態のt1)でマスタとスレーブの時刻にずれがあったとしても、最終的に4回目の周期でマスタの計時手段の時刻に一致し、絶対的な時刻合わせが完了する。よって、時刻が飛ぶことがないので、制御運転を行ないつつ、調整作業が行なえ、その後は、マスタとスレーブの周期が一致すると共に、時刻も一致しているので、絶対時刻での指定や、所定時間経過後など相対的な指定によって、スレーブが精度良く同期運転等する。
特に、2回目の周期が自機で(T−2A)になるような調整量を求めた場合、その周期の終了時の時間差(=B)は、ほぼゼロに近づくので、時間差Bの測定精度(分解能)を高くすることができ、それ以降の調整作業がより高性能に行える。さらに、2回目の周期が自機で(T−2A)で、3回目の周期が自機で(T−A)になるように調整量を設定した場合、時間差B,Cは、共にほぼゼロに近い値をとることができ、性能があまり高くないMPUを用いたスレーブでも、精度良く時間差を測定し、適切な調整量を求めることができ、より高性能な時間同期を行なうことができる。
なお、「調整開示時点におけるマスタの計時手段の時刻とスレーブの計時手段の時刻が一致していると仮定した場合」とは、実際に2つの計時手段の時刻が互いに一致することを必要としておらず、また、各計時手段が示す時刻の実際の物理的時間差を求めることを必要としなくてもよく、この発明でいう計算上の想定時間差を便宜的に求めるための抽象的概念を説明する限りにおける仮定を意味する。以下同様である。また、その「仮定した場合の時間差」とは、各計時手段が示す時刻の実際の物理的時間差を求めることを必要としなくてもよく、この発明でいう計算上の想定時間差を説明するための抽象的概念を意味する。以下同様である。
(3)別の解決手段は、上記の基本構成を前提とし、調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求める手段を備える。そして、時間差認識手段は、前記調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻が一致していると仮定した場合の時間差を、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cを求めることができるものであり、前記時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−3A)になるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cと前記ずれに基づき、自機の計時手段の時刻と前記マスタの計時手段の時刻の差を徐々に少なくし、前記4回目の周期の終了時点で自機の計時手段の時刻が前記マスタの計時手段の時刻に一致するような前記調整量を求める機能と、を有するようにした。この発明は、図14(b),図15(b)に示す変形例にて実現される。
(4)別の解決手段は、上記の基本構成を前提とし、調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求める手段を備え、時間差認識手段は、前記調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻が一致していると仮定した場合の時間差を、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差Bを求めることができるものであり、時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A),(T−3A)のいずれかになるような前記調整量を求める機能と、3回目の周期が時間差A,Bと前記ずれに基づき、自機の計時手段の時刻と前記マスタの計時手段の時刻の差を徐々に少なくし、前記3回目の周期の終了時点で自機の計時手段の時刻が前記マスタの計時手段の時刻に一致するような前記調整量を求める機能と、を有するようにした。この発明は、図16(b),図18(b),図19(b)に示す実施形態並びに変形例にて実現される。
(5)(2),(4)の発明を前提とし、2回目の周期が(T−2A)になるような調整量を設定した場合に、前記時間差認識手段で求めた前記時間差Bが基準値以内か否かを判断し、基準値以内の場合は、次の周期が(T−A−”前記ずれ”)で、それ以降の周期が(T−A)になるように調整を行なう機能を備えるようにするとよい。(2)にて説明したとおり、2回目の周期が(T−2A)になるように調整をした場合、時間差Bは、ゼロに近づく。そこで、測定した時間差Aが、実際の時間差にほぼ一致しているような場合には時間差Bもゼロ或いはそれに近い値となるので、この2回目の周期の調整作業で時間あわせ(時のあゆみ:周期の長さが一致すること)が成功するので、次の周期で調整開始時における時刻のずれ分を調整して時刻を一致させ、それ以降は、その一致した状態を維持するようにすることで、時間差Cを求めそれに基づく調整作業を省略することができ、スレーブの負荷が軽減する。
(6)調整開示時点よりも前(実施形態のt(−n))に、マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求め、そのずれが徐々に小さくなるようにスレーブの計時手段を調整する手段を備えるとよい。このようすると、調整開始時点(実施形態のt1)におけるマスタとスレーブの時刻のずれが小さくなり、最終的にずれ分を考慮して時刻合わせをする際の変化量を小さくすることができる。
(7)別の解決手段は、上記の基本構成を前提とし、時間差認識手段は、マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cを求めることができるものであり、時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cに基づき、マスタの計時手段と自機の計時手段との時間差が無くなるような調整量を求める機能と、を有するようにした。この発明は、図8(a),図11(a),図12(a),図13(a)に示す実施形態並びに変形例にて実現される。特に、2回目の周期が自機で(T−2A)になるような調整量を求めた場合、その周期の終了時の時間差(=B)は、ほぼゼロに近づくので、時間差Bの測定精度(分解能)を高くすることができ、それ以降の調整作業がより高性能に行える。さらに、2回目の周期が自機で(T−2A)で、3回目の周期が自機で(T−A)になるように調整量を設定した場合、時間差B,Cは、共にほぼゼロに近い値をとることができ、性能があまり高くないMPUを用いたスレーブでも、精度良く時間差を測定し、適切な調整量を求めることができ、より高性能な時間同期を行なうことができる。
(8)別の解決手段は、上記の基本構成を前提とし、時間差認識手段は、マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cを求めることができるものであり、時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−3A)になるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cに基づき、マスタの計時手段と自機の計時手段との時間差が無くなるような調整量を求める機能と、を有するようにした。この発明は、図14(a),図15(a)に示す変形例にて実現される。
(9)別の解決手段は、上記の基本構成を前提とし、時間差認識手段は、マスタから与えられる周期Tのタイミングで、順に時間差A,時間差Bを求めることができるものであり、時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A),(T−3A)のいずれかになるような調整量を求める機能と、3回目の周期が自機で(T−A−2B)になるような調整量を求める機能と、を有するようにした。この発明は、図16(a),図18(a),図19(a)に示す実施形態並びに変形例にて実現される。
(10)(7),(9)の発明を前提とし、2回目の周期が(T−2A)になるような調整量を設定した場合に、時間差認識手段で求めた前記時間差Bが基準値以内か否かを判断し、基準値以内の場合は、それ以降、周期が(T−A)になるように調整を行なう機能を備えるようにするとよい。(7)にて説明したとおり、2回目の周期が(T−2A)になるように調整をした場合、時間差Bは、ゼロに近づく。そこで、測定した時間差Aが、実際の時間差にほぼ一致しているような場合には時間差Bもゼロ或いはそれに近い値となるので、この2回目の周期の調整作業で時間あわせが成功するので、それ以降は、その一致した状態を維持するようにすることで、時間差Cを求めそれに基づく調整作業を省略することができ、スレーブの負荷が軽減する。
(11)計時手段は、nsオーダーの計時機能を持つものとするとよい。本発明では、nsオーダー(単位)で計時するものに好ましく適用できるが、それ以外の計時機能のものに適用してももちろん良い。
(12)前記スレーブを複数備えた産業用コントローラであって、マスタは、その複数のスレーブがそれぞれ求めた前記時間差の情報を取得すると共に記憶手段に記憶保持し、その記憶手段に記憶保持した各スレーブの時間差の履歴と傾向が異なる時間差のスレーブを検出し、その検出したスレーブの数に応じて異常を検出する異常検出手段を備えると良い。この発明は、図25以降の実施形態により実現される。スレーブが複数存在すると、時間あわせを行なうユニットがマスタを含めて3台以上存在することになるので、過去履歴と傾向が異なる時間差を計測したスレーブが存在した場合に、そのスレーブが異常か否か、さらには、スレーブ以外(マスタや信号伝達媒体等)の異常箇所を推定することができる。
(13)異常検出手段は、傾向が異なる時間差のスレーブが1つの場合には、そのスレーブの計時手段が異常と判断する機能と、傾向が異なる時間差のスレーブが設定された数以上の場合にはマスタの計時手段が異常と判断する機能と、傾向が異なる時間差のスレーブが複数の場合には、スレーブを接続する信号伝達媒体の異常と判断する機能のうち、少なくとも1つの機能を備えると良い。
本発明は、仮にnsオーダーの計時機能を持つ計時手段を備えたユニット間であっても、制御に影響を与えることなく比較的短時間で時間同期を行なうことができる。
図1は、本発明が適用される産業用コントローラの一種であるPAC1の一形態を示している。このPAC1は、各種の機能を実現するための複数のユニットを連結し、互いに内部バスにより接続して構成される。この複数のユニットは、少なくとも1つのCPUユニット2を有する。更に、本実施形態では、PAC1は、電源ユニット3,モータユニット4,カウンタユニット5,画像ユニット6,通信ユニット7,I/Oユニット8を備えている。もちろん、PAC1を構成するユニットは、上記のものに限ることはなく、実行したい制御等に応じて必要なものを適宜取捨選択して構成する。例えば、PACは、「CPUユニット+モータユニット+カウンタユニット」,「CPUユニット+I/Oユニット」という構成も有効である。なお、本実施形態では、PAC1を例にして説明するが、PLCについても同様である。
CPUユニット2は、制御対象をどのように動作させるかという制御内容に応じてユーザが組んだ制御プログラムに基づく演算を繰返し実行する。また、CPUユニット2や、その他のユニットに対して各種の詳細設定を行なう場合、図1に示すように、ユーザは、CPUユニット2にパソコンを接続するとともに、そのパソコンにインストールされたアプリケーションプログラムである設定ツールを起動し、その設定ツールを用いて詳細設定する。電源ユニット3は、商用電力・交流電圧を各ユニットに応じた直流電圧に変換し、連結された各ユニットに電力を供給する。なお、各ユニットに対して直接直流電圧を供給することで、電源ユニットを接続しないPACの構成もある。モータユニット4は、1台以上のサーボドライブ(サーボモータとその制御装置)を接続でき、モータ(図示せず)の制御を行なう。カウンタユニット5は、高速カウンタ、または制御対象の位置の変化に応じてパルス信号を出力する1台以上のロータリーエンコーダを接続し、回転量や移動量などをパルス信号に基づいて計測する。画像ユニット6は、1台以上のカメラを接続し、カメラからの撮像画像に基づいて移動量や部品個数などを計測する。通信ユニット7は、ネットワークに接続された他の外部装置とデータの送受を行なう。I/Oユニット8は、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニットやアクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット等である。
これらの各ユニットは、ユニットの側面に設けられたコネクタ同士を接続することで、電気的に接続される。つまり各ユニットに内部バスが貫通し、パラレル通信や高速シリアル通信をするための内部バス線等を用いて接続され、その内部バスによりユニット間で互いにデータの送受が行なわれる。なお、ユニットの側面に代えてユニットの背面に設けられたコネクタ同士をベースユニットと呼ばれるベース基板のバス線を介して接続することで電気的に接続する構造でもよい。
PAC1の機能の一つである高速性を実現するため、所定のユニットには、計時機能としてμs単位よりも桁が小さく、数百nsの単位、数十nsの単位、または数nsの単位(以下ns単位という)の時計1bが実装される(図2参照)。但し、PAC1を構成する全てのユニットに、当該ns単位の時計1bが実装されるわけではない。すなわち、例えば画像ユニット6は、カメラのシャッタースピードが主にms単位であるため、ns単位の時間同期の必要性は少ない。同様に、I/Oユニット8に関しても、時間同期の機能を組み込んだユニット(時間同期に関してスレーブとなる)と、時間同期の機能を組み込んでいない低速安価なI/Oユニットが存在し得る。
PAC1の機能の1つである高精度を担保するためには、各ユニットに実装されるns単位の計時機能を持つ内部時計が、基準の時計、つまりマスタの時計と正確に時間同期する必要がある。そこで、図2に示すように、本実施形態では、バスまたは高速シリアル通信線等の通信媒体1aに接続される、最低1台のマスタと、最低1台のスレーブから構成され、マスタとスレーブは各々ns単位といった微小時間の計時機能(ns単位の時計1b)を持ち、相互の時計を時間同期させるシステム構成を採る。スレーブが複数存在する場合には、個々のスレーブがマスタの時計1bに同期をとることで、PAC1を構成するns単位の時計1bが実装されるユニット間で高精度に同期を採ることができる。具体的には、マスタは、高機能な1つのCPUユニット2により実現され、残りのユニットがスレーブとなる。
また、マスタ,スレーブに内蔵される時計1bは、内蔵する水晶発振器に基づくクロックパルスのパルス数を計数することで、時刻を求める。つまり、クロックパルスの周期から1パルスあたりの時間(基準時間)がわかるので、パルス数に基準時間を乗算することで、その計数していた期間に経過した時間を求めることができる。よって、電源投入時からの総パルス数を求めることで、電源投入時からの経過時間を算出することができる。そして、あるパルス数のときの時刻(何時何分といった基準時刻)が決まれば、任意の時点でのパルス数と基準時刻の時のパルス数の差分から、当該任意の時点の時刻が決定される。時計1bのよる計時は、上記のように基準時刻とパルス数に基づいて時刻を決定することで行なう。
そこで、マスタ,スレーブの個々の時計1bにおける1パルスあたりの時間(基準時間)が等しい(つまり時の進みが同じの意味)と、ある時点での時刻を一致させることで個々の時計1bで計時される時間が同じ(つまり時刻が同じの意味、換言すれば絶対的な時間が同じの意味)になり、絶対的な時間が合った時間同期が行なわれる。そして、水晶発振器に基づくクロックパルスは、水晶発振器自体のクロック信号ではなく、クロック信号に対してPLL等のハードウェアからなる調整手段で調整されたものであるので、1パルスあたりの時間を合わせるのは、この調整手段で行なうことができる。
なお、上述したように、PAC1を構成するユニットの中には、微小時間の計時機能に対応しないものもあり、係るユニットは本実施形態における時間同期に関与しないユニットとなり、時間同期に関してはマスタにもスレーブにもならない。
図3は、CPUユニット2の内部構成を示している。CPUユニット2は、MPU2aと、周辺コントローラ2bと、メモリ2cと、時計2d(図2におけるCPUユニット2に実装された時計1bに対応)と、第1通信インタフェース2eと、第2通信インタフェース2fと、を備えている。
MPU2aは、パーソナルコンピュータ等にも実装される高性能なもので、所定の演算処理を実行する。このMPU2aは、実行周期ごとに分けた複数のタスクを、定周期間隔でスキャンし動作する。すなわち、MPU2aが実行すべきタスクは、たとえば1ms周期で実行すべきタスクもあれば、2ms周期で実行すべきタスクもある。もちろん、それ以外にも、4ms,8ms,……というような様々な周期のタスクが存在することがある。そこで、MPU2aは、マルチタスク処理により実行すべき周期のタスクを演算処理する。なお、各タスクは、例えば、ラダー言語などで書かれたプログラムを実行するものである。従来のPLCの場合、上記の各タスクの実行周期という概念はなく、それら各タスクに対応するプログラムをまとめて記述した一連の制御プログラムを先頭から順に実行し、更に、I/Oリフレッシュや周辺処理を含む1つのサイクルをサイクリックに実行するようにしていたが、本実施形態のPACは、上記のようにマルチタスク処理(時分割処理)を行なう点で相違する。但し、PACは、必ずしもマルチタスク処理をするものではなく、従来のようにサイクリックに処理をするものでも良い。
周辺コントローラ2bは、チップセットとも称されるもので、メモリ2cや各種インタフェース2e,2f等とMPU2aとの間を取り持ち、調停やタイミング調整を行なう。これにより、MPU2aは、演算に注力することができる。メモリ2cは、例えばMPU2aが演算処理をする際にワークメモリとして使用される。第1通信インタフェース2eは、他のスレーブと通信をするもので、PAC1の内部に実装される通信媒体(内部バス,高速シリアル通信線)1aを介して通信をするためのインタフェースである。第2通信インタフェース2fは、ツール装置を構成するパーソナルコンピュータと接続を図るためのインタフェースである。
時計2dは、ns単位で計時可能な機能を持つ。この時計2dは、MPU2aからも読み書きが可能となる。また、図示した例では、時計2dと第1通信インタフェース2eとが別々に構成されているが、第1通信インタフェース2eが精度の高い時間情報を活用するためには、ns単位の時計2dと第1通信インタフェース2eとの2つの機能を一つのIC/ASICに組み込み結合させるようにしてもよい。そのようにすると、通信インタフェースの機能は、MPU経由で読み書きするのに比べ高精度な時間情報を活用することができる。
図4は、スレーブの一例であるモータユニット4の内部構成を示している。このモータユニット4は、MPU4aと、メモリ4cと、時計4d(図2におけるモータユニット4に実装された時計1bに対応)と、第1通信インタフェース4eと、第2通信インタフェース4fと、を備えている。なお、以下の説明では、モータユニット4の例をとって説明しているが、スレーブを構成する他の機能を実現するためのユニットにおいても同様の構成(時間同期機能)を採ることで、時計合わせができるのはもちろんである。
MPU4aは、所定の演算処理を実行するもので、CPUユニット2のMPU2aと比べて機能が限定されており、演算性能もCPUユニット2のMPU2aほどは要求されないことが多いので、例えば、16bitマイコンや32bitマイコン等により実現することができる。よって、CPUユニット2のように周辺コントローラを設けることなく、MPU4aが直接各種インタフェースを管理する構成を採る。
メモリ4cは、例えばMPU4aが演算処理をする際にワークメモリとして使用される。第1通信インタフェース4eは、マスタと通信をするもので、PAC1の内部に実装される通信媒体(内部バス,高速シリアル通信線)1aを介して通信をするためのインタフェースである。第2通信インタフェース4fは、そのユニットに接続される外部機器との通信インタフェースであり、モータユニット4の場合には、サーボドライブと通信するためのものである。図示省略するが、カウンタユニットでは、この部分は高速カウンタとの通信インタフェースとなるし、通信ユニット7であれは、接続されるネットワークに対応する通信インタフェースとなるし、画像ユニットであれば、この第2通信インタフェース部分は、カメラとの通信インタフェースとなる。
時計4dは、ns単位で計時可能な機能を持つ。この時計4dは、MPU4aからも読み書きが可能となる。また、CPUユニット2の場合と同様に、時計4dと第1通信インタフェース4eとの2つの機能を一つのIC/ASICに組み込み密結合させるようにしてもよい。
図5は、モータユニット4の機能を示すフローチャートである。MPU4aは、第1通信インタフェース4eを介してマスタ(CPUユニット2)から制御値、制御指定時間を取得する(S1)。制御値は、例えばサーボモータの移動量(回転角度)を規定するもので、次のサイクルで出力するサーボドライブのパルス数等である。制御指定時間は、制御値を出力する時間情報である。この時間情報は、例えば、時刻であったり、所定時間経過後であったりする。
MPU4aは、これらの制御値,制御指定時間を取得すると、時計4dを監視し制御指定時間に到達するのを待つ(S2)。そして、制御指定時間に到達したならば(S2がYes)、MPU4aは取得した制御値を、第1通信インタフェース4eを介してサーボドライブに送出し(S3)、サーボドライブからのACKを受領した(S4)ならば、処理ステップS1に戻り、次の指示を待つ。このように、モータユニット4は、CPUユニット2の指示により、サーボドライブを制御するものである。
本実施形態では、ns単位の時計4dを搭載すると共に、この時計4dとCPUユニット2の時計2dとを正確に合わせる機能を備えている。その結果、仮に、CPUユニット2に複数のモータユニット4が接続されていた場合、各モータユニット4の時計4dが正確に合っているので、同一のタイミングで制御値をそれぞれのモータユニット4に接続されたサーボドライブに送出することができる。また、カウンタユニット5とモータユニット4との時間が同期し定周期ごとに制御を行うシステムでは、モータユニット4で前の一周期の間に回転した量を正確にカウンタユニット5で計測することができる。
次に、時計を合わせる機能(時間同期機能)について説明する。モータユニット4を始め、各スレーブを構成するユニットには、図6に示す時間同期機能を備える。この時間同期機能は、一部又は全部をアプリケーションプログラムとして実現することができ、そのプログラムはMPU4にインストールされ実行される。もちろん、時間同期機能は、専用のIC等により実現することもできる。
図6に示すように、この時間同期機能は、時間差認識部20と、時間差調整量算出部21と、周波数・波数調整部22と、を備えている。時間差認識部20は、他機(ここでは、マスタであるCPUユニット2)の時計2dと、自己の時計4dとの時間差を求めるもので、IEEE1588等により規格化された技術により実現できる。
時間差調整量算出部21は、時間差認識部20で求めたマスタの時計との時間差に基づき、スレーブの時計をマスタの時計に滑らかに漸近させていくための次のサイクルでの調整量などを算出するものである。この時間差調整量算出部21の具体的なアルゴリズムは、後述する。
周波数・波数調整部22は、時間差調整量算出部21で求めた調整量に従い、自己の時計4eの動作を調整するものである。すなわち、時計を駆動するクロック信号は、水晶発振器の発振周波数等により規定され、微視的に比較すると、それぞれ固有のばらつきを持つ。そこで、時計を駆動しているクロック信号に対し、PLLや周波数スケーリング等のハードウェアからなる調整手段を用いて時間差調整量算出部21で求めた調整量になるように調整処理を行なう。なお、係る、指定された調整量になるように調整・修正する調整手段としては、たとえば、特許3757167号に開示された周波数・位相を調整するPLLや、特許3553020号に開示された波数を調整する周波数スケーリング等の技術を用いて実現できる。
この時計あわせを行なうための時間同期機能は、図5に示すフローチャートを実行する本来持つ外部機器に対する制御機能とは別に独立して動作する。つまり、それぞれの機能は、マスタからの指示に従い動作する。そして、時間同期機能の概要は、以下の通りである。
まず、本実施形態の前提として、マスタの時計は、周期Tは不変で規則正しく計時するものとし、またはマスタの時計の周期が仮に極微小に変動したとしてもマスタの時計を基準と定めることとし、スレーブがマスタの時計に合わせるものとした。そして、時間同期機能は、できるだけ少ない試行回数で、マスタとスレーブの時間差をゼロに近づけるようにすることを目的とし、マスタから一定の間隔で発行される時間差測定指示に基づき、スレーブの時間差認識部20がそのときのマスタとの時間差を求め、求めた時間差に基づき時間差調整量算出部21が次のサイクルでの調整量を求め、求めた調整量に従い周波数・波数調整部22にて実際にスレーブの時計の調整を行なう。
図7(a)は、時間同期機能の前提となる概念を示している。図において、横軸は、マスタの時計の時間経過を示し、上述したように不変で規則正しく計時される。これに対し、折れ線で示すのが、スレーブ側の時計の計時状態であり、横軸よりも上側はスレーブの時計がマスタの時間よりも進んでいる状態を示し、横軸よりも下側はスレーブの時計がマスタの時間よりも遅れている状態を示す。そして、横軸から離れるほど、マスタとスレーブのそれぞれの時計のズレ量が大きいことを示す。なお、図ではスレーブの時計の状態を連続した折れ線で示しているが、時間同期機能は、時々刻々と変化する自己の時計のズレを直接認識しているのではなく、マスタからの指示に従い離間的に測定する時間差に基づきその間を推定(直線で結ぶ)するようにしている。
図7(a)に示すように、時間同期機能は、まず補正を行なっていないフリーランの状態で、マスタとの時間差を2回計測(t1,t2)し、時間差の変化率・傾き(=バイアス)αを測定する。なお、t1の時にマスタの時計とスレーブの時計の時間(時刻)があっていると仮定すると、t2の時に時間差を計測することで傾きを求めることはできる。時間同期機能は、次のステップ(区間t2〜t3)における調整量として、求めた傾きの「マイナス2倍」(=−2α)に設定する。これにより、前回のステップ(区間t1〜t2)で生じた差を打ち消し、誤差をゼロに近づける(粗調整フェーズ)。その後、それ以降の区間の調整量として、区間t1〜t2までの傾きの「マイナス1倍」(α−α=0)に設定し、誤差ゼロに近づいた状態を維持する(維持フェーズ)。なお、時間差を測定するタイミング(t1,t2,t3)は、マスタが決める周期Tで、十分精度良く定期的である。
換言すると、調整開始時のt1から、次に時間差の測定指示がきたt2までの区間で生じた時間差がAとすると、t2〜t3の区間は、t1〜t2の区間の傾き(A/(t2−t1))の「マイナス2倍」を適用して補正する。つまり、t2のときに、マスタの周期をT(=t2−t1)とすると、次の期間のスレーブの周期が(T−2A)となるように制御する。そして、係るt2〜t3の区間で誤差をゼロに近づけて調整が完了すると、以降は、時の進みを両者であわせるため、以降のスレーブの周期は、T−Aになるように調整する。
このようにスレーブ側の時計の時間軸のズレが徐々に解消され、最終的にマスタ側の時計と時間合わせ(時間同期)が行なわれるので、調整作業中であってもスレーブの時間軸は連続して進む。よって、本実施形態のPACは、スレーブの時間軸上で設定された処理が飛ばされ、実行されないようなことが無く、正しく制御が行なわれる。
上記の時間あわせは、時間同期処理の開始時点(t1)におけるマスタとスレーブの時計の時間(時刻)が一致していることを前提とする。従って、係る一致させるためには、たとえば、マスタから各スレーブに対して一斉同報により、マスタの時計にあわせた現在時刻(タイムスタンプ)を送信し、それを受信したスレーブが内蔵する時計の時刻を受信した現在時刻に上書きすることで行える。係る処理は、たとえば、実際の制御を行なっている場合には、上書きにより各スレーブの内部時計の時刻が飛び、制御に影響を与えるので実行できないが、実際の制御開始前のトレーニング期間(準備期間)であれば問題がない。これにより、実際の制御開始前に、この上書きにより基準時刻を合わせて、その後、上記の手法で進み時間の調整あわせを行なうことで、各時計の時間あわせを行なうことができる。
上記のように、スレーブが受信したマスタのタイムスタンプをそのまま上書きした場合、少なくとも、伝搬遅延に応じた時間だけマスタとスレーブとの間で絶対時刻がずれることになり、同期制御を絶対時刻を指定して行なう場合には、当該伝搬遅延分だけずれて動作することになる。伝搬遅延自体は、非常に短時間ではあるが、nsオーダーのより高精度な時間制御を行なう場合に、影響を生じるおそれがある。もちろん、一定時間後というような相対的な同期制御を行なう場合には、時間合わせのときと、実際の制御指令を送信する際に同じように伝搬遅延を生じるとすると、ほぼ正確な制御を行なうことができるとも言える。
一方、マスタが送信するタイムスタンプに着目すると、同報メッセージを作成する際のタイムスタンプを、当該メッセージに格納するようにした場合、メッセージ作成から送信までのタイムラグにより、正確に送信した時刻ではないとともに、当該タイムラグは必ずしも一定になるとは限らない。そこで本実施形態では、送信するマスタのタイムスタンプ(現在時刻)として、例えば図20に示すように、まず、マスタが、スレーブに対して「Sync」メッセージを送信するとともに、この送信したときの自身のローカル・システム・クロック(時計)のタイムスタンプ(TS1)を記録する。これにより、マスタは、当該メッセージを送信した時刻を正確に記録することができる。スレーブは、このSyncメッセージを受信すると、その受信したときの自身のローカル・システム・クロック(時計)のタイムスタンプ(TS2)を記録する。
次に、マスタがスレーブに対して「Follow_up」メッセージを送信する。このメッセージの中には、先に Syncメッセージを送出したときのマスタのタイムスタンプ(TS1)が含まれる。スレーブは、これら2つのタイムスタンプTS1,TS2をもとに、マスタの時計の時刻とスレーブの時計の時刻との差分、つまり、オフセットOを求めることができる。よって、スレーブは、任意のタイミングで、現在の自己のタイムスタンプ(現在時刻)に、オフセット分だけ差分を採った値に書き換えることで、自己の時計の時刻をマスタの時計の時刻に合わせることができる。
このようにマスタとスレーブの時刻合わせが完了したならば、以下の手順で、伝搬時間を求めることができる。すなわち、スレーブがマスタに対して「Delay Request(Delay_Req)」メッセージを送信する。このDelay_Req メッセージの送出をトリガとして、スレーブは当該メッセージ送信時の自身の時計のタイムスタンプ(TS3)を記録する。マスタは、このDelay_Reqメッセージを受信したときの自身の時計のタイムスタンプ(TS4)をキャプチャする。
次いで、マスタは、スレーブに対して「Delay Response (Delay_Resp)」メッセージを返す。このメッセージの中には、先にマスタがdelay_Reqメッセージを受信した時のマスタのタイムスタンプ(TS4)が含まれる。スレーブはこれら2つのタイムスタンプTS3,TS4の差分を求め、マスタとスレーブのノード間の伝播遅延を算出することができる。なお、IEEE 1588プロトコルではネットワーク内の伝播遅延が対称であることを前提とする。
以上の4つの手順を踏むことで、スレーブはマスタとのクロック差分(オフセット)およびネットワーク伝播遅延という2つの情報を取得し、これによってマスタとの時間同期を行なうことができる。なお、時間同期の精度は、IEEE 1588メッセージの送受信の際にどれだけ正確にタイムスタンプを記録できるかに依存する。この点については、ファームウェアの割り込みやアプリケーション・レベルでのトリガを利用するよりも、物理層のレベルでハードウェア・ベースのトリガを利用する方が、精度が高くなる。物理層レベルのトリガを利用してタイムスタンプを記録することで、ナノ秒からサブマイクロ秒オーダーの精度で時間同期を行うことができる。
一方、上記のように、上書きに基づき時間あわせを完了した場合、運転開始当初は各スレーブとマスタの時計の時刻は一致しているため、同期制御等がns単位で精度良く行なうことができる。しかし、各スレーブの時計は、通常、水晶発振器の発振周波数を利用して計時が行なわれるが、その水晶発振器の発振周波数は、常に一定とは限らず、動作中に変動することがある。すると、計時の基となる水晶発振器の発振周波数が変化すると、当然のことながら、時間の進みが変化し、他のスレーブやマスタとの時計が示す時刻と同期がとれなくなる。そして、すでに、制御運転が開始されている場合、上述した初期あわせのように上書きにより時間あわせ制御の開始時点(t1)で調整対象のスレーブの時計の時刻をマスタに併せることはできない。従って、係る場合には、すでにマスタとスレーブの時計の時刻がずれていることを前提とし、係るズレ(オフセット)を加味して各時計の時間あわせを行なう必要がある。
そのため、時間合わせを行なうに際し、マスタとスレーブの時刻のズレ(オフセット)を求め、そのオフセット分も考慮して時間合わせを行なうとよい。すなわち、たとえば図7(b)に示すように、時間合わせ制御の開始点(t1)のときに、オフセットOを求めてレジスタに記憶する。次いで、調整開始時のt1から、次に時間差の測定指示がきたt2までの区間で生じた時間差Aを求め、t2〜t3の区間は、スレーブの周期が(T−2A−O)となるように制御する。そして、係るt2〜t3の区間で誤差をゼロに近づけて調整が完了すると、以降は、時の進みを両者であわせるため、以降のスレーブの周期は、T−Aになるように調整する。
ところで、上記の調整アルゴリズムを用いた場合、マスタとスレーブの時間差がたまたま小さいか、時間差認識部20の測定精度が十分に高い場合は、静定させるのは可能である。しかし、実際には、時計を合わせる間隔(s)と合わせる精度(100ns)は1千万倍のオーダーにも及ぶため、図7(a)に示す調整アルゴリズムでは、残差を取りきれず静定させられない場合がある。すなわち、MPUの性能から一度に演算処理できる桁数に限界があり、測定した時間差は、その測定値丁度の場合もあるが、通常は、有効桁数以下で測定結果から微小時間のズレがある。従って、仮に測定した時間差(それに基づく傾き)に測定誤差がない場合には、傾き(α)のマイナス2倍(−2α)で調整すると、t3の時には時間差が0になる。そして、有効桁数以下の測定結果に表れない時間差分があるため、t3の時に時間差が0にならず、また、維持フェーズにおいても徐々に時間差が開いていくおそれがある。特に、t2で測定した時間差が大きい場合には、一度に演算処理可能な桁数の関係から微小時間部分の時間差を十分に認識することができない。その結果、従来のμs程度の時計の場合には、係る有効桁数以下の微小時間のズレは時計合わせにさほど影響を与えないものの、本実施形態のようにns単位の時計の時間あわせでは、係る微小時間のズレが大きく影響を与えることになり、高精度な時計あわせができなくなるのである。以下、具体的な調整アルゴリズムを、制御開始前のトレーニング期間や、実際の運転中時それぞれの場合に分けて説明する。
まず、本実施形態では、図8に示すように、粗調整フェーズの後に精密調整フェーズを設け、2段階で調整を図るようにした。2段構成で調整を行なうので、1段で1万倍の誤差を補正できるとすると、2段で1万×1万=1億倍の誤差を効果的に補正できる。しかも、図示するように、5ステップで静定に至るので、早期に調整作業が終了する。さらに、調整量は、時間差の傾きを基準に「マイナス2倍」や、「マイナス1倍」等の演算処理により求めるので、演算の過程で乗除算を必要とせず、低機能のMPUでも実装可能と言うメリットを有する。すなわち、2倍は1回の加算か、1回の2進数1ビットシフトで実現可能であるし、3倍は2回の加算で実現可能であるためである。
2段階での調整の具体的なアルゴリズムは、以下の通りである。まず、図8(a)に基づいて、実際の制御運転開始前の初期設定あわせ時における調整アルゴリズムについて説明する。まず、粗調整フェーズについては、上述した図7(a)に示すものと同様である。調整開始時のt1において、時刻の上書き等によりマスタとスレーブの時刻を一致させる。これは、たとえば、t1の時点においてマスタから調整対象のスレーブに対して測定指示を送るに際し、マスタの時計の時刻情報をあわせて送る。これにともない、スレーブは、受信した時刻情報に従って自己の時計の時刻合わせを行ない、t1の時点でのマスタとスレーブの時刻を一致させることができる。
そして、係るt1から、次に時間差の測定指示がきたt2までの区間で生じた時間差がAとすると、その後全く補正をしないとすると、スレーブの時間は図中点線に示すように進む。本実施形態では、t2の時に、t1〜t2の区間の傾き(A/(t2−t1))の「マイナス2倍」を適用して補正するため、次のt2〜t3区間では、実線で示すようにそれまでの差を打ち消すように誤差ゼロに近づく。そして、次の時間差を測定するt3のときには、全く修正しない場合に比べて2A分だけ時間差が解消される。そして、そのときのマスタとスレーブの時計の時間差は、Bとする。この2回のステップにより粗調整フェーズは終了し、マスタとスレーブの時計の時間差Bは小さくなる。
次のステップ(区間t3〜t4)では、区間t1〜t2までの傾きの「マイナス1倍」に設定し、再度、傾きを精密に測定する。つまり、t4の時の時間差Cを測定し、t3の時の時間差Bとの差分(C−B)を周期(T:t4−t3)で除算して傾きを求める。このようにして求めた傾きから、次のステップ(区間t4〜t5)でぴったり誤差ゼロにするための傾きを計算し、当該次のステップで適用する。t3,t4において求めた時間差B,Cは、いずれも時間差の絶対値が小さくなっているので、t2の時に比べて精度良く時間差を求めることができ、精密調整が可能となる。なお、このぴったり誤差ゼロにするための傾きは、演算処理によって求めても良いし、予め用意したルックアップテーブルを用いて演算を実行することなく求めても良い。
その後、前2回のステップ(t3の時とt4の時)に計算した傾きを再調整し、t5以降の維持フェーズでは、残差を限りなくゼロに維持する。この5クロック目(t6)で4クロック目(t5)との差から「静定」していることが確認できる。
係る処理を実行するための具体的なアルゴリズムは、時間同期機能を構成する各処理部20〜22が、図9に示すフローチャートを実行することで行なう。すなわち、まず、時間差認識部20は、マスタから指示されたタイミングで時間差Aを測定する(S11)。この処理ステップS11は、図8(a)におけるt1〜t2の区間に対応する。時間差調整量算出部21は、時間差認識部20が測定した時間差Aを取得し、その時間差が基準値以内かを判断する(S12)。この基準値は、自己の時計をマスタに合わせるための補正が必要か否かを判定するもので、予め設定してある。基準値以内(S12でYes)の場合には、補正・調整作業は不要であるので、粗調整等することなくそのまま処理を終了する。
一方、時間差Aが基準値以上の場合(S12でNo)には、時間同期機能は、マスタの周期T(=t2−t1)が自機で周期T−2Aとなるように周波数・波数を調整する(S13)。つまり、時間差調整量算出部21は、処理ステップS11で求めた時間差から、その周期T(t1−t2の区間)の自機の時計の時間差の傾きを求め、その傾きの「マイナス2倍」を調整量として決定し、周波数・波数調整部22は、自機の時計の進みが、その「マイナス2倍」の傾きになるように調整する。この処理ステップS13は、図8(a)におけるt2〜t3の区間の調整処理に対応する。
時間差認識部20は、マスタから指示されたタイミング(周期T経過)で時間差Bを測定する(S14)。この処理ステップS14は、図8(a)におけるt3のタイミングで時間差を求めることに対応する。時間差調整量算出部21は、時間差認識部20が測定した時間差Bを取得し、その時間差が基準値以内か否かを判断する(S15)。基準値以内(S15でYes)の場合には、処理ステップS13の粗調整による補正処理よって時計あわせが成功したことを意味するので、以降、時間同期機能は、マスタの周期Tが自機で周期(T−A)となるように周波数・波数を調整する(S16)。つまり、時間差調整量算出部21は、処理ステップS11で求めた時間差から求めたその周期T(t1−t2の区間)の自機の時計の傾きの「マイナス1倍」を調整量として決定し、周波数・波数調整部22は、自機の時計の進みが、その「マイナス1倍」の傾きになるように調整する。この処理で、今回の調整作業は終了し、そのまま維持フェーズとなる。なお、処理ステップS15の分岐判断における基準値は、処理ステップS12の分岐判断における基準値よりも小さい値となる。
一方、時間差Bが基準値以上の場合(S15でNo)には、処理ステップS17に飛び、図8(a)の精密調整フェーズに移行する。すなわち、時間同期機能は、マスタの周期Tが自機で周期T−Aとなるように周波数・波数を調整する(S17)。つまり、時間差調整量算出部21は、処理ステップS11で求めた時間差から求めたその周期Tの自機の時計の傾きの「マイナス1倍」を調整量として決定し、周波数・波数調整部22は、自機の時計の進みが、その「マイナス1倍」の傾きになるように調整する。この処理ステップS17は、図8(a)におけるt3〜t4の区間の調整処理に対応する。
次いで、時間差認識部20は、マスタから指示されたタイミング(周期T経過:t4)で時間差Cを測定する(S18)。そして、時間差調整量算出部21は、マスタの周期Tが、自機で周期(T−A−2C+B)となるような調整量(傾き)を算出し、周波数・波数調整部22は、求めた調整量に基づき周波数・波数を調整する。この処理ステップS19は、図8(a)におけるt4〜t5の区間の調整処理(誤差をゼロに調整する処理)に対応する。
次いで、時間差認識部20は、マスタから指示されたタイミング(周期T経過)で時間差Dを測定する(S20)。この処理ステップS20は、図8(a)におけるt5のタイミングで時間差を求めることに対応する。時間差調整量算出部21は、時間差認識部20が測定した時間差Dを取得し、その時間差が基準値以内か否かを判断する(S21)。ここでの基準値は、ほぼゼロに近い値を採り、マスタと自機(スレーブ)の時計が一致している(調整完了)か否かの判定基準となる。基準値以内(S21でYes)の場合には、処理ステップS19の精密調整による補正処理よって時計あわせが成功したことを意味するので、以降のステップでは、時間同期機能は、マスタの周期Tが自機で周期(T−A−C+B)となるように周波数・波数を調整する(S22)。一方、基準値を超えている場合(S21でNo)には、時間同期機能は、処理ステップS11に戻り、次のマスタからの指示に基づく新たな調整に備える。
ところで、粗調整を行なう場合、調整開始(t1)から周期T経過後(t2)までにマスタと自機の時計の時間差を求め、その求めた時間差(傾き)から次の周期の調整量を設定するが、このとき、調整量は、演算処理等の関係からn倍(nは整数)のバイアスとするのが好ましい。すると、図10に示すように、特徴量は、いくつかの態様が考えられる。まず、マスタとスレーブとの時間差(図中のA)を早期に限りなくゼロにする目的からは、「正のバイアスをかける」方式や「4倍以上の逆バイアスを掛ける」方式は、時間差を増やす方向に調整されるので好ましくない。同様に、「バイアスなしのまま時間差を複数回測定する」方式は、無駄な処理であるので好ましくない。
そこで、「マイナス1倍」,「マイナス2倍」,「マイナス3倍」の3種類が好ましい。さらに、2進数の場合、「マイナス1倍」,「マイナス2倍」は、演算の過程で乗除算を必要としないので、計算負荷が少なくて済み、MPUの処理能力が小さくても対応できるので、より好ましい。更に、時間差を測定する分解能は、時間差認識部20の実装方法やMPU内レジスタのビット長などによって変わる。仮に16ビットMPUと仮定すると1演算で扱える自然数は(2^16−1)=65535までである。この制約から仮に分解能を測定した時間差の1万分の1とすると、測定した時間差が小さければ小さいほど、分解能を小さくできる。従って、調整量を「マイナス2倍」とする本実施形態のものは、図8(a)からも明らかなとおり、A(粗調整)にくらべてBとC(精密調整)は十分小さくなり、BとCの分解能を小さくできるので好ましい。
図8(b)は、実際の制御運転時における調整アルゴリズムを示している。まず、調整開示時(t1)において、マスタの時計の時刻と、スレーブの時計の時刻の差であるオフセットOを求める。この求めたオフセットOは、レジスタ等にセットして記憶保持する。そして、t2→t3→t4までは、図8(a)に示した調整と同様にマスタとスレーブの時間差A,B,Cを求めるとともに、A,Bを用いた調整(粗調整フェーズ,精密調整フェーズの前段)を行なう。つまり、t2の時に、t1〜t2の区間の傾き(A/(t2−t1))の「マイナス2倍」を適用して補正し、次のt2〜t3区間では、実線で示すようにそれまでの時間差Aを打ち消すように誤差ゼロ(オフセット分を除く)に近づく。そして、次の時間差を測定するt3のときのマスタとスレーブの時計の時間差Bを求め、次のステップ(区間t3〜t4)では、区間t1〜t2までの傾きの「マイナス1倍」に設定し、再度、傾きを精密に測定する。そして、t4の時の時間差Cを測定する。
また、このとき求める時間差A,B,Cは、前回測定指示が来たときから今回測定指示が来たときまでに生じた時間差である。この時間差は、マスタの時計における時の進み方(時のあゆみ)と、スレーブの時計における時の進み方のずれであり、仮に両者で時刻が異なっていても(オフセットOがあったとしても)、両時計の時間経過の進み方が一致している場合には、時間差はゼロとなり、図8(b)に示す図では、スレーブ時間軸は、マスタの時間と平行になる。
そして、t4からt5に遷移する際に、オフセットOを考慮して、「(C−B)+C+O」だけ傾きを補正することにより、オフセットを取り除くことができる。なお、このオフセットOを考慮した傾きを求めるためには、t4までに行なった「−2倍」や「−1倍」等と異なり、割り算が必要となるので、演算処理が煩雑となる。なお、t2からt3に遷移する際にオフセット分を考慮して傾きを設定しないのは、t1からt2までの傾きを求め、マイナス2倍の傾きでBやCをAに比べ十分小さくするためである。また、これにより、少なくとも、マスタとスレーブの時のあゆみのずれは小さくなる。つまり、t3,t4において求めた時間差B,Cは、いずれも時間差の絶対値がAに比べて小さくなっているので、t2の時に比べて精度良く時間差を求めることができ、精密調整が可能となる。
その後、前2回のステップ(t3の時とt4の時)に計算した傾きを再調整し、t5以降の維持フェーズでは、残差を限りなくゼロに維持する。この5クロック目(t6)で4クロック目(t5)との差から「静定」していることが確認できる。
係る処理を実行するための具体的なアルゴリズムは、時間同期機能を構成する各処理部20〜22が、図21に示すフローチャートを実行することで行なう。すなわち、まず、時間差認識部20は、マスタから指示されたタイミング(t1)で、マスタとスレーブの現在時刻の差(オフセット:O)を求め、その求めた値をレジスタに格納する(S10)。このオフセットを求める処理は、上述した図20に示す手順に従って行なうことができる。
つまり、まず、マスタが、スレーブに対して「Sync」メッセージを送信するとともに、この送信したときの自身の時計のタイムスタンプ(TS1)を記録する。スレーブは、このSyncメッセージを受信すると、その受信したときの自身の時計のタイムスタンプ(TS2)を記録する。次に、マスタがスレーブに対して「Follow_up」メッセージを送信する。このメッセージの中には、先に Syncメッセージを送出したときのマスタのタイムスタンプ(TS1)が含まれる。スレーブは、これら2つのタイムスタンプTS1,TS2をもとに、マスタの時計の時刻とスレーブの時計の時刻との差分、つまり、オフセットOを求めることができる。なお、本実施形態では、オフセットOを求めたら、初期のトレーニング期間と相違して上書き等によってすぐにオフセットを修正することはないので、伝搬遅延もすぐに求めることはない。また、一度伝搬遅延を求めたならば、PAC1が連結するユニットの接続構成に変更がない限り、伝搬遅延は、さほど大きく変動することもないので、オフセットを求めて時間合わせを行なうごとに伝搬遅延を求める必要はない。
次に、時間差認識部20は、マスタから指示されたタイミングで時間差Aを測定する(S11)。この処理ステップS11は、図8(b)におけるt1〜t2の区間に対応する。また、時間差Aは、例えば、マスタから送信されてくる時間差の測定指示t1,t2,t3,……の間隔Tが常に一定で、既知とすると、スレーブは、前回の測定指示(この場合t1)を受信したときの自己の時計の値と、今回の測定指示(この場合t2)を受信したときの自己の時計の値の差から、スレーブにおける経過時間を求め、その求めた経過時間とTとの差分から時間差Aを求めることができる。これは、以降の時間差B,C等についても同様である。また、マスタ側にて前回測定指示を送信してから今回送信指示を送信するまでの間隔Tをその都度マスタから送信してくるようにしてもよい。
また、処理ステップS10と処理ステップS11の実行タイミングであるが、処理ステップS10は、t1におけるオフセットを求め、処理ステップS11はt1〜t2における時間差を求めることから、実際には、処理ステップS10と処理ステップS11とは、ほぼ同時に処理を開始し処理ステップS10が先に処理を完了するようになる。
そして、t2からt4までの区間では、図8(a)の場合と同様であることから、そのアルゴリズムも基本的に同様である。すなわち、処理ステップS12からS14までは、図9に示す対応するステップ番号の処理ステップと同様の処理を実行する。そして、処理ステップS14にて求めた時間差Bが、基準値以内(S15でYes)の場合には、処理ステップS13の粗調整による補正処理によって、マスタとスレーブ間の時の歩み(周期の長さ)の調整が成功したことを意味する。よって、次の周期(t3からt4)では、マスタとスレーブの時計の時刻を合わせるべく、スレーブの時間同期機能は、マスタの周期Tが自機で周期(T−A−O)となるように周波数・端数を調整する(S16′)。そして、それ以降(t4以降)、時間同期機能は、マスタの周期Tが自機で周期(T−A)となるように周波数・波数を調整する(S16)。
一方、時間差Bが基準値以上の場合(S15でNo)には、処理ステップS17に飛び、次の周期での調整に移行する。処理ステップS17,S18は、上述した図9に示す対応するステップ番号の処理ステップと同様の処理を実行する。そして、処理ステップS19′では、オフセットOを考慮した補正を行なうことから、時間差調整量算出部21は、マスタの周期Tが、自機で周期(T−A−2C+B−O)となるような調整量(傾き)を算出し、周波数・波数調整部22は、求めた調整量に基づき周波数・波数を調整する。この処理ステップS19′は、図8(a)におけるt4〜t5の区間の調整処理(誤差をゼロに調整する処理)に対応する。
次いで、時間差認識部20は、マスタから指示されたタイミング(周期T経過)で時間差Dを測定する(S20)。この処理ステップS20は、図8(a)におけるt5のタイミングで時間差を求めることに対応する。この時間差Dは、スレーブの時計の時刻と、マスタの時計の時刻との差である。この時間差Dは、例えば、オフセットOを算出する際に取得したt1におけるマスタの時刻であるタイムスタンプ(TS1)に、t5までのマスタの時計の経過時間(4T)を加算した値と、スレーブの時計の現在の時刻とを比較することで簡単に求められる。また、図20に示すようにオフセットを求める際に用いた方式でマスタのタイムスタンプTS1と、スレーブのタイムスタンプTS2とを取得し、TS1に伝搬遅延を加算した時刻と、TS2との差を求めることでマスタとスレーブの時間差を求めることもできる。
時間差調整量算出部21は、時間差認識部20が測定した時間差Dを取得し、その時間差が基準値以内か否かを判断する(S21)。ここでの基準値は、ほぼゼロに近い値を採り、マスタと自機(スレーブ)の時計が一致している(調整完了)か否かの判定基準となる。基準値以内(S21でYes)の場合には、処理ステップS19′の精密調整による補正処理よって時計あわせが成功したことを意味するので、以降のステップでは、時間同期機能は、マスタの周期Tが自機で周期(T−A−C+B)となるように周波数・波数を調整する(S22)。一方、基準値を超えている場合(S21でNo)には、時間同期機能は、処理ステップS10に戻り、次のマスタからの指示に基づく新たな調整に備える。
図11以降は、粗調整フェーズ及び又は精密調整フェーズにおける調整量を変更した場合の変形例を示している。図11(a),(b)に示す変形例では、粗調整フェーズの際の調整量を、傾きのマイナス1倍に設定している点で、上述の実施形態と相違する。つまり、図9に示すフローチャートに処理ステップS13が、「マスタの周期Tが自機で周期T−Aとなるように周波数・波数を調整」を実行するようにする。その後の精密調整フェーズは、図7,図8に示す実施形態と同様である。図11から明らかなように、この変形例でも、5ステップで静定に至るので、早期に調整作業が終了する。なお、図11(a)が、トレーニング期間における調整のため、t1時の上書き処理によりマスタとスレーブの時刻を一旦合わせ、その後の調整でマスタとスレーブの時計の時のあゆみを同一にすることで、最終的に両者の絶対時刻を合わせるものである。また、図11(b)が、実際の制御運転中における時間合わせの調整を行なうもので、t1におけるオフセットOを求め、t4からt5の区間で、オフセット分も合わせて絶対時刻合わせを行なうものである。
図12(a),(b)は、別の変形例を示している。この変形例では、図8,図9に示す実施形態における調整量を、粗調整フェーズと精密調整フェーズで逆にしている。具体的には、粗調整フェーズ実行中のt2の時の調整量を、時間差Aに基づく傾きのマイナス1倍に設定し、精密調整フェーズ実行中のt3の時の調整量を時間差Aに基づく傾きのマイナス2倍に設定している。つまり、図9に示すフローチャートに処理ステップS13が、「マスタの周期Tが自機で周期T−Aとなるように周波数・波数を調整」を実行するようにする。更に、図9に示すフローチャートに処理ステップS17が、「マスタの周期Tが自機で周期T−2Aとなるように周波数・波数を調整」を実行するようにする。図12(a),(b)から明らかなように、この変形例でも、5ステップで静定に至るので、早期に調整作業が終了する。そして、この変形例でも、同図(a)がトレーニング期間における調整アルゴリズムで、同図(b)が制御運転時における調整アルゴリズムである。
図13(a),(b)は、別の変形例を示している。この変形例では、t2で測定した時間差Aに基づく粗調整フェーズと精密調整フェーズで行なう調整量を共に、「マイナス2倍」に設定している。これにともない、図9に示すフローチャートに処理ステップS17が、「マスタの周期Tが自機で周期T−2Aとなるように周波数・波数を調整」を実行するようにする。その他の処理・機能は、図7,図8に示す実施形態と同様である。図13から明らかなように、この変形例でも、5ステップで静定に至るので、早期に調整作業が終了する。なお、この図13でBを正の値とする場合、Cは矢印の向きが逆のため、負の値となる。この点は、以下の変形例の図でも同様である。
図14(a),(b)は、さらに別の変形例を示している。この変形例では、t2で測定した時間差Aに基づく粗調整フェーズの調整量を「マイナス3倍」に設定し、t2で測定した時間差Aに基づく精密調整フェーズで行なう調整量を、「1倍」に設定している。これにともない、図9に示すフローチャートに処理ステップS13が、「マスタの周期Tが自機で周期T−3Aとなるように周波数・波数を調整」を実行するようにし、図9に示すフローチャートに処理ステップS17が、「マスタの周期Tが自機で周期Tとなるように周波数・波数を調整」を実行するようにする。その他の処理・機能は、図7,図8に示す実施形態と同様である。図14(a),(b)から明らかなように、この変形例でも、5ステップで静定に至るので、早期に調整作業が終了する。そして、この変形例でも、同図(a)がトレーニング期間における調整アルゴリズムで、同図(b)が制御運転時における調整アルゴリズムである。
図15(a),(b)は、さらに別の変形例を示している。この変形例では、t2で測定した時間差Aに基づく粗調整フェーズの調整量を「マイナス3倍」に設定し、t2で測定した時間差Aに基づく精密調整フェーズで行なう調整量を、「マイナス1倍」に設定している。これにともない、図9に示すフローチャートに処理ステップS13が、「マスタの周期Tが自機で周期T−3Aとなるように周波数・波数を調整」を実行するようにする。その他の処理・機能は、図7,図8に示す実施形態と同様である。図15(a),(b)から明らかなように、この変形例でも、5ステップで静定に至るので、早期に調整作業が終了する。そして、この変形例でも、同図(a)がトレーニング期間における調整アルゴリズムで、同図(b)が制御運転時における調整アルゴリズムである。
図22は、制御運転時にオフセットOを考慮した調整アルゴリズムを行なう図8(b)に対応する更に別の変形例を示している。すなわち、図8(b)の変形例では、t4とt5の間で、一気に誤差を修正するため、時の刻みが飛ばないとはいえ、オフセットが大きい場合には急な変更により、各種CPU動作に不具合を生じる可能性がある。そこで、本変形例では、オフセットが大きい場合に、1周期Tで調整することをあきらめ、n周期かけて緩やかに調整を図るようにした。すなわち、時間差認識部20は、t(−n)のときにオフセットO′を求める。このO′が一定以上大きい値の場合、n周期かけてマスタとスレーブの時計の時間差を小さくする。つまり、予め決めた1周期当たりの調整量(傾き)を用いて補正する。ここで、nは、1周期当たりで修正できる時間差(例えば、A)でO′を除算した値となる。但し、係る除算した結果、割り切れるとは限らないので、最初にオフセットを求めてからn周期が経過したt1の時点では、マスタとスレーブの時計の時刻の時間差(残る残差)がEとなる。そして、そのまま同じ傾きでさらに1周期経過してt2になると、マスタとスレーブの時計の時刻の差はA+Eとなる。
そして、このときのAは、図8(b)のt2におけるAと同様であり、Eは図8(b)のt1におけるオフセットOと同じといえる。従って、以降は、図8(b)の変形例と同様の手順に従い、t4まで補正処理が進み、t4から t5 に移るときにEを吸収する。このとき、Eは小さいので、t4からt5の区間における変化は小さく、t(−n)からt1への調整も、n周期とたっぷり時間があるので、変化を小さくすることができる。よって、時間が掛かるものの、滑らかな調整により時刻を合わせることができる。
なお、上記の説明では、t(−n)からt1までの期間における周期ごとの変化・調整量を固定としたため、オフセットの値によりnの値が変動するが、nある程度大きい値に設定しておき、オフセットO′をnで除算することで、1周期当たりの変化量を求めるようにしても良い。
また、具体的な図示は省略するが、図11以降の他の変形例においても、上記の図22に示すt1前の所定区間を用いてマスタとスレーブの時計の時刻のずれを小さくした後で、調整する方式を適用することができるのはもちろんである。
図16から図19は、別の実施形態並びにその変形例を示している。図16,図17に基づいて基本となる実施形態を説明する。本実施形態では、時間差認識部20が非常に高い時間ズレの分解能が得られるものを用い、上述した実施形態並びに変形例の調整アルゴリズムの一部を簡略化している。
図16(a)に示すように、t1〜t3までの粗調整フェーズは、上述のトレーニング期間における実施形態と同様である。つまり、スレーブは、t1の時にマスタの時計の時刻(タイムスタンプ)を取得して自己の時計に上書きし、両者の時刻を一旦合わせる。そして、t2の時の時間差Aに基づく傾きのマイナス2倍の傾きを、t2〜t3のステップの際の調整量とする。そして、時間差調整量算出部21は、この粗調整フェーズが終了するt3の時に測定する時間差Bと、前回測定した時間差Aに基づいてぴったり誤差ゼロにするための調整量を求め、次のステップ(t3〜t4)の際に調整を図る。これにより、t4の時には残差が限りなくゼロに近付いているので、以後、その状態を維持する。この実施形態によれば、4クロック目で3クロック目との差から「静定」していることが確認できる。つまり、4ステップで静定に至るので、本実施形態は、さらに早期に調整作業が終了する。
係る処理を実行するための具体的なアルゴリズムは、時間同期機能を構成する各処理部20〜22が、図17に示すフローチャートを実行することで行なう。すなわち、まず、時間差認識部20は、マスタから指示されたタイミングで時間差Aを測定する(S31)。この処理ステップS31は、図16(a)におけるt1〜t2の区間に対応する。時間差調整量算出部21は、時間差認識部20が測定した時間差Aを取得し、その時間差が基準値以内か否かを判断する(S32)。基準値以内(S32でYes)の場合には、補正・調整作業は不要であるので、粗調整等することなくそのまま処理を終了する。
一方、時間差Aが基準値以上の場合(S32でNo)には、時間同期機能は、マスタの周期T(=t2−t1)が自機で周期T−2Aとなるように周波数・波数を調整する(S33)。つまり、時間差調整量算出部21は、処理ステップS31で求めた時間差から、その周期T(t1−t2の区間)の自機の時計の時間差の傾きを求め、その傾きの「マイナス2倍」を調整量として決定し、周波数・波数調整部22は、自機の時計の進みが、その「マイナス2倍」の傾きになるように調整する。この処理ステップS33は、図16(a)におけるt2〜t3の区間の調整処理に対応する。
時間差認識部20は、マスタから指示されたタイミング(周期T経過)で時間差Bを測定する(S34)。時間差調整量算出部21は、時間差認識部20が測定した時間差Bを取得し、その時間差が基準値以内か否かを判断する(S35)。基準値以内(S35でYes)の場合には、処理ステップS33の粗調整による補正処理よって時計あわせが成功したことを意味するので、以降、時間同期機能は、マスタの周期Tが自機で周期(T−A)となるように周波数・波数を調整する(S36)。つまり、時間差調整量算出部21は、処理ステップS31で求めた時間差から求めたその周期T(t1−t2の区間)の自機の時計の傾きの「マイナス1倍」を調整量として決定し、周波数・波数調整部22は、自機の時計の進みが、その「マイナス1倍」の傾きになるように調整する。この処理で、今回の調整作業は終了し、そのまま維持フェーズとなる。
一方、時間差Bが基準値以上の場合(S35でNo)には、処理ステップS37に飛び、時間差調整量算出部21は、マスタの周期Tが自機で周期T−A−2Bとなるような調整量(傾き)を算出し、周波数・波数調整部22は、求めた調整量に基づき周波数・波数を調整する(S37)。この処理ステップS37は、図16(a)におけるt3〜t4の区間の調整処理に対応する。
次いで、時間差認識部20は、マスタから指示されたタイミング(周期T経過:t4)で時間差Cを測定する(S38)。時間差調整量算出部21は、時間差認識部20が測定した時間差Cを取得し、その時間差が基準値以内か否かを判断する(S39)。ここでの基準値は、ほぼゼロに近い値を採る。基準値以内(S39でYes)の場合には、処理ステップS37の調整による補正処理よって時計あわせが成功したことを意味するので、以降、時間同期機能は、マスタの周期Tが自機で周期(T−A−B)となるように周波数・波数を調整する(S40)。一方、基準値を超えている場合には、時間同期機能は、処理ステップS31に戻り、次のマスタからの指示に基づく新たな調整に備える。
次に、実際の制御運転時の調整アルゴリズムを説明する。図16(b)に示すように、まず、調整開示時(t1)において、マスタの時計の時刻と、スレーブの時計の時刻の差であるオフセットOを求める。この求めたオフセットOは、レジスタ等にセットして記憶保持する。そして、時間差認識部20は、t1からt2までに生じたマスタとの時間差Aを求める。このt2の時の時間差Aに基づく傾きのマイナス2倍の傾きを、t2〜t3のステップの際の調整量とする。時間差調整量算出部21は、粗調整フェーズが終了するt3の時に測定する時間差Bと、前回測定した時間差Aと、オフセットOに基づいてぴったり誤差ゼロにするための調整量を求め、次のステップ(t3〜t4)の際に調整を図る。これにより、t4の時には残差が限りなくゼロに近付いているので、以後、その状態を維持する。この実施形態によれば、4クロック目で3クロック目との差から「静定」していることが確認できる。つまり、4ステップで静定に至るので、本実施形態は、さらに早期に調整作業が終了する。
係る処理を実行するための具体的なアルゴリズムは、時間同期機能を構成する各処理部20〜22が、図23に示すフローチャートを実行することで行なう。すなわち、まず、時間差認識部20は、マスタから指示されたタイミング(t1)で、マスタとスレーブの現在時刻の差(オフセット:O)を求め、求めた値をレジスタに格納する(S30)。このオフセットの求める処理は、上述した図20に示す手順に従って行なうことができる。
次に、時間差認識部20は、マスタから指示されたタイミングで時間差Aを測定する(S31)。この処理ステップS31は、図16(b)におけるt1〜t2の区間に対応する。そして、この時間差Aを求める処理は、例えば図21の処理ステップS11と同様に、オフセット分を除き、t1からt2まででマスタの時計の時間の進みに対するスレーブの時計の時間の進みの相違(差分)を求める。
これ以降、処理ステップS32〜S34までの処理ステップは、図17に示すものと同様である。そして、処理ステップS34にて求めた時間差Bが、基準値以内か否かを判断する(S35)。そして、基準値以内(S35でYes)の場合には、処理ステップS33の粗調整による補正処理によってマスタとスレーブ間の時の歩み(周期の長さ)の調整が成功したことを意味する。よって、次の周期(t2からt3)では、マスタとスレーブの時計の時刻を合わせるべく、スレーブの時間同期機能は、マスタの周期Tが自機で周期(T−A−O)となるように周波数・端数を調整する(S36′)。そして、それ以降(t4以降)、時間同期機能は、マスタの周期Tが自機で周期(T−A)となるように周波数・波数を調整する(S36)。
一方、時間差Bが基準値以上の場合(S35でNo)には、処理ステップS37′に飛び、時間差調整量算出部21は、マスタの周期Tが自機で周期T−A−2B−Oとなるような調整量(傾き)を算出し、周波数・波数調整部22は、求めた調整量に基づき周波数・波数を調整する(S37′)。この処理ステップS37′は、図16(b)におけるt3〜t4の区間の調整処理に対応する。そして、これ以降は、処理ステップS38からS40を実行する。
図18以降は、調整量を変更した場合の変形例を示している。図18(a),(b)に示す変形例では、時間差Aに基づく調整量を、傾きのマイナス1倍に設定している点で、上述の実施形態と相違する。つまり、図17に示すフローチャートに処理ステップS33が、「マスタの周期Tが自機で周期(T−A)となるように周波数・波数を調整」を実行するようにする。その後の調整フェーズは、図16,図17に示す実施形態と同様である。図18から明らかなように、この変形例でも、4ステップで静定に至るので、早期に調整作業が終了する。そして、この変形例でも、同図(a)がトレーニング期間における調整アルゴリズムで、同図(b)が制御運転時における調整アルゴリズムである。
図19(a),(b)は、さらに別の変形例を示している。この変形例では、t2で測定した時間差Aに基づく調整量を「マイナス3倍」に設定している。これにともない、図17に示すフローチャートに処理ステップS33が、「マスタの周期Tが自機で周期(T−3A)となるように周波数・波数を調整」を実行するようにする。その他の処理・機能は、図16,図17に示す実施形態と同様である。図19(a),(b)から明らかなように、この変形例でも、4ステップで静定に至るので、早期に調整作業が終了する。そして、この変形例でも、同図(a)がトレーニング期間における調整アルゴリズムで、同図(b)が制御運転時における調整アルゴリズムである。
図24は、上述したようにマスタとスレーブの時間合わせが完了した後で行なう同期制御の一例を示している。図24(a)は、相対制御の例を示す。この相対制御は、マスタがブロードキャスト或いはマルチキャストによる一斉同報により、各スレーブに対してパルス(タイミング)を通知する。図20の処理を実行することで、各スレーブは、マスタからの伝搬遅延を認識している。すると、各スレーブは、マスタからのパルスを受信すると、その受信した時刻から伝搬遅延を引いた時刻が、当該パルスを送信した時刻であることがわかり、各スレーブは係るパルスを送信した時刻にあらかじめ指定された待ち時間を経過後に動作する。これにより、各スレーブは、当該時間経過後に一斉に同期して所定の制御動作を行うことができる。
また、図24(b)は、絶対時刻による同期制御を示している。マスタは、ブロードキャスト或いはマルチキャストを用いた一斉同報或いはユニキャスト(1対1)通信を用いて個々のスレーブに対して動作を開始する時刻を通知する。この通知を受けたスレーブは、受信した時刻にきたならば一斉に同期して所定の制御動作を行なうことができる。
図25は、本発明の更に別の実施形態を示している。上述したとおり、各スレーブは、マスタからの指示に従い、自機の時計をマスタの時計に合わせる処理を行なう。そこで、本実施形態では、個々のスレーブがその実行結果(時間差)をマスタに伝えるようにし、マスタ側では、各スレーブから取得した時間差(ズレ量)に基づき、異常・故障を検出する機能を備えた。
マスタは、各スレーブから取得した時間差(ズレ量)を、メモリ等に記憶保持させておき、その過去の履歴と傾向が異なる場合に、何かしらの異常があると判断する。ここで、「過去履歴と傾向が異なる」とは、具体的には、スレーブ毎に過去X回(Xは16など)の時間差の標準偏差σを求め、今回測定した該当スレーブの時間差が±σや±2σを超えていた場合や、スレーブ毎に前回の時間差を記録しておき、今回測定した該当スレーブの時間差が前回までの平均値の3倍といった閾値を超えていた場合などにより判定できる。もちろん、マスタの時計が壊れる場合もあり、係る場合には、全てのスレーブの時間差が過去履歴と傾向が異なることになるので、その状態から判定することができる。更に、図2に示したように、各スレーブがバスに接続された構成の場合、バスのある点に障害があると、その障害点を境にして、マスタより距離が遠いスレーブはすべて計測値が異常となる可能性がある。従って、複数のスレーブが同時に障害を報告してきた場合、実際の接続構成に照らして、バスの障害点を予測することも可能である。
そこで、本実施形態では、マスタとなるCPUユニット2のMPU2aに、図26に示すフローチャートを実施する機能(異常検出機能)を実装した。すなわち、まず前提として、マスタは、周期Tで所定のスレーブに対して時計あわせのための時間差測定指示を発するので、各スレーブは、その指示に対するレスポンスとして、自己が測定した時間差情報をマスタに返す。そこで、マスタは、そのレスポンスとして返されてきた各スレーブの時間差を取得し、スレーブ毎に過去X回の時間差の履歴を保持する(S41)。マスタは、過去X回の時間差の情報から、標準偏差を求めておき、今回取得したスレーブ毎の時間差は標準偏差以内か否かを判断する(S42)。そして、全てが標準偏差以内に収まっている場合には、マスタは、異常なしと判断し、システムにその旨を通知する(S43)。この場合の通知先のシステムは、全てのスレーブであってもよいし、外部の各種の装置・機器としても良い。
一方、標準偏差を超えたスレーブがあった場合(S42でNo)、マスタは、該当するスレーブの数を検出する。そして、マスタは、1台のスレーブの時間差だけが標準偏差より大きい場合には、そのスレーブが異常と判断して、“当該スレーブに異常の可能性があり”とシステムに通知する(S44,S45)。
また、8割以上のスレーブの時間差が標準偏差より大きい場合、マスタは、マスタ自身の異常の可能性があると判断し、その旨をシステムに通知する(S46,S47)。更に、処理ステップS44,S46のいずれにも該当せず、複数のスレーブの時間差が標準偏差より大きい場合、マスタは、接続するバスに異常の可能性があると判断し、その旨をシステムに通知する。
なお、上述した各実施形態並びにその変形例では、マスタは1台として説明したが、複数のマスタ候補をあらかじめ登録し、それぞれのマスタ候補に1号機2号機といった号機番号を割り振り、正常稼動している中で最も若い号機番号をマスタとして動作させることができる。また、現行のマスタに故障や応答遅延等の事故あるときには、他のスレーブから1台を選んでマスタに昇格させることももちろんできる。更に、各実施形態では,PACに適用した例を説明したが、PLCその他の産業用コントローラに適用できるのはもちろんである。
また、上述した各実施形態並びにその変形例では、スレーブは、マスタからの指示に従いマスタの時計との時間差を一定周期で測定し、それに基づいて調整量を決定し、調整作業を行なうようにしたが、本発明はこれに限ることはなく、時間差を求める周期は、所定の規則に従って異ならせるようにしても良い。各周期が、ある規則(パターン)に従って変化する場合、スレーブがその規則がわかっていると、今回測定した時間差と、その時間が生じるまでの時間(周期)から、傾きを求めることができ、次の周期は、その傾きのマイナスn倍のバイアスとなるように調整をしたり、次の周期の時間がわかっているのでそれを考慮して、上述した各種の実施形態並びに変形例を適用することで、適宜時間あわせをすることができる。ただし、調整量を求めるのに掛算・割算を使う必要が出てくるため、上述した各実施形態等と比較すると演算処理の負荷がかかるので、それに対応すべく高機能・高価なプロセッサ(CPU・MPU)を用いるとよい。換言すると、上述した各実施形態等によれば、加算・減算処理で時間合わせに対応できるようにすることで、プロセッサにかかる演算処理の負荷を可及的に抑制することができるので好ましい。
本発明が適用されるネットワークシステムの一例を示す図である。 PACの内部構成の一例を示す図である。 マスタを構成するCPUユニットの内部構成の一例を示す図である。 スレーブを構成するモータユニットの内部構成の一例を示す図である。 モータユニットの機能を示すフローチャートである。 時間同期機能の一形態を示す図である。 調整アルゴリズムの概要を説明する図である。 調整アルゴリズムの概要を説明する図である。 本発明の好適な一実施形態である時間同期機能を示すフローチャートである。 動作原理を説明する図である。 調整アルゴリズムの変形例の概要を説明する図である。 調整アルゴリズムの変形例の概要を説明する図である。 調整アルゴリズムの変形例の概要を説明する図である。 調整アルゴリズムの変形例の概要を説明する図である。 調整アルゴリズムの変形例の概要を説明する図である。 調整アルゴリズムの別の実施形態の概要を説明する図である。 本発明の好適な別の実施形態である時間同期機能を示すフローチャートである。 調整アルゴリズムの変形例の概要を説明する図である。 調整アルゴリズムの変形例の概要を説明する図である。 オフセットを求めるアルゴリズムを説明する図である。 本発明の変形例である時間同期機能を示すフローチャートである。 調整アルゴリズムの概要を説明する図である。 本発明の変形例である時間同期機能を示すフローチャートである。 同期制御の一例を示す図である。 本発明の好適な別の実施形態を説明する図である。 本発明の好適な別の実施形態である異常検知機能を示すフローチャートである。
符号の説明
1 PACの一例を示す図である。
1a 通信媒体
1b 時計
20 時間差認識部
21 時間差調整量算出部
22 周波数・波数調整部

Claims (13)

  1. 複数のユニットを連結して構成される産業用コントローラであって、
    その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、
    前記マスタは、自己の計時手段に基づき規則的な周期で所定のスレーブに対して計時タイミング信号を複数回送る機能を有し、
    スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、
    その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、
    その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、を備え、
    前記時間差調整量算出手段が求める調整量は、スレーブ側の時間軸のズレを徐々にマスタ側に近づけるものであることを特徴とする産業用コントローラ。
  2. 複数のユニットを連結して構成される産業用コントローラであって、
    その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、
    前記マスタは、自己の計時手段に基づき一定の周期Tで所定のスレーブに対して計時タイミング信号を複数回送る機能を有し、
    スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、
    その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、
    その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、
    調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求める手段と、
    を備え、
    前記時間差認識手段は、前記調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻が一致していると仮定した場合の時間差を、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cとして求めることができるものであり、
    前記時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cと前記ずれに基づき、自機の計時手段の時刻と前記マスタの計時手段の時刻の差を徐々に少なくし、前記4回目の周期の終了時点で自機の計時手段の時刻が前記マスタの計時手段の時刻に一致するような前記調整量を求める機能と、を有する
    ことを特徴とする産業用コントローラ。
  3. 複数のユニットを連結して構成される産業用コントローラであって、
    その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、
    前記マスタは、自己の計時手段に基づき一定の周期Tで所定のスレーブに対して計時タイミング信号を複数回送る機能を有し、
    スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、
    その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、
    その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、
    調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求める手段と、
    を備え、
    前記時間差認識手段は、前記調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻が一致していると仮定した場合の時間差を、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cを求めることができるものであり、
    前記時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−3A)になるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cと前記ずれに基づき、自機の計時手段の時刻と前記マスタの計時手段の時刻の差を徐々に少なくし、前記4回目の周期の終了時点で自機の計時手段の時刻が前記マスタの計時手段の時刻に一致するような前記調整量を求める機能と、を有する
    ことを特徴とする産業用コントローラ。
  4. 複数のユニットを連結して構成される産業用コントローラであって、
    その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、
    前記マスタは、自己の計時手段に基づき一定の周期Tで所定のスレーブに対して計時タイミング信号を複数回送る機能を有し、
    スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、
    その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、
    その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、
    調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求める手段と、
    を備え、
    前記時間差認識手段は、前記調整開示時点における前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻が一致していると仮定した場合の時間差を、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差Bを求めることができるものであり、
    前記時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A),(T−3A)のいずれかになるような前記調整量を求める機能と、3回目の周期が時間差A,Bと前記ずれに基づき、自機の計時手段の時刻と前記マスタの計時手段の時刻の差を徐々に少なくし、前記3回目の周期の終了時点で自機の計時手段の時刻が前記マスタの計時手段の時刻に一致するような前記調整量を求める機能と、を有する
    ことを特徴とする産業用コントローラ。
  5. 前記2回目の周期が(T−2A)になるような調整量を設定した場合に、前記時間差認識手段で求めた前記時間差Bが基準値以内か否かを判断し、基準値以内の場合は、次の周期が(T−A−”前記ずれ”)で、それ以降の周期が(T−A)になるように調整を行なう機能を備えたことを特徴とする請求項2または4に記載の産業用コントローラ。
  6. 前記調整開示時点よりも前に、前記マスタの計時手段の時刻と前記スレーブの計時手段の時刻のずれを求め、そのずれが徐々に小さくなるように前記スレーブの計時手段を調整する手段を備えたことを特徴とする請求項2から5のいずれか1項に記載の作業用コントローラ。
  7. 複数のユニットを連結して構成される産業用コントローラであって、
    その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、
    前記マスタは、自己の計時手段に基づき一定の周期Tで所定のスレーブに対して計時タイミング信号を複数回送る機能を有し、
    スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、
    その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、
    その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、
    制御運転開始前の調整開示時点における前記マスタの計時手段の時刻を取得し、自己の計時手段の時刻を取得した時刻に設定する手段と、を備え、
    前記時間差認識手段は、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cを求めることができるものであり、
    前記時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T−2A)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cに基づき、マスタの計時手段と自機の計時手段との時間差が無くなるような前記調整量を求める機能と、を有する
    ことを特徴とする産業用コントローラ。
  8. 複数のユニットを連結して構成される産業用コントローラであって、
    その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、
    前記マスタは、自己の計時手段に基づき一定の周期Tで所定のスレーブに対して計時タイミング信号を複数回送る機能を有し、
    スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、
    その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、
    その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、
    制御運転開始前の調整開示時点における前記マスタの計時手段の時刻を取得し、自己の計時手段の時刻を取得した時刻に設定する手段と、を備え、
    前記時間差認識手段は、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差B,時間差Cを求めることができるものであり、
    前記時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−3A)になるような前記調整量を求める機能と、3回目の周期が自機で(T−A),(T)のいずれかになるような前記調整量を求める機能と、4回目の周期が、時間差A,B,Cに基づき、マスタの計時手段と自機の計時手段との時間差が無くなるような前記調整量を求める機能と、を有する
    ことを特徴とする産業用コントローラ。
  9. 複数のユニットを連結して構成される産業用コントローラであって、
    その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、
    前記マスタは、自己の計時手段に基づき一定の周期Tで所定のスレーブに対して計時タイミング信号を複数回送る機能を有し、
    スレーブは、受信した計時タイミング信号に基づいてマスタの計時手段と自機の計時手段との時間差を求める時間差認識手段と、
    その時間差認識手段で求めた時間差に基づき、次の周期の調整量を求める時間差調整量算出手段と、
    その時間差調整量算出手段で求めた調整量に従い、自機の計時手段の動作を調整する調整手段と、
    制御運転開始前の調整開示時点における前記マスタの計時手段の時刻を取得し、自己の計時手段の時刻を取得した時刻に設定する手段と、を備え、
    前記時間差認識手段は、前記マスタから与えられる周期Tのタイミングで、順に時間差A,時間差Bを求めることができるものであり、
    前記時間差調整量算出手段は、1回目の周期Tで生じた時間差Aに基づき、2回目の周期が自機で(T−A),(T−2A),(T−3A)のいずれかになるような前記調整量を求める機能と、3回目の周期が自機で(T−A−2B)になるような前記調整量を求める機能と、を有する
    ことを特徴とする産業用コントローラ。
  10. 前記2回目の周期が(T−2A)になるような調整量を設定した場合に、前記時間差認識手段で求めた前記時間差Bが基準値以内か否かを判断し、基準値以内の場合は、それ以降、周期が(T−A)になるように調整を行なう機能を備えたことを特徴とする請求項7または9に記載の産業用コントローラ。
  11. 前記計時手段は、nsオーダーの計時機能を持つものである請求項1から10のいずれか1項に記載の産業用コントローラ。
  12. 前記スレーブを複数備えた産業用コントローラであって、
    前記マスタは、その複数のスレーブがそれぞれ求めた前記時間差の情報を取得すると共に記憶手段に記憶保持し、
    その記憶手段に記憶保持した各スレーブの時間差の履歴と傾向が異なる時間差のスレーブを検出し、その検出したスレーブの数に応じて異常を検出する異常検出手段を備えたことを特徴とする請求項1から11のいずれか1項に記載の産業用コントローラ。
  13. 前記異常検出手段は、
    前記傾向が異なる時間差のスレーブが1つの場合には、そのスレーブの計時手段が異常と判断する機能と、
    前記傾向が異なる時間差のスレーブが設定された数以上の場合にはマスタの計時手段が異常と判断する機能と、
    前記傾向が異なる時間差のスレーブが複数の場合には、スレーブを接続する信号伝達媒体の異常と判断する機能のうち、少なくとも1つの機能を備えたことを特徴とする請求項12に記載の産業用コントローラ。
JP2008261533A 2007-12-07 2008-10-08 産業用コントローラ Active JP5141972B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008261533A JP5141972B2 (ja) 2007-12-07 2008-10-08 産業用コントローラ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007316650 2007-12-07
JP2007316650 2007-12-07
JP2008261533A JP5141972B2 (ja) 2007-12-07 2008-10-08 産業用コントローラ

Publications (2)

Publication Number Publication Date
JP2009157913A JP2009157913A (ja) 2009-07-16
JP5141972B2 true JP5141972B2 (ja) 2013-02-13

Family

ID=40961804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008261533A Active JP5141972B2 (ja) 2007-12-07 2008-10-08 産業用コントローラ

Country Status (1)

Country Link
JP (1) JP5141972B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11277253B2 (en) 2019-04-22 2022-03-15 Mitsubishi Electric Corporation Time synchronization system, master device, slave device, and program

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5450656B2 (ja) * 2009-12-25 2014-03-26 株式会社東芝 通信装置及び時刻同期システム
JP5663267B2 (ja) * 2010-02-24 2015-02-04 株式会社日立製作所 保護リレーシステム及び保護リレー装置
JP5794449B2 (ja) * 2010-03-15 2015-10-14 オムロン株式会社 プログラマブルコントローラ
JP5655460B2 (ja) * 2010-09-22 2015-01-21 富士電機株式会社 プログラマブルコントローラシステム
US10834820B2 (en) 2013-08-06 2020-11-10 Bedrock Automation Platforms Inc. Industrial control system cable
US8971072B2 (en) 2011-12-30 2015-03-03 Bedrock Automation Platforms Inc. Electromagnetic connector for an industrial control system
US11144630B2 (en) 2011-12-30 2021-10-12 Bedrock Automation Platforms Inc. Image capture devices for a secure industrial control system
US9191203B2 (en) 2013-08-06 2015-11-17 Bedrock Automation Platforms Inc. Secure industrial control system
US11967839B2 (en) 2011-12-30 2024-04-23 Analog Devices, Inc. Electromagnetic connector for an industrial control system
US8868813B2 (en) 2011-12-30 2014-10-21 Bedrock Automation Platforms Inc. Communications control system with a serial communications interface and a parallel communications interface
US11314854B2 (en) 2011-12-30 2022-04-26 Bedrock Automation Platforms Inc. Image capture devices for a secure industrial control system
US10834094B2 (en) 2013-08-06 2020-11-10 Bedrock Automation Platforms Inc. Operator action authentication in an industrial control system
US9437967B2 (en) 2011-12-30 2016-09-06 Bedrock Automation Platforms, Inc. Electromagnetic connector for an industrial control system
US9467297B2 (en) 2013-08-06 2016-10-11 Bedrock Automation Platforms Inc. Industrial control system redundant communications/control modules authentication
US9600434B1 (en) 2011-12-30 2017-03-21 Bedrock Automation Platforms, Inc. Switch fabric having a serial communications interface and a parallel communications interface
US9727511B2 (en) 2011-12-30 2017-08-08 Bedrock Automation Platforms Inc. Input/output module with multi-channel switching capability
US8862802B2 (en) 2011-12-30 2014-10-14 Bedrock Automation Platforms Inc. Switch fabric having a serial communications interface and a parallel communications interface
JP6029433B2 (ja) 2012-11-26 2016-11-24 ルネサスエレクトロニクス株式会社 マイコン
CN104854523B (zh) * 2013-01-08 2017-07-04 富士电机株式会社 控制系统、主可编程控制器、从可编程控制器以及控制方法
US10613567B2 (en) 2013-08-06 2020-04-07 Bedrock Automation Platforms Inc. Secure power supply for an industrial control system
JP2015229462A (ja) * 2014-06-06 2015-12-21 富士電機株式会社 同期システム
JP7029220B2 (ja) * 2015-02-09 2022-03-03 ベドロック・オートメーション・プラットフォームズ・インコーポレーテッド 多チャネル切り替え能力を有する入力/出力モジュール
JP6000503B1 (ja) 2015-07-08 2016-09-28 三菱電機株式会社 ネットワークシステム、タイムマスタ局、及びタイムスレーブ局
JP6834232B2 (ja) 2016-08-09 2021-02-24 オムロン株式会社 情報処理システム、情報処理装置、ワークの位置特定方法、およびワークの位置特定プログラム
JP2018024044A (ja) 2016-08-09 2018-02-15 オムロン株式会社 情報処理システム、情報処理装置、ワークの位置特定方法、およびワークの位置特定プログラム
JP6683137B2 (ja) * 2017-01-11 2020-04-15 三菱電機株式会社 産業用コントローラシステム
JP7009751B2 (ja) 2017-03-15 2022-01-26 オムロン株式会社 計測システム、制御装置、計測方法
JP6907684B2 (ja) * 2017-05-11 2021-07-21 株式会社明電舎 時刻同期装置、時刻同期方法及び時刻同期プログラム
EP3561621B1 (de) 2018-04-26 2023-01-04 Siemens Aktiengesellschaft Bestimmen eines angepassten leitwertes einer leitachse
JP7056613B2 (ja) * 2019-03-08 2022-04-19 オムロン株式会社 カウンタユニット、カウンタユニットの制御方法、制御装置、および制御システム
JP7439474B2 (ja) * 2019-11-25 2024-02-28 富士電機株式会社 プログラマブルコントローラシステムおよびモジュール

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11277253B2 (en) 2019-04-22 2022-03-15 Mitsubishi Electric Corporation Time synchronization system, master device, slave device, and program

Also Published As

Publication number Publication date
JP2009157913A (ja) 2009-07-16

Similar Documents

Publication Publication Date Title
JP5141972B2 (ja) 産業用コントローラ
JP4185926B2 (ja) ロボット協調制御方法及びシステム
KR101044521B1 (ko) 네트워크에 연결된 슬레이브 장치들의 동기 제어장치
JP6152920B2 (ja) プログラマブルコントローラシステム、そのコントローラ
WO2019107022A1 (ja) 制御装置および制御方法
JP6704548B1 (ja) 通信システム、通信装置及びプログラム
US10853288B2 (en) Bus system
JP2018005821A (ja) 光学計測装置
JP4616054B2 (ja) 測定システム
JP4139226B2 (ja) 位置測定装置を作動させる方法及びこの方法に適した位置測定装置
JP4491083B2 (ja) モータ制御装置およびその同期方法
JP2005094933A (ja) モータ駆動装置
JP2006107050A (ja) 複数ロボットの協調動作制御装置
JP6854991B1 (ja) 通信装置、通信システム、通信方法及びプログラム
JP3987819B2 (ja) 数値制御システム
JPH11305812A (ja) 分散型cpuシステムの同期方法
JPH0133864B2 (ja)
JP2003202907A (ja) Plcモジュールとオプションモジュールとの同期方法
JP4507627B2 (ja) 測定装置
JP4661743B2 (ja) モータ駆動装置
JP2022174841A (ja) 時刻同期化装置、時刻同期方法、及びプログラム
CN117792558A (zh) 用于集成高精度时间的方法、装置、设备和介质
JPH11259105A (ja) 外部同期可能なプログラマブルコントローラ装置
JP2001100804A (ja) サーボ制御装置
CN117424668A (zh) 网络中的主设备与从设备之间的时间同步

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110805

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121107

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5141972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150