(57)【要約】      （修正有）【課題】データ量に応じた最適な転送方式を選択可能な技術を提供する。【解決手段】制御システム（ＰＬＣ１）は、１または複数の機能ユニット２００と、当該機能ユニット間で巡回的に伝送される通信データ２０を遣り取りする制御装置１００とを備える。制御装置は、ユーザからの指示に従って、または、予め定められた条件に従って、演算処理部１１０が通信データを転送する第１転送方式と、ＤＭＡコントローラ１４０が通信データを転送する第２転送方式とのうち、いずれかの転送方式を選択する。【選択図】図１
2020088479.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の機能ユニットと、
前記１または複数の機能ユニット間で巡回的に伝送される通信データを遣り取りする制御装置とを備え、
前記制御装置は、
前記通信データを一時的に格納する第１記憶部を有する通信回路と、
複数の転送方式のいずれかに従って、前記第１記憶部から転送される前記通信データを格納する第２記憶部と、
前記第２記憶部に格納された前記通信データを用いて、演算処理を実行する演算処理部と、
前記演算処理部と前記通信回路とに接続されたＤＭＡコントローラとを備え、
前記複数の転送方式は、前記演算処理部が前記通信データを転送する第１転送方式と、前記ＤＭＡコントローラが前記通信データを転送する第２転送方式とを含み、
前記演算処理部は、ユーザからの指示に従って、または、予め定められた条件に従って、前記第１転送方式と前記第２転送方式とのうち、いずれかの転送方式を選択する、制御システム。
【請求項２】
前記演算処理部は、
前記第１転送方式により前記通信データが前記第２記憶部に転送される時間と、該転送される時間および前記演算処理が実行される時間とのうちのいずれかの第１転送時間と、前記第２転送方式により前記通信データが前記第２記憶部に転送される時間と、該転送される時間および前記演算処理が実行される時間とのうちのいずかの第２転送時間とを計測し、
前記第１転送時間と前記第２転送時間とを含む計測データを出力する、請求項１に記載の制御システム。
【請求項３】
前記演算処理部は、前記制御装置への電力の供給が開始された場合、または、前記制御装置に接続された前記１または複数の機能ユニットの構成が変更された場合に、前記第１転送時間と前記第２転送時間とを計測する、請求項２に記載の制御システム。
【請求項４】
前記計測データは、前記第１転送方式による前記通信データの転送が、複数回実行されたときの前記第１転送時間における平均第１転送時間と、前記第２転送方式による前記通信データの転送が、複数回実行されたときの前記第２転送時間における平均第２転送時間とを含み、
前記演算処理部は、前記平均第１転送時間で転送が実行される前記第１転送方式と、前記平均第２転送時間で転送が実行される前記第２転送方式とのうち、短い時間で転送が実行される転送方式を選択可能する、請求項２または３に記載の制御システム。
【請求項５】
前記計測データは、前記第１転送方式による前記通信データにおける転送が、複数回実行されたときの前記第１転送時間におけるばらつき度合いと、前記第２転送方式による前記通信データにおける転送が、複数回実行されたときの前記第２転送時間におけるばらつき度合いとを含み、
前記演算処理部は、前記第１転送時間におけるばらつき度合いで転送が実行される第１転送方式と、前記第２転送時間におけるばらつき度合いで転送が実行される第２転送方式のうち、小さいばらつきの度合いで転送が実行される転送方式を選択可能とする、請求項２または３に記載の制御システム。
【請求項６】
前記計測データを受け付けるサポート装置をさらに備え、
前記サポート装置は、受け付けた前記計測データに基づいて、前記通信データの転送において許容される最大の時間と、前記第１転送方式および前記第２転送方式のうち、いずれかの転送方式により前記通信データが転送されたときに実測された時間とを比較可能な画像を表示する表示部を含む、請求項２〜５のいずれか１項に記載の制御システム。
【請求項７】
１または複数の機能ユニット間で巡回的に伝送される通信データを遣り取りする制御装置であって、
前記通信データを一時的に格納する第１記憶部を有する通信回路と、
複数の転送方式のいずれかに従って、前記第１記憶部から転送される前記通信データを格納する第２記憶部と、
前記第２記憶部に格納された前記通信データを用いて、演算処理を実行する演算処理部と、
前記演算処理部と前記通信回路とに接続されたＤＭＡコントローラとを備え、
前記複数の転送方式は、前記演算処理部が前記通信データを転送する第１転送方式と、前記ＤＭＡコントローラが前記通信データを転送する第２転送方式とを含み、
前記演算処理部は、ユーザからの指示に従って、または、予め定められた条件に従って、前記第１転送方式と前記第２転送方式とのうち、いずれかの転送方式を選択する、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信データを記憶部に転送する転送方式の選択に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）を用いた生産現場等では、ＰＬＣ（Programmable Logic Controller）やロボットコントローラなどの産業用の制御装置が導入されている。制御装置と機能ユニットとは通信線により電気的に接続されている。機能ユニットは、通信線上を巡回的に伝送する通信データを制御装置と遣り取りする。通信データは、制御装置に含まれる通信回路のバッファに一時的に格納される。通信データは、バッファから制御装置に含まれる記憶部に転送される。通信データは、例えばＤＭＡ（Direct Memory Access）転送の方式（以下、「ＤＭＡ方式」とも称す。）により転送される。ＤＭＡ方式は、通信回路に接続されたＤＭＡコントローラが通信データを記憶部に転送する方式である。
【０００３】
制御装置による通信データの転送に関して、特開２０１８−１２９６１４号公報（特許文献１）は、ＰＬＣを構成するＣＰＵユニットにおいては、タスクを実行するプロセッサおよびメインメモリなどを含む演算処理部と、ローカルバスを介した通信を担当する通信回路との間に、ＤＭＡコントローラが配置される。ＤＭＡコントローラは、複数のＤＭＡコアを有しており、各ＤＭＡコアは、ディスクリプタテーブルに従って指定された処理を順次実行する。これによって、演算処理部と通信回路との間のデータ伝送を含む、制御装置（プロセッサ）と機能ユニットとの間のＩＯリフレッシュ処理といった各種通信処理を高速に実現できる、技術を開示している（［段落０１４３］参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１２９６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、通信データのサイズ（データ量）によっては、制御装置がある転送方式（例えば、ＤＭＡ方式）を用いて通信データの転送を行った場合に、他の転送方式を用いて通信データを転送した場合よりも、転送に要する時間が長くなることがあった。したがって、データ量に応じた最適な転送方式を選択可能な技術の開示が必要とされている。
【０００６】
本開示は、係る実情に鑑み考え出されたものであり、ある局面において、データ量に応じた最適な転送方式を選択可能な技術を提供する。
【課題を解決するための手段】
【０００７】
本開示の一例では、制御システムは、１または複数の機能ユニットと、上記１または複数の機能ユニット間で巡回的に伝送される通信データを遣り取りする制御装置とを備え、上記制御装置は、上記通信データを一時的に格納する第１記憶部を有する通信回路と、複数の転送方式のいずれかに従って、上記第１記憶部から転送される上記通信データを格納する第２記憶部と、上記第２記憶部に格納された上記通信データを用いて、演算処理を実行する演算処理部と、上記演算処理部と上記通信回路とに接続されたＤＭＡコントローラとを備え、上記複数の転送方式は、上記演算処理部が上記通信データを転送する第１転送方式と、上記ＤＭＡコントローラが上記通信データを転送する第２転送方式とを含み、上記演算処理部は、ユーザからの指示に従って、または、予め定められた条件に従って、上記第１転送方式と上記第２転送方式とのうち、いずれかの転送方式を選択する。
【０００８】
この開示によれば、制御システムは、システムの運用中にデータ量に応じた最適な転送方式を選択できる。
【０００９】
本開示の一例では、上記演算処理部は、上記第１転送方式により上記通信データが上記第２記憶部に転送される時間と、該転送される時間および上記演算処理が実行される時間とのうちのいずれかの第１転送時間と、上記第２転送方式により上記通信データが上記第２記憶部に転送される時間と、該転送される時間および上記演算処理が実行される時間とのうちのいずかの第２転送時間とを計測し、上記第１転送時間と上記第２転送時間とを含む計測データを出力する。
【００１０】
この開示によれば、制御システムは、各転送方式における通信データの転送処理の時間、または、通信データの転送処理および演算処理を含む時間のいずれかを計測できる。
【００１１】
本開示の一例では、上記演算処理部は、上記制御装置への電力の供給が開始された場合、または、上記制御装置に接続された上記１または複数の機能ユニットの構成が変更された場合に、上記第１転送時間と上記第２転送時間とを計測する。
【００１２】
この開示によれば、制御システムは、システム運用中において、現在設定されている転送方式とは別の転送方式が選択される可能性があるタイミングで、転送時間の計測を行える。
【００１３】
本開示の一例では、上記計測データは、上記第１転送方式による上記通信データにおける転送が、複数回実行されたときの上記第１転送時間における平均第１転送時間と、上記第２転送方式による上記通信データにおける転送が、複数回実行されたときの上記第２転送時間における平均第２転送時間とを含み、上記演算処理部は、上記平均第１転送時間で転送が実行される上記第１転送方式と、上記平均第２転送時間で転送が実行される上記第２転送方式とのうち、短い時間で転送が実行される転送方式を選択可能する。
【００１４】
この開示によれば、制御システムは、システムの運用中に、通信データを記憶部に転送する時間が短い転送方式を選択でき、定周期の処理に要する時間を短縮できる。
【００１５】
本開示の一例では、上記計測データは、上記第１転送方式による上記通信データにおける転送が、複数回実行されたときの上記第１転送時間におけるばらつき度合いと、上記第２転送方式による上記通信データにおける転送が、複数回実行されたときの上記第２転送時間におけるばらつき度合いとを含み、上記演算処理部は、上記第１転送時間におけるばらつき度合いで転送が実行される第１転送方式と、上記第２転送時間におけるばらつき度合いで転送が実行される第２転送方式のうち、小さいばらつきの度合いで転送が実行される転送方式を選択可能とする。
【００１６】
この開示によれば、制御システムは、通信データを記憶部に転送する時間のばらつきが小さい転送方式を選択でき、定周期の処理を確実に終了させることできる。
【００１７】
本開示の一例では、制御システムは、計測データを受け付けるサポート装置をさらに備え、上記サポート装置は、受け付けた上記計測データに基づいて、上記通信データの転送において許容される最大の時間と、上記第１転送方式および上記第２転送方式のうち、いずれかの転送方式により上記通信データが転送されたときに実測された時間とを比較可能な画像を表示する表示部を含む。
【００１８】
この開示によれば、制御システムは、複数の転送方式のうち、いずれの転送方式がシステムに適合しているのかを、ユーザが直感的に判断可能な画像を表示できる。
【００１９】
本開示の一例では、制御装置は、上記１または複数の機能ユニット間で巡回的に伝送される通信データを遣り取りし、上記通信データを一時的に格納する第１記憶部を有する通信回路と、複数の転送方式のいずれかに従って、上記第１記憶部から転送される上記通信データを格納する第２記憶部と、上記第２記憶部に格納された上記通信データを用いて、演算処理を実行する演算処理部と、上記演算処理部と上記通信回路とに接続されたＤＭＡコントローラとを備え、上記複数の転送方式は、上記演算処理部が上記通信データを転送する第１転送方式と、上記ＤＭＡコントローラが上記通信データを転送する第２転送方式とを含み、上記演算処理部は、ユーザからの指示に従って、または、予め定められた条件に従って、上記第１転送方式と上記第２転送方式とのうち、いずれかの転送方式を選択する。
【００２０】
この開示によれば、制御装置は、システムの運用中にデータ量に応じた最適な転送方式を選択できる。
【発明の効果】
【００２１】
本開示によれば、ある局面において、データ量に応じた最適な転送方式を選択可能となる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施の形態に係るＰＬＣ１の要部構成を示す模式図である。
【図２】ＰＬＣ１における周期タスクの実行を説明するための模式図である。
【図３】転送方式ごとのデータ量に応じた転送時間を表わす図である。
【図４】ＰＩＯ方式により入力データ１３４を転送する処理について説明する図である。
【図５】ＤＭＡ方式により入力データ１３４を転送する処理について説明する図である。
【図６】予め定められた条件に基づいて、入力データ１３４の転送方式を選択する機能について説明する機能ブロック図である。
【図７】プライマリ周期タスクの一例を表わす図である。
【図８】転送方式を選択するユーザプログラムの１２７の一例を表わす図である。
【図９】演算処理部１１０が、予め定められた条件を満たす転送方式を選択する処理を表わすフローチャートである。
【図１０】第２の実施の形態に係るＰＬＣ１ａの要部構成を示す模式図である。
【図１１】ユーザからの指示に応答して、入力データ１３４の転送方式を選択する機能を説明する機能ブロック図である。
【図１２】第１転送方式による転送時間を含む計測データに基づいて生成された画像である。
【図１３】第２転送方式による転送時間を含む計測データに基づいて生成された画像である。
【図１４】本実施の形態に係るＰＬＣ１を構成するサポート装置３００のハードウェア構成例を示すブロック図である。
【図１５】演算処理部１１０が、ユーザからの指示に応答して、転送方式を選択する処理を表わすフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２４】
また、以下の説明においては、「制御システム」の典型例として、ＰＬＣ（プラグラマブルコントローラ）を具体例として説明するが、ＰＬＣとの名称に限定されることなく、本明細書に開示された技術的思想は、任意の制御装置に対して適用可能である。
【００２５】
＜第１の実施の形態＞
＜適用例＞
［ＰＬＣ１の装置構成］
まず、第１の実施の形態に係るＰＬＣの装置構成について説明する。図１は、第１の実施の形態に係るＰＬＣの要部構成を示す模式図である。図１を参照して、第１の実施の形態に係るＰＬＣ１は、典型的には、制御装置１００と、１または複数の機能ユニット２００とから構成される。制御装置１００は、ＰＬＣ１を構成する一要素であり、ＰＬＣ１全体の処理を制御する演算ユニットに相当する。機能ユニット２００は、ＰＬＣ１による様々な機械や設備の制御を実現するための各種機能を提供する。制御装置１００と１または複数の機能ユニット２００との間は、通信線の一例であるローカルバス２を介して接続されている。一例として、ローカルバス２としては、一種のデイジーチェーンの構成が採用される。
【００２６】
図１に示す構成においては、制御装置１００は、通信ユニットまたは通信装置としても機能する。より具体的には、制御装置１００をローカルバス２における通信全体を管理するマスターの通信ユニットとして機能するようにしてもよく、各機能ユニット２００を制御装置１００の管理下で通信を行うスレーブの通信ユニットとして機能するように構成してもよい。このようなマスター／スレーブの構成を採用することで、ローカルバス２を巡回する通信データ（通信フレーム）２０のタイミング制御などを容易に行うことができる。
【００２７】
制御装置１００は、演算処理部１１０と、通信回路１３０と、ＤＭＡコントローラ１４０と、高精度タイマ１６０とを含む。なお、演算処理部１１０を含む制御装置１００に対して、通信回路１３０の機能を提供する通信ユニットを組み合わせるような構成であってもよい。
【００２８】
演算処理部１１０は、プロセッサ１１２と、記憶部１１４と、ストレージ１２０とを含む。説明の便宜上、図１には、１つのプロセッサ１１２のみを描くが、複数のプロセッサを実装してもよい。なお、各プロセッサは、複数のコアを有していてもよい。演算処理部１１０においては、プロセッサ１１２が１または複数のタスクを周期的に実行する。演算処理部１１０で複数のタスクが実行される場合には、それらの複数のタスクに対して、互いに異なる優先度が設定されてもよい。
【００２９】
また、プロセッサ１１２は、後述する通信回路１３０のバッファ１３２に格納された通信データ２０（例えば、入力データ１３４）を記憶部１１４に転送する。プロセッサ１１２は、データ転送に用いられる複数の転送方式のうち、例えば、後述するＰＩＯ（Programmed Input/Output）転送のデータ転送方式（以下、「ＰＩＯ方式」とも称す。）に従って、通信データ２０を記憶部１１４に転送する。
【００３０】
記憶部１１４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などで構成され、プロセッサ１１２でのプログラムの実行に必要なワーク領域を提供する。
【００３１】
ストレージ１２０は、フラッシュメモリやハードディスクなどで構成され、システムプログラム１２２、ユーザプログラム１２４、コンフィギュレーション１２６などを格納する。
【００３２】
システムプログラム１２２は、プロセッサ１１２においてユーザプログラム１２４を実行するためのＯＳ（Operating System）およびライブラリなどを含む。システムプログラム１２２は、機能ユニット２００間を巡回する通信データ２０に含まれるフィールド値（入力データ）を制御装置１００へ送信するためのタスクを含む。以下では、フィールド値を入力データ１３４という。また、システムプログラム１２２は、制御装置１００で算出される制御指令値を機能ユニット２００へ送信するためのタスクを含む。以下では、制御指令値を出力データ１３５という。このように、システムプログラム１２２は、入力データ１３４および出力データ１３５の少なくともいずれかを送信する処理（後述する、ＩＯリフレッシュ処理）を周期的に実行するためのタスクを含む。ユーザプログラム１２４は、制御対象の機械や設備に応じて任意に作成される。また、システムプログラム１２２は、複数のデータ転送方式のうち、各転送方式におけるデータ転送時間の計測の処理を実行するためのタスクを含む。
【００３３】
コンフィギュレーション１２６は、制御装置１００でのプログラム実行に必要な各種設定値やネットワーク構成を定義する各種設定値を含む。コンフィギュレーション１２６は、例えば、ＩＯリフレッシュ処理で送受信される入力データ１３４のデータ量および出力データ１３５のデータ量を含む。
【００３４】
通信回路１３０は、通信線であるローカルバス２を介して、１または複数の機能ユニット２００と通信データ２０を遣り取りする。つまり、通信回路１３０は、通信線であるローカルバス２を介した通信データ２０の送受信を担当する。通信回路１３０はバッファ１３２を含む。バッファ１３２は、ローカルバス２を介して送受信された通信データ２０を一時的に格納する。バッファ１３２に一時的に格納される通信データ２０は、例えば、入力データ１３４および出力データ１３５である。
【００３５】
通信回路１３０により実行される通信データ２０の送受信は例えば次のように実現される。通信回路１３０は、ローカルバス２と物理的に接続され、ＤＭＡコントローラ１４０からの指令に従って電気信号を生成する。通信回路１３０は、ローカルバス２上に通信データ２０を送信するとともに、ローカルバス２上に生じる電気信号を復調して、通信データ２０を演算処理部１１０へ出力する。
【００３６】
本明細書において、「ＩＯリフレッシュ処理」は、入力データ１３４の制御装置１００等への送信、および、出力データ１３５の機能ユニット２００への送信のうちの少なくとも一方を含む。入力データ１３４は機能ユニット２００により収集されたデータである。出力データ１３５は、制御装置１００の記憶部１１４に格納されたデータである。すなわち、「ＩＯリフレッシュ処理」との名称は便宜上のものであり、入力データ１３４および出力データ１３５のうち一方のみ（例えば、入力データ１３４のみ）の更新処理も含み得る。
【００３７】
ＤＭＡコントローラ１４０は、演算処理部１１０および通信回路１３０に接続され、演算処理部１１０と通信回路１３０との間で要求を仲介して、データアクセスを高速化する機能を有している。ＤＭＡコントローラ１４０は、通信回路１３０のバッファ１３２に格納された通信データ２０（例えば、入力データ１３４）を記憶部１１４に転送する。ＤＭＡコントローラ１４０は、データ転送に用いられる複数のデータ転送方式のうち、例えば、後述するＤＭＡ転送のデータ転送方式（以下、「ＤＭＡ方式」とも称す。）に従って、通信データ２０を記憶部１１４に転送する。
【００３８】
ＤＭＡコントローラ１４０は、例えば、プロセッサ１１２からの通信要求に応答して、通信回路１３０に対して指令を与えて、通信回路１３０のバッファ１３２に格納された入力データ１３４を記憶部１１４へ送信する。また、ＤＭＡコントローラ１４０は、プロセッサ１１２からの通信要求に応答して、記憶部１１４に格納された出力データ１３５を通信回路１３０に送信する。ＤＭＡコントローラ１４０の少なくとも主要部については、ハードワイヤードな構成を有することで、プロセッサ１１２より高速な処理を実現可能である。典型的には、ＤＭＡコントローラ１４０は、ハードウェアロジックを用いて実現される。例えば、ＤＭＡコントローラ１４０は、ＰＬＤ（Programmable Logic Device）の一例であるＦＰＧＡ（Field-Programmable Gate Array）や、ＩＣ（Integrated Circuit）の一例であるＡＳＩＣ（Application Specific Integrated Circuit）などを用いて実装されてもよい。
【００３９】
高精度タイマ１６０は、制御装置１００および制御装置１００に接続される他のユニットとの間でタイミングを決定するための一種のクロックであり、所定周期においてカウントアップするカウンタなどを用いて実現される。
【００４０】
通信データ２０は、ＩＯリフレッシュ処理に用いられる。通信データ２０は、ローカルバス２を介して、複数の機能ユニット２００間で巡回的に伝送される。通信データ２０が伝送されていない期間において、制御装置１００と任意の機能ユニット２００との間、あるいは、複数の機能ユニット２００間には、通信データ２０がメッセージ伝送されることもある。
【００４１】
ローカルバス２上でデータを遣り取りするためのプロトコルとしては、任意のプロトコルを採用することができる。さらに、通信線の一例として、ローカルバス２を例示するが、これに限らず、任意の定周期ネットワークを採用してもよい。このような定周期ネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの公知のネットワークを採用してもよい。
【００４２】
図１に示す構成においては、説明の便宜上、演算処理部１１０、通信回路１３０およびＤＭＡコントローラ１４０に区別した構成を描いているが、これに限られることなく任意の実装形態を採用できる。例えば、演算処理部１１０の全部または一部と通信回路１３０の全部または一部とを同一のチップ上に実装したＳｏＣ（System on Chip）で構成してもよい。あるいは、演算処理部１１０のプロセッサ１１２とＤＭＡコントローラ１４０の主要機能とを同一のチップ上に実装したＳｏＣを用いてもよい。これらの実装形態については、要求される性能やコストなどを考慮して適宜選択される。
【００４３】
機能ユニット２００は、典型的には、Ｉ／Ｏユニット、通信ユニット、温度調整ユニット、ＩＤ（Identifier）センサユニットなどを包含し得る。Ｉ／Ｏユニットとしては、例えば、デジタル入力（ＤＩ）ユニット、デジタル出力（ＤＯ）ユニット、アナログ出力（ＡＩ）ユニット、アナログ出力（ＡＯ）ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。
【００４４】
制御装置１００は、他のＰＬＣ、リモートＩ／Ｏ装置、機能ユニットなどとデータの遣り取りを仲介する。制御装置１００は、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などのプロトコルに係る通信装置などを包含し得る。
【００４５】
温度調整ユニットは、温度計測値などを取得するアナログ入力機能と、制御指令などを出力するアナログ出力機能と、ＰＩＤ（Proportional Integral Differential）制御機能とを含む制御装置である。ＩＤセンサユニットは、ＲＦＩＤ（Radio Frequency IDentifier）などから非接触でデータを読出す装置である。
【００４６】
機能ユニット２００は、ローカルバス２上において巡回的に伝送される通信データ２０を処理する。より具体的には、通信処理部２１０は、ローカルバス２を介して何らかの通信データ２０を受信すると、必要に応じて、当該受信した通信データ２０に対するデータ書込みおよび／またはデータ読出しを行った後に、ローカルバス２上において次に位置する機能ユニット２００へ当該通信フレームを送信する。機能ユニット２００は、このようなフレームリレーの機能を提供する。なお、機能ユニット２００は、自ユニット宛ではない通信フレームについては、単純に次に位置する機能ユニット２００へ当該通信フレームを転送することもある。
【００４７】
［制御装置１００における周期タスク］
第１の実施の形態に係るＰＬＣ１においては、それぞれ優先度が設定された１または複数の周期タスクが実行される。このような周期タスクのうち、最高優先度のタスク（以下、「プライマリ周期タスク」とも称す。）の一つとして上述のＩＯリフレッシュ処理がある。ＩＯリフレッシュ処理の優先度より低い優先度のタスクとして、各種のタスク（以下、「通常周期タスク」とも称す。）がある。これらのタスクは、予め設定されたそれぞれの一定周期が繰返し実行されることになる。
【００４８】
図２は、ＰＬＣ１における周期タスクの実行を説明するための模式図である。図２を参照して、制御装置１００においては、ＩＯリフレッシュ処理などを実行するためのプライマリ周期タスク１２２１が制御周期Ｔ１で繰返し実行される。また、プライマリ周期タスク１２２１が繰返し実行されるとともに、プライマリ周期タスク１２２１より優先度の低い１または複数の通常周期タスク１２２２が制御周期Ｔ２で繰返し実行される。通常周期タスク１２２２の制御周期Ｔ２は、通常周期タスク１２２２毎に異なる値に設定されていてもよい。制御周期Ｔ１および制御周期Ｔ２は一定周期である。また、例えば、制御周期Ｔ２は、制御周期Ｔ１より長い値に設定される。
【００４９】
通常周期タスク１２２２としては、何らかのイベントまたは条件の成立に応答して、特定の機能ユニット２００へ各種メッセージフレームを送信する処理が実行されることもある。すなわち、通常周期タスク１２２２についても、通信回路１３０（図１）を起動してメッセージフレームをローカルバス２上にイベントまたは周期的に送出する場合もある。
【００５０】
これに対して、プライマリ周期タスク１２２１に含まれるタスクのうち、ＩＯリフレッシュ処理が実行される場合には、ＩＯリフレッシュフレームが一定の周期毎に繰返しローカルバス２上に送出される。周期が一定となるのは、制御装置１００に接続される機能ユニット２００の構成が、予め定まった構成となるためである。例えば、図１においては３台の機能ユニット２００が制御装置１００に接続されている。３台の機能ユニット２００が遣り取りするデータ量は、毎周期ほぼ同じデータ量となる。なお、データ量は、コンフィギュレーション１２６により予め規定されている。したがって、通信回路１３０がＩＯリフレッシュフレームを一定周期で繰返し送出することで、バッファ１３２に格納される通信データ２０（例えば、入力データ１３４）のデータ量は、毎周期ほぼ同じデータ量となる。
【００５１】
そして、制御装置１００に接続される機能ユニット２００の構成が変更される「段取り替え」等が行われると、通信データ２０のデータ量も変更される。例えば、制御装置１００に接続される機能ユニット２００の数が増加してデータ量も増加することで、データ量が増加する前よりも、入力データ１３４を転送する時間が長くなる場合がある。このような場合であっても、ＩＯリフレッシュ処理が行われる時間は、予め定められた上限の時間を超えないよう定周期内で終了する必要がある。ＩＯリフレッシュ処理の時間が増加することで、ＩＯリフレッシュ処理以外のプライマリ周期タスクが実行されない可能性があるためである。したがって、例えば、入力データ１３４のデータ量が増加した場合に、ＩＯリフレッシュ処理の時間が予め定められた範囲内となるような転送方式で入力データ１３４を転送する必要がある。
【００５２】
ここで、通信回路１３０のバッファ１３２に格納された入力データ１３４を記憶部１１４に転送する場合に要する時間は、入力データ１３４を転送する場合に設定される転送方式によって異なる。以下、転送方式と転送時間との関係について説明する。
【００５３】
［転送方式と転送時間との関係］
図３を参照して、転送方式と転送時間との関係について説明する。図３は、転送方式ごとのデータ量に応じた転送時間を表わす図である。図３に示す転送時間は、例えば、実験で算出されたデータである。転送方式としては、例えば、ＰＩＯ方式と、ＤＭＡ方式とがある。ＰＩＯ方式とＤＭＡ方式とにおける具体的な転送方法については後述する。
【００５４】
図３の第１推移線３０１〜第４推移線３０４は、各転送方式における転送時間の推移を表わす。より具体的には、第１推移線３０１および第２推移線３０２は、入力データ１３４の転送が複数回実行されたときの平均の転送時間（以下、「平均転送時間」とも称す。）を表わす。平均転送時間はデータ量に応じて変化する。第１推移線３０１は、ＰＩＯ方式による平均転送時間の推移を示す。第２推移線３０２は、ＤＭＡ方式による平均転送時間の推移を表わす。
【００５５】
第３推移線３０３および第４推移線３０４は、入力データ１３４の転送が複数回実行されたときの最大の転送時間（以下、「最大転送時間」とも称す。）を表わす。最大転送時間はデータ量に応じて推移する。第３推移線３０３は、ＰＩＯ方式による転送時間の変化を表わす。第４推移線３０４は、ＤＭＡ方式による転送時間の変化を表わす。
【００５６】
最初に、第１推移線３０１および第２推移線３０２について説明する。例えば、バッファ１３２から記憶部１１４に転送される入力データ１３４のデータ量が５０ＫＢの場合に、第１推移線３０１における平均転送時間は１２.５μｓｅｃとなり、第２推移線３０２における平均転送時間は１４.０μｓｅｃとなる。入力データ１３４のデータ量が５０ＫＢの場合は、ＰＩＯ方式による転送時間がＤＭＡ方式による転送時間よりも短くなる。これに対して、データ量が３００ＫＢの場合は、第１推移線３０１の平均転送時間は２０.０μｓｅｃとなり、第２推移線３０２の平均転送時間は１８.５μｓｅｃとなる。入力データ１３４のデータ量が３００ＫＢの場合は、ＤＭＡ方式による転送時間がＰＩＯ方式による転送時間よりも短くなる。
【００５７】
ＰＩＯ方式とＤＭＡ方式とのどちらの転送時間が短くなるかは、例えば、データ量が１９０ＫＢ未満か否かによって変化する。より具体的には、データ量が１９０ＫＢ未満の場合は、ＰＩＯ方式の転送時間がＤＭＡ方式の転送時間よりも短くなる。データ量が１９０ＫＢ以上の場合は、ＤＭＡ方式の転送時間がＰＩＯ方式の転送時間よりも短くなる。上述のように、ＤＭＡ方式の転送速度は、ＰＩＯ方式による転送速度よりも速いが、ＤＭＡ方式による転送が行われる場合、転送開始前にプロセッサ１１２とＤＭＡコントローラ１４０との間において設定処理が行われる。このようにＤＭＡコントローラ１４０が、ＤＭＡ方式によるデータの転送を行う場合は、データの転送が開始される前に事前の処理が必要となる。したがって、データ量が少ない場合は、設定処理が行われないＰＩＯ方式によるデータの転送が、ＤＭＡ方式によるデータの転送よりも短時間で終了する。
【００５８】
次に、第３推移線３０３および第４推移線３０４について説明する。例えば、バッファ１３２から記憶部１１４に転送される入力データ１３４のデータ量が５０ＫＢの場合には、第３推移線３０３における最大転送時間は３２.０μｓｅｃとなり、第４推移線３０４における最大転送時間は３２.５μｓｅｃとなる。入力データ１３４のデータ量が５０ＫＢの場合は、ＰＩＯ方式による転送時間がＤＭＡ方式による転送時間よりも短くなる。これに対して、データ量が３００ＫＢの場合は、第３推移線３０３の最大転送時間は４０.０μｓｅｃとなり、第４推移線３０４の最大転送時間は４２.５μｓｅｃとなる。入力データ１３４のデータ量が３００ＫＢの場合は、ＤＭＡ方式による転送時間がＰＩＯ方式による転送時間よりも短くなる。
【００５９】
ＰＩＯ方式とＤＭＡ方式とのどちらの転送時間が短くなるかは、例えば、データ量が１２５ＫＢ未満か否かによって変化する。より具体的には、データ量が１２５ＫＢ未満の場合は、ＰＩＯ方式の転送時間がＤＭＡ方式の転送時間よりも短くなる。データ量が１２５ＫＢ以上の場合は、ＤＭＡ方式の転送時間がＰＩＯ方式の転送時間よりも短くなる。このように、入力データ１３４のデータ量に応じて、各転送方式における転送時間が異なる。そのため、制御装置１００は、段取り替え等が行われたことで、通信データ２０のデータ量が変化する場合は、データ量が変化した後の各転送方式による転送時間を計測する。
【００６０】
これまで説明した図３の推移線は実験により計測された値である。これに対して、制御装置１００は、ＰＬＣ１のシステムの運用中に、演算処理部１１０の一機能である後述する計測部（例えば、図７に示す計測部１１６）により、各転送方式における平均転送時間が計測される。そして、制御装置１００は、平均転送時間が短い転送方式を選択する。また、制御装置１００は、ＰＬＣ１のシステムの運用中に、計測部１１６により、各転送方式における転送時間のばらつきの程度が計測される。転送時間のばらつきの程度については後述する。計測部１１６は、平均転送時間および転送時間のばらつきの程度の少なくともいずれかを含む計測データを後述する判定部（例えば、図７に示す判定部１１７）に出力する。判定部１１７は、複数の転送方式のうちどの方式がＰＬＣ１のシステムの運用に適しているかを判定する。このように、制御装置１００は、平均転送時間および転送時間のばらつきの程度の少なくともいずれかを計測して、複数の転送方式のうちどの方式がＰＬＣ１のシステムの運用に適しているかを判定する。
【００６１】
［転送方式の説明］
図４および図５を参照して、ＰＩＯ方式およびＤＭＡ方式の転送方式について説明する。以下では、入力データ１３４の転送について説明するが、出力データ１３５の転送であってもこれらの転送方式のうち、データ量の変化に応じていずれかの転送方式が適用される。ＩＯリフレッシュ処理が実行される場合に、入力データ１３４は、ＰＩＯ方式およびＤＭＡ方式のいずれかの方式により、通信回路１３０のバッファ１３２から記憶部１１４に転送される。プロセッサ１１２は、記憶部１１４に格納された入力データ１３４を用いて、演算処理を実行する。
【００６２】
図４は、ＰＩＯ方式により入力データ１３４を転送する処理について説明する図である。図５は、ＤＭＡ方式により入力データ１３４を転送する処理について説明する図である。図４を参照して、プロセッサ１１２は、通信回路１３０のバッファ１３２に格納された入力データ１３４を読み出す。プロセッサ１１２は、読み出した入力データ１３４を記憶部１１４に転送する。このようにＰＩＯ方式では、プロセッサ１１２を介して入力データ１３４を記憶部１１４に転送する。言い換えると、ＰＩＯ方式では、ＤＭＡコントローラ１４０を介することなく、プロセッサ１１２が入力データ１３４をバッファ１３２から記憶部１１４へ転送する。なお、プロセッサ１１２を介して入力データ１３４を転送する方式を、ＦＷ（Firmware）方式と称してもよい。以下では、プロセッサ１１２を介して入力データ１３４を転送する方式をＰＩＯ方式と称して説明を続ける。
【００６３】
図５を参照して、ＤＭＡコントローラ１４０は、通信回路１３０のバッファ１３２に格納された入力データ１３４を読み出す。ＤＭＡコントローラ１４０は、読み出した入力データ１３４を記憶部１１４に転送する。このようにＤＭＡ方式では、ＤＭＡコントローラ１４０を介して入力データ１３４を記憶部１１４に転送する。言い換えると、ＤＭＡ方式では、プロセッサ１１２を介することなく、ＤＭＡコントローラ１４０が入力データ１３４をバッファ１３２から記憶部１１４へ転送する。なお、ＤＭＡ方式による処理が実行される前に、プロセッサ１１２からＤＭＡコントローラ１４０に対して設定指示が出力される。プロセッサ１１２からの設定指示を受け取ったＤＭＡコントローラ１４０は、処理を開始するために必要な設定を行った後に、バッファ１３２に格納された入力データ１３４の読み出しを開始する。
【００６４】
制御装置１００は、ＰＩＯ方式とＤＭＡ方式とのうち、いずれかの転送方式によりバッファ１３２に一時的に格納された入力データ１３４を記憶部１１４に転送する。ＰＩＯ方式は、演算処理部１１０に含まれるプロセッサ１１２が入力データ１３４を記憶部１１４に転送する方式である。ＤＭＡ方式は、ＤＭＡコントローラ１４０が入力データ１３４を記憶部１１４に転送する方式である。そして、入力データ１３４を転送するＩＯリフレッシュ処理が実行される場合には、一定周期内に処理を完了する必要がある。演算処理部１１０は、バッファ１３２に格納された入力データ１３４をＰＩＯ方式（以下、「第１転送方式」とも称す。）により記憶部１１４に転送した時間（以下、「第１転送時間」とも称す。）を計測する。また、演算処理部１１０は、バッファ１３２に格納された入力データ１３４をＤＭＡ方式（以下、「第２転送方式」とも称す。）により記憶部１１４に転送した時間（以下「第２転送時間」とも称す。）を計測する。演算処理部１１０は、第１転送時間と第２転送時間とのうち、例えば、短い時間となる転送方式を、入力データ１３４を転送する転送方式として選択する。
【００６５】
［第１転送時間と第２転送時間］
図６を参照して、第１転送時間および第２転送時間と、プライマリ周期タスク１２２１との対応関係について説明する。図６は、プライマリ周期タスク１２２１の一例を表わす図である。プライマリ周期タスク１２２１は、ＩＯリフレッシュ処理を含む。また、プライマリ周期タスク１２２１は、ＩＯリフレッシュ処理後に、最優先で行われる演算処理およびユーザプログラム等を含む。例えば、ＩＯリフレッシュ処理、演算処理、およびユーザプログラムが実行される制御周期Ｔ１のうち、第１転送方式による第１転送時間、または、第２転送方式による第２転送時間は、ＩＯリフレッシュ処理が行われる周期Ｔａに含まれる時間である。これに対して、第１転送時間または第２転送時間は、ＩＯリフレッシュ処理と演算処理とが行われる周期Ｔｂに含まれる時間であってもよい。演算処理は、プロセッサ１１２がバッファ１３２から記憶部１１４に転送された入力データ１３４を用いて実行する処理である。
【００６６】
このように、入力データ１３４をバッファ１３２から記憶部１１４に転送する時間は、ＩＯリフレッシュ処理が行われる時間を含む周期Ｔａにおける時間、および、ＩＯリフレッシュ処理と演算処理の時間とを含む周期Ｔｂにおける時間のいずれかとなる。より具体的には、第１転送時間は、例えば、ＰＩＯ方式により入力データ１３４がバッファ１３２から記憶部１１４に転送される転送時間（周期Ｔａに含まれる時間）と、当該転送時間および演算処理が実行される時間を含む処理実行時間（周期Ｔｂに含まれる時間）とのうちのいずれかの時間となる。また第２転送時間は、例えば、ＤＭＡ方式により入力データ１３４がバッファ１３２から記憶部１１４に転送される転送時間（周期Ｔａに含まれる時間）と、当該転送時間および演算処理が実行される時間を含む処理実行時間（周期Ｔｂに含まれる時間）とのうちのいずれかの時間となる。これにより、ＰＬＣ１は、プライマリ周期タスク１２２１において、各転送方式においてＩＯリフレッシュ処理のみの時間、または、ＩＯリフレッシュ処理および演算処理を含む時間を転送時間として計測できる。したがって、以下、第１転送時間および第２転送時間と称する場合は、ＩＯリフレッシュ処理のみの時間（周期Ｔａに含まれる時間）と、ＩＯリフレッシュ処理および演算処理を含む時間（周期Ｔｂに含まれる時間）とのいずれの時間であってもよい。
【００６７】
なお、周期Ｔｃは、ユーザプログラム１２４を含む時間である。制御周期Ｔ１が予め定められた時間（例えば、２,０００μsec）であるため、周期Ｔｃに含まれるユーザプログラム１２４の数が少ない場合は、周期Ｔａおよび周期Ｔｂの少なくともいずれかの上限時間を長くすることができる。例えば、ユーザプログラムの数が０（ゼロ）の場合は、制御周期Ｔ１＝周期Ｔｂとすることもできる。これに対して、ユーザプログラム１２４の数が増加すると、制御周期Ｔ１は、予め定められた時間であるため、周期Ｔａおよび周期Ｔｂの少なくともいずれかの時間を短くする必要がある。したがって、演算処理部１１０の選択部１１８は、ＩＯリフレッシュ処理における入力データ１３４の転送時間が短くなる転送方式を選択することで、転送時間の短縮が可能となる。これにより、ＰＬＣ１は、ユーザプログラム１２４が実行される時間をより多く確保できる。
【００６８】
以下では、転送方式を選択する条件および機能について説明する。図７は、予め定められた条件に基づいて、入力データ１３４の転送方式を選択する機能について説明する機能ブロック図である。演算処理部１１０は計測部１１６、判定部１１７、選択部１１８およびユーザプログラム１２４を含む。計測部１１６、判定部１１７および選択部１１８は、例えば、システムプログラム１２２により実現される機能である。
【００６９】
ユーザプログラム１２４は、計測部１１６に計測指示を出力する。スケジューラ（図示せず）において予め定められた順に処理が実行され、ユーザプログラム１２４の処理が実行されるタイミングとなったときに当該プログラムが実行される。ユーザプログラム１２４の処理が実行されたことで、計測指示を受け付けた計測部１１６は、ＰＩＯ方式およびＤＭＡ方式のそれぞれの転送方式による入力データ１３４の転送時間を算出する。計測部１１６は、高精度タイマ１６０によりカウントされる値に基づいて、入力データ１３４がバッファ１３２から読み出されて、記憶部１１４へ転送されるまでの時間を各方式で計測する。
【００７０】
そして、計測部１１６は、各方式における入力データ１３４の転送を複数回実行して転送時間を算出する。計測部１１６は、複数の転送時間に基づいて、各方式の平均の転送時間を示す平均転送時間を算出する。計測部１１６は、各転送方式の平均転送時間を含む計測データを判定部１１７に送信する。
【００７１】
判定部１１７は、計測データに基づいて、予め定められた判定条件を満たされたか否かを判定する。判定条件は、例えば、平均転送時間が短い転送方式を選択する条件である。判定部１１７は、ＰＩＯ方式による平均転送時間と、ＤＭＡ方式による平均転送時間とを比較して、いずれの方式の平均転送時間が短いかを判定する。例えば、判定部１１７はＰＩＯ方式の平均転送時間が、ＤＭＡ方式の平均転送時間よりも短いと判定した場合に、その判定結果を選択部１１８に出力する。
【００７２】
判定結果を受け付けた選択部１１８は、現在設定されている転送方式がＤＭＡ方式のときは、入力データ１３４の新たな転送方式としてＰＩＯ方式を選択する。現在設定されている転送方式がＰＩＯ方式のときは、判定結果を受け付けた選択部１１８は、現在選択されているＰＩＯの転送方式により引き続き転送を行う。このように、ＰＬＣ１は、各方式における平均転送時間に応じていずれかの転送方式を選択できる。ＰＬＣ１は、システムの運用中に、データ量に応じた最適な転送方式を選択できる。また、ＰＬＣ１は、システムの運用中に、入力データ１３４をバッファ１３２から記憶部１１４に転送する時間が短い転送方式を選択でき、ＩＯリフレッシュ処理に要する時間を短縮できる。さらに、ＰＬＣ１は、ＩＯリフレッシュ処理における処理時間の短縮により、ＩＯリフレッシュ処理以外の処理で、プライマリ周期タスクにおいて実行される処理（例えば、ユーザプログラムによる処理）の数を増やすことができる。
【００７３】
また、判定部１１７における判定条件を例えば、転送時間のばらつき度合いとしてもよい。より具体的には、判定部１１７は、例えば、小さいばらつき度合いの転送時間となる転送方式を選択可能な判定条件に基づいて、当該条件を満たすか否かを判定する。ばらつき度合いとは、例えば、複数の転送時間の標準偏差である。ばらつきの度合いが大きいと、ＩＯリフレッシュ処理の処理時間が定まらないため、一定周期内に処理を完了できない可能性がある。
【００７４】
計測部１１６は、複数の転送時間に基づいて、各方式の転送時間のばらつき度合いを算出する。計測部１１６は、例えば複数の転送時間の標準偏差に基づいてばらつき度合いを算出する。計測部１１６は、各転送方式のばらつき度合いを含む計測データを判定部１１７に送信する。
【００７５】
判定部１１７は、ＰＩＯ方式によるばらつき度合いと、ＤＭＡ方式によるばらつき度合いとを比較して、いずれの方式のばらつき度合いが小さいかを判定する。例えば、判定部１１７はＰＩＯ方式によるばらつき度合いがＤＭＡ方式によるばらつき度合いよりも小さいと判定した場合に、その判定結果を選択部１１８に出力する。判定結果を受け付けた選択部１１８は、現在設定されている転送方式がＤＭＡ方式のときは、入力データ１３４の新たな転送方式としてＰＩＯ方式を選択する。
【００７６】
現在設定されている転送方式がＰＩＯ方式のときは、判定結果を受け付けた選択部１１８は、現在選択されているＰＩＯの転送方式により引き続き転送を行う。このように、ＰＬＣ１は、各方式における転送時間のばらつきの度合いに応じていずれかの転送方式を選択できる。また、ＰＬＣ１は、入力データ１３４をバッファ１３２から記憶部１１４に転送する時間のばらつきが小さい転送方式を選択でき、ＩＯリフレッシュ処理を一定周期で確実に終了させることできる。さらに、ＩＯリフレッシュ処理が一定周期で確実に終了することで、ＰＬＣ１は、プライマリ周期タスクに含まれる他の処理が未実行となることを防止できる。
【００７７】
［第１の実施の形態における転送方式の選択処理］
図８を参照して、制御装置１００の制御構造について説明する。図８は、演算処理部１１０が、予め定められた条件を満たす転送方式を選択する処理を表わすフローチャートである。ステップＳ１００１において、演算処理部１１０は、ユーザプログラム１２４に基づく計測指示を受け付ける。計測指示は、例えば、制御装置１００に電力が供給（電源ＯＮ）された場合、または、機能ユニット２００の構成が変更された（「段取り替え」が行われた）場合に出力される。
【００７８】
ステップＳ１００２において、演算処理部１１０は、第１転送方式（例えば、ＰＩＯ方式）による転送時間の計測を開始する。演算処理部１１０は、高精度タイマ１６０を用いて、１周期分の入力データ１３４の転送における開始タイミングを検出する。
【００７９】
ステップＳ１００３において、演算処理部１１０は、計測が終了したか否かを判定する。演算処理部１１０は、ＰＩＯ方式による転送時間を予め定められた回数（例えば、２,０００回）計測する。演算処理部１１０は、１周期分の入力データ１３４の転送における終了タイミングを検出した後に、予め定められた回数の計測が終了したと判定すると（ステップＳ１００３においてＹＥＳ）、制御をステップＳ１００４に切替える。そうでない場合には（ステップＳ１００３においてＮＯ）、演算処理部１１０は、制御をステップＳ１００３に切替えて、予め定められた回数になるまで計測を継続する。
【００８０】
なお、演算処理部１１０は、上述のように、高精度タイマ１６０を用いて、１周期分の入力データ１３４の転送における開始タイミングのカウント値と、カウントが開始されてから、同じ１周期分の入力データ１３４の転送が終了するまでの終了タイミングのカウント値とを取得する。演算処理部１１０は、１周期分の転送時間の計測における開始タイミングのカウント値と、終了タイミングのカウント値との差を、第１転送方式による第１転送時間として検出する。
【００８１】
ステップＳ１００４において、演算処理部１１０は、第２転送方式（例えば、ＤＭＡ方式）による計測を開始する。演算処理部１１０は、高精度タイマ１６０を用いて、１周期分の入力データ１３４の転送における開始タイミングを検出する。
【００８２】
ステップＳ１００５において、演算処理部１１０は、計測が終了したか否かを判定する。演算処理部１１０は、ＤＭＡ方式による転送時間を予め定められた回数（例えば、２,０００回）計測する。演算処理部１１０は、計測が終了したと判定すると（ステップＳ１００５においてＹＥＳ）、制御をステップＳ１００６に切替える。そうでない場合には（ステップＳ１００５においてＮＯ）、演算処理部１１０は、制御をステップＳ１００５に切替えて、予め定められた回数になるまで計測を継続する。
【００８３】
なお、演算処理部１１０は、上述のように、高精度タイマ１６０を用いて、１周期分の入力データ１３４の転送における開始タイミングのカウント値と、カウントが開始されてから、同じ１周期分の入力データ１３４の転送が終了するまでの終了タイミングのカウント値とを取得する。演算処理部１１０は、１周期分の計測における開始タイミングのカウント値と、終了タイミングのカウント値との差を、第２転送方式による第２転送時間として検出する。
【００８４】
ステップＳ１００６において、演算処理部１１０は、第１転送時間および第２転送時間と、第１転送時間のばらつき度合いおよび第２転送時間のばらつき度合いとを含む計測データを出力する。演算処理部１１０は、計測データを判定部１１７に出力する。
【００８５】
ステップＳ１００７において、演算処理部１１０は、予め定められた条件が満たされたことに応答して、転送方式を選択する。演算処理部１１０は、例えば平均転送時間が短い条件を満たした転送方式を選択する。より具体的には、演算処理部１１０は、転送方式が第１転送方式による平均転送時間と、第２転送方式による平均転送時間とのうち、第１転送方式による平均転送時間が短いと判定すると、現在設定されている転送方式が第２転送方式の場合は、第１転送方式を以降の転送方式として選択する。演算処理部１１０は、現在設定されている転送方式が第１転送方式の場合は、新たな転送方式の選択は行わずに、現在の方式の設定を継続させる。
【００８６】
これにより、ＰＬＣ１は、入力データ１３４をバッファ１３２から記憶部１１４に転送する時間を短縮できる。また、ＰＬＣ１は、例えば、ばらつき度合いが小さい転送方式を選択することもできる。これにより、ＰＬＣ１は、入力データ１３４をバッファ１３２から記憶部１１４に転送する処理を定周期内に確実に終了できる。
【００８７】
なお、演算処理部１１０は、平均転送時間に替えてまたは第１転送方式による転送時間のばらつきの程度と、第２転送方式による転送時間のばらつきの程度とに基づいて、転送方式を選択してもよい。さらに、演算処理部１１０は、平均転送時間およびばらつきの程度の両方により転送方式を選択してもよい。
【００８８】
＜第２の実施の形態＞
以下、本開示に係る第２の実施の形態について説明する。第２の実施の形態に係るＰＬＣ１は、前述の実施の形態に係るＰＬＣ１と同一のハードウェア構成を用いて実現される。したがって、同一のハードウェア構成の説明は繰り返さない。
【００８９】
第１の実施の形態では、演算処理部１１０に含まれる計測部１１６、判定部１１７および選択部１１８はシステムプログラム１２２によって実現されることを説明した。これに対して、計測部１１６、判定部１１７および選択部１１８の機能はユーザプログラム１２４によって実現されてもよい。ユーザが後述するサポート装置３００を用いて、予めファンクションブロック等を作成し、作成したユーザプログラム１２４を制御装置１００に送信することで、制御装置１００において上記機能が実現されるようにしてもよい。以下、計測部１１６、判定部１１７および選択部１１８の機能を有するユーザプログラム１２４の具体例について説明する。
【００９０】
［ユーザプログラム１２４の具体例］
図９を参照して、選択部１１８の機能等を実現するユーザプログラム１２４の具体例について説明する。図９は、転送方式を選択するユーザプログラムの１２４の一例を表わす図である。図８の例では、ユーザプログラム１２４は、ラダープログラムで規定される。当該ユーザプログラム１２４は、例えば、制御装置１００へ電力が供給されていない状態から電力の供給が開始された場合、または、機能ユニット２００の構成が変更された（段取り替えが行われた）場合に、第１転送時間と第２転送時間との計測を開始する。第１転送時間および第２転送時間の計測が終了した後に、転送方式が選択された場合は、選択された新しい転送方式によりデータの転送が実行される。このように、ＰＬＣ１は、システム運用中において、現在設定されている転送方式とは別の転送方式を選択される可能性があるタイミングで、転送時間の計測を行える。
【００９１】
ユーザプログラム１２４は、入力要素ＩＮ０およびＩＮ１と、ファンクションブロックＦＢ０〜ＦＢ２と、出力要素ＯＵＴ０からＯＵＴ２とで規定されている。
【００９２】
入力要素ＩＮ０およびＩＮ１の値は、割り付けられている変数に応じて変化する。より具体的には、入力要素ＩＮ０には、変数「ＣｈｅｎｇｅＴｒｉｇｇｅｒ」が割り当てられている。変数「ＣｈｅｎｇｅＴｒｉｇｇｅｒ」はＢＯＯＬ型であり、初期値は、Ｆａｌｓｅ」（＝ＯＦＦ）である。変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」の値は、例えば、制御装置１００が起動されたことに基づいて、「Ｔｒｕｅ」（＝ＯＮ）に変化する。その他の場合、変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」の値は、「Ｆａｌｓｅ」（＝ＯＦＦ）となる。
【００９３】
入力要素ＩＮ１には、変数「ＳｅｔｔｉｎｇＴｒｉｇｇｅｒ」が割り当てられている。変数「ＳｅｔｔｉｎｇＴｒｉｇｇｅｒ」は、ＢＯＯＬ型であり、初期値は、「Ｆａｌｓｅ」（＝ＯＦＦ）である。また、変数「ＳｅｔｔｉｎｇＴｒｉｇｇｅｒ」は、ファンクションブロックＦＢ０の出力に関連付けられている。ファンクションブロックＦＢ０の出力が「Ｔｒｕｅ」（＝ＯＮ）となると、入力要素ＩＮ１の値は、「Ｔｒｕｅ」（＝ＯＮ）となる。一方で、ファンクションブロックＦＢ０の出力が「Ｆａｌｓｅ」（＝ＯＦＦ）となると、入力要素ＩＮ１の値は、「Ｆａｌｓｅ」（＝ＯＦＦ）となる。
【００９４】
次にファンクションブロックＦＢ０、ＦＢ１、および、ＦＢ２についての詳細な説明を行う。ファンクションブロックＦＢ０は、入力データ１３４の転送時間を計測するためのプログラムであり、ユーザプログラム１２４に含まれる命令に相当する。変数「ＣｈａｎｇｅＴｒｉｇｇｅｒ」が「Ｔｒｕｅ」（＝ＯＮ）になったことに基づいて、有効を示す信号「Ｔｒｕｅ」（＝ＯＮ）がファンクションブロックＦＢ１の入力部に入力される。このことに基づいて、ファンクションブロックＦＢ０は、ＰＩＯ方式による第１転送時間Ｔ１１と、ＤＭＡ方式による第２転送時間Ｔ１２との計測を開始する。
【００９５】
ファンクションブロックＦＢ１は、転送方式を選択するためのプログラムであり、ユーザプログラム１２４に含まれる命令に相当する。ファンクションブロックＦＢ０により計測された第１転送時間Ｔ１１が、第２転送時間Ｔ１２よりも長いことに基づいて、有効を示す信号「Ｔｒｕｅ」（＝ＯＮ）がファンクションブロックＦＢ１の入力部に入力される。このことに基づいて、ファンクションブロックＦＢ１は、現在の転送方式がＰＩＯ方式Ｍ１の場合に、ＤＭＡ方式Ｍ２を選択する。なお、ファンクションブロックＦＢ１は、現在の転送方式がＤＭＡ方式Ｍ２の場合は他の方式を選択することなく、現在の転送方式の設定を維持する。
【００９６】
ファンクションブロックＦＢ２は、転送方式を選択するためのプログラムであり、ユーザプログラム１２４に含まれる命令に相当する。ファンクションブロックＦＢ０により計測された第１転送時間Ｔ１１が、第２転送時間Ｔ１２よりも短いことに基づいて、有効を示す信号「Ｔｒｕｅ」（＝ＯＮ）がファンクションブロックＦＢ２の入力部に入力される。このことに基づいて、ファンクションブロックＦＢ２は、現在の転送方式がＤＭＡ方式Ｍ２の場合に、ＰＩＯ方式Ｍ１を選択する。なお、ファンクションブロックＦＢ１は、現在の転送方式がＰＩＯ方式Ｍ１の場合は他の方式を選択することなく、現在の転送方式の設定を維持する。
【００９７】
出力要素ＯＵＴ０〜ＯＵＴ２の値は、それぞれ、関連付けられているファンクションブロックの出力値に応じて変化する。出力要素ＯＵＴ０には、変数「ＳｅｔｔｉｎｇＴｒｉｇｇｅｒ」が割付けられている。また、出力要素ＯＵＴ０は、ファンクションブロックＦＢ０の出力に関連付けられている。その結果、出力要素ＯＵＴ０の値は、出力の値に応じて変化する。
【００９８】
出力要素ＯＵＴ１には、変数「Ｄｏｎｅ０」が割付けられている。また、出力要素ＯＵＴ１は、ファンクションブロックＦＢ１の出力に関連付けられている。その結果、出力要素ＯＵＴ１の値は、ファンクションブロックＦＢ１の出力の値に応じて変化する。
【００９９】
出力要素ＯＵＴ２には、変数「Ｄｏｎｅ１」が割付けられている。また、出力要素ＯＵＴ２は、ファンクションブロックＦＢ２の出力に関連付けられている。その結果、出力要素ＯＵＴ２の値は、ファンクションブロックＦＢ２の出力の値に応じて変化する。
【０１００】
以上のようにして、計測データ（例えば、計測時間）に基づいて、ファンクションブロックＦＢ１よりＤＭＡ方式が選択され、ファンクションブロックＦＢ２によりＰＩＯ方式が選択される。
【０１０１】
＜第３の実施の形態＞
以下、本開示に係る第３の実施の形態について説明する。第３の実施の形態に係るＰＬＣ１ａは、前述の実施の形態に係るＰＬＣ１と一部が異なる構成であり残りは同一の構成を用いて実現される。したがって、同一の構成の説明は繰り返さない。以下、異なる構成と処理とについて説明する。
【０１０２】
第１の実施の形態では、制御装置１００は、予め定められた条件が満たされたことに応答して、転送方式を選択した。これに対して、第３の実施の形態では、ユーザからの指示に応答して、転送方式を選択する。
【０１０３】
［ＰＬＣ１ａの装置構成］
図１０は、第２の実施の形態に係るＰＬＣ１ａの要部構成を示す模式図である。ＰＬＣ１ａは、典型的には、制御装置１００と、１または複数の機能ユニット２００と、サポート装置３００とから構成される。サポート装置３００は、制御装置１００と電気的に接続され、制御装置１００により計測された計測データを受け付ける。サポート装置３００は、表示部３１０を含み、計測データに基づく画像を表示する。表示部３１０に表示される画像については後述する。
【０１０４】
図１１を参照して、ユーザからの指示に応答して、転送方式を選択可能とする機能について説明する。図１１は、ユーザからの指示に応答して、入力データ１３４の転送方式を選択する機能を説明する機能ブロック図である。演算処理部１１０は計測部１１６、選択部１１８およびユーザプログラム１２４を含む。計測部１１６および選択部１１８の機能は、例えばシステムプログラム１２２によって実現される。演算処理部１１０の計測部１１６は、計測データをサポート装置３００に送信する。計測データを受信したサポート装置３００は、表示部３１０に計測データに基づく画像を表示する。
【０１０５】
演算処理部１１０の選択部１１８は、サポート装置３００を操作するユーザからの指示に基づいて、転送方式を選択可能とする。より具体的には、選択部１１８は、サポート装置３００における表示部３１０に計測データに基づく画像を表示する。サポート装置３００は、表示部３１０に表示された画像をみたユーザが選択した転送方式についての選択指示を選択部１１８に送信する。選択部１１８は、選択指示に基づいて転送方式を選択する。これにより、ＰＬＣ１は、システムの運用中にデータ量に応じた最適な転送方式を選択できる。より具体的には、ＰＬＣ１は、システム運用中に、入力データ１３４をバッファ１３２から記憶部１１４に転送する時間が短い転送方式の選択を指示するユーザからの指示に応答して転送方式を選択できる。また、ＰＬＣ１は、ＩＯリフレッシュ処理に要する時間を短縮できる。また、ＰＬＣ１は、ＩＯリフレッシュ処理における処理時間の短縮により、ＩＯリフレッシュ処理以外でプライマリ周期タスクにおいて実行される処理（例えば、ユーザプログラムによる処理）を増やすことができる。
【０１０６】
［計測データに基づく画像］
図１２および図１３を参照して、サポート装置３００の表示部３１０に表示される画像について説明する。より具体的には、第１転送方式（例えば、ＰＩＯ方式）による転送時間を含む計測データに基づく画像と、第２転送方式（例えば、ＤＭＡ方式）による転送時間を含む計測データに基づく画像とについて説明する。図１２は、第１転送方式による転送時間を含む計測データに基づいて生成された画像である。図１３は、第２転送方式による転送時間を含む計測データに基づいて生成された画像である。
【０１０７】
図１２を参照して、第１画像８０は、演算処理部１１０が第１転送方式による転送を例えば、約２,０００回実測した結果を表わす画像である。第１画像８０は、第１表示領域８１と第２表示領域８２とを含む。第１表示領域８１には、タスク実行時間（Task Execution Time)を表わす像が含まれる。
【０１０８】
タスク実行時間の全体の時間は、図２または図７を用いて説明したプライマリ周期タスク１２２１の制御周期Ｔ１に対応する時間である。すなわち、タスク実行時間は、少なくとも、ＩＯリフレッシュ処理を含む時間を表わす。より具体的には、タスク実行時間は、あるデータ量（例えば、５０ＫＢ）がバッファ１３２に格納されている場合に、入力データ１３４の転送時間を複数回計測したときに、計測データのうち最も転送時間が短い最小転送時間（Min)が表示される。最小転送時間は、例えば４００μsecである。また、複数回計測したときの計測データの平均転送時間（Average）が表示される。平均転送時間は、例えば４５０μsecである。さらに、計測データのうち、最も転送時間が長い最大転送時間（Max）が表示される。最大転送時間は、例えば５５０μsecである。設定時間（Set period）は、制御周期Ｔ１に対応する時間であり、通信データ２０の転送において許容される最大の時間（例えば、２,０００μsec）を表わす。
【０１０９】
このように、サポート装置３００の表示部３１０は、通信データ２０（例えば、入力データ１３４）の転送において許容される最大の時間と、ＰＩＯ方式により入力データ１３４が転送されたときに実測された時間とを表示する。実測された時間は、例えば最小転送時間、平均転送時間および最大転送時間の少なくともいずれかである。サポート装置３００は、計測データに基づいて、通信データ２０の転送において許容される最大の時間と、ＰＩＯ方式により通信データが転送されたときに実測された転送時間とを比較可能な第１画像８０を表示部３１０に表示する。
【０１１０】
第２表示領域８２は、縦軸が時間（μsec）、横軸が実測回数（回）を表わす。第２表示領域８２は、転送時間を複数回計測したときの計測データを含む。実測値１００１は、最小転送時間（例えば、４００μsec）を表わす。実測値１００２は、最大転送時間（例えば、５５０μsec）を表わす。平均線１００３は、平均転送時間（例えば、４５０μsec）を表わす。第２表示領域８２における最小転送時間を示す実測値１００１、最大転送時間を示す実測値１００２および平均転送時間を示す平均線１００３は、第１表示領域８１における最小転送時間、最大転送時間および平均転送時間に対応する値である。
【０１１１】
ＰＬＣ１は、サポート装置３００の表示部３１０に第１転送方式による転送時間の平均転送時間を含む第１画像８０を表示させることで、ＰＩＯ方式で入力データ１３４を転送したときの平均時間を、ユーザが一目で把握できる画像を提供できる。また、ＰＬＣ１は、サポート装置３００の表示部３１０に第１転送方式による最小転送時間および最大転送時間と、複数の実測値とを含む第１画像８０を表示することで、第１転送方式で入力データ１３４を転送したときの転送時間のばらつきの程度を、ユーザが一目で把握できる画像を提供できる。
【０１１２】
なお、第２表示領域８２における実測値１００１、実測値１００２および平均線１００３は、他の実測値と識別できるような態様で表示してもよい。より具体的には、実測値１００１、実測値１００２および平均線１００３を他の実測値と比べて、例えば、色、形および大きさ等の少なくともいずれかを他の実測値と比べて変化させてもよい。また、実測値１００１、実測値１００２および平均線１００３を点滅させる表示を行ってもよい。
【０１１３】
図１３を参照して、第２画像９０は、演算処理部１１０がＤＭＡ方式による転送時間を、例えば約２,０００回実測した結果を表わす画像である。第２画像９０は、第１表示領域９１と第２表示領域９２とを含む。第１表示領域９１には、タスク実行時間（Task Execution Time)を表わす像が含まれる。
【０１１４】
タスク実行時間の全体の時間は、例えば、図２または図７を用いて説明したプライマリ周期タスク１２２１の制御周期Ｔ１に対応する時間である。すなわち、タスク実行時間は、少なくとも、ＩＯリフレッシュ処理を含む時間を表わす。より具体的には、タスク実行時間は、あるデータ量（例えば、５０ＫＢ）バッファ１３２に格納されている場合に、入力データ１３４の転送時間を複数回計測したときに、計測データのうち最も転送時間が短い最小転送時間（Min)が表示される。最小転送時間は、例えば８８０μsecである。また、複数回計測したときの計測データの平均転送時間（Average）が表示される。平均転送時間は、例えば９００μsecである。さらに、計測データのうち、最も転送時間が長い最大転送時間（Max）が表示される。最大転送時間は、例えば９２０μsecである。設定時間（Set period）は、制御周期Ｔ１に対応する時間であり、通信データ２０の転送において許容される最大の時間（例えば、２,０００μsec）を表わす。
【０１１５】
このように、サポート装置３００の表示部３１０は、通信データ２０（例えば、入力データ１３４）の転送において許容される最大の時間と、第２転送方式により入力データ１３４が転送されたときに実測された時間とを表示する。実測された時間は、例えば最小転送時間、平均転送時間および最大転送時間の少なくともいずれかである。このように、サポート装置３００は、計測データに基づいて、通信データ２０の転送において許容される最大の時間と、第２転送方式により通信データが転送されたときに実測された転送時間とを比較可能な画像を表示部３１０に表示する。
【０１１６】
第２表示領域９２は、縦軸が時間（μsec）、横軸が実測回数（回）を表わす。第２表示領域９２は、転送時間を複数回計測したときの計測データを含む。実測値１１０１は、最小転送時間（例えば、８８０μsec）を表わす。実測値１１０２は、最大転送時間（例えば、９２０μsec）を表わす。平均線１１０３は、平均転送時間（例えば、９００μsec）を表わす。第２表示領域９２における最小転送時間を示す実測値１１０１、最大転送時間を示す実測値１１０２および平均転送時間を示す平均線１１０３は、第１表示領域９１における最小転送時間、最大転送時間および平均転送時間に対応する値である。
【０１１７】
ＰＬＣ１は、サポート装置３００の表示部３１０に第２転送方式による転送時間の平均転送時間を含む第２画像９０を表示させることで、第２転送方式により入力データ１３４を転送したときの平均時間を、ユーザが一目で把握できる画像を提供できる。また、ＰＬＣ１は、サポート装置３００の表示部３１０に第２転送方式による最小転送時間および最大転送時間と、複数の実測値とを含む第２画像９０を表示することで、第２転送方式により入力データ１３４を転送したときの転送時間のばらつきの程度を、ユーザが一目で把握できる画像を提供できる。
【０１１８】
なお、第２表示領域９２における実測値１１０１、実測値１１０２および平均線１１０３は、他の実測値と識別できるような態様で表示してもよい。より具体的には、実測値１１０１、実測値１１０２および平均線１１０３を他の実測値と比べて、例えば、色、形および大きさ等の少なくともいずれかを他の実測値と比べて変化させてもよい。また、実測値１１０１、実測値１１０２および平均線１１０３を点滅させる表示を行ってもよい。
【０１１９】
［サポート装置３００の装置構成］
図１４は、本実施の形態に係るＰＬＣ１を構成するサポート装置３００のハードウェア構成例を示すブロック図である。図１４を参照して、サポート装置３００は、ＣＰＵまたはＭＰＵなどのプロセッサ３１１と、光学ドライブ３１５と、主記憶装置３０６と、二次記憶装置３０８と、表示部３１０と、ＵＳＢ（Universal Serial Bus）コントローラ３１２と、ローカルネットワークコントローラ３１４と、入力部３１６と、表示部３１０とを含む。これらのコンポーネントはバス３２０を介して接続される。
【０１２０】
プロセッサ３１１は、二次記憶装置３０８に格納された各種プログラムを読み出して、主記憶装置３０６に展開して実行することで、後述するような各種処理を実現する。プロセッサ３１１は、制御装置１００から取得した計測データ３２６に基づいて、表示部３１０に表示する画像を生成する。
【０１２１】
二次記憶装置３０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成される。二次記憶装置３０８は、典型的には、ユーザプログラム１２４の作成、システム構成の定義、各種パラメータの設定などを行うための開発プログラム３２２と、各種変数を指定するためのパラメータ設定ツール３２４と、制御装置１００から取得した計測データ３２６とを含む。また、二次記憶装置３０８には、ＯＳおよび他の必要なプログラムが格納されてもよい。サポート装置３００は、光学ドライブ３１５を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体３０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読み取られて二次記憶装置３０８などにインストールされてもよい。
【０１２２】
サポート装置３００で実行される各種プログラムは、コンピュータ読取可能な記録媒体３０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置３００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【０１２３】
表示部３１０は、プロセッサ３１１が二次記憶装置３０８に格納された計測データ３２６に基づいて生成した、第１画像８０および第２画像９０のうちの少なくともいずれかを表示する。
【０１２４】
ＵＳＢコントローラ３１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。ローカルネットワークコントローラ３１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【０１２５】
入力部３１６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部３１０は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ３１１からの処理結果などを出力する。
【０１２６】
図３には、プロセッサ３１１がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【０１２７】
［第２の実施の形態における転送方式の選択処理］
図１５は、演算処理部１１０が、ユーザからの指示に応答して、転送方式を選択する処理を表わすフローチャートである。ステップＳ１００６において、演算処理部１１０は、第１転送時間および第２転送時間と、第１転送時間のばらつき度合いおよび第２転送時間のばらつき度合いとを含む計測データを出力する。演算処理部１１０は、計測データをサポート装置３００に出力する。
【０１２８】
ステップＳ２００１において、演算処理部１１０は、サポート装置３００からのユーザからの指示を受け付けたか否かを判定する。演算処理部１１０は、ユーザからの指示を受け付けたと判定した場合には（ステップＳ２００１においてＹＥＳ）、制御をステップＳ２００２に切替える。そうでない場合には（ステップＳ２００１においてＮＯ）、演算処理部１１０は、制御をステップＳ１００３に切替えて、ユーザからの指示を受け付けるまで処理を継続する。なお、予め定められた時間を経過してもユーザからの指示が受け付けられなかった場合は、演算処理部１１０は、図１５に示す転送方式の選択処理を終了する。
【０１２９】
ステップＳ２００２において、演算処理部１１０は、ユーザからの指示に応答して、複数の転送方式のうち、いずれかの転送方式を選択する。より具体的には、演算処理部１１０は、ユーザからの指示が第１転送方式を選択する指示である場合に、現在設定されている転送方式が第２転送方式のときは、第１転送方式を選択する。演算処理部１１０は、現在設定されている転送方式が第１転送方式の場合は、新たな転送方式の選択は行わずに、現在の方式の設定を継続させる。
【０１３０】
＜変形例＞
第１および第２の実施の形態において、演算処理部１１０のプロセッサ１１２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【０１３１】
第２の実施の形態において、ＰＬＣ１は、制御装置１００、機能ユニット２００およびサポート装置３００がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
【０１３２】
第２の実施の形態において、第１画像８０および第２画像９０はそれぞれ別々に表示部３１０に表示される説明を行ったが、第１画像８０および第２画像９０を並べて表示部３１０に表示してもよい。
【０１３３】
第２の実施の形態において、第１画像８０および第２画像９０において説明した最小転送時間、最大転送時間、平均転送時間、設定時間等の各種の値は一例であり、他の値であってもよい。
【０１３４】
＜付記＞
以上のように、本実施形態は以下のような開示を含む。
【０１３５】
［構成１］
１または複数の機能ユニット（２００）と、
前記１または複数の機能ユニット（２００）間で巡回的に伝送される通信データ（２０）を遣り取りする制御装置（１００）とを備え、
前記制御装置（１００）は、
前記通信データ（２０）を一時的に格納する第１記憶部（１３２）を有する通信回路（１３０）と、
複数の転送方式のいずれかに従って、前記第１記憶部（１３２）から転送される前記通信データ（２０）を格納する第２記憶部（１１４）と、
前記第２記憶部（１１４）に格納された前記通信データ（２０）を用いて、演算処理を実行する演算処理部（１１０）と、
前記演算処理部（１１０）と前記通信回路（１３０）とに接続されたＤＭＡコントローラ（１４０）とを備え、
前記複数の転送方式は、前記演算処理部（１１０）が前記通信データ（２０）を転送する第１転送方式と、前記ＤＭＡコントローラ（１４０）が前記通信データ（２０）を転送する第２転送方式とを含み、
前記演算処理部（１１０）は、ユーザからの指示に従って、または、予め定められた条件に従って、前記第１転送方式と前記第２転送方式とのうち、いずれかの転送方式を選択する、制御システム。
【０１３６】
［構成２］
前記演算処理部（１１０）は、
前記第１転送方式により前記通信データ（２０）が前記第２記憶部（１１４）に転送される時間と、該転送される時間および前記演算処理が実行される時間とのうちのいずれかの第１転送時間と、前記第２転送方式により前記通信データ（２０）が前記第２記憶部（１１４）に転送される時間と、該転送される時間および前記演算処理が実行される時間とのうちのいずかの第２転送時間とを計測し、
前記第１転送時間と第２転送時間とを含む計測データを出力する、構成１に記載の制御システム。
【０１３７】
［構成３］
前記演算処理部（１１０）は、前記制御装置（１００）への電力の供給が開始された場合、または、前記制御装置（１００）に接続された前記１または複数の機能ユニット（２００）の構成が変更された場合に、前記第１転送時間と前記第２転送時間とを計測する、構成２に記載の制御システム。
【０１３８】
［構成４］
前記計測データは、前記第１転送方式による前記通信データ（２０）における転送が、複数回実行されたときの前記第１転送時間における平均第１転送時間と、前記第２転送方式による前記通信データ（２０）における転送が、複数回実行されたときの前記第２転送時間における平均第２転送時間とを含み、
前記演算処理部（１１０）は、前記平均第１転送時間で転送が実行される前記第１転送方式と、前記平均第２転送時間で転送が実行される前記第２転送方式とのうち、短い時間で転送が実行される転送方式を選択可能する、構成２または３に記載の制御システム。
【０１３９】
［構成５］
前記計測データは、前記第１転送方式による前記通信データ（２０）における転送が、複数回実行されたときの前記第１転送時間におけるばらつき度合いと、前記第２転送方式による前記通信データ（２０）における転送が、複数回実行されたときの前記第２転送時間におけるばらつき度合いとを含み、
前記演算処理部（１１０）は、前記第１転送時間におけるばらつき度合いで転送が実行される第１転送方式と、前記第２転送時間におけるばらつき度合いで転送が実行される第２転送方式のうち、小さいばらつきの度合いで転送が実行される転送方式を選択可能とする、構成２または３に記載の制御システム。
【０１４０】
［構成６］
前記計測データを受け付けるサポート装置（３００）をさらに備え、
前記サポート装置（３００）は、受け付けた前記計測データに基づいて、前記通信データ（２０）の転送において許容される最大の時間と、前記第１転送方式および前記第２転送方式のうち、いずれかの転送方式により前記通信データ（２０）が転送されたときに実測された時間とを比較可能な画像を表示する表示部（３１０）を含む、構成２〜５のいずれか１項に記載の制御システム。
【０１４１】
［構成７］
１または複数の機能ユニット（２００）間で巡回的に伝送される通信データ（２０）を遣り取りする制御装置（１００）であって、
前記通信データ（２０）を一時的に格納する第１記憶部（１３２）を有する通信回路（１３０）と、
複数の転送方式のいずれかに従って、前記第１記憶部（１３２）から転送される前記通信データ（２０）を格納する第２記憶部（１１４）と、
前記第２記憶部（１１４）に格納された前記通信データ（２０）を用いて、演算処理を実行する演算処理部（１１０）と、
前記演算処理部（１１０）と前記通信回路（１３０）とに接続されたＤＭＡコントローラ（１４０）とを備え、
前記複数の転送方式は、前記演算処理部（１１０）が前記通信データ（２０）を転送する第１転送方式と、前記ＤＭＡコントローラ（１４０）が前記通信データ（２０）を転送する第２転送方式とを含み、
前記演算処理部（１１０）は、ユーザからの指示に従って、または、予め定められた条件に従って、前記第１転送方式と前記第２転送方式とのうち、いずれかの転送方式を選択する、制御装置。
【０１４２】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１４３】
２  ローカルバス、２０  通信データ、８０  第１画像、８１，９１  第１表示領域、８２，９２  第２表示領域、９０  第２画像、１００  制御装置、１１０  演算処理部、１１２，３１１  プロセッサ、１１４  記憶部、１１６  計測部、１１７  判定部、１１８  選択部、１２０  ストレージ、１２２  システムプログラム、１２４  ユーザプログラム、１２６  コンフィギュレーション、１３０  通信回路、１３２  バッファ、１３４  入力データ、１３５  出力データ、１４０，３１２  コントローラ、１６０  高精度タイマ、２００  機能ユニット、２１０  通信処理部、３００  サポート装置、３０１  第１推移線、３０２  第２推移線、３０３  第３推移線、３０４  第４推移線、３０５  記録媒体、３０６  主記憶装置、３０８  二次記憶装置、３１０  表示部、３１４  ローカルネットワークコントローラ、３１５  光学ドライブ、３１６  入力部、３２０  バス、３２２  開発プログラム、３２４  パラメータ設定ツール、１００１，１００２，１１０１，１１０２  実測値、１００３，１１０３  平均線、ＦＢ０，ＦＢ１，ＦＢ２  ファンクションブロック、ＩＮ０，ＩＮ１  入力要素、ＯＵＴ０，ＯＵＴ１，ＯＵＴ２  出力要素、Ｔａ，Ｔｂ  周期、Ｔ１，Ｔ２  制御周期、Ｔ１１  第１転送時間、Ｔ１２  第２転送時間。
【図１】
2020088479.tif 000003
【図２】
2020088479.tif 000004
【図３】
2020088479.tif 000005
【図４】
2020088479.tif 000006
【図５】
2020088479.tif 000007
【図６】
2020088479.tif 000008
【図７】
2020088479.tif 000009
【図８】
2020088479.tif 000010
【図９】
2020088479.tif 000011
【図１０】
2020088479.tif 000012
【図１１】
2020088479.tif 000013
【図１２】
2020088479.tif 000014
【図１３】
2020088479.tif 000015
【図１４】
2020088479.tif 000016
【図１５】
2020088479.tif 000017