(57)【要約】【課題】シリアルデータ転送方式及びパラレルデータ転送方式からデータ転送方式を選択して、転送バスのデータ転送の時間を短縮できる制御装置を提供する。【解決手段】制御装置は、生成部と、選択部と、を備える。生成部は、転送先の制御対象を制御する制御コマンドに応じたテストデータを生成する。選択部は、転送バスを介して前記テストデータをパラレルデータ転送方式及びシリアルデータ転送方式で前記制御対象に転送して、前記テストデータの転送及び処理に要する転送時間の短い方式を前記転送バスのデータ転送方式として選択する。【選択図】図１
2019114023.tif 000002
【特許請求の範囲】
【請求項１】
転送先の制御対象を制御する制御コマンドに応じたテストデータを生成する生成部と、
転送バスを介して前記テストデータをパラレルデータ転送方式及びシリアルデータ転送方式で前記制御対象に転送して、前記テストデータの転送及び処理に要する転送時間の短い方式を前記転送バスのデータ転送方式として選択する選択部と、
を備える制御装置。
【請求項２】
前記生成部は、前記制御対象を制御するための制御プログラムが変更されると、前記テストデータを生成して、
前記選択部は、前記テストデータを取得すると、前記テストデータを転送して、前記データ転送方式を選択する
請求項１に記載の制御装置。
【請求項３】
前記生成部は、前記制御対象が変更されると、前記テストデータを生成して、
前記選択部は、前記テストデータを取得すると、前記テストデータを転送して、前記データ転送方式を選択する
請求項１または２に記載の制御装置。
【請求項４】
前記生成部は、前記データ転送方式の選択指示を受け付けると、前記テストデータを生成して、
前記選択部は、前記テストデータを取得すると、前記テストデータを転送して、前記データ転送方式を選択する
請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
前記生成部は、予め定められた選択処理周期ごとに、前記テストデータを生成して、
前記選択部は、前記テストデータを取得すると、前記テストデータを転送して、前記データ転送方式を選択する
請求項１から４のいずれか１項に記載の制御装置。
【請求項６】
前記生成部は、前記制御対象のデータをリードするリード処理の前記テストデータと、前記制御対象にデータをライトするライト処理の前記テストデータとを生成し、
前記選択部は、前記リード処理の前記テストデータの転送開始から前記リード処理によってリードされた前記制御対象の前記データの取得完了までの時間、及び、前記ライト処理の前記テストデータの転送開始から前記ライト処理の完了を示す前記制御対象からの応答信号の取得完了までの時間に基づいて、前記データ転送方式を選択する
請求項１から５のいずれか１項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、制御装置に関する。
【背景技術】
【０００２】
社会インフラストラクチャー、製造工場及びプラント等に設けられたモータ等の制御対象をコントロールする産業コントローラを有し社会基盤を支える制御システムが知られている。このような産業コントローラに設けられたプロセッサを含む制御装置は、制御対象にデータをライトする制御コマンドまたは制御対象のデータをリードする制御コマンド等を制御対象へ転送している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−９１８９９号公報
【特許文献２】特開平１０−１１６１６６号公報
【特許文献３】特開２００８−２３８３８２号公報
【特許文献４】特開平５−２５８１２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の制御装置では、膨大なデータの転送を高速化するためにシリアルデータ転送方式及びパラレルデータ転送方式でデータ転送可能に構成されているにも関わらず不適切なデータ転送方式に固定されて、データ転送の時間が長くなるといった課題がある。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、実施形態の制御装置は、生成部と、選択部と、を備える。生成部は、転送先の制御対象を制御する制御コマンドに応じたテストデータを生成する。選択部は、転送バスを介して前記テストデータをパラレルデータ転送方式及びシリアルデータ転送方式で前記制御対象に転送して、前記テストデータの転送及び処理に要する転送時間の短い方式を前記転送バスのデータ転送方式として選択する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態の制御システムの構成を説明する全体構成図である。
【図２】図２は、プロセッサの機能を説明する機能ブロック図である。
【図３】図３は、シリアルデータ転送方式のリード時のテストデータの一例を示す図である。
【図４】図４は、シリアルデータ転送方式のライト時のテストデータの一例を示す図である。
【図５】図５は、パラレルデータ転送方式のリード時のテストデータの一例を示す図である。
【図６】図６は、パラレルデータ転送方式のライト時のテストデータの一例を示す図である。
【図７】図７は、プロセッサが実行する選択処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下の例示的な実施形態や変形例には、同様の構成要素が含まれている。よって、以下では、同様の構成要素には共通の符号が付されるとともに、重複する説明が部分的に省略される。実施形態や変形例に含まれる部分は、他の実施形態や変形例の対応する部分と置き換えて構成されることができる。また、実施形態や変形例に含まれる部分の構成や位置等は、特に言及しない限りは、他の実施形態や変形例と同様である。
【０００８】
＜実施形態＞
図１は、実施形態の制御システム１０の構成を説明する全体構成図である。制御システム１０は、例えば、上下水道、ビル等の社会インフラストラクチャー、製鉄工場、製紙工場、及び、石油プラント等の一般産業の各分野における製造設備及び環境関連の監視管理機器等に採用されるシステムである。図１に示すように、制御システム１０は、情報処理装置１２と、１または複数のフィールドバス１４と、１または複数の制御対象１６とを備える。
【０００９】
情報処理装置１２は、例えば、上述の製造設備等を中核として管理または監視するために多岐にわたって採用される産業コントローラである。情報処理装置１２は、例えば、パーソナルコンピュータ等のコンピュータである。情報処理装置１２は、制御装置２０と、データバス２２と、記憶装置２４と、転送バス２６と、通信モジュール２８とを有する。
【００１０】
制御装置２０は、転送バス２６の転送方式及び制御対象１６を制御する。制御装置２０は、プロセッサ３０を有する。
【００１１】
プロセッサ３０は、例えば、ＣＰＵ（Central  Processing  Unit）等のハードウェアプロセッサである。プロセッサ３０は、記憶装置２４に格納された制御プログラム３６及び選択プログラム３８等を読み込んで、種々の演算処理を実行する。例えば、プロセッサ３０は、制御プログラム３６を読み込んで、データ（以下、リードデータ）をリードするリード処理及びデータ（以下、ライトデータ）をライトするライト処理を制御対象１６に実行させて、制御対象１６を制御する。プロセッサ３０は、選択プログラム３８を読み込んで、転送バス２６のデータ転送方式をシリアルデータ転送方式及びパラレルデータ転送方式から選択する。
【００１２】
データバス２２は、プログラム３６、３８を読み出し可能に制御装置２０と、記憶装置２４とを接続する。
【００１３】
記憶装置２４は、例えば、ＳＳＤ（Solid  State  Drive）及びＨＤＤ（Hard  Disk  Drive）等の補助記憶装置である。記憶装置２４は、電源がオフの状態でも、記憶したデータを維持する。記憶装置２４は、プロセッサ３０が実行する制御プログラム３６及び選択プログラム３８等のプログラムを格納する。制御プログラム３６及び選択プログラム３８は、ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭ等の記憶媒体によって提供されてよい。
【００１４】
転送バス２６は、コマンド、データ及び応答信号等の電気信号を転送可能に制御装置２０と、通信モジュール２８とを接続する。転送バス２６は、例えば、高速で電気信号を転送可能なＰＣＩ（Peripheral  Component  Interconnect）−Ｅｘｐｒｅｓｓであってよい。転送バス２６は、複数の信号線を有し、シリアルデータ転送方式及びパラレルデータ転送方式で制御装置２０と、通信モジュール２８との間で電気信号を転送する。
【００１５】
通信モジュール２８は、制御装置２０と、制御対象１６との間の通信を仲介する。通信モジュール２８は、インターフェースコア３２と、コモンメモリ３４とを有する。
【００１６】
インターフェースコア３２は、転送バス２６を介して、制御装置２０と接続されている。インターフェースコア３２は、例えば、プロセッサ３０とともに転送バス２６を制御するための回路である。インターフェースコア３２は、コモンメモリ３４に格納された制御対象１６からのリードデータまたは応答信号を取得して、制御装置２０へと転送する。インターフェースコア３２は、制御装置２０から取得したコマンド及びライトデータをコモンメモリ３４に格納する。
【００１７】
コモンメモリ３４は、制御対象１６が転送したリードデータまたは応答信号を一時的に記憶して、インターフェースコア３２及び転送バス２６を介して制御装置２０へと転送する。コモンメモリ３４は、制御装置２０が転送したコマンド及びライトデータを一時的に記憶して、フィールドバス１４を介して、制御対象１６へと転送する。
【００１８】
フィールドバス１４は、コマンド、データ及び応答信号等の電気信号を転送可能に通信モジュール２８と、各制御対象１６とを接続する。
【００１９】
制御対象１６は、情報処理装置１２によって制御される製造設備等のＬＥＤ（Light  Emitting  Diode）及びモータ等を含む。制御対象１６は、交換可能にフィールドバス１４と接続されている。制御対象１６は、情報処理装置１２によって制御される対象であって、情報処理装置１２から離れた位置（例えば、数百ｍまたは数ｋｍ）に設けられていてもよい。制御対象１６は、コモンメモリ４０を有する入出力モジュール１７を備える。
【００２０】
入出力モジュール１７は、プロセッサ３０が生成したリードコマンドを通信モジュール２８から取得すると、コモンメモリ４０が記憶しているデータのうち、リードコマンドが示すリードデータを通信モジュール２８へ転送する。入出力モジュール１７は、プロセッサ３０が生成したライトコマンド及びライトデータを取得すると、取得したライトデータをライトコマンドが示すコモンメモリ４０のメモリ領域にライトする。入出力モジュール１７は、ライトデータをコモンメモリ４０にライトした旨を示す応答信号を通信モジュール２８へ転送する。制御対象１６は、コモンメモリ４０に記憶されたライトデータに応じて、種々の処理を実行する。例えば、制御対象１６は、ＬＥＤの点灯及び消灯、及び、モータの駆動等を実行する。
【００２１】
図２は、プロセッサ３０の機能を説明する機能ブロック図である。図２に示すように、プロセッサ３０は、制御部４２と、生成部４４と、選択部４６とを有する。プロセッサ３０は、例えば、制御プログラム３６を読み込むことによって、制御部４２として機能する。プロセッサ３０は、例えば、選択プログラム３８を読み込むことによって、生成部４４及び選択部４６として機能する。
【００２２】
制御部４２は、転送先の制御対象１６を制御する制御コマンドを生成する。制御部４２は、転送バス２６、通信モジュール２８及びフィールドバス１４を介して、制御コマンドを制御対象１６へ転送して、制御対象１６を制御する。例えば、制御部４２は、制御対象１６のデータをリードするリード処理のリードコマンドを生成して、通信モジュール２８を介して制御対象１６へ転送する。これにより、制御部４２は、コモンメモリ４０に格納されているリードデータを制御対象１６から取得する。制御部４２は、制御対象１６にライトデータをライトするライト処理のライトコマンド及びライトデータを生成して、通信モジュール２８を介して制御対象１６へ転送する。これにより、制御部４２は、通信モジュール２８のコモンメモリ３４にライトコマンド及びライトデータを書き込んだ後、制御対象１６のコモンメモリ４０にライトデータを書き込んで、制御対象１６に種々の制御を実行させる。制御部４２は、ライトコマンド及びライトデータを転送した後、制御対象１６が転送した応答信号を通信モジュール２８から取得して、ライトコマンドが実行されたことを確認する。
【００２３】
生成部４４は、制御部４２が生成する制御コマンドに応じた１または複数のテストデータを生成する。例えば、生成部４４は、予め定められた転送選択条件を満たすと、データ転送方式を選択すると判定して、シリアルデータ転送方式及びパラレルデータ転送方式から転送バス２６のデータ転送方式を選択するためのテストデータを生成する。転送選択条件の一例は、制御対象１６を制御するための制御プログラム３６の変更である。従って、生成部４４は、制御プログラム３６が変更されると、テストデータを生成してよい。生成部４４は、例えば、制御コマンドに応じたテストデータとして、リード処理のテストデータ及びライト処理のテストデータを生成する。具体的には、生成部４４は、リード処理のリードコマンドを含むテストデータ、及び、ライト処理のライトコマンド及びライトデータを含むテストデータを生成する。生成部４４は、テストデータを選択部４６へ出力する。
【００２４】
選択部４６は、転送バス２６のデータ転送方式を選択する。例えば、選択部４６は、テストデータを生成部４４から取得すると、シリアルデータ転送方式及びパラレルデータ転送方式のそれぞれで、転送バス２６及び通信モジュール２８を介して、制御対象１６へテストデータを転送する。選択部４６は、テストデータを転送した後、制御対象１６が転送したリードデータまたは応答信号を、転送バス２６及び通信モジュール２８を介して、テストデータを転送したデータ転送方式で通信モジュール２８から取得する。選択部４６は、各データ転送方式によって転送されたテストデータの転送及び処理に要する選択用の転送時間を測定及び算出する。例えば、選択部４６は、リード処理のテストデータの転送開始からリード処理によってリードされた制御対象１６のリードデータの取得終了までに要した時間をリード転送時間として測定する。選択部４６は、ライト処理のテストデータの転送開始からライト処理の完了を示す制御対象１６からの応答信号の取得終了までに要した時間をライト転送時間として測定する。選択部４６は、リード転送時間及びライト転送時間に基づいて、データ転送方式を選択する。例えば、選択部４６は、リード転送時間及びライト転送時間の和を選択用の転送時間（以下、総データ転送時間）としてデータ転送方式ごとに算出する。選択部４６は、総データ転送時間の短いデータ転送方式を転送バス２６のデータ転送方式として選択する。
【００２５】
図３は、シリアルデータ転送方式のリード時のテストデータＴＤ１の一例を示す図である。図３の横軸は時刻を示し、上段ＴＸ（Transmitter）はプロセッサ３０が転送するＴＸデータ信号を示し、下段ＲＸ（Receiver）はプロセッサ３０が取得するＲＸデータ信号を示す。尚、後述する図４から図６の横軸、上段ＴＸ及び下段ＲＸは、図３と同様である。
【００２６】
生成部４４は、図３に示すように、メモリ番地コマンドＣｍ１、データブロック数コマンドＣｍ２及びリードスタートコマンドＣｍ３を含むリード処理用の複数のテストデータＴＤ１を生成して選択部４６へ出力する。メモリ番地コマンドＣｍ１は、リードするリードデータＤａ１の開始番地を示すコマンドである。データブロック数コマンドＣｍ２は、リードするリードデータＤａ１のブロック数を示すコマンドである。リードスタートコマンドＣｍ３は、リードデータＤａ１のリードを開始させるコマンドである。コマンドＣｍ１、Ｃｍ２、Ｃｍ３は、制御部４２がリード処理において生成する制御コマンドに対応する。テストデータＴＤ１の個数は、制御対象１６の個数であってよい。
【００２７】
選択部４６は、転送バス２６を介して、生成部４４から取得したテストデータＴＤ１をコマンドＣｍ１、Ｃｍ２、Ｃｍ３の順でシリアルデータ転送方式によって通信モジュール２８へ転送する。選択部４６は、テストデータＴＤ１を転送した後、転送バス２６を介して、制御対象１６のコモンメモリ４０からリードされたリードデータＤａ１をシリアルデータ転送方式によって通信モジュール２８から取得する。各テストデータＴＤ１におけるリードデータＤａ１のブロック数は異なっていてもよい。選択部４６は、全てのテストデータＴＤ１の転送を実行する。選択部４６は、全てのテストデータＴＤ１の転送及び処理に要した時間をシリアルリード転送時間Ｔ１として測定する。具体的には、シリアルリード転送時間Ｔ１は、最初のテストデータＴＤ１（ここでは、メモリ番地コマンドＣｍ１）の転送開始時刻から最後のリードデータＤａ１の取得完了時刻までの時間である。
【００２８】
図４は、シリアルデータ転送方式のライト時のテストデータＴＤ２の一例を示す図である。
【００２９】
生成部４４は、図４に示すように、メモリ番地コマンドＣｍ４、データブロック数コマンドＣｍ５、ライトスタートコマンドＣｍ６及びライトデータＤａ２を含むライト処理用の複数のテストデータＴＤ２を生成して選択部４６へ出力する。メモリ番地コマンドＣｍ４は、ライトデータＤａ２をライトする開始番地を示すコマンドである。データブロック数コマンドＣｍ５は、ライトするライトデータＤａ２のブロック数を示すコマンドである。ライトスタートコマンドＣｍ６は、ライトデータＤａ２のライトを開始させるコマンドである。ライトデータＤａ２は、コモンメモリ４０にライトさせるデータである。各テストデータＴＤ２におけるライトデータＤａ２のブロック数は異なっていてもよい。コマンドＣｍ４、Ｃｍ５、Ｃｍ６は、制御部４２がライト処理において生成する制御コマンドに対応する。ライトデータＤａ２は、制御対象１６のコモンメモリ４０にライトするデータである。テストデータＴＤ２の個数は、制御対象１６の個数であってよい。
【００３０】
選択部４６は、転送バス２６を介して、生成部４４から取得したテストデータＴＤ２をコマンドＣｍ４、Ｃｍ５、Ｃｍ６、ライトデータＤａ２の順で、転送バス２６を介して、シリアルデータ転送方式によって通信モジュール２８へ転送する。選択部４６は、テストデータＴＤ２を転送した後、転送バス２６を介して、ライトデータＤａ２がライトされた旨を示す制御対象１６の応答信号ＲＳをシリアルデータ転送方式によって通信モジュール２８から取得する。選択部４６は、全てのテストデータＴＤ２の転送を実行する。選択部４６は、全てのテストデータＴＤ２の転送及び処理に要した時間をシリアルライト転送時間Ｔ２として測定する。具体的には、シリアルライト転送時間Ｔ２は、最初のテストデータＴＤ２（ここでは、メモリ番地コマンドＣｍ４）の転送開始時刻から最後の応答信号ＲＳの取得完了時刻までの時間である。選択部４６は、シリアルリード転送時間Ｔ１とシリアルライト転送時間Ｔ２の和を総シリアル転送時間として算出する。
【００３１】
図５は、パラレルデータ転送方式のリード時のテストデータＴＤ３の一例を示す図である。
【００３２】
生成部４４は、図５に示すように、メモリ番地コマンドＣｍ１、データブロック数コマンドＣｍ２及びリードスタートコマンドＣｍ３を含むリード処理用の複数のテストデータＴＤ３を生成して選択部４６へ出力する。生成部４４は、シリアルデータ転送方式の各リード処理のテストデータＴＤ１と同じ内容及び個数のパラレルデータ転送方式のテストデータＴＤ３を生成してよい。
【００３３】
選択部４６は、転送バス２６を介して、生成部４４から取得したテストデータＴＤ３をコマンドＣｍ１、Ｃｍ２、Ｃｍ３の順でパラレルデータ転送方式によって通信モジュール２８へ転送する。選択部４６は、全てのテストデータＴＤ３の転送を連続して実行する。換言すれば、選択部４６は、リードスタートコマンドＣｍ３を転送すると、次のテストデータＴＤ３のメモリ番地コマンドＣｍ１を連続して転送する。選択部４６は、各テストデータＴＤ３の転送後、転送バス２６を介して、制御対象１６のコモンメモリ４０からリードされたリードデータＤａ１をパラレルデータ転送方式によって通信モジュール２８から取得する。各リード処理におけるリードデータＤａ１のブロック数は異なっていてもよい。選択部４６は、前のテストデータＴＤ３の転送が完了した後、かつ、前のリードデータＤａ１の取得を完了した後、次のリードデータＤａ１の取得を開始する。例えば、２個目のリードデータＤａ１の転送は、１個目のリードデータＤａ１の転送完了後ではなく、２個目のリードスタートコマンドＣｍ３の転送完了後に、開始される。一方、３個目のリードデータＤａ１の転送は、２個目のリードデータＤａ１の転送完了後に、開始される。ここで、２個目のリードデータＤａ１のようにデータ量が多い場合、通信以外の処理のために、３個目のリードデータＤａ１の転送は、一点鎖線で示すように、２個目のリードデータＤａ１の転送が完了した後、更にデッドタイムＤＴ経過後に開始される。例えば、予め定められた全ての制御対象１６を制御する制御周期が１ｍｓ、各コマンドＣｍ１、Ｃｍ２、Ｃｍ３の転送時間が４μｓの場合であって、リードデータＤａ１の転送時間が２００μｓ以上となると、デッドタイムＤＴは１０μｓ程度となる。これにより、通信以外の処理が、デッドタイムＤＴ中に実行される。デッドタイムＤＴの介入は、プロセッサ３０またはインターフェースコア３２のいずれかによって実行される。一方、シリアルデータ転送方式は、リードデータＤａ１の転送完了と次のリードデータＤａ１の転送開始との間にコマンドＣｍ１、Ｃｍ２、Ｃｍ３が転送されて通信以外の処理が実行できるので、デッドタイムＤＴは生じない。従って、このデッドタイムＤＴによって、パラレルデータ転送方式が、シリアルデータ転送方式よりも長くなる場合が生じる。選択部４６は、全てのテストデータＴＤ３の転送及び処理に要した時間をパラレルリード転送時間Ｔ３として測定する。具体的には、パラレルリード転送時間Ｔ３は、最初のテストデータＴＤ３（ここでは、メモリ番地コマンドＣｍ１）の転送開始時刻から最後のリードデータＤａ１の取得完了時刻までの時間である。
【００３４】
図６は、パラレルデータ転送方式のライト時のテストデータＴＤ４の一例を示す図である。
【００３５】
生成部４４は、図６に示すように、メモリ番地コマンドＣｍ４、データブロック数コマンドＣｍ５、ライトスタートコマンドＣｍ６及びライトデータＤａ２を含むライト処理用の複数のテストデータＴＤ４を生成して選択部４６へ出力する。各テストデータＴＤ４におけるライトデータＤａ２のブロック数は異なっていてもよい。生成部４４は、シリアルデータ転送方式の各ライト処理のテストデータＴＤ２と同じ内容及び同じ個数のパラレルデータ転送方式のテストデータＴＤ４を生成してよい。
【００３６】
選択部４６は、生成部４４から取得したテストデータＴＤ４をコマンドＣｍ４、Ｃｍ５、Ｃｍ６、ライトデータＤａ２の順で、転送バス２６を介して、パラレルデータ転送方式によって通信モジュール２８へ転送する。選択部４６は、全てのテストデータＴＤ４の転送を連続して実行する。換言すれば、選択部４６は、ライトデータＤａ２を転送すると、次のテストデータＴＤ４のメモリ番地コマンドＣｍ４を連続して転送する。ここで、２個目のライトデータＤａ２のようにデータ量が多い場合、通信以外の処理のために、３個目のメモリ番地コマンドＣｍ４の転送は、一点鎖線で示すように、２個目のライトデータＤａ２の転送が完了した後、更にデッドタイムＤＴ経過後に開始される。これにより、通信以外の処理が、デッドタイムＤＴ中に実行される。選択部４６は、テストデータＴＤ４を転送した後、転送バス２６を介して、ライトデータＤａ２がライトされた旨を示す制御対象１６の応答信号ＲＳをパラレルデータ転送方式によって通信モジュール２８から取得する。選択部４６は、全てのテストデータＴＤ４の転送及び処理に要した時間をパラレルライト転送時間Ｔ４として測定する。具体的には、パラレルライト転送時間Ｔ４は、最初のテストデータＴＤ４（ここでは、メモリ番地コマンドＣｍ４）の転送開始時刻から最後の応答信号ＲＳの取得完了時刻までの時間である。選択部４６は、パラレルリード転送時間Ｔ３とパラレルライト転送時間Ｔ４の和を総パラレル転送時間として算出する。
【００３７】
図７は、プロセッサ３０が実行する選択処理の一例を示すフローチャートである。プロセッサ３０は、記憶装置２４の選択プログラム３８を読み込むことによって、選択処理を実行する。
【００３８】
図７に示すように、選択処理では、生成部４４は、転送方式を選択するか否かを判定する（Ｓ１０２）。例えば、生成部４４は、制御対象１６を制御する制御プログラム３６が変更されたら、転送方式を選択すると判定してよい。生成部４４は、制御プログラム３６が変更されていないと判定した場合、転送方式を選択しないと判定して、待機状態となる（Ｓ１０２：Ｎｏ）。
【００３９】
生成部４４は、制御プログラム３６が変更されて、転送方式を選択すると判定すると（Ｓ１０２：Ｙｅｓ）、シリアルデータ転送方式のリード処理及びライト処理の複数のテストデータＴＤ１、ＴＤ２を生成して、選択部４６へ出力する（Ｓ１０４）。選択部４６は、リード処理及びライト処理のテストデータＴＤ１、ＴＤ２をシリアルデータ転送方式によって転送する（Ｓ１０６）。選択部４６は、全てのリード処理及びライト処理のテストデータＴＤ１、ＴＤ２に対するリードデータＤａ１及び応答信号ＲＳの取得を完了すると、測定したシリアルデータ転送方式のシリアル転送時間Ｔ１、Ｔ２を足して総シリアル転送時間を算出する（Ｓ１０８）。
【００４０】
次に、生成部４４は、パラレルデータ転送方式のリード処理及びライト処理の複数のテストデータＴＤ３、ＴＤ４を生成して、選択部４６へ出力する（Ｓ１１０）。選択部４６は、リード処理及びライト処理のテストデータＴＤ３、ＴＤ４をパラレルデータ転送方式によって転送する（Ｓ１１２）。選択部４６は、全てのリード処理及びライト処理のテストデータＴＤ３、ＴＤ４に対するリードデータＤａ１及び応答信号ＲＳの取得を完了すると、測定したパラレルデータ転送方式のパラレル転送時間Ｔ３、Ｔ４を足して、総パラレル転送時間を算出する（Ｓ１１４）。
【００４１】
選択部４６は、総シリアル転送時間と、総パラレル転送時間との比較に基づいて、転送方式を選択する。具体的には、選択部４６は、総シリアル転送時間が総パラレル転送時間よりも短い場合（Ｓ１１６：Ｙｅｓ）、シリアルデータ転送方式を選択する（Ｓ１１８）。選択部４６は、総シリアル転送時間が総パラレル転送時間よりも長い場合（Ｓ１１６：Ｎｏ）、パラレルデータ転送方式を選択する（Ｓ１２０）。尚、選択部４６は、総シリアル転送時間と、総パラレル転送時間とが等しい場合、既に選択済みのデータ転送方式を維持してよい。
【００４２】
これにより、プロセッサ３０は、選択処理を終了する。この後、制御部４２は、選択部４６が選択したデータ転送方式によって、制御コマンドを転送する。
【００４３】
上述したように、制御装置２０は、シリアルデータ転送方式及びパラレルデータ転送方式のいずれかからテストデータＴＤ１〜ＴＤ４を転送して測定した転送時間の短いデータ転送方式を、転送バス２６のデータ転送方式として自動で選択する。これにより、制御装置２０は、適切な転送バス２６のデータ転送方式を選択して、制御対象１６との転送時間を短縮することができる。
【００４４】
例えば、デッドタイムＤＴが生じず、パラレル転送時間Ｔ３、Ｔ４がシリアル転送時間Ｔ１、Ｔ２よりも短い場合、制御装置２０はパラレルデータ転送方式を選択する。一方、データＤａ１、Ｄａ２のデータ量が大きく、デッドタイムＤＴが生じて、総シリアル転送時間が総パラレル転送時間よりも短い場合、制御装置２０はシリアルデータ転送方式を選択する。
【００４５】
上述したように、制御装置２０は、制御プログラム３６が変更されると、データ転送方式の選択を実行する。これにより、制御装置２０は、制御プログラム３６の変更に伴う、制御コマンド、データ及び応答信号の変更によって、データ転送時間が変化しても、データ転送時間の短いデータ転送方式を選択して採用できる。
【００４６】
上述した実施形態の各構成の機能、接続関係、及び、個数等は適宜変更してよい。以下、上述の実施形態を部分的に変形した実施形態について説明する。
【００４７】
生成部４４は、制御対象１６が変更されたか否かに基づいて、転送選択条件が満たされたか否かを判定してもよい。例えば、生成部４４は、制御対象１６が変更されて、新たに接続された制御対象１６から取得した識別情報等が変更されていたら、転送選択条件が満たされたとして、データ転送方式を選択すると判定して（Ｓ１０２：Ｙｅｓ）、テストデータを生成してよい（Ｓ１０４、Ｓ１０８）。選択部４６は、テストデータを取得すると、テストデータを転送して、データ転送方式を選択してよい。これにより、制御装置２０は、制御対象１６の変更に伴う、制御コマンド、データ及び応答信号の変更によって、データ転送時間が変化しても、データ転送時間の短いデータ転送方式を選択して採用できる。
【００４８】
生成部４４は、制御システム１０の管理者等からデータ転送方式の選択指示を受け付けたか否かに基づいて、転送選択条件が満たされたか否かを判定してもよい。例えば、生成部４４は、キーボードまたはタッチパネル等の入力装置を介して、データ転送方式の選択指示を受け付けると、転送選択条件が満たされたとして、データ転送方式を選択すると判定して（Ｓ１０２：Ｙｅｓ）、テストデータを生成してよい（Ｓ１０４、Ｓ１１０）。選択部４６は、テストデータを取得すると、テストデータを転送して、データ転送方式を選択してよい。これにより、制御装置２０は、制御プログラム３６または制御対象１６の変化を検出できなくても、選択指示を受け付けると、データ転送時間の短いデータ転送方式を選択して採用できる。
【００４９】
生成部４４は、予め定められた選択処理周期ごとに転送選択条件が満たされたと判定してもよい。例えば、生成部４４は、前回の選択処理の実行から選択処理周期以上経過すると、転送選択条件が満たされたとして、データ転送方式を選択すると判定して（Ｓ１０２：Ｙｅｓ）、テストデータを生成してよい（Ｓ１０４、Ｓ１１０）。選択部４６は、テストデータを取得すると、テストデータを転送して、データ転送方式を選択してよい。これにより、制御装置２０は、制御プログラム３６または制御対象１６の変化を検出できなくても、選択処理周期ごとに、データ転送時間の短いデータ転送方式を選択して採用できる。
【００５０】
生成部４４は、制御システム１０に電源が投入されたか否かに基づいて、転送選択条件が満たされたか否かを判定してもよい。例えば、生成部４４は、制御システム１０に電源が投入されると、転送選択条件が満たされたとして、データ転送方式を選択すると判定して（Ｓ１０２：Ｙｅｓ）、テストデータを生成してよい（Ｓ１０４、Ｓ１１０）。選択部４６は、テストデータを取得すると、テストデータを転送して、データ転送方式を選択してよい。
【００５１】
生成部４４は、制御システム１０の初期設定の実行に基づいて、転送選択条件が満たされたか否かを判定してもよい。例えば、生成部４４は、制御システム１０の初期設定が実行されると、転送選択条件が満たされたとして、データ転送方式を選択すると判定して（Ｓ１０２：Ｙｅｓ）、テストデータを生成してよい（Ｓ１０４、Ｓ１１０）。選択部４６は、テストデータを取得すると、テストデータを転送して、データ転送方式を選択してよい。
【００５２】
生成部４４は、上述した複数の転送選択条件を用いてテストデータを生成するか否かを判定してもよい。この場合であっても、生成部４４は、いずれかの転送選択条件が満たされると、テストデータを生成してよい。
【００５３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５４】
１０：制御システム、      １６：制御対象、      ２０：制御装置、      ２６：転送バス、      ３０：プロセッサ、      ３４：コモンメモリ、      ４０：コモンメモリ、      ４４：生成部、      ４６：選択部、      Ｃｍ１：メモリ番地コマンド、      Ｃｍ２：データブロック数コマンド、      Ｃｍ３：リードスタートコマンド、      Ｃｍ４：メモリ番地コマンド、      Ｃｍ５：データブロック数コマンド、      Ｃｍ６：ライトスタートコマンド、      ＤＴ：デッドタイム、      Ｄａ１：リードデータ、      Ｄａ２：ライトデータ、      ＲＳ：応答信号、      Ｔ１：シリアルリード転送時間、      Ｔ２：シリアルライト転送時間、      Ｔ３：パラレルリード転送時間、      Ｔ４：パラレルライト転送時間、      ＴＤ１：テストデータ、      ＴＤ２：テストデータ、      ＴＤ３：テストデータ、      ＴＤ４：テストデータ。
【図１】
2019114023.tif 000003
【図２】
2019114023.tif 000004
【図３】
2019114023.tif 000005
【図４】
2019114023.tif 000006
【図５】
2019114023.tif 000007
【図６】
2019114023.tif 000008
【図７】
2019114023.tif 000009