(57)【要約】【課題】効率的な通信を可能にする制御システム、装置および方法を提供する。【解決手段】互いに時刻同期された複数の装置がネットワーク接続される。ネットワークは、複数の装置が周期的に遣り取りするフレームを転送し、複数の装置は、１以上の制御装置と、制御装置により制御される装置とを含み、各複数の装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、ネットワークを介して接続し、複数の装置の少なくとも１つは、転送経路を介してフレームが規定時間に到着しない場合に、周期にかかる条件が満たされるときは、再送要求を、当該転送経路で送信する。【選択図】図１
2020150485.tif 000002
【特許請求の範囲】
【請求項１】
互いに時刻同期された複数の装置がネットワーク接続された制御システムであって、
前記ネットワークは、前記複数の装置が周期的に遣り取りするフレームを転送し、
前記複数の装置は、１以上の制御装置と、前記制御装置により制御される装置とを含み、
各前記複数の装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、前記ネットワークを介して接続し、
前記各装置は、フレームの転送経路および同期した時刻に基づく転送タイミングの情報を有し、
前記複数の装置の少なくとも１つは、
前記転送経路を介してフレームが規定時間に到着しない場合に、前記周期にかかる条件が満たされるときは、再送要求を、当該転送経路で送信する、制御システム。
【請求項２】
前記周期は、前記複数の装置がフレームを遣り取りする時間と、遣り取りされるフレームのデータに基づく前記１以上の制御装置が実施する制御演算の時間とを含み、
前記条件は、
前記フレームを遣り取りする時間および前記制御演算の時間を、前記周期から除いた余裕時間と、前記再送要求に対する応答時間とに基づく条件を含む、請求項１に記載の制御システム。
【請求項３】
前記周期にかかる条件が満たされないとき、前記１以上の制御装置は、前の周期で到着したフレームのデータに基く前記制御演算を実施する、または前の周期での算出値を制御に用いる、請求項２に記載の制御システム。
【請求項４】
前記少なくとも１つの装置は、
前記再送要求を、ネットワークを介して前記第１の装置に転送するとき、
フレームの未着通知を、ネットワークを介して前記第２の装置に転送する、請求項１から３のいずれか１項に記載の制御システム。
【請求項５】
前記ネットワークが転送するフレームは、前記制御に用いる制御系データのフレームと、非制御系データのフレームとを含み、
前記少なくとも１つの装置は、
前記再送要求を、前記制御系データのフレームと前記非制御系データのフレームのうち、前記制御系データのフレームについてのみ送信する、請求項１から４のいずれか１項に記載の制御システム。
【請求項６】
前記少なくとも１つの装置は、
ネットワークを介して、複数の前記第１の装置を接続し、
前記複数の第１の装置のうち、前記再送要求に対する応答が可能な装置を検出し、検出された装置に前記再送要求を送信する再送処理部を備える、請求項１から５のいずれか１項に記載の制御システム。
【請求項７】
前記制御装置間のネットワーク通信のプロトコルと、前記制御装置と前記制御される装置間のネットワーク通信のプロトコルは共通する、請求項１から６のいずれか１項に記載の制御システム。
【請求項８】
制御システムに備えられる装置であって、
前記制御システムは、ネットワーク接続されて互いに時刻同期された複数の前記装置を備え、
前記ネットワークは、前記複数の装置が周期的に遣り取りするフレームを転送し、
前記装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、前記ネットワークを介して接続し、
前記装置は、フレームの転送経路および同期した時刻に基づく転送タイミングの情報を有し、
前記転送経路を介してフレームが規定時間に到着しない場合に、前記周期にかかる条件が満たされるときは、再送要求を、当該転送経路で送信する、装置。
【請求項９】
制御システムに備えられる装置の通信を制御する方法であって、
前記制御システムは、ネットワーク接続されて互いに時刻同期された複数の前記装置を備え、
前記ネットワークは、前記複数の装置が周期的に遣り取りするフレームを転送し、
前記装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、前記ネットワークを介して接続し、
前記装置は、フレームの転送経路および同期した時刻に基づく転送タイミングの情報を有し、
前記装置の通信を制御する方法は、
前記ネットワークを介して当該装置に到来するフレームを受信するステップと、
前記転送経路を介してフレームが当該装置に規定時間に到着するかを検出するステップと、
前記フレームが到着しない場合、前記周期にかかる条件が満たされるときは、再送要求を、当該転送経路で送信するステップと、を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は制御システム、装置および制御方法に関する。
【背景技術】
【０００２】
近年の情報通信技術（ＩＣＴ：Information  and  Communication  Technology）の進歩に伴って、ＦＡ（Factory  Automation）の生産ラインについても、現場の製造機器からＰＬＣ（プログラマブルコントローラ）までを一体のネットワーク化するようなシステムが実現されつつある。このようなネットワーク化の実現に関して、例えば、特許文献１（特開２０１１−１９２０６８号公報）は、ＰＬＣを構成するユニット間の通信を確実に行うために、マスタユニットは、スレーブユニットからのレスポンスの受信を待つことなく、異なるスレーブユニット宛の複数の送信フレームを一括りとして複数回（例えば３回）連続して送信する構成を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１９２０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、マスタユニットは、スレーブユニットにフレームが到着しているか否かにかかわらず、異なるスレーブユニット宛の複数の送信フレームを複数回連続して送信するのでフレームの転送量が多くなる。したがって、ユニット間の確実な通信を効率的に実現可能な環境が望まれる。
【０００５】
本開示の１つの目的は、効率的な通信を可能にする制御システム、装置および方法を提供することである。
【課題を解決するための手段】
【０００６】
この開示のある局面によれば、互いに時刻同期された複数の装置がネットワーク接続された制御システムが提供される。ネットワークは、複数の装置が周期的に遣り取りするフレームを転送し、複数の装置は、１以上の制御装置と、制御装置により制御される装置とを含み、各複数の装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、ネットワークを介して接続し、各装置は、フレームの転送経路および同期した時刻に基づく転送タイミングの情報を有し、複数の装置の少なくとも１つは、転送経路を介してフレームが規定時間に到着しない場合に、周期にかかる条件が満たされるときは、再送要求を、当該転送経路で送信する。
【０００７】
上述の開示によれば、装置はフレームが規定時間に未到着において、周期にかかる条件が満たされるときに限り再送要求を送信する。したがって、未到着であれば再送要求が送信されるとしても、ネットワークの通信帯域の消費量の増加を限定的にすることができて、装置間の確実な通信を効率的に実現できる。
【０００８】
上述の開示において、周期は、複数の装置がフレームを遣り取りする時間と、遣り取りされるフレームのデータに基づく１以上の制御装置が実施する制御演算の時間とを含み、条件は、フレームを遣り取りする時間および制御演算の時間を、周期から除いた余裕時間と、再送要求に対する応答時間とに基づく条件を含む。
【０００９】
上述の開示によれば、再送要求を送信するために判断される条件を、周期内の余裕時間と再送要求にかかる応答時間に基づき設定することができる。
【００１０】
上述の開示において、周期にかかる条件が満たされないとき、１以上の制御装置は、前の周期で到着したフレームのデータに基く制御演算を実施、または前の周期で算出した値を制御に用いる。
【００１１】
上述の開示において、再送要求を送信できない場合は、前の制御周期で到着したフレームのデータまたは算出値で、制御を実施できる。
【００１２】
上述の開示において、少なくとも１つの装置は、再送要求を、ネットワークを介して第１の装置に転送するとき、フレームの未着通知を、ネットワークを介して第２の装置に転送する。
【００１３】
上述の開示によれば、フレームが未到着であった装置は、再送要求の送信とともに、当該フレームの転送先の装置に対してフレームに代えて未着通知を転送できる。したがって、転送先となる装置に対して、未着通知を送信することで、転送先装置による再送要求の送信を抑制することができる。これにより、上記に述べたように、通信帯域の消費量の増加を抑制できる。
【００１４】
上述の開示において、ネットワークが転送するフレームは、制御に用いる制御系データのフレームと、非制御系データのフレームとを含み、少なくとも１つの装置は、再送要求を、制御系データのフレームと非制御系データのフレームのうち、制御系データのフレームについてのみ送信する。
【００１５】
上述の開示によれば、再送要求は制御系データのみに限定して送信されるので、再送要求を送信するとしても、上記に述べたように、通信帯域の消費量の増加を抑制できる。
【００１６】
上述の開示において、少なくとも１つの装置は、ネットワークを介して、複数の第１の装置を接続し、複数の第１の装置のうち、再送要求に対する応答が可能な装置を検出し、検出された装置に再送要求を送信する再送処理部を備える。
【００１７】
上述の開示によれば、再送要求は、当該再送要求に対する応答が可能な装置宛に限定して送信することができるので、再送要求を送信するとしても、上記に述べたように、通信帯域の消費量の増加を抑制できる。
【００１８】
上述の開示において、制御装置間のネットワーク通信のプロトコルと、制御装置と制御される装置間のネットワーク通信のプロトコルは共通する。
【００１９】
上述の開示によれば、装置間のプロトコルは共通するので、フレーム転送時にプロトコル相違にかかる装置間でのプロトコル変換の省くことができて、その分、通信を高速化できる。
【００２０】
上述の開示のある局面によれば、制御システムに備えられる装置が提供される。制御システムは、ネットワーク接続されて互いに時刻同期された複数の装置を備え、ネットワークは、複数の装置が周期的に遣り取りするフレームを転送し、装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、ネットワークを介して接続し、装置は、フレームの転送経路および同期した時刻に基づく転送タイミングの情報を有し、転送経路を介してフレームが規定時間に到着しない場合に、周期にかかる条件が満たされるときは、再送要求を、当該転送経路で送信する。
【００２１】
上述の開示によれば、装置はフレームが規定時間に未到着において、周期にかかる条件が満たされるときに限り再送要求を送信する。したがって、未到着であれば再送要求が送信されるとしても、ネットワークの通信帯域の消費量の増加を限定的にすることができて、装置間の確実な通信を効率的に実現できる。
【００２２】
この開示のある局面によれば、制御システムに備えられる装置の通信を制御する方法であって、制御システムは、ネットワーク接続されて互いに時刻同期された複数の装置を備え、ネットワークは、複数の装置が周期的に遣り取りするフレームを転送し、装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、ネットワークを介して接続し、装置は、フレームの転送経路および同期した時刻に基づく転送タイミングの情報を有し、装置の通信を制御する方法は、ネットワークを介して当該装置に到来するフレームを受信するステップと、転送経路を介してフレームが当該装置に規定時間に到着するかを検出するステップと、フレームが到着しない場合、周期にかかる条件が満たされるときは、再送要求を、当該転送経路で送信するステップと、を備える。
【００２３】
上述の開示によれば、装置はフレームが規定時間に未到着において、周期にかかる条件が満たされるときに限り再送要求を送信する。したがって、未到着であれば再送要求が送信されるとしても、ネットワークの通信帯域の消費量の増加を限定的にすることができて、装置間の確実な通信を効率的に実現できる。
【発明の効果】
【００２４】
本開示によれば、効率的な通信を可能にする制御システム、装置および方法が提供される。
【図面の簡単な説明】
【００２５】
【図１】本実施の形態にかかる制御システム１の構成の一例を模式的に示す図である。
【図２】本実施の形態にかかるＰＬＣ１００の要部構成を示す模式図である。
【図３】本発明の実施の形態に係るフィールド装置９０の要部構成を模式的に示す図である。
【図４】本実施の形態にかかる通信フレーム２０の構成の一例を模式的に示す図である。
【図５】本実施の形態にかかる通信フレーム２０の構成の一例を模式的に示す図である。
【図６】本実施の形態にかかる通信フレーム２０の構成の一例を模式的に示す図である。
【図７】本実施の形態にかかるストリームＩＤ２９を説明するための図である。
【図８】本実施の形態にかかる接続情報テーブル１７０の構成の一例を模式的に示す図である。
【図９】本実施の形態にかかるスケジュール情報１８０の一例を模式的に示す図である。
【図１０】本実施の形態にかかるＰＬＣ１００が備える機能を模式的に示す図である。
【図１１】本実施の形態にかかるフィールド装置９０が備える機能を模式的に示す図である。
【図１２】本実施の形態にかかる制御システム１における基本のタイミングチャートの一例を模式的に示す図である。
【図１３】本実施の形態にかかる制御システム１における通信異常時のタイミングチャートの一例を模式的に示す図である。
【図１４】本実施の形態にかかる通信異常時にデータ共有が困難となるケースを模式的に示す図である。
【図１５】本実施の形態にかかる再送処理における通信シーケンスの一例を模式的に示す図である。
【図１６】本実施の形態にかかる再送処理を実行する条件を説明する模式図である。
【図１７】本実施の形態にかかる再送処理の一例を示すフローチャートである。
【図１８】図１７のステップＳ１９の処理の一例を示すフローチャートである。
【図１９】本実施の形態にかかるフィールド装置９０による再送処理の一例を模式的に示す図である。
【図２０】本実施の形態にかかる制御システム１の構成を他の構成と対して示す図である。
【発明を実施するための形態】
【００２６】
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２７】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。図１は、本実施の形態にかかる制御システム１の構成の一例を模式的に示す図である。図１を参照して、ＦＡに適用され得る制御システム１では、例えば、ネットワーク１１に接続されて、ネットワーク１１を介してデータを遣り取りする「装置」の一実施例であるＰＬＣ１００Ａ、ＰＬＣ１００Ｂ、およびフィールド装置群を備える。また、制御システム１は、時刻同期のマスタクロックを提供可能なマスタ２００を備える。マスタ２００による時刻同期のマスタクロックの提供は、例えば、時刻マスタ機能を持つスイッチ、または何れかのＰＬＣ等で実現されてもよい。
【００２８】
本実施の形態では、時刻同期は、例えば、ネットワーク１１においてＴＳＮ（Time-Sensitive  Networking）に従うデータ通信が実施されることで実現され得る。また、「タイミング」は何らかの事象が生じる時期、時間または時刻の概念を表す。
【００２９】
ＰＬＣ１００ＡおよびＰＬＣ１００Ｂは、制御演算を実施する「制御装置」の一実施例であって、本実施の形態では同様の機能を備える。ＰＬＣ１００Ａ，ＰＬＣ１００Ｂを区別しない場合はＰＬＣ１００と総称する。ＰＬＣ１００には、サポート装置５００を接続することができる。フィールド装置群は、各種のフィールド装置９０Ａ〜９０Ｆを含む。フィールド装置９０Ａ〜９０Ｆは、それぞれ、ＰＬＣ１００からの受信データに従い制御する「制御対象」を、ネットワーク２を介して接続するが、フィールド装置９０が制御対象と一体的に構成されて提供されてもよい。したがって、本実施の形態では、フィールド装置９０は、ＰＬＣ１００により制御される装置に相当する。本発実施の形態では、フィールド装置９０Ａ〜９０Ｆは基本的に同様の機能を備えるので、これらを区別しない場合は、「フィールド装置９０」と総称する。
【００３０】
上記に述べた制御対象は、製造装置または生産ラインなど（以下、「フィールド」とも総称する。）に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りするセンサ等の入出力装置などを含み得る。
【００３１】
フィールド装置９０Ａ，９０Ｂおよび９０Ｃは、ネットワーク１１を介して、デイジーチェーンでＰＬＣ１００Ａに順次接続されて、フィールド装置９０Ｄ，９０Ｅおよび９０Ｆは、ネットワーク１１を介して、デイジーチェーンでＰＬＣ１００Ｂに順次接続されている。
【００３２】
本実施の形態では、制御対象で検知されたフィールド値が、ネットワーク１１を介して転送される。「フィールド値」の概念は、任意の制御対象についてのデータ（値）の時間的な変化を連続的（あるいは、一定間隔をおいて不連続）に検知して得られる一連の値も含み得る。
【００３３】
本明細書において「フィールド値」は、ＰＬＣ１００での制御演算において利用可能な値（実値）を総称する概念であり、典型的には、制御対象から取得されて制御演算に入力されるセンサの出力などを含み得る。フィールド値に基づく制御演算による算出値は、「制御対象」を制御する指令値，制御量を含み得る。ＰＬＣ１００は、このようなフィールド値、指令値、制御量などを含む「制御系データ」を、ネットワーク１１を介して転送する。「制御系データ」は、製造装置または生産設備の制御対象の制御に用いるために予め定められた周期毎（例えば、後述する制御周期１０毎）にＰＬＣ１００またはフィールド装置９０において更新される必要がる。このように、制御系データは、制御対象の制御に用いられるため、ネットワーク１１上を定周期的で転送されて、この通信周期を確実に保証する必要がある。ネットワーク１１を介して、ＰＬＣ１００とフィールド装置９０との間で遣り取りされる制御系データは、数１００μｓｅｃオーダ〜数１０ｍｓｅｃオーダのごく短い周期で更新されることになる。
【００３４】
図１に示すネットワーク１１においては、制御系データとは異なる非制御系データも転送され得る。非制御系データは、例えば、「情報系データ」または「制御情報系データ」を含む。これらは、制御系データのような制御周期の定周期的な転送が要求されないものの、ある程度の定時性が求められるデータである。情報系データは、制御システムの管理に関するデータを含む。制御情報系データは、制御システム１に備えられる装置または制御対象の設定，管理に関するデータを含む。
【００３５】
ネットワーク１１には、例えばＴＳＮ規格に従いデータの到達時間が保証される、定周期通信を行なうバスまたはネットワークを採用することが好ましい。例えば、ネットワーク１１にはＴＳＮの上位プロトコルとしてＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）などの公知のプロトコルに係るネットワークを採用してもよい。ＥｔｈｅｒＮｅｔ／ＩＰは、汎用的なＥｔｈｅｒｎｅｔ（登録商標）上に制御用プロトコルを実装した産業用オープンネットワークである。
【００３６】
図１に示す制御システム１は、上記に述べたように、送信元から送出したデータ（制御系データ）が送信先（宛先）に到着する時刻が保証されることが要求される。このために、制御システム１は、予め定められた制御周期（後述する制御周期１０）を維持しつつ、ネットワーク１１が有する通信帯域において、制御系データの通信帯域が確保されるように、データ転送のためのスケジューリングを実施する。より具体的には、制御系データが、制御情報系データおよび情報系データよりも優先的に転送されるように、データ転送のためのスケジューリングが実施される。
【００３７】
制御システム１では、このような宛先への到着時刻を保証しつつ、スケジューリング機能を実現するために、互いに時刻同期された複数の装置（ＰＬＣ１００およびフィールド装置９０）の各々は、時刻同期されたタイマ（あるいは、同期してインクリメントまたはデクリメントされるカウンタ）を有しており、それらタイマまたはカウンタに従って、各装置がデータの送信または受信のタイミングを決定する。
【００３８】
図１では、ＰＬＣ１００Ａ，１００Ｂはタイマ１６０Ａ，１６０Ｂを有し、フィールド装置９０Ａ〜９０Ｆは、それぞれ、タイマ９９Ａ〜９９Ｆを有している。例えば、制御システム１は、マスタ２００のタイマ２００Ａがグランドマスタとして機能し、ＰＬＣ１００のタイマおよびフィールド装置９０のタイマがこのグランドマスタを基準としてタイミングを同期させる。このようなタイマ間の同期によって、制御システム１において、装置間でデータの転送タイミングなどを互いに一致または同期させることができる。
【００３９】
ネットワーク１１は、データを格納した通信フレーム２０を転送する。制御系データを格納した通信フレーム２０を転送する周期は、制御周期１０に同期している。したがって、各装置では、基本的に、制御周期毎に、当該制御周期のための制御系データが到来することが保証される。
【００４０】
各装置は、自装置に到来する通信フレーム２０を送信する第１の装置および自装置から送信される通信フレーム２０を受信する第２の装置を、ネットワーク１１を介して接続する。各装置は、通信フレーム２０の転送経路を示す経路情報および同期した時刻に基づく転送タイミングを示すタイミング情報を格納するとともに、自装置に到来する通信フレーム２０または自装置から送信する通信フレーム２０を保持（格納）する領域を備える。
【００４１】
ネットワーク１１に接続される複数の装置の少なくとも１つは、ネットワーク１１を介して通信フレーム２０がタイミング情報により規定される時間に到着しないと判定した場合において、上記の周期にかかる条件が満たされるときは、未到着の通信フレーム２０の再送要求９を、ネットワーク１１を介して送信する。これにより、未到着であっても、上記に述べた制御系データの到来の保証が可能となる。
【００４２】
図１において、再送要求９の送信を説明する。例えば、ある制御周期において、フィールド装置９０Ｃのフィールド値の通信フレーム２０は、ネットワーク１１を介して転送されて、フィールド装置９０Ｂおよびフィールド装置９０Ａを経由してＰＬＣ１００Ａに到達する。転送途中でフレーム消失８が発生すると、消失の通信フレーム２０はＰＬＣ１００Ａに到達しない。ＰＬＣ１００Ａは、フィールド装置９０Ｃからの通信フレーム２０が、タイミング情報に基く規定時間に到着しないことを検知すると、当該周期内でフレーム再送処理を実施する余裕時間があるとの条件が満たされると判断した場合は、再送要求９をネットワーク１１に送信する。
【００４３】
ＰＬＣ１００Ａは、再送要求９の宛先を決定することができる。例えば、ＰＬＣ１００Ａは、宛先を、自装置に到来する通信フレーム２０を送信する第１の装置に決定する。または、ネットワーク１１に複数の第１の装置が接続される場合は、ＰＬＣ１００Ａは、宛先を、複数の第１の装置のうち再送要求９に応答する機能を備える装置に決定する。または、ＰＬＣ１００Ａは、宛先を、当該応答機能を備える装置のうち自装置の最も近くに接続されている装置に決定する。各装置は、受信した再送要求９に応答して、要求される通信フレーム２０を要求元の装置に送信する。
【００４４】
このように、制御システム１では、ネットワーク１１に接続される各装置が、同期した時刻に基づく時間の観点で通信フレーム２０の到着の失敗（フレーム消失８）または成功を判断し、フレーム消失８を判断したときに再送要求９を送信する。したがって、特許文献１のような複数回の連続送信によらずに、効率的な通信により各装置へのフレーム到着の確率を高めることができる。以下、本実施の形態のより具体的な応用例について説明する。
【００４５】
＜Ｂ．ＰＬＣ１００のハードウェア構成＞
図２は、本実施の形態にかかるＰＬＣ１００の要部構成を示す模式図である。図２を参照して、ＰＬＣ１００は、演算処理部１１０、通信回路１３０、ＤＭＡ（Direct  Memory  Access)コントローラ１４０、高精度なタイマ１６０、ＵＳＢ（Universal  Serial  Bus)コントローラ１０７、ネットワーク１１を接続する通信ポート１３６および１３７、およびメモリカードインターフェイス１０８を含む。
【００４６】
演算処理部１１０は、プロセッサ１１２、記憶部１１４およびストレージ１１９を含む。説明の便宜上、ＰＬＣ１００には、１つのプロセッサ１１２のみを備えるが、複数のプロセッサが実装されてもよい。なお、各プロセッサは、複数のコアを有していてもよい。演算処理部１１０においては、プロセッサ１１２が１または複数のタスクを周期的に実行する。演算処理部１１０で複数のタスクが実行される場合には、それらの複数のタスクに対して、互いに異なる優先度が設定されてもよい。
【００４７】
また、プロセッサ１１２は、通信回路１３０の後述するバッファ１３２に格納された通信フレーム２０（例えば、入力データ１３４、出力データ１３５）を記憶部１１４に転送する。記憶部１１４は、ＤＲＡＭ（Dynamic  Random  Access  Memory）またはＳＲＡＭ（Static  Random  Access  Memory）などを備えて構成され、プロセッサ１１２でのプログラムの実行に必要なワーク領域を提供する。
【００４８】
ストレージ１１９は、フラッシュメモリまたはハードディスクなどを備えて構成され、周辺処理プログラム１２０、上記の時刻同期を実施するための時刻同期プログラム１２１、ＩＯリフレッシュプログラム１２５、システムプログラム１２２、スケジューラ１２３、ユーザプログラム（ＵＰＧ：User  Program）１２４、通信プログラム１２７およびコンフィギュレーション１２６などを格納する。
【００４９】
システムプログラム１２２は、プロセッサ１１２においてユーザプログラム１２４を実行するためのＯＳ（Operating  System）およびライブラリなどを含む。ＩＯリフレッシュプログラム１２５は、通信回路１３０を介して受信する通信フレーム２０に含まれるフィールド値（入力データ）を演算処理部１１０に送信する。また、ＩＯリフレッシュプログラム１２５は、ＰＬＣ１００で算出される指令値，制御量（出力データ）をフィールド装置９０へ送信する。このように、ＩＯリフレッシュプログラム１２５は、入力データおよび出力データの少なくともいずれかを転送する処理（後述する、ＩＯリフレッシュ処理）を実現する。
【００５０】
ユーザプログラム１２４は、制御対象の機械や設備に応じて任意に作成される「制御演算処理」のプログラムである。具体的には、ユーザプログラム１２４は、制御対象の「シーケンス制御」のために、記憶部１１４の入力データ１３４に基づく演算を実施するための制御演算プログラムと、「モーション制御」のために、入力データ１３４に基づく演算を実施するためのモーションプログラムとを含む。モーション制御は、制御対象となるサーボモータなどのアクチュエータに対して、位置、速度、加速度、角度などの数値を含む指令値を算出する。これらユーザプログラム１２４の制御演算処理による制御量，指令値などの算出値は、出力データ１３５として記憶部１１４に格納される。
【００５１】
通信プログラム１２７は、記憶部１１４の出力データ１３５を用いて通信フレーム２０を生成するとともに、通信フレーム２０を送受信するように通信回路１３０を制御する。また、通信プログラム１２７は、通信フレーム２０の再送にかかる再送処理のための再送プログラム１２８を含む。再送プログラム１２８は、通信フレーム２０が到着していない場合に再送要求９の通信フレーム２０を生成し、当該通信フレーム２０をネットワーク１１を介して送信するよう通信回路１３０を制御する。また、再送プログラム１２８は、通知プログラム１２９を含む。通知プログラム１２９は、再送要求９が送信される場合に、当該ＰＬＣ１００に通信フレーム２０が未着（到来していない）である旨の未着通知６の通信フレーム２０を生成し、当該通信フレーム２０を、ネットワーク１１を介して送信するよう通信回路１３０を制御する。
【００５２】
周辺処理プログラム１２０は、ユーザプログラム１２４により実施される制御演算処理などとは異なる処理であって、制御演算処理の周辺で実施される処理であり、例えばネットワーク１１を介して遣り取りされる通信フレーム２０のロギング処理等を含む。
【００５３】
スケジューラ１２３は、ＰＬＣ１００のプロセスまたはタスクなどに対して、優先度に従いリソース割当てや実行タイミングなどを管理するプログラムである。このような、プロセスまたはタスクは、周辺処理プログラム１２０、ユーザプログラム１２４、ＩＯリフレッシュプログラム１２５、時刻同期プログラム１２１、通信プログラム１２７等が、プロセッサ１１２により実行されることにより生成され得るプロセスまたはタスクが含まれる。スケジューラ１２３は、時刻同期したタイマ１６０に従い、例えば予め定められた制御周期に基づく周期で各プログラムの実行タイミングを調整する。これにより、ＰＬＣ１００は、制御演算処理およびＩＯリフレッシュ処理を、フィールド装置９０との間で同期した時刻に基づく周期でサイクリックに実施することができる。
【００５４】
コンフィギュレーション１２６は、ＰＬＣ１００でのプログラム実行に必要な各種設定値やネットワーク構成を定義する各種設定値を含む。コンフィギュレーション１２６は、例えば、「転送経路の情報」の一例である後述する接続情報テーブル１７０および「転送タイミングの情報」の一例である後述するスケジュール情報１８０を含む。
【００５５】
ＵＳＢコントローラ１０７は、ＰＬＣ１００にサポート装置５００を脱着可能（detachable）に接続する。メモリカードインターフェイス１０８は、メモリカード１１６を脱着可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データ（ユーザプログラムまたはデータなど）を読出すことが可能になっている。コンフィギュレーション１２６のデータは、メモリカード１１６またはサポート装置５００からストレージ１１９にロードされてもよい。
【００５６】
通信回路１３０は、ネットワーク１１を物理的に接続する通信ポート１３６および１３７を接続する。限定されないが、例えば通信ポート１３６は、他のＰＬＣ１００側に繋がるネットワーク１１が接続され、通信ポート１３７はフィールド装置９０側に繋がるネットワーク１１が接続される。通信回路１３０は、通信ポート１３６，１３７を介して他の装置と通信フレーム２０を遣り取りする。通信回路１３０は、ネットワーク１１を介して送受信される通信フレーム２０を一時的に格納するバッファ１３２を備える。バッファ１３２に一時的に格納される通信フレーム２０は、例えば、入力データ１３４および出力データ１３５を含む。以下では、ＰＬＣ１００側に繋がるネットワーク１１が接続される通信ポート１３６を「第１ポート」、およびフィールド装置９０側（非ＰＬＣ１００側）に繋がるネットワーク１１が接続される通信ポート１３７を「第２ポート」とも呼ぶ。
【００５７】
通信回路１３０により実行される通信フレーム２０の送受信は例えば次のように実現される。通信回路１３０は、プロセッサ１１２の指令に従い、ＤＭＡコントローラ１４０を介した記憶部１１４からの出力データ１３５に基づく通信フレーム２０をコピーして、コピーを出力データ１３５としてバッファ１３２に格納するとともに、通信フレーム２０をネットワーク１１上に送信する。
【００５８】
また、通信回路１３０は、プロセッサ１１２の指令に従い、ネットワーク１１から到来（受信）する通信フレーム２０をコピーして、コピーを入力データ１３４としてバッファ１３２に格納するとともに、通信フレーム２０を演算処理部１１０へ出力する。この通信フレーム２０は、入力データとして記憶部１１４に格納される。
【００５９】
記憶部１１４には、送受信される通信フレーム２０のデータが、制御周期１０よりも長い期間に亘り蓄積されてもよく、直近の制御周期１０の通信フレーム２０のデータのみが蓄積されるとしてもよい。
【００６０】
本実施の形態において、ＰＬＣ１００による「ＩＯリフレッシュ処理」は、出力データ１３５（通信フレーム２０）の他の装置への送信、および他の装置からの入力データ１３４の受信のうちの少なくとも一方を含む。「ＩＯリフレッシュ処理」では、入力データ１３４はフィールド装置９０により収集されて転送されるフィールド値の通信フレーム２０に対応し、出力データ１３５は、ＰＬＣ１００のユーザプログラム１２４の制御演算処理により算出された指令値，制御量の通信フレーム２０に対応する。
【００６１】
ＤＭＡコントローラ１４０は、演算処理部１１０および通信回路１３０に接続され、演算処理部１１０と通信回路１３０との間で、データアクセスを高速化する機能を備える。ＤＭＡコントローラ１４０は、通信回路１３０のバッファ１３２に格納された通信フレーム２０（例えば、入力データ１３４）を記憶部１１４に転送する。ＤＭＡコントローラ１４０は、例えば、プロセッサ１１２からの通信要求に応答して、通信回路１３０に対して指令を与えて、通信回路１３０のバッファ１３２に格納された入力データ１３４を記憶部１１４へ送信する。また、ＤＭＡコントローラ１４０は、プロセッサ１１２からの通信要求に応答して、記憶部１１４に格納された出力データ１３５を通信回路１３０に送信する。ＤＭＡコントローラ１４０の少なくとも主要部については、ハードワイヤードな構成を有することで、プロセッサ１１２より高速な処理を実現可能である。このようなＤＭＡコントローラ１４０を介した通信回路１３０と演算処理部１１０の間の通信フレーム２０の転送（図中の破線楕円で示されるＤＭＡ処理）は、後述するＩＯリフレッシュ部７２によるＩＯリフレッシュ処理で実現され得る。この実現のためのケースは、通信回路１３０が入力データ１３４を受信する時にＤＭＡ処理がＩＯリフレッシュ処理内で実行されるとともに、通信回路１３０が出力データ１３５を送信する時に、ＩＯリフレッシュ処理よりも前に(出力データ１３５が用意できた時点で)ＤＭＡ処理により通信回路１３０のバッファ１３２に出力データ１３５を転送しておき、ＩＯリフレッシュ処理の開始直後に、通信回路１３０から出力データ１３５の通信フレーム２０を送信開始するケースも含み得る。このように、出力データ１３５をＩＯリフレッシュ処理よりも前に通信回路１３０のバッファ１３２に転送しておくことで、ＩＯリフレッシュ処理時間の短縮と送信タイミングのジッタの低減が可能となる。
【００６２】
タイマ１６０は、ＰＬＣ１００およびＰＬＣ１００に接続される他の装置との間でタイミングを決定するための一種のクロックであり、所定周期でカウントアップするカウンタなどを用いて実現される。
【００６３】
図２に示す構成においては、説明の便宜上、演算処理部１１０、通信回路１３０およびＤＭＡコントローラ１４０に区別した構成を描いているが、これに限られることなく任意の実装形態を採用できる。例えば、演算処理部１１０の全部または一部と通信回路１３０の全部または一部とを同一のチップ上に実装したＳｏＣ（System on Chip）で構成してもよい。あるいは、演算処理部１１０のプロセッサ１１２とＤＭＡコントローラ１４０の主要機能とを同一のチップ上に実装したＳｏＣを用いてもよい。これらの実装形態については、適宜選択可能である。
【００６４】
＜Ｃ．フィールド装置９０のハードウェア構成＞
図３は、本発明の実施の形態に係るフィールド装置９０の要部構成を模式的に示す図である。図３を参照して、フィールド装置９０は、プロセッサ９１、メモリ９２、ネットワーク２を接続する通信Ｉ／Ｆ（Interface）９３、ネットワーク１１を接続する通信回路９４、ＰＬＣ１００のタイマ１６０と同様の構成を備えるタイマ９９、およびメモリカード９６が脱着可能に装着されるメモリカードインターフェイス９５を備える。なお、フィールド装置９０は、ＩＯ（Input/Output）ユニットまたはサーボなどのような機器も含み得る。このような機器はメモリカード９６を取り扱う機能および回路を備えないこともあり得る。したがって、フィールド装置９０は、メモリカード９６に関連した機能および回路を備えない装置も含み得る。
【００６５】
通信Ｉ／Ｆ９３は、プロセッサ９１からの指令に従い、制御対象からのフィールド値をネットワーク２を介して、受信するとともに、プロセッサ９１からの指令値，制御量を制御対象に送信する。これにより、制御対象は、指令値，制御量に従い制御されて、その結果であるフィールド値を出力する。
【００６６】
通信回路９４は、ネットワーク１１を物理的に接続する通信ポート９７１および９７２を備える。通信回路９４は、通信ポート９７１，９７２を介して他の装置と通信フレーム２０を遣り取りする。限定されないが、通信ポート９７１はＰＬＣ１００側に繋がるネットワーク１１を接続し、通信ポート９７２はフィールド装置９０側に繋がるネットワーク１１を接続する。したがって、通信ポート９７１は「第１ポート」および通信ポート９７２は「第２ポート」に相当する。
【００６７】
また、通信回路９４は、ネットワーク１１を介して送受信される通信フレーム２０を一時的に格納するバッファ９４１を備える。バッファ９４１には、通信フレーム２０が例えば、入力データ９４４または出力データ９４３として一時的に格納される。
【００６８】
メモリ９２は、ＤＲＡＭまたはＳＲＡＭなどを備えて構成され、プロセッサ９１でのプログラムの実行に必要なワーク領域を提供する。さらに、メモリ９２は、フラッシュメモリまたはハードディスクなどを備えて構成され、システムプログラム８１、上記の時刻同期を実施するための時刻同期プログラム８２、通信プログラム８３、コンフィギュレーション８８、出力データ９４３および入力データ９４４などを格納する。出力データ９４３および入力データ９４４は、通信フレーム２０に相当する。メモリ９２には、ＰＬＣ１００を経由してサポート装置５００から、またはメモリカードインターフェイス９５を介してメモリカード９６からプログラムまたはデータが格納され得る。
【００６９】
通信プログラム８３は、通信Ｉ／Ｆ９３および通信回路９４を制御するプログラムである。通信プログラム８３は、通信回路９４の制御に関して、再送処理のための再送プログラム８４と通知プログラム８５を含む。再送プログラム８４は、通信フレーム２０が到着（到来）していない場合に再送要求９をネットワーク１１上に送信するよう通信回路９４を制御する。通知プログラム８５は、再送要求９が送信される場合に、未着通知６の通信フレーム２０を他の装置に送信するよう通信回路９４を制御する。
【００７０】
コンフィギュレーション８８は、フィールド装置９０でのプログラム実行に必要な各種設定値やネットワーク構成を定義する各種設定値を含む。コンフィギュレーション８８は、例えば、「転送経路の情報」の一例である後述する接続情報テーブル８６および「転送タイミングの情報」の一例である後述するスケジュール情報８７を含む。コンフィギュレーション８８は、さらに、トリガ時間８９の情報を含む。トリガ時間８９は、フィールド装置９０が、制御対象を、ＰＬＣ１００から受信する指令値，制御量に従い制御する時間を示す。各フィールド装置９０は、タイマ９９を用いることで、トリガ時間８９が到来したことを検出する。各フィールド装置９０のタイマ９９はフィールド装置９０間で互いに時刻同期されているので、トリガ時間８９が到来すると、各フィールド装置９０による制御対象の制御を同期して実施させることができる。
【００７１】
通信回路９４は、プロセッサ９１の指令に従い、メモリ９２の出力データ９４３の通信フレーム２０をコピーして、コピーを出力データ９４３としてバッファ９４１に格納するとともに、当該通信フレーム２０をネットワーク１１上に送信する。また、通信回路９４は、プロセッサ９１の指令に従い、ネットワーク１１から到来する通信フレーム２０を受信し、当該通信フレーム２０をコピーし、コピーを入力データ９４４としてバッファ９４１に格納する。また、プロセッサ９１は、当該通信フレーム２０の入力データ９４４をメモリ９２に格納する。
【００７２】
＜Ｄ．通信フレーム２０の構成＞
図４、図５および図６は、本実施の形態にかかる通信フレーム２０の構成の一例を模式的に示す図である。図４は、基本的な通信フレーム２０の一例、図５と図６は再送要求９の通信フレーム２０の一例を、それぞれ示している。
【００７３】
（ｄ１．基本的な通信フレーム）
図４を参照して、装置間で遣り取りされる通信フレーム２０は基本的に、プリアンブルの領域として、プリアンブルを格納する領域２１、フレームの宛先を格納する領域２２、フレームの送信元を格納する領域２３、タグの領域２４、ネットワークのタイプを格納する領域２５、および誤り訂正のための領域２７を含み、さらに、転送されるべきデータ本体であるペイロードを格納する領域２６を含む。通信フレーム２０の領域２２の宛先および領域２３の送信元は、各装置を一意に識別する情報、例えばＭＡＣ（Media  Access  Control  address）を含む。図４の基本的な通信フレーム２０の場合は、ペイロードは、例えば制御系データである入力データ１３４，９４４または出力データ１３５，９４３を含む。
【００７４】
領域２２は、さらに、通信フレーム２０の転送を管理するためのストリームＩＤ（Identifier）２９を含む。図７は、本実施の形態にかかるストリームＩＤ２９を説明するための図である。本実施の形態では、ネットワーク１１上を転送される通信フレーム２０はフロー１２の単位で管理される。図７に示すように、ネットワーク１１に接続される装置は、通信フレーム２０の送信元（TALKER）または送信先（LISTENER）となり得る。各フロー１２は、TALKERである送信元装置のＭＡＣアドレスとLISTENERである送信先装置のＭＡＣアドレスの組で規定されるストリームＩＤが割当てられる。したがって、各装置は、遣り取りする各通信フレーム２０を、そのストリームＩＤ２９に基き一意に識別することが可能となる。
【００７５】
（ｄ２．通信フレーム２０のペイロード）
例えば、図４の通信フレーム２０の領域２６には、ペイロードとして制御系データが格納され得る。領域２６は、制御系データのうちフィールド値を格納する領域と、指令値，制御量を格納する領域とを備える。
【００７６】
各フィールド装置９０は、領域２６を読み書きする場合、例えば、当該装置に個別に割当てられているオフセット（例えば、通信フレーム２０の先頭からのオフセット）に基づいた領域２６内の位置を特定し、特定した位置でデータを読み書きする。具体的には、通信プログラム８３は、到来した通信フレーム２０の領域２６の自装置のオフセットに基く位置から、指令値，制御量（入力データ９４４または出力データ１３５）を読出し、また、送信すべき通信フレーム２０の領域２６のオフセットに基づく位置にフィールド値（出力データ９４３または入力データ１３４）を書込む。
【００７７】
一方、ＰＬＣ１００は各フィールド装置９０に割当てられたオフセット情報を記憶している。したがって、ＰＬＣ１００は、このオフセット情報に基き、到来する通信フレーム２０の領域２６内から各フィールド装置９０のフィールド値（出力データ９４３または入力データ１３４）を読出し、また、このオフセット情報に基き、送信すべき通信フレーム２０の領域２６内の各フィールド装置９０のオフセット位置に、指令値，制御量（入力データ９４４または出力データ１３５）を書込むことができる。
【００７８】
これにより、ＰＬＣ１００は、通信フレーム２０の領域２６に各フィールド装置９０の制御系データを読み書きでき、また、各フィールド装置９０は通信フレーム２０の領域２６に自装置の制御系データを読み書きすることができる。
【００７９】
（ｄ３．再送要求９の通信フレーム）
図５を参照して、再送要求９を送信するための通信フレーム２０である再送要求フレームは、例えば、領域２３には再送要求９の送信元（TALKER）の装置のＭＡＣアドレスが格納され、領域２２には再送要求９の送信先（LISTENER）である装置のＭＡＣアドレス３０が格納され、領域２６には、再送要求９を示すフラグ３１と、再送が要求されている通信フレーム２０のストリームＩＤ２９とを含むペイロードが格納される。図５の再送要求フレームが送信された場合、領域２２のＭＡＣアドレス３０に一致するアドレスを有した装置のみが、当該再送要求フレームを受信することができる。
【００８０】
再送要求フレームの構成は、図５に限定されず、例えば、図６のように、再送要求フレームの送信先をストリームＩＤで指定してもよい。図６を参照して、再送要求フレームの領域２３は再送要求９の送信元の装置のＭＡＣアドレスが格納され、宛先の領域２２には再送要求フレームのストリームＩＤ２９１が格納され、領域２６には再送が要求されている通信フレーム２０のストリームＩＤ２９が格納される。図６の構成によれば、領域２２のストリームＩＤ２９１が示す送信先（LISTENER）のＭＡＣアドレス３０に一致するアドレスを有した装置のみが、当該再送要求フレームを受信することができる。
【００８１】
＜Ｅ．接続情報テーブル＞
図８は、本実施の形態にかかる接続情報テーブル１７０の構成の一例を模式的に示す図である。図８を参照して、ＰＬＣ１００が備える接続情報テーブル１７０は、第１ポートのポート情報１７１と、第２ポートのポート情報１７２とを含む。
【００８２】
ポート情報１７１および１７２は、それぞれ、装置情報１７３と応答可否情報１７４を含む。装置情報１７３は、対応の通信ポートに繋がるネットワーク１１に接続される各装置に対応して、当該装置を識別するＭＡＣアドレスを含む。装置情報１７３は、例えば、ネットワーク１１の接続位置が、当該ＰＬＣ１００に近い方の装置から順番にＭＡＣアドレスが並べられている。応答可否情報１７４は、対応の装置情報１７３が示す装置のうち、再送要求９への応答機能を備えない各装置の識別子であるＭＡＣアドレスを含む。なお、応答可否情報１７４のＭＡＣアドレスは、再送要求９への応答機能を備える各装置のＭＡＣアドレスであってもよい。
【００８３】
本実施の形態では、フィールド装置９０が備える接続情報テーブル８６も、図８の接続情報テーブル１７０と同様の構成を備える。したがって、接続情報テーブル８６の説明は繰返さない。
【００８４】
（ｅ１．スケジュール情報）
図９は、本実施の形態にかかるスケジュール情報１８０の一例を模式的に示す図である。図９を参照して、スケジュール情報１８０は、制御系データの通信フレーム２０のストリーム毎に、ストリームＩＤ１８３、当該ストリームの通信フレーム２０が装置に到着する時間である到着時間１８４、出力同期１８５および到来する通信ポートを識別するポートＩＤ１８６の情報を含む。出力同期１８５は、当該ストリームの通信フレーム２０のデータ（例えば制御系データ）を、到来する他の通信フレーム２０のデータと同期して処理するべき同期処理対象であるか否かを示している。出力同期１８５が「１」であるとき、対応ストリームの通信フレーム２０は同期処理対象であることを示し、「０」であるときは対応ストリームの通信フレーム２０は同期処理対象ではないことを示す。スケジュール情報１８０は、図９に示すように、ストリームＩＤ１８３に対応付けて、当該ストリームＩＤ１８３を構成する送信元と宛先の各装置にＭＡＣアドレスを含んでもよい。
【００８５】
本実施の形態では、フィールド装置９０が備えるスケジュール情報８７も、図９のスケジュール情報１８０と同様の構成を備える。したがって、スケジュール情報８７の説明は繰返さない。
【００８６】
＜Ｆ．機能構成＞
図１０は、本実施の形態にかかるＰＬＣ１００が備える機能を模式的に示す図である。図１０では、図２で示したＰＬＣ１００の各プログラムがプロセッサ１１２により実行されることで提供される主要な機能が模式的に示される。具体的には、ＰＬＣ１００は、ＩＯリフレッシュプログラム１２５が実行されることで提供されるＩＯリフレッシュ部７２、ユーザプログラム１２４が実行されることで提供される制御演算部７３、周辺処理プログラム１２０が実行されることで提供される周辺処理部７４、および通信プログラム１２７が実行されることで提供される通信処理部７５を備える。通信処理部７５は、再送プログラム１２８が実行されることで提供される再送処理部７６を含む。再送処理部７６は、通知プログラム１２９が実行されることで提供される通知処理部７７を含む。各処理部は、プロセッサ１１２が、システムプログラム１２２のＯＳおよび各種ライブラリと協働して当該処理部のプログラムを実行することで提供される。
【００８７】
図１１は、本実施の形態にかかるフィールド装置９０が備える機能を模式的に示す図である。図１１では、図３で示したフィールド装置９０の各プログラムがプロセッサ９１により実行されることで提供される主要な機能が模式的に示される。具体的には、フィールド装置９０は、通信プログラム８３が実行されることで提供される通信処理部６０、およびネットワーク２を介した制御対象との入出力を実施する入出力処理部６３を備える。通信処理部６０は、再送プログラム８４が実行されることで提供される再送処理部６１を含む。再送処理部６１は、通知プログラム８５が実行されることで提供される通知処理部６２を含む。入出力処理部６３は、システムプログラム８１が通信Ｉ／Ｆ９３を制御する入出力プログラムが実行されることで提供される。これら処理部は、プロセッサ９１が、システムプログラム８１のＯＳおよび各種ライブラリと協働して処理部のプログラムを実行することで提供される。
【００８８】
＜Ｇ．制御システム１のタイミングチャート＞
図１２は、本実施の形態にかかる制御システム１における基本のタイミングチャートの一例を模式的に示す図である。タイミングチャートの横軸に示す時間経過に従い、ＰＬＣ１００Ａ，１００Ｂおよび各フィールド装置９０間での通信を含む処理の開始および終了のタイミングと処理の実施時間の長さが示される。処理の実施時間の長さは、時間軸が延びる方向に延びる帯状の長さで示されている。図１では、各ＰＬＣ１００に３台のフィールド装置９０が接続されるが、接続されるフィールド装置９０は３台に限定されない。
【００８９】
まず、ＰＬＣ１００では、スケジューラ１２３により、制御周期１０内に完了することが要求されるＩＯリフレッシュ部７２のＩＯリフレッシュの処理および制御演算部７３の制御演算処理が最も高い優先度で実行されて、次位の優先度で周辺処理部７４による周辺処理が実行されるようにスケジューリングされる。制御周期１０は、互いに時刻同期するＰＬＣ１００とフィールド装置９０とが共有する時間の一例である。なお、周辺処理は、他の処理よりも実行の優先度は低いので、制御演算に時間を要する場合、スケジューラ１２３は周辺処理をＮ（Ｎ＞２）回の制御周期１０毎に実行するとしてもよい。
【００９０】
フィールド装置９０では、制御周期１０において、共通のトリガ時間８９が到来したときにトリガ７を発生させて、トリガ７に応答して制御対象を制御する。具体的には、フィールド装置９０は、当該制御周期１０のＩＯリフレッシュ部７２によりＰＬＣ１００から受信している指令値，制御量に基づき、制御対象を制御する。
【００９１】
基本的には、制御周期１０では、当該制御周期１０の終わりにフィールド装置９０がネットワーク１１にフィールド値の送信準備（「Snd」）を実施する。次の制御周期１０のＩＯリフレッシュ処理が開始されると、フィールド装置９０は、準備されている当該フィールド値の通信フレーム２０をネットワーク１１上に送信し、ＰＬＣ１００は、ネットワーク１１上を転送される各フィールド装置９０のフィールド値の通信フレーム２０を受信（収集）する。また、ＰＬＣ１００は、制御周期１０の制御演算部７３による制御演算処理において、当該制御周期１０のＩＯリフレッシュ処理において受信したフィールド値に基く制御演算を実施する。また、ＰＬＣ１００は、制御周期１０のＩＯリフレッシュ処理の開始時において、前の制御周期１０で算出された指令値，制御量の通信フレーム２０をネットワーク１１上に送信する。これにより、各フィールド装置９０は、制御周期１０のＩＯリフレッシュ処理の開始時に、ネットワーク１１上を転送される指令値，制御量の通信フレーム２０の受信（「Rcv」）を実施し、受信した指令値，制御量に基き、トリガ７に応答して、制御対象の制御を実施することができる。
【００９２】
図１２では、各フィールド装置９０が送信準備「Snd」を実施すると、（ｔ）回目（ただし、ｔ＝１，２，３，・・・）の制御周期１０は終了し、（ｔ+１）回目の制御周期１０が開始されることが示される。
【００９３】
例えば、図１２では、エンドツーエンド（Ｅ２Ｅ）のシーケンス１１１が示される。シーケンス１１１では、例えば、フィールド装置９０Ｆが送信した通信フレーム２０が、フィールド装置９０Ｆ→フィールド装置９０Ｅ→フィールド装置９０Ｄ→ＰＬＣ１００Ｂ→ＰＬＣ１００Ａ→フィールド装置９０Ａ→フィールド装置９０Ｂ→フィールド装置９０Ｃの方向に転送されることで、ネットワーク１１の全体を転送される。また、各フィールド装置９０が、フィールド装置９０Ｆと同様なＥ２Ｅのシーケンスを実施することで、全てのフィールド装置９０からのフィールド値の通信フレーム２０はネットワーク１１上を転送される。
【００９４】
これにより、ＰＬＣ１００Ａ，ＰＬＣ１００Ｂは、いずれも、１の制御周期１０内のＩＯリフレッシュ処理においてネットワーク１１に転送される全てのフィールド装置９０からのフィールド値を受信できるとともに、所定のストリームＩＤで指定される、すなわち所定の１以上のフィールド装置９０の通信フレーム２０のフィールド値を受信することもできる。
【００９５】
したがって、制御周期１０の制御演算処理では、ＰＬＣ１００ＡまたはＰＬＣ１００Ｂは、全てのフィールド装置９０のフィールド値に基いた指令値，制御量の算出、または所定の１以上のフィールド装置９０のフィールド値に基いた指令値，制御量の算出が可能となる。これにより、フィールド装置９０のフィールド値に基いた制御演算処理のユーザプログラム１２４の配置先は、ＰＬＣ１００ＡおよびＰＬＣ１００Ｂのいずれであってもよくなり、制御システム１におけるユーザプログラム１２４の配置の自由度が高まる。
【００９６】
また、図１２では、シーケンス１１１のＥ２Ｅは、フィールド装置９０Ｆ→フィールド装置９０Ｃであったが、逆に、Ｅ２Ｅはフィールド装置９０Ｃ→フィールド装置９０Ｆであってもよい。なお、図１２では、フィールド装置９０およびＰＬＣ１００は、図４の通信フレーム２０のストリームＩＤ２９を、Ｅ２Ｅとなるフィールド装置９０のＭＡＣアドレスの組で任意に設定（変更）することができる。
【００９７】
（ｇ１．フィールド装置９０の転送処理）
本実施の形態では、通信フレーム２０の転送時に、フィールド装置９０の通信処理部６０は、転送処理を実施する。具体的には、転送処理では、通信処理部６０は、受信した通信フレーム２０の領域２３に自装置のＭＡＣアドレスを設定するとともに、領域２２に、接続情報テーブル８６に基づく宛先装置のＭＡＣアドレスを設定する。このとき、通信処理部６０は、接続情報テーブル８６における通信フレーム２０を受信した通信ポートに対応の装置情報１７３のうち、最も近くに接続されている装置（フィールド装置９０またはＰＬＣ１００）のＭＡＣアドレスを検出し、検出されたＭＡＣアドレスを上記の宛先装置のＭＡＣアドレスとして設定する。
【００９８】
また、通信処理部６０は、制御周期１０の終わりに送信準備「Snd」の通信フレーム２０に、入出力処理部６３を介して受付ける制御対象からのフィールド値を当該通信フレーム２０の領域２６に設定する。その後、通信処理部６０は、通信フレーム２０をネットワーク１１上に送信するよう通信回路９４を制御する。
【００９９】
また、制御周期１０の初めに遣り取りされる受信「Rcv」の通信フレーム２０を受信すると、通信処理部６０は、通信フレーム２０の領域２６から対応の指令値，制御量を読出し、入出力処理部６３に出力するとともに、通信フレーム２０をネットワーク１１上に送信するよう通信回路９４を制御する。
【０１００】
また、フィールド装置９０は、受信した通信フレーム２０のストリームＩＤ２９が自装置のＭＡＣアドレスを示すと判断すると、自装置を接続するＰＬＣ１００宛に通信フレーム２０を転送する。
【０１０１】
（ｇ２．ＰＬＣ１００の転送処理）
本実施の形態では、通信フレーム２０の転送時に、ＰＬＣ１００の通信処理部７５は、転送処理を実施する。具体的には、通信処理部７５は、ＰＬＣ１００に到来する通信フレーム２０を受信すると、自装置のＭＡＣアドレスを送信元の領域２３に設定するとともに、接続情報テーブル１７０に基づき、宛先装置のＭＡＣアドレスを通信フレーム２０の領域２２に設定する。このとき、通信処理部７５は、接続情報テーブル１７０において、通信フレーム２０を受信した通信ポート側の装置情報のうちから最も近くに接続されている装置（フィールド装置９０またはＰＬＣ１００）のＭＡＣアドレスを検出し、検出したＭＡＣアドレスを上記の宛先装置のＭＡＣアドレスとして設定する。その後、通信処理部７５は、通信フレーム２０をネットワーク１１上に送信するよう通信回路１３０を制御する。
【０１０２】
また通信処理部７５は、送信準備「Snd」による通信フレーム２０を受信すると、ネットワーク１１上に送信するよう通信回路９４を制御する。また、通信処理部７５は、制御周期１０の初めに遣り取りする受信「Rcv」の通信フレーム２０が到来すると、当該通信フレーム２０をネットワーク１１上に送信するよう通信回路９４を制御する。
【０１０３】
なお、制御周期１０において、制御系データの通信フレーム２０である送信準備「Snd」がなされた通信フレーム２０および受信「Rcv」の各通信フレーム２０は定周期で遣り取りされるので、これら通信フレーム２０が到来する時期を、フィールド装置９０は時刻同期したタイマ９９を用いることで、またＰＬＣ１００はタイマ１０１を用いることでそれぞれ予測することができる。
【０１０４】
上記に述べた転送処理においては、通信フレーム２０はネットワーク１１上を転送されるとともに、各装置において、そのコピーが通信回路１３０，９４の各バッファに一時的に格納される。このバッファに格納された通信フレーム２０は、少なくとも、次の制御周期１０のＩＯリフレッシュ部７２のＩＯリフレッシュ処理が実施されるまでの間は、当該バッファで保持しておくことができる。
【０１０５】
＜Ｈ．通信異常のケース＞
図１３は、本実施の形態にかかる制御システム１における通信異常時のタイミングチャートの一例を模式的に示す図である。図１４は、本実施の形態にかかる通信異常時にデータ共有が困難となるケースを模式的に示す図である。
【０１０６】
図１２では、シーケンス１１１が実施されることで、ＰＬＣ１００ＡとＰＬＣ１００Ｂは、フィールド値の制御系データを共有することができる。これに対して、図１３のように通信のシーケンス１１１の途中で、例えばＰＬＣ１００ＡからＰＬＣ１００Ｂ間のネットワーク１１においてフレーム消失８のような通信異常が発生した場合、各ＰＬＣ１００が制御演算を実行するタイミングで上記のデータ共有を実現することが困難となり、適切な指令値，制御量を算出できなくなる可能性がある。このケースの具体例が図１４に示される。図１４では、例えば、ネットワーク１１を介して複数のＰＬＣ１００がデイジーチェーンで互いデータを遣り取り可能に接続されている。各ＰＬＣ１００は、ネットワーク１１を介してデイジーチェーンで１つ以上のフィールド装置９０を接続する。図１４では、複数のＰＬＣ１００は、フィールド装置９０Ｆを接続するＰＬＣ（Ｏ）、ＰＬＣ（Ｓ）、ＰＬＣ（Ｒ１）およびフィールド装置９０Ｃを接続するＰＬＣ（Ｒ２）として区別されている。
【０１０７】
図１４において、図１２のＥ２Ｅのシーケンス１１１が実施される場合、通信異常がなければ、１の制御周期１０のＩＯリフレッシュ部７２のＩＯリフレッシュ処理において、フィールド装置９０Ｆからの通信フレーム２０は、ネットワーク１１の全ての装置を経由して、フィールド装置９０Ｃに到着する。これに対して、例えばｔ回目の制御周期１０のＩＯリフレッシュ部７２のＩＯリフレッシュ処理において、ＰＬＣ（Ｓ）とＰＬＣ（Ｒ１）間の転送時にフレーム消失８が発生したとする。この場合、フィールド装置９０Ｆのバッファ９４１、ＰＬＣ（Ｏ）のバッファ１３２およびＰＬＣ（Ｒ２）のバッファ１３２で保持されている通信フレーム２０はｔ回目の制御周期１０の制御系データであるのに対して、フレーム消失８により通信フレーム２０が到来していないＰＬＣ（Ｒ１）およびＰＬＣ（Ｒ２）のバッファ１３２に保持されている通信フレーム２０は、前の制御周期１０（ｔ−１回目の制御周期１０）のままである。したがって、各ＰＬＣ１００がＩＯリフレッシュ処理の後の制御演算を実行するタイミングで上記のデータ共有はできず、適切な指令値，制御量の算出が困難となる。
【０１０８】
＜Ｉ．再送処理＞
上記のフレーム消失８等の通信異常が生じた場合、ＰＬＣ１００は、規定時間に、例えば制御周期１０の開始から（すなわちＩＯリフレッシュ部７２のＩＯリフレッシュ処理の開始から）一定時間内に、通信フレーム２０が到着していないことを検出すると、再送処理部７６は再送処理を実施する。再送処理部７６は、未到着の通信フレーム２０の再送要求９の再送要求フレームを、ネットワーク１１上に送信する。
【０１０９】
通信フレーム２０の未到着は、スケジュール情報１８０の到着時間１８４に基き判定される。具体的には、各制御周期１０において、各ＰＬＣ１００は、到来する通信フレーム２０のストリームＩＤ２９毎に、タイマ１６０を用いて到着時間１８４を計測し、計測した到着時間１８４をスケジュール情報１８０に格納する。つまり、制御系データの通信フレーム２０は、制御周期１０に同期して定周期で転送されるので、ＰＬＣ１００には、制御周期１０の開始から一定時間内に制御系データの通信フレーム２０が到着し得ると予測できる。したがって、ＰＬＣ１００は、タイマ１６０を用いて、この一定時間内に到来する通信フレーム２０が到来する通信ポートを検出するとともに到着時間１８４を計測する。検出した通信ポートの情報および計測した到着時間１８４は、それぞれ、スケジュール情報１８０の各ストリームＩＤ１８３毎のポートＩＤ１８６および到着時間１８４に設定する。これにより、スケジュール情報１８０の制御系データの通信フレーム２０のストリームＩＤ１８３毎の到来する通信ポートを設定できるとともに、到着時間１８４を最近の値に維持することができる。
【０１１０】
図１５は、本実施の形態にかかる再送処理における通信シーケンスの一例を模式的に示す図である。図１５を参照して、図１４のケースにおける再送処理を説明する。まず、ＰＬＣ（Ｒ１）の再送処理部７６は、例えば制御周期１０毎に、上記の通り制御系データの通信フレーム２０の到着時刻を予測し、スケジュール情報１８０のストリームＩＤ１８３毎に対応の到着時間１８４を更新する（ステップＳ１）
ＰＬＣ（Ｒ１）の再送処理部７６は、スケジュール情報１８０のストリームＩＤ１８３と、（ｔ）の制御周期１０の開始から一定時間内に到来する通信フレーム２０のストリームＩＤ２９とを比較し、比較の結果に基き、この一定時間内に到着していないストリームＩＤの通信フレーム２０が有ることを検出する（ステップＳ２）。すなわち、ストリームＩＤ１８３のうち、この一定時間内に対応の通信フレーム２０が到着していないストリームＩＤ１８３が有ることを検出する。ステップＳ２では、再送処理部７６は、図５または図６の再送要求フレームを生成し、通信回路１３０を介してネットワーク１１上に送信する。また、ステップＳ２では、通知処理部７７は、未着通知６を格納した通信フレーム２０を生成し通信回路１３０を介してネットワーク１１上に送信する。なお、再送処理では、制御周期１０にかかる条件が満たされるときは、再送要求９が送信される。ステップＳ２で送信される再送要求フレームの内容、未着通知６の送信および条件に基づく再送処理の詳細は後述する。
【０１１１】
図１５では、未着通知６は、ＰＬＣ（Ｒ２）に送信される。ＰＬＣ（Ｒ２）の再送処理部７６は、未着通知６を受信すると、ＰＬＣ（Ｒ２）に接続される他のＰＬＣ１００に未着通知６を転送する（ステップＳ３）。このような、他のＰＬＣ１００を、「後段ＰＬＣ」ともいう。これにより、ＰＬＣ（Ｒ２）および後段ＰＬＣ１００は、制御系データの到着を期待でき、到着を待つことができる。
【０１１２】
（ｔ）の制御周期１０内において、再送要求９の受信元の装置は、ＰＬＣ（Ｓ）とする。ＰＬＣ（Ｓ）の再送処理部７６は、再送要求９を受信したとき、バッファ１３２に保持されている通信フレーム２０のうち、再送要求フレームで指定される未着のストリームＩＤに一致する通信フレーム２０を、通信回路１３０を介してネットワーク１１上に送信する（ステップＳ４）。これにより、要求元のＰＬＣ（Ｒ１）に、再送要求９に応じた通信フレーム２０が再送される。
【０１１３】
ＰＬＣ（Ｒ１）は、再送された通信フレーム２０を受信すると、受信した通信フレーム２０をＰＬＣ（Ｒ２）に送信する転送処理を実施する。これにより、未着通知６を受けていた後段ＰＬＣであるＰＬＣ（Ｒ２）は、未着であった制御系データの通信フレーム２０を受信することができる。
【０１１４】
（ｉ１．再送要求フレームの生成）
ステップＳ２で送信される再送要求フレームを説明する。再送処理部７６は、再送要求フレームを図５の形式で生成する場合、領域２３に再送要求９の送信元のＰＬＣ（Ｒ１）のＭＡＣアドレスを格納する。また、領域２２の宛先装置のＭＡＣアドレスには、ＰＬＣ（Ｒ１）に最も近くに接続される装置のＭＡＣアドレスを設定する。具体的には、再送処理部７６は、未到着のストリームＩＤ１８３に対応したポートＩＤ１８６で特定される通信ポートのポート情報１７１（または１７２）のうち、ＰＬＣ（Ｒ１）に最も近くに接続される装置のＭＡＣアドレスを特定する。この場合は、ＰＬＣ（Ｓ）のＭＡＣアドレスが特定される。また、領域２６には、再送要求９のフラグ３１と、ステップＳ２で未到着が検出されたストリームＩＤ１８３を格納する。
【０１１５】
また、再送処理部７６は、再送要求フレームを図６の形式で生成する場合、領域２３は再送要求９の送信元の装置のＭＡＣアドレスを格納し、宛先の領域２２には再送要求フレームのストリームＩＤ２９１を格納し、領域２６には再送を要求する通信フレーム２０のストリームＩＤ２９（未到着のストリームＩＤ１８３）を格納する。
【０１１６】
（ｉ２．条件に基づく再送処理）
図１６は、本実施の形態にかかる再送処理を実行する条件を説明する模式図である。本実施の形態では、再送処理時間１７７と制御周期１０内の余裕時間との関係が、（再送処理時間１７７＜余裕時間）の条件を満たすとき、再送処理部７６は再送処理を実施すると決定する。したがって、再送処理部７６は、当該条件が満たされないときは、再送処理を実施しないと決定することもできる。
【０１１７】
上記の余裕時間は、余裕時間＝（制御周期１０の時間−制御に必要な処理(ＩＯリフレッシュ処理、制御演算処理等）にかかる時間）で算出される。なお、制御に必要な処理には、低優先度のタスクに割り付けられたユーザプログラムまたは周辺処理のプログラム、情報系の処理は含まれない。また、再送処理時間１７７は、再送要求９に対する応答を受信するまでに要する応答時間であって、再送処理時間１７７＝（ＰＬＣ（Ｓ）への再送要求９の通信時間＋ＰＬＣ（Ｓ）内の再送処理の時間＋ＰＬＣ（Ｓ）の再送通信時間）で算出される。なお、再送要求９の通信時間と再送通信時間は、（通信フレーム２０のサイズ／（通信帯域）＋ケーブル遅延時間）に基き算出される。また、ＰＬＣ（Ｓ）内の再送処理の時間は、再送要求９を受けた制御系データの送信準備（データ読出し、データコピー等）の時間を示す。
【０１１８】
なお、上記の応答時間は、より好ましくは、装置毎に、そのコンフィギュレーション８８に基き算出される。すなわち、応答時間は情報再送要求９の通信距離に依存する。したがって、再送処理部７６は、再送要求９の転送経路に応答可否情報１７４が「応答不可」である装置が存在するか否か、またはその台数を、コンフィギュレーション８８の接続情報テーブル１７０から判断し、判断の結果に基き、再送処理時間１７７を算出するための通信時間に係るパラメータ値を変化させる。これにより、各装置は、自装置に固有の接続情報テーブル１７０に基き、より正確な再送処理時間１７７の算出が可能となる。
【０１１９】
（ｉ３．再送処理のフローチャート）
図１７は、本実施の形態にかかる再送処理の一例を示すフローチャートである。図１７を参照して、図１４のＰＬＣ（Ｒ１）の再送処理部７６による再送処理を説明する。まず、再送処理部７６は、スケジュール情報１８０に登録されたストリームＩＤ１８３の通信フレーム２０が、対応の到着時間１８４に到着するかを判断する（ステップＳ１１）。再送処理部７６は、ストリームＩＤ１８３の通信フレーム２０が対応の到着時間１８４に到着していると判断すると（ステップＳ１１でＹＥＳ）、再送処理部７６は、受信した通信フレーム２０は未着通知６の通信フレーム２０であるかを判断する（ステップＳ１３）。再送処理部７６は、未着通知６の通信フレーム２０を受信したと判断すると（ステップＳ１３でＹＥＳ）、通知処理部７７は、後段ＰＬＣに未着通知６の通信フレーム２０を送信する（ステップＳ１５）。その後、ステップＳ１１に戻る。ステップＳ１５で未着通知６を受信したとき、再送処理部７６は、再送要求９を送信しないと判断することができる。
【０１２０】
一方、再送処理部７６は、受信した通信フレーム２０は、未着通知６の通信フレーム２０ではないと判断すると（ステップＳ１３でＮＯ）、制御演算部７３は、受信した通信フレーム２０のデータ（すなわち、制御系データ）に基づく制御演算処理を実施する（ステップＳ２３）。
【０１２１】
ステップＳ１１において、再送処理部７６は、ストリームＩＤ１８３の通信フレーム２０が対応の到着時間１８４に到着していない、すなわち未着と判断すると（ステップＳ１１でＮＯ）、通知処理部７７は、後段ＰＬＣに未着通知６の通信フレーム２０を送信する（ステップＳ１７）。
【０１２２】
再送処理部７６は再送処理を実行する条件（余裕時間＞再送処理時間１７７）が満たされるかを判断し（ステップＳ１９）、条件が満たされと判断すると（ステップＳ１９でＹＹＥＳ）、再送要求９の通信フレーム２０を送信する（ステップＳ２１）。その後、ステップＳ１１に戻る。
【０１２３】
一方、再送処理部７６は、再送処理を実行する条件が満たされないと判断すると（ステップＳ１９でＮＯ）、未着との判断がＮ（Ｎ＞２）回以下の制御周期連続しているかを判断する（ステップＳ２５）。再送処理部７６は、未着との判断がＮ（Ｎ＞２）回以下の制御周期１０が連続したと判断すると（ステップＳ２５でＹＥＳ）、ＰＬＣ（Ｒ１）の制御演算部７３は、記憶部１１４に蓄積された通信フレーム２０のデータのうち直近の制御周期１０の制御系データに基き制御演算を実施し、指令値，制御量を算出する（ステップＳ２７）。一方、再送処理部７６は、未着との判断がＮ（Ｎ＞２）回より多くの制御周期１０連続したと判断すると（ステップＳ２５でＮＯ）、後段ＰＬＣ（ＰＬＣ（Ｒ２））に対して、異常通知を送信する。後段ＰＬＣは、未着通知６の受信後に異常通知を受信するとき、所定の異常処理を実施する。例えば、ステップＳ２７と同様の処理を実施する。
【０１２４】
上記のステップＳ２５の変数Ｎの値は、例えばＰＬＣ（Ｒ１）に接続される制御対象の特性に応じて決めることができる。また、ステップＳ２７では、ＰＬＣ１００は、前の制御周期の制御系データに基づく制御演算の実施に代えて、前の制御周期で既に算出されていた指令値，制御量（記憶部１１４の出力データ１３５等）を、今回の制御周期１０で算出される制御系データとして決定してもよい。
【０１２５】
（ｉ４．再送処理を実行する条件の具体例）
図１８は、図１７のステップＳ１９の処理の一例を示すフローチャートである。図１８を参照して、再送処理の実行の条件の判断（ステップＳ１９）の詳細を説明する。まず、再送処理部７６は、未着と判断されたストリームＩＤ１８３の出力同期１８５が設定されているか、すなわち「１」を示すかを判断する（ステップＳ１９１）。
【０１２６】
出力同期１８５が設定されていると判断すると（ステップＳ１９１でＹＥＳ）、再送処理部７６は、（同期タイミングまでの余裕時間＞再送処理時間１７７）の条件が満たされるかを判断する（ステップＳ１９２）。再送処理部７６は、当該条件は満たされないと判断すると（ステップＳ１９２でＮＯ）、再送要求９を送信せずにステップＳ２５に移行するが、当該条件は満たされると判断すると（ステップＳ１９２でＹＥＳ）、再送処理部７６は再送要求９を送信する（ステップＳ２１）。
【０１２７】
ステップＳ１９１に戻り、再送処理部７６は、未着のストリームＩＤ１８３に対応の出力同期１８５は設定されていない、すなわち「０」を示すと判断すると（ステップＳ１９１でＮＯ）、再送処理部７６は上記の（余裕時間＞再送処理時間１７７）の条件が満たされるかを判断し（ステップＳ１９３）、満たされるときは（ステップＳ１９３でＹＥＳ）、ステップＳ２１に移行し、満たされないときは（ステップＳ１９３でＮＯ）、ステップＳ２５に移行する。
【０１２８】
なお、ステップＳ１９１では、未着のストリームＩＤ１８３毎に出力同期１８５を異ならせる動的設定によるが、ＰＬＣ１００毎に出力同期させるかを予め決定する静的設定でもよい。
【０１２９】
また、ステップＳ１９２の条件の「同期タイミングまでの余裕時間」は、出力同期するデータが未着の場合は（出力同期の時間−未着検出時間）で算出されてもよく、また、未着のストリームＩＤの通信フレーム２０を受信した場合は、（出力同期の時間−未着フレーム受信時間）で算出されてもよい。なお、出力同期の時間は、トリガ７を出力する予め定められた時間に相当する。
【０１３０】
＜Ｊ．フィールド装置９０による再送処理＞
本実施の形態では、再送処理は、ＰＬＣ１００とフィールド装置９０のいずれもが実施することができる。上記に述べたＰＬＣ１００の再送処理は、フィールド装置９０の再送処理部６１により同様に実施することができる。図１９は、本実施の形態にかかるフィールド装置９０による再送処理の一例を模式的に示す図である。
【０１３１】
図１９では、フィールド装置９０Ａが再送処理部６１を備えないケースにおいて、フィールド装置９０Ｃからの通信フレーム２０がＰＬＣ（Ｏ）まで転送される途中でフレーム消失８が発生している。したがって、フィールド装置９０ＡとＰＬＣ（Ｏ）は通信フレーム２０が到着しない。フィールド装置９０Ａが再送処理部６１を備えないので再送要求９は送信しないが、ＰＬＣ（Ｏ）は再送要求９を送信する。
【０１３２】
この場合、ＰＬＣ（Ｏ）の再送処理部７６は、未着のストリームＩＤ１８３のポートＩＤ１８６から特定されるポート情報１７１（または１７２）のうち、応答可否情報１７４に該当しない装置のうち、すなわち再送処理部６１を備える装置のうち最も近くに位置する装置（図１９ではフィールド装置９０Ｂ）に再送要求９を送信する。フィールド装置９０Ｂの再送処理部６１、再送要求９を受信すると、要求されたストリームＩＤ１８３の通信フレーム２０の再送信を実施する。これにより、フィールド装置９０ＡおよびＰＬＣ（Ｏ）は、未着であった通信フレーム２０を受信することができる。
【０１３３】
＜Ｋ．利点＞
図２０は、本実施の形態にかかる制御システム１の構成を他の構成と対して示す図である。図２０を参照して、制御システム１により奏される利点を説明する。図２０では、装置間の通信に共通した１のプロトコル（例えば、ＴＳＮ）を用いる制御システム１と、装置間の通信に複数種類のプロトコル（例えば、ＴＳＮとＥｔｈｅｒＣＡＴ（登録商標））を用いる制御システム３を示す。制御システム３では、ＰＬＣ１００間の通信にはＴＳＮが使用されて、ＰＬＣ１００とフィールド装置９０間およびフィールド装置９０間の通信にはＥｔｈｅｒＣＡＴ（図中は、ＥＣＡＴと略される）が使用されている。
【０１３４】
図２０において、Ｅ２Ｅにより、フィールド値の一例であるロボットの位置情報のフレームを、フィールド装置９０Ａからフィールド装置９０Ｄへ送信するケースにおいて、制御システム１では、共通プロトコルが用いられるので、フィールド装置間の通信レイヤからＰＬＣ１００間の通信レイヤへ、フレームが転送される場合にプロトコル変換は必要とされない。これに対して、制御システム３では、（１）ＥＣＡＴ通信→（２）ＥＣＡＴ/ＴＳＮのプロトコル変換→（３）ＴＳＮ通信→（４）ＴＳＮ/ＥＣＡＴのプロトコル変換→（５）ＥＣＡＴ通信というように、通信経路においてプロトコル変換（２）および（４）を実施する必要がある。
【０１３５】
このように、制御システム１は、レイヤ間を跨ぐ通信であっても、プロトコル変換を必要とせずに装置は互いのデータを共有することが可能となる。また、制御システム１は、プロトコル変換を必要としないので、制御システム３に比較してレイヤ間の通信を高速化することができる。したがって、制御システム１に備えられる装置は、比較的短い通信周期内、例えば、制御周期１０内のＩＯリフレッシュ処理の周期内で互いのデータを共有することが可能となる。これにより、ＰＬＣ１００は、ユーザプログラム１２４による制御演算処理の開始に先立って演算対象となる全ての値（フィールド値）を取得しておくことができるので、通信遅延を考慮せずにユーザプログラム１２４を設計することも可能となる。
【０１３６】
また、ネットワーク１１では、制御系データの通信フレーム２０と非制御系データ（情報系および制御情報系）の通信フレーム２０を転送するが、再送要求９は制御系データの通信フレーム２０についてのみ送信される。したがって、定周期で到着することが保証されるべき制御系データに限定して再送要求９が送信されるので、再送要求９が送信されるとしても、ネットワーク１１の通信帯域の消費を抑制することができる。
【０１３７】
＜Ｌ．付記＞
上述の実施の形態は、以下のような技術思想を含む。
[構成１]
互いに時刻同期された複数の装置（１００，９０）がネットワーク（１１）接続された制御システム（１）であって、
前記ネットワークは、前記複数の装置が周期的に遣り取りするフレーム（２０）を転送し、
前記複数の装置は、１以上の制御装置（１００）と、前記制御装置により制御される装置（９０）とを含み、
各前記複数の装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、前記ネットワークを介して接続し、
前記各装置は、フレームの転送経路（１７０，８６）および同期した時刻に基づく転送タイミング（１８０，８７）の情報を有し、
前記複数の装置の少なくとも１つは、
前記転送経路を介してフレームが規定時間に到着しない場合に、前記周期（１０）にかかる条件が満たされるときは、再送要求（９）を、当該転送経路で送信する、制御システム。
[構成２]
前記周期は、前記複数の装置がフレームを遣り取りする時間と、遣り取りされるフレームのデータに基づく前記１以上の制御装置が実施する制御演算の時間とを含み、
前記条件は、
前記フレームを遣り取りする時間および前記制御演算の時間を、前記周期から除いた余裕時間と、前記再送要求に対する応答時間とに基づく条件を含む、構成１に記載の制御システム。
[構成３]
前記周期にかかる条件が満たされないとき、前記１以上の制御装置は、前の周期で到着したフレームのデータに基く前記制御演算を実施する、または前の周期での算出値を制御に用いる、構成２に記載の制御システム。
[構成４]
前記少なくとも１つの装置は、
前記再送要求を、ネットワークを介して前記第１の装置に転送するとき、
フレームの未着通知を、ネットワークを介して前記第２の装置に転送する、構成１から３のいずれか１に記載の制御システム。
[構成５]
前記ネットワークが転送するフレームは、前記制御に用いる制御系データのフレームと、非制御系データのフレームとを含み、
前記少なくとも１つの装置は、
前記再送要求を、前記制御系データのフレームと前記非制御系データのフレームのうち、前記制御系データのフレームについてのみ送信する、構成１から４のいずれか１に記載の制御システム。
[構成６]
前記少なくとも１つの装置は、
ネットワークを介して、複数の前記第１の装置を接続し、
前記複数の第１の装置のうち、前記再送要求に対する応答が可能な装置を検出し、検出された装置に前記再送要求を送信する再送処理部（７６，６１）を備える、構成１から５のいずれか１に記載の制御システム。
[構成７]
前記制御装置間のネットワーク通信のプロトコルと、前記制御装置と前記制御される装置間のネットワーク通信のプロトコルは共通する、構成１から６のいずれか１に記載の制御システム。
[構成８]
制御システム（１）に備えられる装置（１００，９０）であって、
前記制御システムは、ネットワーク（１１）接続されて互いに時刻同期された複数の前記装置を備え、
前記ネットワークは、前記複数の装置が周期的に遣り取りするフレーム（２０）を転送し、
前記装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、前記ネットワークを介して接続し、
前記装置は、フレームの転送経路（１７０，８６）および同期した時刻に基づく転送タイミング（１８０，８７）の情報を有し、
前記転送経路を介してフレームが規定時間に到着しない場合に、前記周期にかかる条件が満たされるときは、再送要求（９）を、当該転送経路で送信する、装置。
[構成９]
制御システム（１）に備えられる装置（１００，９０）の通信を制御する方法であって、
前記制御システムは、ネットワーク（１１）接続されて互いに時刻同期された複数の前記装置を備え、
前記ネットワークは、前記複数の装置が周期的に遣り取りするフレーム（２０）を転送し、
前記装置は、自装置に到来するフレームを送信する第１の装置および自装置から送信されるフレームを受信する第２の装置を、それぞれ、前記ネットワークを介して接続し、
前記装置は、フレームの転送経路（１７０，８６）および同期した時刻に基づく転送タイミング（１８０，８７）の情報を有し、
前記装置の通信を制御する方法は、
前記ネットワークを介して当該装置に到来するフレームを受信するステップと、
前記転送経路を介してフレームが当該装置に規定時間に到着するかを検出するステップと、
前記フレームが到着しない場合、前記周期（１０）にかかる条件が満たされるときは、再送要求（９）を、当該転送経路で送信するステップと、を備える、方法。
【０１３８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３９】
１，３  制御システム、２，１１  ネットワーク、６  未着通知、７  トリガ、８  フレーム消失、９  再送要求、１０  制御周期、１１１  シーケンス、１２  フロー、２０  通信フレーム、２１，２２，２３，２４，２５，２６，２７  フィールド、２９，２９１，１８３  ストリームＩＤ、３０  ＭＡＣアドレス、３１  フラグ、６０，７５  通信処理部、６１，７６  再送処理部、６２，７７  通知処理部、６３  入出力処理部、７２  ＩＯリフレッシュ部、７３  制御演算部、７４  周辺処理部、８１，１２２  システムプログラム、８２，１２１  時刻同期プログラム、８３，１２７  通信プログラム、８４，１２８  再送プログラム、８５，１２９  通知プログラム、８６，１７０  接続情報テーブル、８７，１８０  スケジュール情報、８８，１２６  コンフィギュレーション、８９  トリガ時間、９０，９０Ａ，９０Ｂ，９０Ｃ，９０Ｄ，９０Ｅ，９０Ｆ  フィールド装置、９１，１１２  プロセッサ、９２  メモリ、９３  通信Ｉ／Ｆ  ９４、１００，１００Ａ，１００Ｂ  ＰＬＣ，１３０  通信回路、９５，１０８，１４４  メモリカードインターフェイス、９６，１１６  メモリカード、９９，９９Ａ〜９９Ｆ，１６０，１６０Ａ，１６０Ｂ，２００Ａ  タイマ、１０７，１４０  コントローラ、１１０  演算処理部、１１４  記憶部、１１９  ストレージ、１２０  周辺処理プログラム、１２３  スケジューラ、１２４  ユーザプログラム、１２５  ＩＯリフレッシュプログラム、１３２，９４１  バッファ、１３４，９４４  入力データ、１３５，９４３  出力データ、１３６，１３７，９７１，９７２  通信ポート、１７１，１７２  ポート情報、１７３  装置情報、１７４  応答可否情報、１７７  再送処理時間、１８４  到着時間、１８５  出力同期、２００  マスタ、５００  サポート装置。
【図１】
2020150485.tif 000003
【図２】
2020150485.tif 000004
【図３】
2020150485.tif 000005
【図４】
2020150485.tif 000006
【図５】
2020150485.tif 000007
【図６】
2020150485.tif 000008
【図７】
2020150485.tif 000009
【図８】
2020150485.tif 000010
【図９】
2020150485.tif 000011
【図１０】
2020150485.tif 000012
【図１１】
2020150485.tif 000013
【図１２】
2020150485.tif 000014
【図１３】
2020150485.tif 000015
【図１４】
2020150485.tif 000016
【図１５】
2020150485.tif 000017
【図１６】
2020150485.tif 000018
【図１７】
2020150485.tif 000019
【図１８】
2020150485.tif 000020
【図１９】
2020150485.tif 000021
【図２０】
2020150485.tif 000022