(57)【要約】【課題】ソフトウェアやハードウェアを複雑化することなく、プロセッサの処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分する。【解決手段】サーボ３，４及び周辺機器に係わる複数の動作を制御する数値制御装置であって、プロセッサ１３と、システム制御周期タイマ１１１と、システム制御周期で、プロセッサ１３に対し、第１割り込み要求を発生させるシステム制御周期割り込み発生器１１２と、システム制御周期タイマ１１１とは異なるサーボ同期周期タイマ１２２と、サーボ同期周期で、プロセッサ１３に対し、第２割り込み要求を発生させるサーボ同期周期割り込み発生器１２３と、第２割り込み要求の周期を所定の複数の区間に分割するタイマ周期分割器１２３ａと、所定の区間の開始時に、プロセッサ１３に対し、周辺機器制御のための第３割り込み要求を発生させるサーボ同期周期割り込み発生器１２３と、を有する。【選択図】図１
2011096114.tif 000002
【特許請求の範囲】
【請求項１】
工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する数値制御装置であって、
演算手段と、
第１タイマと、
前記第１タイマの計時における所定の周期で、前記演算手段に対し、当該演算手段の動作クロックの周期に応じた第１割り込みを発生させる第１割り込み発生手段と、
第１タイマとは異なる第２タイマと、
前記第２タイマの計時における所定の周期で、前記演算手段に対し、前記サーボモータとのサーボデータ送受信用の第２割り込みを発生させる第２割り込み発生手段と、
前記第２割り込み発生手段による前記第２割り込みの周期を所定の複数の区間に分割する分割手段と、
前記分割手段により分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第３割り込みを発生させる第３割り込み発生手段と
を有することを特徴とする数値制御装置。
【請求項２】
請求項１記載の数値制御装置において、
前記第２割り込み発生手段は、
前記第１割り込み発生手段が発生させる前記第１割り込みの周期よりも短い周期で、前記第２割り込みを発生させる
ことを特徴とする数値制御装置。
【請求項３】
請求項１又は請求項２記載の数値制御装置において、
前記サーボモータと前記演算手段との間で定期的に同期通信を行うために、当該サーボモータへ接続されたサーボ通信バスと前記演算手段との入出力制御を行うための第１通信インターフェース手段と、
前記第２タイマの周期やタイミングを変更可能できる第２タイマ設定手段と、
前記サーボ通信バスと前記第２タイマ設定手段との入出力制御を行うための、第２通信インターフェース手段と、
前記サーボモータの動作タイミングを発生させるサーボタイマの周期やタイミングを変更できるサーボタイマ設定手段に対し、前記演算手段と前記サーボモータとを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定すると共に、前記第２タイマ設定手段に対し、前記演算手段と前記第２割り込み発生手段及び前記第３割り込み発生手段とを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定するタイマ設定手段と
をさらに備えることを特徴とする数値制御装置。
【請求項４】
請求項１乃至請求項３のいずれか１項記載の数値制御装置において、
前記第３割り込み発生手段は、
前記複数の区間のうち前記サーボ通信バスの混雑区間を避けて、前記演算手段に対し前記第３割り込みを発生させる
ことを特徴とする数値制御装置。
【請求項５】
工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する工作機械の制御方法であって、
所定の第１周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第１割り込みを発生させる手順と、
第１周期とは異なる所定の第２周期で、前記サーボモータとのサーボデータ送受信用の第２割り込みを発生させる手順と、
前記第２割り込みの周期を所定の複数の区間に分割する手順と、
前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第３割り込みを発生させる手順と
を備えることを特徴とする工作機械の制御方法。
【請求項６】
工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御するための工作機械の制御プログラムであって、
コンピュータに、
所定の第１周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第１割り込みを発生させる手順と、
第１周期とは異なる所定の第２周期で、前記サーボモータとのサーボデータ送受信用の第２割り込みを発生させる手順と、
前記第２割り込みの周期を所定の複数の区間に分割する手順と、
前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第３割り込みを発生させる手順と
を実行させることを特徴とする工作機械の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーボ駆動機構や周辺機器を備えた工作機械の動作を数値制御する数値制御装置、工作機械の制御方法、及び工作機械の制御プログラムに関する。
【背景技術】
【０００２】
一般的な工作機械は、複数のサーボ駆動機構を制御することにより被加工物や工具を動作する。工作機械によっては、当該工作機械を覆うスプラッシュカバーの扉の開閉装置、洗浄液や冷却液を噴出・循環させるクーラント装置、切り粉を排出するチップコンベア装置、被加工物の搬入・搬出を行うローダロボットなどの各種周辺機器の動作制御を行う必要がある。近年利用されているコンピュータで構成された数値制御装置（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）により制御されるＮＣ工作機械は、ＮＣプログラムに従ってサーボ駆動機構及び周辺機器の自動制御を行う。
【０００３】
従来、上記複数のサーボ駆動機構や周辺機器をそれぞれ並行して制御するために、上記数値制御装置以外にも各周辺機器に対応してプログラマブルコントローラを設けていた。プログラマブルコントローラが、主に複数のサーボ駆動機構を動作制御する数値制御装置と連携しつつ、それぞれのシーケンシャルプログラムに従って各周辺機器の動作制御を行うことで、ＮＣ工作機械全体で調和の取れた動作を可能としていた。
【０００４】
近年では、プロセッサの高機能化に伴い、上記数値制御装置と複数のプログラマブルコントローラが個別に行っていた動作制御の全てを、数値制御装置の一つのプロセッサで処理することが可能となった。このように、従来、複数のプロセッサで実行していた制御処理を単一のプロセッサ上に統合する場合、従来性能を維持するには、元々別のプロセッサで行なっていた個々の制御処理に対して、新たなプロセッサの占有率（処理できる時間の配分）を、個々の制御処理の長さに影響を受けないように、配分することが求められる。
【０００５】
そのための具体的な制御手法として、数値制御装置の一つのプロセッサが、リアルタイムＯＳ上で多数の制御処理をそれぞれ所定時間ごとに切り替えて時分割的に並行処理する手法がある。その上で、各時分割処理の開始を要求する割り込みが発生した後、リアルタイムＯＳの内部に設けた経過時間判定処理が内部的に経過時間をカウントし、所定の経過時間が経過した際に制御処理の実行を開始するよう時間管理する方法がある（例えば、特許文献１参照）。
【０００６】
各時分割処理の開始を要求する割り込みが発生した後、優先度の高い制御処理が終了すると、命令数で管理された機能が外部から指示された分だけ制御処理を行う方法もある（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−１３２３０６号公報
【特許文献２】特開平８−３２０７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したような経過時間判定処理が制御処理の実行開始の時間管理を行う上記特許文献１記載の従来技術では、経過時間判定処理自体がリアルタイムＯＳのタイマ割り込みに依存している。この場合、数値制御装置にとって主たる制御処理であるサーボ制御の処理を行う周期であるサーボ同期周期よりも短く均一な周期で割り込みを設定する必要があり、不要な割り込み処理が発生し、処理時間の無駄になる。つまり、従来、プログラマブルコントローラで行っていた周辺機器の制御処理が、サーボ制御の処理の長さやサーボ同期周期の長さに影響を受けないようにするためには、サーボ同期周期よりも短く、周辺機器の制御処理に割り当てたいプロセッサの占有率を確保できる周期でタイマ割り込みを設定する必要があり、経過時間をカウントアップするだけの割り込みが過大となるという問題がある。
【０００９】
制御処理を行う機能を命令数で管理する上記特許文献２記載の従来技術では、処理を命令数Ｎで管理する必要があり、命令数Ｎを管理する機能にプロセッサの能力を費やされる点で変わりはない。
【００１０】
数値制御装置においては、別途、外部の割り込み機構を有し、任意のタイミングで割り込みを得て制御処理することが、プロセッサの能力を最大限利用する為には、相応しい構成であると考えられるが、同一の数値制御装置、同一のハードウェアで構成の異なる複数の工作機械を動作させたい為、構成の違い（サーボの数やサーボとの通信距離）によってサーボ同期周期が異なる場合、数値制御装置から外部の割り込み機構に対し割り込みタイミングを設定する機能を備える必要がある。この場合、数値制御装置から外部の割り込み機構に対し割り込みタイミングを設定するための専用通信線や、数値制御装置と外部の割り込み機構間で割り込みタイミングを設定するための専用プロトコルを生成する処理機構を設ける必要があり、数値制御装置のハードウェア規模ないし、ソフトウェアの開発コストが大きくなり、コストが増大してしまう。
【００１１】
以上に挙げた従来技術は、いずれも数値制御装置の一つのプロセッサだけでサーボ制御処理に加え周辺機器の制御処理も併せて実行するために、リアルタイムＯＳや制御処理機構であるソフトウェア、及びハードウェアを大幅に複雑化させる原因となる。
【００１２】
本発明の目的は、ソフトウェアやハードウェアを複雑化することなく、動作制御の演算手段であるプロセッサの処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる数値制御装置、工作機械の制御方法、及び工作機械の制御プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、第１発明の数値制御装置は、工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する数値制御装置であって、演算手段と、第１タイマと、前記第１タイマの計時における所定の周期で、前記演算手段に対し、当該演算手段の動作クロックの周期に応じた第１割り込みを発生させる第１割り込み発生手段と、第１タイマとは異なる第２タイマと、前記第２タイマの計時における所定の周期で、前記演算手段に対し、前記サーボモータとのサーボデータ送受信用の第２割り込みを発生させる第２割り込み発生手段と、前記第２割り込み発生手段による前記第２割り込みの周期を所定の複数の区間に分割する分割手段と、前記分割手段により分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第３割り込みを発生させる第３割り込み発生手段とを有することを特徴とする。
【００１４】
本願第１発明の数値制御装置は、第１タイマ及び第１割り込み発生手段を有する。第１割り込み発生手段は、第１タイマの計時による所定の周期で、演算手段の動作クロックの周期に応じて第１割り込みを発生させる。これにより、リアルタイムＯＳ上の複数のプログラム機能のスケジュール管理を行う。
【００１５】
本願第１発明の数値制御装置は、第２タイマ、第２割り込み発生手段、分割手段、及び第３割り込み発生手段を有する。第２割り込み発生手段は、第１タイマとは異なる第２タイマの計時による所定の周期で、サーボモータとのサーボデータ送受信用の第２割り込みを発生させる。分割手段は、第２割り込みの周期を所定の複数の区間に分割する。第３割り込み発生手段は、それら分割された複数の区間のうち所定の区間の開始時に、工作機械の周辺機器を制御するための第３割り込みを発生させる。
【００１６】
これにより、第２割り込みにおいてサーボモータとの間で予め決めた一定のタイミングでサーボモータに指令データを送信し、それに対する返信データを受信してサーボモータの現在位置等を取り込むことができる。また、サーボモータからの返信データの受信処理が確実に終了するようなタイミングに第３割り込みを設定することで、第３割り込みのタイミングにおいて性質の異なる周辺機器の制御処理を行い、次の第２割り込みのときに送信する指令データを、その周辺機器の制御処理を終了した後に作成することができる。
【００１７】
以上の結果、通常のリアルタイムＯＳへの時間を知らせる第１タイマによる第１割り込みは、第２タイマによるサーボ同期周期に対して十分大きく設定することができる。つまり、リアルタイムＯＳ上のシステムクロックによる第１割り込みを細かくすることなく、サーボモータへの指令データをサーボモータと同期したタイミングで送信することができる。そして、サーボモータとの間の指令データや返信データの送受信処理が発生しない制御区間を、第３割り込みという形で確実に得ることができる。
【００１８】
したがって、本願第１発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
【００１９】
第２発明の数値制御装置は、上記第１発明において、前記第２割り込み発生手段は、前記第１割り込み発生手段が発生させる前記第１割り込みの周期よりも短い周期で、前記第２割り込みを発生させることを特徴とする。
【００２０】
これにより、リアルタイムＯＳ上のシステムクロックに応じた第１割り込み発生手段による第１割り込みを細かくしなくても、第２割り込み発生手段による第２割り込みにおいてサーボモータへの指令データを確実にサーボモータと同期したタイミングで送信することができる。
【００２１】
第３発明の数値制御装置は、上記第１又は第２発明において、前記サーボモータと前記演算手段との間で定期的に同期通信を行うために、当該サーボモータへ接続されたサーボ通信バスと前記演算手段との入出力制御を行うための第１通信インターフェース手段と、前記第２タイマの周期やタイミングを変更可能できる第２タイマ設定手段と、前記サーボ通信バスと前記第２タイマ設定手段との入出力制御を行うための、第２通信インターフェース手段と、前記サーボモータの動作タイミングを発生させるサーボタイマの周期やタイミングを変更できるサーボタイマ設定手段に対し、前記演算手段と前記サーボモータとを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定すると共に、前記第２タイマ設定手段に対し、前記演算手段と前記第２割り込み発生手段及び前記第３割り込み発生手段とを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定するタイマ設定手段とをさらに備えることを特徴とする。
【００２２】
これにより、第２割り込み発生手段による第２割り込みと第３割り込み発生手段による第３割り込みとの同期を、サーボ通信バスを通じて確実に設定することができる。
【００２３】
第４発明の数値制御装置は、上記第１乃至第３発明のいずれかにおいて、前記第３割り込み発生手段は、前記複数の区間のうち前記サーボ通信バスの混雑区間を避けて、前記演算手段に対し前記第３割り込みを発生させることを特徴とする。
【００２４】
これにより、演算手段の負担を増大させることなく、演算手段の処理のうちの一定割合を周辺機器の制御処理に対し安定的に配分することができる。
【００２５】
上記目的を達成するために、第５発明の工作機械の制御方法は、工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する工作機械の制御方法であって、所定の第１周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第１割り込みを発生させる手順と、第１周期とは異なる所定の第２周期で、前記サーボモータとのサーボデータ送受信用の第２割り込みを発生させる手順と、前記第２割り込みの周期を所定の複数の区間に分割する手順と、前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第３割り込みを発生させる手順とを備えることを特徴とする。
【００２６】
本願第５発明の工作機械の制御方法では、第１周期で、演算手段の動作クロックの周期に応じて第１割り込みを発生させる。これにより、リアルタイムＯＳ上の複数のプログラム機能のスケジュール管理を行う。また、第１周期とは異なる第２周期で、サーボモータとのサーボデータ送受信用の第２割り込みを発生させる。また、第２割り込みの周期を所定の複数の区間に分割し、それら分割された複数の区間のうち所定の区間の開始時に、工作機械の周辺機器を制御するための第３割り込みを発生させる。
【００２７】
これにより、第２割り込みにおいてサーボモータとの間で予め決めた一定のタイミングでサーボモータに指令データを送信し、それに対する返信データを受信してサーボモータの現在位置等を取り込むことができる。また、サーボモータからの返信データの受信処理が確実に終了するようなタイミングに第３割り込みを設定することで、第３割り込みのタイミングにおいて性質の異なる周辺機器の制御処理を行い、その周辺機器の制御処理を終了した後に、次の第２割り込みのときに送信する指令データを作成することができる。
【００２８】
以上の結果、通常のリアルタイムＯＳへの時間を知らせる第１割り込みの第１周期を、サーボモータの同期のための第２周期に対して十分大きく設定することができる。つまり、リアルタイムＯＳ上のシステムクロックによる第１周期を細かくすることなく、サーボモータへの指令データをサーボモータと同期したタイミングで送信することができる。そして、サーボモータとの間の指令データや返信データの送受信処理が発生しない制御区間を、第３割り込みという形で確実に得ることができる。
【００２９】
したがって、本願第５発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
【００３０】
上記目的を達成するために、第６発明の工作機械の制御プログラムは、工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御するための工作機械の制御プログラムであって、コンピュータに、所定の第１周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第１割り込みを発生させる手順と、第１周期とは異なる所定の第２周期で、前記サーボモータとのサーボデータ送受信用の第２割り込みを発生させる手順と、前記第２割り込みの周期を所定の複数の区間に分割する手順と、前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第３割り込みを発生させる手順とを実行させることを特徴とする。
【００３１】
本願第６発明の工作機械の制御プログラムを実行するコンピュータは、第１周期で、演算手段の動作クロックの周期に応じて第１割り込みを発生させる。これにより、リアルタイムＯＳ上の複数のプログラム機能のスケジュール管理を行う。また、第１周期とは異なる第２周期で、サーボモータとのサーボデータ送受信用の第２割り込みを発生させる。また、第２割り込みの周期を所定の複数の区間に分割し、それら分割された複数の区間のうち所定の区間の開始時に、工作機械の周辺機器を制御するための第３割り込みを発生させる。
【００３２】
これにより、第２割り込みにおいてサーボモータとの間で予め決めた一定のタイミングでサーボモータに指令データを送信し、それに対する返信データを受信してサーボモータの現在位置等を取り込むことができる。また、サーボモータからの返信データの受信処理が確実に終了するようなタイミングに第３割り込みを設定することで、第３割り込みのタイミングにおいて性質の異なる周辺機器の制御処理を行い、その周辺機器の制御処理を終了した後に、次の第２割り込みにおいてサーボモータに対して送る指令データを作成することができる。
【００３３】
以上の結果、通常のリアルタイムＯＳへの時間を知らせる第１割り込みの第１周期を、サーボモータの同期のための第２周期に対して十分大きく設定することができる。つまり、リアルタイムＯＳ上のシステムクロックによる第１周期を細かくすることなく、サーボモータへの指令データをサーボモータと同期したタイミングで送信することができる。そして、サーボモータとの間の指令データや返信データの送受信処理が発生しない制御区間を、第３割り込みという形で確実に得ることができる。
したがって、本願第６発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
【発明の効果】
【００３４】
本発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態に係る数値制御装置及びサーボのシステム構成を模式的に表す機能ブロック図である。
【図２】各割り込み要求のタイミングと各処理の実行との関係を示すタイムチャートの一例である。
【図３】サーボ同期周期とシステム制御周期との関係を示すタイムチャートの一例である。
【図４】数値制御装置のプロセッサが実行する制御手順を表すフローチャートである。
【図５】プロセッサと各機器との間のネットワーク形態を表す図である。
【図６】通信インターフェース間の伝搬遅延時間、及び各周期間のオフセット時間の関係を表す図である。
【図７】図４中のステップＳ１００の同期処理の詳細手順を表すフローチャートである。
【図８】プロセッサと各機器との間のネットワーク形態の変形例を表す図である。
【発明を実施するための形態】
【００３６】
以下、本発明の一実施の形態を図面を参照しつつ説明する。
【００３７】
図１は、数値制御装置及びサーボのシステム構成を模式的に表す機能ブロック図である。数値制御装置１は、工作機械本体（特に図示せず）の全体における複数の動作をマルチタスクで制御する（以下適宜、時分割的に制御するという）ものである。
【００３８】
図１に示すように、数値制御装置１は、サーボ通信バス２を介して複数のサーボ３，４と情報を送受信可能に接続している。図中では、図示の便宜上、２つのサーボ３，４だけがサーボ通信バス２に接続し、以下の説明においてもサーボを２つだけ接続する例で説明するが、実際にはより多くのサーボを接続する構成としてもよい。数値制御装置１はサーボ３，４以外の他の複数の周辺機器に対しても動作制御を行うものとしているが、それら周辺機器の図示は省略している。
【００３９】
数値制御装置１は、システム制御用割り込み回路１１と、サーボ同期用割り込み回路１２と、プロセッサ１３とを有している。数値制御装置１は、上記プロセッサ１３がサーボ通信バス２と通信可能に接続するための第１通信インターフェース手段としての第１通信インターフェース１４と、上記サーボ同期用割り込み回路１２が同じサーボ通信バス２に通信可能に接続するための第２通信インターフェース手段としての第２通信インターフェース１５とを有している。図中においてこれら回路１１，１２とプロセッサ１３はハードウェア的に区別して示しているが、それぞれが備える機能ブロックは内部の処理機能で区別して示している。特にプロセッサ１３の内部の機能ブロックは、いずれもソフトウェア的な処理で区別したソフトウェアブロックで示している。
【００４０】
システム制御用割り込み回路１１は、プロセッサ１３がリアルタイムＯＳ上で実行する複数の処理を時分割的に切り替える契機となる第１割り込み要求（後述の図２、図３参照）を出力する。システム制御用割り込み回路１１は、システム制御周期タイマ１１１と、システム制御周期割り込み発生器１１２とを有している。各請求項記載の第１タイマとしてのシステム制御周期タイマ１１１は、プロセッサ１３の基準クロックをカウントし、所定の時間長に設定したシステム制御周期（後述の図３参照）が経過するたびに報知する。各請求項記載の第１割り込み発生手段としてのシステム制御周期割り込み発生器１１２は、システム制御周期タイマ１１１が時間経過を報知した際、各請求項記載の第１割り込みである上記第１割り込み要求の信号を発生してプロセッサ１３に出力する。
【００４１】
サーボ同期用割り込み回路１２は、プロセッサ１３が各サーボ３，４と同期制御する基準となる所定の時間長のサーボ同期周期ごとに、各サーボ３，４の制御処理を開始する契機となる第２割り込み要求（後述の図２参照）を出力する。サーボ同期用割り込み回路１２は、各サーボ同期周期中における同じ適宜のタイミングで、周辺機器の制御処理の開始と終了のそれぞれの契機となる２つの第３割り込み要求（後述の図２参照）を出力する。
【００４２】
サーボ同期用割り込み回路１２は、サーボ同期周期設定器１２１と、サーボ同期周期タイマ１２２と、サーボ同期周期割り込み発生器１２３とを有している。第２タイマ設定手段としてのサーボ同期周期設定器１２１は、プロセッサ１３から２つの通信インターフェース１４，１５とサーボ通信バス２とを介して受信する設定指令に従って、サーボ同期周期タイマ１２２に対しサーボ同期周期と位相すなわち、サーボ同期周期の開始タイミングを設定する。各請求項記載の第２タイマとしてのサーボ同期周期タイマ１２２は、サーボ同期用割り込み回路１２の基準クロックをカウントし、設定したサーボ同期周期（後述の図２、図３参照）の始期が経過するたびに時間経過信号を出力する。なお、サーボ同期用割り込み回路１２の基準クロックは、プロセッサ１３の基準クロックと同一な基準クロックを使用する構成でも良い。
【００４３】
各請求項記載の第２割り込み発生手段及び第３割り込み発生手段としてのサーボ同期周期割り込み発生器１２３は、サーボ同期周期タイマ１２２から時間経過信号を入力した際に、各請求項記載の第２割り込みとしての上記第２割り込み要求の信号を発生してプロセッサ１３に出力する。サーボ同期周期割り込み発生器１２３はその内部に、各請求項記載の分割手段としてのタイマ周期分割器１２３ａを備えている。タイマ周期分割器１２３ａが上記サーボ同期周期を分周して複数の区間に等分割する。サーボ同期周期割り込み発生器１２３は、そのうちの所定のタイミングにある２つの等分割区間のそれぞれの始期で各請求項記載の第３割り込みとしての上記２つの第３割り込み要求の信号を発生し、プロセッサ１３に出力する（後述の図２参照）。
【００４４】
プロセッサ１３は、制御プログラム等を実行することで、ＮＣプログラムの解析や、上記サーボ３，４及び周辺機器を含めた工作機械の全体（特に図示せず）の動作を制御する各請求項記載の演算手段である。プロセッサ１３は、上述したソフトウェアブロックとして、リアルタイムＯＳスケジューラ１３１、通常処置部１３２、割り込みスケジューラ１３３、周辺機器処理部１３４、サーボ指令生成部１３５、サーボ送受信処理部１３６、及び同期周期設定指令部１３７を有している。
【００４５】
リアルタイムＯＳスケジューラ１３１は、上記システム制御用割り込み回路１１のシステム制御周期割り込み発生器１１２から上記第１割り込み要求の信号を入力するたびに、その時点でプロセッサ１３がリアルタイムＯＳ上で並行処理すべき複数の処理のうちそれ以降に実行すべきものを選択指定して、個々の処理を起動及び中断させる。通常処理部１３２は、リアルタイムＯＳスケジューラ１３１が選択指定した処理が、リアルタイムＯＳスケジューラ１３１が起動し中断されるまでの区間、通常処理（後述の図２参照）として実行する。
【００４６】
割り込みスケジューラ１３３は、上記サーボ同期用割り込み回路１２のサーボ同期周期割り込み発生器１２３から上記第２割り込み要求または第３割り込み要求の信号を入力するたびに、通常処理よりも、リアルタイムＯＳ上で処理優先度が高く設定されている、後述するサーボ送受信処理、周辺機器処理、及びサーボ指令生成処理のいずれか一つを適宜の順序で選択指定して、個々の処理を起動及び中断させる。
【００４７】
周辺機器処理部１３４は、上記割り込みスケジューラ１３３が周辺機器処理を起動してから中断させるまでの間だけ、当該周辺機器処理を時分割的に実行する。サーボ指令生成部１３５は、上記割り込みスケジューラ１３３がサーボ指令生成処理を選択指定し起動したタイミングで、当該サーボ指令生成処理の実行を開始する。サーボ送受信処理部１３６は、上記割り込みスケジューラ１３３がサーボ送受信処理を選択指定し起動したタイミングで、サーボ送受信処理のうち、指令データを送信するサーボ指令送信処理の実行を開始する。このとき、サーボ送受信処理１３６は、第１サーボ３、第２サーボ４のサーボ制御機３４に対して指令データを各通信インターフェース１４、３１とサーボ通信バス２とを介して送信する。そして、第１サーボ３、第２サーボ４は、指令データを受信した直後、返信データを各通信インターフェース１４，３１とサーボ通信バス２とを介して、サーボ送受信処理１３６に対して送信する。サーボ送受信処理部１３６は、その返信データを受信したタイミングで、サーボ送受信処理のうち、返信データを受信するサーボ応答受信処理を実行する。なお、後に詳述するが、サーボ送受信処理部１３６による指令データの送信処理と返信データの受信処理は、全てのサーボに対して、全ての指令データが送信及び返信データが受信できるまで、何度も分割・混合して実行する。
【００４８】
タイマ設定手段としての同期周期設定指令部１３７は、各通信インターフェース１４，１５，３１とサーボ通信バス２とを介して、上記サーボ同期周期設定器１２１と、各サーボ３，４の後述するサーボ制御周期設定器３２に対し、所定の時間長に設定したサーボ同期周期と開始タイミング、及び同じ時間長のサーボ制御周期と開始タイミングを各タイマ１２２，３３に設定させるための設定指令を送信する。なお、サーボ同期周期設定器１２１と後述するサーボ制御周期設定器３２が、同じハードウェアで構成される機構ないし、同期周期設定指令部１３７から送信される設定指令を受信することができ、言い換えると受信側のタイマの周期と開始タイミングを変更するように指令された通信上の共通のプロトコルを判別可能で、自身のタイマの周期と開始タイミングを変更可能な類似の機構であることが、同期周期設定指令部１３７の処理の規模を小さくでき、非常に望ましい。
【００４９】
なお、上記構成の数値制御装置１が備える各回路１１，１２及びプロセッサ１３のうち、システム制御用割り込み回路１１とサーボ同期用割り込み回路１２については、それぞれ実行速度が速く専用のプログラムを必要としない比較的単純な構造のハードウェア回路で構成することができる。プロセッサ１３のみが、専用のプログラムに基づいて作動するプログラマブルコントローラとして機能する。
【００５０】
サーボ通信バス２は、この例ではＥｔｈｅｒｎｅｔ（登録商標）の規格に準じた構成となっている。サーボ通信バス２は他のシリアル通信を利用する構成としてもよい。
【００５１】
第１通信インターフェース１４は、プロセッサ１３に対し、パケット単位のデータを送受するタイミングで、後述するサーボ指令送信割り込み要求及びサーボ応答受信割り込み要求の信号を出力する割り込み回路として機能する。
【００５２】
各サーボ３，４は、特に図示しない工具やワークを移動させるための各請求項記載のサーボモータであり、サーボ通信インターフェース３１と、サーボ制御周期設定器３２と、サーボ制御周期タイマ３３と、サーボ制御器３４とを有している。サーボ３，４が備える機能ブロックは内部の処理機能で区別して示しており、第２サーボ４の内部の機能ブロックは省略している。
【００５３】
サーボタイマ設定手段としてのサーボ制御周期設定器３２は、プロセッサ１３から２つの通信インターフェース１４，３１とサーボ通信バス２とを介して受信する設定指令に従って、上記サーボ同期周期と同じ時間長のサーボ制御周期と、サーボ制御周期の位相つまり、サーボ制御周期の開始タイミングをサーボ制御周期タイマ３３に設定する。サーボタイマとしてのサーボ制御周期タイマ３３は、設定した開始タイミングでサーボ制御周期の計時動作を開始し、設定した時間長のサーボ制御周期の始期が経過するたびに時間経過信号を出力する。サーボ制御器３４は、プロセッサ１３から２つの通信インターフェース１４，３１とサーボ通信バス２とを介して受信した指令データの内容に基づくサーボ３，４の駆動制御を、サーボ制御周期タイマ３３から時間経過信号を入力した際に実行開始する。また、指令データを受信した際には、当該サーボ３，４の実際の位置や電流値を測定しサーボ制御応答としての返信データをプロセッサ１３へ返信する。上記サーボ制御指令の指令データ及びサーボ制御応答の返信データが、各請求項記載のサーボデータに相当する。
【００５４】
プロセッサ１３における各割り込み要求と各処理との関係を具体的に説明する。図２は、本実施形態における各割り込み要求のタイミングと各処理の実行との関係を示すタイムチャートの一例を表している。プロセッサ１３は、各割り込み要求の信号を、それぞれどの割り込み回路１１，１２からどの内容の割り込み要求であるか区別可能に入力する。
【００５５】
図２に示す例では、上記サーボ同期用割り込み回路１２のサーボ同期周期タイマ１２２が繰り返し出力する時間経過信号の時間間隔、つまりサーボ同期周期を２００μｓｅｃに設定している。サーボ同期周期割り込み発生器１２３のタイマ周期分割器１２３ａは、この例では上記サーボ同期周期を３回分周して８つの区間に等分割している。サーボ同期周期割り込み発生器１２３はそれら８つのうちの最初の等分割区間の始期、つまりサーボ同期周期全体の始期のタイミングで、第２割り込み要求を出力する。この例では、サーボ同期周期割り込み発生器１２３が、８つのうちの６番目と７番目の等分割区間のそれぞれの始期で第３割り込み要求を出力する。
【００５６】
プロセッサ１３は、基本的に通常処理を通常時に実行し、上記の各割り込み要求を入力した際には、割り込みスケジューラ１３３を最優先的に動作させ、割り込みスケジューラ１３３が上述したサーボ指令送信処理、サーボ応答受信処置、周辺機器処理、及びサーボ指令生成処理のいずれか一つを適宜の順序で選択指定して実行させる、いわゆるハードウェア割り込みを行う。
【００５７】
具体的には、プロセッサ１３は、サーボ同期周期全体の始期にサーボ同期周期割り込み発生器１２３から第２割り込み要求を入力した際に、サーボ指令送信処理の実行を開始する。サーボ指令送信処理は、工作機械が備える複数のサーボ３，４に対してそれぞれ対応する後述のサーボ制御指令を送信する処理である。プロセッサ１３は、上記サーボ制御指令の実行を終了したサーボ３，４からサーボ制御応答を受信した際に、サーボ応答受信処理を実行する。
【００５８】
上記サーボ指令送信処理は複数のサーボ３，４に対して順番にサーボ制御指令を送信する。各サーボ３，４のサーボ制御指令を受信してからサーボ制御応答を返信するまでの実行時間は、比較的短い。サーボ３，４の設置数が多い場合には、プロセッサ１３は、サーボ指令送信処理による全てのサーボ制御指令の送信を完全に終了する前に、最初のサーボ制御応答がプロセッサ１３に到着してサーボ応答受信処理を開始する場合が多い。
【００５９】
上述したようにこの例では、サーボ通信バス２がＥｔｈｅｒｎｅｔ（登録商標）に準じた構成となっているため、プロセッサ１３及びサーボ３，４は、上記サーボ制御指令とサーボ制御応答のデータを容量の小さいパケット単位に分割して送受信する。通信インターフェース１４，３１間でパケットを送受信している間に、プロセッサ１３は通常処理を時分割的に実行する。パケットの送受が完了した際に、第１通信インターフェース１４から特に図示しない割り込み要求を入力することによって、プロセッサ１３はサーボ指令送信処理またはサーボ応答受信処理のいずれかに復帰する。プロセッサ１３は、上記第２割り込み要求の一度の入力を契機として、通常処理とサーボ指令送信処理とサーボ応答受信処理とを繰り返し分割・混合して実行する。
【００６０】
プロセッサ１３は、サーボ応答受信処理が終了した後、６番目の等分割区間の始期でサーボ同期周期割り込み発生器１２３から１回目の第３割り込み要求を入力した際には、周辺機器処理に切り替えて実行を開始する。周辺機器処理は、工作機械が備える各種の周辺機器に対して動作制御を行う処理である。プロセッサ１３が、制御対象となる周辺機器処理を複数備えている場合には、ここに周辺機器のスケジューラを持ち、１番目の第３割り込みがくるたびに順番に処理を開始させるなどして実行するが、ここではその詳細を省略する。
【００６１】
プロセッサ１３は、７番目の等分割区間の始期で、サーボ同期周期割り込み発生器１２３から２回目の第３割り込み要求を入力した際には、それまで継続して実行していた周辺機器処理を中断し、サーボ指令生成処理に切り替えて実行を開始する。サーボ指令生成処理は、次のサーボ同期周期におけるサーボ指令送信処理で各サーボ３，４に送信するサーボ制御指令である指令データを生成する処理である。この例では、プロセッサ１３は、同じサーボ同期周期のサーボ応答受信処理で受信した各サーボ３，４のサーボ制御応答である返信データを参照し、次のサーボ同期周期における各サーボ３，４の動作目標値などの各サーボ制御指令である指令データを生成することにより、各サーボ３，４に対していわゆるセミ・クローズド・ループ制御を行う。プロセッサ１３は、各サーボ３，４に対応する全てのサーボ制御指令の生成が完了した際に、通常処理に切り替えて実行を再開する。
【００６２】
以上のようにして、プロセッサ１３の割り込みスケジューラ１３３は、各回のサーボ同期周期中でそれぞれ５つの処理を同じ適宜の順序で選択指定し、それぞれ対応する各処理部または生成部によって時分割的に実行させる。上記説明したサーボ同期周期とその区間分割数、及び各割り込み要求のタイミングなどの設定は一例であり、サーボ３，４の設置数や周辺機器の設置態様などといった工作機械の構成・作動環境に応じて各設定を適宜変更してもよい。
【００６３】
プロセッサ１３は、システム制御周期割り込み発生器１１２から第１割り込み要求を入力した際に、リアルタイムＯＳスケジューラ１３１がリアルタイムＯＳ上で次に実行すべき通常処理として選択指定した処理を、通常処理部１３２に実行させる。通常処理の具体的な処理内容としては、例えば特に図示しない操作画面の表示データの作成や、操作部での入力検出、消耗品の使用時間のカウントアップ、ＮＣプログラムの命令の読み取りや解析などがある。これら通常処理は、上記サーボ同期周期より比較的長い周期で切り替えて時分割的に実行しても十分な機能を得るものである。例えば図３に示すように、サーボ同期周期は上記の２００μｓｅｃ程度の短い周期に設定する必要があるのに対し、通常処理はおよそ数ｍｓｅｃのオーダーの比較的長いシステム制御周期に設定できる。上記図２のタイムチャートは、この図３中の範囲部分ＩＩを拡大して示している。
【００６４】
以上の行程に従うことにより、プロセッサ１３は、リアルタイムＯＳ上の複数の処理をシステム制御周期に適正に同期して実行できるとともに、複数のサーボ３，４及び周辺機器の制御処理をサーボ同期周期に適正に同期して実行することができる。プロセッサ１３自身は、時間長が大きく異なるシステム制御周期及びサーボ同期周期に対して、それぞれの周期の計時を行うことなく、外部のハードウェア回路から各種の割り込み要求を入力したタイミングでそれぞれに対応する各種の処理を時分割的に実行するだけでよい。プロセッサ１３自身は、複数の周期に基づく周期処理を複合的に行うために複雑な計時処理などを行う必要がなく、そのためリアルタイムＯＳ上のオーバーヘッド（無駄な処理時間）を格段に小さくすることができ、プロセッサ１３の処理パワーを大きく軽減できる。多数のサーボ３，４や周辺機器を備える工作機械全体の動作制御を行う上で、プログラマブルコントローラの単一化を機能的に実現できる。
【００６５】
次に、上記説明した本実施形態による同期制御を行うための同期周期設定指令部１３７の具体的な制御手順を、図４を参照して説明する。数値制御装置１は、電源投入の際、またはユーザが所定の操作を行った際にこのフローを開始する。
【００６６】
ステップＳ５において、数値制御装置１のプロセッサ１３は、サーボ通信バス２と各通信インターフェース１４，１５，３１を介したブロードキャスト通信などにより、当該サーボ通信バス２に接続しているサーボ３，４の数や、それらの種類、接続経路などを調べる。本実施形態の例では、プロセッサ１３は、上記図１に示したように、一つのサーボ同期用割り込み回路１２と、複数個のサーボ３，４を検出する。
【００６７】
ステップＳ１０へ移り、数値制御装置１のプロセッサ１３は、上記ステップＳ５で検出したサーボ３，４の種類や数に応じてサーボ同期周期を算出する。具体的には、まずプロセッサ１３が各サーボ３，４との同期通信で送受信するデータの総量に基づく送受信処理の必要時間と、各サーボ３，４へ送信するサーボ制御指令を全て生成するための必要時間とを算出する。本実施形態の例では、上記図２におけるサーボ指令送信処理とサーボ応答受信処理を通して実行するために必要な時間と、サーボ指令生成処理の実行に必要な時間を算出する。
【００６８】
数値制御装置１のプロセッサ１３は、これらの必要時間とともに、通常処理と周辺機器処理をそれぞれ十分に実行できる必要時間を考慮して、サーボ同期周期を算出する。また、各サーボ３，４がサーボ同期周期に応答できるかどうかの性能に応じてサーボ同期周期変更することもある。
【００６９】
本実施形態の数値制御装置１は、上記の算出・設定を行うことにより、多様な工作機械の仕様に対応できる汎用性を備える。数値制御装置１は、サーボ同期周期の設定を、工作機械の仕様に対応してあらかじめ固定的に設定・記憶していてもよい。その場合には、このステップＳ１０の手順を省略できる。
【００７０】
ステップＳ１５へ移り、数値制御装置１のプロセッサ１３は、サーボ同期用割り込み回路１２のサーボ同期周期設定器１２１に上記ステップＳ１０で算出したサーボ同期周期を設定するとともに、各サーボ３，４のサーボ制御周期設定器３２に上記ステップＳ１０で算出したサーボ同期周期をサーボ制御周期として設定する。具体的には、プロセッサ１３の同期周期設定指令部１３７が、ステップＳ１０で算出したサーボ同期周期を含む設定指令をサーボ同期周期設定器１２１に送信し、同じくステップＳ１０で算出したサーボ制御周期を含む設定指令を各サーボ制御周期設定器３２に送信する。各周期設定器がそれぞれ対応する各タイマ１２１，３２に対して計時周期を設定し、当該各タイマ１２１，３５の計時動作を開始させる。
【００７１】
ステップＳ２０へ移り、数値制御装置１のプロセッサ１３は、第１通信インターフェース１４と、サーボ同期用割り込み回路１２及び各サーボ３，４のそれぞれの通信インターフェース１５，３１との間でデータを送受する際の伝搬遅延時間を計測・算出する。
【００７２】
以下に、本実施形態の例において伝搬遅延時間を計測・算出する具体的な手法について詳しく説明する。図５に示すように、本実施形態の例において、プロセッサ１３は、サーボ同期用割り込み回路１２と２つのサーボ３，４に対してそれぞれ個別にデータを送受するネットワーク形態となっている。この場合に、データの送信と受信のそれぞれの伝搬遅延時間が同じであるとすると、ＩＥＥＥ１５８８準拠のＳｙｎｃ／Ｄｅｌａｙ  Ｒｅｑパケットを通信インターフェース１４，１５，３１どうしで互いに発信することにより、一方向つまり片道での伝搬遅延時間を計測・算出することができる。
【００７３】
図５に示すように、例えばプロセッサ１３側からＳｙｎｃパケットを送信した時刻をＴ０、サーボ同期用割り込み回路１２側でこのＳｙｎｃパケットを受信した時刻をＴ１とし、このＳｙｎｃパケットに対応して返信するＤｅｌａｙ  Ｒｅｑパケットをサーボ同期用割り込み回路１２側から送信した時刻をＴ１′、プロセッサ１３側でこのＤｅｌａｙ  Ｒｅｑパケットを受信した時刻をＴ０′とする。
【００７４】
サーボ同期用割り込み回路１２側で検出する時刻Ｔ１，Ｔ１′は、この例のサーボ同期周期である０〜２００μｓｅｃまでを繰り返し計時するサーボ同期周期タイマ１２２の計時時刻である。プロセッサ１３側で検出する時刻Ｔ０，Ｔ０′は、電源が投入されてからプロセッサ１３の基準クロックをカウントして生成されるシステムタイマを、サーボ同期周期の時間長の２００μｓｅｃで除算したときの余りの時間であり、時刻Ｔ０，Ｔ０′もまた、０〜２００μｓｅｃを繰り返す計時時刻である。
【００７５】
以上の場合に、各時刻Ｔ０，Ｔ０′，Ｔ１，Ｔ１′の関係は、図６（ａ）に示すようになる。システム制御周期タイマ１１１とサーボ同期周期タイマ１２２はそれぞれ無関係に計時を開始する場合、図中に示すようにそれぞれの計時時刻の０基点つまり、位相にズレが生じている。この例において、システム制御周期タイマ１１１の０基点を基準としたサーボ同期周期タイマ１２２の０基点のズレ、つまり２つタイマ間の位相のズレを第１オフセット時間Ｔｏ１とし、プロセッサ１３とサーボ同期用割り込み回路１２との間のデータの伝搬遅延時間を第１伝搬遅延時間Ｔｄ１とすると、図示する関係から以下の式が成立する。
【００７６】
Ｔｄ１＝（Ｔ１＋Ｔｏ１）−Ｔ０
Ｔｄ１＝Ｔ０′−（Ｔ１′＋Ｔｏ１）
第１伝搬遅延時間Ｔｄ１は、
Ｔｄ１＝（Ｔ１−Ｔ１′−Ｔ０＋Ｔ０′）／２
となる。
【００７７】
図示する関係から以下の式も成立する。
Ｔ０＋Ｔｄ１＝Ｔｏ１＋Ｔ１
第１オフセット時間Ｔｏ１は、
Ｔｏ１＝Ｔ０−Ｔ１＋Ｔｄ１
但し上記結果がＴｏ１＞２００ならば、Ｔｏ１は、Ｔｏ１−２００となり、また上記結果がＴｏ１＜０ならば、Ｔｏ１はＴｏ１＋２００となる。
【００７８】
なお、上記図１に示す数値制御装置１の構成において、システム制御周期タイマ１１１と、サーボ同期周期タイマ１２２の基準クロックを同一のハードウェアを使用する場合は、Ｔｏ１は０となることもありこの場合は、省略できる。
【００７９】
他の各サーボに対しても同様の手法により、データ送受の伝搬遅延時間とタイマ間の位相差を計測・算出することができ、それらの関係は図６（ｂ）に示すようになる。図６（ａ）と図６（ｂ）は、図中の右方向に向かう時間軸上で同期している。
【００８０】
図６（ｂ）において、第２オフセット時間Ｔｏ２は、システム制御周期タイマ１１１と第１サーボ３のサーボ制御周期タイマ３３との間の位相差を示し、第２伝搬遅延時間Ｔｄ２は、プロセッサ１３と第１サーボ３との間のデータ送受の伝搬遅延時間を示している。第３オフセット時間Ｔｏ３は、システム制御周期タイマ１１１と第２サーボ４のサーボ制御周期タイマ３３との間の位相差を示し、第３伝搬遅延時間Ｔｄ３は、プロセッサ１３と第２サーボ４との間のデータ送受の伝搬遅延時間を示している。
【００８１】
本実施形態では、各サーボ３，４の制御動作が同時に開始できるよう、各サーボ制御周期タイマ３３の位相差を適宜のタイミングで一致させる補正を行う。具体的には、まずサーボまでの伝搬遅延時間が最も長い、図示する例では第２伝搬遅延時間Ｔｄ２をもとに、新たな位相の０基点を決定する。図示するようにサーボ同期周期タイマ１２２の位相の０基点を基準として、そこから第２伝搬遅延時間Ｔｄ２と余裕時間Ｔｍを加算したサーボ同時基点ＴＳｓを、新たな位相の０基点とする。
【００８２】
余裕時間Ｔｍは、プロセッサ１３が全てのサーボ３，４にサーボ制御指令を送信するのに必要な時間、上記図２におけるサーボ指令送信処理を完全に終了させるのに必要な時間よりも十分に長い時間に設定する。プロセッサ１３がサーボ同期周期タイマ１２２の位相の０基点である時刻Ｔｓ１からサーボ指令送信処理を開始すると、サーボ同時基点ＴＳｓの時刻に到達するまでには全てのサーボ３，４がサーボ制御指令の受信を完了することができる。全てのサーボ３，４がサーボ同時基点ＴＳｓの時刻で一斉に直前に得たサーボ制御指令に対するサーボ制御動作を開始することができる。
【００８３】
第１サーボ３のサーボ制御周期タイマ３３の位相において初期の０基点を上記サーボ同時基点ＴＳｓへ移すために必要な位相補正値Ｒ２は、
Ｒ２＝Ｔｏ１＋Ｔｄ２＋Ｔｍ−Ｔｏ２
となる。
【００８４】
同様にして、第２サーボ４のサーボ制御周期タイマ３３の位相において初期の０基点を上記サーボ同時基点ＴＳｓへ移すために必要な位相補正値Ｒ３は、
Ｒ３＝Ｔｏ１＋Ｔｄ２＋Ｔｍ−Ｔｏ３
となる。
【００８５】
各通信インターフェース１４，１５，３１やサーボ通信バス２の仕様によっては、上記の各伝搬遅延時間が長くなりすぎてしまい、上記図２に示した周辺機器処理の割り込みスケジュールに影響を与える。図２において、サーボ指令送信処理開始からサーボ応答受信処理終了までの時間が、サーボ同期周期の５／８を超える場合は、前述に相当する。これらのような問題が生じる場合には、上記ステップＳ１０でサーボ同期周期の長さをさらに大きくするよう再設定すればよい。
【００８６】
図４に戻り、次のステップＳ２５で、数値制御装置１のプロセッサ１３は、以上のようにして決定した位相補正値をそれぞれ対応する各サーボのサーボ制御周期設定器３２に送信し、各サーボ制御周期の位相の０基点を同一のサーボ同時基点ＴＳｓに一致させる。
【００８７】
ステップＳ３０へ移り、数値制御装置１のプロセッサ１３は、サーボ通信バス２上に接続するサーボ同期用割り込み回路１２及び各サーボ３，４にそれぞれ通信確立を送信して同期制御を開始させる。サーボ同期用割り込み回路１２のサーボ同期周期割り込み発生器１２３は、サーボ同期周期タイマ１２２の計時がサーボ同期周期の０基点となった際に第２割り込み要求をプロセッサ１３に出力し、６番目及び７番目の等分割区間のそれぞれの始期で第３割り込み要求をプロセッサ１３に出力する（上記図２参照）。上記サーボ同期周期の位相の０基点から上記第２伝搬遅延時間Ｔｄ２と余裕時間Ｔｍを加算したサーボ同時基点ＴＳｓで、全てのサーボ制御器３４が一斉に直前に得たサーボ制御指令に対するサーボ制御動作を開始できる。
【００８８】
以上の手順により、サーボ通信バス２上の全ての機器に同期制御を行わせる設定準備が完了した後、数値制御装置１のプロセッサ１３は、サーボを制御し続けている間、次のステップＳ１００で同期処理を実行する。
【００８９】
上記図４中のステップＳ１００において実行する同期処理の詳細手順を、図７に示す。この同期処理は、図３に示すようにシステム制御周期に同期して通常処理を時分割的に実行するとともに、図２に示すようにサーボ同期周期に同期してサーボ指令送信処理、サーボ応答受信処理、周辺機器処理、及びサーボ指令生成処理の時分割的実行を並行して行う。図中において破線で示す手順経路は、各種の割り込み要求による制御手順の呼び出しに対応するものである。
【００９０】
この同期処理において、数値制御装置１のプロセッサ１３は、上述したように基本的にステップＳ１０５の通常処理を継続的に実行しており、上記システム制御用割り込み回路１１から第１割り込み要求を入力した際にはステップＳ１１０へ移る。プロセッサ１３は、上記サーボ同期用割り込み回路１２から第２割り込み要求または第３割り込み要求を入力した際にはステップＳ１２０へ移る。プロセッサ１３は、第１通信インターフェース１４から、後述するサーボ指令送信割り込み要求やサーボ応答受信割り込み要求を入力した際も、それぞれその時の状況に応じた制御手順へ移る。
【００９１】
第１割り込み要求の入力によりステップＳ１１０へ移った場合、数値制御装置１のプロセッサ１３は、リアルタイムＯＳスケジューラ１３１の選択指定に基づいて通常処理の処理内容を切り替える。
【００９２】
このとき、Ｓ１２０〜１８５の処理が実行中でない場合は、Ｓ１０５に戻ってＳ１１０で選択指定された通常処理に切り替える。Ｓ１２０〜１８５の処理が実行中の場合はＳ１２０〜１８５を継続し、Ｓ１２０〜１８５の処理が終了/中断した後、Ｓ１０５に戻ってＳ１１０で選択指定された通常処理に切り替える。
【００９３】
第２割り込み要求または第３割り込み要求の入力によりステップＳ１２０へ移った場合、数値制御装置１のプロセッサ１３は、入力した当該割り込み要求が第２割り込み要求であるか否かを判定する。入力した割り込み要求が第２割り込み要求である場合（ステップＳ１２０でＹｅｓ）、新たなサーボ同期周期が開始したものとみなして次のステップＳ１２５へ移る。
【００９４】
ステップＳ１２５では、数値制御装置１のプロセッサ１３は、同一のサーボ同期周期における第３割り込み要求の入力回数を計数するためのカウント変数Ｃの値を０にリセットする。
【００９５】
ステップＳ１３０へ移り、数値制御装置１のプロセッサ１３は、この時点でサーボ指令生成処理が完全に終了しているか否かを判定する。この時点でまだサーボ指令生成処理が完全に終了していない場合（ステップＳ１３０でＮｏ）、現行のサーボ同期周期での設定では良好な同期制御ができないものとみなし、ステップＳ１３５へ移る。ステップＳ１３５では、数値制御装置１のプロセッサ１３は、図示しない表示部にエラー表示を行なったり、上記ステップＳ１０でのサーボ同期周期の再設定を行うなどのエラー処理を行い、このフローを終了する。この時点でサーボ指令生成処理が完全に終了している場合（ステップＳ１３０でＹｅｓ）、次のステップＳ１４０へ移り、サーボ指令送信処理を開始する。
【００９６】
ステップＳ１４０では、数値制御装置１のプロセッサ１３は、第１通信インターフェース１４及びサーボ通信バス２を介して目的のサーボ３，４にサーボ制御指令を送信する。上述したように本実施形態の例では、サーボ通信バス２がＥｔｈｅｒｎｅｔ（登録商標）の規格に準じた構成となっているため、プロセッサ１３はサーボ制御指令のデータを容量の小さいパケットの単位に分割して送信する。このステップＳ１４０では、第１通信インターフェース１４が一つのパケットだけを送信開始して、次のステップＳ１４５へ移る。
【００９７】
ステップＳ１４５では、数値制御装置１のプロセッサ１３は、各サーボ３，４に対する全てのサーボ制御指令の全てのパケットを送信完了したか否かを判定する。送信すべきサーボ制御指令のパケットが残っている場合（ステップＳ１４５でＮｏ）、直前のステップＳ１４０でのパケット送信が終了するまでステップＳ１０５に戻り通常処理の実行を再開する。ステップＳ１４０でのパケット送信が終了した際には、第１通信インターフェース１４がプロセッサ１３に対して特に図示しないサーボ指令送信割り込み要求を出力し、これを検知したプロセッサ１３はステップＳ１４０に戻って残りのパケットを送信する。
【００９８】
各サーボ３，４に対する全てのサーボ制御指令の全てのパケットを送信完了した場合（ステップＳ１４５でＹｅｓ）、数値制御装置１のプロセッサ１３は、ステップＳ１０５に戻り通常処理の実行を再開する。第１通信インターフェース１４が各サーボからサーボ制御応答を受信した際には、プロセッサ１３に対して特に図示しないサーボ応答受信割り込み要求を出力し、これを検知したプロセッサ１３は次のステップＳ１５０へ移り、サーボ応答受信処理を開始する。
【００９９】
上記ステップＳ１４５の判定で送信すべきパケットが残っているために判定を満たさず、ステップＳ１０５の手順を実行している状態、つまりサーボ指令送信処理の途中の状態でも、第１通信インターフェース１４がサーボ制御応答を受信する場合がある。この場合でも第１通信インターフェース１４からサーボ応答受信割り込み要求を検知したプロセッサ１３はステップＳ１５０へ移り、サーボ応答受信処理を開始する。
【０１００】
ステップＳ１５０では、数値制御装置１のプロセッサ１３は、第１通信インターフェース１４を介してサーボ制御応答を受信する。プロセッサ１３は、このサーボ制御応答もパケット単位で受信する。
【０１０１】
ステップＳ１５５へ移り、数値制御装置１のプロセッサ１３は、各サーボ３，４から全てのサーボ制御応答の全てのパケットを受信完了したか否かを判定する。プロセッサ１３は、受信すべきサーボ制御応答のパケットが残っている場合（ステップＳ１５５でＮｏ）、直前のステップＳ１５０でのパケット受信が終了するまでステップＳ１０５に戻り通常処理の実行を再開する。ステップＳ１５０でのパケット受信が終了した際には、第１通信インターフェース１４がプロセッサ１３に対して特に図示しないサーボ応答受信割り込み要求を出力し、これを検知したプロセッサ１３はステップＳ１５０に戻って残りのパケットを受信する。
【０１０２】
数値制御装置１のプロセッサ１３は、各サーボ３，４から全てのサーボ制御応答の全てのパケットを受信完了した場合（ステップＳ１５５でＹｅｓ）、ステップＳ１０５に戻り通常処理の実行を再開する。この時点で、通常では、サーボ指令送信処理及びサーボ応答受信処理のいずれも送受信完了している状態であり、プロセッサ１３は次に第３割り込み要求を入力するまでステップＳ１０５の通常処理を継続実行する。
【０１０３】
上記ステップＳ１２０の判定において、直前に入力した割り込み要求が第３割り込み要求である場合（ステップＳ１２０でＮｏ）、次のステップＳ１６０へ移る。
【０１０４】
ステップＳ１６０では、数値制御装置１のプロセッサ１３は、カウンタ変数Ｃの値を１増加して次のステップＳ１６５へ移る。
【０１０５】
ステップＳ１６５では、数値制御装置１のプロセッサ１３は、この時点のカウンタ変数Ｃの値が１であるか２であるかを判定する。言い換えると、直前に入力した第３割り込み要求が現行のサーボ同期周期において最初に入力したものか２番目に入力したものかを判定する。この時点のカウンタ変数Ｃの値が１である場合、周辺機器処理の開始タイミングであるとみなし、ステップＳ１７０へ移る。
【０１０６】
ステップＳ１７０では、数値制御装置１のプロセッサ１３は、上記ステップＳ１５５と同様の判定、現行のサーボ同期周期におけるサーボ応答受信処理がすでに完了しているか否かを判定する。この時点でまだサーボ応答受信処理が完全に終了していない場合（ステップＳ１７０でＮｏ）、現行のサーボ同期周期での設定では良好な同期制御ができないものとみなし、ステップＳ１３５でのエラー処理を行った後、このフローを終了する。この時点でサーボ応答受信処理が完全に終了している場合（ステップＳ１７０でＹｅｓ）、次のステップＳ１７５へ移る。
【０１０７】
ステップＳ１７５では、数値制御装置１のプロセッサ１３は、周辺機器処理を開始する。ここで、周辺機器処理を複数備えている場合には、ここに周辺機器のスケジューラを持ち、１番目の第３割り込みがくるたびに順番に処理を開始させるなどして実行するが、ここではその詳細を省略する。そして２番目の第３割り込み要求を入力した際にステップＳ１２０へ戻る。
【０１０８】
上記ステップＳ１６５の判定において、プロセッサ１３は、この時点のカウンタ変数Ｃの値が２である場合、周辺機器処理の終了タイミングであるとみなし、ステップＳ１８０へ移る。
【０１０９】
ステップＳ１８０では、数値制御装置１のプロセッサ１３は、それまで継続していた周辺機器処理の実行を中断する、いわゆるサスペンド処理を行う。次のサーボ同期制御で周辺機器処理を開始する際には、この続きから再開する。
【０１１０】
ステップＳ１８５へ移り、数値制御装置１のプロセッサ１３は、サーボ指令生成処理を実行する。サーボ指令生成処理では、上記ステップＳ１５０で受信した各サーボ３，４のサーボ制御応答に基づいて、次回のサーボ同期周期で各サーボ３，４が制御すべき制御動作量を算出し、それぞれのサーボ制御指令を生成する。サーボ指令生成処理が終了した後に、ステップＳ１０５へ戻って通常処理を継続実行する。
【０１１１】
上記制御手順に従って同期処理を行うことにより、以下の利点が得られる。数値制御装置１と各サーボ間で行われる指令データや応答データの送受信を、本実施形態の例のようにＥｔｈｅｒｎｅｔ（登録商標）やシリアル通信で行うため、第１通信インターフェース１４からの割り込み要求に対してプロセッサ１３は高い優先度で対応する必要がある。プロセッサ１３とサーボ３，４との間でデータの送受信をパケット単位で多数回に分けて行うため、それだけ高い頻度で送受信の割り込み要求に対応する必要がある。これに対して上記同期処理では、サーボ指令送信処理とサーボ応答受信処理をサーボ同期周期の最初のいくつかの等分割区間内で集中的に対応し、その後の等分割区間で他の優先度の高い周辺機器処理に専念している。優先度の高い双方の処理の重複を回避して互いに影響を与えることなく実行することができ、プロセッサ１３のオーバーヘッド（無駄な処理時間）を低減できる。
【０１１２】
以上説明したように、本実施形態においては、通常のリアルタイムＯＳへの時間を知らせるシステム制御周期タイマ１１１による第１割り込み要求は、サーボ同期周期タイマ１２２によるサーボ３，４のサーボ同期周期に対して十分大きく設定することができる。リアルタイムＯＳ上のシステムクロックによる第１割り込み要求を細かくすることなく、サーボ３，４へのサーボ制御指令をサーボ３，４と同期して送信することができる。サーボ３，４の送受信処理のための第２割り込み要求が発生しない制御区間を、第３割り込み要求という形で確実に得ることができる。
【０１１３】
本実施形態によれば、ソフトウェアやハードウェアを複雑化することなく、プロセッサ１３の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
【０１１４】
この実施形態では特に、システム制御周期割り込み発生器１１２が発生させる第１割り込み要求の周期よりも短い周期で、サーボ同期周期割り込み発生器１２３が第２割り込み要求を発生させる。リアルタイムＯＳ上のシステムクロックに応じたシステム制御周期割り込み発生器１１２による第１割り込み要求を細かくしなくても、サーボ同期周期割り込み発生器１２３による第２割り込み要求においてサーボ３，４へのサーボ制御指令を確実にサーボ３，４と同期して送信することができる。
【０１１５】
この実施形態では特に、数値制御装置１が、サーボ３，４とプロセッサ１３との間で定期的に同期通信を行うために、当該サーボ３，４へ接続したサーボ通信バス２とプロセッサ１３との入出力制御を行うための第１通信インターフェース１４と、サーボ同期周期タイマ１２２のサーボ同期周期や位相、すなわち開始タイミングを変更可能できるサーボ同期周期設定器１２１と、サーボ通信バス２とサーボ同期周期設定器１２１との入出力制御を行うための、第２通信インターフェース１５と、サーボ３，４の動作タイミングを発生させるサーボ制御周期タイマ３３のサーボ制御周期や開始タイミングを変更できるサーボ制御周期設定器３２に対し、プロセッサ１３とサーボ３，４とを同期させるための上記サーボ同期周期と同じ時間長のサーボ制御周期及び開始タイミングをサーボ通信バス２を介して設定すると共に、サーボ同期周期設定器１２１に対し、プロセッサ１３とサーボ同期周期割り込み発生器１２３とを同期させるためのサーボ同期周期及び開始タイミングをサーボ通信バス２を介して設定する同期周期設定指令部１３７とをさらに備えている。
【０１１６】
サーボ同期周期割り込み発生器１２３による第２割り込み要求と第３割り込み要求との同期を、サーボ通信バス２を通じて確実に設定することができる。
【０１１７】
サーボ同期周期設定器１２１とサーボ制御周期設定器３２が、自身のタイマに対し周期や開始タイミングを変更可能な同一ないし類似のハードウェアを利用できる。通常、数値制御装置に備わっているサーボ制御周期設定器３２に対しての同期周期設定指令部１３７が、サーボ同期周期設定器１２１に対しても利用している点で、ソフトウェアが肥大化しない。
【０１１８】
本実施形態において、プロセッサ１３がサーボ同期用割り込み回路１２及び各サーボ３，４との間でデータを送受するサーボ通信バス２のネットワーク形態は、上記図５に示すようにプロセッサ１３から各機器に対して個別に送受する形態となっている。本発明はこれに限られず、例えば図８に示すようにプロセッサ１３と各機器とをリングネットワークの形態で接続してもよい。この場合には、プロセッサ１３が一つに繋がったサーボ制御指令のパケットを送信し、各機器が当該一つの繋がったパケット内から必要な指令データのみを取り合い、かつ、一連の繋がったパケットに必要な返信データを書き足して次のリングネットワーク先へ送信する構成となる。この構成では、上記図４のフローにおけるステップＳ２５とステップＳ３０の手順での計算方法も適宜変更する必要がある。
【０１１９】
この実施形態では特に、プロセッサ１３に対する一連の繋がったパケットを必ず最後にサーボ同期用回路１２がプロセッサ１３へ送信することから、サーボ同期用回路１２がプロセッサ１３のサーボ応答受信タイミングを自身の送信タイミングから把握でき、サーボ同期周期割り込み発生器１２３は、複数の等分割区間のうちサーボ通信バス２の混雑区間を自動的に避けて、プロセッサ１３に対し第３割り込み要求を発生させることができる。プロセッサ１３の負担を増大させることなく、プロセッサ１３の処理のうちの一定割合を周辺機器の制御処理に対し安定的に配分することができる。
【符号の説明】
【０１２０】
１                数値制御装置
２                サーボ通信バス
３，４            サーボ（サーボモータ）
１１              システム制御用割り込み回路
１２              サーボ同期用割り込み回路
１３              プロセッサ（演算手段）
１４              第１通信インターフェース（第１通信インターフェース手段）
１５              第２通信インターフェース（第２通信インターフェース手段）
３１              サーボ通信インターフェース
３２              サーボ制御周期設定器（サーボタイマ設定手段）
３３              サーボ制御周期タイマ（サーボタイマ）
３４              サーボ制御器
１１１            システム制御周期タイマ（第１タイマ）
１１２            システム制御周期割り込み発生器（第１割り込み発生手段）
１２１            サーボ同期周期設定器（第２タイマ設定手段）
１２２            サーボ同期周期タイマ（第２タイマ）
１２３            サーボ同期周期割り込み発生器（第２割り込み発生手段、第３割り込み発生手段）
１２３ａ          タイマ周期分割器（分割手段）
１３１            リアルタイムＯＳスケジューラ
１３２            通常処理部
１３３            割り込みスケジューラ
１３４            周辺機器処理部
１３５            サーボ指令生成部
１３６            サーボ送受信処理部
１３７            同期周期設定指令部（タイマ設定手段）
【図１】
2011096114.tif 000003
【図２】
2011096114.tif 000004
【図３】
2011096114.tif 000005
【図４】
2011096114.tif 000006
【図５】
2011096114.tif 000007
【図６】
2011096114.tif 000008
【図７】
2011096114.tif 000009
【図８】
2011096114.tif 000010