(57)【要約】【課題】制御装置において、異なるクロックによって周期的に生成される複数の信号を同期させる。【解決手段】第一の周期ごとに生成される同期信号を取得する第一のプロセッサと、前記第一の周期をｎ分割（ｎ≧１）した第二の周期を生成し、かつ、タイマを用いて、前記第二の周期をｍ分割（ｍ≧２）した第三の周期ごとに制御信号を発生させ、前記制御信号に基づいたタイミングで所定の処理を行う第二のプロセッサと、を有し、前記第一の周期において発生する複数の制御信号のうちの少なくとも１回が、前記同期信号と同期すべき制御信号であり、前記第二のプロセッサは、前記同期信号と、前記同期信号と同期すべき制御信号との間でタイミングに誤差が生じたことを検出した場合に、次回以降に開始する前記タイマの幅を一時的に変更することで前記誤差を補正する。【選択図】図１
2019101480.tif 000002
【特許請求の範囲】
【請求項１】
第一の周期ごとに生成される同期信号を取得する第一のプロセッサと、
前記第一の周期をｎ分割（ｎ≧１）した第二の周期を生成し、かつ、タイマを用いて、前記第二の周期をｍ分割（ｍ≧２）した第三の周期ごとに制御信号を発生させ、前記制御信号に基づいたタイミングで所定の処理を行う第二のプロセッサと、を有し、
前記第一の周期において発生する複数の制御信号のうちの少なくとも１回が、前記同期信号と同期すべき制御信号であり、
前記第二のプロセッサは、前記同期信号と、前記同期信号と同期すべき制御信号との間でタイミングに誤差が生じたことを検出した場合に、次回以降に開始する前記タイマの幅を一時的に変更することで前記誤差を補正する
ことを特徴とする、制御装置。
【請求項２】
前記第二のプロセッサは、前記誤差が所定の値以上である場合に、前記誤差の補正を行う
ことを特徴とする、請求項１に記載の制御装置。
【請求項３】
前記タイマの一回の変更幅に上限が設けられており、前記第二のプロセッサは、前記誤差が前記上限を上回る場合に、複数の前記第三の周期に分けて前記タイマの幅を変更する
ことを特徴とする、請求項１または２に記載の制御装置。
【請求項４】
前記所定の処理は、モータの駆動制御を行うプロセッサ、または、前記モータから位置情報を取得するプロセッサの少なくともいずれかと行うデータの送受信処理である
ことを特徴とする、請求項１から３のいずれかに記載の制御装置。
【請求項５】
前記第二のプロセッサは、前記誤差の補正を行ってから所定の時間が経過するまで、再度の補正を行わない
ことを特徴とする、請求項１から４のいずれかに記載の制御装置。
【請求項６】
前記第二のプロセッサは、前記同期信号を取得すべきタイミングから、所定の回数後に開始する前記タイマの幅を変更する
ことを特徴とする、請求項１から５のいずれかに記載の制御装置。
【請求項７】
第一の周期ごとに生成される同期信号を取得する第一のステップと、
前記第一の周期をｎ分割（ｎ≧１）した第二の周期を生成し、かつ、タイマを用いて、前記第二の周期をｍ分割（ｍ≧２）した第三の周期ごとに制御信号を発生させ、前記制御信号に基づいたタイミングで所定の処理を行う第二のステップと、を含み、
前記第一の周期において発生する複数の制御信号のうちの少なくとも１回が、前記同期信号と同期すべき制御信号であり、
前記第二のステップでは、前記同期信号と、前記同期信号と同期すべき制御信号との間でタイミングに誤差が生じたことを検出した場合に、次回以降に開始する前記タイマの幅を一時的に変更することで前記誤差を補正する
ことを特徴とする、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置および制御方法に関する。
【背景技術】
【０００２】
生産ラインなどに含まれる複数の機械（モータ、ロボット、センサ等）を制御する制御装置として、ＰＬＣ（Programmable Logic Controller）が利用されている。また、複数
の制御装置が接続されるシステムにおいて、システム構成を簡素にするため、イーサネットといった既存の規格を利用して通信を行う技術が普及している。このような規格として、例えば、ＥｔｈｅｒＣＡＴ（登録商標）が存在する（特許文献１）。
【０００３】
ＥｔｈｅｒＣＡＴにおいては、ネットワーク接続されたマスタが、複数のスレーブに対してフレームを送出し、複数のスレーブが、受信したフレームにオンザフライでマスタ宛のデータを書き込む。これにより、複数のスレーブが協調して動作することを可能にしている。
【０００４】
ＥｔｈｅｒＣＡＴは、複数のスレーブ間で処理タイミングを一致させるための信号（同期信号）を生成する機能を有している。複数のスレーブが同期信号に基づいて処理を行うことで、異なる複数の制御対象物（例えば、軸ごとに設置された複数のモータ）の動作を同期させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第８０６０６７７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＥｔｈｅｒＣＡＴの各スレーブでは、装置の制御を行うＭＰＵが周期的に制御信号（割り込み）を発生させており、当該制御信号に基づいたタイミングで制御対象物の制御を行う。また、この制御信号のタイミングを同期信号と同期させることで、複数のスレーブ間で動作を同期させることができる。
【０００７】
一方、同期信号と制御信号はそれぞれ別々のプロセッサによって生成されているため、お互いのタイミングに徐々に誤差が生じうる。これを修正しないと、スレーブ間で動作の同期が取れなくなるため、各スレーブにおいては、タイミングの誤差を検出し、制御信号の生成タイミングを修正する必要がある。
【０００８】
本発明は上記の課題を考慮してなされたものであり、制御装置において、異なるクロックによって周期的に生成される複数の信号を同期させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る制御装置は、
第一の周期ごとに生成される同期信号を取得する第一のプロセッサと、前記第一の周期をｎ分割（ｎ≧１）した第二の周期を生成し、かつ、タイマを用いて、前記第二の周期をｍ分割（ｍ≧２）した第三の周期ごとに制御信号を発生させ、前記制御信号に基づいたタイミングで所定の処理を行う第二のプロセッサと、を有し、前記第一の周期において発生する複数の制御信号のうちの少なくとも１回が、前記同期信号と同期すべき制御信号であり、前記第二のプロセッサは、前記同期信号と、前記同期信号と同期すべき制御信号との
間でタイミングに誤差が生じたことを検出した場合に、次回以降に開始する前記タイマの幅を一時的に変更することで前記誤差を補正することを特徴とする。
【００１０】
同期信号は、制御装置に対して周期的に与えられるタイミング信号であり、第一のプロセッサによって取得される。本発明に係る制御装置がマスタ装置と接続されている場合、同期信号はマスタ装置から周期的に送信されるものであってもよい。
また、第二のプロセッサは、第一の周期内において、第一の周期の１／ｎの周期で第二の周期を生成し、かつ、第二の周期の１／ｍの周期（第三の周期）で制御信号を反復して発生させ、制御信号に基づいたタイミングで所定の処理を行うことで制御対象物の制御を行う。例えば、制御対象物がモータである場合、制御装置が、モータの駆動を行うサブプロセッサと、モータの位置検出を行うサブプロセッサとそれぞれ通信する構成であってもよい。制御信号のタイミングごとに所定の処理（例えば各サブプロセッサとの入出力）を行うことで、同期信号をさらに細分化したタイミングで細かな制御を行うことができる。
【００１１】
かかる構成においては、同期信号と制御信号が別々のプロセッサによって生成されるため、互いの信号のタイミングにずれが生じる場合がある。
そこで、本発明に係る制御装置は、第二のプロセッサが、同期信号と、同期信号と同期すべき制御信号との間でタイミングに誤差が生じたことを検出した場合に、第三の周期を計測するタイマの幅を変更することで、ずれたタイミングを一致させる。この際、遅延させるタイマは、次回以降に開始するタイマである。かかる構成によると、比較的簡便な構成で同期信号と制御信号とを一致させることが可能となる。
【００１２】
また、前記第二のプロセッサは、前記誤差が所定の値以上である場合に、前記誤差の補正を行うことを特徴としてもよい。
【００１３】
タイミングの誤差は徐々に累積していくため、誤差に閾値を設け、検出した誤差が閾値を上回った時点で補正処理を行うようにすることが好ましい。補正の頻度があまりに高いと、制御信号が均等に発生しなくなるため、装置の動作に弊害をもたらすおそれがあるためである。
【００１４】
また、前記タイマの一回の変更幅に上限が設けられており、前記第二のプロセッサは、前記誤差が前記上限を上回る場合に、複数の前記第三の周期に分けて前記タイマの幅を変更することを特徴としてもよい。
【００１５】
補正の量が大きいと、制御信号のタイミングが急激に変わるため、サブプロセッサが異常を検知してしまうなど、装置の動作に弊害をもたらすおそれがある。そこで、一回あたりの補正量に上限を設け、一回の周期で補正が完了しない場合、複数の周期に分散して補正を行うようにすることが好ましい。
【００１６】
また、前記所定の処理は、モータの駆動制御を行うプロセッサ、または、前記モータから位置情報を取得するプロセッサの少なくともいずれかと行うデータの送受信処理であることを特徴としてもよい。
【００１７】
本発明は、サブプロセッサとして、モータの駆動制御を行うプロセッサと、エンコーダ等によってモータの位置検出を行うプロセッサを有する装置に好適に適用することができる。
【００１８】
また、前記第二のプロセッサは、前記誤差の補正を行ってから所定の時間が経過するまで、再度の補正を行わないことを特徴としてもよい。
【００１９】
誤差の補正を行ってから、サブプロセッサの動作が安定するまで再度の補正を行わないようにすることで、装置の安定化を図ることができる。
【００２０】
また、前記第二のプロセッサは、前記同期信号を取得すべきタイミングから、所定の回数後に開始する前記タイマの幅を変更することを特徴としてもよい。
【００２１】
かかる構成によると、同期信号間において常に同じタイミングで補正がかかるため、複数のサブプロセッサに与える影響を最小限にすることができる。
【００２２】
なお、本発明は、上記手段の少なくとも一部を含む制御装置として特定することができる。また、上記制御装置が行う制御方法として特定することもできる。上記処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
【発明の効果】
【００２３】
本発明によれば、制御装置において、異なるクロックによって周期的に生成される複数の信号を同期させることができる。
【図面の簡単な説明】
【００２４】
【図１】実施形態に係る制御システムの全体構成図である。
【図２】同期信号と制御信号のタイミングを説明する図である。
【図３】実施形態に係る制御装置のシステム構成図である。
【図４】Ｔｉｃｋごとの処理内容を説明する図である。
【図５】タイミングのずれを補正する処理を説明する図である。
【図６】実施形態に係る制御装置が行う処理フローチャートである。
【発明を実施するための形態】
【００２５】
（適用例）
以下、本発明の概要について図面を参照しながら説明する。
図１は、本発明の一実施形態に係る制御システムの全体構成を示す模式図である。本制御システムは、マスタノードであるマスタＰＬＣ１０と、スレーブノードである複数のスレーブ２０を有して構成される。
【００２６】
マスタＰＬＣ１０は、複数のスレーブ２０を統括する装置である。具体的には、スレーブ２０で実行されるプログラムの管理、スレーブ２０の運転状態の監視などを行う。
【００２７】
スレーブ２０は、マスタＰＬＣ１０およびサーボモータ３０、エンコーダ４０と電気的に接続され、マスタＰＬＣ１０から受信した命令に従ってサーボモータ３０を駆動し、また、サーボモータ３０の位置情報をエンコーダ４０から取得して制御を行う装置である。
【００２８】
スレーブ２０は、典型的には、ネットワーク通信を行う通信ユニットと、プログラムを実行する主体であるＣＰＵユニットと、フィールドからの信号を入出力するＩ／Ｏユニットを含む。Ｉ／Ｏユニットには、サーボモータ３０およびエンコーダ４０が接続される。スレーブ２０は、ＣＰＵユニットで実行したプログラムの実行結果に基づいてサーボモータ３０を駆動し、サーボモータ３０の位置情報を出力するエンコーダ４０から信号を取得する。また、現在のステータス情報をマスタＰＬＣ１０へ送信する。なお、図示していないが、ＣＰＵユニットは、入出力を行う手段（タッチパネルやディスプレイ等）を有していてもよい。例えば、ＰＬＣの動作に関する情報をユーザに提供してもよい。
【００２９】
マスタＰＬＣ１０とスレーブ２０は、イーサネット（登録商標）などのネットワークを介して接続される。本実施形態では、マスタＰＬＣ１０とスレーブ２０は、ＥｔｈｅｒＣ
ＡＴ（登録商標）を利用して通信するように構成される。
【００３０】
複数のスレーブ２０には、それぞれ異なるサーボモータ３０が接続される。なお、図１には一つのスレーブ２０に一つのサーボモータ３０を接続した例を示したが、スレーブ２０に接続されるモータの数は複数であってもよい。スレーブ２０に接続されるモータの数が複数である場合、各サーボモータ３０の駆動に関する情報がスレーブによって一元化され、マスタＰＬＣ１０へ伝送される。また、図１には、３つのスレーブ２０を図示したが、ネットワークに接続されるスレーブの数に制限は無い。
【００３１】
マスタＰＬＣ１０からスレーブ２０へは、周期的に同期信号が送信される。同期信号は、複数のスレーブ間で処理のタイミングを一致させるための信号であり、例えば、数百マイクロ秒おきに発行される。
【００３２】
また、スレーブ２０においては、同期信号と同期したタイミングで制御信号が周期的に生成される。図２は、制御信号の生成タイミングを説明する図である。スレーブ２０は、内蔵されたタイマによってカウンタをインクリメントし、カウンタが増加するタイミングで制御信号を生成する。スレーブ２０は、図２（Ａ）に示したように、同期信号が到来するごとにｎ回（本例の場合は４回）ずつ制御信号を生成するよう設計されている。
【００３３】
このような構成においては、同期信号が与えられるタイミングと、制御信号が生成されるタイミングにずれが生じることがある。これは、同期信号を生成するプロセッサと、制御信号を生成するプロセッサが異なるためである。例えば、図２（Ｂ）に示したように、補正を行わないと、ずれが拡大し、スレーブ間の同期に支障を及ぼしてしまう。
【００３４】
本発明においては、このようなずれを補正するため、同期信号と制御信号との間にタイミングのずれを検出した場合に、次回以降にスタートするタイマの幅を変更することで、ずれの補正を行う。
例えば、図示したＴｉｃｋ３の先頭においてずれを検出した場合、続くＴｉｃｋ４，Ｔｉｃｋ１，Ｔｉｃｋ２に対応するタイマを一時的に延長ないし短縮する。これにより、次に到来する同期信号と制御信号のタイミングを一致させることができる。
【００３５】
（システム構成）
以下、前述した機能を実現するための、本発明の好ましい実施形態について図面を参照しながら説明する。
図３は、本実施形態に係る制御装置を示すシステム構成図である。制御装置２０が、図１におけるスレーブ２０に対応する。
【００３６】
入出力部２１は、ＥｔｈｅｒＣＡＴバスとメインプロセッサを接続するためのインタフェース部である。
メインプロセッサ２２は、制御装置２０の制御を行う主プロセッサである。メインプロセッサ２２は、必ずしも単一のプロセッサでなくてもよい。例えば、ＥｔｈｅｒＣＡＴとの通信において利用されるプロセッサ（第一のプロセッサ２２ａ）と、制御対象物（例えばモータやインバータ）を制御するためのプロセッサ（第二のプロセッサ２２ｂ）を有していてもよい。また、これらのプロセッサは、必ずしも単一の種類でなくてもよい。例えば、一つがＡＳＩＣによって、一つがＭＰＵによって実装されてもよい。本実施形態では、第一のプロセッサが同期信号の取得を行い、第二のプロセッサが制御信号を生成するものとするが、この形態に限られない。
【００３７】
本実施形態に係る制御装置は、さらに、制御対象物であるモータを駆動するためのサブプロセッサと、モータの位置情報を取得するためのサブプロセッサを有して構成される。
第１サブプロセッサ２３は、制御対象物であるモータを駆動するためのサブプロセッサである。第１サブプロセッサ２３は、後述するモータ駆動回路２４に対して制御信号を送信することでモータの制御を行う。第１サブプロセッサ２３は、例えば、マイクロコントローラユニット（ＭＣＵ）として実装される。
モータ駆動回路２４は、モータを駆動するための電源と接続されており、第１サブプロセッサ２３から送信された制御信号に基づいて、モータ駆動用のパルス信号を生成する回路である。
【００３８】
モータ３０は、制御装置２０が制御を行う対象物である。本実施形態では、モータ３０はサーボモータである。モータ３０の位置情報（回転角に関する情報）は、モータ３０に内蔵されたエンコーダ４０によって検出される。本実施形態では、エンコーダ４０は、位置情報をパルス信号によって出力するインクリメンタルエンコーダである。
入力回路２５は、エンコーダ４０が出力したパルス信号を取得し、内部信号に変換するインタフェースである。
【００３９】
第２サブプロセッサ２６は、入力回路２５が出力した内部信号のカウント、ラッチによる入力値の保存などを行うプロセッサである。第２サブプロセッサ２６は、例えば、マイクロコントローラユニット（ＭＣＵ）として実装される。
【００４０】
メインプロセッサ２２、第１サブプロセッサ２３、第２サブプロセッサ２６の間はＳＰＩ（Serial Peripheral Interface）によって通信が行われる。
【００４１】
（信号の補正方法）
次に、同期信号と制御信号の関係について説明する。
本実施形態では、マスタＰＬＣ１０から周期的に送信される同期信号（ＳＹＮＣ０）をメインプロセッサ２２が取得し、メインプロセッサ２２が、タイマを用いて、同期信号と同期したタイミングで制御信号を生成する。
なお、以下の説明では、同期信号が２００マイクロ秒間隔で到来するものとする。
【００４２】
メインプロセッサ２２は、プロセッサに内蔵されたタイマパルスユニットを用いて、図２（Ａ）に示したように、同期信号の到来周期を４分割した周期でカウントを行う。本例では、１カウントの単位をＴｉｃｋと称する。すなわち、Ｔｉｃｋ１からＴｉｃｋ４までの４周期が、同期信号が到来するごとに生成される。メインプロセッサ２２は、Ｔｉｃｋが生成されるたびに（すなわち、５０マイクロ秒おきにカウンタがアップするたびに）制御信号を生成する。なお、本実施形態では、Ｔｉｃｋ３の開始タイミングと同期信号のタイミングとを一致させるものとする。
【００４３】
次に、図４を参照しながら、メインプロセッサ２２がＴｉｃｋごとに行う処理内容について説明する。なお、ここでは、Ｔｉｃｋ３においてマスタＰＬＣ１０との通信が行われるものとする。
【００４４】
第１サブプロセッサ２３に着目すると、まず、Ｔｉｃｋ１で、第１サブプロセッサ２３に対する送信データを生成する。そして、Ｔｉｃｋ２で第１サブプロセッサ２３との通信を行い、Ｔｉｃｋ３にて第１プロセッサ２３から送信されたデータを読み出す。
【００４５】
第２サブプロセッサ２６に着目すると、Ｔｉｃｋ４で、第２サブプロセッサ２６から送信されたデータを読み出し、次いで、第２サブプロセッサ２６に対する送信データを生成する。そして、Ｔｉｃｋ１〜３で第２サブプロセッサ２６との通信を行う。
【００４６】
メインプロセッサ２２が生成する制御信号は、サブプロセッサに対する割り込み信号で
ある。メインプロセッサ２２は、各Ｔｉｃｋを開始するタイミングで割り込み信号を発生させ、各プロセッサは、割り込みによって通知されたタイミングに基づいて規定の処理を行う。
なお、本実施形態で述べたＴｉｃｋごとの処理内容、および、Ｔｉｃｋの分割数はあくまで一例であり、変更することも可能である。例えば、同期信号が到来する周期をｎ分割（ｎ≧１）した周期を生成し、当該周期をさらにｍ分割（ｍ≧２）した周期で制御信号を生成してもよい。
【００４７】
図２に戻って説明を続ける。
本実施形態のように、Ｔｉｃｋと同期信号とを同期させて処理を行う場合、両者のずれが問題となる。同期信号はマスタＰＬＣによって生成され、Ｔｉｃｋはメインプロセッサによって生成されるため、両者が同期するようタイマを設定しても、徐々に誤差が蓄積するためである。誤差が蓄積すると、図２（Ｂ）のように同期信号とＴｉｃｋが同期しなくなり、これが複数のスレーブ間で発生すると、例えばモータの軸間で同期が取れなくなるといった問題が発生する。
【００４８】
そこで、本実施形態では、メインプロセッサ２２が、同期信号とＴｉｃｋ３の始期との間にタイミングのずれが生じたことを検出した場合に、カウントを行うためのタイマの満了時期を補正することで誤差の修正を行う。
【００４９】
当該動作について、図５を参照して説明する。
メインプロセッサ２２は、図中（１）で示したように、同期信号が発生するごとに、同期信号の到来タイミングと、Ｔｉｃｋ３における制御信号の発生タイミングとのずれを検出する。ここで、ずれ幅の絶対値が所定の値（以下、第一の閾値）を上回っていた場合、補正が必要であると判断し、補正処理を行う。なお、第一の閾値は、例えば、同期信号の間隔が２００マイクロ秒である場合、１マイクロ秒とすることができる。第一の閾値は、想定される同期信号のジッタ（一時的な揺らぎ）よりも大きくすることが好ましい。ジッタを誤差として検出してしまうと、本来必要がない補正処理を行うことになり、以降において誤差の発生を誘発してしまうためである。
【００５０】
メインプロセッサ２２が、補正が必要であると判定した場合、図中（２）で示したように、次の周期以降に到来するＴｉｃｋ１において、Ｔｉｃｋを計時するタイマを一時的に延長ないし短縮する。例えば、制御信号よりも同期信号がｎマイクロ秒遅い場合、タイマの満了をｎマイクロ秒遅延させる。また、制御信号よりも同期信号がｎマイクロ秒早い場合、タイマの満了をｎマイクロ秒短縮させる。これにより、補正を行ったＴｉｃｋ以降において、同期信号と制御信号のタイミングが一致する。
【００５１】
期間を延長ないし短縮するＴｉｃｋは、基本的に４つのうちのいずれであってもよい。しかし、Ｔｉｃｋの長さを変更した場合、当該Ｔｉｃｋ内で行われる処理の終了タイミングや、続くＴｉｃｋ内で行われる処理の開始タイミングが変わるため、場合によっては、サブプロセッサから正しいデータを読み取れなくなるケースが発生しうる。よって、補正幅だけ始期がずれてもデータの送受信に影響が無いＴｉｃｋを選択することが好ましい。本実施形態では、このようなＴｉｃｋとしてＴｉｃｋ１を選択した。
このように、本実施形態では、４回ずつ実行されるタイマのうち、延長ないし短縮の対象とするタイマの順番が固定（本例では１番目，同期信号から数えると３番目）となっている。
【００５２】
（処理フローチャート）
次に、図６を参照しながら、メインプロセッサ２２が行う処理のフローチャートについて説明する。図６の処理は、制御装置２０が起動中に、メインプロセッサ２２によって繰
り返し実行される。
【００５３】
まず、ステップＳ１１にて、前回補正を行ってから所定の時間が経過しているか否かを判定する。当該処理は、補正の間隔を確保するための処理である。なお、所定の時間は、例えば、同期信号の間隔が２００マイクロ秒である場合、５０ミリ秒とすることができる。所定の時間が経過していない場合、処理は初期状態に戻る。
【００５４】
ステップＳ１２では、対象のＴｉｃｋ（本実施形態ではＴｉｃｋ３）の始期と、同期信号間の誤差を測定する。
次に、ステップＳ１３で、測定によって得られた誤差が第一の閾値以上であるか否かを判定する。第一の閾値は、前述したように、同期信号のタイミングの揺らぎを考慮して設定するとよい。誤差が第一の閾値未満である場合、処理は初期状態に戻る。
【００５５】
次に、ステップＳ１４で、測定によって得られた誤差が第二の閾値以上であるか否かを判定する。第二の閾値は、一回の処理において補正が許される最大幅を表す値である。例えば、一回の処理において補正が許される幅が５マイクロ秒である場合、第二の閾値は５マイクロ秒となる。
本実施形態では、ステップＳ１３で所定値以上の誤差を検出した場合に逐次補正を行っているが、前回補正を行ってから次の補正を行うまでの間隔を確保しているため、この間に誤差が蓄積することが考えられる。この間に蓄積した誤差が大きい場合、ステップＳ１４で肯定判定となる。
【００５６】
誤差が第二の閾値未満である場合、次の周期においてＴｉｃｋ１を計時するタイマを延長ないし短縮する（ステップＳ１５）。前述したように、延長／短縮の幅は、ステップＳ１２で得られた誤差と等しくなる。
誤差が第二の閾値以上である場合、次回以降の周期においてＴｉｃｋ１を計時するタイマを延長ないし短縮する（ステップＳ１６）。ステップＳ１６がステップＳ１５と異なる点は、一度の周期で補正を完了させない点である。すなわち、第二の閾値を上限とする補正を複数回行い、ずれを解消させていく。例えば、誤差が３０マイクロ秒であって、第二の閾値が５マイクロ秒であった場合、５マイクロ秒ずつ補正を６回行う。このように、少しずつ補正を行うことで、制御対象物の安定状態を維持させることができる。
【００５７】
以上説明したように、本実施形態によると、同期信号に基づいて制御信号（割り込み）を生成し、制御信号に基づいて複数のプロセッサが協働する制御装置において、同期信号と制御信号とを同期させることができる。
なお、既に開始したタイマの満了時間を変更する場合、変更後において満了すべき時刻がまだ到来していないことが変更の条件となる。これに対し、本実施形態では、タイミングのずれを検知した場合に、まだ開始していないタイマを延長ないし短縮するため、制約なしに補正を行うことができる。
また、同期信号間においてＴｉｃｋが複数生成される場合に、常に同じＴｉｃｋを対象として補正を行うため、複数のサブプロセッサに与える影響を最小限にすることができる。
【００５８】
（変形例）
なお、実施形態の説明は本発明を説明する上での例示であり、本発明は、発明の趣旨を逸脱しない範囲で適宜変更または組み合わせて実施することができる。
【００５９】
例えば、実施形態の説明では、同期信号は毎回マスタＰＬＣから送信されるものとしたが、全ての同期信号がマスタＰＬＣから送信される必要はない。例えば、同期信号をメインプロセッサ２２が生成し、マスタＰＬＣからは、タイミングを補正するための信号のみ
を送信してもよい。
【００６０】
また、実施形態の説明ではサーボモータを制御するシステムを例示したが、制御対象はサーボモータ以外であってもよい。例えば、インバータなどであってもよい。また、制御対象は必ずしも可動部を有するものでなくてもよい。例えば、センシング装置やレーザ装置などであってもよい。
【００６１】
また、実施形態の説明ではサブプロセッサを２個としたが、サブプロセッサの数は１個、または３個以上であってもよい。
【００６２】
本発明は、以下のように特定することもできる。すなわち、
第一の周期ごとに生成される同期信号を取得する第一のプロセッサ（２２ａ）と、
前記第一の周期をｎ分割（ｎ≧１）した第二の周期を生成し、かつ、タイマを用いて、前記第二の周期をｍ分割（ｍ≧２）した第三の周期ごとに制御信号を発生させ、前記制御信号に基づいたタイミングで所定の処理を行う第二のプロセッサ（２２ｂ）と、を有し、
前記第一の周期において発生する複数の制御信号のうちの少なくとも１回が、前記同期信号と同期すべき制御信号であり、
前記第二のプロセッサは、前記同期信号と、前記同期信号と同期すべき制御信号との間でタイミングに誤差が生じたことを検出した場合に、次回以降に開始する前記タイマの幅を一時的に変更することで前記誤差を補正する
ことを特徴とする、制御装置である。
【符号の説明】
【００６３】
２０・・・制御装置
２１・・・入出力部
２２・・・メインプロセッサ
２３・・・第１サブプロセッサ
２４・・・モータ駆動回路
２５・・・入力回路
２６・・・第２サブプロセッサ
３０・・・モータ
４０・・・エンコーダ
【図１】
2019101480.tif 000003
【図２】
2019101480.tif 000004
【図３】
2019101480.tif 000005
【図４】
2019101480.tif 000006
【図５】
2019101480.tif 000007
【図６】
2019101480.tif 000008