(57)【要約】【課題】サポートされている通信方式がＩＯデバイス毎に異なる場合であっても簡易な構成で各ＩＯデバイスと通信可能な数値制御装置を得ること。【解決手段】ＩＯデバイスへの数値制御を行うプロセッサと、プロセッサとＩＯデバイスとの間のトランザクションを制御するＩＯ制御部と、を備え、プロセッサは、ＩＯ制御部に、接続確認を第１の通信方式で送信させ、応答が無かったＩＯデバイスに対して接続確認を第２の通信方式で送信させ、接続確認に対する応答の有無に基づいて、各ＩＯデバイスがサポートしている通信方式を判定し、全てのＩＯデバイスが第１の通信方式をサポートしている場合には、第１の通信方式で全てのＩＯデバイスとの間の通信を行ない、何れかのＩＯデバイスが第１の通信方式をサポートせず第２の通信方式をサポートしている場合には、第２の通信方式で全てのＩＯデバイスとの間の通信を行なう。【選択図】図２
2014222444.tif 000002
【特許請求の範囲】
【請求項１】
リモートＩＯデバイスへの数値制御を実行するプロセッサと、
前記プロセッサおよび前記リモートＩＯデバイスに接続されるとともに、前記プロセッサと前記リモートＩＯデバイスとの間のトランザクションを制御するリモートＩＯ制御部と、
を備え、
前記プロセッサは、前記リモートＩＯ制御部に、接続確認の第１のトランザクションを第１の通信方式で前記リモートＩＯデバイスのそれぞれへ送信させ、
前記第１のトランザクションに対する応答があったリモートＩＯデバイスに対しては第１の通信方式をサポートしていると判定し、
前記第１のトランザクションに対する応答が無かったリモートＩＯデバイスに対しては接続確認の第２のトランザクションを第２の通信方式で前記リモートＩＯ制御部に送信させ、
前記第２のトランザクションに対する応答があったリモートＩＯデバイスに対しては第２の通信方式をサポートしていると判定し、
全てのリモートＩＯデバイスが前記第１の通信方式をサポートしている場合には、前記リモートＩＯ制御部に、前記第１の通信方式で全ての前記リモートＩＯデバイスとの間の通信を行なわせ、
何れかのリモートＩＯデバイスが前記第１の通信方式をサポートせず前記第２の通信方式をサポートしている場合には、前記リモートＩＯ制御部に、前記第２の通信方式で全ての前記リモートＩＯデバイスとの間の通信を行なわせることを特徴とする数値制御装置。
【請求項２】
前記第１の通信方式は、第１のプロトコルであり、
前記第２の通信方式は、第２のプロトコルであり、
前記第１のプロトコルは、前記第２のプロトコルをサポートした前記第２のプロトコルよりも新しいプロトコルである、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記第１の通信方式は、第１のボーレートであり、
前記第２の通信方式は、前記第１のボーレートよりも低速な第２のボーレートである、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記プロセッサは、
前記第２のトランザクションに対する応答が無かったリモートＩＯデバイスに対しては接続確認の第３のトランザクションを第３の通信方式で前記リモートＩＯ制御部に送信させ、
前記第３のトランザクションに対する応答があったリモートＩＯデバイスに対しては第３の通信方式をサポートしていると判定し、
何れかのリモートＩＯデバイスが前記第１および第２の通信方式をサポートせず前記第３の通信方式をサポートしている場合には、前記リモートＩＯ制御部に、前記第３の通信方式で全ての前記リモートＩＯデバイスとの間の通信を行なわせることを特徴とする請求項１〜３のいずれか１つに記載の数値制御装置。
【請求項５】
リモートＩＯデバイスへの数値制御を実行するプロセッサと、
前記プロセッサおよび前記リモートＩＯデバイスに接続されるとともに、前記プロセッサと前記リモートＩＯデバイスとの間のトランザクションを制御するリモートＩＯ制御部と、
を備えた数値制御装置の前記プロセッサが、前記リモートＩＯ制御部に、接続確認の第１のトランザクションを第１の通信方式で前記リモートＩＯデバイスのそれぞれへ送信させる第１の送信ステップと、
前記プロセッサが、前記第１のトランザクションに対する応答があったリモートＩＯデバイスに対しては第１の通信方式をサポートしていると判定する第１の判定ステップ、
前記プロセッサが、前記第１のトランザクションに対する応答が無かったリモートＩＯデバイスに対しては接続確認の第２のトランザクションを第２の通信方式で前記リモートＩＯ制御部に送信させる第２の送信ステップと、
前記プロセッサが、前記第２のトランザクションに対する応答があったリモートＩＯデバイスに対しては第２の通信方式をサポートしていると判定する第２の判定ステップと、
全てのリモートＩＯデバイスが前記第１の通信方式をサポートしている場合には、前記プロセッサが、前記リモートＩＯ制御部に、前記第１の通信方式で全ての前記リモートＩＯデバイスとの間の通信を行なわせる第１の通信ステップと、
何れかのリモートＩＯデバイスが前記第１の通信方式をサポートせず前記第２の通信方式をサポートしている場合には、前記プロセッサが、前記リモートＩＯ制御部に、前記第２の通信方式で全ての前記リモートＩＯデバイスとの間の通信を行なわせる第２の通信ステップと、
を含むことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＩＯデバイスと通信可能な数値制御装置に関する。
【背景技術】
【０００２】
制御システムは、数値制御装置が、複数のＩＯデバイスと接続されることによって構成されている。制御システムでは、数値制御装置が、種々の通信方式で通信を行う複数のＩＯデバイスと接続されることがある。
【０００３】
従来の制御システムの１つとして、数値制御装置が、ＩＯデバイスに接続されるＩＯ装置と、ＩＯデバイスを制御する制御装置と、を有しているものがある。このような数値制御装置は、同一の通信方式で通信を行うＩＯデバイスごとに、通信方式に応じたＩＯ装置が接続され、各ＩＯ装置が、各通信方式を共通の通信方式に変換している。そして、各ＩＯ装置に接続された制御装置が、共通な通信方式でＩＯデバイスを制御している。
【０００４】
上述した制御システムにおいて、新バージョンの通信方式で動作するＩＯデバイスと旧バージョンの通信方式で動作するＩＯデバイスとが混在した状態で数値制御装置に接続される場合がある。このような場合、数値制御装置は、新バージョンの通信方式で動作するＩＯデバイスとは新バージョンのＩＯデバイスのみ利用するメッセージ部を用いて通信し、旧バージョンの通信で動作するＩＯデバイスとは新旧両バージョンで利用するメッセージ部を用いて通信する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−９９１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の技術では、各ＩＯデバイスでサポートされている通信方式がＩＯデバイス毎に異なる場合、通信方式の種類毎にＩＯ制御装置が必要になるという問題点があった。例えば、各ＩＯデバイスでサポートされているプロトコルがＩＯデバイス毎に異なる場合、プロトコルの種類毎にＩＯ制御装置が必要になる。
【０００７】
本発明は、上記に鑑みてなされたものであって、各ＩＯデバイスでサポートされている通信方式がＩＯデバイス毎に異なる場合であっても、簡易な構成で各ＩＯデバイスと通信が可能な数値制御装置および通信方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、リモートＩＯデバイスへの数値制御を実行するプロセッサと、前記プロセッサおよび前記リモートＩＯデバイスに接続されるとともに、前記プロセッサと前記リモートＩＯデバイスとの間のトランザクションを制御するリモートＩＯ制御部と、を備え、前記プロセッサは、前記リモートＩＯ制御部に、接続確認の第１のトランザクションを第１の通信方式で前記リモートＩＯデバイスのそれぞれへ送信させ、前記第１のトランザクションに対する応答があったリモートＩＯデバイスに対しては第１の通信方式をサポートしていると判定し、前記第１のトランザクションに対する応答が無かったリモートＩＯデバイスに対しては接続確認の第２のトランザクションを第２の通信方式で前記リモートＩＯ制御部に送信させ、前記第２のトランザクションに対する応答があったリモートＩＯデバイスに対しては第２の通信方式をサポートしていると判定し、全てのリモートＩＯデバイスが前記第１の通信方式をサポートしている場合には、前記リモートＩＯ制御部に、前記第１の通信方式で全ての前記リモートＩＯデバイスとの間の通信を行なわせ、何れかのリモートＩＯデバイスが前記第１の通信方式をサポートせず前記第２の通信方式をサポートしている場合には、前記リモートＩＯ制御部に、前記第２の通信方式で全ての前記リモートＩＯデバイスとの間の通信を行なわせることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、各ＩＯデバイスでサポートされている通信方式がＩＯデバイス毎に異なる場合であっても、簡易な構成で各ＩＯデバイスと通信が可能になるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態１に係る数値制御装置の構成を示す図である。
【図２】図２は、実施の形態１に係る数値制御装置の動作処理手順を示すフローチャートである。
【図３】図３は、リモートＩＯデバイスがともに新プロトコルをサポートしている場合の接続確認処理を説明するための図である。
【図４】図４は、リモートＩＯデバイスが全て新ＩＯデバイスである場合に使用されるプロトコルを説明するための図である。
【図５】図５は、リモートＩＯデバイスがともに旧プロトコルのみをサポートしている場合の接続確認処理を説明するための図である。
【図６】図６は、リモートＩＯデバイスが全て旧ＩＯデバイスである場合に使用されるプロトコルを説明するための図である。
【図７】図７は、一方のリモートＩＯデバイスが新旧プロトコルをサポートし、他方のリモートＩＯデバイスが旧プロトコルのみをサポートしている場合の接続確認処理を説明するための図である。
【図８】図８は、一方のリモートＩＯデバイスが新ＩＯデバイスであり他方のリモートＩＯデバイスが旧ＩＯデバイスである場合に使用されるプロトコルを説明するための図である。
【図９】図９は、プロトコルの種類が３種類である場合の、数値制御装置の動作処理手順を示すフローチャートである。
【図１０】図１０は、実施の形態２に係る数値制御装置の動作処理手順を示すフローチャートである。
【図１１】図１１は、リモートＩＯデバイスがともに高ボーレートをサポートしている場合の接続確認処理を説明するための図である。
【図１２】図１２は、リモートＩＯデバイスが全て新ＩＯデバイスである場合に使用されるボーレートを説明するための図である。
【図１３】図１３は、リモートＩＯデバイスがともに低ボーレートのみをサポートしている場合の接続確認処理を説明するための図である。
【図１４】図１４は、リモートＩＯデバイスが全て旧ＩＯデバイスである場合に使用されるボーレートを説明するための図である。
【図１５】図１５は、一方のリモートＩＯデバイスが高低ボーレートをサポートし、他方のリモートＩＯデバイスが低ボーレートのみをサポートしている場合の接続確認処理を説明するための図である。
【図１６】図１６は、一方のリモートＩＯデバイスが新ＩＯデバイスであり他方のリモートＩＯデバイスが旧ＩＯデバイスである場合に使用されるボーレートを説明するための図である。
【図１７】図１７は、ボーレートの種類が３種類である場合の、数値制御装置の動作処理手順を示すフローチャートである。
【図１８】図１８は、数値制御装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態に係る数値制御装置および通信方法を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、本発明の実施の形態１に係る数値制御装置の構成を示す図である。図１では、数値制御装置１のハードウェア構成を示している。数値制御装置１は、複数のリモートＩＯデバイス（本実施の形態では、リモートＩＯデバイス１１，１２）と物理的および電気的に接続可能なコンピュータなどの装置であり、リモートＩＯデバイス１１，１２を数値制御する。
【００１３】
数値制御装置１は、リモートＩＯインターフェース１０を介してリモートＩＯデバイス（ＩＯユニット）１１，１２と接続されている。数値制御装置１とリモートＩＯデバイス１１，１２とは、同一の物理層（具体的には、同一の接続形態、同一の電圧規定）によって接続される。
【００１４】
数値制御装置１は、プロセッサ２とリモートＩＯ制御部３とを有している。数値制御装置１では、これらのプロセッサ２とリモートＩＯ制御部３とが内部バスインターフェース８を介して接続されている。
【００１５】
プロセッサ２は、リモートＩＯデバイス１１，１２がサポートしている通信方式を確認するための指示を、リモートＩＯ制御部３に送る。また、プロセッサ２は、リモートＩＯデバイス１１，１２からの応答の有無に基づいて、各リモートＩＯデバイス１１，１２がサポートしている通信方式を判定する。プロセッサ２は、リモートＩＯデバイス１１，１２のそれぞれがサポートしている通信方式に基づいて、リモートＩＯデバイス１１，１２と通信する際に用いる通信方式を決定し、決定した通信方式でリモートＩＯデバイス１１，１２と通信する。
【００１６】
リモートＩＯ制御部３は、プロセッサ２とリモートＩＯデバイス１１，１２との間のトランザクションを制御する。リモートＩＯ制御部３は、プロセッサ２からの指示に従って、リモートＩＯデバイス１１，１２がサポートしている通信方式を確認するためのトランザクション（不可分操作）をリモートＩＯデバイス１１，１２に送る。また、リモートＩＯ制御部３は、プロセッサ２からリモートＩＯデバイス１１，１２へ送る命令を、リモートＩＯデバイス１１，１２で使用する形式に変換する。
【００１７】
本実施の形態における通信方式は、リモートＩＯデバイス１１，１２がサポートしているプロトコルである。なお、通信方式は、リモートＩＯデバイス１１，１２がサポートしているボーレートであってもよい。
【００１８】
つぎに、数値制御装置１の動作処理手順について説明する。図２は、実施の形態１に係る数値制御装置の動作処理手順を示すフローチャートである。ここでは、Ｎ台（Ｎは２以上の自然数）のリモートＩＯデバイスが数値制御装置１に接続されている場合について説明する。
【００１９】
数値制御装置１では、プロセッサ２が、リモートＩＯ制御部３に、新プロトコルを用いた接続確認を行うよう指示する。このとき、プロセッサ２は、接続確認対象となるリモートＩＯデバイス（数値制御装置１に接続されているリモートＩＯデバイス）のＩＤをリモートＩＯ制御部３に送る。まず、リモートＩＯ制御部３は、第ｎ（ここではｎ＝１）のリモートＩＯデバイスに、新プロトコルで接続確認のトランザクションを発行する（ステップＳ１０）。
【００２０】
この後、プロセッサ２は、第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ２０）。応答があった場合（ステップＳ２０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスが新旧プロトコル（新プロトコルおよび旧プロトコル）をサポートしていると判定する（ステップＳ３０）。
【００２１】
一方、応答がない場合（ステップＳ２０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスは、新プロトコルをサポートしていないと判定する（ステップＳ４０）。そして、プロセッサ２は、リモートＩＯ制御部３に、旧プロトコルを用いた接続確認を行うよう指示する。このとき、プロセッサ２は、接続確認対象となるリモートＩＯデバイス（新プロトコルをサポートしていないリモートＩＯデバイス）のＩＤをリモートＩＯ制御部３に送る。これにより、リモートＩＯ制御部３は、新プロトコルをサポートしていないリモートＩＯデバイスに、旧プロトコルで接続確認のトランザクションを発行する（ステップＳ５０）。
【００２２】
この後、プロセッサ２は、旧プロトコルで接続確認のトランザクションが発行された第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ６０）。応答があった場合（ステップＳ６０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスは旧プロトコルのみをサポートしていると判定する（ステップＳ７０）。
【００２３】
応答がなかった場合（ステップＳ６０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスとの間には通信異常（非接続など）があると判定する（ステップＳ８０）。プロセッサ２は、第ｎのリモートＩＯデバイスに対してプロトコルの種類を確認した後、全てのリモートＩＯデバイスに対して接続有無（プロトコルの種類）を確認したかを確認する（ステップＳ９０）。
【００２４】
全てのリモートＩＯデバイスに対して接続有無を確認していなければ（ステップＳ９０、Ｎｏ）、プロセッサ２は、次のリモートＩＯデバイスに対して、ステップＳ１０〜Ｓ９０の処理を繰り返す。具体的には、リモートＩＯ制御部３は、第ｎ（ｎ＝ｎ＋１）（ここではｎ＝２）のリモートＩＯデバイスに、新プロトコルで接続確認のトランザクションを発行する（ステップＳ１０）。
【００２５】
そして、プロセッサ２は、第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ２０）。応答があった場合（ステップＳ２０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスが新旧プロトコルをサポートしていると判定する（ステップＳ３０）。応答がない場合（ステップＳ２０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスが新プロトコルをサポートしていないと判定する（ステップＳ４０）。
【００２６】
リモートＩＯ制御部３は、第ｎのリモートＩＯデバイスが新プロトコルをサポートしていない場合、新プロトコルをサポートしていないリモートＩＯデバイスに、旧プロトコルで接続確認のトランザクションを発行する（ステップＳ５０）。
【００２７】
この後、プロセッサ２は、旧プロトコルで接続確認のトランザクションが発行された第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ６０）。応答があった場合（ステップＳ６０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスは旧プロトコルのみをサポートしていると判定する（ステップＳ７０）。
【００２８】
応答がなかった場合（ステップＳ６０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスとの間には通信異常があると判定する（ステップＳ８０）。プロセッサ２は、第ｎのリモートＩＯデバイスに対してプロトコルの種類を確認した後、全てのリモートＩＯデバイスに対して接続有無を確認したかを確認する（ステップＳ９０）。
【００２９】
全てのリモートＩＯデバイスに対して接続有無を確認していなければ（ステップＳ９０、Ｎｏ）、プロセッサ２は、次のリモートＩＯデバイスに対して、ステップＳ１０〜Ｓ９０の処理を繰り返す。一方、全てのリモートＩＯデバイスに対して接続有無の確認が完了していれば（ステップＳ９０、Ｙｅｓ）、プロセッサ２は、接続有無の確認処理を終了する。
【００３０】
なお、数値制御装置１は、何れの順番で各リモートＩＯデバイスが新プロトコルおよび旧プロトコルの何れをサポートしているかを判定してもよい。数値制御装置１は、例えば、全てのリモートＩＯデバイスに対して順番に新プロトコルをサポートしているか否かを確認し、その後、応答の無かったリモートＩＯデバイスの全てに対して順番に旧プロトコルをサポートしているか否かを確認してもよい。
【００３１】
つぎに、実施の形態１の数値制御装置１における電源投入時の具体的な接続確認動作について説明する。ここでは、以下の（１）〜（３）に示す場合の接続確認動作について説明する。
（１）リモートＩＯデバイス１１，１２がともに新プロトコルおよび旧プロトコルの両方で通信可能な新式の新ＩＯデバイスである場合。
（２）リモートＩＯデバイス１１，１２がともに旧プロトコルのみで通信可能な旧式の旧ＩＯデバイスである場合。
（３）リモートＩＯデバイス１１が新プロトコルおよび旧プロトコルの両方で通信可能な新ＩＯデバイスであり、リモートＩＯデバイス１２が旧プロトコルのみで通信可能な旧ＩＯデバイスである場合。
【００３２】
なお、旧プロトコルで通信する方式は、例えばＨＤＬＣ（High-Level  Data  Link  Control）（ハイレベルデータリンク手順）プロトコルを使用する通信方式である。また、新プロトコルで通信する方式は、例えばＰＲＯＦＩＢＵＳ（Process  Field  Bus）のデータリンク層で用いられるプロトコルを使用する通信方式である。
【００３３】
以下の説明では、新プロトコルおよび旧プロトコルの両方で通信可能な新ＩＯデバイスを、リモートＩＯデバイス１１Ａ，１２Ａとして説明する。また、旧プロトコルのみで通信可能な旧ＩＯデバイスを、リモートＩＯデバイス１１Ｂ，１２Ｂとして説明する。
【００３４】
（１）リモートＩＯデバイス１１，１２が新プロトコルをサポートしている場合
図３は、リモートＩＯデバイスがともに新プロトコルをサポートしている場合の接続確認処理を説明するための図である。
【００３５】
新プロトコルをサポートしている新ＩＯデバイスとしてのリモートＩＯデバイス１１Ａ，１２Ａと、数値制御装置１と、に電源が投入されると、数値制御装置１は、接続状態（何れのリモートＩＯデバイスが何台接続されているか）を確認する。
【００３６】
具体的には、プロセッサ２からリモートＩＯ制御部３に、接続確認の命令が発行される。これにより、リモートＩＯ制御部３は、リモートＩＯデバイスの接続デバイス数と、接続されたリモートＩＯデバイスの接続プロトコルと、を確認するために、全てのデバイスＩＤ（接続確認対象）に対し、接続確認のトランザクションを発行する。デバイスＩＤは、数値制御装置１に設定されているリモートＩＯデバイスのＩＤである。
【００３７】
ここでは、リモートＩＯ制御部３が、最大接続デバイス数である２台のリモートＩＯデバイス１１Ａ，１２Ａに対し、各リモートＩＯデバイス１１Ａ，１２Ａを識別するＩＤ（デバイスＩＤ）であるＩＤ１ａおよびＩＤ２ａを指定する。
【００３８】
まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ａに対して接続確認のトランザクションを発行する（ｓ１）。このとき、リモートＩＯ制御部３は、トランザクションに新プロトコルを使用するとともにＩＤ１ａを指定する。
【００３９】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ａで示されるリモートＩＯデバイス１１Ａに対し、新プロトコルによるトランザクションを発行する。
【００４０】
ここでのリモートＩＯデバイス１１Ａは、新旧プロトコルによる通信が可能なので、リモートＩＯデバイス１１Ａは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ２）。
【００４１】
リモートＩＯ制御部３は、ＩＤ１ａの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ａが新旧プロトコルをサポートする新ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【００４２】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ａに対して接続確認のトランザクションを発行する（ｓ３）。このとき、リモートＩＯ制御部３は、トランザクションに新プロトコルを使用するとともにＩＤ２ａを指定する。
【００４３】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ａで示されるリモートＩＯデバイス１２Ａに対し、新プロトコルによるトランザクションを発行する。
【００４４】
ここでのリモートＩＯデバイス１２Ａは、新旧プロトコルによる通信が可能なので、リモートＩＯデバイス１２Ａは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ４）。
【００４５】
リモートＩＯ制御部３は、ＩＤ２ａの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１２Ａが新旧プロトコルをサポートする新ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【００４６】
以上の動作により、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１１Ａ，１２Ａが、それぞれ新旧プロトコルによって通信可能な新ＩＯデバイスであることを認識する。
【００４７】
図４は、リモートＩＯデバイスが全て新ＩＯデバイスである場合に使用されるプロトコルを説明するための図である。図４における第１のリモートＩＯデバイスは、リモートＩＯデバイス１１Ａであり、第２のリモートＩＯデバイスは、リモートＩＯデバイス１２Ａである。
【００４８】
リモートＩＯデバイス１１Ａ，１２Ａからは、新プロトコルに対する応答があったので、プロセッサ２は、以後の通信において新プロトコルでリモートＩＯデバイス１１Ａ，１２Ａと通信を行うことを決定する。
【００４９】
これにより、プロセッサ２は、以後のリモートＩＯデバイス１１Ａ，１２Ａとの通常通信を、両方のリモートＩＯデバイス１１Ａ，１２Ａで通信可能かつ高性能で通信可能な新プロトコルによって実行する。
【００５０】
（２）リモートＩＯデバイス１１，１２が旧プロトコルのみをサポートしている場合
図５は、リモートＩＯデバイスがともに旧プロトコルのみをサポートしている場合の接続確認処理を説明するための図である。
【００５１】
旧プロトコルのみをサポートしている旧ＩＯデバイスとしてのリモートＩＯデバイス１１Ｂ，１２Ｂと、数値制御装置１と、に電源が投入されると、数値制御装置１は、接続状態（何れのリモートＩＯデバイスが何台接続されているか）を確認する。
【００５２】
具体的には、プロセッサ２からリモートＩＯ制御部３に、接続確認の命令が発行される。これにより、リモートＩＯ制御部３は、リモートＩＯデバイスの接続デバイス数と、接続されたリモートＩＯデバイスの接続プロトコルと、を確認するために、全てのデバイスＩＤ（接続確認対象）に対し、接続確認のトランザクションを発行する。
【００５３】
ここでは、リモートＩＯ制御部３が、最大接続デバイス数である２台のリモートＩＯデバイス１１Ｂ，１２Ｂに対し、各リモートＩＯデバイス１１Ｂ，１２Ｂを識別するＩＤであるＩＤ１ｂおよびＩＤ２ｂを指定する。
【００５４】
まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ｂに対して接続確認のトランザクションを発行する（ｓ１１）。このとき、リモートＩＯ制御部３は、トランザクションに新プロトコルを使用するとともにＩＤ１ｂを指定する。
【００５５】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ｂで示されるリモートＩＯデバイス１１Ｂに対し、新プロトコルによるトランザクションを発行する。
【００５６】
ここでのリモートＩＯデバイス１１Ｂは、新プロトコルによる通信が不可能なので、リモートＩＯデバイス１１Ｂは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識できない。従って、リモートＩＯデバイス１１Ｂは、リモートＩＯ制御部３に対し、応答トランザクションを返信することはない（ｓ１２）。
【００５７】
このため、リモートＩＯ制御部３は、決められた時間内に応答トランザクションを受信できない。したがって、リモートＩＯ制御部３は、ＩＤ１ｂに対する応答の受信をプロセッサ２に通知しない。これにより、プロセッサ２は、ＩＤ１ｂで示される新ＩＯデバイスは接続されていないことを検知する。
【００５８】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｂに対して接続確認のトランザクションを発行する（ｓ１３）。このとき、リモートＩＯ制御部３は、トランザクションに新プロトコルを使用するとともにＩＤ２ｂを指定する。
【００５９】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｂで示されるリモートＩＯデバイス１２Ｂに対し、新プロトコルによるトランザクションを発行する。
【００６０】
ここでのリモートＩＯデバイス１２Ｂは、新プロトコルによる通信が不可能なので、リモートＩＯデバイス１２Ｂは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識できない。従って、リモートＩＯデバイス１２Ｂは、リモートＩＯ制御部３に対し、応答トランザクションを返信することはない（ｓ１４）。
【００６１】
このため、リモートＩＯ制御部３は、決められた時間内に応答トランザクションを受信できない。したがって、リモートＩＯ制御部３は、ＩＤ２ｂに対する応答の受信をプロセッサ２に通知しない。これにより、プロセッサ２は、ＩＤ２ｂで示される新ＩＯデバイスは接続されていないことを検知する。
【００６２】
次に、プロセッサ２は、新プロトコルをサポートする新ＩＯデバイスを検知できなかったＩＤ１ｂおよびＩＤ２ｂに対し、旧プロトコルを用いた接続確認を行う。まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ｂに対して接続確認のトランザクションを発行する（ｓ１５）。このとき、リモートＩＯ制御部３は、トランザクションに旧プロトコルを使用するとともにＩＤ１ｂを指定する。
【００６３】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ｂで示されるリモートＩＯデバイス１１Ｂに対し、旧プロトコルによるトランザクションを発行する。
【００６４】
ここでのリモートＩＯデバイス１１Ｂは、旧プロトコルによる通信が可能なので、リモートＩＯデバイス１１Ｂは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ１６）。
【００６５】
リモートＩＯ制御部３は、ＩＤ１ｂの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ｂが旧ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【００６６】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｂに対して接続確認のトランザクションを発行する（ｓ１７）。このとき、リモートＩＯ制御部３は、トランザクションに旧プロトコルを使用するとともにＩＤ２ｂを指定する。
【００６７】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｂで示されるリモートＩＯデバイス１２Ｂに対し、旧プロトコルによるトランザクションを発行する。
【００６８】
ここでのリモートＩＯデバイス１２Ｂは、旧プロトコルによる通信が可能なので、リモートＩＯデバイス１２Ｂは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ１８）。
【００６９】
リモートＩＯ制御部３は、ＩＤ２ｂの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１２Ｂが旧ＩＯデバイスとして数値制御装置１に接続されていることを検知する。なお、リモートＩＯ制御部３は、（ｓ１３）の処理よりも前に（ｓ１５）の処理を実行してもよい。
【００７０】
以上の動作により、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１１Ｂ，１２Ｂが、それぞれ旧プロトコルのみによって通信可能な旧ＩＯデバイスであることを認識する。
【００７１】
図６は、リモートＩＯデバイスが全て旧ＩＯデバイスである場合に使用されるプロトコルを説明するための図である。図６における第１のリモートＩＯデバイスは、リモートＩＯデバイス１１Ｂであり、第２のリモートＩＯデバイスは、リモートＩＯデバイス１２Ｂである。
【００７２】
リモートＩＯデバイス１１Ｂ，１２Ｂからは、新プロトコルに対する応答がなく、旧プロトコルに対する応答があったので、プロセッサ２は、以後の通信において旧プロトコルでリモートＩＯデバイス１１Ｂ，１２Ｂと通信を行うことを決定する。
【００７３】
これにより、プロセッサ２は、以後のリモートＩＯデバイス１１Ｂ，１２Ｂとの通常通信を、両方のリモートＩＯデバイス１１Ｂ，１２Ｂで通信可能な旧プロトコルによって実行する。
【００７４】
（３）リモートＩＯデバイス１１が新旧プロトコルをサポートし、リモートＩＯデバイス１２が旧プロトコルのみをサポートしている場合
図７は、一方のリモートＩＯデバイスが新旧プロトコルをサポートし、他方のリモートＩＯデバイスが旧プロトコルのみをサポートしている場合の接続確認処理を説明するための図である。
【００７５】
新プロトコルをサポートしている新ＩＯデバイスとしてのリモートＩＯデバイス１１Ａと、旧ＩＯデバイスとしてのリモートＩＯデバイス１２Ｂと、数値制御装置１と、に電源が投入されると、数値制御装置１は、接続状態（何れのリモートＩＯデバイスが何台接続されているか）を確認する。
【００７６】
具体的には、プロセッサ２からリモートＩＯ制御部３に、接続確認の命令が発行される。これにより、リモートＩＯ制御部３は、リモートＩＯデバイスの接続デバイス数と、接続されたリモートＩＯデバイスの接続プロトコルと、を確認するために、全てのデバイスＩＤ（接続確認対象）に対し、接続確認のトランザクションを発行する。
【００７７】
ここでは、リモートＩＯ制御部３が、最大接続デバイス数である２台のリモートＩＯデバイス１１Ａ，１２Ｂに対し、各リモートＩＯデバイス１１Ａ，１２Ｂを識別するＩＤであるＩＤ１ａおよびＩＤ２ｂを指定する。
【００７８】
まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ａに対して接続確認のトランザクションを発行する（ｓ２１）。このとき、リモートＩＯ制御部３は、トランザクションに新プロトコルを使用するとともにＩＤ１ａを指定する。
【００７９】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ａで示されるリモートＩＯデバイス１１Ａに対し、新プロトコルによるトランザクションを発行する。
【００８０】
ここでのリモートＩＯデバイス１１Ａは、新旧プロトコルによる通信が可能なので、リモートＩＯデバイス１１Ａは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ２２）。
【００８１】
リモートＩＯ制御部３は、ＩＤ１ａの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ａが新旧プロトコルをサポートする新ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【００８２】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｂに対して接続確認のトランザクションを発行する（ｓ２３）。このとき、リモートＩＯ制御部３は、トランザクションに新プロトコルを使用するとともにＩＤ２ｂを指定する。
【００８３】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｂで示されるリモートＩＯデバイス１２Ｂに対し、新プロトコルによるトランザクションを発行する。
【００８４】
ここでのリモートＩＯデバイス１２Ｂは、新プロトコルによる通信が不可能なので、リモートＩＯデバイス１２Ｂは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識できない。従って、リモートＩＯデバイス１２Ｂは、リモートＩＯ制御部３に対し、応答トランザクションを返信することはない（ｓ２４）。
【００８５】
このため、リモートＩＯ制御部３は、決められた時間内に応答トランザクションを受信できない。したがって、リモートＩＯ制御部３は、ＩＤ２ｂに対する応答の受信をプロセッサ２に通知しない。これにより、プロセッサ２は、ＩＤ２ｂで示される新ＩＯデバイスは接続されていないことを検知する。
【００８６】
次に、プロセッサ２は、新プロトコルをサポートする新ＩＯデバイスを検知できなかったＩＤ２ｂに対し、旧プロトコルを用いた接続確認を行う。まず、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｂに対して接続確認のトランザクションを発行する（ｓ２５）。このとき、リモートＩＯ制御部３は、トランザクションに旧プロトコルを使用するとともにＩＤ２ｂを指定する。
【００８７】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｂで示されるリモートＩＯデバイス１２Ｂに対し、旧プロトコルによるトランザクションを発行する。
【００８８】
ここでのリモートＩＯデバイス１２Ｂは、旧プロトコルによる通信が可能なので、リモートＩＯデバイス１２Ｂは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ２６）。
【００８９】
リモートＩＯ制御部３は、ＩＤ２ｂの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ｂが旧ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【００９０】
以上の動作により、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１１Ａが、新旧プロトコルによって通信可能な新ＩＯデバイスであることを認識する。また、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１２Ｂが、旧プロトコルのみによって通信可能な旧ＩＯデバイスであることを認識する。
【００９１】
図８は、一方のリモートＩＯデバイスが新ＩＯデバイスであり他方のリモートＩＯデバイスが旧ＩＯデバイスである場合に使用されるプロトコルを説明するための図である。図８における第１のリモートＩＯデバイスは、リモートＩＯデバイス１１Ａであり、第２のリモートＩＯデバイスは、リモートＩＯデバイス１２Ｂである。
【００９２】
リモートＩＯデバイス１１Ａからは、新プロトコルに対する応答があったので、プロセッサ２は、リモートＩＯデバイス１１Ａとは新プロトコルで通信可能と判定する。また、リモートＩＯデバイス１２Ｂからは、旧プロトコルに対する応答があったので、プロセッサ２は、リモートＩＯデバイス１２Ｂとは旧プロトコルのみで通信可能と判定する。したがって、プロセッサ２は、以後の通信において、旧プロトコルでリモートＩＯデバイス１１Ｂ，１２Ｂと通信を行うことを決定する。
【００９３】
これにより、プロセッサ２は、以後のリモートＩＯデバイス１１Ａ，１２Ｂとの通常通信を、両方のリモートＩＯデバイス１１Ａ，１２Ｂで通信可能な旧プロトコルによって実行する。
【００９４】
このように、数値制御装置１は、接続された複数のリモートＩＯデバイスの全てが新旧プロトコルの両方で通信可能な新ＩＯデバイスであれば新プロトコルによって通常通信を行なう。また、数値制御装置１は、接続された複数のリモートＩＯデバイスの全てが旧プロトコルでのみ通信可能な旧ＩＯデバイスであれば旧プロトコルによって通常通信を行う。
【００９５】
さらに、数値制御装置１は、接続された複数のリモートＩＯデバイスが、新ＩＯデバイスと旧ＩＯデバイスとの混在である場合には、接続されたリモートＩＯデバイスの全てで通信可能な旧プロトコルで通常通信を行う。換言すると、数値制御装置１に接続されているリモートＩＯデバイスのうちの少なくとも１つが旧ＩＯデバイスであれば、数値制御装置１は、接続確認後の通信を旧プロトコルで行う。
【００９６】
このように、数値制御装置１は、新旧両方の通信方式で接続確認を行い、その確認結果に応じて以降の通信方式を切り替えるので、リモートＩＯユニットの混在接続が可能となる。
【００９７】
数値制御装置１は、通信方式を切り替えた後、リモートＩＯデバイスの接続変更があるまで又は新たに電源が投入されるまで、通信方式を変更しない。そして、リモートＩＯデバイスの接続変更または新たな電源投入があると、数値制御装置１は、再び新旧両方の通信方式で接続確認を行うとともに、その確認結果に応じて以降の通信方式を切り替える。
【００９８】
なお、プロトコルの種類は、新プロトコルおよび旧プロトコルに限定されるものではなく、プロトコルの種類は何れの種類であってもよい。また、プロトコルの種類は３種類以上であってもよい。
【００９９】
図９は、プロトコルの種類が３種類である場合の、数値制御装置の動作処理手順を示すフローチャートである。ここでは、リモートＩＯデバイス１１に対して何れのプロトコルをサポートしているかを確認する場合について説明する。なお、図９の説明では、第１のプロトコルが３種類のプロトコルの中で最新のプロトコルであり、第３のプロトコルが３種類のプロトコルの中で最古のプロトコルであるとする。そして、第２のプロトコルが３種類のプロトコルの中で２番目に新しいプロトコルであるとする。
【０１００】
リモートＩＯ制御部３は、リモートＩＯデバイス１１に対して、第１のプロトコルで接続確認のトランザクション（第１のトランザクション）を発行する（ステップＳ１１０）。この第１のトランザクションに対して応答があった場合（ステップＳ１２０、Ｙｅｓ）、プロセッサ２は、リモートＩＯデバイス１１が第１のプロトコルをサポートしていると判定する（ステップＳ１３０）。
【０１０１】
第１のトランザクションに対して応答が無かった場合（ステップＳ１２０、Ｎｏ）、リモートＩＯ制御部３は、リモートＩＯデバイス１１に対して、第２のプロトコルで接続確認のトランザクション（第２のトランザクション）を発行する（ステップＳ１４０）。この第２のトランザクションに対して応答があった場合（ステップＳ１５０、Ｙｅｓ）、プロセッサ２は、リモートＩＯデバイス１１が第２のプロトコルをサポートしていると判定する（ステップＳ１６０）。
【０１０２】
第２のトランザクションに対して応答が無かった場合（ステップＳ１５０、Ｎｏ）、リモートＩＯ制御部３は、リモートＩＯデバイス１１に対して、第３のプロトコルで接続確認のトランザクション（第３のトランザクション）を発行する（ステップＳ１７０）。この第３のトランザクションに対して応答があった場合（ステップＳ１８０、Ｙｅｓ）、プロセッサ２は、リモートＩＯデバイス１１が第３のプロトコルをサポートしていると判定する（ステップＳ１９０）。第３のトランザクションに対して応答が無かった場合（ステップＳ１８０、Ｎｏ）、リモートＩＯ制御部３は、通信異常であると判定する（ステップＳ２００）。
【０１０３】
数値制御装置１は、リモートＩＯデバイス１２に対しても、リモートＩＯデバイス１１と同様の処理によってリモートＩＯデバイス１１がサポートしているプロトコルを判定する。
【０１０４】
従来は、接続されるリモートＩＯデバイスの通信プロトコル毎に、共通プロトコルに変換するための変換器（ＩＯ制御装置）の接続が必要であった。本実施の形態では、共通プロトコルに変換するための変換器の接続が不要となる。
【０１０５】
また、本実施の形態では、新プロトコルによる通信で得られるデータ通信量の拡大、安全機能の実現、サイクルタイムの高速化等の効果を得られるうえに、数値制御装置１とリモートＩＯデバイス１１，１２との間の接続を簡略化することができる。したがって、システム全体のコスト低減、機器設置面積の縮小、装置数削減による信頼性の向上を実現できる。
【０１０６】
このように、実施の形態１によれば、各リモートＩＯデバイスでサポートされている通信方式（プロトコル）がリモートＩＯデバイス毎に異なる場合であっても、全てのリモートＩＯデバイスで通信可能なプロトコルを選択するので、簡易な構成で各リモートＩＯデバイスと通信が可能になる。
【０１０７】
実施の形態２．
つぎに、図１０〜図１９を用いてこの発明の実施の形態２について説明する。実施の形態２では、各リモートＩＯデバイスでサポートされているボーレートがリモートＩＯデバイス毎に異なる場合に、数値制御装置１が、全てのリモートＩＯデバイスと通信可能なボーレートを判定する。そして、数値制御装置１が、全てのリモートＩＯデバイスと通信可能なボーレートを用いて各リモートＩＯデバイス１１，１２と通信を行う。以下では、リモートＩＯデバイス１１，１２が同一のプロトコルで動作するが、種々のボーレートで動作する場合について説明する。
【０１０８】
図１０は、実施の形態２に係る数値制御装置の動作処理手順を示すフローチャートである。ここでは、Ｎ台（Ｎは２以上の自然数）のリモートＩＯデバイスが数値制御装置１に接続されている場合について説明する。なお、図１０に示す動作処理のうち図２で説明した実施の形態１に係る数値制御装置１の動作処理と同様の動作処理については、重複する説明を省略する。
【０１０９】
数値制御装置１では、プロセッサ２が、リモートＩＯ制御部３に、高ボーレートを用いた接続確認を行うよう指示する。このとき、プロセッサ２は、接続確認対象となるリモートＩＯデバイス（数値制御装置１に接続されているリモートＩＯデバイス）のＩＤをリモートＩＯ制御部３に送る。まず、リモートＩＯ制御部３は、第ｎ（ここではｎ＝１）のリモートＩＯデバイスに、高ボーレート（高速ボーレート）で接続確認のトランザクションを発行する（ステップＳ２１０）。
【０１１０】
この後、プロセッサ２は、第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ２２０）。応答があった場合（ステップＳ２２０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスが高ボーレートをサポートしていると判定する（ステップＳ２３０）。
【０１１１】
一方、応答がない場合（ステップＳ２２０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスは、高ボーレートをサポートしていないと判定する（ステップＳ２４０）。そして、プロセッサ２は、リモートＩＯ制御部３に、低ボーレート（低速ボーレート）を用いた接続確認を行うよう指示する。このとき、プロセッサ２は、接続確認対象となるリモートＩＯデバイス（高ボーレートをサポートしていないリモートＩＯデバイス）のＩＤをリモートＩＯ制御部３に送る。これにより、リモートＩＯ制御部３は、高ボーレートをサポートしていないリモートＩＯデバイスに、低ボーレートで接続確認のトランザクションを発行する（ステップＳ２５０）。
【０１１２】
この後、プロセッサ２は、低ボーレートで接続確認のトランザクションが発行された第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ２６０）。応答があった場合（ステップＳ２６０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスは低ボーレートのみをサポートしていると判定する（ステップＳ２７０）。
【０１１３】
応答がなかった場合（ステップＳ２６０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスとの間には通信異常（非接続など）があると判定する（ステップＳ２８０）。プロセッサ２は、第ｎのリモートＩＯデバイスに対してボーレートを確認した後、全てのリモートＩＯデバイスに対して接続有無（ボーレート）を確認したかを確認する（ステップＳ２９０）。
【０１１４】
全てのリモートＩＯデバイスに対して接続有無を確認していなければ（ステップＳ２９０、Ｎｏ）、プロセッサ２は、次のリモートＩＯデバイスに対して、ステップＳ２１０〜Ｓ２９０の処理を繰り返す。具体的には、リモートＩＯ制御部３は、第ｎ（ｎ＝ｎ＋１）（ここではｎ＝２）のリモートＩＯデバイスに、高ボーレートで接続確認のトランザクションを発行する（ステップＳ２１０）。
【０１１５】
そして、プロセッサ２は、第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ２２０）。応答があった場合（ステップＳ２２０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスが高ボーレートをサポートしていると判定する（ステップＳ２３０）。応答がない場合（ステップＳ２２０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスが高ボーレートをサポートしていないと判定する（ステップＳ２４０）。
【０１１６】
リモートＩＯ制御部３は、第ｎのリモートＩＯデバイスが高ボーレートをサポートしていない場合、高ボーレートをサポートしていないリモートＩＯデバイスに、低ボーレートで接続確認のトランザクションを発行する（ステップＳ２５０）。
【０１１７】
この後、プロセッサ２は、低ボーレートで接続確認のトランザクションが発行された第ｎのリモートＩＯデバイスから応答があったか否かを確認する（ステップＳ２６０）。応答があった場合（ステップＳ２６０、Ｙｅｓ）、プロセッサ２は、第ｎのリモートＩＯデバイスは低ボーレートのみをサポートしていると判定する（ステップＳ２７０）。
【０１１８】
応答がなかった場合（ステップＳ２６０、Ｎｏ）、プロセッサ２は、第ｎのリモートＩＯデバイスとの間には通信異常があると判定する（ステップＳ２８０）。プロセッサ２は、第ｎのリモートＩＯデバイスに対してボーレートを確認した後、全てのリモートＩＯデバイスに対して接続有無を確認したかを確認する（ステップＳ２９０）。
【０１１９】
全てのリモートＩＯデバイスに対して接続有無を確認していなければ（ステップＳ２９０、Ｎｏ）、プロセッサ２は、次のリモートＩＯデバイスに対して、ステップＳ２１０〜Ｓ２９０の処理を繰り返す。一方、全てのリモートＩＯデバイスに対して接続有無の確認が完了していれば（ステップＳ２９０、Ｙｅｓ）、プロセッサ２は、接続有無の確認処理を終了する。
【０１２０】
なお、数値制御装置１は、何れの順番で各リモートＩＯデバイスが高ボーレートおよび低ボーレートの何れをサポートしているかを判定してもよい。数値制御装置１は、例えば、全てのリモートＩＯデバイスに対して順番に高ボーレートをサポートしているか否かを確認し、その後、応答の無かったリモートＩＯデバイスの全てに対して順番に低ボーレートをサポートしているか否かを確認してもよい。
【０１２１】
つぎに、実施の形態２の数値制御装置１における電源投入時の具体的な接続確認動作について説明する。ここでは、以下の（４）〜（６）に示す場合の接続確認動作について説明する。
（４）リモートＩＯデバイス１１，１２がともに高ボーレートおよび低ボーレートの両方で通信可能な新式の新ＩＯデバイスである場合。
（５）リモートＩＯデバイス１１，１２がともに低ボーレートのみで通信可能な旧式の旧ＩＯデバイスである場合。
（６）リモートＩＯデバイス１１が高ボーレートおよび低ボーレートの両方で通信可能な新ＩＯデバイスであり、リモートＩＯデバイス１２が低ボーレートのみで通信可能な旧ＩＯデバイスである場合。
【０１２２】
以下の説明では、高ボーレートおよび低ボーレートの両方で通信可能な新ＩＯデバイスを、リモートＩＯデバイス１１Ｃ，１２Ｃとして説明する。また、低ボーレートのみで通信可能な旧ＩＯデバイスを、リモートＩＯデバイス１１Ｄ，１２Ｄとして説明する。
【０１２３】
（４）リモートＩＯデバイス１１，１２が高ボーレートをサポートしている場合
図１１は、リモートＩＯデバイスがともに高ボーレートをサポートしている場合の接続確認処理を説明するための図である。
【０１２４】
高ボーレートをサポートしている新ＩＯデバイスとしてのリモートＩＯデバイス１１Ｃ，１２Ｃと、数値制御装置１と、に電源が投入されると、数値制御装置１は、接続状態（何れのリモートＩＯデバイスが何台接続されているか）を確認する。
【０１２５】
具体的には、プロセッサ２からリモートＩＯ制御部３に、接続確認の命令が発行される。これにより、リモートＩＯ制御部３は、リモートＩＯデバイスの接続デバイス数と、接続されたリモートＩＯデバイスでサポートされているボーレートと、を確認するために、全てのデバイスＩＤ（接続確認対象）に対し、接続確認のトランザクションを発行する。デバイスＩＤは、数値制御装置１に設定されているリモートＩＯデバイスのＩＤである。
【０１２６】
ここでは、リモートＩＯ制御部３が、最大接続デバイス数である２台のリモートＩＯデバイス１１Ｃ，１２Ｃに対し、各リモートＩＯデバイス１１Ｃ，１２Ｃを識別するＩＤ（デバイスＩＤ）であるＩＤ１ｃおよびＩＤ２ｃを指定する。
【０１２７】
まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ｃに対して接続確認のトランザクションを発行する（ｓ３１）。このとき、リモートＩＯ制御部３は、トランザクションに高ボーレートを使用するとともにＩＤ１ｃを指定する。
【０１２８】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ｃで示されるリモートＩＯデバイス１１Ｃに対し、高ボーレートによるトランザクションを発行する。
【０１２９】
ここでのリモートＩＯデバイス１１Ｃは、高低ボーレートによる通信が可能なので、リモートＩＯデバイス１１Ｃは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ３２）。
【０１３０】
リモートＩＯ制御部３は、ＩＤ１ｃの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ｃが高低ボーレートをサポートする新ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【０１３１】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｃに対して接続確認のトランザクションを発行する（ｓ３３）。このとき、リモートＩＯ制御部３は、トランザクションに高ボーレートを使用するとともにＩＤ２ｃを指定する。
【０１３２】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｃで示されるリモートＩＯデバイス１２Ｃに対し、高ボーレートによるトランザクションを発行する。
【０１３３】
ここでのリモートＩＯデバイス１２Ｃは、高低ボーレートによる通信が可能なので、リモートＩＯデバイス１２Ｃは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ３４）。
【０１３４】
リモートＩＯ制御部３は、ＩＤ２ｃの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１２Ｃが高低ボーレートをサポートする新ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【０１３５】
以上の動作により、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１１Ｃ，１２Ｃが、それぞれ高低ボーレートによって通信可能な新ＩＯデバイスであることを認識する。
【０１３６】
図１２は、リモートＩＯデバイスが全て新ＩＯデバイスである場合に使用されるボーレートを説明するための図である。図１２における第１のリモートＩＯデバイスは、リモートＩＯデバイス１１Ｃであり、第２のリモートＩＯデバイスは、リモートＩＯデバイス１２Ｃである。
【０１３７】
リモートＩＯデバイス１１Ｃ，１２Ｃからは、高ボーレートに対する応答があったので、プロセッサ２は、以後の通信において高ボーレートでリモートＩＯデバイス１１Ｃ，１２Ｃと通信を行うことを決定する。
【０１３８】
これにより、プロセッサ２は、以後のリモートＩＯデバイス１１Ｃ，１２Ｃとの通常通信を、両方のリモートＩＯデバイス１１Ｃ，１２Ｃで通信可能かつ高性能で通信可能な高ボーレートによって実行する。
【０１３９】
（５）リモートＩＯデバイス１１，１２が低ボーレートのみをサポートしている場合
図１３は、リモートＩＯデバイスがともに低ボーレートのみをサポートしている場合の接続確認処理を説明するための図である。
【０１４０】
低ボーレートのみをサポートしている旧ＩＯデバイスとしてのリモートＩＯデバイス１１Ｄ，１２Ｄと、数値制御装置１と、に電源が投入されると、数値制御装置１は、接続状態（何れのリモートＩＯデバイスが何台接続されているか）を確認する。
【０１４１】
具体的には、プロセッサ２からリモートＩＯ制御部３に、接続確認の命令が発行される。これにより、リモートＩＯ制御部３は、リモートＩＯデバイスの接続デバイス数と、接続されたリモートＩＯデバイスでサポートされているボーレートと、を確認するために、全てのデバイスＩＤ（接続確認対象）に対し、接続確認のトランザクションを発行する。
【０１４２】
ここでは、リモートＩＯ制御部３が、最大接続デバイス数である２台のリモートＩＯデバイス１１Ｄ，１２Ｄに対し、各リモートＩＯデバイス１１Ｄ，１２Ｄを識別するＩＤであるＩＤ１ｄおよびＩＤ２ｄを指定する。
【０１４３】
まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ｄに対して接続確認のトランザクションを発行する（ｓ４１）。このとき、リモートＩＯ制御部３は、トランザクションに高ボーレートを使用するとともにＩＤ１ｄを指定する。
【０１４４】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ｄで示されるリモートＩＯデバイス１１Ｄに対し、高ボーレートによるトランザクションを発行する。
【０１４５】
ここでのリモートＩＯデバイス１１Ｄは、高ボーレートによる通信が不可能なので、リモートＩＯデバイス１１Ｄは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識できない。従って、リモートＩＯデバイス１１Ｄは、リモートＩＯ制御部３に対し、応答トランザクションを返信することはない（ｓ４２）。
【０１４６】
このため、リモートＩＯ制御部３は、決められた時間内に応答トランザクションを受信できない。したがって、リモートＩＯ制御部３は、ＩＤ１ｄに対する応答の受信をプロセッサ２に通知しない。これにより、プロセッサ２は、ＩＤ１ｄで示される新ＩＯデバイスは接続されていないことを検知する。
【０１４７】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｄに対して接続確認のトランザクションを発行する（ｓ４３）。このとき、リモートＩＯ制御部３は、トランザクションに高ボーレートを使用するとともにＩＤ２ｄを指定する。
【０１４８】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｄで示されるリモートＩＯデバイス１２Ｄに対し、高ボーレートによるトランザクションを発行する。
【０１４９】
ここでのリモートＩＯデバイス１２Ｄは、高ボーレートによる通信が不可能なので、リモートＩＯデバイス１２Ｄは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識できない。従って、リモートＩＯデバイス１２Ｄは、リモートＩＯ制御部３に対し、応答トランザクションを返信することはない（ｓ４４）。
【０１５０】
このため、リモートＩＯ制御部３は、決められた時間内に応答トランザクションを受信できない。したがって、リモートＩＯ制御部３は、ＩＤ２ｄに対する応答の受信をプロセッサ２に通知しない。これにより、プロセッサ２は、ＩＤ２ｄで示される新ＩＯデバイスは接続されていないことを検知する。
【０１５１】
次に、プロセッサ２は、高ボーレートをサポートする新ＩＯデバイスを検知できなかったＩＤ１ｄおよびＩＤ２ｄに対し、低ボーレートを用いた接続確認を行う。まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ｄに対して接続確認のトランザクションを発行する（ｓ４５）。このとき、リモートＩＯ制御部３は、トランザクションに低ボーレートを使用するとともにＩＤ１ｄを指定する。
【０１５２】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ｄで示されるリモートＩＯデバイス１１Ｄに対し、低ボーレートによるトランザクションを発行する。
【０１５３】
ここでのリモートＩＯデバイス１１Ｄは、低ボーレートによる通信が可能なので、リモートＩＯデバイス１１Ｄは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ４６）。
【０１５４】
リモートＩＯ制御部３は、ＩＤ１ｄの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ｄが旧ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【０１５５】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｄに対して接続確認のトランザクションを発行する（ｓ４７）。このとき、リモートＩＯ制御部３は、トランザクションに低ボーレートを使用するとともにＩＤ２ｄを指定する。
【０１５６】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｄで示されるリモートＩＯデバイス１２Ｄに対し、低ボーレートによるトランザクションを発行する。
【０１５７】
ここでのリモートＩＯデバイス１２Ｄは、低ボーレートによる通信が可能なので、リモートＩＯデバイス１２Ｄは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ４８）。
【０１５８】
リモートＩＯ制御部３は、ＩＤ２ｄの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１２Ｄが旧ＩＯデバイスとして数値制御装置１に接続されていることを検知する。なお、リモートＩＯ制御部３は、（ｓ４３）の処理よりも前に（ｓ４５）の処理を実行してもよい。
【０１５９】
以上の動作により、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１１Ｄ，１２Ｄが、それぞれ低ボーレートのみによって通信可能な旧ＩＯデバイスであることを認識する。
【０１６０】
図１４は、リモートＩＯデバイスが全て旧ＩＯデバイスである場合に使用されるボーレートを説明するための図である。図１４における第１のリモートＩＯデバイスは、リモートＩＯデバイス１１Ｄであり、第２のリモートＩＯデバイスは、リモートＩＯデバイス１２Ｄである。
【０１６１】
リモートＩＯデバイス１１Ｄ，１２Ｄからは、高ボーレートに対する応答がなく、低ボーレートに対する応答があったので、プロセッサ２は、以後の通信において低ボーレートでリモートＩＯデバイス１１Ｄ，１２Ｄと通信を行うことを決定する。
【０１６２】
これにより、プロセッサ２は、以後のリモートＩＯデバイス１１Ｄ，１２Ｄとの通常通信を、両方のリモートＩＯデバイス１１Ｄ，１２Ｄで通信可能な低ボーレートによって実行する。
【０１６３】
（６）リモートＩＯデバイス１１が高低ボーレートをサポートし、リモートＩＯデバイス１２が低ボーレートのみをサポートしている場合
図１５は、一方のリモートＩＯデバイスが高低ボーレートをサポートし、他方のリモートＩＯデバイスが低ボーレートのみをサポートしている場合の接続確認処理を説明するための図である。
【０１６４】
高ボーレートをサポートしている新ＩＯデバイスとしてのリモートＩＯデバイス１１Ｃと、旧ＩＯデバイスとしてのリモートＩＯデバイス１２Ｄと、数値制御装置１と、に電源が投入されると、数値制御装置１は、接続状態（何れのリモートＩＯデバイスが何台接続されているか）を確認する。
【０１６５】
具体的には、プロセッサ２からリモートＩＯ制御部３に、接続確認の命令が発行される。これにより、リモートＩＯ制御部３は、リモートＩＯデバイスの接続デバイス数と、接続されたリモートＩＯデバイスでサポートされているボーレートと、を確認するために、全てのデバイスＩＤ（接続確認対象）に対し、接続確認のトランザクションを発行する。
【０１６６】
ここでは、リモートＩＯ制御部３が、最大接続デバイス数である２台のリモートＩＯデバイス１１Ｃ，１２Ｄに対し、各リモートＩＯデバイス１１Ｃ，１２Ｄを識別するＩＤであるＩＤ１ｃおよびＩＤ２ｄを指定する。
【０１６７】
まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ｃに対して接続確認のトランザクションを発行する（ｓ５１）。このとき、リモートＩＯ制御部３は、トランザクションに高ボーレートを使用するとともにＩＤ１ｃを指定する。
【０１６８】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ１ｃで示されるリモートＩＯデバイス１１Ｃに対し、高ボーレートによるトランザクションを発行する。
【０１６９】
ここでのリモートＩＯデバイス１１Ｃは、高低ボーレートによる通信が可能なので、リモートＩＯデバイス１１Ｃは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ５２）。
【０１７０】
リモートＩＯ制御部３は、ＩＤ１ｃの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ｃが高低ボーレートをサポートする新ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【０１７１】
次に、リモートＩＯ制御部３は、リモートＩＯデバイス１２Ｄに対して接続確認のトランザクションを発行する（ｓ５３）。このとき、リモートＩＯ制御部３は、トランザクションに高ボーレートを使用するとともにＩＤ２ｄを指定する。
【０１７２】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｄで示されるリモートＩＯデバイス１２Ｄに対し、高ボーレートによるトランザクションを発行する。
【０１７３】
ここでのリモートＩＯデバイス１２Ｄは、高ボーレートによる通信が不可能なので、リモートＩＯデバイス１２Ｄは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識できない。従って、リモートＩＯデバイス１２Ｄは、リモートＩＯ制御部３に対し、応答トランザクションを返信することはない（ｓ５４）。
【０１７４】
このため、リモートＩＯ制御部３は、決められた時間内に応答トランザクションを受信できない。したがって、リモートＩＯ制御部３は、ＩＤ２ｄに対する応答の受信をプロセッサ２に通知しない。これにより、プロセッサ２は、ＩＤ２ｄで示される新ＩＯデバイスは接続されていないことを検知する。
【０１７５】
次に、プロセッサ２は、高ボーレートをサポートする新ＩＯデバイスを検知できなかったＩＤ２ｄに対し、低ボーレートを用いた接続確認を行う。まず、リモートＩＯ制御部３は、リモートＩＯデバイス１１Ｄに対して接続確認のトランザクションを発行する（ｓ５５）。このとき、リモートＩＯ制御部３は、トランザクションに低ボーレートを使用するとともにＩＤ２ｄを指定する。
【０１７６】
このように、リモートＩＯ制御部３は、プロセッサ２からの指示に従って、接続確認の目的で、ＩＤ２ｄで示されるリモートＩＯデバイス１２Ｄに対し、低ボーレートによるトランザクションを発行する。
【０１７７】
ここでのリモートＩＯデバイス１２Ｄは、低ボーレートによる通信が可能なので、リモートＩＯデバイス１２Ｄは、受信したトランザクションが自デバイス宛の接続確認トランザクションであることを認識し、リモートＩＯ制御部３に対し、応答トランザクションを返信する（ｓ５６）。
【０１７８】
リモートＩＯ制御部３は、ＩＤ２ｄの応答トランザクションを受信したことをプロセッサ２に通知する。これにより、プロセッサ２は、リモートＩＯデバイス１１Ｄが旧ＩＯデバイスとして数値制御装置１に接続されていることを検知する。
【０１７９】
以上の動作により、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１１Ｃが、高低ボーレートによって通信可能な新ＩＯデバイスであることを認識する。また、プロセッサ２は、数値制御装置１に接続されたリモートＩＯデバイス１２Ｄが、低ボーレートのみによって通信可能な旧ＩＯデバイスであることを認識する。
【０１８０】
図１６は、一方のリモートＩＯデバイスが新ＩＯデバイスであり他方のリモートＩＯデバイスが旧ＩＯデバイスである場合に使用されるボーレートを説明するための図である。図１６における第１のリモートＩＯデバイスは、リモートＩＯデバイス１１Ｃであり、第２のリモートＩＯデバイスは、リモートＩＯデバイス１２Ｄである。
【０１８１】
リモートＩＯデバイス１１Ｃからは、高ボーレートに対する応答があったので、プロセッサ２は、リモートＩＯデバイス１１Ｃとは高ボーレートで通信可能と判定する。また、リモートＩＯデバイス１２Ｄからは、低ボーレートに対する応答があったので、プロセッサ２は、リモートＩＯデバイス１２Ｄとは低ボーレートのみで通信可能と判定する。したがって、プロセッサ２は、以後の通信において、低ボーレートでリモートＩＯデバイス１１Ｄ，１２Ｄと通信を行うことを決定する。
【０１８２】
これにより、プロセッサ２は、以後のリモートＩＯデバイス１１Ｃ，１２Ｄとの通常通信を、両方のリモートＩＯデバイス１１Ｃ，１２Ｄで通信可能な低ボーレートによって実行する。
【０１８３】
このように、数値制御装置１は、接続された複数のリモートＩＯデバイスの全てが高低ボーレートの両方で通信可能な新ＩＯデバイスであれば高ボーレートによって通常通信を行なう。また、数値制御装置１は、接続された複数のリモートＩＯデバイスの全てが低ボーレートでのみ通信可能な旧ＩＯデバイスであれば低ボーレートによって通常通信を行う。
【０１８４】
さらに、数値制御装置１は、接続された複数のリモートＩＯデバイスが、新ＩＯデバイスと旧ＩＯデバイスとの混在である場合には、接続されたリモートＩＯデバイスの全てで通信可能な低ボーレートで通常通信を行う。換言すると、数値制御装置１に接続されているリモートＩＯデバイスのうちの少なくとも１つが旧ＩＯデバイスであれば、数値制御装置１は、接続確認後の通信を低ボーレートで行う。
【０１８５】
このように、数値制御装置１は、新旧両方の通信方式で接続確認を行い、その確認結果に応じて以降の通信方式を切り替えるので、リモートＩＯユニットの混在接続が可能となる。
【０１８６】
数値制御装置１は、通信方式を切り替えた後、リモートＩＯデバイスの接続変更があるまで又は新たに電源が投入されるまで、通信方式を変更しない。そして、リモートＩＯデバイスの接続変更または新たな電源投入があると、数値制御装置１は、再び新旧両方の通信方式で接続確認を行うとともに、その確認結果に応じて以降の通信方式を切り替える。なお、ボーレートの種類は、高ボーレートおよび低ボーレートの２種類に限定されるものではなく、ボーレートの種類は３種類以上であってもよい。
【０１８７】
図１７は、ボーレートの種類が３種類である場合の、数値制御装置の動作処理手順を示すフローチャートである。ここでは、リモートＩＯデバイス１１に対して何れのボーレートをサポートしているかを確認する場合について説明する。なお、図１７の説明では、第１のボーレートが３種類のボーレートの中で最速のボーレートであり、第３のボーレートが３種類のボーレートの中で最も遅いボーレートであるとする。そして、第２のボーレートが３種類のボーレートの中で２番目に速いボーレートであるとする。
【０１８８】
リモートＩＯ制御部３は、リモートＩＯデバイス１１に対して、第１のボーレートで接続確認のトランザクション（第１のトランザクション）を発行する（ステップＳ３１０）。この第１のトランザクションに対して応答があった場合（ステップＳ３２０、Ｙｅｓ）、プロセッサ２は、リモートＩＯデバイス１１が第１のボーレートをサポートしていると判定する（ステップＳ３３０）。
【０１８９】
第１のトランザクションに対して応答が無かった場合（ステップＳ３２０、Ｎｏ）、リモートＩＯ制御部３は、リモートＩＯデバイス１１に対して、第２のボーレートで接続確認のトランザクション（第２のトランザクション）を発行する（ステップＳ３４０）。この第２のトランザクションに対して応答があった場合（ステップＳ３５０、Ｙｅｓ）、プロセッサ２は、リモートＩＯデバイス１１が第２のボーレートをサポートしていると判定する（ステップＳ３６０）。
【０１９０】
第２のトランザクションに対して応答が無かった場合（ステップＳ３５０、Ｎｏ）、リモートＩＯ制御部３は、リモートＩＯデバイス１１に対して、第３のボーレートで接続確認のトランザクション（第３のトランザクション）を発行する（ステップＳ３７０）。この第３のトランザクションに対して応答があった場合（ステップＳ３８０、Ｙｅｓ）、プロセッサ２は、リモートＩＯデバイス１１が第３のボーレートをサポートしていると判定する（ステップＳ３９０）。第３のトランザクションに対して応答が無かった場合（ステップＳ３８０、Ｎｏ）、リモートＩＯ制御部３は、通信異常であると判定する（ステップＳ４００）。
【０１９１】
数値制御装置１は、リモートＩＯデバイス１２に対しても、リモートＩＯデバイス１１と同様の処理によってリモートＩＯデバイス１１がサポートしているボーレートを判定する。
【０１９２】
プロセッサ２による数値制御処理および通信方式の判定処理は、例えばソフトウェアを用いて実現される。プロセッサ２は、リモートＩＯデバイス１１，１２への数値制御を行う際には、コンピュータプログラムである数値制御プログラムを用いて数値制御処理を行う。また、プロセッサ２は、通信方式の判定処理を行う際には、コンピュータプログラムである通信方式判定プログラムを用いて通信方式の判定を行う。
【０１９３】
図１８は、数値制御装置の機能構成を示すブロック図である。数値制御装置１は、リモートＩＯデバイス１１，１２への数値制御を行う数値制御部３０と、通信方式の判定処理を行う際に通信方式判定部２０と、を備えている。数値制御部３０が、数値制御プログラムに対応し、通信方式判定部２０が通信方式判定プログラムに対応している。なお、図１８では、プロセッサ２およびリモートＩＯ制御部３の図示を省略している。
【０１９４】
数値制御装置１は、プロセッサ２およびリモートＩＯ制御部３の他に、図示しない、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、表示部、入力部などを有している。数値制御装置１では、これらのプロセッサ２、リモートＩＯ制御部３、ＲＯＭ、ＲＡＭ、表示部、入力部が内部バスインターフェース８を介して接続されている。
【０１９５】
プロセッサ２は、通信方式判定部２０（通信方式判定プログラム）を用いて通信方式の判定を行うとともに、数値制御部３０（数値制御プログラム）を用いてリモートＩＯデバイス１１，１２への数値制御を行う。
【０１９６】
表示部は、液晶モニタなどの表示装置であり、プロセッサ２からの指示に基づいて、数値制御に関する情報または通信方式の判定に関する情報などを表示する。入力部は、マウスやキーボードを備えて構成され、使用者から外部入力される指示情報を入力する。入力部へ入力された指示情報は、プロセッサ２へ送られる。
【０１９７】
通信方式判定プログラムは、ＲＯＭ内に格納されており、内部バスインターフェース８を介してＲＡＭへロードされる。プロセッサ２は、ＲＡＭ内にロードされた通信方式判定プログラムを実行する。具体的には、数値制御装置１では、使用者による入力部からの指示入力に従って、プロセッサ２がＲＯＭ内から通信方式判定プログラムを読み出してＲＡＭ内のプログラム格納領域に展開して各種処理を実行する。プロセッサ２は、この各種処理に際して生じる各種データをＲＡＭ内に形成されるデータ格納領域に一時的に記憶させておく。
【０１９８】
数値制御装置１で実行される通信方式判定プログラムは、送信指示部２１と、判定部２２とを含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが通信方式判定部２０としてＲＡＭ上に生成される。
【０１９９】
送信指示部２１は、リモートＩＯ制御部３に、接続確認のためのトランザクションを所定の通信方式で送信させる。具体的には、送信指示部２１は、接続確認のための第１のトランザクションを第１の通信方式（新プロトコルまたは高ボーレート）でリモートＩＯ制御部３からリモートＩＯデバイスへ送信させる。
【０２００】
また、送信指示部２１は、第１のトランザクションに対する応答が無かったリモートＩＯデバイスに対しては接続確認の第２のトランザクションを第２の通信方式（旧プロトコルまたは低ボーレート）でリモートＩＯ制御部３からリモートＩＯデバイスへ送信させる。
【０２０１】
判定部２２は、リモートＩＯデバイスからリモートＩＯ制御部３を介して送られてくる応答トランザクションに基づいて、何れの通信方式でリモートＩＯデバイスと通信を行うかを決定する。
【０２０２】
具体的には、判定部２２は、前記第１のトランザクションに対する応答があったリモートＩＯデバイスに対しては第１の通信方式をサポートしていると判定する。また、判定部２２は、第２のトランザクションに対する応答があったリモートＩＯデバイスに対しては第２の通信方式をサポートしていると判定する。
【０２０３】
そして、判定部２２は、全てのリモートＩＯデバイスが第１の通信方式をサポートしている場合には、第１の通信方式で全てのリモートＩＯデバイスとの間の通信を行なうことを決定する。また、判定部２２は、何れかのリモートＩＯデバイスが第１の通信方式をサポートせず第２の通信方式をサポートしている場合には、第２の通信方式で全てのリモートＩＯデバイスとの間の通信を行なうことを決定する。これにより、数値制御部３０は、判定部２２の決定に応じた通信方式を用いてリモートＩＯデバイスへの数値制御を行う。
【０２０４】
なお、ここでは、ＲＯＭ内に通信方式判定プログラムが格納されている場合について説明したが、ＲＯＭ内には数値制御プログラムなどを格納しておいてもよい。この場合も、プロセッサ２がＲＯＭ内からも数値制御プログラムを読み出してＲＡＭ内のプログラム格納領域に展開して各種処理を実行する。また、ここでは数値制御装置１が表示部を備える場合について説明したが、数値制御装置１と表示部とは別構成であってもよい。
【０２０５】
従来は、接続されるリモートＩＯデバイスのボーレート毎にＩＯ制御装置が必要であった。本実施の形態では、ボーレート毎のＩＯ制御装置が不要となる。また、ＩＯ制御装置のバージョンに応じて、使用するフィールドが異なるＩＯ制御装置がある。このようなＩＯ制御装置は、プロトコルにフィールドの違いが存在しても同一のボーレートで通信する必要があった。このため、ＩＯ制御装置は、新バージョンであっても旧バージョンよりも高ボーレートで通信することはできず、データ転送速度を速めることができなかった。本実施の形態では、リモートＩＯ制御部３が新バージョンの場合、リモートＩＯ制御部３は、旧バージョンよりも高ボーレートで通信することが可能となる。
【０２０６】
また、本実施の形態では、高ボーレートによる通信で得られるデータ通信量の拡大、サイクルタイムの高速化等の効果を得られるうえに、数値制御装置１とリモートＩＯデバイス１１，１２との間の接続を簡略化することができる。したがって、システム全体のコスト低減、機器設置面積の縮小、装置数削減による信頼性の向上を実現できる。
【０２０７】
このように、実施の形態２によれば、各リモートＩＯデバイスでサポートされている通信方式（ボーレート）がリモートＩＯデバイス毎に異なる場合であっても、全てのリモートＩＯデバイスで通信可能なボーレートを選択するので、簡易な構成で各リモートＩＯデバイスと通信が可能になる。
【産業上の利用可能性】
【０２０８】
以上のように、本発明に係る数値制御装置および通信方法は、複数のＩＯデバイスとの間の通信に適している。
【符号の説明】
【０２０９】
１  数値制御装置、２  プロセッサ、３  リモートＩＯ制御部、１１，１１Ａ〜１１Ｄ，１２，１２Ａ〜１２Ｄ  リモートＩＯデバイス、２０  通信方式判定部、２１  送信指示部、２２  判定部、３０  数値制御部。
【図１】
2014222444.tif 000003
【図２】
2014222444.tif 000004
【図３】
2014222444.tif 000005
【図４】
2014222444.tif 000006
【図５】
2014222444.tif 000007
【図６】
2014222444.tif 000008
【図７】
2014222444.tif 000009
【図８】
2014222444.tif 000010
【図９】
2014222444.tif 000011
【図１０】
2014222444.tif 000012
【図１１】
2014222444.tif 000013
【図１２】
2014222444.tif 000014
【図１３】
2014222444.tif 000015
【図１４】
2014222444.tif 000016
【図１５】
2014222444.tif 000017
【図１６】
2014222444.tif 000018
【図１７】
2014222444.tif 000019
【図１８】
2014222444.tif 000020