(57)【特許請求の範囲】
【請求項１】
数値制御装置と複数のＩＯユニットとをチェーン接続し、前記数値制御装置と前記ＩＯユニットとをピアツーピア通信でＤＩ／ＤＯ信号の授受を行うＩＯユニットと通信を行う数値制御装置において、
所定周期毎に信号を生成するタイマ回路と、
前記タイマ回路で生成された信号を所定の数までカウントするカウンタ部と、
前記カウンタ部のカウント値毎にＤＩ／ＤＯ信号を転送するＩＯユニットを設定するＩＯユニット転送順序設定部と、
前記複数のＩＯユニットをＤＩ／ＤＯ信号の転送周期毎のグループに設定するＩＯユニット転送周期グループ設定部と、
前記ＩＯユニット転送周期グループ設定部で設定された内容に基づき前記ＩＯユニット転送順序設定部の設定を自動的に行う自動設定部と、を備え、
前記カウンタ部のカウント値に応じて前記ＩＯユニット転送順序設定部に設定されたＩＯユニットのＤＩ／ＤＯ信号を転送し、
前記ＩＯユニット転送周期グループ設定部に設定される情報は前記数値制御装置からの距離に応じた前記ＩＯユニットの順序情報を含み、前記自動設定部は前記順序情報に基づき、前記ＩＯユニット転送順序設定部に設定することを特徴とするＩＯユニットと通信を行う数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置（ＣＮＣ）と工作機械との間でＤＩ／ＤＯ信号（入力信号／出力信号）の入出力を行うために複数台接続された外部信号入出力用ユニット（ＩＯユニット）と通信を行う数値制御装置に関する。
【背景技術】
【０００２】
マスタである数値制御装置（ＣＮＣ）と工作機械との間でＤＩ／ＤＯ信号（入力信号／出力信号）の入出力を行うために、スレーブである外部信号入出力用ユニット（ＩＯユニット）を前記数値制御装置に対して複数台接続する構成がとられている（図１参照）。通常、数値制御装置とＩＯユニット間では、ＤＩ／ＤＯ信号の転送が行われている。数値制御装置では一定時間内に所定の処理を行う必要があるので、このＤＩ／ＤＯ信号の転送周期は一定であることが望ましく、固定周期の時分割で全てのＩＯユニットに対して転送する、といった手法がとられる場合が多い（図２参照）。
【０００３】
特許文献１には、マスタと複数のＩＯユニットを１つ以上の通信回線で接続する技術が開示されている。また、特許文献２には、１つのマスタとデータ更新を早く行う必要のある複数台のスレーブＡ群およびデータ更新が遅くてもよい複数台のスレーブＢ群とが同一の通信ループ上に接続され、かつサイクリックにデータの転送を行い、前記スレーブＡ群の必要とされるデータ更新レートにシリアル通信の周期を設定し、その整数倍の周期で前記スレーブＢ群のデータ更新を行うネットワークシステムのデータフレーム構成において、１周期内でマスタからスレーブＡ群とスレーブＢ群の一部へ送信されるコマンドデータを結合した１つのデータフィールドを構成するとともに、マスタへ返信されるレスポンスデータについても結合した１つのデータフィールドを構成し、前記データフィールドの先頭に、該当するスレーブのアドレスをビット単位で示すヘッダーフィールドを付加し、このアドレス領域に示されたスレーブのデータをあらかじめ取り決めした順序で結合して、ヘッダーフィールドのビット長のアドレス領域のみの構成で、データフィールドに含まれるスレーブデータの抽出を可能したことを特徴としたシリアル通信のデータフレーム構成方法が開示されている（図３，図４，図５参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３７２５５３０号公報
【特許文献２】特許第４０１９９８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
チェーン式結線のピアツーピア通信（マスタとスレーブの一対一通信）を用いて、固定周期の時分割による転送を行う場合、転送周期と信号数はトレードオフの関係にある。転送能力を超えてＤＩ／ＤＯ信号を増加させるには、転送周期を落とす必要があるので信号の応答性が低下してしまうが、反対に信号の応答性を優先して転送周期を短くすると信号数が少なくなってしまうという問題がある（図２参照）（特許文献１参照）。
【０００６】
特許文献１の上記問題を解決する技術として特許文献２が公知である。しかしながら、特許文献２に開示されるこれはループ式結線方法によるブロードキャスト通信（一斉送信）における解決手段であるため、チェーン式結線のピアツーピア通信にそのまま適用することはできない。特にチェーン式結線のピアツーピア通信では、マスタから遠いスレーブほど返信に時間がかかるという性質が一般的にあり（図６参照）、遠いスレーブと多く通信をすればするほど、返信待ちの時間が増大し帯域を無駄に消費してしまうという問題があり、特許文献２に開示される技術では、この問題を解決できない（図７参照）。
【０００７】
そこで、本発明は、マスタから遠いスレーブほど返信に時間がかかり、遠いスレーブと多く通信をすればするほど、返信待ちの時間が増大し帯域を無駄に消費してしまうという問題を解決することが可能なＩＯユニットと通信を行う数値制御装置を提供することを課題とする。
【課題を解決するための手段】
【０００８】
本願の請求項１に係る発明は、数値制御装置と複数のＩＯユニットとをチェーン接続し、前記数値制御装置と前記ＩＯユニットとをピアツーピア通信でＤＩ／ＤＯ信号の授受を行うＩＯユニットと通信を行う数値制御装置において、所定周期毎に信号を生成するタイマ回路と、前記タイマ回路で生成された信号を所定の数までカウントするカウンタ部と、前記カウンタ部のカウント値毎にＤＩ／ＤＯ信号を転送するＩＯユニットを設定するＩＯユニット転送順序設定部と、前記複数のＩＯユニットをＤＩ／ＤＯ信号の転送周期毎のグループに設定するＩＯユニット転送周期グループ設定部と、前記ＩＯユニット転送周期グループ設定部で設定された内容に基づき前記ＩＯユニット転送順序設定部の設定を自動的に行う自動設定部と、を備え、前記カウンタ部のカウント値に応じて前記ＩＯユニット転送順序設定部に設定されたＩＯユニットのＤＩ／ＤＯ信号を転送し、前記ＩＯユニット転送周期グループ設定部に設定される情報は前記数値制御装置からの距離に応じた前記ＩＯユニットの順序情報を含み、前記自動設定部は前記順序情報に基づき、前記ＩＯユニット転送順序設定部に設定することを特徴とするＩＯユニットと通信を行う数値制御装置である。
【発明の効果】
【０００９】
本発明により、マスタから遠いスレーブほど返信に時間がかかり、遠いスレーブと多く通信をすればするほど、返信待ちの時間が増大し帯域を無駄に消費してしまうという問題を解決することが可能なＩＯユニットと通信を行う数値制御装置を提供できる。
【図面の簡単な説明】
【００１０】
【図１】数値制御装置と１７台のＩＯユニットをチェーン結合した構成を説明する図である。
【図２】図１に示される数値制御装置と各ＩＯユニットとの間で行われるチェーン結合ピアツーピア通信を説明する図である。
【図３】従来技術のシリアル通信のデイジーチェーン接続を説明する図である。
【図４】従来技術の１周期のデータフレーム構成図である。
【図５】従来技術のアドレス領域を付加したデータフレームのデータ構成図である。
【図６】チェーン式結線のピアツーピア通信では、マスタから遠いスレーブほど返信に時間がかかるという性質があることを説明する図である。
【図７】マスタから近いスレーブとの通信が多いと転送周期中に占める空き時間が大きく、マスタから遠いスレーブとの通信が多いと転送周期中に占める空き時間が小さいことを説明する図である。
【図８】数値制御装置と複数のＩＯユニットとをチェーン式結線しピアツーピア通信で信号の転送を行う場合、転送周期毎に数値制御装置から近いＩＯユニットと遠いＩＯユニットを組み合わせて設定することを説明する図である。
【図９】本発明の実施形態を説明する図である。
【図１０】図９に示される数値制御装置と各ＩＯユニットとの間で行われるチェーン結合ピアツーピア通信を説明する図である。
【図１１】本発明の処理を説明するフロー図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面と共に説明する。  
図８は数値制御装置と複数のＩＯユニットとをチェーン式結線しピアツーピア通信で信号の転送を行う場合、転送周期毎に数値制御装置から近いＩＯユニットと遠いＩＯユニットを組み合わせて設定することを説明する図である。図９は本発明の実施形態を説明する図である。図１０は図９に示される数値制御装置と各ＩＯユニットとの間で行われるチェーン結合ピアツーピア通信を説明する図である。図１１は本発明の処理を説明するフロー図である。
【００１２】
まずユーザは、図示しない工作機械を制御する数値制御装置（ＣＮＣ）２０に接続されるＩＯユニット（１〜１７）について、要求される応答性が高いＤＩ／ＤＯ信号を持つスレーブと、要求される応答性が低いＤＩ／ＤＯ信号を持つスレーブに分けて、これを数値制御装置２０のテーブル回路２１に設定する。  
数値制御装置２０は、周期Ｔの信号を生成するタイマ回路２３と、周期ＴでＤＩ／ＤＯ信号の転送が何回行われたかをｎ回までカウントするカウンタ回路２２と、カウンタ回路２２のカウント値に対してどのＩＯユニットと信号の転送を行うかを設定可能なテーブル回路２１を備えている。数値制御装置２０は、タイマ回路２３から出力される周期Ｔの信号をトリガとして、カウンタ回路２２のカウント値をカウントアップするとともに、そのカウント値とテーブル回路を照合することで、信号の転送を行うＩＯユニットを決定し数値制御装置２０との間で信号の転送を行うことができる。
【００１３】
数値制御装置２０の記憶装置（図示しない）に格納されたプログラムは、ユーザの設定に対して、このテーブル回路を以下のように設定していく。  
このテーブル回路２１の設定方法として、まず短い転送周期ＴのＩＯユニットについて、カウンタ回路２２の値が１〜ｎの全てのカウント値で転送を行うようにテーブル回路２１へ設定する。次に、残っている長い転送周期ｎＴのＩＯユニットのうちで、数値制御装置２０に最も近いＩＯユニットと最も遠いＩＯユニットを組み合わせて、信号の転送を行うカウンタ回路２２のカウント値を割り当てていく。
【００１４】
以下、図８を参照しながら説明する。例えば、１〜１７の通し番号が与えられた１７個のＩＯユニットに対して、ＩＯユニット１のみ短い転送周期Ｔ（Ｔ＝０．５ｍｓ）で転送を行い、残りの２〜１７を長い転送周期ｎＴ（ｎＴ＝２ｍｓ）で行う場合、ＩＯユニット１はカウンタ回路２２のカウント値１〜４の全てで転送を行うように設定する。
【００１５】
一方、残ったＩＯユニット２〜１７は、数値制御装置２０に最も近いＩＯユニットであるＩＯユニット２と数値制御装置２０に最も遠いユニットであるＩＯユニット１７を、ともにカウンタ回路２２のカウント値が１の時に信号を転送（つまり通信）するように設定する。ここで、各ＩＯユニット１〜１７が数値制御装置２０に対して「近い」あるいは「遠い」とは、チェーン式結線上で数値制御装置２０に接続された順番である。
【００１６】
次に、残ったうちで数値制御装置２０に最も近いＩＯユニットと遠いＩＯユニットのＩＯユニット３とＩＯユニット１６を、ともにカウンタ回路２２のカウント値が２の時に通信するように設定する。このように、残っているＩＯユニットで近いものと遠いものを組み合わせてカウンタ回路２２の各カウント値（１〜４）に設定しカウンタ回路２２のカウント値をカウントアップしながら（カウンタ回路２２のカウント値が４になったら次のカウント値でカウンタ回路２２のカウント値は１に戻る）、全てのＩＯユニットが設定できるまで繰り返す。このように設定を行うことで、数値制御装置２０に最も遠いＩＯユニットと最も近いＩＯユニットが組み合わされて同一転送周期（同一の転送区間）に設定される。
【００１７】
上述した各ＩＯユニットと数値制御装置２０との間の信号の転送のタイミングの設定方法により、図８に示されるように、カウンタ回路２２のカウント値が１の転送区間（短い転送周期）で信号の転送が行われるＩＯユニットは、ＩＯユニット１、ＩＯユニット２、ＩＯユニット６、ＩＯユニット１３、ＩＯユニット１７であり、カウンタ回路２２のカウント値が２の転送区間（短い転送周期）で信号の転送が行われるＩＯユニットは、ＩＯユニット１、ＩＯユニット３、ＩＯユニット７、ＩＯユニット１２、ＩＯユニット１６であり、カウンタ回路２２のカウント値が３の転送区間（短い転送周期）で信号の転送が行われるＩＯユニットは、ＩＯユニット１、ＩＯユニット４、ＩＯユニット８、ＩＯユニット１１、ＩＯユニット１５であり、カウンタ回路２２のカウント値が４の転送区間（短い転送周期）で信号の転送が行われるＩＯユニットは、ＩＯユニット１、ＩＯユニット５、ＩＯユニット９、ＩＯユニット１０、ＩＯユニット１４である。
【００１８】
上述したように、ＩＯユニット１のみを短い転送周期Ｔ（０．５ｍｓ）、その他を長い転送周期ｎＴ（２ｍｓ）としたときに、ＩＯユニット２とＩＯユニット１７、ＩＯユニット３とＩＯユニット１６、ＩＯユニット４とＩＯユニット１５、・・・、と、最も近いＩＯユニットと最も遠いＩＯユニットとをそれぞれ順番に組み合わせて、各転送周期に割り当てて１７個のＩＯユニットの転送周期（転送区間）を設定することで、数値制御装置２０への返信にかかる待ち時間も長いものと短いものが組み合わされることになり、結果的に各転送周期における空き時間が平均化される。空き時間を平均化することで、短い転送周期のＩＯユニットの信号数やイベントドリブンな通信を無駄なく追加することができる（図１０参照）。
【００１９】
図８，図９，図１０を用いて説明した一例を、図１１を用いて一般化して説明する。ここでは、数値制御装置２０をマスタ、ＩＯユニットをスレーブとして説明する。  
短い転送周期をＴ、長い転送周期をｎＴとする。長い転送周期ｎＴはｎ個の短い転送周期Ｔの転送区間Ｔ1、Ｔ2、…Ｔn（転送区間Ｔ1〜Ｔnの長さは短い転送周期Ｔに等しい）から構成され、ｎＴ＝Ｔ1＋Ｔ2＋…＋Ｔnである。スレーブ数をｍ個として、それぞれのスレーブを、マスタから近い順にＳ1、Ｓ2、…、Ｓmとする。スレーブ全体の集合は｛Ｓ1，Ｓ2，…，Ｓm｝となる。
【００２０】
（ＳＴ１）
ユーザは、スレーブＳ1，Ｓ2，…，Ｓmのそれぞれに対して、短い転送周期Ｔと長い転送周期ｎＴのどちらで転送を行うかを数値制御装置（マスタ）２０に対して設定する。ここでユーザにより、短い転送周期Ｔで信号の転送を行うように設定された（ｍ−ｘ）個のスレーブを｛Ｓα1，Ｓα2，…，Ｓαm-x｝、長い転送周期ｎＴで信号の転送を行うように設定されたｘ個のスレーブを｛Ｓξ1，Ｓξ2，…，Ｓξx｝とする。｛Ｓ1，Ｓ2，…，Ｓm｝＝｛Ｓα1，Ｓα2，…，Ｓαm-x｝＋｛Ｓξ1，Ｓξ2，…，Ｓξx｝である。なお、マスタから近い順にＳξ1，Ｓξ2，…，Ｓξxとする。なお、（ＳＴ１）は特許請求の範囲の記載の「前記複数のＩＯユニットをＤＩ／ＤＯ信号の転送周期毎のグループに設定するＩＯユニット転送周期グループ設定部」に対応する。また、「マスタから近い順にＳξ1，Ｓξ2，…，Ｓξxとする。」は特許請求の範囲の記載の「ＩＯユニット転送周期グループ設定部に設定される情報は前記数値制御装置からの距離に応じた前記ＩＯユニットの順序情報を含み、」に対応する。
【００２１】
（ＳＴ２）
数値制御装置２０のプログラムは、短い転送周期Ｔのスレーブ｛Ｓα1，Ｓα2，…，Ｓαm-x｝が、｛Ｔ1，Ｔ2，…，Ｔn｝の全てのＴk（ｋ＝１〜ｎ）において転送されるように、数値制御装置２０の内部のテーブル回路２１を設定する。
【００２２】
（ＳＴ３）
数値制御装置２０のプログラムは、長い転送周期ｎＴのスレーブで、未だテーブル回路２１に設定されていないスレーブの集合｛Ｓξ1，Ｓξ2，…，Ｓξx｝の個数ｘについて
（ａ）  ｘ＞２ｎ
（ｂ）  ｘ＝２ｎ
（ｃ）  ｎ＜ｘ＜２ｎ
（ｄ）  ｘ＝ｎ
（ｅ）  ｘ＜ｎ
のいずれであるかを判定する。判定結果に従い、次の手順（ＳＴ４ａ）〜（ＳＴ４ｅ）に進む。
【００２３】
（ＳＴ４ａ）
（ａ）  ｘ＞２ｎ  の場合、数値制御装置２０のプログラムは、まずＳξ1とＳξxが転送区間Ｔ1転送されるように数値制御装置２０の内部のテーブル回路２１を設定する。次にＳξ2とＳξx-1が転送区間Ｔ2で転送されるように、数値制御装置内部のテーブル回路２１を設定する。これをＴ1からＴnまで順次繰り返すと、未だテーブル回路２１に設定されていないスレーブが（ｘ−２ｎ）個残ることになる。この残ったスレーブの集合｛Ｓξn+1，Ｓξn+2，…，Ｓξx-n｝を新たに｛Ｓξ1，Ｓξ2，…，Ｓξx｝とし、手順（ＳＴ３）に戻る。
【００２４】
（ＳＴ４ｂ）
（ｂ）  ｘ＝２ｎ  の場合、数値制御装置２０のプログラムは、まずＳξ1とＳξxが転送区間Ｔ1で転送されるように数値制御装置２０の内部のテーブル回路２１を設定する。次にＳξ2とＳξx-1が転送周期Ｔ2で転送されるように、数値制御装置２０の内部のテーブル回路２１を設定する。これをＴ1からＴnまで順次繰り返すと、｛Ｓ1，Ｓ2，…，Ｓm｝の全てのスレーブがテーブル回路２１に設定されることになる。
【００２５】
（ＳＴ４ｃ）
（ｃ）  ｎ＜ｘ＜２ｎ  の場合、数値制御装置２０のプログラムは、まずＳξ1とＳξxが転送区間Ｔ1で転送されるように数値制御装置２０の内部のテーブル回路２１を設定する。次にＳξ2とＳξx-1が転送区間Ｔ2で転送されるように、数値制御装置２０の内部のテーブル回路２１を設定する。これをＴ1からＴx-nまで順次繰り返すと、未だテーブル回路２１に設定されていないスレーブが（ｘ−ｎ）個残ることになる。この残ったスレーブの集合｛Ｓξx-n+1、Ｓξx-n+2、…、Ｓξx｝に対し、それぞれ転送区間｛Ｔx-n+1、Ｔx-n+2、…、Ｔn｝で転送されるように、プログラムが順次テーブル回路２１に設定していくと、｛Ｓ1，Ｓ2，…，Ｓm｝の全てのスレーブがテーブル回路２１に設定されることになる。
【００２６】
（ＳＴ４ｄ）
（ｄ）  ｘ＝ｎ  の場合、数値制御装置２０のプログラムは、まずＳξ1が転送区間Ｔ1で転送されるように数値制御装置２０の内部のテーブル回路２１を設定する。次にＳξ2が転送周期Ｔ2で転送されるように、数値制御装置２０の内部のテーブル回路２１を設定する。これをＴ1からＴnまで順次繰り返すと、全てのスレーブがテーブル回路２１に設定されることになる。
【００２７】
（ＳＴ４ｅ）
（ｅ）  ｘ＜ｎの場合、数値制御装置２０のプログラムは、まずＳξ1が転送区間Ｔ1で転送されるように数値制御装置２０の内部のテーブル回路２１を設定する。次にＳξ2が転送区間Ｔ2で転送されるように、数値制御装置２０の内部のテーブル回路２１を設定する。これを転送区間Ｔ1からＴxまで順次繰り返すと、全てのスレーブがテーブル回路２１に設定されることになる。
【００２８】
なお、（ＳＴ２）〜（ＳＴ４ａ）〜（ＳＴ４ｅ）は、特許請求の範囲の記載の「前記ＩＯユニット転送周期グループ設定部で設定された内容に基づき前記ＩＯユニット転送順序設定部の設定を自動的に行う自動設定部」および「前記自動設定部は前記順序情報に基づき、前記ＩＯユニット転送順序設定部に設定する」に対応する。
【符号の説明】
【００２９】
２０  数値制御装置
２１  テーブル回路
２２  カウンタ回路
２３  タイマ回路
Ｔ  短い転送周期
ｎＴ  長い転送周期
【図１】
0005570556.tif 000002
【図２】
0005570556.tif 000003
【図３】
0005570556.tif 000004
【図４】
0005570556.tif 000005
【図５】
0005570556.tif 000006
【図８】
0005570556.tif 000007
【図９】
0005570556.tif 000008
【図１１】
0005570556.tif 000009
【図６】
0005570556.tif 000010
【図７】
0005570556.tif 000011
【図１０】
0005570556.tif 000012