(57)【特許請求の範囲】
【請求項１】
マスタ装置と前記マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムに対してパラメータを設定するための情報処理装置であって、前記マスタ装置と前記１つまたは複数のスレーブ装置との間には、共通の通信周期で前記ネットワーク上をデータフレームが伝送されており、前記スレーブ装置は、制御対象との間で信号を遣り取りする１または複数の機能ユニットを含み、
予め用意された複数のモードのうち選択されたモードに従って、前記スレーブ装置に含まれる機能ユニットの各々に対するパラメータを算出する算出手段と、
算出されたパラメータを前記制御システムに対して設定する設定手段とを備え、
前記複数のモードは、
前記スレーブ装置に含まれるすべての機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第１のモードと、
前記スレーブ装置に含まれる特定の機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第２のモードとを含む、情報処理装置。
【請求項２】
前記第２のモードにおいて、前記特定の機能ユニット以外の前記スレーブ装置に含まれる機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミングのいずれか一方を、同期させる、請求項１に記載の情報処理装置。
【請求項３】
前記第２のモードにおいて、
前記特定の機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させるとともに、
前記特定の機能ユニット以外の前記スレーブ装置に含まれる機能ユニットの間で、前記特定の機能ユニットとは独立して、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる、請求項１に記載の情報処理装置。
【請求項４】
前記スレーブ装置に含まれる機能ユニットのうち前記特定の機能ユニットに該当するものの選択を受け付ける手段をさらに備える、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記マスタ装置は、制御対象との間で信号を遣り取りする１または複数の機能ユニットを含み、
前記算出手段は、さらに、前記複数のモードのうち選択されたモードに従って、前記マスタ装置に含まれる機能ユニットの各々に対するパラメータを算出する、
前記複数のモードは、さらに
前記マスタ装置に含まれるすべての機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させるモードと、
前記マスタ装置に含まれる特定の機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させるモードとをさらに含む、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる対象となる機能ユニットを特定する手段と、
前記ネットワーク上を所定の通信周期で伝送される前記データフレームに関して、前記マスタ装置が前記データフレームを送出してから、前記スレーブ装置での受信が完了するまでに要する第１の見込み時間を取得する手段と、
前記スレーブ装置において、前記データフレームの受信が完了してから、当該受信したデータフレームに含まれるデータの対象の機能ユニットすべてへの転送が完了するまでに要する第２の見込み時間を取得する手段と、
前記スレーブ装置において、前記対象の機能ユニットのすべてが前記制御対象から取得した状態値を前記ネットワークを介して送出できる状態になるまでに要する第３の見込み時間を取得する手段と、
前記対象の機能ユニットの各々について、前記第１〜第３の見込み時間に基づいて、前記制御対象からの状態値の取得を開始する通信周期内のタイミング、および、前記受信したデータフレームに含まれるデータを前記制御対象に対して出力する通信周期内のタイミングをそれぞれ決定する決定手段とをさらに備える、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
マスタ装置と前記マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムに対してパラメータを設定するための処理をコンピュータに実行させる情報処理プログラムであって、前記マスタ装置と前記１つまたは複数のスレーブ装置との間には、共通の通信周期で前記ネットワーク上をデータフレームが伝送されており、前記スレーブ装置は、制御対象との間で信号の遣り取りする１または複数の機能ユニットを含み、前記情報処理プログラムは、前記コンピュータに
予め用意された複数のモードのうち選択されたモードに従って、前記スレーブ装置に含まれる機能ユニットの各々に対するパラメータを算出するステップと、
算出されたパラメータを前記制御システムに対して設定するステップとを実行させ、
前記複数のモードは、
前記スレーブ装置に含まれるすべての機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第１のモードと、
前記スレーブ装置に含まれる特定の機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第２のモードとを含む、情報処理プログラム。
【請求項８】
マスタ装置と前記マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムに対してパラメータを設定するための情報処理方法であって、前記マスタ装置と前記１つまたは複数のスレーブ装置との間には、共通の通信周期で前記ネットワーク上をデータフレームが伝送されており、前記スレーブ装置は、制御対象との間で信号の遣り取りする１または複数の機能ユニットを含み、前記情報処理方法は、
予め用意された複数のモードのうち選択されたモードに従って、前記スレーブ装置に含まれる機能ユニットの各々に対するパラメータを算出するステップと、
算出されたパラメータを前記制御システムに対して設定するステップとを備え、
前記複数のモードは、
前記スレーブ装置に含まれるすべての機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第１のモードと、
前記スレーブ装置に含まれる特定の機能ユニットの間で、前記制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第２のモードとを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械や設備などの動作を制御する制御システムに対してパラメータを設定するための情報処理装置、情報処理プログラムおよび情報処理方法に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable Logic Controller；以下「ＰＬＣ」とも称す。）などからなる制御装置を含む制御システムによって制御される。このような制御システムにおいて、ＰＬＣは、ＣＰＵ（Central Processing Unit）ユニットと、外部のスイッチやセンサからの信号入力および／または外部のリレーやアクチュエータへの信号出力を担当するＩＯ（Input Output）ユニットなどの機能ユニットとを含む。ＰＬＣは、ネットワークにより、１または複数のリモートＩＯターミナルと接続されこともある。このような各リモートＩＯターミナルは、通信カプラと、１または複数の機能ユニットとを含む。
【０００３】
このようなＰＬＣと１または複数のリモートＩＯターミナルとの間の通信は、ＰＬＣが通信全体を管理するマスタとして機能し、ポーリング方式を用いて実現される場合もある。例えば、特開２００７−３１２０４３号公報（特許文献１）は、リモートＩＯシステムにおけるマスタ／スレーブ間通信として、一般的には、一斉同報方式とポーリング方式との２通りの通信方式を開示する。一斉同報方式は、マスタ局がすべてのスレーブ局を対象として同時に送信する通信方式であり、ポーリング方式は、マスタ局が対象となるスレーブ局のアドレス等の識別情報を特定し、対象となるスレーブ局を指定して送信する通信方式である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３１２０４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、同一の制御対象に対して何らかの制御を行う場合には、当該制御対象から取得される複数の状態値の間では同期を取ることが好ましい。すなわち、それぞれの状態値を同一のタイミングで制御対象から取得し、これらの取得した状態値に基づいて、制御対象に対する出力値などを算出することが好ましい。
【０００６】
ネットワーク接続されたリモートＩＯターミナルの間では、伝送遅延などが発生するため、異なるリモートＩＯターミナルからそれぞれ取得された状態値の間で同期を取ることは容易ではない。例えば、データフレームを順次転送して、各リモートＩＯターミナルとの間でデータを遣り取りする通信方式では、データフレームの到着タイミングがリモートＩＯターミナル間で異なる。そのため、それぞれの到着タイミングに応じて、状態値の取得（入力リフレッシュ）のタイミングおよび出力値の更新（出力リフレッシュ）のタイミングをリモートＩＯターミナルごとに調整する必要がある。
【０００７】
そこで、リモートＩＯターミナル間でタイミングを調整することになるが、機能ユニットの間でも応答性は異なっている。そのため、リモートＩＯターミナルに接続されるすべての機能ユニットの間で、状態値の取得（入力リフレッシュ）のタイミングおよび出力値の更新（出力リフレッシュ）のタイミングを同期させる（揃える）場合には、最も応答性の低い機能ユニットに合わせる必要がある。その結果、データフレームの通信周期を短くできないという課題が生じる。
【０００８】
本発明は、上記のような点を考慮してなされたものであり、その目的は、マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムにおいて、機能ユニット間での入力タイミングおよび出力タイミングの同期と、ネットワーク上を伝送されるデータフレームの通信周期の短縮という、互いに相反する課題を同時に解決できる手段を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のある局面に従えば、マスタ装置とマスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムに対してパラメータを設定するための情報処理装置が提供される。スレーブ装置は、制御対象との間で信号を遣り取りする１または複数の機能ユニットを含む。情報処理装置は、予め用意された複数のモードのうち選択されたモードに従って、スレーブ装置に含まれる機能ユニットの各々に対するパラメータを算出する算出手段と、算出されたパラメータを制御システムに対して設定する設定手段とを含む。複数のモードは、スレーブ装置に含まれるすべての機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第１のモードと、スレーブ装置に含まれる特定の機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第２のモードとを含む。
【００１０】
好ましくは、第２のモードにおいて、特定の機能ユニット以外のスレーブ装置に含まれる機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミングのいずれか一方を、同期させる。
【００１１】
あるいは好ましくは、第２のモードにおいて、特定の機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させるとともに、特定の機能ユニット以外のスレーブ装置に含まれる機能ユニットの間で、特定の機能ユニットとは独立して、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる。
【００１２】
好ましくは、情報処理装置は、スレーブ装置に含まれる機能ユニットのうち特定の機能ユニットに該当するものの選択を受け付ける手段をさらに含む。
【００１３】
好ましくは、マスタ装置は、制御対象との間で信号を遣り取りする１または複数の機能ユニットを含む。算出手段は、さらに、複数のモードのうち選択されたモードに従って、マスタ装置に含まれる機能ユニットの各々に対するパラメータを算出する。複数のモードは、さらに、マスタ装置に含まれるすべての機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させるモードと、マスタ装置に含まれる特定の機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させるモードとをさらに含む。
【００１４】
好ましくは、情報処理装置は、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる対象となる機能ユニットを特定する手段と、ネットワーク上を所定の通信周期で伝送されるデータフレームに関して、マスタ装置がデータフレームを送出してから、スレーブ装置での受信が完了するまでに要する第１の見込み時間を取得する手段と、スレーブ装置において、データフレームの受信が完了してから、当該受信したデータフレームに含まれるデータの対象の機能ユニットすべてへの転送が完了するまでに要する第２の見込み時間を取得する手段と、スレーブ装置において、対象の機能ユニットのすべてが制御対象から取得した状態値をネットワークを介して送出できる状態になるまでに要する第３の見込み時間を取得する手段と、対象の機能ユニットの各々について、第１〜第３の見込み時間に基づいて、制御対象からの状態値の取得を開始する通信周期内のタイミング、および、受信したデータフレームに含まれるデータを制御対象に対して出力する通信周期内のタイミングをそれぞれ決定する決定手段とをさらに含む。
【００１５】
本発明の別の局面に従えば、マスタ装置とマスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムに対してパラメータを設定するための処理をコンピュータに実行させる情報処理プログラムが提供される。スレーブ装置は、制御対象との間で信号の遣り取りする１または複数の機能ユニットを含む。情報処理プログラムは、コンピュータに、予め用意された複数のモードのうち選択されたモードに従って、スレーブ装置に含まれる機能ユニットの各々に対するパラメータを算出するステップと、算出されたパラメータを制御システムに対して設定するステップとを実行させる。複数のモードは、スレーブ装置に含まれるすべての機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第１のモードと、スレーブ装置に含まれる特定の機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第２のモードとを含む。
【００１６】
本発明のさらに別の局面に従えば、マスタ装置とマスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムに対してパラメータを設定するための情報処理方法が提供される。スレーブ装置は、制御対象との間で信号の遣り取りする１または複数の機能ユニットを含む。情報処理方法は、予め用意された複数のモードのうち選択されたモードに従って、スレーブ装置に含まれる機能ユニットの各々に対するパラメータを算出するステップと、算出されたパラメータを制御システムに対して設定するステップとを含む。複数のモードは、スレーブ装置に含まれるすべての機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第１のモードと、スレーブ装置に含まれる特定の機能ユニットの間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる第２のモードとを含む。
【発明の効果】
【００１７】
本発明によれば、マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムにおいて、機能ユニット間での入力タイミングおよび出力タイミングの同期と、ネットワーク上を伝送されるデータフレームの通信周期の短縮という、互いに相反する課題を同時に解決できる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態に係る制御システムの構成例を示す模式図である。
【図２】本実施の形態に係るリモートＩＯターミナルの接続構成を示す模式図である。
【図３】本実施の形態に係るリモートＩＯターミナルを構成する通信カプラのハードウェア構成を示す模式図である。
【図４】本実施の形態に係るリモートＩＯターミナルの機能ユニットのハードウェア構成を示す模式図である。
【図５】本実施の形態に係るＰＬＣに接続されるサポート装置のハードウェア構成を示す模式図である。
【図６】本実施の形態に係る制御システムにおける時刻同期機能を説明するための模式図である。
【図７】本実施の形態に係る制御システムにおいて入出力同期モードが設定されている場合のタイムチャートである。
【図８】本実施の形態に係る制御システムにおける入出力同期モードにおける課題を説明するタイムチャートである。
【図９】本実施の形態に係る制御システムにおいて部分的に入出力同期モードが設定されている場合のタイムチャートである。
【図１０】本実施の形態に係る制御システムにおいて部分的に入出力同期モードが設定されている場合の別のタイムチャートである。
【図１１】本実施の形態に係る制御システムにおいて異なる入出力同期モードが設定されている場合のタイムチャートである。
【図１２】本実施の形態に係る制御システムにおける入力リフレッシュに要する時間を説明するための図である。
【図１３】本実施の形態に係る制御システムにおける出力リフレッシュに要する時間を説明するための図である。
【図１４】本実施の形態に係る制御システムを構成するサポート装置に格納されるデバイスプロファイルのデータ構造の一例を示す図である。
【図１５】本実施の形態に係る制御システムにおける入出力同期モードの選択的な設定方法の一例を示す模式図である。
【図１６】図１５に示す設定方法に対応するユーザインターフェイス画面の一例を示す図である。
【図１７】本実施の形態に係るサポート装置によって提供されるユーザインターフェイス画面の一例を示す図である。
【図１８】本実施の形態に係るサポート装置によって提供されるユーザインターフェイス画面の別の一例を示す図である。
【図１９】本実施の形態に係る制御システムに対するパラメータを設定する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２０】
＜Ａ．制御システムの構成例＞
まず、本実施の形態に係る制御システムの構成例について説明する。図１は、本実施の形態に係る制御システムＳＹＳの構成例を示す模式図である。図１を参照して、制御システムＳＹＳは、ＰＬＣ１と、上位通信ネットワークであるフィールドネットワーク２を介してＰＬＣ１に接続される、１つまたは複数のリモートＩＯターミナル３とを含む。ＰＬＣ１には、接続ケーブル５４などを介してサポート装置４０が接続される。
【００２１】
ＰＬＣ１は、主たる演算処理を実行するＣＰＵユニット１０と、１つ以上の機能ユニット２０とを含む。これらの機能ユニット２０は、内部バス１１を介して、データを互いに遣り取りできるように構成される。機能ユニット２０には、電源ユニット１２によって適切な電圧の電源が供給される。このような機能ユニット２０は、ＩＯユニットや特殊ユニットを含む。
【００２２】
ＩＯユニットは、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。ＩＯユニットは、検出スイッチ６などのセンサが何らかの対象物を検出している状態（オン）および何らの対象物も検出していない状態（オフ）のいずれであるかという情報を収集する。また、ＩＯユニットは、リレー７やアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）のいずれかを出力する。
【００２３】
特殊ユニットは、アナログデータの入出力、温度制御、ＰＩＤ制御、パルスカウンタ、サーボ制御、インバータ制御、特定の通信方式による通信（例えば、シリアル通信やエンコーダ入力）といった、ＩＯユニットではサポートしない機能を有する。
【００２４】
フィールドネットワーク２は、ＣＰＵユニット１０と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、各種の産業用のイーサネット（登録商標）を用いることができる。産業用のイーサネット（登録商標）としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、ＰＲＯＦＩＮＥＴ（登録商標）、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどがある。さらに、産業用のイーサネット（登録商標）以外のフィールドネットワークを用いてもよい。例えば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ（登録商標）などを用いてもよい。
【００２５】
本実施の形態においては、一例として、フィールドネットワーク２上をデータフレームが順次転送されることで、ＰＬＣ１とリモートＩＯターミナル３との間、または、リモートＩＯターミナル３の間でデータが遣り取りされる。以下の説明では、内部バス上を伝搬するデータフレームと区別するために、フィールドネットワーク２上のデータフレームを「上位データフレーム」とも称す。
【００２６】
図１に示す制御システムＳＹＳのフィールドネットワーク２には、さらに、１つ以上のリモートＩＯターミナル３が接続されている。リモートＩＯターミナル３は、ＰＬＣ１に装着される機能ユニット２０を、ＰＬＣ１の配置位置とは異なる位置に拡張的に配置するためのものである。より具体的には、リモートＩＯターミナル３は、フィールドネットワーク２でのデータ伝送に係る処理を行うための通信カプラ３０と、１つ以上の機能ユニット２０とを含む。すなわち、リモートＩＯターミナル３は、制御対象との間で信号を遣り取りする１または複数の機能ユニット２０を含む。これらの機能ユニット２０は、内部バス３１を介して、データを互いに遣り取りできるように構成される。
【００２７】
通信カプラ３０は、機能ユニット２０の動作を制御するとともに、ＣＰＵユニット１０との間のデータ伝送を制御する。通信カプラ３０は、フィールドネットワーク２を介して、ＰＬＣ１のＣＰＵユニット１０に接続されている。
【００２８】
リモートＩＯターミナル３において、通信カプラ３０は、装着される機能ユニット２０（ＩＯユニットや特殊ユニット）との間の内部バス３１を介したデータ伝送を主体的に管理する。
【００２９】
以下の説明では、ＰＬＣ１（より具体的には、ＣＰＵユニット１０）は、フィールドネットワーク２を介したデータ伝送を主体的に管理するので、その機能に着目して、これらを「マスタ装置」とも記載し、それ以外のリモートＩＯターミナル３（より具体的には、通信カプラ３０）を「スレーブ装置」とも記載する。すなわち、制御システムＳＹＳは、マスタ装置（ＰＬＣ１）と、マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置（リモートＩＯターミナル３）とを含む。なお、スレーブ装置としては、リモートＩＯターミナル３以外にも、フィールドネットワーク２に直接接続される、サーボドライバなども含み得る。さらに、フィールドネットワーク２に複数のＰＬＣ１が接続される場合には、いずれか１つのＰＬＣ１がマスタ装置となり、残りのＰＬＣ１がスレーブ装置になる場合もある。さらにあるいは、ＰＬＣ１およびリモートＩＯターミナル３のいずれとも異なる制御主体がマスタ装置になってもよい。
【００３０】
すなわち、「マスタ装置」および「スレーブ装置」との用語は、フィールドネットワーク２上のデータ伝送の制御機能に着目した表現であり、各装置が制御対象との間でどのような情報を遣り取りするのかについては、特に制限されるものではない。
【００３１】
＜Ｂ．リモートＩＯターミナル３のハードウェア構成例＞
次に、本実施の形態に係る制御システムＳＹＳの一部を構成するリモートＩＯターミナル３のハードウェア構成について説明する。
【００３２】
（ｂ１．接続構成）
図２は、本実施の形態に係るリモートＩＯターミナル３の接続構成を示す模式図である。図２を参照して、リモートＩＯターミナル３では、１つ以上の機能ユニット２０−１，２０−２，２０−３，…が通信ラインである内部バス３１（ダウンリンク３１１およびアップリンク３１２）を介して通信カプラ３０と互いにデータ伝送可能になっている。
【００３３】
一例として、ダウンリンク３１１およびアップリンク３１２では、シリアル通信が採用されており、対象のデータは、時系列に一列に並べられた形で伝搬する。より具体的には、ダウンリンク３１１では、通信カプラ３０から機能ユニット２０へ向けて、ダウンリンク３１１を介して一方向にデータが送信される。一方、アップリンク３１２では、いずれかの機能ユニット２０から通信カプラ３０へ向けて、アップリンク３１２を介して一方向にデータが送信される。
【００３４】
機能ユニット２０の各々は、ダウンリンク３１１またはアップリンク３１２を伝搬するデータフレームを受信すると、そのデータフレームからデータを復号して必要な処理を実行する。そして、機能ユニット２０の各々は、データフレームを再生成した上で、次段の機能ユニット２０へ再送信（フォワード）する。以下の説明では、フィールドネットワーク２上を伝搬するデータフレーム（上位データフレーム）と区別するために、機能ユニット２０から出力すべき状態値を含むデータフレームを「内部バスＯＵＴフレーム」とも称し、機能ユニット２０によって取得された状態値を含むデータフレームを「内部バスＩＮフレーム」とも称す。基本的には、「内部バスＯＵＴフレーム」は、ダウンリンク３１１上を伝搬し、「内部バスＩＮフレーム」は、アップリンク３１２を伝搬する。また、「内部バスＯＵＴフレーム」および「内部バスＩＮフレーム」を「内部バスフレーム」と総称する場合もある。
【００３５】
このようなデータフレーム（内部バスフレーム）の順次転送を実現するために、各機能ユニット２０は、ダウンリンク３１１に関して、受信部（以下「ＲＸ」とも記す。）２１０ａおよび送信部（以下「ＴＸ」とも記す。）２１０ｂを含むとともに、アップリンク３１２に関して、受信部２２０ａおよび送信部２２０ｂを含む。受信部２１０ａおよび２２０ａは、通信ラインである内部バス３１を介して他の機能ユニット２０から内部バスフレームに含まれるデータを受信する。送信部２１０ｂおよび２２０ｂは、通信ラインである内部バス３１を介して他の機能ユニット２０へデータを含む内部バスフレームを送信する。
【００３６】
各機能ユニット２０は、プロセッサ２００を含み、プロセッサ２００がこれらのデータ処理を制御する。
【００３７】
通信カプラ３０は、演算主体であるプロセッサ１００と、フィールドネットワーク制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。すなわち、通信カプラ３０は、内部バス３１（ダウンリンク３１１およびアップリンク３１２）と接続されるだけではなく、受信部１１２および送信部１１４を介して、フィールドネットワーク２とも接続される。フィールドネットワーク制御部１１０は、フィールドネットワーク２を介したデータ伝送を管理し、内部バス制御部１３０は、内部バス３１を介したデータ伝送を管理する。
【００３８】
（ｂ２．通信カプラ３０の構成）
図３は、本実施の形態に係るリモートＩＯターミナル３を構成する通信カプラ３０のハードウェア構成を示す模式図である。図３を参照して、リモートＩＯターミナル３の通信カプラ３０は、プロセッサ１００と、不揮発性メモリ１０１と、フィールドネットワーク制御部１１０と、受信部１１２と、送信部１１４と、内部バス制御部１３０とを含む。
【００３９】
受信部１１２は、ＰＬＣ１からフィールドネットワーク２を介して送信される上位データフレームを受信してデータへ復号した上で、フィールドネットワーク制御部１１０へ出力する。送信部１１４は、フィールドネットワーク制御部１１０から出力されるデータから上位データフレームを再生成してフィールドネットワーク２を介して再送信（フォワード）する。
【００４０】
フィールドネットワーク制御部１１０は、受信部１１２および送信部１１４と協働して、フィールドネットワーク２を介して予め定められた伝送周期ごとに上位データフレームを送受信する。より具体的には、フィールドネットワーク制御部１１０は、フィールドネットワーク通信コントローラ１２０と、メモリコントローラ１２２と、ＦＩＦＯ（First In First Out）メモリ１２４と、受信バッファ１２６と、送信バッファ１２８とを含む。
【００４１】
フィールドネットワーク通信コントローラ１２０は、ＰＬＣ１からフィールドネットワーク２を介して送信されるコマンドなどを解釈して、フィールドネットワーク２を介した通信を実現するために必要な処理を実行する。また、フィールドネットワーク通信コントローラ１２０は、ＦＩＦＯメモリ１２４に順次格納される上位データフレームからのデータコピー、および上位データフレームに対するデータ書込みの処理を行う。
【００４２】
メモリコントローラ１２２は、ＤＭＡ（Direct 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）５２に格納されて流通する。このＣＤ−ＲＯＭ５２に格納されたプログラムは、ＣＤ−ＲＯＭ駆動装置４８によって読取られ、ハードディスク４４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００６４】
＜Ｅ．制御システムＳＹＳにおける入出力同期モード＞
次に、本実施の形態に係る制御システムＳＹＳにおける処理の同期方法について説明する。制御システムＳＹＳは、ＰＬＣ１（マスタ装置）と、１または複数のリモートＩＯターミナル３（スレーブ装置）との間で、各種の処理を同期するために、その１つの同期方法として、ＤＣ（ディストリビュート・クロック）方式による時刻同期機能を有している。
【００６５】
図６は、本実施の形態に係る制御システムＳＹＳにおける時刻同期機能を説明するための模式図である。図６を参照して、ＰＬＣ１およびリモートＩＯターミナル３−１，３−２，３−３，３−４は、それぞれ時計を有している。この時計は、各装置での処理の実行タイミングなどを定める基準となる。より具体的には、ＰＬＣ１およびリモートＩＯターミナル３−１〜３−４の各々は、時計として、同期の基準となる時刻情報（リファレンスクロック）を周期的に生成するタイマを有している。マスタ装置であるＰＬＣ１の時計が基準となり、スレーブ装置である各リモートＩＯターミナル３は、そのＰＬＣ１の時計に同期する。より具体的には、リモートＩＯターミナル３−１〜３−４の各々は、フィールドネットワーク２上を周期的に伝搬する上位データフレームに基づいて、各々が有するタイマに生じている時間的なずれを都度補正する。これによって、ＰＬＣ１の時計が発生するリファレンスクロックと同じタイミングで、リモートＩＯターミナル３−１〜３−４の各々の内部でリファレンスクロックが発生されるようになる。
【００６６】
したがって、ＰＬＣ１およびリモートＩＯターミナル３−１〜３−４の間では、実質的に、共通の時刻を利用可能になっている。
【００６７】
図６（Ａ）には、ＤＣ方式により装置間が同期化された状態を示す。図６（Ａ）を参照して、リモートＩＯターミナル３−１〜３−４は、共通の時間軸上で指定されたタイミングで、予め指定された処理をそれぞれ実行する。但し、上位データフレームの伝送遅延は存在する。そのため、例えば、リモートＩＯターミナル３−１において上位データフレームに含まれるデータを利用した処理を開始できるタイミング（時刻Ｔ１）と、リモートＩＯターミナル３−２において上位データフレームに含まれるデータを利用した処理を開始できるタイミング（時刻Ｔ２）との間には、時間差ＴＤ１が生じ得る。他のリモートＩＯターミナル３の間でも同様である。
【００６８】
伝送遅延、すなわち時間差（ＴＤ１〜ＴＤ４）はわずかな時間であるので、一般的な制御対象であれば、問題にはならない。しかしながら、多軸制御といった、複数のアクチュエータが同期して動作することが好ましい制御対象については、リモートＩＯターミナル３の間（あるいは、異なるリモートＩＯターミナル３に装着された機能ユニット２０の間）で、制御対象からの状態値の取得（入力リフレッシュ）のタイミングと、制御対象に対する出力値の更新（出力リフレッシュ）のタイミングとを同期させる（揃える）ことが重要になってくる。
【００６９】
このようなニーズに対して、本実施の形態に係る制御システムＳＹＳでは、以下に説明する「入出力同期」の機能を有している。
【００７０】
図６（Ｂ）には、装置間が「入出力同期」された状態を示す。図６（Ｂ）に示すように、リモートＩＯターミナル３−１〜３−４の間で、処理の開始タイミングが調整されており、いずれも時刻Ｔ４から一斉に処理を開始する。このような入出力同期を実現するために、リモートＩＯターミナル３−１〜３−４の各々には、ある時刻を基準として、それぞれの機能ユニット２０において、必要な処理を開始するタイミング（位相／開始遅延時間）が設定される。この設定されたタイミングに従って、機能ユニット２０の各々が必要な処理をトリガすることで、結果として、リモートＩＯターミナル３の間で、入力リフレッシュおよび出力リフレッシュのタイミングが実時間で同期される。
【００７１】
なお、図６に示すように、マスタ装置および１または複数のスレーブ装置の間で、共通の時刻が利用可能になっているため、フィールドネットワーク２に接続されている、ＰＬＣ１および１または複数のリモートＩＯターミナル３の全部または一部の間では、入出力同期が可能になっている。以下では、説明の便宜上、リモートＩＯターミナル３における入出力同期モードの設定方法などを主として例示するが、ＰＬＣ１（マスタ装置として機能する場合、および、スレーブ装置として機能する場合の両方を含む）においても同様の入出力同期モードの設定が可能である。言い換えれば、ＣＰＵユニット１０は、通信カプラ３０の機能を包含しており、通信カプラ３０で実行可能な処理と実質的に等価な処理が可能になっている。
【００７２】
以下、入出力同期モードに係るタイミングの設定についてより詳細に説明する。
図７は、本実施の形態に係る制御システムＳＹＳにおいて入出力同期モードが設定されている場合のタイムチャートである。図７には、マスタ装置であるＰＬＣ１と、スレーブ装置である２つのリモートＩＯターミナル＃１，＃２とからなる制御システムＳＹＳの例を示す。
【００７３】
図７の符号５０１の部分を参照して、ＰＬＣ１は、予め定められたＰＬＣ制御周期でユーザプログラムを繰り返し実行する（図７の（３）の部分）。ユーザプログラムは、典型的には、シーケンスプログラムおよびモーションプログラムを含む。なお、１回のＰＬＣ制御周期内ですべてのプログラムを完全に実行することができない場合もあり、その場合には、複数回のＰＬＣ制御周期にわたって、あるプログラムが１回実行されることもある。ＰＬＣ１において、ユーザプログラムの実行に先立って、制御対象から状態値を取得する処理（入力リフレッシュ）が実行される（図７の（２）の部分）。また、ＰＬＣ１において、ユーザプログラムの実行後に、その実行によって算出された結果（出力値）を反映する処理（出力リフレッシュ）が実行される（図７の（１）の部分）。典型的には、先の出力リフレッシュの開始から次の出力リフレッシュの開始までの期間が、ＰＬＣ制御周期として算出される。
【００７４】
ＰＬＣ１での出力リフレッシュが完了すると、ＣＰＵユニット１０と内部バス１１を介して接続されている１または複数の機能ユニット２０の出力値が更新される。併せて、フィールドネットワーク２を介して、出力リフレッシュによって算出された結果（出力値）を含む上位データフレームの送出が開始される。
【００７５】
図７の符号５０２および符号５０３の部分を参照して、ＰＬＣ１から送出された上位データフレームは、フィールドネットワーク２を介して、通信カプラ３０へ順次転送される（図７の（４）の部分）。上位データフレームの先頭がリモートＩＯターミナル＃１の通信カプラ３０に到達してから、同一の上位データフレームの先頭がリモートＩＯターミナル＃２の通信カプラ３０に到達するまでの時間が「伝送遅延」に相当する。すなわち、リモートＩＯターミナル＃１の上位データフレーム（図７の（４）の部分）と、リモートＩＯターミナル＃２の上位データフレーム（図７の（４）の部分）との間の時間軸上のずれが、「伝送遅延」に相当する。
【００７６】
また、ＰＬＣ１における制御周期（ＰＬＣ制御周期）は、上位データフレームが送出される周期（通信周期）と一致している。
【００７７】
リモートＩＯターミナル＃１，＃２の各々において、通信カプラ３０での上位データフレームの受信が完了すると、上位データフレームに含まれているリモートＩＯターミナル＃１，＃２に装着された機能ユニット２０向けのデータ（内部バスＯＵＴフレーム）が、内部バス３１を介して、それぞれの機能ユニット２０へ伝送される（図７の（５）の部分）。
【００７８】
機能ユニット２０の各々は、内部バス３１を介して伝送された内部バスＯＵＴフレームに従って、制御対象に対する出力値を更新（出力リフレッシュ）する（図７の（６）の部分）。その後、機能ユニット２０の各々は、制御対象からの状態値を取得（入力リフレッシュ）する（図７の（７）の部分）。続いて、それぞれの機能ユニット２０が取得した状態値を含むデータ（内部バスＩＮフレーム）が内部バス３１を介して通信カプラ３０へ伝送される（図７の（８）の部分）。さらに、通信カプラ３０は、受信した内部バスＩＮフレームの内容を上位データフレームへ反映した上で、次段の通信カプラ３０へ転送する（図７の（４）の部分）。
【００７９】
このように、リモートＩＯターミナル３（通信カプラ３０）は、到着した上位データフレームから出力値を示すデータを取得し、取得した出力値をそれぞれの機能ユニット２０へ与える。併せて、リモートＩＯターミナル３（通信カプラ３０）は、機能ユニット２０からの状態値を取得するとともに、フィールドネットワーク２内を順次伝送される上位データフレームにその取得した状態値を示すデータを付加する。すなわち、ＰＬＣ１（ＣＰＵユニット１０）とリモートＩＯターミナル３（通信カプラ３０）との間のフィールドネットワーク２を介したデータ更新処理と、通信カプラ３０と機能ユニット２０との間の内部バス３１を介したデータ更新処理とが並列的に実行される。
【００８０】
本実施の形態に係る制御システムＳＹＳにおいては、機能ユニット２０が出力値を更新する（厳密に表現すると、出力値の更新が完了する）タイミングを機能ユニット２０の間で一致させる。この出力値を更新するタイミングを「ＯＵＴデータ出力同期タイミング」とも称す。このＯＵＴデータ出力同期タイミングにおいては、すべての機能ユニットに対して、出力すべきデータ（ＯＵＴデータ）が与えられている必要がある。そのため、出力リフレッシュを開始するタイミングは、各機能ユニット２０の出力処理に要する時間などを考慮して決定される。
【００８１】
また、本実施の形態に係る制御システムＳＹＳにおいては、制御対象から状態値を取得する（入力リフレッシュ）タイミングを機能ユニット２０の間で一致させる。この状態値を取得するタイミングを「ＩＮデータラッチ同期タイミング」とも称す。「ＩＮデータラッチ」とは、機能ユニット２０に入力されている信号の値をあるタイミングで取得することを意味する。リモートＩＯターミナル３は、次の伝送周期の上位データフレームが到着する前に、制御対象からの状態値を取得（入力リフレッシュ）しておく必要がある。上位データフレームは順次転送されるので、各リモートＩＯターミナル３のフィールドネットワーク２内の装着位置に応じて、上位データフレームが到着するタイミングが異なる。そのため、ＩＮデータラッチ同期タイミングは、機能ユニット２０の入力処理に要する時間および上位データフレームに生じる伝送遅延などを考慮して決定される。
【００８２】
上述したような入出力同期モードを設定することで、異なるリモートＩＯターミナル３の間であっても、機能ユニット２０同士の入力リフレッシュおよび出力リフレッシュのタイミングを互いに同期させることができるので、例えば、多軸制御などをより高精度に実現できる。
【００８３】
このとき、リモートＩＯターミナル＃１および＃２において、出力リフレッシュおよび入力リフレッシュが繰り返される周期（＃１制御周期および＃２制御周期）は、いずれもＰＬＣ制御周期と一致する。但し、入出力同期モードが設定されている場合において、制御対象から取得された状態値（入力値）に基づいて決定される出力値が実際に機能ユニット２０で反映されるまでの時間（入出力応答時間）は、ＰＬＣ制御周期より長くなる。
【００８４】
＜Ｆ．制御システムＳＹＳにおける入出力同期モードの課題＞
次に、上述した入出力同期モードにおける課題について説明する。図８は、本実施の形態に係る制御システムＳＹＳにおける入出力同期モードにおける課題を説明するタイムチャートである。
【００８５】
図８に示すタイムチャートでは、リモートＩＯターミナル＃２の機能ユニット＃２−２の出力リフレッシュに要する時間が、他の機能ユニットに比較して長い場合を示す。この場合、リモートＩＯターミナル＃２において、すべての機能ユニットでの出力リフレッシュ（図８の（６）の部分）が完了するタイミングは、リモートＩＯターミナル＃１において、それぞれの機能ユニットが入力リフレッシュ（図８の（７）の部分）を開始するタイミングより後になっている。この状態では、リモートＩＯターミナル＃１のＩＮデータラッチ同期タイミングと、リモートＩＯターミナル＃２のＩＮデータラッチ同期タイミングとは一致せず、入力同期が不可能な状態になる。リモートＩＯターミナル＃２において、それぞれの機能ユニットが入力リフレッシュを実行し、その後、出力リフレッシュを実行した場合の処理全体に要する時間（＃２制御周期）は、ＰＬＣ制御周期より長くなる。すなわち、サイクルオーバーとなり、適切なパラメータ設定とは言えない。
【００８６】
この場合、ＰＬＣ制御周期（すなわち、上位データフレームの通信周期）を長くすることで、リモートＩＯターミナル＃２の機能ユニット＃２−２の出力リフレッシュにも適合させることができる。すなわち、本実施の形態に係る入出力同期モードを設定した場合、対象となるリモートＩＯターミナル３に装着されている複数の機能ユニット２０の間で、入力リフレッシュに要する最も長い時間および出力リフレッシュに要する最も長い時間でも適合できるように、ＰＬＣ制御周期を調整しつつ、ＩＮデータラッチ同期タイミングおよびＯＵＴデータ出力同期タイミングがそれぞれ設定される。
【００８７】
しかしながら、ＰＬＣ制御周期を長くすることによって、入出力応答時間が長くなるので、結果として、制御システム全体としての応答性能は低下することになる。そのため、機能ユニット２０の間での入出力同期モード（入力リフレッシュのタイミングと出力リフレッシュのタイミングとの間の同期）、および、フィールドネットワーク２上を伝送される上位データフレームの通信周期の短縮という、互いに相反する課題を同時に解決できる手段を要望される。
【００８８】
＜Ｇ．制御システムＳＹＳにおける選択的なモード＞
上述のような課題を解決するために、本実施の形態に係る制御システムＳＹＳでは、すべての機能ユニット２０の間で入出力同期モードを実現する設定に加えて、一部の機能ユニット２０の間でのみ入出力同期モードを実現する設定が可能になっている。すなわち、制御システムＳＹＳを構成する複数の機能ユニット２０のうち、特定の機能ユニット２０の間で入出力同期モードを実現するとともに、残りの機能ユニット２０については、当該入出力同期モードとは異なるタイミングで出力リフレッシュおよび入力リフレッシュを実行する。
【００８９】
（ｇ１：入力優先モード）
図９は、本実施の形態に係る制御システムＳＹＳにおいて部分的に入出力同期モードが設定されている場合のタイムチャートである。図９には、リモートＩＯターミナル＃１の機能ユニット＃１−３およびリモートＩＯターミナル＃２の機能ユニット＃２−３の入力リフレッシュに要する時間が、他の機能ユニットに比較して長い場合を示す。
【００９０】
図９に示す例では、機能ユニット＃１−１，＃１−２，＃２−２の間では、入出力同期モードが設定されている。これらの機能ユニット＃１−１，＃１−２，＃２−２は、ＩＮデータラッチ同期タイミングにおいて、一斉に入力リフレッシュを開始するとともに、ＯＵＴデータ出力同期タイミングにおいて、一斉に出力リフレッシュを完了する。
【００９１】
一方、残りの機能ユニット＃１−３，＃２−１，＃２−３については、入力優先モードで、出力リフレッシュおよび入力リフレッシュのタイミングが設定されている。入力優先モードは、入力リフレッシュを優先してリモートＩＯターミナルの制御周期を短縮する方式である。入力優先モードは、ユーザプログラムにおいて使用されるタイミングになるべく近いタイミングで、制御対象からの状態値を取得することが好ましいという思想に基づくものである。図９に示すように、入力優先モードが設定されている機能ユニット＃１−３，＃２−１，＃２−３については、次の上位データフレームが到着する直前に入力リフレッシュが完了するように設定されている。入力リフレッシュが完了すると、すぐに出力リフレッシュが開始されるようになっている。
【００９２】
次の上位データフレームが到着するタイミングは、リモートＩＯターミナル３ごとに異なるので、同一のリモートＩＯターミナル３に装着される機能ユニット２０の間では、制御対象から状態値を取得する（入力リフレッシュ）タイミングが一致することになる。このタイミングを「ＩＮデータラッチ同期タイミング（入力優先）」と記す。すなわち、入力優先モードに設定された機能ユニット２０については、主として、上位データフレームの通信周期に基づいて、出力リフレッシュおよび入力リフレッシュのタイミングが設定される。
【００９３】
但し、ＰＬＣ制御周期に比較して、入力リフレッシュに要する時間が相対的に長い場合には、あるＰＬＣ制御周期で収集した状態値に基づいて算出された出力値は、次のＰＬＣ制御周期で機能ユニット２０に反映されることになる（機能ユニット＃１−３参照）。
【００９４】
（ｇ２：出力優先モード）
図１０は、本実施の形態に係る制御システムＳＹＳにおいて部分的に入出力同期モードが設定されている場合の別のタイムチャートである。図１０には、リモートＩＯターミナル＃１の機能ユニット＃１−３およびリモートＩＯターミナル＃２の機能ユニット＃２−３の入力リフレッシュに要する時間が、他の機能ユニットに比較して長い場合を示す。
【００９５】
図１０に示す例では、機能ユニット＃１−１，＃１−２，＃２−２の間では、入出力同期モードが設定されている。これらの機能ユニット＃１−１，＃１−２，＃２−２は、ＩＮデータラッチ同期タイミングにおいて、一斉に入力リフレッシュを開始するとともに、ＯＵＴデータ出力同期タイミングにおいて、一斉に出力リフレッシュを完了する。
【００９６】
一方、残りの機能ユニット＃１−３，＃２−１，＃２−３については、出力優先モードで、出力リフレッシュおよび入力リフレッシュのタイミングが設定されている。出力優先モードは、基準となる時刻情報（以下、「システム時間同期タイミング」または「Ｓｙｎｃ０」と記す。）を起点として、出力リフレッシュを開始する方式である。図１０に示すように、出力優先モードが設定されている機能ユニット＃１−３，＃２−１，＃２−３については、システム時間同期タイミング（Ｓｙｎｃ０）を起点として、出力リフレッシュを開始し、出力リフレッシュが完了すると、すぐに入力リフレッシュが開始されるようになっている。
【００９７】
システム時間同期タイミング（Ｓｙｎｃ０）は、ＰＬＣ１およびリモートＩＯターミナル３の間で共通化されているので、出力優先モードが設定されている機能ユニット２０の間では、出力リフレッシュの開始タイミングが互いに一致することになる。すなわち、出力優先モードに設定された機能ユニット２０については、主として、データフレームの通信周期に基づいて、その通信周期内に設定されるシステム時間同期タイミング（Ｓｙｎｃ０）から出力リフレッシュおよび入力リフレッシュのタイミングが設定される。
【００９８】
但し、ＰＬＣ制御周期に比較して、入力リフレッシュに要する時間の差が大きい場合には、同一の上位データフレームに含められる状態値（入力値）は、機能ユニット２０の間で制御周期分だけずれる場合がある（機能ユニット＃２−１および機能ユニット＃２−３参照）。
【００９９】
（ｇ３：複数の入出力優先モード）
図１１は、本実施の形態に係る制御システムＳＹＳにおいて異なる入出力同期モードが設定されている場合のタイムチャートである。図１１に示す例では、機能ユニット＃１−１，＃１−２，＃２−２については第１の入出力同期モードが設定されるとともに、残りの機能ユニット＃１−３，＃２−１，＃２−３については第２の入出力同期モードが設定されている。機能ユニット＃１−１，＃１−２，＃２−２は、ＩＮデータラッチ同期タイミング１において、一斉に入力リフレッシュを開始するとともに、ＯＵＴデータ出力同期タイミング１において、一斉に出力リフレッシュを完了する。同様に、機能ユニット＃１−３，＃２−１，＃２−３は、ＩＮデータラッチ同期タイミング２において、一斉に入力リフレッシュを開始するとともに、ＯＵＴデータ出力同期タイミング２において、一斉に出力リフレッシュを完了する。
【０１００】
第１の入出力同期モードについては、ＰＬＣ制御周期（すなわち、上位データフレームの通信周期）ごとに、ＩＮデータラッチ同期タイミング１およびＯＵＴデータ出力同期タイミング１が生じる。これに対して、第２の入出力同期モードについては、１回のＰＬＣ制御周期内に、ＩＮデータラッチ同期タイミング１およびＯＵＴデータ出力同期タイミング１が生じるとは限らない。但し、第２の入出力同期モードが設定されている機能ユニット２０の間では、入力リフレッシュおよび出力リフレッシュがいずれも同期している。
【０１０１】
（ｇ４：小括）
上述のように、本実施の形態に係る制御システムＳＹＳでは、リモートＩＯターミナル３（スレーブ装置）に含まれるすべての機能ユニット２０の間で、制御対象からの状態値を取得するタイミング（ＩＮデータラッチ同期タイミング）、および、制御対象に対する出力値を更新するタイミング（ＯＵＴデータ出力同期タイミング）、の両方を同期させるモード（すなわち、すべての機能ユニット２０に対して、入出力同期モードが設定される場合）の設定が可能になっている。
【０１０２】
それに加えて、リモートＩＯターミナル３（スレーブ装置）に含まれる特定の機能ユニット２０の間で、制御対象からの状態値を取得するタイミング（ＩＮデータラッチ同期タイミング）、および、制御対象に対する出力値を更新するタイミング（ＯＵＴデータ出力同期タイミング）、の両方を同期させるモード（すなわち、一部の機能ユニット２０に対して、入出力同期モードが設定される場合）の設定が可能である。この場合、リモートＩＯターミナル３（スレーブ装置）に含まれる機能ユニット２０のうち、特定の機能ユニット以外の機能ユニット２０（つまり、入出力同期モードが設定されない機能ユニット２０）の間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミングのいずれか一方を、同期させるモード（入力優先モードまたは出力優先モード）が設定される。
【０１０３】
さらに、本実施の形態に係る制御システムＳＹＳでは、ＰＬＣ１（マスタ装置もしくはスレーブ装置）に含まれるすべての機能ユニット２０の間で、制御対象からの状態値を取得するタイミング（ＩＮデータラッチ同期タイミング）、および、制御対象に対する出力値を更新するタイミング（ＯＵＴデータ出力同期タイミング）、の両方を同期させるモード（すなわち、すべての機能ユニット２０に対して、入出力同期モードが設定される場合）の設定を可能にしてもよい。
【０１０４】
それに加えて、ＰＬＣ１（マスタ装置もしくはスレーブ装置）に含まれる特定の機能ユニット２０の間で、制御対象からの状態値を取得するタイミング（ＩＮデータラッチ同期タイミング）、および、制御対象に対する出力値を更新するタイミング（ＯＵＴデータ出力同期タイミング）、の両方を同期させるモード（すなわち、一部の機能ユニット２０に対して、入出力同期モードが設定される場合）の設定を可能にしてもよい。この場合、ＰＬＣ１（マスタ装置もしくはスレーブ装置）に含まれる機能ユニット２０のうち、特定の機能ユニット以外の機能ユニット２０（つまり、入出力同期モードが設定されない機能ユニット２０）の間で、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミングのいずれか一方を、同期させるモード（入力優先モードまたは出力優先モード）が設定される。
【０１０５】
あるいは、図１１に示すように、互いに異なる２種類の入出力同期モードが設定される場合もある。つまり、ＰＬＣ１（マスタ装置もしくはスレーブ装置）またはリモートＩＯターミナル３（スレーブ装置）に含まれる特定の機能ユニット２０の間で、制御対象からの状態値を取得するタイミング（ＩＮデータラッチ同期タイミング１）、および、制御対象に対する出力値を更新するタイミング（ＯＵＴデータ出力同期タイミング１）、の両方を同期させるとともに、当該特定の機能ユニット２０以外のリモートＩＯターミナル３（スレーブ装置）に含まれる機能ユニット２０の間で、当該特定の機能ユニットとは独立して、制御対象からの状態値を取得するタイミング（ＩＮデータラッチ同期タイミング２）、および、制御対象に対する出力値を更新するタイミング（ＯＵＴデータ出力同期タイミング２）、の両方を同期させる。
【０１０６】
＜Ｈ．サポート装置によるタイミング設定＞
上述した図７〜図１１に示すようなタイムチャートに示すような、機能ユニット２０についての、状態値の取得（入力リフレッシュ）のタイミングおよび出力値の更新（出力リフレッシュ）のタイミングは、本実施の形態に係るサポート装置４０によって算出および設定される。以下、サポート装置４０に実装される各種パラメータの算出および設定の処理について説明する。
【０１０７】
本実施の形態に係る制御システムＳＹＳにおいては、入出力同期モードが設定される機能ユニット２０については、ＯＵＴデータ出力同期タイミングおよびＩＮデータラッチ同期タイミングがそれぞれ決定される。一般的な設計手法としては、制御対象や処理内容および上位データフレームに応じて、ＰＬＣ制御周期が予め設計される。すなわち、ＰＬＣ制御周期および上位データフレームの通信周期といった所与の条件下において、それぞれのタイミングが決定される。
【０１０８】
また、入力優先モードまたは出力優先モードが設定されている機能ユニット２０については、ＯＵＴデータ出力同期タイミングまたはＩＮデータラッチ同期タイミングがそれぞれ決定される。
【０１０９】
このように、サポート装置４０は、予め用意された複数のモードのうち選択されたモードに従って、ＰＬＣ１（マスタ装置もしくはスレーブ装置）、または、リモートＩＯターミナル３（スレーブ装置）に含まれる機能ユニット２０の各々に対するパラメータを算出する機能と、算出されたパラメータを制御システムＳＹＳに対して設定する機能とを有している。
【０１１０】
以下、入力リフレッシュおよび出力リフレッシュに要する時間について説明するとともに、サポート装置４０での設定操作などについて説明する。
【０１１１】
（ｈ１．入力リフレッシュ）
図１２は、本実施の形態に係る制御システムＳＹＳにおける入力リフレッシュに要する時間を説明するための図である。図１２（Ａ）は、リモートＩＯターミナル３の通信カプラ３０における入力リフレッシュに要する時間を模式的に示し、図１２（Ｂ）は、通信カプラ３０に装着される機能ユニット２０における入力リフレッシュに要する時間を模式的に示す。
【０１１２】
図１２（Ａ）に示すように、通信カプラ３０における入力リフレッシュに要する時間として、ＩＮデータラッチ同期タイミングから開始されるＩＮデータラッチ処理時間を考える。ＩＮデータラッチ処理時間は、内部バス３１に接続されている機能ユニット２０の入力応答遅延時間の最大値とＩＮデータ転送時間との合計値に相当する。
【０１１３】
機能ユニット２０の入力応答遅延時間は、ＩＯモジュール２０６（図４参照）における信号変換処理や換算処理に要する時間、ＩＯモジュール２０６から送信処理部２４０（図４参照）へのデータコピーに要する時間などを含む。ＰＬＣ１またはリモートＩＯターミナル３には、複数の機能ユニット２０が装着されている場合もあり、このような場合には、機能ユニット２０の入力応答遅延時間のうち、その値が最も長いものが制約になるため、その最大値が考慮される。
【０１１４】
ＩＮデータ転送時間は、通信カプラ３０の内部バス制御部１３０（図３）の内部バス３１を介した内部バスフレームの受信に要する時間や、受信した内部バスフレームに含まれるＩＮデータのフィールドネットワーク制御部１１０（図３）へのデータコピーに要する時間などを含む。
【０１１５】
図１２（Ｂ）に示すように、機能ユニット２０における入力処理に要する時間として、ＩＮデータラッチ同期タイミングから開始される入力応答遅延時間を考える。この入力応答遅延時間は、図１２（Ａ）を参照して説明したものと同様である。
【０１１６】
但し、厳密に言えば、機能ユニット２０の各々が入力処理を開始できる状態になるまでには、ハード遅延時間が存在する。このハード遅延時間としては、機能ユニット２０を構成するプロセッサなどの演算周期のずれなどがある。また、入力された信号をデジタル信号に変換する処理で発生する入力変換遅延時間なども存在する。これらのパラメータは、基本的には機能ユニット２０に固有であるので、後述するように、デバイスプロファイル４４３などに予め格納されている値を用いる。
【０１１７】
（ｈ２．出力リフレッシュ）
図１３は、本実施の形態に係る制御システムＳＹＳにおける出力リフレッシュに要する時間を説明するための図である。図１３（Ａ）は、リモートＩＯターミナル３の通信カプラ３０における出力リフレッシュに要する時間を模式的に示し、図１３（Ｂ）は、通信カプラ３０に装着される機能ユニット２０における出力リフレッシュに要する時間を模式的に示す。
【０１１８】
図１３（Ａ）に示すように、通信カプラ３０における出力リフレッシュに要する時間として、ＯＵＴデータ転送時間を考える。このＯＵＴデータ転送時間は、通信カプラ３０のフィールドネットワーク制御部１１０（図３）のフィールドネットワーク２を介した上位データフレームの受信に要する時間や、受信した上位データフレームに含まれるＯＵＴデータの内部バス制御部１３０（図３）へのデータコピーに要する時間などを含む。
【０１１９】
機能ユニット２０の出力応答遅延時間は、ＯＵＴデータ転送時間およびハード遅延時間を含む。ＯＵＴデータ転送時間は、受信処理部２３０（図４）からＩＯモジュール２０６へのデータコピーに要する時間、ＩＯモジュール２０６（図４）における信号変換処理や換算処理に要する時間などを含む。ハード遅延時間は、機能ユニット２０を構成するプロセッサなどの演算周期のずれや、入力された信号をデジタル信号に変換する処理で発生する入力変換遅延時間などを含む。これらのパラメータは、基本的には機能ユニット２０に固有であるので、後述するように、デバイスプロファイル４４３などに予め格納されている値を用いる。
【０１２０】
ＰＬＣ１またはリモートＩＯターミナル３の各々には、複数の機能ユニット２０が装着されている場合もあり、このような場合には、機能ユニット２０の出力応答遅延時間のうち、その値が最も長いものが制約になるため、その最大値が考慮される。
【０１２１】
図１３（Ｂ）に示すように、機能ユニット２０における出力リフレッシュに要する時間として、ＯＵＴデータラッチ同期タイミングの前に存在する出力応答遅延時間を考える。この出力応答遅延時間は、図１３（Ａ）を参照して説明したものと同様である。
【０１２２】
（ｈ３．データ構造）
上述した図１２および図１３に示す各パラメータの一部は、機能ユニット２０に固有のものであり、これらのパラメータの値については、予め用意されているデバイスプロファイル４４３から読み出される。以下、サポート装置４０に格納されるデバイスプロファイル４４３のデータ構造について説明する。
【０１２３】
図１４は、本実施の形態に係る制御システムＳＹＳを構成するサポート装置４０に格納されるデバイスプロファイル４４３のデータ構造の一例を示す図である。図１４を参照して、デバイスプロファイル４４３は、機能ユニットの別に用意されており、対応する機能ユニットを特定するための情報（例えば、形式名、製品名称、ユニットバージョン、ベンダ、コメント、ＵＲＬ）を含む。そして、デバイスプロファイル４４３の各々は、対応する機能ユニットに固有のパラメータ（例えば、入力応答遅延時間、入力変換遅延時間、出力応答遅延時間）などを含む。すなわち、入出力同期モードなどに関するパラメータを自動算出するために必要な見込み時間は、デバイスプロファイル４４３を参照して取得される。
【０１２４】
ユーザは、制御システムＳＹＳを設計する際には、サポート装置４０を操作して、ＰＬＣ１を構成するユニットの情報、つまり、ＣＰＵユニット１０、機能ユニット２０、電源ユニット１２の種類、数および位置などを設定する。同様に、ユーザは、サポート装置４０を操作して、フィールドネットワーク２に接続されるスレーブ装置の構成を設定するとともに、各スレーブ装置の構成についても設定する。例えば、リモートＩＯターミナル３については、通信カプラ３０や機能ユニット２０の種類、数および位置などを設定する。
【０１２５】
このような制御システムＳＹＳの設計に係る情報は、構成情報４４２としてサポート装置４０に格納される。これらの構成情報４４２は、必要に応じて、サポート装置４０からＣＰＵユニット１０や通信カプラ３０へ転送される。すなわち、構成情報４４２によって、通信カプラ３０やＣＰＵユニット１０の不揮発性メモリ１０１に格納される構成情報１０４（図３）が生成される。
【０１２６】
また、上述した図１２および図１３に示す各パラメータの一部は、ＰＬＣ１および通信カプラ３０に装着されている機能ユニット２０の数や位置などに依存するので、パラメータを自動的に算出する際には、デバイスプロファイル４４３に格納されているパラメータに加えて、構成情報４４２が参照される。つまり、パラメータを自動算出するための見込み時間は、構成情報１０４によって定義される制御システムＳＹＳの設計値に基づいて決定される。このとき、これらの見込み時間は、構成情報４４２によって定義される制御システムＳＹＳにおける最大値が採用される。
【０１２７】
（ｈ４．ユーザインターフェイス：その１）
上述したような、入出力同期モードの対象となる機能ユニット２０を選択するために、以下のようなユーザインターフェイスが提供される。すなわち、サポート装置４０は、ＰＬＣ１（マスタ装置またはスレーブ装置）またはリモートＩＯターミナル３（スレーブ装置）に含まれる機能ユニット２０のうち特定の機能ユニット２０に該当するものの選択を受け付ける機能を有している。
【０１２８】
まず、サポート装置４０を用いて複数の機能ユニット２０に対して、入出力同期モードを選択的に設定する場合のユーザインターフェイスについて説明する。サポート装置４０は、制御システムＳＹＳに含まれるＰＬＣ１（マスタ装置またはスレーブ装置）およびリモートＩＯターミナル３（スレーブ装置）を設計するためのユーザインターフェイスを提供する。
【０１２９】
図１５は、本実施の形態に係る制御システムＳＹＳにおける入出力同期モードの選択的な設定方法の一例を示す模式図である。図１６は、図１５に示す設定方法に対応するユーザインターフェイス画面の一例を示す図である。
【０１３０】
図１５（Ａ）に示すように、一例として、制御システムＳＹＳに含まれる機能ユニット２０の各々について、入出力同期モードおよび入力優先モード／出力優先モードの設定可否がそれぞれ予め定められているとする。それぞれの設定可否の属性は、各機能ユニット２０の特性に応じて定められる。例えば、入力処理に係る時間が比較的長いもの（例えば、エンコーダ入力ユニットやアナログ入力ユニットなど）、ならびに、出力処理に係る時間が比較的長いもの（例えば、パルス出力ユニットやサーボ制御ユニットなど）については、入出力同期モードに加えて、入力優先モード／出力優先モードも設定可能に構成される。これに対して、デジタル入力ユニットやデジタル出力ユニットといった、入出力処理が比較的高速なものは、入出力同期モードのみが設定可能に構成される。
【０１３１】
サポート装置４０は、図１６に示すようなユーザインターフェイス画面６１０を提供する。ユーザは、制御システムＳＹＳを構成するマスタ装置およびスレーブ装置の一覧のうち、対象となる装置を選択する（符号６１１）。選択された装置の属性情報が一覧表示される（符号６１２）。一覧表示される属性情報のうち、「Ｉ／Ｏタイミング」のアイテム（符号６１３）を選択すると、「入出力同期」および「タスク周期優先」のいずれかを選択できるようになっている。
【０１３２】
ここで、「入出力同期」が選択されると、対象の装置（マスタ装置またはいずれかのスレーブ装置）に装着されているすべての機能ユニット２０が「入出力同期モード」に設定される（図１５（Ｂ）参照）。
【０１３３】
一方、「タスク周期優先」が選択されると、対象の装置（マスタ装置またはいずれかのスレーブ装置）に装着されている機能ユニット２０のうち「入力優先モード／出力優先モード」が設定可能な機能ユニット２０については、「入力優先モード」または「出力優先モード」が設定される。その他の機能ユニット２０については、「入出力同期モード」が設定される（図１５（Ｃ）参照）。
【０１３４】
図１５（Ｂ）または図１５（Ｃ）に示すような設定モードに応じて、サポート装置４０は、対象となる機能ユニット２０に対する、システム時間同期タイミング、ＯＵＴデータ出力同期タイミング（または、出力リフレッシュのタイミング）、および、ＩＮデータラッチ同期タイミング（または、入力リフレッシュのタイミング）をそれぞれ算出する。
【０１３５】
（ｈ５．ユーザインターフェイス：その２）
図１７は、本実施の形態に係るサポート装置４０によって提供されるユーザインターフェイス画面の一例を示す図である。図１７に示すユーザインターフェイス画面６２０は、ＰＬＣ１およびリモートＩＯターミナル３のユニット構成を設計するためのものである。図１７に示すユーザインターフェイス画面６２０が表示された状態で、ユーザがマウスやキーボードなどを操作することで、ＰＬＣ１またはリモートＩＯターミナル３に装着する機能ユニット２０を選択するとともに、所望の順序でレイアウトしていく（符号６２２）。図１７に示すユーザインターフェイス画面６２０において、各機能ユニット２０のパラメータを設定することもできる（符号６２６）。図１７に示すユーザインターフェイス画面６２０上でユーザが設定する構成情報（コンフィギュレーション）は、構成情報４４２として、保持手段であるハードディスク４４に格納される。
【０１３６】
図１７に示すユーザインターフェイス画面６２０では、ＰＬＣ１またはリモートＩＯターミナル３に装着されている（あるいは、装着されることになっている）機能ユニット２０のうち、入出力同期モードの対象となる機能ユニット２０を任意に選択できるようになっている。一例として、ユーザインターフェイス画面６２０では、装着される１または複数の機能ユニット２０のレイアウトに対応付けて、チェックボックスが表示される（符号６２４）。ユーザは、チェックボックスにチェックを入れることで、対応する機能ユニット２０が入出力同期モードの対象となる。なお、チェックが入れられていない機能ユニット２０については、入出力同期モード以外のモードが設定される。
【０１３７】
なお、いずれかのモードが設定された後には、レイアウト表示されたそれぞれの機能ユニット２０の色を設定されているモードに応じて変化させてもよい。このように表示態様を変化させることで、ユーザは、各機能ユニット２０に対して、いずれのモードが設定されているのかを一見して把握できる。
【０１３８】
（ｈ６．ユーザインターフェイス：その３）
図１８は、本実施の形態に係るサポート装置４０によって提供されるユーザインターフェイス画面の別の一例を示す図である。図１８に示すユーザインターフェイス画面６３０では、ＰＬＣ１またはリモートＩＯターミナル３に装着されている（あるいは、装着されることになっている）機能ユニット２０の各々に対して、いずれのモードを設定すべきかを任意に選択できるようになっている。一例として、ユーザインターフェイス画面６３０では、装着される１または複数の機能ユニット２０のレイアウトに対応付けて、ラジオボタン群が表示される（符号６３２）。ラジオボタンの各セットは、入出力同期モード１または２、入力優先モード、出力優先モードの４つのモードを含む。ユーザは、目的とするモードを示すラジオボタンを選択することで、対応する機能ユニット２０が選択されたモードに設定される。なお、入出力同期モード１と入出力同期モード２とは、上述の図１１を参照して説明したような、複数の入出力同期モードを設定する場合に用いられる。
【０１３９】
なお、いずれかのモードが設定された後には、レイアウト表示されたそれぞれの機能ユニット２０の色を設定されているモードに応じて変化させてもよい。このように表示態様を変化させることで、ユーザは、各機能ユニット２０に対して、いずれのモードが設定されているのかを一見して把握できる。
【０１４０】
（ｈ７：制御システムにおける各タイミングの算出）
サポート装置４０は、上述したようなユーザインターフェイス画面などを提供することで、制御対象からの状態値を取得するタイミング、および、制御対象に対する出力値を更新するタイミング、の両方を同期させる対象となる（すなわち、入出力同期モードが設定される対象となる）機能ユニット２０を特定する。そして、以下のような処理を行うことで、入出力同期モードの対象となる機能ユニット２０に関して、それぞれのタイミングを算出する。
【０１４１】
より具体的には、サポート装置４０は、フィールドネットワーク２上を所定の通信周期で伝送される上位データフレームに関して、ＰＬＣ１（マスタ装置）が上位データフレームを送出してから、リモートＩＯターミナル３（スレーブ装置）での受信が完了するまでに要する第１の見込み時間（図７〜図１１の（４）の部分の時間長さ）を取得する。
【０１４２】
また、サポート装置４０は、リモートＩＯターミナル３（スレーブ装置）において、上位データフレームの受信が完了してから、当該受信した上位データフレームに含まれるデータの対象の機能ユニット２０すべてへの転送が完了するまでに要する第２の見込み時間（図７〜図１１の（５）の部分の時間長さ）を取得する。
【０１４３】
また、サポート装置４０は、リモートＩＯターミナル３（スレーブ装置）において、対象の機能ユニット２０のすべてが制御対象から取得した状態値をフィールドネットワーク２を介して送出できる状態になるまでに要する第３の見込み時間（図７〜図１１の（７）および（８）の部分の合計の時間長さの最大値）を取得する。
【０１４４】
そして、サポート装置４０は、対象の機能ユニット２０の各々について、上述したような見込み時間に基づいて、制御対象からの状態値の取得を開始する通信周期内のタイミング（ＩＮデータラッチ同期タイミング）、および、受信したデータフレームに含まれるデータを制御対象に対して出力する通信周期内のタイミング（ＯＵＴデータ出力同期タイミング）をそれぞれ算出する。
【０１４５】
同様に、サポート装置４０は、入力優先モードまたは出力優先モードが設定されている機能ユニット２０については、上述したような見込み時間を適宜用いて、それぞれタイミングを算出する。
【０１４６】
＜Ｉ．処理手順＞
次に、サポート装置４０を用いて、本実施の形態に係る制御システムＳＹＳに対するパラメータを設定する処理手順について説明する。図１９は、本実施の形態に係る制御システムＳＹＳに対するパラメータを設定する処理手順を示すフローチャートである。図１９に示す処理手順は、典型的には、サポート装置４０のＣＰＵ４１がツールプログラム４４１（図５）を実行することで実現される。必要なパラメータの算出処理をサポート装置４０に実装する構成に代えて、ＰＬＣ１のＣＰＵユニット１０やサポート装置４０とは別の情報処理装置などに実装してもよい。
【０１４７】
図１９を参照して、ツールプログラム４４１の実行がユーザにより指示されると、サポート装置４０は、制御システムＳＹＳを設計するためのユーザインターフェイス画面をディスプレイ４７上に表示する（ステップＳ１００）。そして、サポート装置４０は、ユーザから制御システムＳＹＳに関する設計値を受け付ける（ステップＳ１０２）。この設計値は、制御システムＳＹＳの全体に係るパラメータおよび各ユニットに係るパラメータなどを含む。
【０１４８】
併せて、サポート装置４０は、ユーザから、制御システムＳＹＳを構成する機能ユニット２０に対する同期モードの設定を受け付ける（ステップＳ１０４）。より具体的には、上述の図１６〜図１８を参照して説明したように、サポート装置４０は、入出力同期モードを設定する対象となる１または複数の機能ユニット２０の指定や、入出力同期モード以外のモード（入力優先モード／出力優先モード）の指定などを受け付ける。
【０１４９】
ユーザから制御システムＳＹＳに関する設計値の設定終了が指示されるまで（ステップＳ１０６においてＮＯ）、ステップＳ１０２およびＳ１０４の処理が繰り返される。
【０１５０】
ユーザから制御システムＳＹＳに関する設計値の設定終了が指示されると（ステップＳ１０６においてＹＥＳ）、サポート装置４０は、ユーザによって入力された設計値で構成情報４４２を生成／更新する（ステップＳ１０８）。
【０１５１】
続いて、パラメータの自動算出が指示されると（ステップＳ１１０においてＹＥＳ）、サポート装置４０は、構成情報４４２およびデバイスプロファイル４４３を参照して、パラメータの算出処理を開始する。具体的には、サポート装置４０は、構成情報４４２から、（１）ＣＰＵユニット１０のＰＬＣ制御周期、（２）スレーブ装置の有効／無効設定、（３）上位データフレームの通信周期などの情報を読み出す（ステップＳ１１２）。続いて、サポート装置４０は、構成情報４４２を参照して、制御システムＳＹＳに含まれる各機能ユニット２０を特定するとともに、各機能ユニット２０について、デバイスプロファイル４４３から、（ａ）入力応答遅延時間、（ｂ）入力変換遅延時間、（ｃ）出力応答遅延時間などの情報（いずれも図１４参照）を読み出す（ステップＳ１１４）。
【０１５２】
続いて、サポート装置４０は、制御システムＳＹＳに含まれる通信カプラ３０の各々について、デバイスプロファイル４４３から装着される各機能ユニット２０の入力応答遅延時間を読み出すとともに、各通信カプラ３０に装着される機能ユニット２０の入力応答遅延時間の最大値からスレーブ装置での入力応答遅延時間を決定する（ステップＳ１１６）。
【０１５３】
続いて、サポート装置４０は、構成情報４４２のうち、制御システムＳＹＳのフィールドネットワーク２に関するパラメータ、および、スレーブ装置に関するパラメータ、ならびに、通信カプラ３０の構成に係るパラメータ、および、各通信カプラ３０に含まれる機能ユニット２０に係るパラメータを読み出す（ステップＳ１１８）。
【０１５４】
最終的に、サポート装置４０は、システム時間同期タイミング、ＯＵＴデータ出力同期タイミング、ＩＮデータラッチ同期タイミングをそれぞれ算出する（ステップＳ１２０）。また、入力優先モードまたは出力優先モードが設定されている機能ユニット２０については、ＯＵＴデータ出力同期タイミング、または、ＩＮデータラッチ同期タイミングが算出される。この算出されたそれぞれの値は、同期パラメータとして、構成情報４４２などに格納される。
【０１５５】
すなわち、サポート装置４０は、ステップＳ１１２〜Ｓ１２０において、予め用意された複数のモードのうち選択されたモードに従って、ＰＬＣ１（マスタ装置もしくはスレーブ装置）またはリモートＩＯターミナル３（スレーブ装置）に含まれる機能ユニット２０の各々に対するパラメータを算出する。
【０１５６】
最終的に、サポート装置４０は、算出された各種パラメータを制御システムＳＹＳ内のＰＬＣ１へ転送し（ステップＳ１２２）、ＰＬＣ１から、１または複数のリモートＩＯターミナル３へ必要なパラメータが転送される。このような一連の手順によって、制御システムＳＹＳでは、特定の機能ユニット２０が入出力同期モードで動作し、他の機能ユニット２０については、指定されたモード（入力優先モード／出力優先モード）、またはデフォルト設定のモードで動作する。このように、サポート装置４０は、算出されたパラメータを制御システムＳＹＳに対して設定する。
【０１５７】
＜Ｊ．利点＞
本実施の形態によれば、制御対象などに応じて、入力リフレッシュおよび出力リフレッシュの両方を同期させたい機能ユニット２０を選択的に指定できる。それ以外の機能ユニット２０については、状況に応じて、入力優先モードまたは出力優先モードを設定できる。これによって、機能ユニット２０間での入力タイミングおよび出力タイミングの同期と、フィールドネットワーク２上を伝送される上位データフレームの通信周期の短縮という、互いに相反する課題を同時に解決できる。
【０１５８】
また、本実施の形態によれば、いずれのモードが設定された場合であっても、必要なパラメータが適宜算出されるので、専門知識のないユーザであっても、より少ない工数で制御システムＳＹＳを動作させることができる。
【０１５９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６０】
１  ＰＬＣ、２  フィールドネットワーク、３  リモートＩＯターミナル、６  検出スイッチ、７  リレー、１０  ＣＰＵユニット、１１，３１  内部バス、１２  電源ユニット、２０  機能ユニット、３０  通信カプラ、４０  サポート装置、４１  ＣＰＵ、４３  ＲＡＭ、４４  ハードディスク、４５  キーボード、４６  マウス、４７  ディスプレイ、４８  ＣＤ−ＲＯＭ駆動装置、５２  ＣＤ−ＲＯＭ、５４  接続ケーブル、１００，２００  プロセッサ、１０１  不揮発性メモリ、１０２，２０９  システムプログラム、１０４，４４２  構成情報、１１０  フィールドネットワーク制御部、１１２，２１０ａ，２２０ａ  受信部、１１４，２１０ｂ，２２０ｂ  送信部、１２０  フィールドネットワーク通信コントローラ、１２２  メモリコントローラ、１２４，２０７  メモリ、１２６，１６４，２０３  受信バッファ、１２８，１６６，２０４  送信バッファ、１３０  内部バス制御部、１３２  内部バス通信コントローラ、１４２  送信回路、１４４  受信回路、１６０  記憶部、１６２，２０２  共有メモリ、２０６  ＩＯモジュール、２０８  設定情報、２１２，２２２  ＤＥＳ、２１４，２２４  フォワードコントローラ、２１６，２２６  ＳＥＲ、２３０  受信処理部、２３２  復号部、２３４  ＣＲＣチェック部、２４０  送信処理部、２４２  ＣＲＣ生成部、２４４  符号化部、２５０  バス、３１１  ダウンリンク、３１２  アップリンク、４４１  ツールプログラム、４４３  デバイスプロファイル、ＳＹＳ  制御システム。
【図１】
0006477161.tif 000002
【図２】
0006477161.tif 000003
【図３】
0006477161.tif 000004
【図４】
0006477161.tif 000005
【図５】
0006477161.tif 000006
【図６】
0006477161.tif 000007
【図７】
0006477161.tif 000008
【図８】
0006477161.tif 000009
【図９】
0006477161.tif 000010
【図１０】
0006477161.tif 000011
【図１１】
0006477161.tif 000012
【図１２】
0006477161.tif 000013
【図１３】
0006477161.tif 000014
【図１４】
0006477161.tif 000015
【図１５】
0006477161.tif 000016
【図１６】
0006477161.tif 000017
【図１７】
0006477161.tif 000018
【図１８】
0006477161.tif 000019
【図１９】
0006477161.tif 000020