(57)【要約】【課題】システムバスによって接続されたスレーブ装置の設定情報を、複数のスレーブ装置からなるシステムの構成が予め定められた構成となっていることを条件に、スレーブ装置において設定可能とする。【解決手段】通信カプラ５２は、スレーブ装置であるＩＯユニット５３毎の設定情報を含む、複数のＩＯユニットからなるシステムの構成を表した構成情報を格納している。通信カプラ５２は、複数のＩＯユニットと通信可能な状態になると、各ＩＯユニット５３の識別情報を各ＩＯユニット５３から取得し、システムバスにおける各ＩＯユニット５３の接続順序を検出する。通信カプラ５２は、各識別情報と接続順序とに基づいて、システムの構成が構成情報に基づいた構成となっていると判断すると、各ＩＯユニット５３に対して当該ＩＯユニット５３の設定情報を送信し、各ＩＯユニット５３に予め定められた処理を開始させる。【選択図】図９
2014119907.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置として機能し、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とシステムバスによって通信可能に接続される通信ユニットであって、
前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報を格納するための記憶手段と、
前記記憶手段に格納された設定情報を前記スレーブ装置に送信する制御手段とを備え、
前記制御手段は、前記通信ユニットが前記複数のスレーブ装置と通信可能な状態になると、
各前記スレーブ装置の識別情報を各前記スレーブ装置から取得し、
前記システムバスにおける各前記スレーブ装置の接続順序を検出し、
各前記識別情報と前記接続順序とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断し、
前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させる、通信ユニット。
【請求項２】
前記通信ユニットは、プログラマブル・ロジック・コントローラの演算ユニットとフィールドネットワークを介して接続されている通信カプラであり、
前記予め定められた処理は、前記スレーブ装置に通信接続された外部装置との間の入出力処理である、請求項１に記載の通信ユニット。
【請求項３】
前記記憶手段は、各前記スレーブ装置におけるシステムプログラムのバージョンを表したバージョン情報をさらに格納しており、
前記制御手段は、前記通信ユニットが前記複数のスレーブ装置と通信可能な状態になると、
各前記スレーブ装置から当該スレーブ装置におけるシステムプログラムのバージョン情報を取得し、
前記取得したバージョン情報に示されたバージョンが、前記格納されたバージョン情報に示されたバージョンよりも低くないかを、前記スレーブ装置毎に判断し、
前記複数のスレーブ装置の各々について、前記取得したバージョン情報に示されたバージョンが前記格納されたバージョン情報に示されたバージョンよりも低くないと判断すると、各前記設定情報を各前記スレーブ装置に送信し、各前記スレーブ装置に前記入出力処理を開始させる、請求項２に記載の通信ユニット。
【請求項４】
前記制御手段は、
前記スレーブ装置毎の前記識別情報と前記順序情報とを、前記設定情報を作成する機能を有する支援装置に送信した後に、前記スレーブ装置毎の前記設定情報を前記支援装置から取得し、
前記取得した各前記設定情報を前記記憶装置に記憶させる、請求項２または３に記載の通信ユニット。
【請求項５】
マスタ装置として機能する通信ユニットと、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とを備えた通信システムであって、
前記通信ユニットと各前記スレーブ装置とは、システムバスを介して互いに通信可能に接続されており、
前記通信ユニットは、
前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報を格納しており、
前記通信ユニットが前記複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置の識別情報を各前記スレーブ装置から取得し、
前記システムバスにおける各前記スレーブ装置の接続順序を検出し、
各前記識別情報と前記接続順序とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断し、
前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させる、通信システム。
【請求項６】
マスタ装置として機能し、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とシステムバスによって通信可能に接続される通信ユニットにおける制御方法であって、
前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報をメモリに格納するステップと、
前記通信ユニットが前記複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置の識別情報を各前記スレーブ装置から取得するステップと、
前記システムバスにおける各前記スレーブ装置の接続順序を検出するステップと、
各前記識別情報および前記接続順序と、前記構成情報とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断するステップと、
前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させるステップとを備える、制御方法。
【請求項７】
マスタ装置として機能し、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とシステムバスによって通信可能に接続される通信ユニットを制御するプログラムであって、
前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報をメモリに格納するステップと、
前記通信ユニットが前記複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置の識別情報を各前記スレーブ装置から取得するステップと、
前記システムバスにおける各前記スレーブ装置の接続順序を検出するステップと、
各前記識別情報および前記接続順序と、前記構成情報とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断するステップと、
前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させるステップとを、前記通信ユニットのプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械や設備などの動作を制御するために用いられる制御システムにおけるデータ伝送に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable Logic Controller；以下「ＰＬＣ」とも称す）などからなる制御システムによって制御される。このような制御システムにおいて、ＰＬＣは、ＣＰＵユニットと、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するＩＯ（Input Output）ユニットとを含む。また、ＰＬＣは、ネットワークにより、複数のリモートＩＯターミナルと接続される。各リモートＩＯターミナルは、通信カプラと、複数のＩＯユニットとを含む。
【０００３】
このような制御システムとして、特許文献１には、設定値バックアップ・リストアシステムが開示されている。設定値バックアップ・リストアシステムのＰＬＣは、ＣＰＵユニットと、複数の拡張ユニット（ＩＯユニット）とを含む。複数の拡張ユニットの１つのユニットが、設定値バックアップ・リストアユニットとして機能する。当該設定値バックアップ・リストアユニットには、ネットワークを介して複数の通信機器（たとえば、センサ）が接続される。ＣＰＵユニットがバックアップトリガまたはリストアトリガを検知すると、設定値バックアップ・リストアユニットは、ネットワークに接続された上記通信機器の対象パラメータの設定値をバックアップまたはリストアする。
【０００４】
また、上記のような制御システムとして、特許文献２には、ＰＬＣ本体と、当該ＰＬＣ本体とシリアルＩＦ（Interface）で接続された複数のリモートスレーブとを備えるシステム（ＰＬＣのリモートＩＯシステム）が開示されている。ＰＬＣ本体は、マスタユニットと、複数のＩＯユニットと、ＣＰＵユニットとを含む。マスタユニットと、複数のＩＯユニットと、ＣＰＵユニットとは、互いに、パラレルＩＦで通信可能に接続されている。各リモートスレーブには、スイッチ、センサ、リレー、バルブ等が接続される。
【０００５】
当該ＰＬＣ本体のマスタユニットには、リモートスレーブが接続されているか否かを示す加入フラグが設定されている。当該加入フラグは、ユーザプログラムの実行によりアクセス可能なチャネルアドレス（スレーブ加入状態設定エリア）に記憶される。当該構成により、特許文献２のシステムは、リモートスレーブの加入状態等を示す登録および実Ｉ／Ｏテーブルの作成をすることなく、電源オン後、入力初期値が反映された後にユーザプログラムの実行を可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２１５８１４号公報
【特許文献２】特開平９−１２８０２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の設定値バックアップ・リストアシステムは、ネットワークに接続された通信機器の対象パラメータの設定値をバックアップまたはリストアすることを目的として構成されている。このため、上記の設定値バックアップ・リストアシステムでは、ＣＰＵユニットが、当該ＣＰＵユニットとシステムバス（通信ライン、内部バス）を介して接続された複数の拡張ユニットの設定値等を表す設定情報をバックアップおよびリストアすることはできない。具体的には、プログラマブルコントローラを構成するＣＰＵユニットは、当該ＣＰＵユニットとシステムバスで接続された、当該プログラマブルコントローラを構成する拡張ユニットの設定情報をバックアップおよびリストアすることはできない。
【０００８】
また、特許文献２においても、同様に、ＣＰＵユニットまたはマスタユニットが、当該ユニットとシステムバスであるパラレルＩＦ（通信ライン、内部バス）を介して接続されたＩＯユニットの設定値等を表す設定情報をバックアップおよびリストアすることはできない。
【０００９】
本願発明は、上記の問題点に鑑みなされたものであって、その目的は、ＣＰＵユニットまたは通信カプラ等のマスタ装置として機能する通信ユニットとシステムバスによって接続されたスレーブ装置の設定情報を、複数のスレーブ装置からなるシステムの構成が予め定められた構成となっていることを条件に、スレーブ装置において設定可能とする通信ユニット、当該通信ユニットを備えた通信システム、通信ユニットにおける制御方法、および通信ユニットを制御するためのプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明のある局面に従うと、通信ユニットは、マスタ装置として機能し、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とシステムバスによって通信可能に接続される。通信ユニットは、前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報を格納するための記憶手段と、前記記憶手段に格納された設定情報を前記スレーブ装置に送信する制御手段とを備える。前記制御手段は、通信ユニットが複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置の識別情報を各前記スレーブ装置から取得し、前記システムバスにおける各前記スレーブ装置の接続順序を検出し、各前記識別情報と前記接続順序とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断し、前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させる。
【００１１】
好ましくは、通信ユニットは、プログラマブル・ロジック・コントローラの演算ユニットとフィールドネットワークを介して接続されている通信カプラである。前記予め定められた処理は、前記スレーブ装置に通信接続された外部装置との間の入出力処理である。
【００１２】
好ましくは、前記記憶手段は、各前記スレーブ装置におけるシステムプログラムのバージョンを表したバージョン情報をさらに格納してる。前記制御手段は、通信ユニットが複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置から当該スレーブ装置におけるシステムプログラムのバージョン情報を取得し、前記取得したバージョン情報に示されたバージョンが、前記格納されたバージョン情報に示されたバージョンよりも低くないかを、前記スレーブ装置毎に判断し、前記複数のスレーブ装置の各々について、前記取得したバージョン情報に示されたバージョンが前記格納されたバージョン情報に示されたバージョンよりも低くないと判断すると、各前記設定情報を各前記スレーブ装置に送信し、各前記スレーブ装置に前記入出力処理を開始させる。
【００１３】
好ましくは、制御手段は、前記スレーブ装置毎の前記識別情報と前記順序情報とを、前記設定情報を作成する機能を有する支援装置に送信した後に、前記スレーブ装置毎の前記設定情報を前記支援装置から取得し、前記取得した各前記設定情報を前記記憶装置に記憶させる。
【００１４】
本発明の他の局面に従うと、通信システムは、マスタ装置として機能する通信ユニットと、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とを備える。前記通信ユニットと各前記スレーブ装置とは、システムバスを介して互いに通信可能に接続されている。前記通信ユニットは、前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報を格納している。通信ユニットは、通信ユニットが複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置の識別情報を各前記スレーブ装置から取得し、前記システムバスにおける各前記スレーブ装置の接続順序を検出し、各前記識別情報と前記接続順序とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断し、前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させる。
【００１５】
本発明のさらに他の局面に従うと、制御方法は、マスタ装置として機能し、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とシステムバスによって通信可能に接続される通信ユニットにおいて実行される。制御方法は、前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報をメモリに格納するステップと、通信ユニットが複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置の識別情報を各前記スレーブ装置から取得するステップと、前記システムバスにおける各前記スレーブ装置の接続順序を検出するステップと、各前記識別情報および前記接続順序と、前記構成情報とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断するステップと、前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させるステップとを備える。
【００１６】
本発明のさらに他の局面に従うと、プログラムは、マスタ装置として機能し、各々が予め定められた設定情報に基づいて動作する複数のスレーブ装置とシステムバスによって通信可能に接続される通信ユニットを制御する。プログラムは、前記スレーブ装置毎の各前記設定情報を含む、前記複数のスレーブ装置からなるシステムの構成を表した構成情報をメモリに格納するステップと、通信ユニットが複数のスレーブ装置と通信可能な状態になると、各前記スレーブ装置の識別情報を各前記スレーブ装置から取得するステップと、前記システムバスにおける各前記スレーブ装置の接続順序を検出するステップと、各前記識別情報および前記接続順序と、前記構成情報とに基づいて、前記システムの構成が前記構成情報に基づいた構成となっているかを判断するステップと、前記システム構成が前記構成情報に基づいた構成となっていると判断すると、各前記スレーブ装置に対して当該スレーブ装置の設定情報を送信し、各前記スレーブ装置に予め定められた処理を開始させるステップとを、前記通信ユニットのプロセッサに実行させる。
【発明の効果】
【００１７】
本発明によれば、ＣＰＵユニットまたは通信カプラ等のマスタ装置として機能する通信ユニットとシステムバスによって接続されたスレーブ装置の設定情報を、複数のスレーブ装置からなるシステムの構成が予め定められた構成となっていることを条件に、スレーブ装置において設定可能となる。
【図面の簡単な説明】
【００１８】
【図１】ＰＬＣシステムの概略構成を示す模式図である。
【図２】リモートＩＯターミナルの接続構成を示す模式図である。
【図３】リモートＩＯターミナルを構成する通信カプラのハードウェア構成を示す模式図である。
【図４】リモートＩＯターミナルのＩＯユニットのハードウェア構成を示す模式図である。
【図５】ＣＰＵユニットに接続して用いられるＰＬＣサポート装置のハードウェア構成を示す模式図である。
【図６】通信カプラに格納されるユニット構成情報Ｄ６０の概要を表した図である。
【図７】通信カプラの機能的構成およびＩＯユニットの機能的構成を説明するためのブロック図である。
【図８】ＰＬＣシステムにおける処理を説明するための１つ目のシーケンスチャートである。
【図９】ＰＬＣシステムにおける処理を説明するための２つ目のシーケンスチャートである。
【図１０】通信カプラにおける処理の流れを表したフローチャートである。
【図１１】ＰＬＣサポート装置のディスプレイにおける画面を表した図である。
【図１２】ＰＬＣの接続構成を示す模式図である。
【図１３】ＰＬＣを構成するＣＰＵユニットのハードウェア構成を示す模式図である。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２０】
＜Ａ．ＰＬＣシステムの全体構成＞
本実施の形態に係るＰＬＣ（Programmable Logic Controller）は、モータの運動を制御するためのモーション制御機能を有する。まず、図１を参照して、本実施の形態に係るＰＬＣ１のシステム構成について説明する。
【００２１】
図１は、本発明の実施の形態に係るＰＬＣシステムの概略構成を示す模式図である。図１を参照して、ＰＬＣシステムＳＹＳは、ＰＬＣ１と、ＰＬＣ１とフィールドネットワーク２を介して接続されるサーボモータドライバ３およびリモートＩＯターミナル５と、フィールド機器である検出スイッチ６およびリレー７とを含む。また、ＰＬＣ１には、接続ケーブル１０などを介してＰＬＣサポート装置８が接続される。
【００２２】
メイン装置であるＰＬＣ１は、主たる演算処理を実行するＣＰＵユニット１３と、１つ以上のＩＯユニット１４と、特殊ユニット１５とを含む。これらのユニットは、ＰＬＣシステムバス１１を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット１２によって適切な電圧の電源が供給される。
【００２３】
ＩＯユニット１４は、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニット１４は、検出スイッチ６などのセンサが何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット１４は、リレー７やアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００２４】
特殊ユニット１５は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット１４ではサポートしない機能を有する。
【００２５】
フィールドネットワーク２は、ＣＰＵユニット１３と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、典型的には、各種の産業用のイーサネット（登録商標）を用いることができる。
【００２６】
なお、図１には、ＰＬＣシステムバス１１およびフィールドネットワーク２の両方を有するＰＬＣシステムＳＹＳを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク２ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク２を使用せずに、サーボモータドライバ３をＰＬＣシステムバス１１に直接接続してもよい。さらに、フィールドネットワーク２の通信ユニットをＰＬＣシステムバス１１に接続し、ＣＰＵユニット１３から当該通信ユニット経由で、フィールドネットワーク２に接続された機器との間の通信を行なうようにしてもよい。
【００２７】
サーボモータドライバ３は、フィールドネットワーク２を介してＣＰＵユニット１３と接続されるとともに、ＣＰＵユニット１３からの指令値に従ってサーボモータ４を駆動する。より具体的には、サーボモータドライバ３は、ＰＬＣ１から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボモータドライバ３は、サーボモータ４の軸に接続されている位置センサ（ロータリーエンコーダ）やトルクセンサといった検出器から、位置、速度（典型的には、今回位置と前回位置との差から算出される）、トルクといったサーボモータ４の動作に係る実測値を取得する。そして、サーボモータドライバ３は、ＣＰＵユニット１３からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行なう。すなわち、サーボモータドライバ３は、実測値が目標値に近づくようにサーボモータ４を駆動するための電流を調整する。なお、サーボモータドライバ３は、サーボモータアンプと称されることもある。
【００２８】
また、図１には、サーボモータ４とサーボモータドライバ３とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【００２９】
図１に示すＰＬＣシステムＳＹＳのフィールドネットワーク２には、さらに、リモートＩＯターミナル５が接続されている。リモートＩＯターミナル５は、基本的には、ＩＯユニット１４と同様に、一般的な入出力処理に関する処理を行なう。より具体的には、リモートＩＯターミナル５は、フィールドネットワーク２でのデータ伝送に係る処理を行なうための通信カプラ５２と、１つ以上のＩＯユニット５３とを含む。これらのユニットは、以下に説明するように、システムバス（内部バス）であるリモートＩＯターミナルバス５１を介して、データを互いに遣り取りできるように構成される。
【００３０】
通信カプラ５２は、主として、ＩＯユニット５３の動作（ＩＯデータの更新タイミングなど）を制御するとともに、ＰＬＣ１との間のデータ伝送を制御する。通信カプラ５２は、ＰＬＣ１のＣＰＵユニット１３とフィールドネットワーク２を介して接続されている。通信カプラ５２の詳細については、後述する。
【００３１】
ＩＯユニット５３は、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当する。また、ＩＯユニット５３は、通信カプラ５２とリモートＩＯターミナルバス５１を介してデータ伝送する機能に加えて、一般的な入出力処理の機能を有する。典型的には、ＩＯユニット５３は、オン／オフといった２値化されたデータを入力／出力する。例えば、ＩＯユニット５３は、検出センサから、何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニット５３は、リレーやアクチュエータといった出力先に対して、アクティブ化（活性化）するための指令（オン）および非アクティブ化（非活性化）するための指令（オフ）のいずれかを与える。
【００３２】
なお、リモートＩＯターミナル５は、通信カプラ５２および１つ以上のＩＯユニット５３以外にも、通信カプラのスレーブ装置としての他の種別のユニット（特殊ユニット、モーションユニット、通信用のユニット）を備えていてもよい。ただし、以下では、説明の便宜上、リモートＩＯターミナル５が、通信カプラ５２と１つ以上のＩＯユニット５３とを含み、上記他の種別のユニットを含まないものとして説明する。
【００３３】
＜Ｂ．処理の概要＞
（ｂ１．設定情報の引き継ぎ）
通信ユニットである通信カプラ５２は、リモートＩＯターミナル５においてマスタ装置として機能し、予め定められた設定情報に基づいて動作するＩＯユニット５３とリモートＩＯターミナルバス５１によって通信可能に接続されている。通信カプラ５２は、各ＩＯユニット５３用の設定情報を格納する。通信カプラ５２は、通信カプラ５２が各ＩＯユニット５３と通信可能な状態になると、格納された各設定情報を、対応するＩＯユニット５３に送信する。「通信カプラ５２が各ＩＯユニット５３と通信可能な状態になる」ときとしては、たとえば、通信カプラ５２に対して給電が開始されたとき、あるいは、通信カプラ５２をリセットするための指示が通信カプラ５２に入力されたときが挙げられる。なお、以下では、通信カプラ５２が各ＩＯユニット５３と通信可能な状態になった場合として、通信カプラ５２に対して給電が開始されたときを例に挙げて説明する。
【００３４】
上記の構成によれば、各ＩＯユニット５３は、通信カプラ５２に対して給電が開始されると、通信カプラ５２から設定情報を受信することができる。つまり、通信カプラ５２とシステムバスであるリモートＩＯターミナルバス５１によって接続されたＩＯユニット５３の設定情報を、マスタ装置の起動の都度、ＩＯユニット５３において設定可能となる。
【００３５】
さらに、通信カプラ５２に給電がなされていない場合においては、各ＩＯユニット５３は、設定情報を記憶しておく必要がない。つまり、各ＩＯユニット５３は、常に、自ユニットの設定情報を記憶しておく必要がなくなる。
【００３６】
より具体的には、通信カプラ５２は、システムプログラムをさらに格納しており、当該システムプログラムを実行することにより、各設定情報を対応するＩＯユニット５３に送信する。なお、各設定情報は、各ＩＯユニット５３の設定値を記述したものである。
【００３７】
（ｂ２．設定情報の引き継ぎを許可するための条件）
通信カプラ５２は、ＩＯユニット５３毎の各設定情報を含む、複数のＩＯユニット５３からなるシステムの構成を表したユニット構成情報Ｄ６０（図６参照）を少なくとも格納する。より正確には、通信カプラ５２は、ＩＯユニット５３毎の各設定情報を含む、通信カプラ５２と複数のＩＯユニット５３とからなるシステムの構成を表したシステム構成情報（図示せず）を少なくとも格納する。
【００３８】
通信カプラ５２は、格納された各設定情報を、対応するＩＯユニット５３に送信する機能を有する。通信カプラ５２は、通信カプラ５２に対して給電が開始されると、各ＩＯユニット５３の識別情報を各ＩＯユニット５３装置から取得する。また、通信カプラ５２は、リモートＩＯターミナルバス５１における各ＩＯユニット５３の接続順序を検出する。さらに、通信カプラ５２は、各識別情報と接続順序とに基づいて、システムの構成が構成情報に基づいた構成となっているかを判断する。通信カプラ５２は、システム構成が構成情報に基づいた構成となっていると判断すると、各ＩＯユニット５３に対して当該ＩＯユニット５３の設定情報を送信し、各ＩＯユニット５３に予め定められた処理を開始させる。当該予め定められた処理は、たとえば、ＩＯユニット５３に通信接続された外部装置との間の入出力処理である。なお、識別情報の詳細については、後述する（図６の識別情報Ｄ６１）。
【００３９】
上記の構成によれば、ＰＬＣシステムＳＹＳのユーザによって、ＩＯユニット５３の接続順序が変更されたり、あるいはＩＯユニット５３が識別情報（詳しくは、製品コード（商品型式）およびシリアル番号）が異なるＩＯユニットに置換されたりすると、通信カプラ５２は、設定情報を各ＩＯユニット５３に送信しない。つまり、リモートＩＯターミナル５におけるＩＯユニット５３が予め定められたシステム構成とは異なる構成となった場合には、各ＩＯユニット５３は設定情報を取得できない。なお、シリアル番号は、製品コードが共通の複数のＩＯユニット５３の各々に固有の番号である。このため、通信カプラ５２は、シリアル番号を利用しなくても、同じ型式のＩＯユニット５３への置換か否かは判断できる。ただし、通信カプラ５２は、以前と同じＩＯユニット５３が設置されたか否かについては判断できない。このようなことから、通信カプラ５２は、製品コードのみを利用して予め定められたシステム構成となっているか否かを判断すればよい場合もあるし、製品コードとシリアル番号とを利用して予め定められたシステム構成となっているか否かを判断する場合もある。シリアル番号を利用するか否かは、用途に応じて適宜選択される。
【００４０】
このように、通信カプラ５２とシステムバスであるリモートＩＯターミナルバス５１によって接続されたＩＯユニット５３の設定情報を、複数のＩＯユニット５３からなるシステムの構成が予め定められた構成となっていることを条件に、各ＩＯユニット５３において設定可能となる。
【００４１】
したがって、各ＩＯユニット５３は、上記システムの構成が予め定められた構成となっていない場合には、予め定められた処理を実行することはない。それゆえ、上記の構成によれば、リモートＩＯターミナル５において、ユーザにとって予期せぬ動作が発生することを防止することができる。
【００４２】
以下では、以上のような処理を実現するためのＰＬＣシステムＳＹＳの具体的構成について説明する。さらに、以下では、上記の処理以外の処理についても適宜説明する。
【００４３】
＜Ｃ．リモートＩＯターミナル５のハードウェア構成＞
次に、本実施の形態に係るＰＬＣシステムＳＹＳの一部を構成する制御装置であるリモートＩＯターミナル５のハードウェア構成について説明する。
【００４４】
図２は、本発明の実施の形態に係るリモートＩＯターミナル５の接続構成を示す模式図である。図３は、本発明の実施の形態に係るリモートＩＯターミナル５を構成する通信カプラ５２のハードウェア構成を示す模式図である。図４は、本発明の実施の形態に係るリモートＩＯターミナル５のＩＯユニット５３のハードウェア構成を示す模式図である。
【００４５】
（ｃ１．接続構成）
図２を参照して、リモートＩＯターミナル５では、通信カプラ５２および１つ以上のＩＯユニット５３−１，５３−２，５３−３（以下「ＩＯユニット５３」と総称する場合もある。）が通信ラインであるリモートＩＯターミナルバス５１（ダウンリンク５１１およびアップリンク５１２）を介して互いにデータ伝送可能になっている。すなわち、リモートＩＯターミナル５は、通信ラインを介して接続される複数のユニット（通信カプラ５２およびＩＯユニット５３）を含む。
【００４６】
一例として、ダウンリンク５１１およびアップリンク５１２では、シリアル通信が採用されており、対象のデータは、時系列に一列に並べられた形で伝送する。より具体的には、ダウンリンク５１１では、マスター制御部として機能する通信カプラ５２からスレーブ制御部として機能するＩＯユニット５３へ向けて、ダウンリンク５１１を介して一方向にデータが送信される。一方、アップリンク５１２では、いずれかのＩＯユニット５３から通信カプラ５２へ向けて、アップリンク５１２を介して一方向にデータが送信される。
【００４７】
本実施の形態においては、データは、ヘッダ情報を含むフレームとして送信される。各フレームは、１または複数のブロックから構成される。ヘッダ情報は、当該フレーム内のデータの優先度を示す情報を含む。また、ヘッダ情報は、当該フレームの長さに関する情報を含む。フレームの構造などの詳細については後述する。
【００４８】
ＩＯユニット５３の各々は、ダウンリンク５１１またはアップリンク５１２を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、ＩＯユニット５３の各々は、フレームを再生成した上で、次段のＩＯユニット５３へ再送信（フォワード）する。
【００４９】
データを含むフレームのこのような順次転送を実現するために、各ＩＯユニット５３は、ダウンリンク５１１に関して、受信部（以下「ＲＸ」とも記す。）２１０ａおよび送信部（以下「ＴＸ」とも記す。）２１０ｂを含むとともに、アップリンク５１２に関して、受信部２２０ａおよび送信部２２０ｂを含む。受信部２１０ａおよび２２０ａは、通信ラインであるリモートＩＯターミナルバス５１を介して他のユニットからフレームとして送信されるデータを受信する。送信部２１０ｂおよび２２０ｂは、通信ラインであるリモートＩＯターミナルバス５１を介して他のユニットへフレームとしてデータを送信する。
【００５０】
各ＩＯユニット５３は、制御部であるプロセッサ２００を含み、プロセッサ２００がこれらのデータの処理を制御する。
【００５１】
通信カプラ５２は、プロセッサ１００と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。すなわち、通信カプラ５２は、リモートＩＯターミナルバス５１（ダウンリンク５１１およびアップリンク５１２）と接続されるだけではなく、受信部１１２および送信部１１４を介して、上位通信ネットワークであるフィールドネットワーク２とも接続される。フィールドバス制御部１１０は、フィールドネットワーク２を介したデータ伝送を管理し、内部バス制御部１３０は、リモートＩＯターミナルバス５１を介したデータ伝送を管理する。
【００５２】
（ｃ２．通信カプラ５２の構成）
図３を参照して、リモートＩＯターミナル５の通信カプラ５２は、プロセッサ１００と、不揮発性メモリ１０１と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【００５３】
受信部１１２は、ＰＬＣ１からフィールドネットワーク２を介して送信される上位通信フレームを受信してデータへ復号した上で、フィールドバス制御部１１０へ出力する。送信部１１４は、フィールドバス制御部１１０から出力されるデータから上位通信フレームを再生成してフィールドネットワーク２を介して再送信（フォワード）する。
【００５４】
フィールドバス制御部１１０は、受信部１１２および送信部１１４と協働して、フィールドネットワーク２を介して予め定められた制御周期毎に他の装置（ＰＬＣ１および他のリモートＩＯターミナル５）との間でデータを送受信する。より具体的には、フィールドバス制御部１１０は、上位通信コントローラ１２０と、メモリコントローラ１２２と、ＦＩＦＯ（First In First Out）メモリ１２４と、受信バッファ１２６と、送信バッファ１２８とを含む。
【００５５】
上位通信コントローラ１２０は、ＰＬＣ１からフィールドネットワーク２を介して送信されるコマンドなどを解釈して、フィールドネットワーク２を介した通信を実現するために必要な処理を実行する。また、上位通信コントローラ１２０は、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームからのデータコピー、および上位通信フレームに対するデータ書込みの処理を行う。
【００５６】
メモリコントローラ１２２は、ＤＭＡ（Dynamic Memory Access）などの機能を実現する制御回路であり、ＦＩＦＯメモリ１２４、受信バッファ１２６および送信バッファ１２８などへのデータの書込み／読出しを制御する。
【００５７】
ＦＩＦＯメモリ１２４は、フィールドネットワーク２を介して受信された上位通信フレームを一時的に格納するとともに、その格納された順序に従って上位通信フレームを順次出力する。受信バッファ１２６は、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームに含まれるデータのうち、自装置に接続されているＩＯユニット５３の出力部から出力すべき状態値を示すデータを抽出して一時的に格納する。送信バッファ１２８は、ＩＯユニット５３の入力部で検出された状態値を示すプロセスデータであって、ＦＩＦＯメモリ１２４に順次格納される上位通信フレームの所定領域に書込むべきデータを一時的に格納する。
【００５８】
プロセッサ１００は、フィールドバス制御部１１０および内部バス制御部１３０に対して指示を与えるとともに、フィールドバス制御部１１０と内部バス制御部１３０との間のデータ転送などを制御する。
【００５９】
不揮発性メモリ１０１は、各ＩＯユニット５３用の設定情報を格納する。詳しくは、不揮発性メモリ１０１は、ユニット構成情報Ｄ６０を含むシステム構成情報を格納する。
【００６０】
内部バス制御部１３０は、リモートＩＯターミナルバス５１（ダウンリンク５１１およびアップリンク５１２）を介してＩＯユニット５３との間でフレーム（データ）を送受信する。
【００６１】
より具体的には、内部バス制御部１３０は、内部バス通信コントローラ１３２と、送信回路１４２と、受信回路１４４と、記憶装置１６０とを含む。
【００６２】
内部バス通信コントローラ１３２は、リモートＩＯターミナルバス５１を介したデータ伝送を主体的に（マスターとして）管理する。
【００６３】
送信回路１４２は、内部バス通信コントローラ１３２からの指示に従って、リモートＩＯターミナルバス５１のダウンリンク上を流れるフレームを生成して送信する。受信回路１４４は、リモートＩＯターミナルバス５１のアップリンク上を流れるフレームを受信して、内部バス通信コントローラ１３２へ出力する。
【００６４】
記憶装置１６０は、リモートＩＯターミナルバス５１を伝送するフレーム（データ）を格納するバッファメモリに相当する。より具体的には、記憶装置１６０は、共有メモリ１６２と、受信バッファ１６４と、送信バッファ１６６とを含む。共有メモリ１６２は、フィールドバス制御部１１０と内部バス制御部１３０との間で遣り取りされるデータを一時的に格納する。受信バッファ１６４は、リモートＩＯターミナルバス５１を介してＩＯユニット５３から受信したデータを一時的に格納する。送信バッファ１６６は、フィールドバス制御部１１０で受信された上位通信フレームに含まれるデータを一時的に格納する。
【００６５】
（ｃ３．ＩＯユニット５３の構成）
図４を参照して、リモートＩＯターミナル５のＩＯユニット５３の各々は、逆シリアル変換器（de-serializer：以下「ＤＥＳ部」とも称す。）２１２，２２２と、シリアル変換器（ＳＥＲ：serializer：以下「ＳＥＲ部」とも称す。）２１６，２２６と、フォワードコントローラ２１４，２２４とを含む。さらに、ＩＯユニット５３の各々は、バス２５０を介して互いに接続された、受信処理部２３０と、送信処理部２４０と、プロセッサ２００と、共有メモリ２０２と、ＩＯモジュール２０６と、メモリ２０８とを含む。メモリ２０８は、一例として、揮発性メモリと不揮発性メモリとを有する。
【００６６】
ＤＥＳ部２１２、フォワードコントローラ２１４およびＳＥＲ部２１６は、図２に示すダウンリンク５１１についての受信部２１０ａおよび送信部２１０ｂに対応する。すなわち、これらの部分は、ダウンリンク５１１を流れるフレームの送受信に係る処理を実行する。同様に、ＤＥＳ部２２２、フォワードコントローラ２２４およびＳＥＲ部２２６は、図２に示すアップリンク５１２についての受信部２２０ａおよび送信部２２０ｂに対応する。すなわち、これらの部分は、アップリンク５１２を流れるフレームの送受信に係る処理を実行する。
【００６７】
受信処理部２３０は、復号部２３２と、ＣＲＣチェック部２３４とを含む。復号部２３２は、受信されたフレームを所定のアルゴリズムに従ってデータへ復号する。ＣＲＣチェック部２３４は、フレームの最後に付加されるフレームチェックシーケンス（Frame Check Sequence：ＦＣＳ）などに基づいて誤りチェック（例えば、ＣＲＣ（Cyclic Redundancy Check）符号）を行う。
【００６８】
送信処理部２４０は、フォワードコントローラ２１４および２２４に接続され、プロセッサ２００などからの指示に従って、次段のＩＯユニット５３へ再送信（フォワード）するフレームの生成およびタイミング制御などを行う。また、送信処理部２４０は、プロセッサ２００などと協働して、次段のＩＯユニット５３へ送信すべきデータを生成する。すなわち、送信処理部２４０は、データ生成部の少なくとも一部を構成する。より具体的には、送信処理部２４０は、ＣＲＣ生成部２４２と、符号化部２４４とを含む。ＣＲＣ生成部２４２は、プロセッサ２００などからのデータに対して誤り制御符号（ＣＲＣ）を算出して、当該データを格納するフレームに付加する。符号化部２４４は、ＣＲＣ生成部２４２からのデータを符号化し、対応するフォワードコントローラ２１４または２２４へ出力する。
【００６９】
プロセッサ２００は、ＩＯユニット５３を主体的に制御する演算主体である。より具体的には、プロセッサ２００は、予め格納されたプログラムなどを実行することによって、受信処理部２３０を介して受信されたフレームを共有メモリ２０２に格納し、あるいは共有メモリ２０２から所定のデータを読み出して送信処理部２４０へ出力し、フレームを生成させる。
【００７０】
共有メモリ２０２は、受信処理部２３０を介して受信されたフレームを一時的に格納するための受信バッファ２０３と、送信処理部２４０へ介して送信するためのフレームを一時的に格納するための送信バッファ２０４とを含む。また、共有メモリ２０２は、各種データを格納するための領域を含む。
【００７１】
ＩＯモジュール２０６は、外部のスイッチやセンサからの入力信号を受信し、その値を共有メモリ２０２に書込むとともに、共有メモリ２０２の対応する領域に書込まれた値に従って、その信号を外部のリレーやアクチュエータへ出力する。すなわち、ＩＯモジュール２０６は、外部入力される信号の状態値（ＩＮデータ）を収集する入力部、および、指定された状態値（ＯＵＴデータ）の信号を出力する出力部の少なくとも一方を含む。
【００７２】
メモリ２０８は、各種データを格納する。たとえば、メモリ２０８における揮発性メモリは、設定情報を保持する。なお、メモリ２０８における不揮発性メモリが設定情報を保持するように、ＩＯユニット５３を構成してもよい。当該設定情報は、上述したように、通信カプラ５２に給電が開始されると、通信カプラ５２から送信されてくる情報である。つまり、設定情報は、通信カプラ５２に給電がなされる度に、メモリ２０８に新たに格納される情報である。
【００７３】
＜Ｄ．ＰＬＣサポート装置＞
図５は、本発明の実施の形態に係るＣＰＵユニット１３に接続して用いられるＰＬＣサポート装置８のハードウェア構成を示す模式図である。図５を参照して、ＰＬＣサポート装置８は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００７４】
図５を参照して、ＰＬＣサポート装置８は、ＯＳを含む各種プログラムを実行するＣＰＵ８１と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）８２と、ＣＰＵ８１でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ８３と、ＣＰＵ８１で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）８４とを含む。
【００７５】
ＰＬＣサポート装置８は、さらに、ユーザからの操作を受け付けるキーボード８５およびマウス８６と、情報をユーザに提示するためのディスプレイ８７とを含む。さらに、ＰＬＣサポート装置８は、ＰＬＣ１（ＣＰＵユニット１３）などと通信するための通信インターフェイス（ＩＦ）を含む。
【００７６】
後述するように、ＰＬＣサポート装置８で実行される各種プログラムは、ＣＤ−ＲＯＭ９に格納されて流通する。このＣＤ−ＲＯＭ９に格納されたプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ８８によって読取られ、ハードディスク（ＨＤＤ）８４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００７７】
本実施の形態では、ＰＬＣサポート装置８によって設定情報が生成される。具体的には、ＰＬＣシステムＳＹＳのユーザが、ＰＬＣサポート装置８を用いて各設定情報を生成する。ＰＬＣサポート装置８は、生成された設定情報を通信カプラ５２に送信する。なお、、通信カプラ５２は、ＰＬＣサポート装置８との通信に利用する通信インターフェイスを備えている。
【００７８】
上記においては、各設定情報がＰＬＣサポート装置８で生成される構成を例に挙げて説明したが、これに限定されるものではない。各設定情報がＰＬＣサポート装置８以外の装置によって生成され、当該装置から各設定情報が通信カプラ５２に送信される構成であってもよい。
【００７９】
＜Ｅ．データ＞
図６は、通信カプラ５２に格納されるユニット構成情報Ｄ６０の概要を表した図である。図６を参照して、ユニット構成情報Ｄ６０は、識別情報Ｄ６１と、設定情報Ｄ６２とを含む。識別情報Ｄ６１は、製品コードと、シリアル番号と、ユニットバージョンとの情報を含む。設定情報Ｄ６２は、ユニット番号と、ユニット無効化設定の情報とを含む。
【００８０】
シリアル番号は、製品（ＩＯユニット５３）固有の番号である。シリアル番号は、通信カプラ５２においてシリアル番号照合機能が有効となっている場合に利用される。なお、ＰＬＣサポート装置８がサポートソフトウェアの実行により得られる実構成を通信カプラ５２にアップロードすることにより、通信カプラ５２は各ＩＯユニット５３のシリアル番号を取得できる。
【００８１】
なお、サポートソフトウェアは、エディタプログラムと、コンパイラプログラムと、デバッガプログラムと、シミュレーション用シーケンス命令演算プログラムと、シミュレーション用モーション演算プログラムと、通信プログラムとを含む。サポートソフトウェアに含まれるそれぞれのプログラムは、典型的には、ＣＤ−ＲＯＭ等の記録媒体に格納された状態で流通して、ＰＬＣサポート装置８にインストールされる。ユーザは、サポートプログラムを持ちて、ユーザプログラムを生成する。ＰＬＣサポート装置８は、当該生成されたユーザプログラムを、通信プログラムを用いてＣＰＵユニット１３に送信する。
【００８２】
ユニットバージョンは、各ＩＯユニット５３におけるシステムプログラムのバージョンを表したバージョン情報である。ユニットバージョンは、メジャーバージョン、マイナーバージョン、リビジョン、またはリザーブのいずれかを表す。
【００８３】
ユニット番号は、通信カプラ５２に接続される順番に昇順に採番される。無効化されたユニットにもユニット番号が付与される。ユニット無効化設定は、０または１により、ＩＯユニットが無効化されているか否かを表す。
【００８４】
＜Ｆ．機能的構成＞
図７は、通信カプラ５２の機能的構成およびＩＯユニット５３の機能的構成を説明するためのブロック図である。
【００８５】
（ｆ１．通信カプラ５２の機能的構成）
図７を参照して、通信カプラ５２は、記憶部５２１と、制御部５２２とを備える。制御部５２２は、取得部５２２１と、検出部５２２２と、判断部５２２３と、通信制御部５２２４とを含む。
【００８６】
（１）記憶部５２１は、通信カプラ５２のスレーブ装置であるＩＯユニット５３−１，５３−２，…用の各設定情報Ｄ６２−１，Ｄ６２−２，…を格納している。当該各設定情報の取得の仕方については、後述する（図８）。制御部５２２は、通信カプラ５２に対して給電が開始されると、格納された各設定情報を、対応するＩＯユニット５３に送信する。より具体的には、通信カプラ５２は、システムプログラムをさらに格納しており、当該システムプログラムを実行することにより、各設定情報を対応するＩＯユニット５３に送信する。
【００８７】
（２）詳しくは、記憶部５２１は、ＩＯユニット５３毎の各設定情報を含む、複数のＩＯユニット５３からなるシステムの構成を表したユニット構成情報Ｄ６０（図６参照）を少なくとも格納する。より正確には、記憶部５２１は、ＩＯユニット５３毎の各設定情報を含む、通信カプラ５２と複数のＩＯユニット５３とからなるシステムの構成を表したシステム構成情報を少なくとも格納する。なお、上述したように、システム構成情報は、ユニット構成情報Ｄ６０を含んで構成される。
【００８８】
制御部５２２は、記憶部５２１に格納された各設定情報を、対応するＩＯユニット５３に送信する機能を有する。
【００８９】
取得部５２２１は、通信カプラ５２に対して給電が開始されると、各ＩＯユニット５３の識別情報を各ＩＯユニット５３装置から取得する。検出部５２２２は、リモートＩＯターミナルバス５１における各ＩＯユニット５３の接続順序を検出する。判断部５２２３は、各識別情報と接続順序とに基づいて、システムの構成がユニット構成情報Ｄ６０に基づいた構成となっているかを判断する。通信制御部５２２４は、システム構成が構成情報に基づいた構成となっていると判断すると、各ＩＯユニット５３に対して当該ＩＯユニット５３の設定情報を送信し、各ＩＯユニット５３に予め定められた処理を開始させる。
【００９０】
（３）さらに詳しくは、記憶部５２１は、各ＩＯユニット５３におけるシステムプログラムのバージョンを表したバージョン情報（ユニットバージョン（図６参照））をさらに格納している。取得部５２２１は、通信カプラ５２への給電が開始されると、各ＩＯユニット５３から当該ＩＯユニット５３におけるシステムプログラムのバージョン情報を取得する。判断部５２２３は、取得したバージョン情報に示されたバージョンが、格納されたバージョン情報に示されたバージョンよりも低くないかを、ＩＯユニット５３毎に判断する。通信制御部５２２４は、複数のＩＯユニット５３の各々について、上記取得したバージョン情報に示されたバージョンが格納されたバージョン情報に示されたバージョンよりも低くないと判断すると、各設定情報を各ＩＯユニット５３に送信し、各ＩＯユニット５３に入出力処理を開始させる。
【００９１】
上記の構成によれば、ＩＯユニット５３の接続順序が変更されていなくても、あるいはＩＯユニット５３が識別情報が異なるＩＯユニットに置換されていなくても、ＩＯユニット５３のシステムプログラムのバージョンがユーザの操作等によってダウンしているときには、各ＩＯユニット５３は設定情報を取得できない。したがって、各ＩＯユニット５３は、予め定められた処理を実行することはない。それゆえ、上記の構成によれば、リモートＩＯターミナル５のハードウェア構成の変更がない場合であっても、ユーザにとって予期せぬ動作が発生することを防止することができる。
【００９２】
（４）通信カプラ５２が記憶部５２１に設定情報を記憶させる過程について述べれば、以下のとおりである。
【００９３】
通信カプラ５２の制御部５２２は、以下の処理を行なう。取得部５２２１は、各ＩＯユニット５３の識別情報Ｄ６１を各ＩＯユニット５３から取得する。検出部５２２２は、リモートＩＯターミナルバス５１における各ＩＯユニット５３の接続順序を検出する。制御部５２２は、ＩＯユニット５３毎の識別情報Ｄ６１と上記接続順序を表す順序情報とを、設定情報を作成する機能を有するＰＬＣサポート装置８に送信した後に、ＩＯユニット５３毎の設定情報をＰＬＣサポート装置８から取得する。制御部５２２は、取得した各設定情報を記憶部５２１に記憶させる。
【００９４】
上記の構成によれば、ＰＬＣサポート装置８は、リモートＩＯターミナルバス５１における実際のユニット構成（接続順序、接続されているＩＯユニット５３等）を知ることができる。それゆえ、ＰＬＣサポート装置８は、ＰＬＣサポート装置において予め指定されたリモートＩＯターミナルバス５１におけるユニット構成（ソフトウェア上の構成）と、実際のユニット構成（実ユニット構成）とが一致しているかを判断することができる。
【００９５】
また、ソフトウェア上の構成と実ユニット構成とが一致していることを条件に、ＰＬＣサポート装置８が設定情報を通信カプラ５２に送信する構成とすることもできる。つまり、送信された識別情報Ｄ６１と順序情報とを用いて複数のＩＯユニット５３からなるシステムの構成が予め指定された構成であると判断したことを条件に、制御部５２２は、ＰＬＣサポート装置８から各設定情報を取得するように、ＰＬＣサポート装置８を構成できる。
【００９６】
（ｆ２．ＩＯユニット５３の機能的構成）
各ＩＯユニット５３−１，５３−２，…は、記憶部５３１と、通信制御部５３２とを含む。
【００９７】
通信制御部５３２は、通信カプラ５２からの指示に基づき、識別情報を通信カプラ５２に送信する。また、記憶部５３１には、通信カプラ５２に給電が開始されたことに基づき通信カプラ５２から送信されてくる設定情報が格納される。たとえば、ＩＯユニット５３−１の記憶部５３１には、設定情報Ｄ６２−１が格納され、ＩＯユニット５３−２の記憶部５３１には、設定情報Ｄ６２−２が格納される。
【００９８】
＜Ｇ．制御構造＞
図８は、ＰＬＣシステムＳＹＳにおける処理を説明するための１つ目のシーケンスチャートである。具体的には、図８は、通信カプラ５２が設定情報を記憶部５２１（つまり、、不揮発性メモリ１０１（図３）に格納するまでの処理を説明するためのシーケンスチャートである。
【００９９】
図８を参照して、シーケンスＳＱ２において、ＰＬＣサポート装置８は、ユーザの操作に基づいて、予め定められた設定指示を通信カプラ５２に送信する。シーケンスＳＱ４において、通信カプラ５２は、識別情報要求をＩＯユニット５３−１に送信する。シーケンスＳＱ６において、識別情報要求をＩＯユニット５３−２に送信する。通信カプラ５２は、他のＩＯユニットに対しても識別情報要求を送信する。
【０１００】
シーケンスＳＱ８において、ＩＯユニット５３−１は、ＩＯユニット５３−１に記憶されている自ユニットの識別情報を通信カプラ５２に送信する。シーケンスＳＱ１０において、ＩＯユニット５３−２は、ＩＯユニット５３−２に記憶されている自ユニットの識別情報を通信カプラ５２に送信する。他のＩＯユニット５３−３，…についても、同様の処理を行なう。シーケンスＳＱ１２において、通信カプラ５２は、複数のＩＯユニット５３の接続順序を検出する。シーケンスＳＱ１４において、通信カプラ５２は、検出した接続順序を表す順序情報と、各ＩＯユニット５３から取得した識別情報とを、ＰＬＣサポート装置８に送信する。
【０１０１】
シーケンスＳＱ１６において、ＰＬＣサポート装置８は、比較処理を行なう。具体的には、ＰＬＣサポート装置８は、送信された各識別情報と順序情報とを用いて複数のＩＯユニット５３からなるシステムの構成が予め指定された構成であるか否かを判断する。予め定められら構成であると判断された場合、シーケンスＳＱ１８において、ＰＬＣサポート装置８は、ＰＬＣサポート装置で作成された各ＩＯユニット５３の設定情報Ｄ６２を、通信カプラ５２に送信する。シーケンスＳＱ２０において、通信カプラ５２は、受信した設定情報を不揮発性メモリ１０１（記憶部５２１）に格納する。
【０１０２】
図９は、ＰＬＣシステムＳＹＳにおける処理を説明するための２つ目のシーケンスチャートである。具体的には、図９は、設定情報を格納した通信カプラ５２が、各ＩＯユニット５３に設定情報を送信するときの処理を説明するためのシーケンスチャートである。
【０１０３】
図９を参照して、シーケンスＳＱ１０２において、通信カプラ５２に給電が開始される。シーケンスＳＱ１０４において、通信カプラ５２は、識別情報要求をＩＯユニット５３−１に送信する。シーケンスＳＱ１０６において、識別情報要求をＩＯユニット５３−２に送信する。通信カプラ５２は、他のＩＯユニットに対しても識別情報要求を送信する。
【０１０４】
シーケンスＳＱ１０８において、ＩＯユニット５３−１は、ＩＯユニット５３−１に記憶されている自ユニットの識別情報を通信カプラ５２に送信する。シーケンスＳＱ１１０において、ＩＯユニット５３−２は、ＩＯユニット５３−２に記憶されている自ユニットの識別情報を通信カプラ５２に送信する。他のＩＯユニット５３−３，…についても、同様の処理を行なう。
【０１０５】
シーケンスＳＱ１１２において、通信カプラ５２は、複数のＩＯユニット５３の接続順序を検出する。シーケンスＳＱ１１４において、通信カプラ５２は、システム構成の適否を判断する。具体的には、通信カプラ５２は、各識別情報と接続順序とに基づいて、システムの構成がユニット構成情報Ｄ６０に基づいた構成となっているかを判断する。
【０１０６】
システム構成が適切であると判断された場合、シーケンスＳＱ１１６において、通信カプラ５２は、通信カプラ５２の不揮発性メモリ１０１から各設定情報を読み出す。シーケンスＳＱ１１８において、通信カプラ５２は、読み出したＩＯユニット５３−１用の設定情報を、ＩＯユニット５３−１に送信する。シーケンスＳＱ１２０において、ＩＯユニット５３−１は、受信した設定情報を揮発性メモリに格納する。シーケンスＳＱ１２２において、通信カプラ５２は、読み出したＩＯユニット５３−２用の設定情報を、ＩＯユニット５３−２に送信する。シーケンスＳＱ１２４において、ＩＯユニット５３−２は、受信した設定情報を揮発性メモリに格納する。他のＩＯユニット５３−３，…においても、同様の処理が繰り返される。
【０１０７】
図１０は、通信カプラ５２における処理の流れを表したフローチャートである。具体的には、図１０は、設定情報を格納した通信カプラ５２が、各ＩＯユニット５３に設定情報を送信するときの処理の流れを説明するためのフローチャートである。図１０のフローチャートは、図９のシーケンスチャートにおける通信カプラ５２の処理に対応する。
【０１０８】
図１０を参照して、ステップＳ２において、通信カプラ５２への給電が開始される。ステップＳ４において、通信カプラ５２のプロセッサ１００は、各ＩＯユニット５３に対して、識別情報要求を送信する。ステップＳ６において、プロセッサ１００は、各ＩＯユニット５３から識別情報を受信する。ステップＳ８において、プロセッサ１００は、接続順序の検出を行なう。
【０１０９】
ステップＳ１０において、プロセッサ１００は、システム構成が適切か否かを判断する。具体的には、プロセッサ１００は、ＩＯユニット５３の接続順序が、予め設定された接続順序と同じであるか否かを判断する。また、プロセッサ１００は、シリアル番号照合機能が有効化されている場合には、シリアル番号が一致しているか否かをＩＯユニット５３毎に判断する。また、プロセッサ１００は、上述したバージョン情報（ユニットバージョン（図６参照））の照合も行なう。詳しくは、プロセッサ１００は、ＩＯユニット５３から取得したバージョン情報に示されたバージョンが、予め格納されたバージョン情報に示されたバージョンよりも低くないかを、ＩＯユニット５３毎に判断する。
【０１１０】
プロセッサ１００は、ステップＳ１０において肯定的な判断がなされた場合（ＹＥＳの場合）、ステップＳ１２において、不揮発性メモリ１０１から設定情報Ｄ６２をＩＯユニット５３毎に読み出す。ステップＳ１４において、プロセッサ１００は、各設定情報Ｄ６２−１，６２−２，…を、対応するＩＯユニット５３に送信し、各ＩＯユニット５３に予め定められた処理を実行させる。プロセッサ１００は、ステップＳ１０において否定的な判断がなされた場合（ＮＯの場合）、設定情報を送信することなく、一連の処理を終了する。
【０１１１】
＜Ｈ．ＰＬＣサポート装置８におけるＵＩ＞
図１１は、ＰＬＣサポート装置８のディスプレイ８７における画面を表した図である。具体的には、図１１は、通信カプラ５２が設定情報をＰＬＣサポート装置８から取得する前に行なわれる比較処理を説明するための図である。
【０１１２】
図１１を参照して、ＰＬＣサポート装置８は、ユーザがサポートソフトウェアを用いて設定したリモートＩＯターミナル５におけるユニット構成（ソフトウェア上の構成）と、実際のリモートＩＯターミナル５の構成（実ユニット構成）とを表示する。また、ＰＬＣサポート装置８は、ソフトウェア上の構成と実ユニット構成とを比較した結果も表示する。
【０１１３】
なお、ソフトウェア上の構成とは、詳しくは、ユーザがＰＬＣサポート装置８内でサポートソフトウェアを用いて生成したリモートＩＯターミナル５についての仮想的構成である。それに対し、実ユニット構成とは、装置として現に存在しているリモートＩＯターミナル５の構成である。つまり、実ユニット構成とは、ユーザがＩＯユニット５３をスロットに設置すること等により構成された実機そのものの構成である。通常、ユーザは、サポートソフトウェアを用いて、実ユニット構成に則したユーザプログラムを作成する。
【０１１４】
図１１に示す場合には、ソフトウェア上の構成と、実ユニット構成とが一致していない。この場合には、ＰＬＣサポート装置８は、ＩＯユニット５３毎の各設定情報Ｄ６２を通信カプラ５２には送信しない。したがって、この場合には、通信カプラ５２は、ソフトウェア上の構成として示されたＩＯユニット５３の設定情報を、ＰＬＣサポート装置８からは取得できない。
【０１１５】
一方、ソフトウェア上の構成と実ユニット構成とが一致している場合には、ＰＬＣサポート装置８は、ＩＯユニット５３毎の各設定情報Ｄ６２を通信カプラ５２には送信する。したがって、この場合には、通信カプラ５２は、ソフトウェア上の構成（つまり、実ユニット構成）として示されたＩＯユニット５３の設定情報を、ＰＬＣサポート装置８から取得できる。
【０１１６】
＜Ｉ．変形例＞
上記においては、リモートＩＯターミナル５における設定情報の引き継ぎについて説明した。つまり、通信カプラ５２に給電が開始される度に、通信カプラ５２に格納された各設定情報が、対応するＩＯユニット５３に送信される構成を説明した。しかしながら、上述した設定情報の引き継ぎ処理等は、リモートＩＯターミナル５だけではなく、ＰＬＣ１においても適用できる。それゆえ、以下では、ＰＬＣ１のハードウェア構成等について説明する。
【０１１７】
図１２は、本発明の実施の形態に係るＰＬＣ１の接続構成を示す模式図である。図１３は、本発明の実施の形態に係るＰＬＣ１を構成するＣＰＵユニット１３のハードウェア構成を示す模式図である。
【０１１８】
図１２を参照して、ＰＬＣ１においても、上述のリモートＩＯターミナル５（図２参照）と同様に、ＣＰＵユニット１３および１つ以上のＩＯユニット１４−１，１４−２，１４−３（以下「ＩＯユニット１４」と総称する場合もある。）が通信ラインであるリモートＩＯターミナルバス５１（ダウンリンク６１１およびアップリンク６１２）を介して互いにデータ伝送可能になっている。すなわち、ＰＬＣ１は、通信ラインを介して接続される複数のユニット（ＣＰＵユニット１３およびＩＯユニット１４）を含む。
【０１１９】
ＩＯユニット１４の各々は、ダウンリンク６１１またはアップリンク６１２を伝送するフレームを受信すると、そのフレームからデータを復号して必要な処理を実行する。そして、ＩＯユニット１４の各々は、フレームを再生成した上で、次段のＩＯユニット１４へ再送信（フォワード）する。各ＩＯユニット１４は、ダウンリンク６１１に関して、受信部（ＲＸ）２１０ａおよび送信部（ＴＸ）２１０ｂを含むとともに、アップリンク６１２に関して、受信部２２０ａおよび送信部２２０ｂを含む。
【０１２０】
ＣＰＵユニット１３は、プロセッサ１５０と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【０１２１】
図１３を参照して、ＰＬＣ１のＣＰＵユニット１３は、プロセッサ１５０と、主メモリ１５２と、不揮発性メモリ１５４と、フィールドバス制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。ＣＰＵユニット１３のデータ伝送に係る基本的な構成は、上述の通信カプラ５２（図２）と同様であるので、対応する部分（同一の参照符号を付している）についての説明は繰り返さない。
【０１２２】
ＣＰＵユニット１３のプロセッサ１５０は、対象の制御に係るユーザプログラムを実行する。より具体的には、ＣＰＵユニット１３は、不揮発性メモリ１５４などからユーザプログラム１５６を読み出すとともに、主メモリ１５２に展開して実行する。このユーザプログラムの実行によって、ＩＯユニット１４の入力部によって検出された状態値に基づいて、ＩＯユニット１４の出力部から出力すべき状態値が順次算出される。
【０１２３】
ＰＬＣ１のＩＯユニット１４の構成については、上述したリモートＩＯターミナル５のＩＯユニット５３の構成（図４参照）と同様であるので、詳細な説明は繰り返さない。
【０１２４】
このような構成のＰＬＣ１では、リモートＩＯターミナル５の場合と同様に、以下の処理等が行なわれる。
【０１２５】
（ｉ１．設定情報の引き継ぎ）
ＣＰＵユニット１３は、ＰＬＣ１においてマスタ装置として機能し、予め定められた設定情報に基づいて動作するＩＯユニット１４とリモートＩＯターミナルバス５１によって通信可能に接続されている。ＣＰＵユニット１３は、各ＩＯユニット１４用の設定情報を格納する。ＣＰＵユニット１３は、ＣＰＵユニット１３に対して給電が開始されると、格納された各設定情報を、対応するＩＯユニット１４に送信する。より具体的には、ＣＰＵユニット１３は、システムプログラムをさらに格納しており、当該システムプログラムを実行することにより、設定情報をＩＯユニット１４に送信する。
【０１２６】
（ｉ２．設定情報の引き継ぎの条件）
ＣＰＵユニット１３は、ＩＯユニット１４毎の各設定情報を含む、複数のＩＯユニット１４からなるシステムの構成を表したユニット構成情報を少なくとも格納する。より正確には、ＣＰＵユニット１３は、ＩＯユニット１４毎の各設定情報を含む、ＣＰＵユニット１３と複数のＩＯユニット１４とからなるシステムの構成を表したシステム構成情報を少なくとも格納する。
【０１２７】
ＣＰＵユニット１３は、格納された各設定情報を、対応するＩＯユニット１４に送信する機能を有する。ＣＰＵユニット１３は、ＣＰＵユニット１３に対して給電が開始されると、各ＩＯユニット１４の識別情報を各ＩＯユニット１４装置から取得する。また、ＣＰＵユニット１３は、リモートＩＯターミナルバス５１における各ＩＯユニット１４の接続順序を検出する。さらに、ＣＰＵユニット１３は、各識別情報と接続順序とに基づいて、システムの構成が構成情報に基づいた構成となっているかを判断する。ＣＰＵユニット１３は、システム構成が構成情報に基づいた構成となっていると判断すると、各ＩＯユニット１４に対して当該ＩＯユニット１４の設定情報を送信し、各ＩＯユニット１４に予め定められた処理を開始させる。
【０１２８】
このように、リモートＩＯターミナル５で実行された設定情報の引き継ぎ処理等は、ＰＬＣ１においても適用できるため、ＰＬＣ１においても、リモートＩＯターミナル５で得られたのと同様を効果を得ることができる。
【０１２９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３０】
１  ＰＬＣ、２  フィールドネットワーク、３  サーボモータドライバ、４  サーボモータ、５  リモートＩＯターミナル、６  検出スイッチ、７  リレー、８  ＰＬＣサポート装置、１０  接続ケーブル、１１  ＰＬＣシステムバス、１２  電源ユニット、１３  ＣＰＵユニット、１４，５３  ＩＯユニット、１５  特殊ユニット、５１  リモートＩＯターミナルバス、５２  通信カプラ、５１１，６１１  ダウンリンク、５１２，６１２  アップリンク、５２１，５３１  記憶部、５２２  制御部、５３２，５２２４  通信制御部、５２２１  取得部、５２２２  検出部、５２２３  判断部、ＳＹＳ  ＰＬＣシステム。
【図１】
2014119907.tif 000003
【図２】
2014119907.tif 000004
【図３】
2014119907.tif 000005
【図４】
2014119907.tif 000006
【図５】
2014119907.tif 000007
【図６】
2014119907.tif 000008
【図７】
2014119907.tif 000009
【図８】
2014119907.tif 000010
【図９】
2014119907.tif 000011
【図１０】
2014119907.tif 000012
【図１１】
2014119907.tif 000013
【図１２】
2014119907.tif 000014
【図１３】
2014119907.tif 000015