(57)【要約】      （修正有）【課題】システム構成をよりフレキシブルに追加／変更することができる環境を提供する。【解決手段】各々が与えられた設定情報に従って動作する１つ以上のスレーブ装置５４−１，５４−２とバスを介して通信可能に接続されて、マスタ装置５２として機能する制御装置が提供される。制御装置は、設定情報Ｄ２４と各スレーブ装置を特定するための識別情報Ｄ２２とを含む構成情報をスレーブ装置別に格納するための記憶手段Ｄ２０を含む。設定情報は、対応するスレーブ装置のバスにおける識別情報を示す情報を含む。制御装置は、スレーブ装置から識別情報の実機値を取得するとともに、構成情報に含まれる識別情報と当該取得した識別情報の実機値とを照合する照合手段（１），（３）と、取得した識別情報の実機値と一致する識別情報を含む構成情報に対応する設定情報を、識別情報の実機値を取得したスレーブ装置へ与える設定手段（２），（４）とを含む。【選択図】図８
2014119912.tif 000002
【特許請求の範囲】
【請求項１】
各々が与えられた設定情報に従って動作する１つ以上のスレーブ装置とバスを介して通信可能に接続されて、マスタ装置として機能する制御装置であって、
前記設定情報と各スレーブ装置を特定するための識別情報とを含む構成情報をスレーブ装置別に格納するための記憶手段を備え、前記設定情報は、対応するスレーブ装置の前記バスにおける識別情報を示す情報を含み、
前記スレーブ装置から識別情報の実機値を取得するとともに、前記構成情報に含まれる識別情報と当該取得した識別情報の実機値とを照合する照合手段と、
前記取得した識別情報の実機値と一致する識別情報を含む構成情報に対応する設定情報を、前記識別情報の実機値を取得したスレーブ装置へ与える設定手段とを備える、制御装置。
【請求項２】
前記設定手段は、前記取得した識別情報の実機値と一致する識別情報を含む構成情報が存在しない場合に、当該識別情報の実機値を取得したスレーブ装置に対しては、設定情報を与えない、請求項１に記載の制御装置。
【請求項３】
前記照合手段は、前記取得した識別情報の実機値と一致する識別情報を含む構成情報が存在しない場合に、エラーを出力する、請求項１または２に記載の制御装置。
【請求項４】
前記構成情報は、対応するスレーブ装置が前記バスに現実に接続されているか否かの判断を無効化するための情報を含み、
前記照合手段は、前記構成情報に前記無効化するための情報が含まれている場合には、対応する識別情報と一致する識別情報の実機値がいずれのスレーブ装置からも取得されなくとも、エラーを出力しない、請求項３に記載の制御装置。
【請求項５】
前記照合手段は、前記設定情報に前記無効化するための情報が含まれている場合であって、対応する識別情報とは異なる識別情報の実機値がスレーブ装置から取得されたときには、エラーを出力する、請求項４に記載の制御装置。
【請求項６】
前記識別情報は、各スレーブ装置の種類を特定するための種別情報と、各スレーブ装置をユニークに特定するための個体識別番号とを含み、
前記照合手段は、前記種別情報および前記個体識別番号の両方を用いて照合を行うモードと、前記種別情報を用いて照合を行うモードとを選択可能に構成される、請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
各々が与えられた設定情報に従って動作する１つ以上のスレーブ装置とバスを介して通信可能に接続されて、マスタ装置として機能する処理装置において実行される制御プログラムであって、
前記処理装置は、前記設定情報と各スレーブ装置を特定するための識別情報とを含む構成情報をスレーブ装置別に格納するための記憶手段を備え、前記設定情報は、対応するスレーブ装置の前記バスにおける識別情報を示す情報を含み、
前記制御プログラムは、前記処理装置に、
前記スレーブ装置から識別情報の実機値を取得するとともに、前記構成情報に含まれる識別情報と当該取得した識別情報の実機値とを照合するステップと、
前記取得した識別情報の実機値と一致する識別情報を含む構成情報に対応する設定情報を、前記識別情報の実機値を取得したスレーブ装置へ与えるステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械や設備などの動作を制御するために用いられる制御装置に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable Logic Controller；以下「ＰＬＣ」とも称す）などからなる制御装置を含む制御システムによって制御される。このような制御システムにおいて、ＰＬＣは、ＣＰＵ（Central Processing Unit）ユニットと、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するＩＯ（Input Output）ユニットなどの機能ユニットとを含む。また、ＰＬＣは、ネットワークにより、複数のリモートＩＯターミナルと接続されこともある。このような各リモートＩＯターミナルは、通信カプラと、１または複数の機能ユニットとを含む。
【０００３】
このようなリモートＩＯターミナルは複数の機能ユニットを含むことが一般的であり、これらの機能ユニットが故障する場合なども生じ得る。このような機能ユニットの故障により制御システムが停止すると、制御対象の機械や設備も停止せざるを得ない。そのため、このような機能ユニットの故障時の迅速な復旧が要求される。
【０００４】
このような課題に対して、以下のような先行技術が存在する。例えば、特開２００７−１０２７６４号公報（特許文献１）に開示されるリモートターミナル装置は、各Ｉ／Ｏユニットのユニット情報並びに設定値情報を保存することが可能とされたバックアップ手段を有しており、交換されたＩ／Ｏユニットが所定のリストア条件を満たしているかどうかを判定することができる。また、特開２００８−０９７３６９号公報（特許文献２）は、ユニットのツールレスオンライン脱着が可能なプログラマブル・コントローラを開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１０２７６４号公報
【特許文献２】特開２００８−０９７３６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のような制御システムに対する低コスト化の要求や、ＰＬＣユニットの処理能力の向上などに伴って、単一のＰＬＣユニットに対して、より多くの機能ユニットが装着される傾向にある。これに伴って、ＰＬＣユニットで実行される制御プログラムも大規模化する傾向にある。このような制御システムを設計するにあたっては、機能ユニットをよりフレキシブルに追加／変更できることが好ましい。
【０００７】
これに対して、上述の先行技術に記載の構成は、既に設定されて稼働中の制御システムにおいて、機能ユニットなどの交換を容易化することを目的としているため、このようなニーズを考慮したものではない。
【０００８】
本発明は、上記のような点を考慮してなされたものであり、その目的は、システム構成をよりフレキシブルに追加／変更することができる環境を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のある局面に従えば、各々が与えられた設定情報に従って動作する１つ以上のスレーブ装置とバスを介して通信可能に接続されて、マスタ装置として機能する制御装置が提供される。制御装置は、設定情報と各スレーブ装置を特定するための識別情報とを含む構成情報をスレーブ装置別に格納するための記憶手段を含む。設定情報は、対応するスレーブ装置のバスにおける識別情報を示す情報を含む。制御装置は、スレーブ装置から識別情報の実機値を取得するとともに、構成情報に含まれる識別情報と当該取得した識別情報の実機値とを照合する照合手段と、取得した識別情報の実機値と一致する識別情報を含む構成情報に対応する設定情報を、識別情報の実機値を取得したスレーブ装置へ与える設定手段とを含む。
【００１０】
好ましくは、設定手段は、取得した識別情報の実機値と一致する識別情報を含む構成情報が存在しない場合に、当該識別情報の実機値を取得したスレーブ装置に対しては、設定情報を与えない。
【００１１】
好ましくは、照合手段は、取得した識別情報の実機値と一致する識別情報を含む構成情報が存在しない場合に、エラーを出力する。
【００１２】
さらに好ましくは、構成情報は、対応するスレーブ装置がバスに現実に接続されているか否かの判断を無効化するための情報を含み、照合手段は、構成情報に無効化するための情報が含まれている場合には、対応する識別情報と一致する識別情報の実機値がいずれのスレーブ装置からも取得されなくとも、エラーを出力しない。
【００１３】
さらに好ましくは、照合手段は、設定情報に無効化するための情報が含まれている場合であって、対応する識別情報とは異なる識別情報の実機値がスレーブ装置から取得されたときには、エラーを出力する。
【００１４】
好ましくは、識別情報は、各スレーブ装置の種類を特定するための種別情報と、各スレーブ装置をユニークに特定するための個体識別番号とを含み、照合手段は、種別情報および個体識別番号の両方を用いて照合を行うモードと、種別情報を用いて照合を行うモードとを選択可能に構成される。
【００１５】
本発明の別の局面に従えば、各々が与えられた設定情報に従って動作する１つ以上のスレーブ装置とバスを介して通信可能に接続されて、マスタ装置として機能する処理装置において実行される制御プログラムが提供される。処理装置は、設定情報と各スレーブ装置を特定するための識別情報とを含む構成情報をスレーブ装置別に格納するための記憶手段を備え、設定情報は、対応するスレーブ装置のバスにおける識別情報を示す情報を含む。制御プログラムは、処理装置に、スレーブ装置から識別情報の実機値を取得するとともに、構成情報に含まれる識別情報と当該取得した識別情報の実機値とを照合するステップと、取得した識別情報の実機値と一致する識別情報を含む構成情報に対応する設定情報を、識別情報の実機値を取得したスレーブ装置へ与えるステップとを実行させる。
【発明の効果】
【００１６】
本発明によれば、システム構成をよりフレキシブルに追加／変更することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態に係る制御システムの構成例を示す模式図である。
【図２】本実施の形態に係るリモートＩＯターミナルの接続構成を示す模式図である。
【図３】本実施の形態に係るリモートＩＯターミナルを構成する通信カプラのハードウェア構成を示す模式図である。
【図４】本実施の形態に係るリモートＩＯターミナルの機能ユニットのハードウェア構成を示す模式図である。
【図５】本実施の形態に係るＰＬＣの接続構成を示す模式図である。
【図６】本実施の形態に係るＰＬＣを構成するＣＰＵユニットのハードウェア構成を示す模式図である。
【図７】本実施の形態に係るＰＬＣに接続されるサポート装置のハードウェア構成を示す模式図である。
【図８】本実施の形態に係るユニット構成データの照合処理を説明するための模式図である。
【図９】本実施の形態に係る通信カプラに格納されるユニット構成管理情報Ｄ１のデータフォーマットの一例を示す図である。
【図１０】本実施の形態に係る機能ユニットに格納される固有の識別情報（実機値）Ｄ４０のデータフォーマットの一例を示す図である。
【図１１】本実施の形態に係る通信カプラに設定されるユニット無効化設定の一例を示す図である。
【図１２】図１１に示すユニット無効化設定において設定されるユニットＮｏの設定例を示す図である。
【図１３】図１１に示すユニット無効化設定において設定されるメモリ空間の一例を示す図である。
【図１４】本実施の形態に係るユニット無効化設定を含むユニット構成データの照合処理を説明するための模式図である。
【図１５】本実施の形態に係るユニット無効化設定の別に実行されるエラー出力処理の対応関係を示す図である。
【図１６】本実施の形態に係るユニット構成データの照合処理の処理手順を示すシーケンス図である。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１９】
＜Ａ．制御システムの構成例＞
まず、本実施の形態に係る制御システムの構成例について説明する。図１は、本実施の形態に係る制御システムの構成例を示す模式図である。図１を参照して、制御システムＳＹＳは、ＰＬＣ１と、フィールドネットワーク２を介してＰＬＣ１に接続されるサーボモータドライバ３およびリモートＩＯターミナル５と、フィールド機器である検出スイッチ６およびリレー７とを含む。ＰＬＣ１には、接続ケーブル１０などを介してサポート装置８が接続される。
【００２０】
ＰＬＣ１は、主たる演算処理を実行するＣＰＵユニット１３と、１つ以上の機能ユニット１４とを含む。これらの機能ユニット１４は、システムバス（内部バス）であるＰＬＣシステムバス１１を介して、データを互いに遣り取りできるように構成される。また、機能ユニット１４には、電源ユニット１２によって適切な電圧の電源が供給される。このような機能ユニット１４は、ＩＯユニットや特殊ユニットを含む。
【００２１】
ＩＯユニットは、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニットは、検出スイッチ６などのセンサが何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニットは、リレー７やアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００２２】
特殊ユニットは、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニットではサポートしない機能を有する。
【００２３】
フィールドネットワーク２は、ＣＰＵユニット１３と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、ＰＲＯＦＩＮＥＴ（登録商標）、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどがある。さらに、産業用イーサネット（登録商標）以外のフィールドネットワークを用いてもよい。例えば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ（登録商標）などを用いてもよい。
【００２４】
サーボモータドライバ３は、フィールドネットワーク２を介してＣＰＵユニット１３と接続されるとともに、ＣＰＵユニット１３からの指令値に従ってサーボモータ４を駆動する。
【００２５】
図１に示す制御システムＳＹＳのフィールドネットワーク２には、さらに、１つ以上のリモートＩＯターミナル５が接続されている。リモートＩＯターミナル５は、機能ユニット１４と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートＩＯターミナル５は、フィールドネットワーク２でのデータ伝送に係る処理を行うための通信カプラ５２と、１つ以上の機能ユニット５４（ＩＯユニットや特殊ユニットを含む）とを含む。これらの機能ユニット５４は、システムバス（内部バス）であるリモートＩＯターミナルバス５１を介して、データを互いに遣り取りできるように構成される。
【００２６】
通信カプラ５２は、機能ユニット５４の動作を制御するとともに、ＣＰＵユニット１３との間のデータ伝送を制御する。通信カプラ５２は、フィールドネットワーク２を介して、ＰＬＣ１のＣＰＵユニット１３に接続されている。
【００２７】
リモートＩＯターミナル５において、通信カプラ５２は、装着される機能ユニット５４（ＩＯユニットや特殊ユニット）との間のリモートＩＯターミナルバス５１を介したデータ伝送を主体的に（マスタとして）管理する。同様に、ＰＬＣ１において、ＣＰＵユニット１３は、装着される機能ユニット１４（ＩＯユニットや特殊ユニット）との間のＰＬＣシステムバス１１を介したデータ伝送を主体的に（マスタとして）管理する。
【００２８】
そこで、以下の説明では、リモートＩＯターミナル５における通信カプラ５２、および、ＰＬＣ１におけるＣＰＵユニット１３について、その機能に着目して「マスタ装置」あるいは「バスマスタ」とも称す。これに対して、リモートＩＯターミナル５において通信カプラ５２と接続される機能ユニット、および、ＰＬＣ１においてＣＰＵユニット１３と接続される機能ユニットについて、その機能に着目して「スレーブ装置」とも称す。
【００２９】
また、通信カプラ５２およびＣＰＵユニット１３においては、搭載されたプロセッサがシステムプログラムを実行するなどして、後述するような処理を実現する。そのため、通信カプラ５２およびＣＰＵユニット１３は、各種処理を実行する処理装置であるとも言える。
【００３０】
＜Ｂ．リモートＩＯターミナル５のハードウェア構成＞
次に、本実施の形態に係る制御システムＳＹＳの一部を構成するリモートＩＯターミナル５のハードウェア構成について説明する。
【００３１】
（ｂ１．接続構成）
図２は、本実施の形態に係るリモートＩＯターミナル５の接続構成を示す模式図である。図２を参照して、リモートＩＯターミナル５では、１つ以上の機能ユニット５４−１，５４−２，５４−３，…が通信ラインであるリモートＩＯターミナルバス５１（ダウンリンク５１１およびアップリンク５１２）を介して通信カプラ５２と互いにデータ伝送可能になっている。
【００３２】
一例として、ダウンリンク５１１およびアップリンク５１２では、シリアル通信が採用されており、対象のデータは、時系列に一列に並べられた形で伝送する。より具体的には、ダウンリンク５１１では、マスタ装置として機能する通信カプラ５２からスレーブ装置として機能する機能ユニット５４へ向けて、ダウンリンク５１１を介して一方向にデータが送信される。一方、アップリンク５１２では、いずれかの機能ユニット５４から通信カプラ５２へ向けて、アップリンク５１２を介して一方向にデータが送信される。
【００３３】
機能ユニット５４の各々は、ダウンリンク５１１またはアップリンク５１２を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、機能ユニット５４の各々は、フレームを再生成した上で、次段の機能ユニット５４へ再送信（フォワード）する。
【００３４】
データを含むフレームのこのような順次転送を実現するために、各機能ユニット５４は、ダウンリンク５１１に関して、受信部（以下「ＲＸ」とも記す。）２１０ａおよび送信部（以下「ＴＸ」とも記す。）２１０ｂを含むとともに、アップリンク５１２に関して、受信部２２０ａおよび送信部２２０ｂを含む。受信部２１０ａおよび２２０ａは、通信ラインであるリモートＩＯターミナルバス５１を介して他の機能ユニット５４からフレームとして送信されるデータを受信する。送信部２１０ｂおよび２２０ｂは、通信ラインであるリモートＩＯターミナルバス５１を介して他の機能ユニット５４へフレームとしてデータを送信する。
【００３５】
各機能ユニット５４は、プロセッサ２００を含み、プロセッサ２００がこれらのデータの処理を制御する。
【００３６】
通信カプラ５２は、演算主体であるプロセッサ１００と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。すなわち、通信カプラ５２は、リモートＩＯターミナルバス５１（ダウンリンク５１１およびアップリンク５１２）と接続されるだけではなく、受信部１１２および送信部１１４を介して、上位通信ネットワークであるフィールドネットワーク２とも接続される。フィールドバス制御部１１０は、フィールドネットワーク２を介したデータ伝送を管理し、内部バス制御部１３０は、リモートＩＯターミナルバス５１を介したデータ伝送を管理する。
【００３７】
（ｂ２．通信カプラ５２の構成）
図３は、本実施の形態に係るリモートＩＯターミナル５を構成する通信カプラ５２のハードウェア構成を示す模式図である。なお、図３には、機能ユニット５４の一例として、ＩＯユニットを示す。図３を参照して、リモートＩＯターミナル５の通信カプラ５２は、プロセッサ１００と、不揮発性メモリ１０１と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【００３８】
受信部１１２は、ＰＬＣ１からフィールドネットワーク２を介して送信される上位通信フレームを受信してデータへ復号した上で、フィールドバス制御部１１０へ出力する。送信部１１４は、フィールドバス制御部１１０から出力されるデータから上位通信フレームを再生成してフィールドネットワーク２を介して再送信（フォワード）する。
【００３９】
フィールドバス制御部１１０は、受信部１１２および送信部１１４と協働して、フィールドネットワーク２を介して予め定められた制御周期毎に他の装置（ＰＬＣ１および他のリモートＩＯターミナル５）との間でデータを送受信する。より具体的には、フィールドバス制御部１１０は、上位通信コントローラ１２０と、メモリコントローラ１２２と、ＦＩＦＯ（First In First Out）メモリ１２４と、受信バッファ１２６と、送信バッファ１２８とを含む。
【００４０】
上位通信コントローラ１２０は、ＰＬＣ１からフィールドネットワーク２を介して送信されるコマンドなどを解釈して、フィールドネットワーク２を介した通信を実現するために必要な処理を実行する。また、上位通信コントローラ１２０は、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームからのデータコピー、および上位通信フレームに対するデータ書込みの処理を行う。
【００４１】
メモリコントローラ１２２は、ＤＭＡ（Dynamic Memory Access）などの機能を実現する制御回路であり、ＦＩＦＯメモリ１２４、受信バッファ１２６および送信バッファ１２８などへのデータの書込み／読出しを制御する。
【００４２】
ＦＩＦＯメモリ１２４は、フィールドネットワーク２を介して受信された上位通信フレームを一時的に格納するとともに、その格納された順序に従って上位通信フレームを順次出力する。受信バッファ１２６は、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームに含まれるデータのうち、自装置に接続されている機能ユニット５４の出力部から出力すべき状態値を示すデータを抽出して一時的に格納する。送信バッファ１２８は、機能ユニット５４の入力部で検出された状態値を示すプロセスデータであって、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームの所定領域に書込むべきデータを一時的に格納する。
【００４３】
プロセッサ１００は、フィールドバス制御部１１０および内部バス制御部１３０に対して指示を与えるとともに、フィールドバス制御部１１０と内部バス制御部１３０との間のデータ転送などを制御する。
【００４４】
不揮発性メモリ１０１は、システムプログラム１０２およびユニット構成管理情報Ｄ１を格納する。ユニット構成管理情報Ｄ１は、機能ユニット５４の設定情報を含む。このユニット構成管理情報Ｄ１の詳細については後述する。
【００４５】
内部バス制御部１３０は、リモートＩＯターミナルバス５１（ダウンリンク５１１およびアップリンク５１２）を介して機能ユニット５４との間でフレーム（データ）を送受信する。
【００４６】
より具体的には、内部バス制御部１３０は、内部バス通信コントローラ１３２と、送信回路１４２と、受信回路１４４と、記憶部１６０とを含む。
【００４７】
内部バス通信コントローラ１３２は、リモートＩＯターミナルバス５１を介したデータ伝送を主体的に管理する。送信回路１４２は、内部バス通信コントローラ１３２からの指示に従って、リモートＩＯターミナルバス５１のダウンリンク上を流れるフレームを生成して送信する。受信回路１４４は、リモートＩＯターミナルバス５１のアップリンク上を流れるフレームを受信して、内部バス通信コントローラ１３２へ出力する。
【００４８】
記憶部１６０は、リモートＩＯターミナルバス５１を伝送するフレーム（データ）を格納するバッファメモリに相当する。より具体的には、記憶部１６０は、共有メモリ１６２と、受信バッファ１６４と、送信バッファ１６６とを含む。共有メモリ１６２は、フィールドバス制御部１１０と内部バス制御部１３０との間で遣り取りされるデータを一時的に格納する。受信バッファ１６４は、リモートＩＯターミナルバス５１を介して機能ユニット５４から受信したデータを一時的に格納する。送信バッファ１６６は、フィールドバス制御部１１０で受信された上位通信フレームに含まれるデータを一時的に格納する。
【００４９】
（ｂ３．機能ユニット５４の構成）
図４は、本実施の形態に係るリモートＩＯターミナル５の機能ユニット５４のハードウェア構成を示す模式図である。図４を参照して、リモートＩＯターミナル５の機能ユニット５４の各々は、逆シリアル変換器（de-serializer：以下「ＤＥＳ部」とも称す。）２１２，２２２と、シリアル変換器（ＳＥＲ：serializer：以下「ＳＥＲ部」とも称す。）２１６，２２６と、フォワードコントローラ２１４，２２４とを含む。さらに、機能ユニット５４の各々は、バス２５０を介して互いに接続された、受信処理部２３０と、送信処理部２４０と、プロセッサ２００と、共有メモリ２０２と、ＩＯモジュール２０６と、メモリ２０８とを含む。メモリ２０８は、一例として、揮発性領域と不揮発性領域とを含む。
【００５０】
ＤＥＳ部２１２、フォワードコントローラ２１４およびＳＥＲ部２１６は、図２に示すダウンリンク５１１についての受信部２１０ａおよび送信部２１０ｂに対応する。これらの部分は、ダウンリンク５１１を流れるフレームの送受信に係る処理を実行する。同様に、ＤＥＳ部２２２、フォワードコントローラ２２４およびＳＥＲ部２２６は、図２に示すアップリンク５１２についての受信部２２０ａおよび送信部２２０ｂに対応する。これらの部分は、アップリンク５１２を流れるフレームの送受信に係る処理を実行する。
【００５１】
受信処理部２３０は、復号部２３２と、ＣＲＣチェック部２３４とを含む。復号部２３２は、受信されたフレームを所定のアルゴリズムに従ってデータへ復号する。ＣＲＣチェック部２３４は、フレームの最後に付加されるフレームチェックシーケンス（Frame Check Sequence：ＦＣＳ）などに基づいて誤りチェック（例えば、ＣＲＣ（Cyclic Redundancy Check）符号）を行う。
【００５２】
送信処理部２４０は、フォワードコントローラ２１４および２２４に接続され、プロセッサ２００などからの指示に従って、次段の機能ユニット５４へ再送信（フォワード）するフレームの生成およびタイミング制御などを行う。また、送信処理部２４０は、プロセッサ２００などと協働して、次段の機能ユニット５４へ送信すべきデータを生成する。より具体的には、送信処理部２４０は、ＣＲＣ生成部２４２と、符号化部２４４とを含む。ＣＲＣ生成部２４２は、プロセッサ２００などからのデータに対して誤り制御符号（ＣＲＣ）を算出して、当該データを格納するフレームに付加する。符号化部２４４は、ＣＲＣ生成部２４２からのデータを符号化し、対応するフォワードコントローラ２１４または２２４へ出力する。
【００５３】
プロセッサ２００は、機能ユニット５４を主体的に制御する演算主体である。より具体的には、プロセッサ２００は、受信処理部２３０を介して受信されたフレームを共有メモリ２０２に格納し、あるいは共有メモリ２０２から所定のデータを読み出して送信処理部２４０へ出力し、フレームを生成させる。
【００５４】
共有メモリ２０２は、受信処理部２３０を介して受信されたフレームを一時的に格納するための受信バッファ２０３と、送信処理部２４０へ介して送信するためのフレームを一時的に格納するための送信バッファ２０４とを含む。また、共有メモリ２０２は、各種データを格納するための領域を含む。
【００５５】
ＩＯモジュール２０６は、外部のスイッチやセンサからの入力信号を受信し、その値を共有メモリ２０２に書込むとともに、共有メモリ２０２の対応する領域に書込まれた値に従って、その信号を外部のリレーやアクチュエータへ出力する。
【００５６】
メモリ２０８は、システムプログラム２０９および設定情報Ｄ５０を格納する。典型的には、システムプログラム２０９は、メモリ２０８の不揮発性領域に格納され、設定情報Ｄ５０は、メモリ２０８の揮発性領域に格納される。
【００５７】
＜Ｃ．ＰＬＣ１のハードウェア構成＞
次に、本実施の形態に係る制御システムＳＹＳの一部を構成するＰＬＣ１のハードウェア構成について説明する。
【００５８】
（ｃ１．接続構成）
図５は、本実施の形態に係るＰＬＣ１の接続構成を示す模式図である。図５を参照して、ＰＬＣ１においても、上述のリモートＩＯターミナル５と同様に、ＣＰＵユニット１３および１つ以上の機能ユニット１４−１，１４−２，１４−３，…が通信ラインであるＰＬＣシステムバス１１（ダウンリンク６１１およびアップリンク６１２）を介して互いにデータ伝送可能になっている。
【００５９】
機能ユニット１４の各々は、ダウンリンク６１１またはアップリンク６１２を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、機能ユニット１４の各々は、フレームを再生成した上で、次段の機能ユニット１４へ再送信（フォワード）する。各機能ユニット１４は、ダウンリンク６１１に関して、受信部（ＲＸ）２１０ａおよび送信部（ＴＸ）２１０ｂを含むとともに、アップリンク６１２に関して、受信部２２０ａおよび送信部２２０ｂを含む。
【００６０】
ＣＰＵユニット１３は、プロセッサ１５０と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【００６１】
（ｃ２．通信カプラ５２の構成）
図６は、本実施の形態に係るＰＬＣ１を構成するＣＰＵユニット１３のハードウェア構成を示す模式図である。図６を参照して、ＰＬＣ１のＣＰＵユニット１３は、プロセッサ１５０と、主メモリ１５２と、不揮発性メモリ１５４と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。不揮発性メモリ１５４は、ユーザプログラム１５６、システムプログラム１５８、およびユニット構成管理情報Ｄ１を格納する。ＣＰＵユニット１３のデータ伝送に係る基本的な構成は、上述の通信カプラ５２（図２）と同様であるので、対応する部分（同一の参照符号を付している）についての説明は繰り返さない。
【００６２】
ＣＰＵユニット１３のプロセッサ１５０は、対象の制御を実現するためのプログラムを実行する。より具体的には、ＣＰＵユニット１３は、不揮発性メモリ１５４などからユーザプログラム１５６およびシステムプログラム１５８を読み出すとともに、主メモリ１５２に展開して実行する。このユーザプログラム１５６およびシステムプログラム１５８の実行によって、機能ユニット１４の入力部によって検出された状態値に基づいて、機能ユニット１４の出力部から出力すべき状態値が順次算出される。
【００６３】
ＰＬＣ１の機能ユニット１４の構成については、上述したリモートＩＯターミナル５の機能ユニット５４の構成（図４参照）と同様であるので、詳細な説明は繰り返さない。
【００６４】
＜Ｄ．サポート装置８＞
次に、本実施の形態に係るＰＬＣ１に接続されるサポート装置８について説明する。図７は、本実施の形態に係るＰＬＣ１に接続されるサポート装置８のハードウェア構成を示す模式図である。図７を参照して、サポート装置８は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００６５】
図７を参照して、サポート装置８は、ＯＳ（Operating System）を含む各種プログラムを実行するＣＰＵ８１と、ＢＩＯＳ（Basic Input Output System）や各種データを格納するＲＯＭ（Read Only Memory）８２と、ＣＰＵ８１でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ８３と、ＣＰＵ８１で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）８４とを含む。ハードディスク８４は、ツールプログラム８４１を格納している。
【００６６】
サポート装置８は、さらに、ユーザからの操作を受け付けるキーボード８５およびマウス８６と、情報をユーザに提示するためのディスプレイ８７とを含む。さらに、サポート装置８は、ＰＬＣ１（ＣＰＵユニット１３）などと通信するための通信インターフェイス（ＩＦ）を含む。
【００６７】
後述するように、サポート装置８で実行されるツールプログラム８４１は、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）９に格納されて流通する。このＣＤ−ＲＯＭ９に格納されたプログラムは、ＣＤ−ＲＯＭ駆動装置８８によって読取られ、ハードディスク８４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００６８】
＜Ｅ．ユニット構成データの照合処理の概要＞
次に、本実施の形態に係る通信カプラ５２およびＣＰＵユニット１３におけるバスマスタとしての機能の一つとして、ユニット構成データの照合処理について説明する。以下の説明では、説明の便宜上、リモートＩＯターミナル５における照合処理について例示するが、ＰＬＣ１においても同様の照合処理を適用できる。
【００６９】
図８は、本実施の形態に係るユニット構成データの照合処理を説明するための模式図である。図８を参照して、本実施の形態に係るバスマスタとして機能する通信カプラ５２は、スレーブ装置としての機能ユニット５４に対して、予め設定された設定情報Ｄ２４を与える。機能ユニット５４の各々は、通信カプラ５２によって与えられる設定情報Ｄ５０に従って動作する。この設定情報Ｄ２４を与える処理は、例えば、リモートＩＯターミナル５の電源投入時やリセット時などのユニット構成情報の照合実施タイミングに実行される。
【００７０】
このような構成を採用することで、リモートＩＯターミナル５の電源がオフされている期間において、機能ユニット５４の各々は自身の設定情報Ｄ５０を記憶しておく必要がない。そのため、機能ユニット５４の構成をより簡素化できる。
【００７１】
より具体的には、通信カプラ５２は、ユーザがサポート装置８などを操作して予め設定したユニット構成管理情報Ｄ１を格納している。このユニット構成管理情報Ｄ１は、機能ユニット５４毎のユニット構成データＤ２０を含む。ユニット構成データＤ２０の各々は、対象とする機能ユニット５４を特定するための識別情報Ｄ２２と、対象とする機能ユニット５４に対して与えるための設定情報Ｄ２４とを含む。
【００７２】
設定情報Ｄ２４を対象の機能ユニット５４へ与える前に、通信カプラ５２は、各機能ユニット５４から固有の識別情報（実機値）Ｄ４０を取得し、この取得した識別情報（実機値）Ｄ４０と予め格納されているユニット構成データＤ２０に含まれる識別情報Ｄ２２とを照合する。そして、通信カプラ５２は、正しく照合された機能ユニット５４に対してのみ、対応する設定情報Ｄ２４を与える。
【００７３】
通信カプラ５２から与えられる設定情報Ｄ２４（機能ユニット５４が格納する設定情報Ｄ５０）は、対応する機能ユニット５４のリモートＩＯターミナルバス５１における識別情報を含む。このようなリモートＩＯターミナルバス５１における識別情報として、「ユニットＮｏ」を用いる例について説明する。本実施の形態に係るリモートＩＯターミナル５では、この「ユニットＮｏ」は、リモートＩＯターミナルバス５１上の機能ユニット５４が装着される物理的な位置（すなわち、スロット位置）とは独立して設定することができる。そのため、例えば、３番目のスロット位置に装着された機能ユニット５４に対して、ユニットＮｏとして「５」を設定するようなことも可能である。
【００７４】
このユニットＮｏは、各機能ユニット５４がリモートＩＯターミナルバス５１上でデータ伝送を行うために必要な識別子である。そのため、ユニットＮｏを含む設定情報Ｄ５０が与えられない機能ユニット５４は、リモートＩＯターミナルバス５１上で有効にデータ伝送を行うことができない。つまり、設定情報Ｄ５０が与えられない機能ユニット５４は、無効化（deactivate）の状態になる。
【００７５】
図８に示すように、マスタ装置（バスマスタ）として機能する制御装置である通信カプラ５２は、各々が与えられた設定情報Ｄ５０に従って動作する１つ以上のスレーブ装置（機能ユニット５４）とリモートＩＯターミナルバス５１を介して通信可能に接続されている。通信カプラ５２は、設定情報Ｄ２４と各機能ユニット５４を特定するための識別情報Ｄ２２とを含む構成情報を機能ユニット５４別に格納するための記憶部（図３に示す不揮発性メモリ１０１など）を有している。この設定情報Ｄ２４は、対応する機能ユニット５４のリモートＩＯターミナルバス５１における識別情報（ユニットＮｏ）を含む。
【００７６】
そして、通信カプラ５２は、電源投入時やリセット時などに、機能ユニット５４−１から識別情報（実機値）Ｄ４０を取得するとともに、構成情報に含まれる識別情報Ｄ２２と当該取得した識別情報（実機値）Ｄ４０とを照合する（図８に示す（１）照合）。そして、通信カプラ５２は、取得した識別情報（実機値）Ｄ４０と一致する識別情報Ｄ２２を含む構成情報に対応する設定情報Ｄ２４を、その識別情報（実機値）Ｄ４０を取得した機能ユニット５４−１へ与える（図８に示す（２）設定）。通信カプラ５２は、別の機能ユニット５４−２についても、識別情報（実機値）Ｄ４０を取得するとともに、構成情報に含まれる識別情報Ｄ２２と当該取得した識別情報（実機値）Ｄ４０とを照合し（図８に示す（３）照合）、取得した識別情報（実機値）Ｄ４０と一致する識別情報Ｄ２２を含む構成情報に対応する設定情報Ｄ２４を、その識別情報（実機値）Ｄ４０を取得した機能ユニット５４−２へ与える（図８に示す（４）設定）。
【００７７】
なお、図８には、説明の便宜上、機能ユニット５４の接続順（通信カプラ５２から近い順）に、識別情報（実機値）Ｄ４０を取得する例を示すが、リモートＩＯターミナルバス５１に接続されているすべての機能ユニット５４に対して、識別情報（実機値）Ｄ４０を要求する信号を一斉に送信（ブロードキャストまたはマルチキャスト）してもよい。この場合には、機能ユニット５４の各々は、自ユニットが保持している識別情報（実機値）Ｄ４０を通信カプラ５２へ応答する。
【００７８】
このように、予め格納されたユニット構成データＤ２０と機能ユニット５４からの識別情報（実機値）Ｄ４０との照合が成功した場合に限って、設定情報Ｄ５０を与えるようにする。言い換えれば、通信カプラ５２は、取得した識別情報（実機値）Ｄ４０と一致する識別情報Ｄ２２を含む構成情報が存在しない場合に、当該識別情報（実機値）Ｄ４０を取得した機能ユニット５４に対しては、設定情報Ｄ２４を与えない。さらに、ユーザが予め設定された構成情報とは異なった機能ユニット５４を装着したような場合には、エラーなどを通知してもよい。
【００７９】
上述のような照合処理に伴って、リモートＩＯターミナルバス５１における識別情報（ユニットＮｏ）を各機能ユニット５４に対して任意に設定できるので、システム構成をよりフレキシブルに追加／変更することができる。
【００８０】
上述した照合処理などの詳細については、関連する処理を含めて後述する。
＜Ｆ．データ構造＞
次に、通信カプラ５２に格納されるユニット構成管理情報Ｄ１および機能ユニット５４が格納する識別情報（実機値）Ｄ４０のデータ構造について説明する。
【００８１】
（ｆ１．ユニット構成管理情報Ｄ１）
図９は、本実施の形態に係る通信カプラ５２に格納されるユニット構成管理情報Ｄ１のデータフォーマットの一例を示す図である。図９を参照して、ユニット構成管理情報Ｄ１は、各機能ユニット５４についてのユニット構成データＤ２０とを含む。
【００８２】
（ｆ２．ユニット構成データＤ２０）
ユニット構成データＤ２０は、各機能ユニット５４に関する情報を含む。ユニット構成データＤ２０の各々は、ユニット構成情報を含む。ユニット構成情報は、識別情報Ｄ２２と、設定情報Ｄ２４とを含む。識別情報Ｄ２２は、Product Codeと、シリアル番号との情報を含む。これらの情報は、対応する機能ユニット５４を識別するための固有の情報である。より具体的には、Product Codeは、各機能ユニット５４の種類を特定するための種別情報に相当する。シリアル番号は、各機能ユニット５４をユニークに特定するための個体識別番号に相当する。
【００８３】
設定情報Ｄ２４は、ユニットＮｏと、ユニット無効化設定とを含む。ユニットＮｏは、対応する機能ユニット５４のリモートＩＯターミナルバス５１における識別情報に相当する。後述するように、ユニット無効化設定が「ＯＮ」に設定（つまり、対応する機能ユニット５４が無効化された）状態であっても、対応するユニットＮｏが付与される。ユニット無効化設定は、対応する機能ユニット５４（スレーブ装置）がリモートＩＯターミナルバス５１に現実に接続されているか否かの判断を無効化するための情報に相当する。より具体的にはユニット無効化設定は、「０」または「１」により、対応する機能ユニット５４が無効化されているか否かを示す。
【００８４】
（ｆ３．固有の識別情報（実機値）Ｄ４０）
図１０は、本実施の形態に係る機能ユニット５４に格納される固有の識別情報（実機値）Ｄ４０のデータフォーマットの一例を示す図である。図１０を参照して、固有の識別情報（実機値）Ｄ４０は、ユニット構成管理情報Ｄ１に含まれる識別情報Ｄ２２と同様に、Product Codeと、シリアル番号との情報を含む。これらの情報の詳細については、上述したので、その説明は繰り返さない。
【００８５】
＜Ｇ．機能ユニットの無効化処理＞
上述したように、本実施の形態に係るバスマスタ（通信カプラ５２およびＣＰＵユニット１３）は、ユニット構成データが正しく照合された機能ユニット５４に対して設定情報Ｄ５０を与える。この設定情報Ｄ５０が与えられない機能ユニット５４については、無効化された状態に維持される。このような機能に加えて、特定の機能ユニット５４について予め無効化できるように設定してもよい。以下、この機能ユニットの無効化処理について説明する。
【００８６】
例えば、機能ユニット５４の将来的な拡張や機能ユニット５４のレイアウトの均一化などを考慮して、ユーザプログラムにおいては使用しないが、システム構成上は、いくつかの機能ユニット５４を含むように設定される場合がある。このような場合、上述のユニット構成データの照合処理において、そのような機能ユニット５４がリモートＩＯターミナルバス５１に実際に装着されているか否かについては判断しない（無視する）ように設定することが好ましい。図９のユニット構成管理情報Ｄ１の設定情報Ｄ２４に含まれるユニット無効化設定は、このような設定に向けられている。
【００８７】
但し、このようなユニット無効化設定がなされた機能ユニット５４がリモートＩＯターミナルバス５１に脱着されることで、その前後に位置する機能ユニット５４へ影響を与えることは好ましくない。例えば、ユニット無効化設定がなされた機能ユニット５４が追加されることで、その次位に装着された機能ユニット５４を参照するユーザプログラムなどの再構成（リビルド）などが必要になるといった事態は避ける必要がある。
【００８８】
そこで、本実施の形態においては、ユニット無効化設定がなされた機能ユニット５４に対して割り当てる予定の、リモートＩＯターミナルバス５１における識別情報（本実施の形態においては、ユニットＮｏ）を予め設定しておく。さらに、ユニット無効化設定がなされた機能ユニット５４が利用する予定のメモリ空間についても予め確保しておく。
【００８９】
すなわち、ユニット無効化設定がなされた機能ユニット５４がいつ有効化されても他の部位へ影響を及ぼさないように、ユニットＮｏおよびメモリ空間に対する予約処理が実行される。
【００９０】
図１１は、本実施の形態に係る通信カプラ５２に設定されるユニット無効化設定の一例を示す図である。図１２は、図１１に示すユニット無効化設定において設定されるユニットＮｏの設定例を示す図である。図１３は、図１１に示すユニット無効化設定において設定されるメモリ空間の一例を示す図である。
【００９１】
図１１に示すユニット構成情報では、４つの機能ユニット５４が装着されるように設定されている。それぞれの機能ユニット５４の識別情報は、「ＡＡＡ」，「ＢＢＢ」，「ＣＣＣ」，「ＤＤＤ」であるとする。これらの機能ユニット５４のうち２番目の機能ユニット５４に対して、ユニット無効化設定がなされているとする。このようなユニット構成情報を図１２（ａ）〜（ｃ）にそれぞれ示すようなリモートＩＯターミナルの実構成に適用した場合を考える。
【００９２】
図１２（ａ）に示すリモートＩＯターミナル５においては、それぞれ「ＡＡＡ」，「ＢＢＢ」，「ＣＣＣ」，「ＤＤＤ」の固有の識別情報（実機値）を含む機能ユニット５４−１〜５４−４が装着されている。このような実構成において、固有の識別情報（実機値）として「ＢＢＢ」を含む機能ユニット５４−２は無効化される。すなわち、機能ユニット５４−２に対して、ユニットＮｏは割り当てられない。
【００９３】
但し、機能ユニット５４−２に対応するユニット構成データＤ２０に設定されるユニットＮｏは、機能ユニット５４−１および５４−３にそれぞれ対応するユニット構成データＤ２０に設定されるユニットＮｏの値と同一にすることはできず、異なる値に設定する必要がある。そのため、機能ユニット５４−２に割り当てられるユニットＮｏは、実質的に予約されることになる。
【００９４】
図１２（ｂ）に示すリモートＩＯターミナル５においては、図１２（ａ）に示す実構成に比較して、固有の識別情報（実機値）として「ＢＢＢ」を含む機能ユニット５４−２が存在しない。このような実構成であっても、機能ユニット５４−１，５４−３，５４−４に対して、それぞれユニットＮｏが有効に割り当てられる。すなわち、図１２（ａ）と図１２（ｂ）とを比較すると、機能ユニット５４−３，５４−４の装着されるスロット位置は変化しているが、このスロット位置の変化に影響を受けず、予め定められたユニットＮｏが割り当てられる。そのため、ユーザプログラムなどを修正する必要はない。
【００９５】
これに対して、図１２（ｃ）に示す実構成においては、図１２（ａ）に示す実構成に比較して、機能ユニット５４−２に代えて、固有の識別情報（実機値）として「ＥＥＥ」を含む機能ユニット５４−５が装着されている。図１２（ｃ）に示すような実構成における機能ユニット５４−５の存在に対して、無効化（ユニットＮｏを割り当てない）のみを行ってエラーを通知しないようにしてもよいし、本来のユニット無効化設定とは異なった機能ユニット５４−５が装着されていることをもってエラーを通知するようにしてもよい。
【００９６】
上述のように、リモートＩＯターミナルバス５１上にユニット無効化設定がなされた機能ユニット５４の存在は不定である。そのため、ユニット無効化設定がなされた機能ユニット５４の存在に影響を受けることなく、リモートＩＯターミナルバス５１でのデータ伝送を実現するために、そのような機能ユニット５４に対しても、データの入出力に係るメモリ領域を確保しておく。例えば、図１１に示すユニット無効化設定に対応して、図１３に示すようなメモリ空間が割り当てられる。すなわち、ユニット無効化設定がなされた機能ユニット５４−２に対しても、予めメモリ領域が割り当てられており、機能ユニット５４−２の有無がいつ有効化されても他の部位へ影響を及ぼさないようになっている。
【００９７】
＜Ｈ．ユニット無効化設定を含むユニット構成データの照合処理＞
次に、上述したようなユニット無効化設定を含むユニット構成データの照合処理について説明する。
【００９８】
図１４は、本実施の形態に係るユニット無効化設定を含むユニット構成データの照合処理を説明するための模式図である。図１４を参照して、通信カプラ５２にはユニット構成データ１，２，３…が予め設定されており、このうち、ユニット構成データ２に対してユニット無効化設定がなされている（つまり、無効化されている）とする。
【００９９】
バスマスタとして機能する通信カプラ５２は、ユニット構成情報の照合実施タイミングが到来すると、まず、機能ユニット５４−１から識別情報（実機値）Ｄ４０を取得するとともに、ユニット構成データ１に含まれる識別情報Ｄ２２と当該取得した識別情報（実機値）Ｄ４０とを照合する（図１４に示す（１）照合）。そして、通信カプラ５２は、ユニット構成データ１に含まれる識別情報Ｄ２２が取得した識別情報（実機値）Ｄ４０と一致すれば、対応する識別情報Ｄ２２を機能ユニット５４−１へ与える（図１４に示す（２）設定）。
【０１００】
続いて、通信カプラ５２は、機能ユニット５４−１に隣接するスロット位置に装着されている機能ユニット５４−３から識別情報（実機値）Ｄ４０を取得するとともに、ユニット構成データ２に含まれる識別情報Ｄ２２と当該取得した識別情報（実機値）Ｄ４０とを照合する（図１４に示す（３）照合）。この場合には、ユニット構成データ２に対してユニット無効化設定がなされているので、通信カプラ５２は、無効化用処理を実行する（図１４に示す（４）無効化用処理）。この無効化用処理は、図１３に示すようなメモリ領域の確保を含む。但し、通信カプラ５２からの設定情報の設定は行われない。
【０１０１】
さらに、通信カプラ５２は、機能ユニット５４−３から識別情報（実機値）Ｄ４０を取得するとともに、ユニット構成データ３に含まれる識別情報Ｄ２２と当該取得した識別情報（実機値）Ｄ４０とを照合する（図１４に示す（５）照合）。なお、この例では、機能ユニット５４−３から識別情報（実機値）Ｄ４０を再度取得する必要しなくともよい。そして、通信カプラ５２は、ユニット構成データ３に含まれる識別情報Ｄ２２が取得した識別情報（実機値）Ｄ４０と一致すれば、対応する識別情報Ｄ２２を機能ユニット５４−３へ与える（図１４に示す（６）設定）。
【０１０２】
このように、ユニット構成データＤ２０がユニット無効化設定を含むことで、識別情報Ｄ２２と一致する識別情報（実機値）Ｄ４０が取得されない場合もあり、このような場合には、機能ユニット５４に対して設定情報Ｄ５０が与えられないが、対応するメモリ領域が確保される。これによって、ユニット無効化設定が解除され、対応する機能ユニット５４が有効化された場合であっても、ユーザプログラムなどの変更は必要ない。
【０１０３】
＜Ｉ．ユニット構成データの照合処理の詳細＞
（ｉ１：照合処理の対象データ）
再度図９および図１０を参照して、照合処理に用いられる識別情報Ｄ２２および識別情報（実機値）Ｄ４０は、Product Codeと、シリアル番号との情報を含む。これらの情報をすべて照合処理に用いてもよいが、その一部の情報のみを用いるようにしてもよい。
【０１０４】
例えば、シリアル番号は、機能ユニット５４に対してユニークに付与される番号であり、特定の機能ユニット５４が装着されているか否かを判断する場合に有効である。例えば、制御システムの開発メーカが使用される機能ユニット５４に制限を加えたいような場合に、照合処理にシリアル番号を用いることが好適である。
【０１０５】
一方、機能ユニット５４が故障などによって交換される場合もあり、このような場合には、同一機能および同一性能の機能ユニット５４であれば、予め設定された特定の機能ユニット５４に制限する必要はない。そのため、ユニット構成データの照合処理では、予め設定されたフラグなどに応じて、シリアル番号を用いるか否かを任意に設定できるようにしてもよい。
【０１０６】
また、Product Codeについても、ユニット構成データの照合処理において比較対象とすることが好ましい。
【０１０７】
このように、通信カプラ５２は、種別情報（Product Code）および個体識別番号（シリアル番号）の両方を用いて照合を行うモードと、種別情報を用いて照合を行うモードとを選択可能に構成される。
【０１０８】
（ｉ２：ユニット無効化設定における動作モード）
上述したように、ユニット無効化設定がなされた機能ユニット５４については、リモートＩＯターミナルバス５１に実際に装着されているか否かにかかわらず、ユニットＮｏおよびメモリ空間に対する予約処理が実行される。そのため、ユニット構成データの照合処理において、ユニット無効化設定がなされた機能ユニット５４から固有の識別情報（実機値）Ｄ４０を取得できない場合、つまりユニット無効化設定がなされた機能ユニット５４がリモートＩＯターミナルバス５１に実際に装着されていない場合には、エラーを出力しない。但し、図１２（ｃ）を参照して説明したように、ユニット構成データＤ２０において設定された（すなわち、装着予定の）機能ユニット５４とは異なる機能ユニット５４が装着された場合には、エラーを出力するようにしてもよい。
【０１０９】
図１５は、本実施の形態に係るユニット無効化設定の別に実行されるエラー出力処理の対応関係を示す図である。図１５を参照して、例えば、図１２（ｃ）に示すような状況におけるエラー出力処理が異なる２つのモード（モード１およびモード２）を用意してもよい。なお、エラーの出力方法としては、接続されているサポート装置８の画面上にエラーメッセージを表示する方法や、通信カプラ５２に設けられたインジケータ（表示手段）にエラーを示す表示（例えば、特定のランプを点灯／点滅させるなど）を行う方法が考えられる。
【０１１０】
いずれのモードにおいても、通信カプラ５２は、無効化されていない機能ユニット５４に関して、取得した識別情報（実機値）Ｄ４０と一致する識別情報Ｄ２２を含む構成情報に対応する設定情報Ｄ２４を含む構成情報が存在しない場合に、エラーを出力する。すなわち、図１５に示す表において、「無効化されていない機能ユニット」の「設定されている識別情報と識別情報（実機値）とが不一致」の場合には、「エラー出力」となる。
【０１１１】
同様に、いずれのモードにおいても、通信カプラ５２は、無効化されている機能ユニット５４に関して、対応する識別情報（実機値）Ｄ４０を取得できなかった場合には、エラーを出力しない。すなわち、通信カプラ５２は、構成情報に無効化するための情報が含まれている場合には、対応する識別情報Ｄ２２と一致する識別情報（実機値）Ｄ４０がいずれの機能ユニット５４（スレーブ装置）からも取得されなくとも、エラーを出力しない。これは、図１５に示す表において、「無効化されている機能ユニット」の「識別情報（実機値）が存在しない」の場合に「エラー無」になる動作に対応する。
【０１１２】
一方、モード１において、通信カプラ５２は、無効化されている機能ユニット５４に関して、対応する識別情報Ｄ２２とは異なる識別情報（実機値）Ｄ４０が取得されたときには、エラーを出力する。すなわち、通信カプラ５２は、設定情報に無効化するための情報が含まれている場合であって、対応する識別情報Ｄ２２とは異なる識別情報（実機値）Ｄ４０が機能ユニット５４（スレーブ装置）から取得されたときには、エラーを出力する。これは、図１５に示す表の「モード１」において、「無効化されている機能ユニット」の「設定されている識別情報と識別情報（実機値）とが不一致」の場合に「エラー出力」になる動作に対応する。
【０１１３】
このように、ユニット無効化設定の内容に応じてエラー出力処理を異ならせることで、よりユーザフレンドリで使いやすい制御システムを実現できる。
【０１１４】
＜Ｊ．処理手順＞
次に、本実施の形態に係るユニット構成データの照合処理の処理手順について説明する。図１６は、本実施の形態に係るユニット構成データの照合処理の処理手順を示すシーケンス図である。図１６に示す処理手順は、サポート装置８、通信カプラ５２、および機能ユニット５４−１，５４−２，…によって実行される。
【０１１５】
サポート装置８は、典型的には、図７に示すようにＣＰＵ８１がツールプログラム８４１を実行することで、図１６に示す対応する処理を実行する。通信カプラ５２は、図３に示すようにプロセッサ１００がシステムプログラム１０２を実行することで、図１６に示す対応する処理を実行する。機能ユニット５４の各々は、図４に示すようにプロセッサ２００がシステムプログラム２０９を実行することで、図１６に示す対応する処理を実行する。なお、通信カプラ５２および機能ユニット５４については、プロセッサがシステムプログラムを実行する形態に代えて、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-programmable gate array）などのハードウェアを用いて実現してもよい。
【０１１６】
図１６を参照して、まず、ユーザは、サポート装置８を操作して、対象のリモートＩＯターミナルバス５１に係るユニット構成管理情報Ｄ１を生成する（シーケンスＳＱ１００）。そして、ユーザ操作に従って、サポート装置８は、生成されたユニット構成管理情報Ｄ１を通信カプラ５２へ送信する（シーケンスＳＱ１０２）。なお、ユニット構成管理情報Ｄ１の通信カプラ５２への送信は、サポート装置８を通信カプラ５２に接続して行ってもよいし、フィールドネットワーク２を介して接続されるＣＰＵユニット１３にサポート装置８を接続して行ってもよい。
【０１１７】
電源投入時やリセット時などのユニット構成情報の照合実施タイミングになると、通信カプラ５２は、リモートＩＯターミナルバス５１を介して、識別情報（実機値）Ｄ４０の要求信号を接続されている機能ユニット５４の各々に対して送信する（シーケンスＳＱ１０４）。図１６に示す例では、識別情報（実機値）Ｄ４０の要求信号をブロードキャストによって送信する例を示すが、メッセージ通信を用いて、機能ユニット５４の各々に対して逐次送信するようにしてもよい。
【０１１８】
機能ユニット５４の各々は、識別情報（実機値）Ｄ４０の要求信号に応答して、自ユニットが保持している識別情報（実機値）Ｄ４０を通信カプラ５２へ応答する（シーケンスＳＱ１０６）。
【０１１９】
通信カプラ５２は、機能ユニット５４から受信したそれぞれの識別情報（実機値）Ｄ４０を対応するスロット位置に関連付けて一次的に保持する（シーケンスＳＱ１０８）。各機能ユニット５４が装着されているスロット位置の特定については、次のような方法で行ってもよい。例えば、機能ユニット５４が自ユニットの接続されているスロット位置の情報を付加して識別情報（実機値）Ｄ４０を送信する方法を採用できる。あるいは、機能ユニット５４からリモートＩＯターミナルバス５１を介して送信されるデータが通信カプラ５２に到達するまでに、どれだけの数の機能ユニット５４においてフォワードされたかを示す情報に基づいて、送信元の機能ユニット５４が装着されているスロット位置を特定する方法を採用できる。
【０１２０】
通信カプラ５２は、機能ユニット５４毎のユニット構成データＤ２０に含まれる識別情報Ｄ２２と取得したそれぞれの識別情報（実機値）Ｄ４０とを照合する（シーケンスＳＱ１１０）。より具体的には、通信カプラ５２は、識別情報Ｄ２２と対応する機能ユニット５４の識別情報（実機値）Ｄ４０とを比較して、（１）設定されている識別情報Ｄ２２と識別情報（実機値）Ｄ４０とが一致する、（２）設定されている識別情報Ｄ２２と識別情報（実機値）Ｄ４０とが不一致である、（３）対応する識別情報（実機値）Ｄ４０が存在しない、のいずれであるかを判断する。そして、通信カプラ５２は、ユニット構成データＤ２０の各々についての判断結果と、対応するユニット無効化設定とに基づいて、照合結果を算出する（シーケンスＳＱ１１２）。
【０１２１】
続いて、通信カプラ５２は、照合が成功した機能ユニット５４に対して、対応する設定情報Ｄ２４を送信する（シーケンスＳＱ１１４）。設定情報Ｄ２４を受信した機能ユニット５４は、設定情報Ｄ５０を格納する（シーケンスＳＱ１１６）。
【０１２２】
並行して、通信カプラ５２は、機能ユニット５４毎のユニット構成データＤ２０に従って、各機能ユニット５４についてのメモリ空間を割り当てる（シーケンスＳＱ１１８）。
【０１２３】
そして、通信カプラ５２は、リモートＩＯターミナルバス５１を有効化し、リモートＩＯターミナル５をオペレーション状態に切り替える（シーケンスＳＱ１２０）。
【０１２４】
なお、シーケンスＳＱ１１２において算出された照合結果において、所定のエラー発生条件に合致した機能ユニット５４について、通信カプラ５２は、サポート装置８に対してエラーを出力する（シーケンスＳＱ１２２）。
【０１２５】
＜Ｋ．利点＞
本実施の形態によれば、マスタ装置（バスマスタ）は、設定情報を対象の機能ユニットへ与える前に、各機能ユニットから固有の識別情報（実機値）を取得し、この取得した識別情報（実機値）と予め格納されているユニット構成データに含まれる識別情報とを照合する。そして、マスタ装置（バスマスタ）は、正しく照合された機能ユニットに対してのみ、対応する設定情報を与える。このように正しく照合された場合に限って設定情報を与えるので、本来の設計とは異なる機能ユニットが装着されているような場合に、設定情報を誤って与えることがない。
【０１２６】
また、本実施の形態によれば、照合処理の結果に基づいて、バスにおける識別情報（ユニットＮｏ）を含む設定情報を各機能ユニットに個別に与えるので、各機能ユニットが実際に装着されているバス上の位置（スロット位置）とは独立して、それぞれのユニットＮｏを付与することができる。言い換えれば、それぞれの機能ユニットのユニットＮｏが設定された状態で、新たな機能ユニットを割り込ませても、先に設定されている他の機能ユニットについてのユニットＮｏへ影響を与えることがない。そのため、機能ユニットをよりフレキシブルに追加／変更できる。
【０１２７】
さらに、本実施の形態によれば、機能ユニットを無効化するためのユニット無効化設定が可能である。このユニット無効化設定を利用することで、現実には存在しない機能ユニットに対するユニットＮｏやメモリ空間を予約しておくことができる。これによって、機能ユニットの将来的な拡張を容易化したり、機能ユニットのレイアウトの均一化することでユーザプログラムの作成を容易化したりすることができる。
【０１２８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２９】
１  ＰＬＣ、２  フィールドネットワーク、３  サーボモータドライバ、４  サーボモータ、５  リモートＩＯターミナル、６  検出スイッチ、７  リレー、８  サポート装置、９  ＣＤ−ＲＯＭ、１０  接続ケーブル、１１  ＰＬＣシステムバス、１２  電源ユニット、１３  ＣＰＵユニット、１４，５４  機能ユニット、５１  ターミナルバス、５２  通信カプラ、８１  ＣＰＵ、８３  ＲＡＭ、８４  ハードディスク、８５  キーボード、８６  マウス、８７  ディスプレイ、８８  ＣＤ−ＲＯＭ駆動装置、１００，１５０，２００  プロセッサ、１０１，１５４  不揮発性メモリ、１０２，１５８，２０９  システムプログラム、１１０  フィールドバス制御部、１１２，２１０ａ，２２０ａ  受信部、１１４，２１０ｂ，２２０ｂ  送信部、１２０  上位通信コントローラ、１２２  メモリコントローラ、１２４，２０８  メモリ、１２６，１６４，２０３  受信バッファ、１２８，１６６，２０４  送信バッファ、１３０  内部バス制御部、１３２  内部バス通信コントローラ、１４２  送信回路、１４４  受信回路、１５２  主メモリ、１５６  ユーザプログラム、１６０  記憶部、１６２，２０２  共有メモリ、２０６  ＩＯモジュール、２１２，２２２  ＤＥＳ部、２１４，２２４  フォワードコントローラ、２１６，２２６  ＳＥＲ部、２３０  受信処理部、２３２  復号部、２３４  チェック部、２４０  送信処理部、２４２  ＣＲＣ生成部、２４４  符号化部、２５０  バス、５１１，６１１  ダウンリンク、５１２，６１２  アップリンク、８４１  ツールプログラム、Ｄ１  ユニット構成管理情報、Ｄ２０  ユニット構成データ、Ｄ２２  識別情報、Ｄ２４，Ｄ５０  設定情報、ＳＹＳ  制御システム。
【図１】
2014119912.tif 000003
【図２】
2014119912.tif 000004
【図３】
2014119912.tif 000005
【図４】
2014119912.tif 000006
【図５】
2014119912.tif 000007
【図６】
2014119912.tif 000008
【図７】
2014119912.tif 000009
【図８】
2014119912.tif 000010
【図９】
2014119912.tif 000011
【図１０】
2014119912.tif 000012
【図１１】
2014119912.tif 000013
【図１２】
2014119912.tif 000014
【図１３】
2014119912.tif 000015
【図１４】
2014119912.tif 000016
【図１５】
2014119912.tif 000017
【図１６】
2014119912.tif 000018