(57)【要約】【課題】クロックの差を意識せずに上位装置からの同期信号に同期して制御処理を実行できる外部同期可能な制御装置を提供する。【解決手段】同期割込信号を生成する割込回路２１と、定周期に制御処理を行うための制御周期信号を生成する制御周期発生回路２６と、制御割込信号を生成する割込回路２１と、上位装置１からデータを入力し上位装置にデータを出力する入出力回路２３と、同期割込処理部２４と、制御割込処理部２５とを備えた制御装置２において、定周期に制御処理を行うための制御周期信号を生成する制御周期発生回路２６が、同期割込処理部２４において設定された制御周期設定値２７の周期で制御周期信号を生成するようにしている。【選択図】図１
2007226423.tif 000002
【特許請求の範囲】
【請求項１】
定周期に制御処理を行うための制御周期信号を生成する制御周期発生回路と、上位装置など外部から定周期に出力される同期信号が入力されると同期割込信号を生成し、前記制御周期信号が入力されると制御割込信号を生成する割込回路と、前記上位装置からデータを入力しかつ前記上位装置にデータを出力する入出力回路と、前記同期割込信号が入力されると同期割込処理を実行する同期割込処理部と、前記制御割込信号が入力されると制御割込処理を実行する制御割込処理部とを備えた制御装置において、
前記制御周期発生回路は、前記同期割込処理部において設定された制御周期設定値の周期で前記制御周期信号を生成するようになっていることにより、外部からの同期信号に同期して前記制御割込処理を実行させることを特徴とする外部同期可能な制御装置。
【請求項２】
定周期に制御処理を行うための制御周期信号を生成する制御周期発生回路と、上位装置など外部から定周期に出力される同期信号が入力されると同期割込信号を生成し、前記制御周期信号が入力されると制御割込信号を生成する割込回路と、前記上位装置からデータを入力しかつ前記上位装置にデータを出力する入出力回路と、前記同期割込信号が入力されると同期割込処理を実行する同期割込処理部と、前記制御割込信号が入力されると制御割込処理を実行する制御割込処理部とを備えた制御装置の制御方法において、
前記同期割込処理は、まず、前記制御周期信号の生成周期を制御周期設定値に設定する処理を行ない、次に、前記制御装置が入力する位置指令、速度指令、トルク指令などの指令データと前記制御装置が出力する現在位置、現在速度などのフィードバックデータから構成される入出力データの処理を行ない、その後、前記制御周期設定値の周期で前記制御周期発生回路が前記制御周期信号を生成して前記割込回路へ入力し、前記割込回路で前記制御割込信号が生成されると前記制御割込処理部で前記制御割込処理が実行される、という手順で処理することを特徴とする外部同期可能な制御方法。
【請求項３】
前記同期割込処理は、まず、定周期に前記制御周期信号を生成するために前記制御周期発生回路が計測している水晶発振子のクロックカウント値ａを取得するステップ１と、次に前回の前記同期割込処理から今回の前記同期割込処理の間に実行された前記制御割込処理の回数ｂを取得するステップ２と、次に外部からの同期信号が最初に入力された場合の前記同期割込処理かどうかを同期開始フラグの値で判断するステップ３と、
ステップ３の判断の結果最初に入力された前記同期割込処理の場合であれば、前記制御周期信号の生成周期を前記クロックカウント値ａに前記同期割込処理で費やされる処理時間の見積もり時間αを加えた値ａ＋αで前記制御周期設定値に設定するステップ４と、次に外部からの最初の前記同期割込処理が終わったことを前記同期開始フラグに設定するステップ５と、次に本来の制御周期の値である制御周期デフォルト値に再設定するように制御周期デフオルト設定フラグを設定するステップ６と、ステップ６の実行後後述のステップ９に進み、
一方、ステップ３の判断の結果最初に入力された前記同期割込処理の場合でなければ前記クロックカウント値ａに同期割込処理時間の見積もり時間αを加算した値ａ＋αを前記同期割込処理に同期して実行されるべき前記制御割込処理の周期とし、この値ａ＋αと既に生成されている前記制御周期信号の設定値との差分を求め、この差分を同期割込処理周期内で実行された前記制御割込処理の回数ｂで割った値βを外部で同期信号を生成するのに使用している水晶発振子と前記制御周期信号を生成するのに使用している水晶発振子との誤差であるクロックずれ時間βとするステップ７と、次に、既に生成されている前記制御周期信号の設定値に時間βを加えたものをあらたに前記制御周期信号の設定値として前記制御周期設定値に設定するステップ８と、その後、前記入出力データの処理を行なうステップ９からなることを特徴とする請求項２記載の外部同期可能な制御方法。
【請求項４】
前記制御割込処理は、まず、前記制御割込処理で前記制御周期設定値を前記制御周期デフォルト値に設定するかどうかを前記制御周期デフォルト設定フラグの値で判断するステップ１と、ステップ１の判断の結果前記制御周期デフォルト設定フラグの値が設定を要求しているとき前記制御周期設定値に前記制御周期デフォルト値を設定するステップ２と、次に制御周期デフォルト設定しないように前記制御周期デフォルト設定フラグを設定するステップ３と、ステップ３の実行後ステップ４に進み、
一方、ステップ１の判断の結果前記制御周期デフォルト設定フラグの値が設定を要求していないときステップ４に進み、前記制御処理を行なうステップ４からなることを特徴とする請求項２記載の外部同期可能な制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置など外部からの同期信号に同期して制御処理を行う機能を有する制御装置とその制御方法に関するものである。
【背景技術】
【０００２】
従来の制御装置について、図７および図８を用いて説明する。
図７は従来の制御装置の構成を説明するブロック図であり、図８はその動作を説明するタイムチャートである。
図７において、上位装置１は、クロックを生成する水晶発振子１０と、水晶発振子１０からのクロックを基に定周期に同期信号Ｓ１０を生成してこれを制御装置２に出力する同期信号発生回路１１と、制御装置２にデータを出力しかつ制御装置２からデータを入力する入出力回路１２から構成されている。
制御装置２は、ＣＰＵ２０と、割込回路２１と、入出力回路２３と、制御周期発生回路２８と、水晶発振子２２と、同期割込処理部２４と、制御割込処理部２５から構成される。
ＣＰＵ２０は水晶発振子２２からのクロック信号で動作し、また、割込回路２１から同期割込信号Ｓ２０が入力されると同期割込処理部２４で同期割込処理を実行させ、また割込回路２１から制御割込信号Ｓ２１が入力されると制御割込処理部２５で制御割込処理を実行させる。
割込回路２１は上位装置１からの同期信号Ｓ１０が入力されると、同期割込信号Ｓ２０を生成し、ＣＰＵ２０へ出力し、また、制御周期発生回路２８から制御周期信号Ｓ２２が入力されると、制御割込信号Ｓ２１を生成しＣＰＵ２０へ出力する。
水晶発振子２２はクロックを生成する。入出力回路２３は上位装置１に入出力データＳ１１を出力し、上位装置１から入出力データＳ１１を入力する。
同期割込処理部２４は、入出力データＳ１１の処理を行う。制御割込処理部２５は、位置制御、速度制御、トルク制御などの処理を行う。
制御周期発生回路２８は、上位装置１からの同期信号Ｓ１０が入力された時点から水晶発振子２２からのクロックを基に定周期に信号を生成して出力する。すなわち、上位装置１で定周期に生成される同期信号Ｓ１０が入力されると、制御周期発生回路２８は制御周期信号Ｓ２２を出力すると同時に、水晶発振子２２からのクロックの計測を開始し、予め設定された周期に達すると制御周期信号Ｓ２２を出力するとともに、再度水晶発振子２２からのクロックの計測を開始する。
この動作を繰り返し行うことで定周期に信号を生成する。
同期割込信号Ｓ２０は、上位装置１からの同期信号Ｓ１０が入力された時に割込回路２１で生成される。制御割込信号Ｓ２１は制御周期発生回路２８からの制御周期信号Ｓ２２が入力された時に割込回路２１で生成される。
制御周期信号Ｓ２２は、制御周期発生回路２８で生成される。
【０００３】
図８において、上位装置１（図７）で定周期に生成される同期信号Ｓ１０（図７）が入力されると、割込回路２１（図７）で同期割込信号Ｓ２０（図７）が生成され、ＣＰＵ２０（図７）により同期割込処理部２４（図７）で同期割込処理が実行される。また、制御周期発生回路２８（図７）が起動され、制御周期信号Ｓ２２（図７）より割込回路２１で制御割込信号Ｓ２１（図７）が生成され、ＣＰＵ２０により制御割込処理部２５（図７）で制御割込処理が実行される。
この例では、上位装置１からの同期信号Ｓ１０および同期割込信号Ｓ２０は４００μｓごとに生成され、制御割込信号Ｓ２１は１００μｓごとに生成されるものとする。すなわち、同期信号Ｓ１０の周期である４００μｓごとに同期割込処理が実行され、４００μｓの間に１００μｓ周期の制御割込信号Ｓ２１により制御割込処理が計４回実行される。
一般にクロックに使用する水晶発振子の精度は１００ｐｐｍ程度であるため、上位装置１で使用している水晶発振子１０と制御装置２で使用している水晶発振子２２の誤差は最大２００ｐｐｍである。よって、１／５０００の誤差となる。４００μｓでは、４００μｓ±０．０８μｓとなる。
上位装置１の同期信号Ｓ１０を生成しているクロックが制御装置２の制御周期信号Ｓ２２を生成しているクロックよりも速い場合は、４００μｓ間に１００μｓの制御周期信号Ｓ２２は４回しか生成されず、それ以上は生成されないため、制御割込処理は正常に計４回実行される。
一方、上位装置１の同期信号Ｓ１０を生成しているクロックが制御装置２の制御周期信号Ｓ２２を生成しているクロックよりも遅い場合は、時刻Ｄ（図８）のようになり、上位装置１からの同期信号Ｓ１０が入力される前に、５回目の制御周期信号Ｓ２２が生成され、４００μｓ間では本来４回実行されるべき制御割込処理が５回実行されることになる。
また、上位装置１で定周期に生成される同期信号Ｓ１０が入力されると、同期割込信号Ｓ２０と制御割込信号Ｓ２１が生成されるが、一般的に同期割込処理の方が制御割込処理より割込優先順位が高いので、同期割込処理が先に実行され、制御割込処理は同期割込処理が完了するまで待たされる。この例では、同期割込処理の実行時間は２０μｓとする。
本来は、制御割込処理に許される最大処理時間は、制御周期である１００μｓであるが、時刻Ｃ（図８）のように、上位装置１で定周期に生成される同期信号Ｓ１０が入力された１回目の制御割込処理の場合は、制御周期１００μｓから同期割込処理の実行時間２０μｓを減算した８０μｓが許される最大処理時間となる。
従って、２回目から４回目の制御割込処理が実行される周期は、１００μｓであるにもかかわらず、１回目の制御割込処理に許される最大処理時間が８０μｓであるため、１回目の制御割込処理に許される最大処理時間８０μｓで完了するような処理に押さえる必要がある。このとき、図８の時刻Ｃを境にして２回目の制御割込処理までの処理周期は制御周期１００μｓから同期割込処理の実行時間２０μｓを減算した８０μｓとなり、前回の制御割込処理からの処理周期は制御周期１００μｓに同期割込処理の実行時間２０μｓを加えた１２０μｓとなる。
【０００４】
このように、従来の制御装置は、上位装置１の同期信号Ｓ１０を生成しているクロックと制御装置２の制御周期信号Ｓ２２を生成しているクロックの差を意識し、上位装置１の同期信号Ｓ１０を生成しているクロックが制御装置２の制御周期信号Ｓ２２を生成しているクロックよりも速くなるようにし、また、制御割込処理部２５が制御処理周期から同期割込処理に要する処理時間を減算した時間内に完了するようにしているのである（例えば、特許文献１および２参照）。
【特許文献１】特開平１１−２５９１０５号公報（第７−８頁、図１）
【特許文献２】特開２００２−３３３９０５号公報（第５−７頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の制御装置は、上位装置の同期信号を生成しているクロックが制御装置の制御周期信号を生成しているクロックよりも速くなるような上位装置との組み合わせになるように意識しなければならず、故障時の交換などが煩わしかった。万一、上位装置の同期信号を生成しているクロックが制御装置の制御周期信号を生成しているクロックよりも遅い上位装置と制御装置との組み合わせでは、上位装置からの同期信号に同期して制御処理を実行できないという問題があった。
また、制御周期については、図８の時刻Ｃの前後、つまり同期割込処理を境にして制御処理の周期が同期割込処理の実行時間分だけばらつき、制御処理の定周期性が損なわれるという問題も抱えていた。制御処理が一定周期で実行されないと、例えば、等速で回転しているモータの速度が一定速度として制御処理で検出できないなど、一般的に制御精度が劣化し、制御に悪影響を及ぼすという問題があった。
そこで、本発明は、このような問題点に鑑みてなされたものであり、上位装置の同期信号を生成しているクロックと制御装置の制御周期信号を生成しているクロックの差を意識せずに上位装置からの同期信号に同期して制御処理を実行することができるとともに、制御処理の定周期性を損なうことのない外部同期可能な制御装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記問題を解決するため、請求項１記載の発明は、外部同期可能な制御装置に係り、定周期に制御処理を行うための制御周期信号を生成する制御周期発生回路と、上位装置など外部から定周期に出力される同期信号が入力されると同期割込信号を生成し、前記制御周期信号が入力されると制御割込信号を生成する割込回路と、前記上位装置からデータを入力しかつ前記上位装置にデータを出力する入出力回路と、前記同期割込信号が入力されると同期割込処理を実行する同期割込処理部と、前記制御割込信号が入力されると制御割込処理を実行する制御割込処理部とを備えた制御装置において、前記制御周期発生回路が、前記同期割込処理部において設定された制御周期設定値の周期で前記制御周期信号を生成するようになっていることにより、外部からの同期信号に同期して前記制御割込処理を実行させることを特徴としている。
【０００７】
また、請求項２記載の発明は、外部同期可能な制御方法に係り、定周期に制御処理を行うための制御周期信号を生成する制御周期発生回路と、上位装置など外部から定周期に出力される同期信号が入力されると同期割込信号を生成し、前記制御周期信号が入力されると制御割込信号を生成する割込回路と、前記上位装置からデータを入力しかつ前記上位装置にデータを出力する入出力回路と、前記同期割込信号が入力されると同期割込処理を実行する同期割込処理部と、前記制御割込信号が入力されると制御割込処理を実行する制御割込処理部とを備えた制御装置の制御方法において、前記同期割込処理が、まず、前記制御周期信号の生成周期を制御周期設定値に設定する処理を行ない、次に、前記制御装置が入力する位置指令、速度指令、トルク指令などの指令データと前記制御装置が出力する現在位置、現在速度などのフィードバックデータから構成される入出力データの処理を行ない、その後、前記制御周期設定値の周期で前記制御周期発生回路が前記制御周期信号を生成して前記割込回路へ入力し、前記割込回路で前記制御割込信号が生成されると前記制御割込処理部で前記制御割込処理が実行される、という手順で処理することを特徴としている。
また、請求項３記載の発明は、請求項２記載の外部同期可能な制御方法において、前記同期割込処理が、まず、定周期に前記制御周期信号を生成するために前記制御周期発生回路が計測している水晶発振子のクロックカウント値ａを取得するステップ１と、次に前回の前記同期割込処理から今回の前記同期割込処理の間に実行された前記制御割込処理の回数ｂを取得するステップ２と、次に外部からの同期信号が最初に入力された場合の前記同期割込処理かどうかを同期開始フラグの値で判断するステップ３と、
ステップ３の判断の結果最初に入力された前記同期割込処理の場合であれば、前記制御周期信号の生成周期を前記クロックカウント値ａに前記同期割込処理で費やされる処理時間の見積もり時間αを加えた値ａ＋αで前記制御周期設定値に設定するステップ４と、次に外部からの最初の前記同期割込処理が終わったことを前記同期開始フラグに設定するステップ５と、次に本来の制御周期の値である制御周期デフォルト値に再設定するように制御周期デフオルト設定フラグを設定するステップ６と、ステップ６の実行後後述のステップ９に進み、
一方、ステップ３の判断の結果最初に入力された前記同期割込処理の場合でなければ前記クロックカウント値ａに同期割込処理時間の見積もり時間αを加算した値ａ＋αを前記同期割込処理に同期して実行されるべき前記制御割込処理の周期とし、この値ａ＋αと既に生成されている前記制御周期信号の設定値との差分を求め、この差分を同期割込処理周期内で実行された前記制御割込処理の回数ｂで割った値βを外部で同期信号を生成するのに使用している水晶発振子と前記制御周期信号を生成するのに使用している水晶発振子との誤差であるクロックずれ時間βとするステップ７と、次に、既に生成されている前記制御周期信号の設定値に時間βを加えたものをあらたに前記制御周期信号の設定値として前記制御周期設定値に設定するステップ８と、その後、前記入出力データの処理を行なうステップ９からなることを特徴としている。
また、請求項４記載の発明は、請求項２記載の外部同期可能な制御方法において、前記制御割込処理が、まず、前記制御割込処理で前記制御周期設定値を前記制御周期デフォルト値に設定するかどうかを前記制御周期デフォルト設定フラグの値で判断するステップ１と、ステップ１の判断の結果前記制御周期デフォルト設定フラグの値が設定を要求しているとき前記制御周期設定値に前記制御周期デフォルト値を設定するステップ２と、次に制御周期デフォルト設定しないように前記制御周期デフォルト設定フラグを設定するステップ３と、ステップ３の実行後ステップ４に進み、
一方、ステップ１の判断の結果前記制御周期デフォルト設定フラグの値が設定を要求していないときステップ４に進み、前記制御処理を行なうステップ４からなることを特徴としている。
【発明の効果】
【０００８】
本発明によると、同期割込処理部において設定された制御周期設定値の周期で制御割込処理を実行するようになっているので、上位装置の同期信号を生成しているクロックと制御装置の制御周期信号を生成しているクロックの差を意識せずに上位装置からの同期信号に同期して制御処理を実行することができる。
また、制御周期信号の生成周期を調整することができるので制御処理の定周期性を保つことができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１０】
図１は、本発明の制御装置の構成を説明するブロック図である。
図１において、上位装置１は、クロックを生成する水晶発振子１０と、水晶発振子１０からのクロックを基に定周期に同期信号Ｓ１０を生成してこれを制御装置２に出力する同期信号発生回路１１と、制御装置２にデータを出力しかつ制御装置２からデータを入力する入出力回路１２から構成されている。
制御装置２は、ＣＰＵ２０と、割込回路２１と、入出力回路２３と、制御周期発生回路２６と、水晶発振子２２と、同期割込処理部２４と、制御割込処理部２５から構成される。
ＣＰＵ２０は水晶発振子２２からのクロック信号で動作し、また、割込回路２１から同期割込信号Ｓ２０が入力されると同期割込処理部２４で同期割込処理を実行させ、また割込回路２１から制御割込信号Ｓ２１が入力されると制御割込処理部２５で制御割込処理を実行させる。
割込回路２１は上位装置１からの同期信号Ｓ１０が入力されると、同期割込信号Ｓ２０を生成し、ＣＰＵ２０へ出力し、また、制御周期発生回路２６から制御周期信号Ｓ２２が入力されると、制御割込信号Ｓ２１を生成しＣＰＵ２０へ出力する。
水晶発振子２２はクロックを生成する。入出力回路２３は上位装置１に入出力データＳ１１を出力し、上位装置１から入出力データＳ１１を入力する。
同期割込処理部２４は、制御周期設定値２７を制御周期発生回路２６に設定し、入出力データＳ１１の処理を行う。
制御割込処理部２５は、位置制御、速度制御、トルク制御などの処理を行う。
制御周期発生回路２６は水晶発振子２２からのクロックを計測し、制御周期設定値２７に設定された周期に達すると制御周期信号Ｓ２２を出力するとともに、再度水晶発振子２２からのクロックの計測を開始する。この動作を繰り返し行うことで定周期に信号を生成する。
同期割込信号Ｓ２０は、上位装置１からの同期信号Ｓ１０が入力された時に割込回路２１で生成される。制御割込信号Ｓ２１は制御周期発生回路２６からの制御周期信号Ｓ２２が入力された時に割込回路２１で生成される。
制御周期信号Ｓ２２は、制御周期発生回路２６で生成される。
本発明が従来の制御装置と異なる部分は、制御周期発生回路２６への同期信号の入力がないこと、制御周期発生回路２６に制御周期設定値２７を備えた部分である。
【００１１】
図２は、上位装置１（図１）で定周期に生成される同期信号Ｓ１０（図１）の入力が開始された時のソフトウェアの動作を説明する図である。
図２において、上位装置１で定周期に生成される同期信号Ｓ１０が入力されると、割込回路２１（図１）で同期割込信号Ｓ２０（図１）が生成され、ＣＰＵ２０（図１）により同期割込処理部２４（図１）で同期割込処理が実行される。
同期割込処理部２４で実行される同期割込処理は、まず、制御周期信号Ｓ２２（図１）の生成周期を制御周期設定値２７（図１）に設定する処理を行う（ステート１０）。次に入出力データＳ１１（図１）の処理を行う（ステート１１）。
入出力データＳ１１は、制御装置２（図１）が入力する指令データと、制御装置２が出力するフィードバックデータから構成される。指令データには、位置指令、速度指令、トルク指令などがある。また、フィードバックデータには現在位置、現在速度などがある。その後、制御周期設定値２７の周期で制御周期発生回路２６（図１）が制御周期信号Ｓ２２を生成し、割込回路２１（図１）へ入力し、割込回路２１で制御割込信号Ｓ２１（図１）が生成され、ＣＰＵ２０により制御割込処理部２５（図１）が制御割込処理を実行する。
制御割込処理部２５で実行される制御割込処理は、まず、制御周期信号Ｓ２２の生成周期を制御周期デフォルト値に設定する処理を行う（ステート２０）。次に制御処理を行う（ステート２１）。これ以降は制御割込処理では制御処理のみを繰返し行う。
【００１２】
図３は、前記同期割込処理の動作手順を説明するフローチャートである。
図３において、同期割込処理部２４（図１）で実行される同期割込処理は、まず、定周期に制御周期信号Ｓ２２（図１）を生成するために制御周期発生回路２６（図１）が計測している水晶発振子２２（図１）のクロックカウント値ａを取得する（ステップ１）。
次に、前回の同期割込処理から今回の同期割込処理の間に実行された制御割込処理の回数ｂを取得する（ステップ２）。次に、外部からの同期信号Ｓ１０（図１）が最初に入力された場合の同期割込処理かどうかを同期開始フラグの値で判断する（ステップ３）。本実施例では同期信号Ｓ１０が入力されていない場合、同期開始フラグの値は０としている。
次に、外部からの同期信号Ｓ１０が最初に入力された同期割込処理の場合、すなわち同期開始フラグの値が０の場合は制御周期信号Ｓ２２の生成周期を前記クロックカウント値ａに同期割込処理で費やされる処理時間の見積もりαを加えた値（図２のＴＣ１）で制御周期設定値２７（図１）に設定する（ステップ４）。この処理により、制御割込処理は同期割込処理直後に実行されることになる。このとき、予め同期割込処理の最大処理時間を推定し、処理時間の見積もりαに設定しておくと同期割込処理時間の増減による制御周期の揺らぎはなくなる。
そして、外部からの最初の同期割込処理が終わったことを同期開始フラグに設定する（ステップ５）。本実施例では同期開始フラグに１を設定している。
そして、制御割込処理で制御周期信号Ｓ２２の生成周期を制御周期デフォルト値（図２のＴＣ０）に再設定するように制御周期デフォルト設定フラグを設定する（ステップ６）。本実施例ではデフォルト設定フラグに１を設定している。ステップ４にて設定した制御周期信号Ｓ２２の生成周期が同期割込処理の直後に制御割込処理が開始されるように強制的に設定した周期なので、本来の制御周期に戻す必要があるからである。
ステップ６の実行後ステップ９に進み、入出力データＳ１１の処理を行う。
【００１３】
一方、ステップ３の判断で外部からの最初の同期割込処理が終わっている場合、すなわち同期開始フラグが１の場合は上位装置１（図１）など外部で同期信号Ｓ１０を生成するのに使用している水晶発振子１０（図１）と制御周期信号Ｓ２２を生成するのに使用している水晶発振子２２との誤差をクロックずれ時間βとして計算する（ステップ７）。
具体的には、同期割込処理開始時に取得したクロックカウント値ａに同期割込処理時間の見積もりαを加算したものを同期割込処理に同期して実行されるべき制御割込処理の周期とし、この値と既に生成されている制御周期信号Ｓ２２の生成周期との差分を求める。この差分は同期割込処理周期内でのクロックずれを表す。この差分を同期割込処理周期内で実行された制御割込処理の回数ｂで割ることにより、１回の制御割込処理分のクロックずれを計算し、この値をクロックずれ時間βとしている。
水晶発振子１０の方が水晶発振子２２よりも速い場合はクロックずれ時間βが負の値となり、遅い場合はクロックずれ時間βが正の値となる。そして、既に生成されている制御周期信号Ｓ２２の生成周期にクロックずれ時間βを加えたものをあらたに制御周期信号Ｓ２２の生成周期（図２のＴＣ２）として制御周期設定値２７に設定する（ステップ８）。
これにより、制御処理の定周期性を保ちながらクロックずれ分を調整した制御周期信号Ｓ２２の生成周期が設定されることになる。
最後に、入出力データＳ１１の処理を行う（ステップ９）。
【００１４】
図４は、前記制御割込処理の動作手順を説明するフローチャートである。
図４において、制御割込処理部２５（図１）で実行される制御割込処理は、まず、制御割込処理で制御周期設定値２７（図１）を制御周期デフォルト値に設定するかどうかを制御周期デフォルト設定フラグの値で判断する（ステップ２１）。本実施例では制御周期設定値２７に制御周期デフォルト値を設定する場合、制御周期デフォルト設定フラグの値は１としている。このフラグの値が１の場合、制御周期設定値２７に制御周期デフォルト値を設定する（ステップ２２）。この処理によりステップ６で最初の同期割込処理直後に制御割込処理が実行されるように設定された制御周期信号Ｓ２２（図１）の生成周期は本来の制御周期に戻される。
そして、制御周期デフォルト設定しないように制御周期デフォルト設定フラグを設定する（ステップ２３）。本実施例では０を設定している。
その後、後述のステップ２４へ進む。
一方、ステップ２１で制御周期デフォルト値を設定しない場合、すなわち、制御周期デフォルト設定フラグの値が０の場合は、制御処理を行う（ステップ２４）。
このように、上位装置１（図１）で定周期に生成される同期信号Ｓ１０（図１）が入力された時に実行される同期割込処理部２４（図１）と、最初の同期割込処理後に実行される制御割込処理において制御周期信号Ｓ２２の生成周期を調整することにより、上位装置１の同期信号Ｓ１０を生成しているクロックと制御装置２（図１）の制御周期信号Ｓ２２を生成しているクロックとの差を意識せずに上位装置１からの同期信号Ｓ１０に同期して制御処理を実行することができる。
【００１５】
図５は、上位装置１（図１）など外部で同期信号Ｓ１０（図１）を生成するのに使用している水晶発振子１０（図１）と制御周期信号Ｓ２２（図１）を生成するのに使用している水晶発振子２２（図１）とに誤差がある場合の、制御周期信号Ｓ２２の生成周期変化を前述の実施例に基づいて記載したものである。
水晶発振子１０のクロックを計測して生成される同期信号Ｓ１０の生成周期を４００μｓ、水晶発振子２２のクロックを計測して生成される制御周期信号Ｓ２２の生成周期を１００μｓとする。同期信号Ｓ１０を生成する水晶発振子１０の方が制御周期信号Ｓ２２を生成する水晶発振子２２よりも１．６％速い場合、図５に示すように３回目の同期割込処理での制御周期信号Ｓ２２の周期と２回目の同期割込処理での制御周期信号Ｓ２２の周期との差は水晶発振子２２のクロックの計測で−２μｓであるが、５回目の同期割込処理での制御周期信号Ｓ２２の周期と４回目の同期割込処理での制御周期信号Ｓ２２の周期との差は水晶発振子２２のクロックの計測で−０．１２５μｓとなる。
このように同期割込処理での制御周期設定値２７（図１）の調整を繰り返すことにより、前回の制御信号発生周期との差が限りなくゼロに近付いて行く。つまり、処理周期が一定になってゆく。
また、同期信号Ｓ１０を生成する水晶発振子１０の方が制御周期信号Ｓ２２を生成する水晶発振子２２よりも１．６％遅い場合は、３回目の同期割込処理での制御周期信号Ｓ２２の周期と２回目の同期割込処理での制御周期信号Ｓ２２の周期との差は水晶発振子２２のクロックの計測で２μｓであるが、５回目の同期割込処理での制御周期信号Ｓ２２の周期と４回目の同期割込処理での制御周期信号Ｓ２２の周期との差は水晶発振子２２のクロックの計測で０．１２５μｓとなり、同様に同期割込処理での制御周期設定値２７の調整を繰り返すことにより、前回の制御信号発生周期との差が限りなくゼロに近付いて行く。
このように、同期信号Ｓ１０を生成する水晶発振子１０と制御周期信号Ｓ２２を生成する水晶発振子２２とに誤差がある場合でも制御処理の定周期性を保つことができる。
【００１６】
図６は同期割込処理の処理時間が異なる場合の動作を説明するタイムチャートである。図６において、上位装置１（図１）からの同期信号Ｓ１０（図１）が入力されると、割込回路２１（図１）で同期割込信号Ｓ２０（図１）が生成され、ＣＰＵ２０（図１）によって同期割込処理部２４（図１）が起動され、同期割込処理が実行される。一般に、同期割込処理は条件判断がない場合は、同期割込処理に要する処理時間は一定であるが、条件判断があるとその条件の成立如何によって同期割込処理に要する処理時間は変わってくる。この例では、上位装置１からの同期信号Ｓ１０および同期割込信号Ｓ２０は４００μｓごとに生成され、制御割込信号Ｓ２１は１００μｓごとに生成されるものとする。
また、同期割込処理部２４で実行される同期割込処理は一定ではなく、条件成立時は２０μｓ、不成立時は１０μｓとする。このとき、同期割込処理で費やされる処理時間の見積もりαを条件成立時の２０μｓとする。
また、一般にクロックに使用する水晶発振子の精度は１００ｐｐｍ程度であるため、本実施例では説明を簡単にするために同期信号Ｓ１０を生成する水晶発振子１０（図１）と制御周期信号Ｓ２２（図１）を生成する水晶発振子２２（図１）とのクロック誤差はないものとする。
図４のステップ２２で制御周期設定値２７（図１）を制御周期デフォルト値１００μｓに設定した後、クロック誤差がない場合、クロックずれ時間βは０となり制御周期信号Ｓ２２の生成周期は変化せずに制御処理が実行される。その際、図６における時刻Ａのように、上位装置１からの同期信号Ｓ１０により起動される同期割込処理が条件成立の場合を実行すると、同期割込処理が開始されてから制御割込処理が開始されるまでの時間は２０μｓである。
また、図６における時刻Ｂのように、次の同期割込処理が条件不成立の場合を実行しても、制御周期信号Ｓ２２の生成周期は変化しないため、同期割込処理が開始されてから制御割込処理が開始されるまでの時間は２０μｓで一定である。
【００１７】
このように、同期割込処理において、条件判断がある場合も、同期割込処理が開始されてから制御割込処理が開始されるまでの時間が一定となるように制御周期設定値２７を設定しておくことにより、同期割込処理の条件判断の成立如何にかかわらず、制御処理の定周期性を保つことができる。
また、同期信号Ｓ１０を生成する水晶発振子１０と制御周期信号Ｓ２２を生成する水晶発振子２２とにクロック誤差がある場合でも、実施例の図５で示したように制御処理の定周期性を保つように制御周期信号Ｓ２２の生成周期を調整するし、その処理は同期割込処理の条件判断の成立如何にかかわらないので、クロック誤差がない場合と同様に制御処理の定周期性を保つことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施例１に係る外部同期可能な制御装置の構成を説明するブロック図である。
【図２】図１に示す外部同期可能な制御装置のソフトウェア動作を説明する図である。
【図３】図１に示す外部同期可能な制御装置の同期割込処理の動作手順を説明するフローチャートである。
【図４】図１に示す外部同期可能な制御装置の制御割込処理の動作手順を説明するフローチャートである。
【図５】図１に示す外部同期可能な制御装置の制御信号生成周期の変化を説明する図である。
【図６】図１に示す外部同期可能な制御装置の動作を説明するタイムチャートである。
【図７】従来の制御装置の構成を説明するブロック図である。
【図８】図７に示す制御装置の動作を説明するタイムチャートである。
【符号の説明】
【００１９】
１  上位装置
２  制御装置
１０  水晶発振子
１１  同期信号発生回路
１２  入出力回路
２０  ＣＰＵ
２１  割込回路
２２  水晶発振子
２３  入出力回路
２４  同期割込処理部
２５  制御割込処理部
２６  制御周期発生回路
２７  制御周期設定値
２８  （同期調整付）制御周期発生回路
Ｓ１０  同期信号
Ｓ１１  入出力データ
Ｓ２０  同期割込信号
Ｓ２１  制御割込信号
Ｓ２２  制御周期信号
【図１】
2007226423.tif 000003
【図２】
2007226423.tif 000004
【図３】
2007226423.tif 000005
【図４】
2007226423.tif 000006
【図５】
2007226423.tif 000007
【図６】
2007226423.tif 000008
【図７】
2007226423.tif 000009
【図８】
2007226423.tif 000010