(57)【要約】【課題】異なる通信線を介してそれぞれ演算装置に接続された複数の機能ユニットの間で、それぞれの信号が出力されるタイミングを同期させることのできる新たな構成を提供する。【解決手段】制御システムを構成する演算装置が提供される。演算装置は、制御システムにおける時刻を管理するマスタクロックと、第１の通信線を介して第１の機能ユニットとの間でデータを送受信する第１の通信回路と、第２の通信線を介して第２の機能ユニットとの間でデータを送受信する第２の通信回路と、第１の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第１のタイミングを第１の機能ユニットへ指示するとともに、第２の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第２のタイミングを第２の機能ユニットへ指示する、タイミング指示手段とを含む。【選択図】図８
2018063612.tif 000002
【特許請求の範囲】
【請求項１】
制御システムを構成する演算装置であって、
前記制御システムにおける時刻を管理するマスタクロックと、
第１の通信線を介して第１の機能ユニットとの間でデータを送受信する第１の通信回路とを備え、前記第１の機能ユニットは、前記マスタクロックと同期される第１のクロックを有しており、
第２の通信線を介して第２の機能ユニットとの間でデータを送受信する第２の通信回路を備え、前記第２の機能ユニットは、前記マスタクロックと同期される第２のクロックを有しており、
前記第１の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第１のタイミングを前記第１の機能ユニットへ指示するとともに、前記第２の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第２のタイミングを前記第２の機能ユニットへ指示する、タイミング指示手段を備え、前記第１および第２のタイミングは、前記マスタクロックが管理する時刻を基準として定義される、演算装置。
【請求項２】
前記第１の通信回路に対して出力データの送信が要求されてから当該出力データに対応する信号が前記第１の機能ユニットにおいて出力可能になるまでに要する第１の遅れ時間と、前記第２の通信回路に対して出力データの送信が要求されてから当該出力データに対応する信号が前記第２の機能ユニットにおいて出力可能になるまでに要する第２の遅れ時間とを算出する算出手段をさらに備える、請求項１に記載の演算装置。
【請求項３】
前記第１の遅れ時間の最大値および前記第２の遅れ時間の最大値に基づいて、前記制御システムに含まれる機能ユニットが信号を出力する同期タイミングを決定する同期タイミング決定手段をさらに備え、
前記同期タイミング決定手段は、決定された同期タイミングに基づいて、前記第１および第２のタイミングを決定する、請求項２に記載の演算装置。
【請求項４】
前記算出手段は、
前記第１の通信回路に対して出力データの送信が要求されてから前記第１の通信線上にデータが送出されるまでに要する時間と、
前記第２の通信回路に対して出力データの送信が要求されてから前記第２の通信線上にデータが送出されるまでに要する時間と、
前記第１の通信線上に送出されたデータが前記第１の機能ユニットまで転送されるのに要する時間と、
前記第２の通信線上に送出されたデータが前記第２の機能ユニットまで転送されるのに要する時間と、
前記第１の機能ユニットが出力データを受信してから当該受信データに対応する信号が出力可能になるまでに要する時間と、
前記第２の機能ユニットが出力データを受信してから当該受信データに対応する信号が出力可能になるまでに要する時間とのうち、少なくとも一部を考慮して前記第１の遅れ時間および前記第２の遅れ時間を算出する、請求項１〜３のいずれか１項に記載の演算装置。
【請求項５】
前記タイミング指示手段は、前記演算装置に接続された外部装置から前記第１のタイミングおよび前記第２のタイミングを取得する、請求項１に記載の演算装置。
【請求項６】
プログラムを実行するプロセッサと、
前記プロセッサに接続され、前記第１の通信回路および前記第２の通信回路に対して出力データの送信を要求する通信起動回路とをさらに備える、請求項１〜５のいずれか１項に記載の演算装置。
【請求項７】
前記通信起動回路は、ＦＰＧＡまたはＡＳＩＣを用いて実装される、請求項６に記載の演算装置。
【請求項８】
制御システムであって、
前記制御システムにおける時刻を管理するマスタクロックを有する演算装置と、
前記演算装置と第１の通信線を介して接続される第１の機能ユニットとを備え、前記第１の機能ユニットは、前記マスタクロックと同期される第１のクロックを有しており、
前記演算装置と第２の通信線を介して接続される中継装置と、
前記中継装置と第３の通信線を介して接続される第２の機能ユニットとを備え、前記第２の機能ユニットは、前記マスタクロックと同期される第２のクロックを有しており、
前記演算装置は、前記第１の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第１のタイミングを前記第１の機能ユニットへ指示するとともに、前記第２の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第２のタイミングを前記第２の機能ユニットへ指示する、タイミング指示手段を備え、前記第１および第２のタイミングは、前記マスタクロックが管理する時刻を基準として定義される、制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能ユニットを含む制御システムおよびその制御システムを構成する演算装置に関する。
【背景技術】
【０００２】
様々なＦＡ（Factory Automation）を実現するための主たるコンポーネントとして、ＰＬＣ（プログラマブルコントローラ）などの制御装置が普及している。このような制御装置は、１または複数の機能ユニットとの間で通信線を介してデータを遣り取りする。
【０００３】
複数の機能ユニットが通信線を介して接続される場合、データが通信線を伝送することによる遅延が生じる。このような遅延の大きさは機能ユニットが接続されている位置に応じてばらつく。このような遅延時間のばらつきに依存して、機能ユニットが入力データを取得する、および、出力データを出力するタイミングもばらつく可能性がある。
【０００４】
このような課題に対して、特開２０１４−１２０８８４号公報（特許文献１）は、マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムにおける同期タイミングを容易に決定できる環境を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１２０８８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特開２０１４−１２０８８４号公報（特許文献１）に開示される制御システムは、マスタ装置とネットワークを介して接続されるスレーブ装置に接続される機能ユニットの間での同期を考慮したものであり、マスタ装置であるＰＬＣの内部バスに接続されている機能ユニットと、スレーブ装置に接続される機能ユニットとの間で同期をとる方法については開示されていない。
【０００７】
本発明は、異なる通信線を介してそれぞれ演算装置に接続された複数の機能ユニットの間で、それぞれの信号が出力されるタイミングを同期させることのできる新たな構成を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のある局面に従えば、制御システムを構成する演算装置が提供される。演算装置は、制御システムにおける時刻を管理するマスタクロックと、第１の通信線を介して第１の機能ユニットとの間でデータを送受信する第１の通信回路とを含む。第１の機能ユニットは、マスタクロックと同期される第１のクロックを有している。演算装置は、第２の通信線を介して第２の機能ユニットとの間でデータを送受信する第２の通信回路を含む。第２の機能ユニットは、マスタクロックと同期される第２のクロックを有している。演算装置は、第１の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第１のタイミングを第１の機能ユニットへ指示するとともに、第２の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第２のタイミングを第２の機能ユニットへ指示する、タイミング指示手段を含む。第１および第２のタイミングは、マスタクロックが管理する時刻を基準として定義される。
【０００９】
好ましくは、演算装置は、第１の通信回路に対して出力データの送信が要求されてから当該出力データに対応する信号が第１の機能ユニットにおいて出力可能になるまでに要する第１の遅れ時間と、第２の通信回路に対して出力データの送信が要求されてから当該出力データに対応する信号が第２の機能ユニットにおいて出力可能になるまでに要する第２の遅れ時間とを算出する算出手段をさらに含む。
【００１０】
好ましくは、演算装置は、第１の遅れ時間の最大値および第２の遅れ時間の最大値に基づいて、制御システムに含まれる機能ユニットが信号を出力する同期タイミングを決定する同期タイミング決定手段をさらに含む。同期タイミング決定手段は、決定された同期タイミングに基づいて、第１および第２のタイミングを決定する。
【００１１】
好ましくは、算出手段は、（１）第１の通信回路に対して出力データの送信が要求されてから第１の通信線上にデータが送出されるまでに要する時間と、（２）第２の通信回路に対して出力データの送信が要求されてから第２の通信線上にデータが送出されるまでに要する時間と、（３）第１の通信線上に送出されたデータが第１の機能ユニットまで転送されるのに要する時間と、（４）第２の通信線上に送出されたデータが第２の機能ユニットまで転送されるのに要する時間と、（５）第１の機能ユニットが出力データを受信してから当該受信データに対応する信号が出力可能になるまでに要する時間と、（６）第２の機能ユニットが出力データを受信してから当該受信データに対応する信号が出力可能になるまでに要する時間とのうち、少なくとも一部を考慮して第１の遅れ時間および第２の遅れ時間を算出する。
【００１２】
好ましくは、タイミング指示手段は、演算装置に接続された外部装置から第１のタイミングおよび第２のタイミングを取得する。
【００１３】
好ましくは、演算装置は、プログラムを実行するプロセッサと、プロセッサに接続され、第１の通信回路および第２の通信回路に対して出力データの送信を要求する通信起動回路とをさらに含む。
【００１４】
好ましくは、通信起動回路は、ＦＰＧＡまたはＡＳＩＣを用いて実装される。
本発明の別の局面に従う制御システムは、制御システムにおける時刻を管理するマスタクロックを有する演算装置と、演算装置と第１の通信線を介して接続される第１の機能ユニットとを含む。第１の機能ユニットは、マスタクロックと同期される第１のクロックを有している。制御システムは、演算装置と第２の通信線を介して接続される中継装置と、中継装置と第３の通信線を介して接続される第２の機能ユニットとを含む。第２の機能ユニットは、マスタクロックと同期される第２のクロックを有している。演算装置は、第１の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第１のタイミングを第１の機能ユニットへ指示するとともに、第２の機能ユニットにおいて受信された出力データに対応する信号を出力するための処理を開始すべき第２のタイミングを第２の機能ユニットへ指示する、タイミング指示手段を含む。第１および第２のタイミングは、マスタクロックが管理する時刻を基準として定義される。
【発明の効果】
【００１５】
本発明に従えば、異なる通信線を介してそれぞれ演算装置に接続された複数の機能ユニットの間で、それぞれの信号が出力されるタイミングを同期させることができる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に係る制御システムが提供する出力タイミング同期機能について説明するための模式図である。
【図２】本実施の形態に係る制御システムの要部構成を示す模式図である。
【図３】本実施の形態に係る制御システムにおいて出力信号を出力開始または更新するために必要な処理を説明するための図である。
【図４】本実施の形態に係る制御システムにおいて用いられるＩ／Ｏリフレッシュフレームのデータ構造の一例を示す模式図である。
【図５】本実施の形態に係る制御システムが提供する出力タイミング同期機能に係る各部の処理を示すタイミングチャートである。
【図６】本実施の形態に係る制御システムが提供する出力タイミング同期機能に係る最大遅れ時間の算出手順を説明するための図である。
【図７】本実施の形態に係る制御システムに分散配置されるクロックに着目した模式図である。
【図８】本実施の形態に係る制御システムにおいて出力同期タイミングを設定するための構成例を示す模式図である。
【図９】本実施の形態に係る制御システムにおける出力タイミング同期機能に係る処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１８】
以下の説明においては、「制御装置」の典型例として、ＰＬＣ（プラグラマブルコントローラ）を具体例として説明するが、ＰＬＣとの名称に限定されることなく、本明細書に開示された技術的思想は、任意の制御装置に対して適用可能である。また、ＰＬＣ（制御装置）を含むシステム全体を、以下では「制御システム」とも称する。
【００１９】
＜Ａ．概要＞
まず、本実施の形態に係る制御システムが提供する出力タイミング同期機能について説明する。図１は、本実施の形態に係る制御システム１が提供する出力タイミング同期機能について説明するための模式図である。
【００２０】
図１（Ａ）を参照して、一例として、制御システム１は、ＰＬＣ２と、１または複数のリモートＩ／Ｏ装置３とから構成される。ＰＬＣ２において、自装置に装着される１または複数の機能ユニットの間は、図示しない内部ネットワークまたは内部バスを介して接続されている。リモートＩ／Ｏ装置３の各々についても、自装置に装着される１または複数の機能ユニットの間は、図示しないネットワークまたはバスを介して接続されている。ＰＬＣ２と１または複数のリモートＩ／Ｏ装置３とはネットワークを介して接続されている。
【００２１】
以下では、ＰＬＣ２またはリモートＩ／Ｏ装置３の各装置において、各装置に装着される機能ユニットとの間でデータを遣り取りする通信線（典型的には、内部ネットワークまたは内部バス）を「ローカルネットワーク」と称し、ＰＬＣ２と１または複数のリモートＩ／Ｏ装置３との間でデータを遣り取りする通信線を「リモートネットワーク」と称す。「ローカルネットワーク」および「リモートネットワーク」との名称は、説明の便宜上のものであり、本発明の技術的範囲はこれらの名称に限定されるものではない。すなわち、本明細書において、「通信線」は、何らかのプロトコルに従って装置間またはユニット間でデータを送受信するためのフレームワーク全般を包含する。「通信線」は、パラレル通信方式およびシリアル通信方式のいずれであってもよく、また、バスおよびネットワークのいずれであってもよい。
【００２２】
本明細書において、「機能ユニット」は、制御システムによる様々な機械や設備の制御を実現するために必要な各種機能を提供するものを包含する。機能ユニットの一例としては、Ｉ／Ｏユニット、通信ユニット、温度調整ユニット、ＩＤ（Identifier）センサユニットなどが挙げられる。
【００２３】
Ｉ／Ｏユニットは、例えば、デジタル入力（ＤＩ）ユニット、デジタル出力（ＤＯ）ユニット、アナログ出力（ＡＩ）ユニット、アナログ出力（ＡＯ）ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどを包含し得る。
【００２４】
温度調整ユニットは、温度計測値などを取得するアナログ入力機能と、制御指令などを出力するアナログ出力機能と、ＰＩＤ（Proportional Integral Differential）制御機能とを含む制御装置を包含し得る。ＩＤセンサユニットは、ＲＦＩＤ（Radio Frequency IDentifier）などから非接触でデータを読出す装置を包含し得る。
【００２５】
図１（Ａ）に示す制御システム１において、ＰＬＣ２に装着される機能ユニットから外部出力される出力信号ＯＵＴ１と、ＰＬＣ２とリモートネットワーク５を介して接続されている２つのリモートＩ／Ｏ装置３にそれぞれ装着される機能ユニットからそれぞれ外部出力される出力信号ＯＵＴ２およびＯＵＴ３とについて考える。出力信号ＯＵＴ１，ＯＵＴ２，ＯＵＴ３の各値は、対応する機能ユニットに与えられるデータ（以下、「出力データ」とも称す。）の値を反映するものである。すなわち、出力データは、各機能ユニット１５０から制御対象の機械や設備などへ外部出力される信号を定義する指令値に相当する。
【００２６】
図１（Ｂ）には、ＰＬＣ２で実行されるユーザプログラムの一例を示す。図１（Ｂ）に示すユーザプログラムは、任意の機能ユニットが収集したフィールドなどからの信号（以下、「入力データ」とも称す。）ＩＮ１を条件として、３つの出力信号ＯＵＴ１，ＯＵＴ２，ＯＵＴ３を並列的に活性化する命令を含む。
【００２７】
図１（Ｃ）のタイムチャートは、図１（Ｂ）に示すユーザプログラムに対する出力タイミング同期機能による結果の一例を示す。このタイムチャートに示すように、ＰＬＣ２に装着された機能ユニットからの出力信号ＯＵＴ１およびリモートＩ／Ｏ装置３に装着されたそれぞれの機能ユニットからの出力信号ＯＵＴ２およびＯＵＴ３のいずれもが、同一のタイミングｔ１において、オンからオフに値が変化している。
【００２８】
このように、本実施の形態に係る出力タイミング同期機能は、制御システム１を構成する複数の機能ユニットがいずれの位置に装着されているとしても、指定された出力信号を指定されたタイミングで一斉に出力開始または更新する機能を提供する。
【００２９】
なお、図１には、リモートネットワーク５を介して接続されるリモートＩ／Ｏ装置３に機能ユニットが装着される構成を例示するが、リモートネットワーク５に、個々の機能ユニットが直接的に装着される構成にも適用できる。また、機能ユニットとして、通信ユニットを採用することで、さらに別の下位ネットワークを構成することもできる。このように構成される下位ネットワークに接続される機能ユニットに対しても、出力タイミング同期機能を適用可能である。
【００３０】
＜Ｂ．装置構成＞
次に、本実施の形態に係る制御システム１の装置構成について説明する。図２は、本実施の形態に係る制御システム１の要部構成を示す模式図である。
【００３１】
図２を参照して、本実施の形態に係るＰＬＣ２は、典型的には、ＣＰＵユニット１００と、１または複数の機能ユニット１５０とから構成される。本実施の形態に係るＰＬＣ２は、リモートＩ／Ｏ装置３は、通信カプラユニット２００と、１または複数の機能ユニット１５０とから構成される。
【００３２】
（ｂ１：ＣＰＵユニット１００）
ＣＰＵユニット１００は、ＰＬＣ２を含む制御システム１を構成する一要素であり、制御システム１での処理を制御する演算装置に相当する。ＣＰＵユニット１００と１または複数の機能ユニット１５０との間は、通信線の一例であるローカルネットワーク４を介して接続されている。
【００３３】
ＣＰＵユニット１００は、ローカルマスタ回路１１０と、リモートマスタ回路１２０と、演算処理部１３０と、通信起動回路１４０とを含む。
【００３４】
ローカルマスタ回路１１０は、通信線の一例であるローカルネットワーク４を介して、ＣＰＵユニット１００に装着される１または複数の機能ユニット１５０（第１の機能ユニット）とデータを送受信する通信回路に相当する。より具体的には、ローカルマスタ回路１１０は、１または複数の機能ユニット１５０が収集または生成したデータ（入力データ）を受信し、ＣＰＵユニット１００により取得または生成されたデータ（出力データ）を１または複数の機能ユニット１５０へ送信する。
【００３５】
ローカルマスタ回路１１０は、ローカルネットワーク４と物理的に接続され、通信起動回路１４０からの指令に従って電気信号を生成して、ローカルネットワーク４上に通信フレームを送信するとともに、ローカルネットワーク４上を伝送される通信フレームを受信して、通信起動回路１４０を介して演算処理部１３０へ出力する。ローカルマスタ回路１１０は、ローカルネットワーク４を介したデータの遣り取りに加えて、ローカルネットワーク４上を転送される通信フレームの到着時間を保証するための時間管理および送受信タイミング管理などを行う機能を有している。
【００３６】
ローカルネットワーク４上では、予め定められたデータ構造を有する通信フレームが所定周期で順次転送されてもよく、ＣＰＵユニット１００および各機能ユニット１５０は、順次転送される通信フレームに対して、指定されたデータを指定された領域に書込み、および、必要なデータを対応する領域から読出す。
【００３７】
ローカルネットワーク４は、一種の定周期ネットワークが採用されてもよく、ＣＰＵユニット１００のローカルマスタ回路１１０の制御下において、通信フレームの送信および伝送が所定周期毎に繰返される。
【００３８】
このような定周期ネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの公知のプロトコルに係るネットワークを採用してもよい。
【００３９】
より具体的には、ローカルマスタ回路１１０は、送受信ポート１１２と、送受信コントローラ１１６と、クロック１１８とを含む。
【００４０】
送受信ポート１１２は、ローカルネットワーク４と物理的に接続される部位であり、送受信コントローラ１１６からの指令に従って電気信号を生成して、ローカルネットワーク４上に送信するとともに、ローカルネットワーク４上に生じる電気信号をデジタル信号に変換して送受信コントローラ１１６へ出力する。
【００４１】
送受信コントローラ１１６は、ローカルネットワーク４上を転送される通信フレームの生成および受信に関する処理を行う。
【００４２】
クロック１１８は、送受信コントローラ１１６から通信フレームの送信などを指示するタイミングの基準となるパルスを発生する。クロック１１８としては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタ（Free Run Counter）が用いられる。フリーランカウンタが出力するカウンタ値をある時点からの経過時間として扱うことで、現在時刻を計算でき、これによってタイマとして機能させることができる。
【００４３】
リモートマスタ回路１２０は、通信線の一例であるリモートネットワーク５を介して、リモートＩ／Ｏ装置３に含まれる１または複数の機能ユニット１５０（第２の機能ユニット）とデータを送受信する。より具体的には、リモートマスタ回路１２０は、リモートＩ／Ｏ装置３が収集または生成したデータ（入力データ）を受信し、ＣＰＵユニット１００により取得または生成されたデータ（出力データ）をリモートＩ／Ｏ装置３へ送信する。
【００４４】
リモートマスタ回路１２０は、リモートネットワーク５と物理的に接続され、通信起動回路１４０からの指令に従って電気信号を生成して、リモートネットワーク５上に通信フレームを送信するとともに、リモートネットワーク５上を伝送される通信フレームを受信して、通信起動回路１４０を介して演算処理部１３０へ出力する。リモートマスタ回路１２０は、リモートネットワーク５を介したデータの遣り取りに加えて、リモートネットワーク５上を転送される通信フレームの到着時間を保証するための時間管理および送受信タイミング管理などを行う機能を有している。
【００４５】
リモートネットワーク５上では、予め定められたデータ構造を有する通信フレームが所定周期で順次転送されてもよく、各リモートＩ／Ｏ装置３は、順次転送される通信フレームに対して、指定されたデータを指定された領域に書込み、および、必要なデータを対応する領域から読出す。
【００４６】
リモートネットワーク５は、一種の定周期ネットワークが採用されてもよく、ＣＰＵユニット１００のリモートマスタ回路１２０の制御下において、通信フレームの送信および伝送が所定周期毎に繰返される。
【００４７】
このような定周期ネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの公知のプロトコルに係るネットワークを採用してもよい。
【００４８】
より具体的には、リモートマスタ回路１２０は、送受信ポート１２２と、送受信コントローラ１２６と、クロック１２８とを含む。
【００４９】
送受信ポート１２２は、リモートネットワーク５と物理的に接続される部位であり、送受信コントローラ１２６からの指令に従って電気信号を生成して、リモートネットワーク５上に送信するとともに、リモートネットワーク５上に生じる電気信号をデジタル信号に変換して送受信コントローラ１２６へ出力する。
【００５０】
送受信コントローラ１２６は、リモートネットワーク５上を転送される通信フレームの生成および受信に関する処理を行う。
【００５１】
クロック１２８は、送受信コントローラ１２６から通信フレームの送信などを指示するタイミングの基準となるクロックを発生する。クロック１２８としては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタが用いられる。
【００５２】
演算処理部１３０は、プロセッサ１３２およびメモリ１３４を含む。説明の便宜上、図１には、１つのプロセッサ１３２のみを描くが、複数のプロセッサを実装してもよい。なお、各プロセッサは、複数のコアを有していてもよい。
【００５３】
メモリ１３４は、プロセッサ１３２でのプログラムの実行に必要なワーク領域を提供する部位（典型的には、揮発性メモリ）と、プロセッサ１３２で実行されるプログラム自体を格納する部位（典型的には、不揮発性メモリ）とを含む。揮発性メモリとしては、ＤＲＡＭ（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）で構成してもよい。あるいは、演算処理部１３０の全体を単一のチップ上に実装するとともに、ローカルマスタ回路１１０、リモートマスタ回路１２０、および、通信起動回路１４０をそれぞれ別のチップ上に実装してもよい。このような実装形態については、要求される性能やコストなどを考慮して適宜選択される。
【００５８】
（ｂ２：機能ユニット１５０）
機能ユニット１５０は、制御システム１による様々な機械や設備の制御を実現するために必要な各種機能を提供する。より具体的には、機能ユニット１５０の各々は、機能モジュール１５６と、Ｉ／Ｏインターフェイス１５８と、通信回路１６０とを含む。
【００５９】
機能モジュール１５６は、各機能ユニット１５０の主たる処理を実行する部分であり、制御対象の機械や設備などからのフィールド情報の収集や、制御対象の機械や設備などへの指令信号の出力などを司る。
【００６０】
Ｉ／Ｏインターフェイス１５８は、制御対象の機械や設備などとの間の信号の遣り取りを仲介する回路である。
【００６１】
通信回路１６０は、ローカルネットワーク４を順次転送される通信フレームを処理する。すなわち、通信回路１６０は、ローカルネットワーク４を介して何らかの通信フレームを受信すると、当該受信した通信フレームに対するデータ書込みおよび／またはデータ読出しを行った後に、ローカルネットワーク４上において次に位置する機能ユニット１５０へ当該通信フレームを送信する。通信回路１６０は、このようなフレームリレーの機能を提供する。
【００６２】
より具体的には、通信回路１６０は、送受信ポート１６２，１６４と、送受信コントローラ１６６と、クロック１６８とを含む。
【００６３】
送受信ポート１６２，１６４は、ローカルネットワーク４と物理的に接続される部位であり、送受信コントローラ１６６からの指令に従って、ローカルネットワーク４上を伝送される通信フレームの受信および再生などの処理を行うことで、通信フレームの順次転送を実現する。
【００６４】
送受信コントローラ１６６は、ローカルネットワーク４上を転送される通信フレームに対するデータ書込みおよび／またはデータ読出しを行う。
【００６５】
クロック１６８は、送受信コントローラ１６６による指令出力や機能モジュール１５６での処理実行などのタイミングの基準となるクロックを発生する。クロック１６８としては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタが用いられる。
【００６６】
（ｂ３：通信カプラユニット２００）
通信カプラユニット２００は、ＣＰＵユニット１００と１または複数の機能ユニット１５０との間のデータの遣り取りを行う中継装置に相当する。通信カプラユニット２００と１または複数の機能ユニット１５０との間は、通信線の一例であるローカルネットワーク６を介して接続されている。また、通信カプラユニット２００とＣＰＵユニット１００との間は、通信線の一例であるリモートネットワーク５を介して接続されている。
【００６７】
ローカルネットワーク６は、上述のＣＰＵユニット１００のローカルネットワーク４と実質的に同一であるので、ここではその詳細な説明は繰返さない。但し、ローカルネットワーク４とローカルネットワーク６とに対して同一のプロトコルを採用する必要はなく、それぞれの装置に応じたプロトコルを採用すればよい。
【００６８】
通信カプラユニット２００は、ローカルマスタ回路２１０と、リモートスレーブ回路２２０とを含む。
【００６９】
ローカルマスタ回路２１０は、通信線の一例であるローカルネットワーク６を介して、通信カプラユニット２００に装着される１または複数の機能ユニット１５０とデータを遣り取りする。より具体的には、ローカルマスタ回路２１０は、１または複数の機能ユニット１５０が収集または生成したデータ（入力データ）を受信し、ＣＰＵユニット１００からリモートネットワーク５を介して受信したデータ（出力データ）を１または複数の機能ユニット１５０へ送信する。
【００７０】
ローカルマスタ回路２１０は、ローカルネットワーク６と物理的に接続され、リモートスレーブ回路２２０からの指令に従って電気信号を生成して、ローカルネットワーク６上に通信フレームを送信するとともに、ローカルネットワーク６上を伝送される通信フレームを受信して、リモートスレーブ回路２２０へ出力する。ローカルマスタ回路２１０は、ローカルネットワーク６を介したデータの遣り取りに加えて、ローカルネットワーク６上を転送される通信フレームの到着時間を保証するための時間管理および送受信タイミング管理などを行う機能を有している。
【００７１】
より具体的には、ローカルマスタ回路２１０は、送受信ポート２１２と、送受信コントローラ２１６と、クロック２１８とを含む。
【００７２】
送受信ポート２１２は、ローカルネットワーク６と物理的に接続される部位であり、送受信コントローラ２１６からの指令に従って電気信号を生成して、ローカルネットワーク６上に送信するとともに、ローカルネットワーク６上に生じる電気信号をデジタル信号に変換して送受信コントローラ２１６へ出力する。
【００７３】
送受信コントローラ２１６は、ローカルネットワーク６上を転送される通信フレームの生成および受信に関する処理を行う。
【００７４】
クロック２１８は、送受信コントローラ２１６から通信フレームの送信などを指示するタイミングの基準となるクロックを発生する。クロック２１８としては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタが用いられる。
【００７５】
リモートスレーブ回路２２０は、通信線の一例であるリモートネットワーク５を介して、ＣＰＵユニット１００または他の通信カプラユニット２００との間でデータを遣り取りする。より具体的には、リモートスレーブ回路２２０は、ローカルマスタ回路２１０が受信する機能ユニット１５０からの通信フレームに含まれる入力データをＣＰＵユニット１００へ送信し、ＣＰＵユニット１００から受信した通信フレームに含まれる出力データを、ローカルマスタ回路２１０を介してそれぞれの機能ユニット１５０へ送信する。
【００７６】
リモートスレーブ回路２２０は、リモートネットワーク５上を介して受信した通信フレームの内容に従って、ローカルマスタ回路２１０へ必要な起動指令を与える。リモートスレーブ回路２２０は、ローカルネットワーク６上を伝送される通信フレームの送受信に係る処理に加えて、ローカルネットワーク６上を伝送される通信フレームの送信タイミングを管理する処理も実行する。
【００７７】
より具体的には、リモートスレーブ回路２２０は、送受信ポート２２２，２２４と、送受信コントローラ２２６と、クロック２２８とを含む。
【００７８】
送受信ポート２２２，２２４は、リモートネットワーク５と物理的に接続される部位であり、送受信コントローラ２２６からの指令に従って、リモートネットワーク５上を伝送される通信フレームの受信および再生などの処理を行うことで、通信フレームの順次転送を実現する。
【００７９】
送受信コントローラ２２６は、リモートネットワーク５上を転送される通信フレームに対するデータ書込みおよび／またはデータ読出しを行う。
【００８０】
クロック２２８は、リモートネットワーク５上を転送される通信フレームに対する処理や、ローカルネットワーク６上を転送される通信フレームの送信といったタイミングの基準となるクロックを発生する。クロック２２８としては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタが用いられる。
【００８１】
なお、通信カプラユニット２００に装着される機能ユニット１５０については、上述のＣＰＵユニット１００に装着される機能ユニット１５０と実質的に同一であるので、ここではその詳細な説明は繰返さない。
【００８２】
＜Ｃ．機能ユニットへの出力データの送信＞
次に、本実施の形態に係る制御システム１においてそれぞれの機能ユニット１５０に対して出力データを送信するために必要な処理について説明する。図３は、本実施の形態に係る制御システム１において出力信号を出力開始または更新するために必要な処理を説明するための図である。
【００８３】
図３を参照して、ＣＰＵユニット１００に装着される機能ユニット１５０および通信カプラユニット２００に装着される機能ユニット１５０のそれぞれから出力信号を出力開始または更新する際の処理について説明する。
【００８４】
まず、ＣＰＵユニット１００（演算処理部１３０）において、それぞれの機能ユニット１５０へ向けられる出力データが生成され、その生成されたデータを通信フレームに格納して送信するためのパック処理が実行される（（１）パック処理）。
【００８５】
ＣＰＵユニット１００に装着された機能ユニット１５０からの出力信号を定義する出力データについては、対象の出力データが格納された通信フレームがローカルネットワーク４を介して対象の機能ユニット１５０へ伝送される（（２）通信フレーム伝送）。そして、対象の機能ユニット１５０においては、受信した通信フレームから必要な出力データを読出すなどの処理が実行されるとともに、読出された出力データが現実の信号として外部出力される（（３）出力処理）。
【００８６】
一方、通信カプラユニット２００に装着された機能ユニット１５０からの出力信号を定義する出力データについては、対象の出力データが格納された通信フレームがリモートネットワーク５を介して対象の機能ユニット１５０が装着された通信カプラユニット２００へ伝送される（（４）通信フレーム伝送）。通信フレームを受信した通信カプラユニット２００は、受信した通信フレームから必要な出力データを読出すなどの処理を実行した上で、読出した出力データを新たな通信フレームに格納して送信する（（５）出力データ処理）。この新たな通信フレームは、ローカルネットワーク６を介して対象の機能ユニット１５０へ伝送される（（６）通信フレーム伝送）。そして、対象の機能ユニット１５０においては、受信した通信フレームから必要な出力データを読出すなどの処理が実行されるとともに、読出された出力データが現実の信号として外部出力される（（７）出力処理）。
【００８７】
このように、ＣＰＵユニット１００に装着される機能ユニット１５０に対しては、ＣＰＵユニット１００にて生成した通信フレームをローカルネットワーク４にてそのまま送信すればよいが、通信カプラユニット２００に装着される機能ユニット１５０に対しては、ＣＰＵユニット１００にて生成した通信フレームをリモートネットワーク５にて対応する通信カプラユニット２００へ一旦送信した上で、その通信カプラユニット２００にて新たに通信フレームを生成した上でローカルネットワーク６にて対象の機能ユニット１５０へ送信する必要がある。すなわち、通信カプラユニット２００に装着された機能ユニット１５０については、２段階のネットワークを経由する必要があり、ＣＰＵユニット１００に装着された機能ユニット１５０に対して出力データを送信する場合に比較して、より多くの時間を要するとともに、途中の処理も煩雑化する。
【００８８】
＜Ｄ．通信フレームの例＞
次に、本実施の形態に係る制御システム１において用いられる通信フレームの一例について説明する。本実施の形態においては、実装例として、Ｉ／Ｏリフレッシュを行うための通信フレームが用いられる。Ｉ／Ｏリフレッシュとは、ＣＰＵユニット１００が保持する入力データの値を対応する機能ユニット１５０が収集した最新の値に更新する処理（入力リフレッシュ）と、ＣＰＵユニット１００で算出された出力データの値を対応する機能ユニット１５０の出力値として反映する処理（出力リフレッシュ）とを包含する概念である。
【００８９】
このような通信フレームとして、Ｉ／Ｏリフレッシュフレームが採用される。Ｉ／Ｏリフレッシュフレームは、入力リフレッシュに必要な入力データおよび出力リフレッシュに必要な出力データの両方を格納可能に構成される。なお、入力リフレッシュおよび出力リフレッシュをそれぞれ別々に実行するように実装してもよい。その場合には、入力データおよび出力データの一方のみをそれぞれ格納するように構成した通信フレームが採用される。
【００９０】
図４は、本実施の形態に係る制御システム１において用いられるＩ／Ｏリフレッシュフレームのデータ構造の一例を示す模式図である。図４を参照して、Ｉ／Ｏリフレッシュフレームは、フレーム種別や宛先などを格納するためのヘッダ部と、データを格納する本体部とからなる。
【００９１】
ヘッダ部に格納されるフレーム種別としては、通信フレームの種類を特定するための識別情報が用いられてもよく、例えば、ユニキャスト、マルチキャスト、ブロードキャストのいずれであるかを示す識別情報が用いられる。宛先としては、送信先の機能ユニット１５０や通信カプラユニット２００の識別情報などが用いられる。
【００９２】
本体部には、入力データの領域および出力データの領域が規定されており、それぞれの領域は、Ｉ／Ｏリフレッシュフレームの転送経路に存在する機能ユニット１５０または通信カプラユニット２００の全部または一部のそれぞれに対応付けられている。
【００９３】
機能ユニット１５０または通信カプラユニット２００の各々は、Ｉ／Ｏリフレッシュフレームを受信すると、自ユニットに割当てられている領域に格納されている出力データを読出すとともに、自ユニットが収集または生成した入力データを自ユニットに割当てられている領域に書込む。このような出力データの読出しおよび入力データの書込みが各ユニットにおいて実行されることで、Ｉ／Ｏリフレッシュを実現できる。
【００９４】
図４には、１または複数の機能ユニット１５０または通信カプラユニット２００からの入力データ、および、１または複数の機能ユニット１５０または通信カプラユニット２００への出力データを単一の通信フレームに格納したデータ構造の例を示したが、いずれか一方のデータのみを格納する通信フレームを採用してもよい。この場合、例えば、入力データ用の通信フレームと、出力データ用の通信フレームとをそれぞれ用意してもよい。また、Ｉ／Ｏリフレッシュの対象となる入力データおよび出力データは、予めコンフィグレーションされており、機能ユニット１５０が収集したデータの全部がＣＰＵユニット１００へ送信されない場合もある。
【００９５】
＜Ｅ．制御システムにおける各ユニットの処理タイミング＞
次に、本実施の形態に係る制御システム１が提供する出力タイミング同期機能に係る処理タイミングについて説明する。図５は、本実施の形態に係る制御システム１が提供する出力タイミング同期機能に係る各部の処理を示すタイミングチャートである。図５には、主として、出力リフレッシュに関する処理を示す。
【００９６】
図５を参照して、ＣＰＵユニット１００（演算処理部１３０のプロセッサ１３２）は、Ｉ／Ｏリフレッシュ処理の実行によって生成された出力データを送信するための前処理（ステップＳ１：スケジューラパック処理）、リモートネットワーク５により送信される通信フレームに出力データを格納するための前処理（ステップＳ２：出力データパック処理１）、および、ローカルネットワーク４により送信される通信フレームに出力データを格納するための前処理（ステップＳ３：出力データパック処理２）を順次実行する。これらの３つのパック処理は、図３に示す（１）パック処理に相当する。
【００９７】
出力データパック処理２（ステップＳ３）の実行完了のタイミングでローカルマスタ回路１１０（図２）に対して起動指令が与えられて、Ｉ／Ｏリフレッシュフレームである通信フレーム３０４がローカルネットワーク４へ送出される。
【００９８】
ローカルネットワーク４に接続されている機能ユニット１５０の各々は、ローカルネットワーク４上を順次転送される通信フレーム３０４の到着前に、ＣＰＵユニット１００へ送信すべき入力データの収集などを含む入力処理（ステップＳ４）を予め実行する。そして、機能ユニット１５０は、通信フレーム３０４を受信すると、予め用意していた入力データを当該受信した通信フレーム３０４に書込むとともに、当該受信した通信フレーム３０４から自ユニット宛ての出力データを読出す。そして、機能ユニット１５０の各々は、読出した出力データに対応する信号を外部出力する処理を含む出力処理を実行する（ステップＳ５）。
【００９９】
また、出力データパック処理１（ステップＳ２）の実行完了のタイミングでリモートマスタ回路１２０（図２）に対して起動指令が与えられて、Ｉ／Ｏリフレッシュフレームである通信フレーム３０５がリモートネットワーク５へ送出される。通信フレーム３０５が送信されたタイミングを「起動基準時刻Ｔｔ」と称する。通信フレーム３０５はリモートネットワーク５上を順次転送される。
【０１００】
通信カプラユニット２００は、リモートネットワーク５上を順次転送される通信フレーム３０５の到着前に、ＣＰＵユニット１００へ送信すべき入力データの収集などを含む入力データ処理（ステップＳ６）を予め実行する。そして、通信カプラユニット２００は、通信フレーム３０５を受信すると、予め用意していた入力データを当該受信した通信フレーム３０５に書込むとともに、当該受信した通信フレーム３０５から自ユニット宛ての出力データを読出す。
【０１０１】
続いて、ローカルマスタ回路２１０（図２）に対して起動指令が与えられて、出力データを含む通信フレーム３０６がローカルネットワーク６へ送出される。ローカルネットワーク６に接続されている機能ユニット１５０の各々は、ローカルネットワーク６上を順次転送される通信フレーム３０６を受信すると、当該受信した通信フレーム３０６から自ユニット宛ての出力データを読出す。そして、機能ユニット１５０の各々は、読出した出力データに対応する信号を外部出力する処理を含む出力処理を実行する（ステップＳ８）。
【０１０２】
図５に示すタイムチャートにおいて、ＣＰＵユニット１００に装着された機能ユニット１５０から出力データが出力可能になるタイミングは時刻Ｔｏｕｔ１となる。時刻Ｔｏｕｔ１は、各機能ユニット１５０が接続されている位置および各機能ユニット１５０の性能に応じて変化し得る。そこで、本実施の形態においては、ＣＰＵユニット１００に装着された各機能ユニット１５０について、ＣＰＵユニット１００において通信フレームを送出する指定がなされてから、当該通信フレームに含まれる出力データを出力可能な状態になるまでに要する遅れ時間がそれぞれ算出され、算出された遅れ時間のうち最大のもの（最大遅れ時間Ｄｍａｘ１）が決定される。
【０１０３】
同様に、通信カプラユニット２００に装着された機能ユニット１５０から出力データが出力可能になるタイミングは時刻Ｔｏｕｔ２となる。時刻Ｔｏｕｔ２は、各機能ユニット１５０が接続されているネットワークトポロジー上の位置および各機能ユニット１５０の性能に応じて変化し得る。そこで、本実施の形態においては、通信カプラユニット２００に装着された各機能ユニット１５０について、ＣＰＵユニット１００において通信フレームを送出する指定がなされてから、当該通信フレームに含まれる出力データを出力可能な状態になるまでに要する遅れ時間がそれぞれ算出され、算出された遅れ時間のうち最大のもの（最大遅れ時間Ｄｍａｘ２）が決定される。
【０１０４】
その上で、最大遅れ時間Ｄｍａｘ１および最大遅れ時間Ｄｍａｘ２のうちより長いものに対応する時刻を、制御システム１全体についての出力同期タイミングＴｏｕｔとして決定する。典型的には、起動基準時刻Ｔｔに最大遅れ時間Ｄｍａｘ１または最大遅れ時間Ｄｍａｘ２を加算した時刻が出力同期タイミングＴｏｕｔとなる。
【０１０５】
一例として、図５には、最大遅れ時間Ｄｍａｘ１＜最大遅れ時間Ｄｍａｘ２の例を示し、この例においては、時刻Ｔｏｕｔ２が出力同期タイミングＴｏｕｔとして設定されてもよい。
【０１０６】
このように、本実施の形態においては、ＣＰＵユニット１００から出力データの送信が要求された後、各機能ユニット１５０にて当該出力データに対応する信号が出力可能になるまでに要する最大遅れ時間を算出し、システム全体としての最大の遅れ時間を考慮した上で、出力同期タイミングを決定する。そして、各ユニットが保持する互いに同期されたクロックに対して、出力同期タイミングに応じたタイミングを設定することで、各機能ユニット１５０から出力データに対応する信号が一斉に外部出力される。
【０１０７】
以下、最大遅れ時間および出力同期タイミングの算出方法について説明するとともに、クロックの同期および出力同期タイミングの設定方法などについて説明する。
【０１０８】
＜Ｆ．最大遅れ時間および出力同期タイミングの算出方法＞
次に、最大遅れ時間および出力同期タイミングの算出方法について説明する。
【０１０９】
例えば、通信カプラユニット２００に装着された各機能ユニット１５０についての最大遅れ時間Ｄｍａｘ２は、各機能ユニット１５０が接続されているネットワークトポロジー上の位置、および、各機能ユニット１５０自体の性能に依存して定まる。典型的には、最大遅れ時間の算出には、以下の（１）〜（５）の時間要素の少なくとも一部が考慮される。
【０１１０】
（１）ＣＰＵユニット１００のリモートマスタ回路１２０に対して出力データの送信指令（起動指令）が与えられてからリモートネットワーク５上に当該出力データを含む通信フレームが送出されるまでに要する時間（リモートマスタ回路起動遅延時間）。
【０１１１】
（２）リモートネットワーク５上に送出された出力データを含む通信フレームがリモートマスタ回路１２０から対象の通信カプラユニット２００まで転送されるのに要する時間（リモートネットワーク伝送遅延時間）。
【０１１２】
（３）通信カプラユニット２００で受信された出力データを含む通信フレームが受信および処理されて、ローカルネットワーク６上に出力データを含む別の通信フレームとして送出されるまでの時間（通信カプラ処理時間）。
【０１１３】
（４）ローカルネットワーク６上に送出された出力データを含む通信フレームが通信カプラユニット２００から対象の機能ユニット１５０まで転送されるのに要する時間（ローカルネットワーク伝送遅延時間）。
【０１１４】
（５）各機能ユニット１５０が出力データを含む通信フレームを受信してから当該受信データに対応する信号が機能ユニット１５０から出力可能になるまでに要する時間（機能ユニット処理時間）。
【０１１５】
制御システム１に含まれる機能ユニット１５０の各々について、上述の（１）〜（５）の時間要素の合計（機能ユニット１５０毎の遅れ時間）がそれぞれ算出される。そして、これらの遅れ時間のうち最大のものが最大遅れ時間Ｄｍａｘ２として決定される。
【０１１６】
このように、ＣＰＵユニット１００（リモートマスタ回路１２０）から見て、各機能ユニット１５０にて出力データに対応する信号が出力可能になるのに要する最大時間（最大遅れ時間Ｄｍａｘ２）が算出される。最大遅れ時間Ｄｍａｘ２は、リモートマスタ回路１２０に対して起動指令が与えられる時刻（図５の起動基準時刻Ｔｔ）からの経過時間（オフセット時間）として算出されてもよい。
【０１１７】
なお、上述の（１）〜（５）の時間要素の間でオーダが大きく異なるものについては、必ずしも考慮する必要はない。例えば、リモートマスタ回路起動遅延時間が通信フレームの伝送遅延時間から見て無視できる程度に小さい場合などは、リモートマスタ回路起動遅延時間を予め定められた一定値に設定、または考慮しないようにしてもよい。
【０１１８】
図６は、本実施の形態に係る制御システム１が提供する出力タイミング同期機能に係る最大遅れ時間Ｄｍａｘ２の算出手順を説明するための図である。図６には、説明の便宜上、表形式で算出結果の一例を示すが、このような表形式を視覚化する必要はなく、内部的な処理として実装してもよい。
【０１１９】
図６を参照して、リモートネットワーク５に接続されるそれぞれの通信カプラユニット２００がリスト形式で設定される（欄４０１）。通信カプラユニット２００の各々に装着されたそれぞれの機能ユニット１５０がリスト形式で設定される（欄４０２）。また、各機能ユニット１５０の種別についても設定される（欄４０３）。これらの情報は、一般的には、コンフィギュレーション１３８（図２）の一部として予め設定されている。あるいは、ＣＰＵユニット１００で実行されるプログラムの開発や保守を行うためのサポート装置に格納されるコンフィギュレーションを参照して取得してもよい。
【０１２０】
機能ユニット１５０の各々に関連付けて、リモートマスタ回路起動遅延時間４０４、リモートネットワーク伝送遅延時間４０５、通信カプラ処理時間４０６、ローカルネットワーク伝送遅延時間４０７、および、機能ユニット処理時間４０８の各時間が設定される。
【０１２１】
リモートマスタ回路起動遅延時間４０４は、一般的には、ＣＰＵユニット１００のリモートマスタ回路１２０に固有の性能である。そのため、ＣＰＵユニット１００の識別情報（形式番号など）毎に定義されたリモートマスタ回路起動遅延時間４０４のデータベースを予め用意しておき、このデータベースを参照するなどして取得することができる。
【０１２２】
リモートネットワーク伝送遅延時間４０５は、一般的には、ＣＰＵユニット１００（リモートマスタ回路１２０）からのリモートネットワーク５の経路上に存在するノード数／ホップ数、ならびに、ＣＰＵユニット１００（リモートマスタ回路１２０）からのリモートネットワーク５の経路長さ（すなわち、ケーブル長）、などに依存する。例えば、ＣＰＵユニット１００から遠い位置に配置された通信カプラユニット２００には、ＣＰＵユニット１００に近い位置に配置された通信カプラユニット２００より大きなリモートネットワーク伝送遅延時間４０５が生じる。そのため、リモートネットワーク５における通信カプラユニット２００の接続状態（ネットワークトポロジー）などを考慮して、リモートネットワーク伝送遅延時間４０５の値が算出される。リモートネットワーク伝送遅延時間４０５の値を算出するにあたっては、ネットワークトポロジーに関するパラメータを含む関数式を採用してもよい。あるいは、リモートネットワーク５における通信フレームの伝送に要する実測の時間を用いてもよい。
【０１２３】
通信カプラ処理時間４０６は、一般的には、通信カプラユニット２００のローカルマスタ回路２１０およびリモートスレーブ回路２２０に固有の性能である。そのため、通信カプラユニット２００の識別情報（形式番号など）毎に定義された通信カプラ処理時間４０６のデータベースを予め用意しておき、このデータベースを参照するなどして取得することができる。
【０１２４】
ローカルネットワーク伝送遅延時間４０７は、一般的には、通信カプラユニット２００（リモートスレーブ回路２２０）からのローカルネットワーク６の経路上に存在するノード数／ホップ数などに依存する。例えば、通信カプラユニット２００から遠い位置に配置された機能ユニット１５０には、通信カプラユニット２００に近い位置に配置された機能ユニット１５０より大きなローカルネットワーク伝送遅延時間４０７が生じる。そのため、ローカルネットワーク６における機能ユニット１５０の接続状態（ネットワークトポロジー）などを考慮して、ローカルネットワーク伝送遅延時間４０７の値が算出される。ローカルネットワーク伝送遅延時間４０７の値を算出するにあたっては、ネットワークトポロジーに関するパラメータを含む関数式を採用してもよい。あるいは、ローカルネットワーク６における通信フレームの伝送に要する実測の時間を用いてもよい。
【０１２５】
機能ユニット処理時間４０８は、各機能ユニット１５０が提供する機能などに依存する。一般的には、アナログ出力（ＡＯ）ユニットは、デジタル出力（ＤＯ）ユニットに比較して、出力データが与えられてから、その出力データに対応する信号を実際に出力可能な状態にするまでにより多くの時間を要する。一般的には、機能ユニット処理時間４０８は、各機能ユニット１５０に固有の性能である。そのため、機能ユニット１５０の種別情報（形式番号など）毎に定義された機能ユニット処理時間４０８のデータベースを予め用意しておき、このデータベースを参照するなどして取得することができる。
【０１２６】
以上のようなそれぞれの時間要素を考慮することで、制御システム１に含まれる各機能ユニット１５０についての遅れ時間を示す合計を算出できる（欄４０９）。これらの遅れ時間のうち、その値が最も大きなもの（図６中の合計４１０）が最大遅れ時間Ｄｍａｘ２として決定される。
【０１２７】
また、ＣＰＵユニット１００に装着された各機能ユニット１５０についての最大遅れ時間Ｄｍａｘ１は、典型的には、以下の（６）〜（８）の時間要素の少なくとも一部が考慮される。
【０１２８】
（６）ＣＰＵユニット１００のローカルマスタ回路１１０に対して出力データの送信指令（起動指令）が与えられてからローカルネットワーク４上に当該出力データを含む通信フレームが送出されるまでに要する時間（ローカルマスタ回路起動遅延時間）。
【０１２９】
（７）ローカルネットワーク４上に送出された出力データを含む通信フレームがＣＰＵユニット１００から対象の機能ユニット１５０まで転送されるのに要する時間（ローカルネットワーク伝送遅延時間）。
【０１３０】
（８）各機能ユニット１５０が出力データを含む通信フレームを受信してから当該受信データに対応する信号が機能ユニット１５０から出力可能になるまでに要する時間（機能ユニット処理時間）。
【０１３１】
制御システム１に含まれる機能ユニット１５０の各々について、上述の（６）〜（８）の時間要素の合計（機能ユニット１５０毎の遅れ時間）がそれぞれ算出される。そして、これらの遅れ時間のうち最大のものが最大遅れ時間Ｄｍａｘ１として決定される。
【０１３２】
（６）〜（８）の時間要素は、上述の（１）、（４）、（５）とそれぞれ同様の内容であるので、詳細な説明は繰返さない。
【０１３３】
このように、ＣＰＵユニット１００（ローカルマスタ回路１１０）から見て、各機能ユニット１５０での出力データに対応する信号が出力可能になるのに要する最大時間（最大遅れ時間Ｄｍａｘ１）が算出される。最大遅れ時間Ｄｍａｘ１は、リモートマスタ回路１２０に対して起動指令が与えられる時刻（図５の起動基準時刻Ｔｔ）からの経過時間（オフセット時間）として算出されてもよい。
【０１３４】
上述の時間要素のうち、（２）、（４）、（７）の伝送遅延時間については、ＣＰＵユニット１００または通信カプラユニット２００から最も遠い位置に配置されたユニット（スレーブユニット）までの時間（最悪値）を一律に採用してもよい。このような最悪値を採用することで、ある程度のマージンをもって最大遅れ時間を算出することができる。ネットワークに接続される複数のユニットの間で通信フレームを順次転送する場合において、通信フレームの転送に最後に関与したユニットが当該通信フレームに書込む、各ユニットが保持するクロックのカウント値などに基づいて決定してもよい。このような場合には、事前のデータベースの作成などは必要なく、現実の実測値に基づいて、伝送遅延時間が決定される。
【０１３５】
また、各機能ユニット１５０が自ユニットの性能などに関する情報を保持している場合には、ＣＰＵユニット１００がそれらの情報を読出した上で、各機能ユニット１５０についての最大遅れ時間を算出するようにしてもよい。各機能ユニット１５０が保持する情報は、工場出荷時に実測された値を含んでいてもよいし、動作に伴うログなどを含んでいてもよい。これらの情報を反映することで、最大遅れ時間をより高い精度で算出できる。
【０１３６】
＜Ｇ．クロックの同期および出力同期タイミングの設定方法＞
次に、クロックの同期および出力同期タイミングの設定方法について説明する。
【０１３７】
図７は、本実施の形態に係る制御システム１に分散配置されるクロックに着目した模式図である。図７を参照して、本実施の形態に係る制御システム１においては、グランドマスタクロック（Ground Master Clock）と、バウンダリークロック（Boundary Clock）と、オーディナリークロック（Ordinary Clock）との３階層で、各ユニットに配置されたクロック同士の同期を維持する。
【０１３８】
例えば、ＥｔｈｅｒＣＡＴ（登録商標）に従うネットワークにおいては、ｄｉｓｔｒｉｂｕｔｅｄ  ｃｌｏｃｋ機能を用いて、スレーブ（機能ユニット１５０）間で高精度に時刻を同期させることができる。また、任意のＰＴＰ（Precision Time Protocol）を採用することで、複数の装置またはユニットの間で高精度に時刻を同期させることができる。このような階層的な構成を採用して互いに同期をとる方法については公知であるので、ここでは、詳細な説明は繰返さない。
【０１３９】
ＣＰＵユニット１００は、通信起動回路１４０のクロック１４２と、ローカルマスタ回路１１０のクロック１１８と、リモートマスタ回路１２０のクロック１２８とを含む。本実施の形態においては、通信起動回路１４０のクロック１４２が制御システム１の時刻基準となるグランドマスタクロックとして機能し、ローカルマスタ回路１１０のクロック１１８は、このグランドマスタクロックと同期する、バウンダリークロックとして機能する。
【０１４０】
ローカルマスタ回路１１０に接続される機能ユニット１５０に含まれるクロック１６８の各々をオーディナリークロックとして機能させることができる。つまり、ＣＰＵユニット１００に装着される機能ユニット１５０の各々は、ローカルマスタ回路１１０のクロック１１８を基準にして時刻同期する。そして、ローカルマスタ回路１１０のクロック１１８は、グランドマスタクロックである通信起動回路１４０のクロック１４２と時刻同期する。そのため、ＣＰＵユニット１００に装着された機能ユニット１５０（第１の機能ユニット）は、グランドマスタクロックであるクロック１４２と同期されるクロック１６８（第１のクロック）を有することになる。
【０１４１】
一方、リモートマスタ回路１２０のクロック１２８は、通信起動回路１４０のクロック１４２と実質的に同一なものとして構成され、仮想的なグランドマスタクロックとして機能する。このような構成を採用することで、ＣＰＵユニット１００に接続される通信カプラユニット２００の各々において、リモートスレーブ回路２２０のクロック２２８はバウンダリークロックとして機能する。各通信カプラユニット２００において、ローカルマスタ回路２１０のクロック２１８についても、リモートスレーブ回路２２０のクロック２２８と時刻同期して、バウンダリークロックとして機能する。そして、ローカルマスタ回路２１０に接続される機能ユニット１５０に含まれるクロック１６８の各々をオーディナリークロックとして機能させることができる。
【０１４２】
このように、通信カプラユニット２００に装着された機能ユニット１５０（第２の機能ユニット）は、グランドマスタクロックであるクロック１４２と同期されるクロック１６８（第２のクロック）を有することになる。
【０１４３】
以上のような階層的な構成によって、ＣＰＵユニット１００、通信カプラユニット２００、機能ユニット１５０の各々が保持するクロックの間で同期をとることができる。つまり、いずれのユニットにおいても、共通のクロックに従って各種制御およびアクションを実行することができる。このような環境下において、所定周期毎に設定される起動基準時刻Ｔｔ、および、起動基準時刻Ｔｔを基準として設定される出力同期タイミングＴｏｕｔが各ユニットに対して指定され、各ユニットは指定されたタイミングで指定された処理を実行する。
【０１４４】
上述したように、最大遅れ時間Ｄｍａｘ１および最大遅れ時間Ｄｍａｘ２のうちより長いものに応じて、制御システム１全体についての出力同期タイミングＴｏｕｔを決定する。但し、タスク周期を維持する観点から、最大遅れ時間Ｄｍａｘ１および最大遅れ時間Ｄｍａｘ２のうちより短いものに応じて、制御システム１全体についての出力同期タイミングＴｏｕｔを決定してもよい。そして、この決定された出力同期タイミングＴｏｕｔにて、各機能ユニット１５０から出力データに対応する信号が外部出力されるように、ＣＰＵユニット１００および各機能ユニット１５０に対して必要なタイミングが通知される。
【０１４５】
再度図５を参照して、ＣＰＵユニット１００および各機能ユニット１５０に通知されるタイミングについて説明する。なお、指定されたタイミングは、カウント値またはクロック値の形で通知されてもよい。
【０１４６】
例えば、ＣＰＵユニット１００に対しては、パック処理（スケジューラパック処理、出力データパック処理１、出力データパック処理２）の実行開始をトリガする開始タイミングＴＲ１が設定される。
【０１４７】
また、ＣＰＵユニット１００に装着される機能ユニット１５０に対しては、出力処理の実行開始をトリガする開始タイミングＴＲ３が設定される。このように、ＣＰＵユニット１００に装着される機能ユニット１５０（第１の機能ユニット）において受信された出力データに対応する信号を出力するための処理（出力処理）を開始すべき開始タイミングＴＲ３（第１のタイミング）が指示される。なお、ＣＰＵユニット１００に装着される機能ユニット１５０に対しては、入力処理の実行開始をトリガする開始タイミングＴＲ２がさらに設定されてもよい。
【０１４８】
一方、通信カプラユニット２００に装着される機能ユニット１５０に対しては、出力処理の実行開始をトリガする開始タイミングＴＲ４が設定される。このように、通信カプラユニット２００に装着される機能ユニット１５０（第２の機能ユニット）において受信された出力データに対応する信号を出力するための処理（出力処理）を開始すべき開始タイミングＴＲ４（第２のタイミング）が指示される。なお、通信カプラユニット２００に装着される機能ユニット１５０に対しては、図示しない入力処理の実行開始をトリガする開始タイミングがさらに設定されてもよい。
【０１４９】
必要な開始タイミングがＣＰＵユニット１００および機能ユニット１５０に設定されることで、本実施の形態に係る出力タイミング同期機能が実現される。つまり、制御システム１に含まれる機能ユニット１５０の間で出力データに対応する信号を外部出力または更新するタイミングを互いに同期させることができる。
【０１５０】
上述したような出力同期タイミングの算出および設定については、任意の１または複数の演算主体によって実現されてもよい。典型的には、出力同期タイミングの算出および設定を行うためのロジックをＣＰＵユニット１００内に実装してもよいし、あるいは、出力同期タイミングの算出および設定を行うための機能をサポート装置に実装してもよい。
【０１５１】
いずれの実装においても、ＣＰＵユニット１００がそれぞれの機能ユニット１５０へ、開始タイミングＴＲ３（第１のタイミング）または開始タイミングＴＲ４（第２のタイミング）を指示する。なお、これらの開始タイミングＴＲ３およびＴＲ４は、図５に示すタイムチャートなどから明らかなように、ＣＰＵユニット１００のグランドマスタクロックであるクロック１４２が管理する時刻（例えば、起動基準時刻Ｔｔ）を基準に設定される。これは、制御システム１に含まれる機能ユニット１５０の各々がグランドマスタクロックであるクロック１４２と直接的または間接的に時刻同期を行っているからである。
【０１５２】
図８は、本実施の形態に係る制御システム１において出力同期タイミングを設定するための構成例を示す模式図である。図８（Ａ）は、出力同期タイミングの算出および設定を行うためのロジックがＣＰＵユニット１００内に実装された構成例を示し、図８（Ｂ）は、サポート装置が出力同期タイミングの算出および設定を行うための機能を有する構成例を示す。
【０１５３】
図８（Ａ）に示すＣＰＵユニット１００の演算処理部１３０には、最大遅れ時間を算出する機能Ｍ１と、出力同期タイミングを決定する機能Ｍ２と、決定した出力同期タイミングに応じたタイミングを指示する機能Ｍ３とが実装されている。これらの機能は、システムプログラム１３６（図２）に含まれる命令コードによって実現されてもよい。つまり、演算処理部１３０のプロセッサ１３２がシステムプログラム１３６を実行することで、これらの機能Ｍ１〜Ｍ３を実現してもよい。
【０１５４】
以上のように、本実施の形態に係る出力タイミング同期機能に必要なタイミングなどのパラメータを決定する機能については、制御システム１に必ずしも実装する必要はなく、サポート装置３００といった外部の装置から設定されるようにしてもよい。
【０１５５】
最大遅れ時間を算出する機能Ｍ１は、より具体的には、ＣＰＵユニット１００においてローカルマスタ回路１１０に対して出力データの送信が要求されてから、当該出力データに対応する信号が送信先の機能ユニット１５０において出力可能になるまでに要する遅れ時間（その遅れ時間のうち最大のものが最大遅れ時間Ｄｍａｘ１）と、ＣＰＵユニット１００においてリモートマスタ回路１２０に対して出力データの送信が要求されてから、当該出力データに対応する信号が送信先の機能ユニット１５０において出力可能になるまでに要する遅れ時間（その遅れ時間のうち最大のものが最大遅れ時間Ｄｍａｘ２）とを算出する機能を含む。
【０１５６】
出力同期タイミングを決定する機能Ｍ２は、より具体的には、最大遅れ時間Ｄｍａｘ１および最大遅れ時間Ｄｍａｘ２に基づいて、制御システム１に含まれる機能ユニット１５０が信号を出力する出力同期タイミングＴｏｕｔを決定する機能を含む。そして、出力同期タイミングを決定する機能Ｍ２は、決定された出力同期タイミングＴｏｕｔに基づいて、ＣＰＵユニット１００に装着される機能ユニット１５０（第１の機能ユニット）において出力処理を開始すべき開始タイミングＴＲ３（第１のタイミング）、および、通信カプラユニット２００に装着される機能ユニット１５０（第２の機能ユニット）において出力処理を開始すべき開始タイミングＴＲ４（第２のタイミング）を決定する（いずれも図５参照）。
【０１５７】
図８（Ｂ）には、ＣＰＵユニット１００に接続されたサポート装置３００上に、最大遅れ時間を算出する機能Ｍ１と、出力同期タイミングを決定する機能Ｍ２とが実装されている。これらの機能Ｍ１およびＭ２は、サポート装置３００で実行されるサポートプログラムによって提供されてもよい。一方、決定した出力同期タイミングに応じたタイミングを指示する機能Ｍ３については、ＣＰＵユニット１００に実装されることが好ましい。
【０１５８】
図８（Ｂ）に示すように、サポート装置３００にてタイミングを算出する場合には、機能Ｍ３は、ＣＰＵユニット１００に接続されたサポート装置３００（外部装置）から、ＣＰＵユニット１００に装着される機能ユニット１５０（第１の機能ユニット）において出力処理を開始すべき開始タイミングＴＲ３（第１のタイミング）、および、通信カプラユニット２００に装着される機能ユニット１５０（第２の機能ユニット）において出力処理を開始すべき開始タイミングＴＲ４（第２のタイミング）を取得する。
【０１５９】
但し、決定した出力同期タイミングに応じたタイミングを指示する機能Ｍ３についても、サポート装置３００上に実装してもよい。この場合、サポート装置３００が各機能ユニット１５０に対してタイミングを直接的に設定することになる。このような場合であっても、ＣＰＵユニット１００または通信カプラユニット２００が設定する処理を補助する。
【０１６０】
＜Ｈ．処理手順＞
次に、本実施の形態に係る出力タイミング同期機能の処理手順について説明する。図９は、本実施の形態に係る制御システム１における出力タイミング同期機能に係る処理手順を示すフローチャートである。図９には、典型例として、ＣＰＵユニット１００のプロセッサ１３２がシステムプログラム１３６を実行することで、各ステップが実施される例について説明する。但し、以下に示す各ステップの全部または一部を他のユニットまたはサポート装置などで実行するようにしてもよい。
【０１６１】
図９を参照して、プロセッサ１３２は、メモリ１３４に格納されているコンフィギュレーション１３８を参照するなどして、ＣＰＵユニット１００に装着された機能ユニット１５０毎の遅れ時間をそれぞれ算出し（ステップＳ１００）、算出された遅れ時間のうち最大のものを最大遅れ時間Ｄｍａｘ１として決定する（ステップＳ１０２）。同様に、プロセッサ１３２は、メモリ１３４に格納されているコンフィギュレーション１３８を参照するなどして、通信カプラユニット２００に装着された機能ユニット１５０毎の遅れ時間をそれぞれ算出し（ステップＳ１０４）、算出された遅れ時間のうち最大のものを最大遅れ時間Ｄｍａｘ２として決定する（ステップＳ１０６）。
【０１６２】
プロセッサ１３２は、ステップＳ１０２において決定された最大遅れ時間Ｄｍａｘ１、および、ステップＳ１０６において決定された最大遅れ時間Ｄｍａｘ２に基づいて、制御システム１全体における出力同期タイミングＴｏｕｔを決定する（ステップＳ１０８）。
【０１６３】
プロセッサ１３２は、ステップＳ１０８において決定された出力同期タイミングＴｏｕｔに応じて、各機能ユニット１５０に対して設定するタイミングを決定し（ステップＳ１１０）、各機能ユニット１５０へ決定したタイミングを通知する（ステップＳ１１２）。各機能ユニット１５０は、ＣＰＵユニット１００からの通知に従って、必要なタイミングを設定する。
【０１６４】
以上の処理により、出力タイミング同期機能に必要な設定は完了する。制御システム１を構成する各ユニットは、設定されたタイミングに従って、処理を繰返し実行する。
【０１６５】
＜Ｉ．変形例＞
上述の実施の形態においては、出力タイミング同期機能の適用例として、ローカルネットワーク４を介して接続される機能ユニット１５０と、リモートネットワーク５およびローカルネットワーク６を介して接続される機能ユニット１５０とを含む制御システム１について説明したが、さらに別のネットワークを介して接続される機能ユニット１５０を含むような構成にも適用できる。つまり、本実施の形態に係る出力タイミング同期機能は、３つ以上の異なるネットワークを含むような構成であっても適用可能である。
【０１６６】
＜Ｊ．利点＞
本実施の形態に係る制御システム１においては、互いに異なる通信線（ネットワークまたはバス）を介して、それぞれＣＰＵユニット１００と通信する機能ユニット１５０が存在する場合であっても、それぞれの通信線（ネットワークまたはバス）を介して時刻同期が可能であれば、この同期された時刻を利用して、複数の機能ユニット１５０の間で、信号が出力されるタイミングまたは信号が更新されるタイミングを互いに同期させることができる。このように、本実施の形態によれば、同期可能な互いに異なるネットワーク間またはバス間で、複数の機能ユニット１５０についての出力同期を実現できる。
【０１６７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６８】
１  制御システム、２  ＰＬＣ、３  リモートＩ／Ｏ装置、４，６  ローカルネットワーク、５  リモートネットワーク、１００  ＣＰＵユニット、１５０  機能ユニット、１１０，２１０  ローカルマスタ回路、１１２，１２２，１６２，１６４，２１２，２２２，２２４  送受信ポート、１１６，１２６，１６６，２１６，２２６  送受信コントローラ、１１８，１２８，１４２，１６８，２１８，２２８  クロック、１２０  リモートマスタ回路、１３０  演算処理部、１３２  プロセッサ、１３４  メモリ、１３６  システムプログラム、１３７  ユーザプログラム、１３８  コンフィギュレーション、１４０  通信起動回路、１５６  機能モジュール、１５８  Ｉ／Ｏインターフェイス、１６０  通信回路、２００  通信カプラユニット、２２０  リモートスレーブ回路、３００  サポート装置、３０４，３０５，３０６  通信フレーム、Ｄｍａｘ１，Ｄｍａｘ２  最大遅れ時間、Ｍ１，Ｍ２，Ｍ３  機能、ＯＵＴ１，ＯＵＴ２，ＯＵＴ３  出力信号。
【図１】
2018063612.tif 000003
【図２】
2018063612.tif 000004
【図３】
2018063612.tif 000005
【図４】
2018063612.tif 000006
【図５】
2018063612.tif 000007
【図６】
2018063612.tif 000008
【図７】
2018063612.tif 000009
【図８】
2018063612.tif 000010
【図９】
2018063612.tif 000011