JP2011096114A - 数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム - Google Patents

数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム Download PDF

Info

Publication number
JP2011096114A
JP2011096114A JP2009251076A JP2009251076A JP2011096114A JP 2011096114 A JP2011096114 A JP 2011096114A JP 2009251076 A JP2009251076 A JP 2009251076A JP 2009251076 A JP2009251076 A JP 2009251076A JP 2011096114 A JP2011096114 A JP 2011096114A
Authority
JP
Japan
Prior art keywords
servo
interrupt
cycle
timer
processor
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.)
Pending
Application number
JP2009251076A
Other languages
English (en)
Inventor
Takeshi Irie
武志 入江
Kokichi Isoda
康吉 磯田
Tatsuo Aoki
起男 青木
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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2009251076A priority Critical patent/JP2011096114A/ja
Publication of JP2011096114A publication Critical patent/JP2011096114A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Numerical Control (AREA)

Abstract

【課題】ソフトウェアやハードウェアを複雑化することなく、プロセッサの処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分する。
【解決手段】サーボ3,4及び周辺機器に係わる複数の動作を制御する数値制御装置であって、プロセッサ13と、システム制御周期タイマ111と、システム制御周期で、プロセッサ13に対し、第1割り込み要求を発生させるシステム制御周期割り込み発生器112と、システム制御周期タイマ111とは異なるサーボ同期周期タイマ122と、サーボ同期周期で、プロセッサ13に対し、第2割り込み要求を発生させるサーボ同期周期割り込み発生器123と、第2割り込み要求の周期を所定の複数の区間に分割するタイマ周期分割器123aと、所定の区間の開始時に、プロセッサ13に対し、周辺機器制御のための第3割り込み要求を発生させるサーボ同期周期割り込み発生器123と、を有する。
【選択図】図1

Description

本発明は、複数のサーボ駆動機構や周辺機器を備えた工作機械の動作を数値制御する数値制御装置、工作機械の制御方法、及び工作機械の制御プログラムに関する。
一般的な工作機械は、複数のサーボ駆動機構を制御することにより被加工物や工具を動作する。工作機械によっては、当該工作機械を覆うスプラッシュカバーの扉の開閉装置、洗浄液や冷却液を噴出・循環させるクーラント装置、切り粉を排出するチップコンベア装置、被加工物の搬入・搬出を行うローダロボットなどの各種周辺機器の動作制御を行う必要がある。近年利用されているコンピュータで構成された数値制御装置(Numerical Control)により制御されるNC工作機械は、NCプログラムに従ってサーボ駆動機構及び周辺機器の自動制御を行う。
従来、上記複数のサーボ駆動機構や周辺機器をそれぞれ並行して制御するために、上記数値制御装置以外にも各周辺機器に対応してプログラマブルコントローラを設けていた。プログラマブルコントローラが、主に複数のサーボ駆動機構を動作制御する数値制御装置と連携しつつ、それぞれのシーケンシャルプログラムに従って各周辺機器の動作制御を行うことで、NC工作機械全体で調和の取れた動作を可能としていた。
近年では、プロセッサの高機能化に伴い、上記数値制御装置と複数のプログラマブルコントローラが個別に行っていた動作制御の全てを、数値制御装置の一つのプロセッサで処理することが可能となった。このように、従来、複数のプロセッサで実行していた制御処理を単一のプロセッサ上に統合する場合、従来性能を維持するには、元々別のプロセッサで行なっていた個々の制御処理に対して、新たなプロセッサの占有率(処理できる時間の配分)を、個々の制御処理の長さに影響を受けないように、配分することが求められる。
そのための具体的な制御手法として、数値制御装置の一つのプロセッサが、リアルタイムOS上で多数の制御処理をそれぞれ所定時間ごとに切り替えて時分割的に並行処理する手法がある。その上で、各時分割処理の開始を要求する割り込みが発生した後、リアルタイムOSの内部に設けた経過時間判定処理が内部的に経過時間をカウントし、所定の経過時間が経過した際に制御処理の実行を開始するよう時間管理する方法がある(例えば、特許文献1参照)。
各時分割処理の開始を要求する割り込みが発生した後、優先度の高い制御処理が終了すると、命令数で管理された機能が外部から指示された分だけ制御処理を行う方法もある(例えば、特許文献2参照)。
特開2002−132306号公報 特開平8−320712号公報
上述したような経過時間判定処理が制御処理の実行開始の時間管理を行う上記特許文献1記載の従来技術では、経過時間判定処理自体がリアルタイムOSのタイマ割り込みに依存している。この場合、数値制御装置にとって主たる制御処理であるサーボ制御の処理を行う周期であるサーボ同期周期よりも短く均一な周期で割り込みを設定する必要があり、不要な割り込み処理が発生し、処理時間の無駄になる。つまり、従来、プログラマブルコントローラで行っていた周辺機器の制御処理が、サーボ制御の処理の長さやサーボ同期周期の長さに影響を受けないようにするためには、サーボ同期周期よりも短く、周辺機器の制御処理に割り当てたいプロセッサの占有率を確保できる周期でタイマ割り込みを設定する必要があり、経過時間をカウントアップするだけの割り込みが過大となるという問題がある。
制御処理を行う機能を命令数で管理する上記特許文献2記載の従来技術では、処理を命令数Nで管理する必要があり、命令数Nを管理する機能にプロセッサの能力を費やされる点で変わりはない。
数値制御装置においては、別途、外部の割り込み機構を有し、任意のタイミングで割り込みを得て制御処理することが、プロセッサの能力を最大限利用する為には、相応しい構成であると考えられるが、同一の数値制御装置、同一のハードウェアで構成の異なる複数の工作機械を動作させたい為、構成の違い(サーボの数やサーボとの通信距離)によってサーボ同期周期が異なる場合、数値制御装置から外部の割り込み機構に対し割り込みタイミングを設定する機能を備える必要がある。この場合、数値制御装置から外部の割り込み機構に対し割り込みタイミングを設定するための専用通信線や、数値制御装置と外部の割り込み機構間で割り込みタイミングを設定するための専用プロトコルを生成する処理機構を設ける必要があり、数値制御装置のハードウェア規模ないし、ソフトウェアの開発コストが大きくなり、コストが増大してしまう。
以上に挙げた従来技術は、いずれも数値制御装置の一つのプロセッサだけでサーボ制御処理に加え周辺機器の制御処理も併せて実行するために、リアルタイムOSや制御処理機構であるソフトウェア、及びハードウェアを大幅に複雑化させる原因となる。
本発明の目的は、ソフトウェアやハードウェアを複雑化することなく、動作制御の演算手段であるプロセッサの処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる数値制御装置、工作機械の制御方法、及び工作機械の制御プログラムを提供することにある。
上記目的を達成するために、第1発明の数値制御装置は、工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する数値制御装置であって、演算手段と、第1タイマと、前記第1タイマの計時における所定の周期で、前記演算手段に対し、当該演算手段の動作クロックの周期に応じた第1割り込みを発生させる第1割り込み発生手段と、第1タイマとは異なる第2タイマと、前記第2タイマの計時における所定の周期で、前記演算手段に対し、前記サーボモータとのサーボデータ送受信用の第2割り込みを発生させる第2割り込み発生手段と、前記第2割り込み発生手段による前記第2割り込みの周期を所定の複数の区間に分割する分割手段と、前記分割手段により分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第3割り込みを発生させる第3割り込み発生手段とを有することを特徴とする。
本願第1発明の数値制御装置は、第1タイマ及び第1割り込み発生手段を有する。第1割り込み発生手段は、第1タイマの計時による所定の周期で、演算手段の動作クロックの周期に応じて第1割り込みを発生させる。これにより、リアルタイムOS上の複数のプログラム機能のスケジュール管理を行う。
本願第1発明の数値制御装置は、第2タイマ、第2割り込み発生手段、分割手段、及び第3割り込み発生手段を有する。第2割り込み発生手段は、第1タイマとは異なる第2タイマの計時による所定の周期で、サーボモータとのサーボデータ送受信用の第2割り込みを発生させる。分割手段は、第2割り込みの周期を所定の複数の区間に分割する。第3割り込み発生手段は、それら分割された複数の区間のうち所定の区間の開始時に、工作機械の周辺機器を制御するための第3割り込みを発生させる。
これにより、第2割り込みにおいてサーボモータとの間で予め決めた一定のタイミングでサーボモータに指令データを送信し、それに対する返信データを受信してサーボモータの現在位置等を取り込むことができる。また、サーボモータからの返信データの受信処理が確実に終了するようなタイミングに第3割り込みを設定することで、第3割り込みのタイミングにおいて性質の異なる周辺機器の制御処理を行い、次の第2割り込みのときに送信する指令データを、その周辺機器の制御処理を終了した後に作成することができる。
以上の結果、通常のリアルタイムOSへの時間を知らせる第1タイマによる第1割り込みは、第2タイマによるサーボ同期周期に対して十分大きく設定することができる。つまり、リアルタイムOS上のシステムクロックによる第1割り込みを細かくすることなく、サーボモータへの指令データをサーボモータと同期したタイミングで送信することができる。そして、サーボモータとの間の指令データや返信データの送受信処理が発生しない制御区間を、第3割り込みという形で確実に得ることができる。
したがって、本願第1発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
第2発明の数値制御装置は、上記第1発明において、前記第2割り込み発生手段は、前記第1割り込み発生手段が発生させる前記第1割り込みの周期よりも短い周期で、前記第2割り込みを発生させることを特徴とする。
これにより、リアルタイムOS上のシステムクロックに応じた第1割り込み発生手段による第1割り込みを細かくしなくても、第2割り込み発生手段による第2割り込みにおいてサーボモータへの指令データを確実にサーボモータと同期したタイミングで送信することができる。
第3発明の数値制御装置は、上記第1又は第2発明において、前記サーボモータと前記演算手段との間で定期的に同期通信を行うために、当該サーボモータへ接続されたサーボ通信バスと前記演算手段との入出力制御を行うための第1通信インターフェース手段と、前記第2タイマの周期やタイミングを変更可能できる第2タイマ設定手段と、前記サーボ通信バスと前記第2タイマ設定手段との入出力制御を行うための、第2通信インターフェース手段と、前記サーボモータの動作タイミングを発生させるサーボタイマの周期やタイミングを変更できるサーボタイマ設定手段に対し、前記演算手段と前記サーボモータとを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定すると共に、前記第2タイマ設定手段に対し、前記演算手段と前記第2割り込み発生手段及び前記第3割り込み発生手段とを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定するタイマ設定手段とをさらに備えることを特徴とする。
これにより、第2割り込み発生手段による第2割り込みと第3割り込み発生手段による第3割り込みとの同期を、サーボ通信バスを通じて確実に設定することができる。
第4発明の数値制御装置は、上記第1乃至第3発明のいずれかにおいて、前記第3割り込み発生手段は、前記複数の区間のうち前記サーボ通信バスの混雑区間を避けて、前記演算手段に対し前記第3割り込みを発生させることを特徴とする。
これにより、演算手段の負担を増大させることなく、演算手段の処理のうちの一定割合を周辺機器の制御処理に対し安定的に配分することができる。
上記目的を達成するために、第5発明の工作機械の制御方法は、工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する工作機械の制御方法であって、所定の第1周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第1割り込みを発生させる手順と、第1周期とは異なる所定の第2周期で、前記サーボモータとのサーボデータ送受信用の第2割り込みを発生させる手順と、前記第2割り込みの周期を所定の複数の区間に分割する手順と、前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第3割り込みを発生させる手順とを備えることを特徴とする。
本願第5発明の工作機械の制御方法では、第1周期で、演算手段の動作クロックの周期に応じて第1割り込みを発生させる。これにより、リアルタイムOS上の複数のプログラム機能のスケジュール管理を行う。また、第1周期とは異なる第2周期で、サーボモータとのサーボデータ送受信用の第2割り込みを発生させる。また、第2割り込みの周期を所定の複数の区間に分割し、それら分割された複数の区間のうち所定の区間の開始時に、工作機械の周辺機器を制御するための第3割り込みを発生させる。
これにより、第2割り込みにおいてサーボモータとの間で予め決めた一定のタイミングでサーボモータに指令データを送信し、それに対する返信データを受信してサーボモータの現在位置等を取り込むことができる。また、サーボモータからの返信データの受信処理が確実に終了するようなタイミングに第3割り込みを設定することで、第3割り込みのタイミングにおいて性質の異なる周辺機器の制御処理を行い、その周辺機器の制御処理を終了した後に、次の第2割り込みのときに送信する指令データを作成することができる。
以上の結果、通常のリアルタイムOSへの時間を知らせる第1割り込みの第1周期を、サーボモータの同期のための第2周期に対して十分大きく設定することができる。つまり、リアルタイムOS上のシステムクロックによる第1周期を細かくすることなく、サーボモータへの指令データをサーボモータと同期したタイミングで送信することができる。そして、サーボモータとの間の指令データや返信データの送受信処理が発生しない制御区間を、第3割り込みという形で確実に得ることができる。
したがって、本願第5発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
上記目的を達成するために、第6発明の工作機械の制御プログラムは、工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御するための工作機械の制御プログラムであって、コンピュータに、所定の第1周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第1割り込みを発生させる手順と、第1周期とは異なる所定の第2周期で、前記サーボモータとのサーボデータ送受信用の第2割り込みを発生させる手順と、前記第2割り込みの周期を所定の複数の区間に分割する手順と、前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第3割り込みを発生させる手順とを実行させることを特徴とする。
本願第6発明の工作機械の制御プログラムを実行するコンピュータは、第1周期で、演算手段の動作クロックの周期に応じて第1割り込みを発生させる。これにより、リアルタイムOS上の複数のプログラム機能のスケジュール管理を行う。また、第1周期とは異なる第2周期で、サーボモータとのサーボデータ送受信用の第2割り込みを発生させる。また、第2割り込みの周期を所定の複数の区間に分割し、それら分割された複数の区間のうち所定の区間の開始時に、工作機械の周辺機器を制御するための第3割り込みを発生させる。
これにより、第2割り込みにおいてサーボモータとの間で予め決めた一定のタイミングでサーボモータに指令データを送信し、それに対する返信データを受信してサーボモータの現在位置等を取り込むことができる。また、サーボモータからの返信データの受信処理が確実に終了するようなタイミングに第3割り込みを設定することで、第3割り込みのタイミングにおいて性質の異なる周辺機器の制御処理を行い、その周辺機器の制御処理を終了した後に、次の第2割り込みにおいてサーボモータに対して送る指令データを作成することができる。
以上の結果、通常のリアルタイムOSへの時間を知らせる第1割り込みの第1周期を、サーボモータの同期のための第2周期に対して十分大きく設定することができる。つまり、リアルタイムOS上のシステムクロックによる第1周期を細かくすることなく、サーボモータへの指令データをサーボモータと同期したタイミングで送信することができる。そして、サーボモータとの間の指令データや返信データの送受信処理が発生しない制御区間を、第3割り込みという形で確実に得ることができる。
したがって、本願第6発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
本発明によれば、ソフトウェアやハードウェアを複雑化することなく、演算手段の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
本発明の実施形態に係る数値制御装置及びサーボのシステム構成を模式的に表す機能ブロック図である。 各割り込み要求のタイミングと各処理の実行との関係を示すタイムチャートの一例である。 サーボ同期周期とシステム制御周期との関係を示すタイムチャートの一例である。 数値制御装置のプロセッサが実行する制御手順を表すフローチャートである。 プロセッサと各機器との間のネットワーク形態を表す図である。 通信インターフェース間の伝搬遅延時間、及び各周期間のオフセット時間の関係を表す図である。 図4中のステップS100の同期処理の詳細手順を表すフローチャートである。 プロセッサと各機器との間のネットワーク形態の変形例を表す図である。
以下、本発明の一実施の形態を図面を参照しつつ説明する。
図1は、数値制御装置及びサーボのシステム構成を模式的に表す機能ブロック図である。数値制御装置1は、工作機械本体(特に図示せず)の全体における複数の動作をマルチタスクで制御する(以下適宜、時分割的に制御するという)ものである。
図1に示すように、数値制御装置1は、サーボ通信バス2を介して複数のサーボ3,4と情報を送受信可能に接続している。図中では、図示の便宜上、2つのサーボ3,4だけがサーボ通信バス2に接続し、以下の説明においてもサーボを2つだけ接続する例で説明するが、実際にはより多くのサーボを接続する構成としてもよい。数値制御装置1はサーボ3,4以外の他の複数の周辺機器に対しても動作制御を行うものとしているが、それら周辺機器の図示は省略している。
数値制御装置1は、システム制御用割り込み回路11と、サーボ同期用割り込み回路12と、プロセッサ13とを有している。数値制御装置1は、上記プロセッサ13がサーボ通信バス2と通信可能に接続するための第1通信インターフェース手段としての第1通信インターフェース14と、上記サーボ同期用割り込み回路12が同じサーボ通信バス2に通信可能に接続するための第2通信インターフェース手段としての第2通信インターフェース15とを有している。図中においてこれら回路11,12とプロセッサ13はハードウェア的に区別して示しているが、それぞれが備える機能ブロックは内部の処理機能で区別して示している。特にプロセッサ13の内部の機能ブロックは、いずれもソフトウェア的な処理で区別したソフトウェアブロックで示している。
システム制御用割り込み回路11は、プロセッサ13がリアルタイムOS上で実行する複数の処理を時分割的に切り替える契機となる第1割り込み要求(後述の図2、図3参照)を出力する。システム制御用割り込み回路11は、システム制御周期タイマ111と、システム制御周期割り込み発生器112とを有している。各請求項記載の第1タイマとしてのシステム制御周期タイマ111は、プロセッサ13の基準クロックをカウントし、所定の時間長に設定したシステム制御周期(後述の図3参照)が経過するたびに報知する。各請求項記載の第1割り込み発生手段としてのシステム制御周期割り込み発生器112は、システム制御周期タイマ111が時間経過を報知した際、各請求項記載の第1割り込みである上記第1割り込み要求の信号を発生してプロセッサ13に出力する。
サーボ同期用割り込み回路12は、プロセッサ13が各サーボ3,4と同期制御する基準となる所定の時間長のサーボ同期周期ごとに、各サーボ3,4の制御処理を開始する契機となる第2割り込み要求(後述の図2参照)を出力する。サーボ同期用割り込み回路12は、各サーボ同期周期中における同じ適宜のタイミングで、周辺機器の制御処理の開始と終了のそれぞれの契機となる2つの第3割り込み要求(後述の図2参照)を出力する。
サーボ同期用割り込み回路12は、サーボ同期周期設定器121と、サーボ同期周期タイマ122と、サーボ同期周期割り込み発生器123とを有している。第2タイマ設定手段としてのサーボ同期周期設定器121は、プロセッサ13から2つの通信インターフェース14,15とサーボ通信バス2とを介して受信する設定指令に従って、サーボ同期周期タイマ122に対しサーボ同期周期と位相すなわち、サーボ同期周期の開始タイミングを設定する。各請求項記載の第2タイマとしてのサーボ同期周期タイマ122は、サーボ同期用割り込み回路12の基準クロックをカウントし、設定したサーボ同期周期(後述の図2、図3参照)の始期が経過するたびに時間経過信号を出力する。なお、サーボ同期用割り込み回路12の基準クロックは、プロセッサ13の基準クロックと同一な基準クロックを使用する構成でも良い。
各請求項記載の第2割り込み発生手段及び第3割り込み発生手段としてのサーボ同期周期割り込み発生器123は、サーボ同期周期タイマ122から時間経過信号を入力した際に、各請求項記載の第2割り込みとしての上記第2割り込み要求の信号を発生してプロセッサ13に出力する。サーボ同期周期割り込み発生器123はその内部に、各請求項記載の分割手段としてのタイマ周期分割器123aを備えている。タイマ周期分割器123aが上記サーボ同期周期を分周して複数の区間に等分割する。サーボ同期周期割り込み発生器123は、そのうちの所定のタイミングにある2つの等分割区間のそれぞれの始期で各請求項記載の第3割り込みとしての上記2つの第3割り込み要求の信号を発生し、プロセッサ13に出力する(後述の図2参照)。
プロセッサ13は、制御プログラム等を実行することで、NCプログラムの解析や、上記サーボ3,4及び周辺機器を含めた工作機械の全体(特に図示せず)の動作を制御する各請求項記載の演算手段である。プロセッサ13は、上述したソフトウェアブロックとして、リアルタイムOSスケジューラ131、通常処置部132、割り込みスケジューラ133、周辺機器処理部134、サーボ指令生成部135、サーボ送受信処理部136、及び同期周期設定指令部137を有している。
リアルタイムOSスケジューラ131は、上記システム制御用割り込み回路11のシステム制御周期割り込み発生器112から上記第1割り込み要求の信号を入力するたびに、その時点でプロセッサ13がリアルタイムOS上で並行処理すべき複数の処理のうちそれ以降に実行すべきものを選択指定して、個々の処理を起動及び中断させる。通常処理部132は、リアルタイムOSスケジューラ131が選択指定した処理が、リアルタイムOSスケジューラ131が起動し中断されるまでの区間、通常処理(後述の図2参照)として実行する。
割り込みスケジューラ133は、上記サーボ同期用割り込み回路12のサーボ同期周期割り込み発生器123から上記第2割り込み要求または第3割り込み要求の信号を入力するたびに、通常処理よりも、リアルタイムOS上で処理優先度が高く設定されている、後述するサーボ送受信処理、周辺機器処理、及びサーボ指令生成処理のいずれか一つを適宜の順序で選択指定して、個々の処理を起動及び中断させる。
周辺機器処理部134は、上記割り込みスケジューラ133が周辺機器処理を起動してから中断させるまでの間だけ、当該周辺機器処理を時分割的に実行する。サーボ指令生成部135は、上記割り込みスケジューラ133がサーボ指令生成処理を選択指定し起動したタイミングで、当該サーボ指令生成処理の実行を開始する。サーボ送受信処理部136は、上記割り込みスケジューラ133がサーボ送受信処理を選択指定し起動したタイミングで、サーボ送受信処理のうち、指令データを送信するサーボ指令送信処理の実行を開始する。このとき、サーボ送受信処理136は、第1サーボ3、第2サーボ4のサーボ制御機34に対して指令データを各通信インターフェース14、31とサーボ通信バス2とを介して送信する。そして、第1サーボ3、第2サーボ4は、指令データを受信した直後、返信データを各通信インターフェース14,31とサーボ通信バス2とを介して、サーボ送受信処理136に対して送信する。サーボ送受信処理部136は、その返信データを受信したタイミングで、サーボ送受信処理のうち、返信データを受信するサーボ応答受信処理を実行する。なお、後に詳述するが、サーボ送受信処理部136による指令データの送信処理と返信データの受信処理は、全てのサーボに対して、全ての指令データが送信及び返信データが受信できるまで、何度も分割・混合して実行する。
タイマ設定手段としての同期周期設定指令部137は、各通信インターフェース14,15,31とサーボ通信バス2とを介して、上記サーボ同期周期設定器121と、各サーボ3,4の後述するサーボ制御周期設定器32に対し、所定の時間長に設定したサーボ同期周期と開始タイミング、及び同じ時間長のサーボ制御周期と開始タイミングを各タイマ122,33に設定させるための設定指令を送信する。なお、サーボ同期周期設定器121と後述するサーボ制御周期設定器32が、同じハードウェアで構成される機構ないし、同期周期設定指令部137から送信される設定指令を受信することができ、言い換えると受信側のタイマの周期と開始タイミングを変更するように指令された通信上の共通のプロトコルを判別可能で、自身のタイマの周期と開始タイミングを変更可能な類似の機構であることが、同期周期設定指令部137の処理の規模を小さくでき、非常に望ましい。
なお、上記構成の数値制御装置1が備える各回路11,12及びプロセッサ13のうち、システム制御用割り込み回路11とサーボ同期用割り込み回路12については、それぞれ実行速度が速く専用のプログラムを必要としない比較的単純な構造のハードウェア回路で構成することができる。プロセッサ13のみが、専用のプログラムに基づいて作動するプログラマブルコントローラとして機能する。
サーボ通信バス2は、この例ではEthernet(登録商標)の規格に準じた構成となっている。サーボ通信バス2は他のシリアル通信を利用する構成としてもよい。
第1通信インターフェース14は、プロセッサ13に対し、パケット単位のデータを送受するタイミングで、後述するサーボ指令送信割り込み要求及びサーボ応答受信割り込み要求の信号を出力する割り込み回路として機能する。
各サーボ3,4は、特に図示しない工具やワークを移動させるための各請求項記載のサーボモータであり、サーボ通信インターフェース31と、サーボ制御周期設定器32と、サーボ制御周期タイマ33と、サーボ制御器34とを有している。サーボ3,4が備える機能ブロックは内部の処理機能で区別して示しており、第2サーボ4の内部の機能ブロックは省略している。
サーボタイマ設定手段としてのサーボ制御周期設定器32は、プロセッサ13から2つの通信インターフェース14,31とサーボ通信バス2とを介して受信する設定指令に従って、上記サーボ同期周期と同じ時間長のサーボ制御周期と、サーボ制御周期の位相つまり、サーボ制御周期の開始タイミングをサーボ制御周期タイマ33に設定する。サーボタイマとしてのサーボ制御周期タイマ33は、設定した開始タイミングでサーボ制御周期の計時動作を開始し、設定した時間長のサーボ制御周期の始期が経過するたびに時間経過信号を出力する。サーボ制御器34は、プロセッサ13から2つの通信インターフェース14,31とサーボ通信バス2とを介して受信した指令データの内容に基づくサーボ3,4の駆動制御を、サーボ制御周期タイマ33から時間経過信号を入力した際に実行開始する。また、指令データを受信した際には、当該サーボ3,4の実際の位置や電流値を測定しサーボ制御応答としての返信データをプロセッサ13へ返信する。上記サーボ制御指令の指令データ及びサーボ制御応答の返信データが、各請求項記載のサーボデータに相当する。
プロセッサ13における各割り込み要求と各処理との関係を具体的に説明する。図2は、本実施形態における各割り込み要求のタイミングと各処理の実行との関係を示すタイムチャートの一例を表している。プロセッサ13は、各割り込み要求の信号を、それぞれどの割り込み回路11,12からどの内容の割り込み要求であるか区別可能に入力する。
図2に示す例では、上記サーボ同期用割り込み回路12のサーボ同期周期タイマ122が繰り返し出力する時間経過信号の時間間隔、つまりサーボ同期周期を200μsecに設定している。サーボ同期周期割り込み発生器123のタイマ周期分割器123aは、この例では上記サーボ同期周期を3回分周して8つの区間に等分割している。サーボ同期周期割り込み発生器123はそれら8つのうちの最初の等分割区間の始期、つまりサーボ同期周期全体の始期のタイミングで、第2割り込み要求を出力する。この例では、サーボ同期周期割り込み発生器123が、8つのうちの6番目と7番目の等分割区間のそれぞれの始期で第3割り込み要求を出力する。
プロセッサ13は、基本的に通常処理を通常時に実行し、上記の各割り込み要求を入力した際には、割り込みスケジューラ133を最優先的に動作させ、割り込みスケジューラ133が上述したサーボ指令送信処理、サーボ応答受信処置、周辺機器処理、及びサーボ指令生成処理のいずれか一つを適宜の順序で選択指定して実行させる、いわゆるハードウェア割り込みを行う。
具体的には、プロセッサ13は、サーボ同期周期全体の始期にサーボ同期周期割り込み発生器123から第2割り込み要求を入力した際に、サーボ指令送信処理の実行を開始する。サーボ指令送信処理は、工作機械が備える複数のサーボ3,4に対してそれぞれ対応する後述のサーボ制御指令を送信する処理である。プロセッサ13は、上記サーボ制御指令の実行を終了したサーボ3,4からサーボ制御応答を受信した際に、サーボ応答受信処理を実行する。
上記サーボ指令送信処理は複数のサーボ3,4に対して順番にサーボ制御指令を送信する。各サーボ3,4のサーボ制御指令を受信してからサーボ制御応答を返信するまでの実行時間は、比較的短い。サーボ3,4の設置数が多い場合には、プロセッサ13は、サーボ指令送信処理による全てのサーボ制御指令の送信を完全に終了する前に、最初のサーボ制御応答がプロセッサ13に到着してサーボ応答受信処理を開始する場合が多い。
上述したようにこの例では、サーボ通信バス2がEthernet(登録商標)に準じた構成となっているため、プロセッサ13及びサーボ3,4は、上記サーボ制御指令とサーボ制御応答のデータを容量の小さいパケット単位に分割して送受信する。通信インターフェース14,31間でパケットを送受信している間に、プロセッサ13は通常処理を時分割的に実行する。パケットの送受が完了した際に、第1通信インターフェース14から特に図示しない割り込み要求を入力することによって、プロセッサ13はサーボ指令送信処理またはサーボ応答受信処理のいずれかに復帰する。プロセッサ13は、上記第2割り込み要求の一度の入力を契機として、通常処理とサーボ指令送信処理とサーボ応答受信処理とを繰り返し分割・混合して実行する。
プロセッサ13は、サーボ応答受信処理が終了した後、6番目の等分割区間の始期でサーボ同期周期割り込み発生器123から1回目の第3割り込み要求を入力した際には、周辺機器処理に切り替えて実行を開始する。周辺機器処理は、工作機械が備える各種の周辺機器に対して動作制御を行う処理である。プロセッサ13が、制御対象となる周辺機器処理を複数備えている場合には、ここに周辺機器のスケジューラを持ち、1番目の第3割り込みがくるたびに順番に処理を開始させるなどして実行するが、ここではその詳細を省略する。
プロセッサ13は、7番目の等分割区間の始期で、サーボ同期周期割り込み発生器123から2回目の第3割り込み要求を入力した際には、それまで継続して実行していた周辺機器処理を中断し、サーボ指令生成処理に切り替えて実行を開始する。サーボ指令生成処理は、次のサーボ同期周期におけるサーボ指令送信処理で各サーボ3,4に送信するサーボ制御指令である指令データを生成する処理である。この例では、プロセッサ13は、同じサーボ同期周期のサーボ応答受信処理で受信した各サーボ3,4のサーボ制御応答である返信データを参照し、次のサーボ同期周期における各サーボ3,4の動作目標値などの各サーボ制御指令である指令データを生成することにより、各サーボ3,4に対していわゆるセミ・クローズド・ループ制御を行う。プロセッサ13は、各サーボ3,4に対応する全てのサーボ制御指令の生成が完了した際に、通常処理に切り替えて実行を再開する。
以上のようにして、プロセッサ13の割り込みスケジューラ133は、各回のサーボ同期周期中でそれぞれ5つの処理を同じ適宜の順序で選択指定し、それぞれ対応する各処理部または生成部によって時分割的に実行させる。上記説明したサーボ同期周期とその区間分割数、及び各割り込み要求のタイミングなどの設定は一例であり、サーボ3,4の設置数や周辺機器の設置態様などといった工作機械の構成・作動環境に応じて各設定を適宜変更してもよい。
プロセッサ13は、システム制御周期割り込み発生器112から第1割り込み要求を入力した際に、リアルタイムOSスケジューラ131がリアルタイムOS上で次に実行すべき通常処理として選択指定した処理を、通常処理部132に実行させる。通常処理の具体的な処理内容としては、例えば特に図示しない操作画面の表示データの作成や、操作部での入力検出、消耗品の使用時間のカウントアップ、NCプログラムの命令の読み取りや解析などがある。これら通常処理は、上記サーボ同期周期より比較的長い周期で切り替えて時分割的に実行しても十分な機能を得るものである。例えば図3に示すように、サーボ同期周期は上記の200μsec程度の短い周期に設定する必要があるのに対し、通常処理はおよそ数msecのオーダーの比較的長いシステム制御周期に設定できる。上記図2のタイムチャートは、この図3中の範囲部分IIを拡大して示している。
以上の行程に従うことにより、プロセッサ13は、リアルタイムOS上の複数の処理をシステム制御周期に適正に同期して実行できるとともに、複数のサーボ3,4及び周辺機器の制御処理をサーボ同期周期に適正に同期して実行することができる。プロセッサ13自身は、時間長が大きく異なるシステム制御周期及びサーボ同期周期に対して、それぞれの周期の計時を行うことなく、外部のハードウェア回路から各種の割り込み要求を入力したタイミングでそれぞれに対応する各種の処理を時分割的に実行するだけでよい。プロセッサ13自身は、複数の周期に基づく周期処理を複合的に行うために複雑な計時処理などを行う必要がなく、そのためリアルタイムOS上のオーバーヘッド(無駄な処理時間)を格段に小さくすることができ、プロセッサ13の処理パワーを大きく軽減できる。多数のサーボ3,4や周辺機器を備える工作機械全体の動作制御を行う上で、プログラマブルコントローラの単一化を機能的に実現できる。
次に、上記説明した本実施形態による同期制御を行うための同期周期設定指令部137の具体的な制御手順を、図4を参照して説明する。数値制御装置1は、電源投入の際、またはユーザが所定の操作を行った際にこのフローを開始する。
ステップS5において、数値制御装置1のプロセッサ13は、サーボ通信バス2と各通信インターフェース14,15,31を介したブロードキャスト通信などにより、当該サーボ通信バス2に接続しているサーボ3,4の数や、それらの種類、接続経路などを調べる。本実施形態の例では、プロセッサ13は、上記図1に示したように、一つのサーボ同期用割り込み回路12と、複数個のサーボ3,4を検出する。
ステップS10へ移り、数値制御装置1のプロセッサ13は、上記ステップS5で検出したサーボ3,4の種類や数に応じてサーボ同期周期を算出する。具体的には、まずプロセッサ13が各サーボ3,4との同期通信で送受信するデータの総量に基づく送受信処理の必要時間と、各サーボ3,4へ送信するサーボ制御指令を全て生成するための必要時間とを算出する。本実施形態の例では、上記図2におけるサーボ指令送信処理とサーボ応答受信処理を通して実行するために必要な時間と、サーボ指令生成処理の実行に必要な時間を算出する。
数値制御装置1のプロセッサ13は、これらの必要時間とともに、通常処理と周辺機器処理をそれぞれ十分に実行できる必要時間を考慮して、サーボ同期周期を算出する。また、各サーボ3,4がサーボ同期周期に応答できるかどうかの性能に応じてサーボ同期周期変更することもある。
本実施形態の数値制御装置1は、上記の算出・設定を行うことにより、多様な工作機械の仕様に対応できる汎用性を備える。数値制御装置1は、サーボ同期周期の設定を、工作機械の仕様に対応してあらかじめ固定的に設定・記憶していてもよい。その場合には、このステップS10の手順を省略できる。
ステップS15へ移り、数値制御装置1のプロセッサ13は、サーボ同期用割り込み回路12のサーボ同期周期設定器121に上記ステップS10で算出したサーボ同期周期を設定するとともに、各サーボ3,4のサーボ制御周期設定器32に上記ステップS10で算出したサーボ同期周期をサーボ制御周期として設定する。具体的には、プロセッサ13の同期周期設定指令部137が、ステップS10で算出したサーボ同期周期を含む設定指令をサーボ同期周期設定器121に送信し、同じくステップS10で算出したサーボ制御周期を含む設定指令を各サーボ制御周期設定器32に送信する。各周期設定器がそれぞれ対応する各タイマ121,32に対して計時周期を設定し、当該各タイマ121,35の計時動作を開始させる。
ステップS20へ移り、数値制御装置1のプロセッサ13は、第1通信インターフェース14と、サーボ同期用割り込み回路12及び各サーボ3,4のそれぞれの通信インターフェース15,31との間でデータを送受する際の伝搬遅延時間を計測・算出する。
以下に、本実施形態の例において伝搬遅延時間を計測・算出する具体的な手法について詳しく説明する。図5に示すように、本実施形態の例において、プロセッサ13は、サーボ同期用割り込み回路12と2つのサーボ3,4に対してそれぞれ個別にデータを送受するネットワーク形態となっている。この場合に、データの送信と受信のそれぞれの伝搬遅延時間が同じであるとすると、IEEE1588準拠のSync/Delay Reqパケットを通信インターフェース14,15,31どうしで互いに発信することにより、一方向つまり片道での伝搬遅延時間を計測・算出することができる。
図5に示すように、例えばプロセッサ13側からSyncパケットを送信した時刻をT0、サーボ同期用割り込み回路12側でこのSyncパケットを受信した時刻をT1とし、このSyncパケットに対応して返信するDelay Reqパケットをサーボ同期用割り込み回路12側から送信した時刻をT1′、プロセッサ13側でこのDelay Reqパケットを受信した時刻をT0′とする。
サーボ同期用割り込み回路12側で検出する時刻T1,T1′は、この例のサーボ同期周期である0〜200μsecまでを繰り返し計時するサーボ同期周期タイマ122の計時時刻である。プロセッサ13側で検出する時刻T0,T0′は、電源が投入されてからプロセッサ13の基準クロックをカウントして生成されるシステムタイマを、サーボ同期周期の時間長の200μsecで除算したときの余りの時間であり、時刻T0,T0′もまた、0〜200μsecを繰り返す計時時刻である。
以上の場合に、各時刻T0,T0′,T1,T1′の関係は、図6(a)に示すようになる。システム制御周期タイマ111とサーボ同期周期タイマ122はそれぞれ無関係に計時を開始する場合、図中に示すようにそれぞれの計時時刻の0基点つまり、位相にズレが生じている。この例において、システム制御周期タイマ111の0基点を基準としたサーボ同期周期タイマ122の0基点のズレ、つまり2つタイマ間の位相のズレを第1オフセット時間To1とし、プロセッサ13とサーボ同期用割り込み回路12との間のデータの伝搬遅延時間を第1伝搬遅延時間Td1とすると、図示する関係から以下の式が成立する。
Td1=(T1+To1)−T0
Td1=T0′−(T1′+To1)
第1伝搬遅延時間Td1は、
Td1=(T1−T1′−T0+T0′)/2
となる。
図示する関係から以下の式も成立する。
T0+Td1=To1+T1
第1オフセット時間To1は、
To1=T0−T1+Td1
但し上記結果がTo1>200ならば、To1は、To1−200となり、また上記結果がTo1<0ならば、To1はTo1+200となる。
なお、上記図1に示す数値制御装置1の構成において、システム制御周期タイマ111と、サーボ同期周期タイマ122の基準クロックを同一のハードウェアを使用する場合は、To1は0となることもありこの場合は、省略できる。
他の各サーボに対しても同様の手法により、データ送受の伝搬遅延時間とタイマ間の位相差を計測・算出することができ、それらの関係は図6(b)に示すようになる。図6(a)と図6(b)は、図中の右方向に向かう時間軸上で同期している。
図6(b)において、第2オフセット時間To2は、システム制御周期タイマ111と第1サーボ3のサーボ制御周期タイマ33との間の位相差を示し、第2伝搬遅延時間Td2は、プロセッサ13と第1サーボ3との間のデータ送受の伝搬遅延時間を示している。第3オフセット時間To3は、システム制御周期タイマ111と第2サーボ4のサーボ制御周期タイマ33との間の位相差を示し、第3伝搬遅延時間Td3は、プロセッサ13と第2サーボ4との間のデータ送受の伝搬遅延時間を示している。
本実施形態では、各サーボ3,4の制御動作が同時に開始できるよう、各サーボ制御周期タイマ33の位相差を適宜のタイミングで一致させる補正を行う。具体的には、まずサーボまでの伝搬遅延時間が最も長い、図示する例では第2伝搬遅延時間Td2をもとに、新たな位相の0基点を決定する。図示するようにサーボ同期周期タイマ122の位相の0基点を基準として、そこから第2伝搬遅延時間Td2と余裕時間Tmを加算したサーボ同時基点TSsを、新たな位相の0基点とする。
余裕時間Tmは、プロセッサ13が全てのサーボ3,4にサーボ制御指令を送信するのに必要な時間、上記図2におけるサーボ指令送信処理を完全に終了させるのに必要な時間よりも十分に長い時間に設定する。プロセッサ13がサーボ同期周期タイマ122の位相の0基点である時刻Ts1からサーボ指令送信処理を開始すると、サーボ同時基点TSsの時刻に到達するまでには全てのサーボ3,4がサーボ制御指令の受信を完了することができる。全てのサーボ3,4がサーボ同時基点TSsの時刻で一斉に直前に得たサーボ制御指令に対するサーボ制御動作を開始することができる。
第1サーボ3のサーボ制御周期タイマ33の位相において初期の0基点を上記サーボ同時基点TSsへ移すために必要な位相補正値R2は、
R2=To1+Td2+Tm−To2
となる。
同様にして、第2サーボ4のサーボ制御周期タイマ33の位相において初期の0基点を上記サーボ同時基点TSsへ移すために必要な位相補正値R3は、
R3=To1+Td2+Tm−To3
となる。
各通信インターフェース14,15,31やサーボ通信バス2の仕様によっては、上記の各伝搬遅延時間が長くなりすぎてしまい、上記図2に示した周辺機器処理の割り込みスケジュールに影響を与える。図2において、サーボ指令送信処理開始からサーボ応答受信処理終了までの時間が、サーボ同期周期の5/8を超える場合は、前述に相当する。これらのような問題が生じる場合には、上記ステップS10でサーボ同期周期の長さをさらに大きくするよう再設定すればよい。
図4に戻り、次のステップS25で、数値制御装置1のプロセッサ13は、以上のようにして決定した位相補正値をそれぞれ対応する各サーボのサーボ制御周期設定器32に送信し、各サーボ制御周期の位相の0基点を同一のサーボ同時基点TSsに一致させる。
ステップS30へ移り、数値制御装置1のプロセッサ13は、サーボ通信バス2上に接続するサーボ同期用割り込み回路12及び各サーボ3,4にそれぞれ通信確立を送信して同期制御を開始させる。サーボ同期用割り込み回路12のサーボ同期周期割り込み発生器123は、サーボ同期周期タイマ122の計時がサーボ同期周期の0基点となった際に第2割り込み要求をプロセッサ13に出力し、6番目及び7番目の等分割区間のそれぞれの始期で第3割り込み要求をプロセッサ13に出力する(上記図2参照)。上記サーボ同期周期の位相の0基点から上記第2伝搬遅延時間Td2と余裕時間Tmを加算したサーボ同時基点TSsで、全てのサーボ制御器34が一斉に直前に得たサーボ制御指令に対するサーボ制御動作を開始できる。
以上の手順により、サーボ通信バス2上の全ての機器に同期制御を行わせる設定準備が完了した後、数値制御装置1のプロセッサ13は、サーボを制御し続けている間、次のステップS100で同期処理を実行する。
上記図4中のステップS100において実行する同期処理の詳細手順を、図7に示す。この同期処理は、図3に示すようにシステム制御周期に同期して通常処理を時分割的に実行するとともに、図2に示すようにサーボ同期周期に同期してサーボ指令送信処理、サーボ応答受信処理、周辺機器処理、及びサーボ指令生成処理の時分割的実行を並行して行う。図中において破線で示す手順経路は、各種の割り込み要求による制御手順の呼び出しに対応するものである。
この同期処理において、数値制御装置1のプロセッサ13は、上述したように基本的にステップS105の通常処理を継続的に実行しており、上記システム制御用割り込み回路11から第1割り込み要求を入力した際にはステップS110へ移る。プロセッサ13は、上記サーボ同期用割り込み回路12から第2割り込み要求または第3割り込み要求を入力した際にはステップS120へ移る。プロセッサ13は、第1通信インターフェース14から、後述するサーボ指令送信割り込み要求やサーボ応答受信割り込み要求を入力した際も、それぞれその時の状況に応じた制御手順へ移る。
第1割り込み要求の入力によりステップS110へ移った場合、数値制御装置1のプロセッサ13は、リアルタイムOSスケジューラ131の選択指定に基づいて通常処理の処理内容を切り替える。
このとき、S120〜185の処理が実行中でない場合は、S105に戻ってS110で選択指定された通常処理に切り替える。S120〜185の処理が実行中の場合はS120〜185を継続し、S120〜185の処理が終了/中断した後、S105に戻ってS110で選択指定された通常処理に切り替える。
第2割り込み要求または第3割り込み要求の入力によりステップS120へ移った場合、数値制御装置1のプロセッサ13は、入力した当該割り込み要求が第2割り込み要求であるか否かを判定する。入力した割り込み要求が第2割り込み要求である場合(ステップS120でYes)、新たなサーボ同期周期が開始したものとみなして次のステップS125へ移る。
ステップS125では、数値制御装置1のプロセッサ13は、同一のサーボ同期周期における第3割り込み要求の入力回数を計数するためのカウント変数Cの値を0にリセットする。
ステップS130へ移り、数値制御装置1のプロセッサ13は、この時点でサーボ指令生成処理が完全に終了しているか否かを判定する。この時点でまだサーボ指令生成処理が完全に終了していない場合(ステップS130でNo)、現行のサーボ同期周期での設定では良好な同期制御ができないものとみなし、ステップS135へ移る。ステップS135では、数値制御装置1のプロセッサ13は、図示しない表示部にエラー表示を行なったり、上記ステップS10でのサーボ同期周期の再設定を行うなどのエラー処理を行い、このフローを終了する。この時点でサーボ指令生成処理が完全に終了している場合(ステップS130でYes)、次のステップS140へ移り、サーボ指令送信処理を開始する。
ステップS140では、数値制御装置1のプロセッサ13は、第1通信インターフェース14及びサーボ通信バス2を介して目的のサーボ3,4にサーボ制御指令を送信する。上述したように本実施形態の例では、サーボ通信バス2がEthernet(登録商標)の規格に準じた構成となっているため、プロセッサ13はサーボ制御指令のデータを容量の小さいパケットの単位に分割して送信する。このステップS140では、第1通信インターフェース14が一つのパケットだけを送信開始して、次のステップS145へ移る。
ステップS145では、数値制御装置1のプロセッサ13は、各サーボ3,4に対する全てのサーボ制御指令の全てのパケットを送信完了したか否かを判定する。送信すべきサーボ制御指令のパケットが残っている場合(ステップS145でNo)、直前のステップS140でのパケット送信が終了するまでステップS105に戻り通常処理の実行を再開する。ステップS140でのパケット送信が終了した際には、第1通信インターフェース14がプロセッサ13に対して特に図示しないサーボ指令送信割り込み要求を出力し、これを検知したプロセッサ13はステップS140に戻って残りのパケットを送信する。
各サーボ3,4に対する全てのサーボ制御指令の全てのパケットを送信完了した場合(ステップS145でYes)、数値制御装置1のプロセッサ13は、ステップS105に戻り通常処理の実行を再開する。第1通信インターフェース14が各サーボからサーボ制御応答を受信した際には、プロセッサ13に対して特に図示しないサーボ応答受信割り込み要求を出力し、これを検知したプロセッサ13は次のステップS150へ移り、サーボ応答受信処理を開始する。
上記ステップS145の判定で送信すべきパケットが残っているために判定を満たさず、ステップS105の手順を実行している状態、つまりサーボ指令送信処理の途中の状態でも、第1通信インターフェース14がサーボ制御応答を受信する場合がある。この場合でも第1通信インターフェース14からサーボ応答受信割り込み要求を検知したプロセッサ13はステップS150へ移り、サーボ応答受信処理を開始する。
ステップS150では、数値制御装置1のプロセッサ13は、第1通信インターフェース14を介してサーボ制御応答を受信する。プロセッサ13は、このサーボ制御応答もパケット単位で受信する。
ステップS155へ移り、数値制御装置1のプロセッサ13は、各サーボ3,4から全てのサーボ制御応答の全てのパケットを受信完了したか否かを判定する。プロセッサ13は、受信すべきサーボ制御応答のパケットが残っている場合(ステップS155でNo)、直前のステップS150でのパケット受信が終了するまでステップS105に戻り通常処理の実行を再開する。ステップS150でのパケット受信が終了した際には、第1通信インターフェース14がプロセッサ13に対して特に図示しないサーボ応答受信割り込み要求を出力し、これを検知したプロセッサ13はステップS150に戻って残りのパケットを受信する。
数値制御装置1のプロセッサ13は、各サーボ3,4から全てのサーボ制御応答の全てのパケットを受信完了した場合(ステップS155でYes)、ステップS105に戻り通常処理の実行を再開する。この時点で、通常では、サーボ指令送信処理及びサーボ応答受信処理のいずれも送受信完了している状態であり、プロセッサ13は次に第3割り込み要求を入力するまでステップS105の通常処理を継続実行する。
上記ステップS120の判定において、直前に入力した割り込み要求が第3割り込み要求である場合(ステップS120でNo)、次のステップS160へ移る。
ステップS160では、数値制御装置1のプロセッサ13は、カウンタ変数Cの値を1増加して次のステップS165へ移る。
ステップS165では、数値制御装置1のプロセッサ13は、この時点のカウンタ変数Cの値が1であるか2であるかを判定する。言い換えると、直前に入力した第3割り込み要求が現行のサーボ同期周期において最初に入力したものか2番目に入力したものかを判定する。この時点のカウンタ変数Cの値が1である場合、周辺機器処理の開始タイミングであるとみなし、ステップS170へ移る。
ステップS170では、数値制御装置1のプロセッサ13は、上記ステップS155と同様の判定、現行のサーボ同期周期におけるサーボ応答受信処理がすでに完了しているか否かを判定する。この時点でまだサーボ応答受信処理が完全に終了していない場合(ステップS170でNo)、現行のサーボ同期周期での設定では良好な同期制御ができないものとみなし、ステップS135でのエラー処理を行った後、このフローを終了する。この時点でサーボ応答受信処理が完全に終了している場合(ステップS170でYes)、次のステップS175へ移る。
ステップS175では、数値制御装置1のプロセッサ13は、周辺機器処理を開始する。ここで、周辺機器処理を複数備えている場合には、ここに周辺機器のスケジューラを持ち、1番目の第3割り込みがくるたびに順番に処理を開始させるなどして実行するが、ここではその詳細を省略する。そして2番目の第3割り込み要求を入力した際にステップS120へ戻る。
上記ステップS165の判定において、プロセッサ13は、この時点のカウンタ変数Cの値が2である場合、周辺機器処理の終了タイミングであるとみなし、ステップS180へ移る。
ステップS180では、数値制御装置1のプロセッサ13は、それまで継続していた周辺機器処理の実行を中断する、いわゆるサスペンド処理を行う。次のサーボ同期制御で周辺機器処理を開始する際には、この続きから再開する。
ステップS185へ移り、数値制御装置1のプロセッサ13は、サーボ指令生成処理を実行する。サーボ指令生成処理では、上記ステップS150で受信した各サーボ3,4のサーボ制御応答に基づいて、次回のサーボ同期周期で各サーボ3,4が制御すべき制御動作量を算出し、それぞれのサーボ制御指令を生成する。サーボ指令生成処理が終了した後に、ステップS105へ戻って通常処理を継続実行する。
上記制御手順に従って同期処理を行うことにより、以下の利点が得られる。数値制御装置1と各サーボ間で行われる指令データや応答データの送受信を、本実施形態の例のようにEthernet(登録商標)やシリアル通信で行うため、第1通信インターフェース14からの割り込み要求に対してプロセッサ13は高い優先度で対応する必要がある。プロセッサ13とサーボ3,4との間でデータの送受信をパケット単位で多数回に分けて行うため、それだけ高い頻度で送受信の割り込み要求に対応する必要がある。これに対して上記同期処理では、サーボ指令送信処理とサーボ応答受信処理をサーボ同期周期の最初のいくつかの等分割区間内で集中的に対応し、その後の等分割区間で他の優先度の高い周辺機器処理に専念している。優先度の高い双方の処理の重複を回避して互いに影響を与えることなく実行することができ、プロセッサ13のオーバーヘッド(無駄な処理時間)を低減できる。
以上説明したように、本実施形態においては、通常のリアルタイムOSへの時間を知らせるシステム制御周期タイマ111による第1割り込み要求は、サーボ同期周期タイマ122によるサーボ3,4のサーボ同期周期に対して十分大きく設定することができる。リアルタイムOS上のシステムクロックによる第1割り込み要求を細かくすることなく、サーボ3,4へのサーボ制御指令をサーボ3,4と同期して送信することができる。サーボ3,4の送受信処理のための第2割り込み要求が発生しない制御区間を、第3割り込み要求という形で確実に得ることができる。
本実施形態によれば、ソフトウェアやハードウェアを複雑化することなく、プロセッサ13の処理のうちの一定割合を安定的かつ確実に周辺機器の制御処理に対して配分することができる。
この実施形態では特に、システム制御周期割り込み発生器112が発生させる第1割り込み要求の周期よりも短い周期で、サーボ同期周期割り込み発生器123が第2割り込み要求を発生させる。リアルタイムOS上のシステムクロックに応じたシステム制御周期割り込み発生器112による第1割り込み要求を細かくしなくても、サーボ同期周期割り込み発生器123による第2割り込み要求においてサーボ3,4へのサーボ制御指令を確実にサーボ3,4と同期して送信することができる。
この実施形態では特に、数値制御装置1が、サーボ3,4とプロセッサ13との間で定期的に同期通信を行うために、当該サーボ3,4へ接続したサーボ通信バス2とプロセッサ13との入出力制御を行うための第1通信インターフェース14と、サーボ同期周期タイマ122のサーボ同期周期や位相、すなわち開始タイミングを変更可能できるサーボ同期周期設定器121と、サーボ通信バス2とサーボ同期周期設定器121との入出力制御を行うための、第2通信インターフェース15と、サーボ3,4の動作タイミングを発生させるサーボ制御周期タイマ33のサーボ制御周期や開始タイミングを変更できるサーボ制御周期設定器32に対し、プロセッサ13とサーボ3,4とを同期させるための上記サーボ同期周期と同じ時間長のサーボ制御周期及び開始タイミングをサーボ通信バス2を介して設定すると共に、サーボ同期周期設定器121に対し、プロセッサ13とサーボ同期周期割り込み発生器123とを同期させるためのサーボ同期周期及び開始タイミングをサーボ通信バス2を介して設定する同期周期設定指令部137とをさらに備えている。
サーボ同期周期割り込み発生器123による第2割り込み要求と第3割り込み要求との同期を、サーボ通信バス2を通じて確実に設定することができる。
サーボ同期周期設定器121とサーボ制御周期設定器32が、自身のタイマに対し周期や開始タイミングを変更可能な同一ないし類似のハードウェアを利用できる。通常、数値制御装置に備わっているサーボ制御周期設定器32に対しての同期周期設定指令部137が、サーボ同期周期設定器121に対しても利用している点で、ソフトウェアが肥大化しない。
本実施形態において、プロセッサ13がサーボ同期用割り込み回路12及び各サーボ3,4との間でデータを送受するサーボ通信バス2のネットワーク形態は、上記図5に示すようにプロセッサ13から各機器に対して個別に送受する形態となっている。本発明はこれに限られず、例えば図8に示すようにプロセッサ13と各機器とをリングネットワークの形態で接続してもよい。この場合には、プロセッサ13が一つに繋がったサーボ制御指令のパケットを送信し、各機器が当該一つの繋がったパケット内から必要な指令データのみを取り合い、かつ、一連の繋がったパケットに必要な返信データを書き足して次のリングネットワーク先へ送信する構成となる。この構成では、上記図4のフローにおけるステップS25とステップS30の手順での計算方法も適宜変更する必要がある。
この実施形態では特に、プロセッサ13に対する一連の繋がったパケットを必ず最後にサーボ同期用回路12がプロセッサ13へ送信することから、サーボ同期用回路12がプロセッサ13のサーボ応答受信タイミングを自身の送信タイミングから把握でき、サーボ同期周期割り込み発生器123は、複数の等分割区間のうちサーボ通信バス2の混雑区間を自動的に避けて、プロセッサ13に対し第3割り込み要求を発生させることができる。プロセッサ13の負担を増大させることなく、プロセッサ13の処理のうちの一定割合を周辺機器の制御処理に対し安定的に配分することができる。
1 数値制御装置
2 サーボ通信バス
3,4 サーボ(サーボモータ)
11 システム制御用割り込み回路
12 サーボ同期用割り込み回路
13 プロセッサ(演算手段)
14 第1通信インターフェース(第1通信インターフェース手段)
15 第2通信インターフェース(第2通信インターフェース手段)
31 サーボ通信インターフェース
32 サーボ制御周期設定器(サーボタイマ設定手段)
33 サーボ制御周期タイマ(サーボタイマ)
34 サーボ制御器
111 システム制御周期タイマ(第1タイマ)
112 システム制御周期割り込み発生器(第1割り込み発生手段)
121 サーボ同期周期設定器(第2タイマ設定手段)
122 サーボ同期周期タイマ(第2タイマ)
123 サーボ同期周期割り込み発生器(第2割り込み発生手段、第3割り込み発生手段)
123a タイマ周期分割器(分割手段)
131 リアルタイムOSスケジューラ
132 通常処理部
133 割り込みスケジューラ
134 周辺機器処理部
135 サーボ指令生成部
136 サーボ送受信処理部
137 同期周期設定指令部(タイマ設定手段)

Claims (6)

  1. 工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する数値制御装置であって、
    演算手段と、
    第1タイマと、
    前記第1タイマの計時における所定の周期で、前記演算手段に対し、当該演算手段の動作クロックの周期に応じた第1割り込みを発生させる第1割り込み発生手段と、
    第1タイマとは異なる第2タイマと、
    前記第2タイマの計時における所定の周期で、前記演算手段に対し、前記サーボモータとのサーボデータ送受信用の第2割り込みを発生させる第2割り込み発生手段と、
    前記第2割り込み発生手段による前記第2割り込みの周期を所定の複数の区間に分割する分割手段と、
    前記分割手段により分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第3割り込みを発生させる第3割り込み発生手段と
    を有することを特徴とする数値制御装置。
  2. 請求項1記載の数値制御装置において、
    前記第2割り込み発生手段は、
    前記第1割り込み発生手段が発生させる前記第1割り込みの周期よりも短い周期で、前記第2割り込みを発生させる
    ことを特徴とする数値制御装置。
  3. 請求項1又は請求項2記載の数値制御装置において、
    前記サーボモータと前記演算手段との間で定期的に同期通信を行うために、当該サーボモータへ接続されたサーボ通信バスと前記演算手段との入出力制御を行うための第1通信インターフェース手段と、
    前記第2タイマの周期やタイミングを変更可能できる第2タイマ設定手段と、
    前記サーボ通信バスと前記第2タイマ設定手段との入出力制御を行うための、第2通信インターフェース手段と、
    前記サーボモータの動作タイミングを発生させるサーボタイマの周期やタイミングを変更できるサーボタイマ設定手段に対し、前記演算手段と前記サーボモータとを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定すると共に、前記第2タイマ設定手段に対し、前記演算手段と前記第2割り込み発生手段及び前記第3割り込み発生手段とを同期させるための周期及びタイミングを前記サーボ通信バスを介して設定するタイマ設定手段と
    をさらに備えることを特徴とする数値制御装置。
  4. 請求項1乃至請求項3のいずれか1項記載の数値制御装置において、
    前記第3割り込み発生手段は、
    前記複数の区間のうち前記サーボ通信バスの混雑区間を避けて、前記演算手段に対し前記第3割り込みを発生させる
    ことを特徴とする数値制御装置。
  5. 工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御する工作機械の制御方法であって、
    所定の第1周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第1割り込みを発生させる手順と、
    第1周期とは異なる所定の第2周期で、前記サーボモータとのサーボデータ送受信用の第2割り込みを発生させる手順と、
    前記第2割り込みの周期を所定の複数の区間に分割する手順と、
    前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第3割り込みを発生させる手順と
    を備えることを特徴とする工作機械の制御方法。
  6. 工具又はワークを移動させるためのサーボモータを備えた工作機械本体、及び、前記工作機械本体に係わる所定の周辺機器に係わる、複数の動作を、マルチタスクで制御するための工作機械の制御プログラムであって、
    コンピュータに、
    所定の第1周期で、前記工作機械に備えられた演算手段の動作クロックの周期に応じた第1割り込みを発生させる手順と、
    第1周期とは異なる所定の第2周期で、前記サーボモータとのサーボデータ送受信用の第2割り込みを発生させる手順と、
    前記第2割り込みの周期を所定の複数の区間に分割する手順と、
    前記分割された前記複数の区間のうち所定の区間の開始時に、前記演算手段に対し、前記周辺機器を制御するための第3割り込みを発生させる手順と
    を実行させることを特徴とする工作機械の制御プログラム。
JP2009251076A 2009-10-30 2009-10-30 数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム Pending JP2011096114A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009251076A JP2011096114A (ja) 2009-10-30 2009-10-30 数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009251076A JP2011096114A (ja) 2009-10-30 2009-10-30 数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム

Publications (1)

Publication Number Publication Date
JP2011096114A true JP2011096114A (ja) 2011-05-12

Family

ID=44112928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009251076A Pending JP2011096114A (ja) 2009-10-30 2009-10-30 数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム

Country Status (1)

Country Link
JP (1) JP2011096114A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020060962A (ja) * 2018-10-10 2020-04-16 東洋電機製造株式会社 制御演算装置および制御システム
JP2020061015A (ja) * 2018-10-11 2020-04-16 ファナック株式会社 数値制御装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195205A (ja) * 1990-11-22 1992-07-15 Fanuc Ltd Cnc装置のプロブラム実行方式
JPH103307A (ja) * 1996-06-17 1998-01-06 Fanuc Ltd 数値制御装置
JP2004206511A (ja) * 2002-12-26 2004-07-22 Fanuc Ltd 数値制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195205A (ja) * 1990-11-22 1992-07-15 Fanuc Ltd Cnc装置のプロブラム実行方式
JPH103307A (ja) * 1996-06-17 1998-01-06 Fanuc Ltd 数値制御装置
JP2004206511A (ja) * 2002-12-26 2004-07-22 Fanuc Ltd 数値制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020060962A (ja) * 2018-10-10 2020-04-16 東洋電機製造株式会社 制御演算装置および制御システム
JP2020061015A (ja) * 2018-10-11 2020-04-16 ファナック株式会社 数値制御装置
US11287797B2 (en) 2018-10-11 2022-03-29 Fanuc Corporation Numerical control device

Similar Documents

Publication Publication Date Title
US7343437B2 (en) Synchronization method and control system for the time synchronization of slave units and a synchronizable slave unit
JP4973792B1 (ja) 演算ユニット、出力制御方法、およびプログラム
EP3076293A2 (en) Control apparatus
KR101618537B1 (ko) 통신 장치, 통신 시스템 및 동기 제어 방법
EP3026515A1 (en) Programmable controller system and controller therefor
US9319237B2 (en) Method and device for controlling a bus system and a corresponding bus system
CN108398916B (zh) 控制***以及脉冲输出装置
JP2016194830A (ja) 制御装置
JP4241343B2 (ja) 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
JP2016194831A (ja) 制御装置
JP2019101480A (ja) 制御装置および制御方法
EP3940998A1 (en) Control system, apparatus, and control method
JP2006350768A (ja) モーションコントロールシステム
CN106576038A (zh) 网络***、时间主站点、以及时间从站点
JP2011096114A (ja) 数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム
US9677920B2 (en) Automation device and method for reducing jitter
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
JP6429842B2 (ja) Plc位置決定システムにおける軸毎の制御周期独立割当方法
JP5067670B2 (ja) マシンコントローラシステム
JP5837146B1 (ja) 外部入力信号の取り込み時間を短縮した数値制御システム
JP2007050812A (ja) 負荷制御システム、通信制御ユニットおよび負荷制御方法
JP5763961B2 (ja) 通信装置、通信システム、通信装置の制御方法およびプログラム
JP2019133206A (ja) モータ駆動システム、モータ制御システムおよび自走ロボット
TWI735401B (zh) 通信裝置、通信系統、通信方法及程式
JP6587566B2 (ja) 半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20120215

Free format text: JAPANESE INTERMEDIATE CODE: A621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130802