ところで、制御ネットワークを利用した分散制御システムは、大規模で複雑であったり、又は、冗長性(通信経路及び機能)による高い信頼性を実現するためのものであったりする場合がある。この場合、分散制御システムを構成する分散機能を配置したり、制御ネットワークを構成するネットワークスイッチや端末通信デバイスのタイムスロットなどのネットワークリソースを適切に構成したりすることは困難となる。特許文献1及び2のいずれにも、分散制御システムにおける機能及びネットワークリソースを適切にアロケーションできるようにすることについては記載されていない。
以下の詳細な説明は、本出願の図面及び実施例の詳細を提供する。図面の冗長な要素の参照番号及び説明は、明確化のために省略される。本明細書全体にわたって使用される用語は、例として提供されており、限定することを意図するものではない。例えば、用語「自動」の使用は、本出願の実施形態を実施する当業者の所望の実施形態に応じて、実施形態の特定の態様に対するユーザ又は管理者の制御を含む完全自動又は半自動の実施形態を含み得る。選択は、ユーザインタフェース又は他の入力手段を介してユーザが行うことができる。若しくは、所望のアルゴリズムを介して実現され得る。本明細書に記載される実施例は、単体で又は組み合わせて利用することができ、実施例の機能は、所望の実施形態に応じて任意の手段で実現され得る。
図1は、本発明の一実施形態に係る制御システムの構成例を示す。制御デバイス120a~120dは、ネットワーク中継デバイス121a~121f、及び、制御ネットワーク122を介して、入出力(I/O)制御デバイス123a~123cに接続及び通信する。
制御デバイス120a~120dは、I/O制御デバイス123a~123c及び通信パケットを送受信することにより、被制御デバイス124a~124cを制御するための制御コマンド値の送信、センサやアクチュエータなどの被制御デバイス124a~124cの測定値又はセンサ情報の取得、並びに、各種設定を行う。
分散制御システム(DCS)の中央制御ユニット及び電力システムの保護リレーなどの制御デバイス120a~120dは、制御システム内のサンプリングデータ、制御コマンド、及び、状態信号を交換することができる。同一の制御システム内のデータはパケットで統合することができる。
制御デバイス120a~120dの例として、専用制御装置、産業用パーソナルコンピュータ(PC)、制御コンピュータ、DCS制御装置、SCADA(Supervisory Control and Data Acquisition)サーバ、PLC(プログラマブルロジックコントローラ)、IED(intelligent electronic device)、保護リレー、クラウド、サーバが挙げられる。
ネットワーク中継デバイス121a~121fは、制御ネットワーク122における中継デバイスである。制御デバイス120a~120d、I/O制御デバイス123a~123c及びネットワーク中継デバイス121a~121fの間で通信されるパケットは、ルーティングされて伝送される。
ネットワーク中継デバイス121a~121fとしては、TSN対応スイッチ、L2スイッチ、L3スイッチを含むネットワークスイッチ、ブリッジ、ルータ、IEEE1588TC(Transparent Clock)、BC(Boundary Clock)、OpenFlowスイッチ、IEC62439-3により規定されたRedBox、QuadBox、光スイッチ、光発振器、光デバイスなどの各種ネットワーク中継装置が例示される。
制御ネットワーク122は、制御デバイス120a~120d、ネットワーク中継デバイス121a~121f、及び、I/O制御デバイス123a~123cを接続するためのネットワークである。制御ネットワーク122の例として、IEEE802.3(Ethernet)、EtherCAT(登録商標)(IEC61784、IEC61784-2 Communication Profile Family12)、IEC61158で定義された制御ネットワーク、TSNに関連するIEEE通信規格、DNP(Distributed Network Protocol)3、IEC61970、IEC62439-3のHSR(High availability Seamless Redundancy)及びPRP(Parallel Redundancy Protocol)を含む各種産業用ネットワーク、リングネットワーク、IEEE802.17RPR、CAN(Controller Area Network(登録商標))、DeviceNet、RS-232C、RS-422、RS-485、ZigBee(登録商標)、Bluetooth(登録商標)、IEEE802.15、IEEE802.1、移動体通信、OpenADR、ECHONET Lite(登録商標)、OPENADR(登録商標)、Wi-Fi及び5Gなどの各種無線通信が挙げられる。
さらに、上層プロトコルとしては、IEC61850、OPC UA(Unified Architecture)、DDS(Data Distribution Service)、IEC61850-7-420、IEC60870-5-104などが例示される。あるいは、上述のプロトコルが階層化されてよい。例えば、データの内容がTSNであるとき、パケットはOPC UA規格を適用することが例示される。
I/O制御デバイス123a~123cは、センサ及びアクチュエータなどの被制御デバイス124a~124cに接続され、制御ネットワーク122を介して、制御デバイス120a~120dから受信した制御コマンドに従って、被制御デバイスを制御及び構成する。さらに、被制御デバイス124a~124cの状態及び情報を得て、制御ネットワーク122を介して制御デバイス120a~120dに送信する。
I/O制御デバイス123a~123cの例として、専用制御装置、産業用PC、制御用コンピュータ、DCS制御装置、SCADAデバイス、PLC、IED、MU(Merging Unit)、保護リレーが挙げられる。
被制御デバイス124a~124cは、I/O制御デバイス123a~123cによって制御されるデバイスである。被制御デバイス124a~124cとしては、移動ロボットやロボットアームなどの産業用ロボット、チップマウンタ、工作機械テーブル、加工設備、工作機械、半導体製造設備、又は製造装置のモータ、インバータやサーキットブレーカ、遮断器などの電力機器、各種センサ(エンコーダ、温度センサ、圧力センサなど)が例示される。
ネットワークプランニング装置125(プランニングノードの一例)は、制御デバイス120a~120d、ネットワーク中継デバイス121a~121f、及び、I/O制御デバイス123a~123cのネットワークリソースを制御する。このようなネットワークリソースは、通信帯域幅、時分割多重アクセス法におけるタイムスロット幅、優先度などの仮想ネットワーク(VLAN)に関連するパラメータ、通信タイプ(識別子など)、通信経路を冗長する設定などを含み得るが、これらに限定されない。
ネットワークプランニング装置125は、制御デバイス120a~120d、ネットワーク中継デバイス121a~121f、及び、I/O制御デバイス123a~123cと通信することによって、それらデバイスの状態を得ることができる。
ネットワークプランニング装置125の例としては、SDNのOpenFlow制御装置などの通信制御デバイスや、専用通信デバイスが挙げられる。
なお、図1のネットワーク中継デバイス121a~121fの数は、所望の実施形態に従って任意の数とすることができ、また、制御デバイス120a~120dとI/O制御デバイス123a~123cとの通信経路の数は異なってよい。
さらに、制御デバイス120a~120d及びI/O制御デバイス123a~123cは区別されるが、通信デバイスは、所望の実施形態に応じて1つのデバイスに両方の役割を含み得る。
制御システムには、1つ以上の制御デバイス120a~120dが存在し得る。
図1に示す制御システムとしては、FA(Factory Automation)やPA(Process Automation)のDCSなどの制御システム、電力システムにおける監視保護制御システム、産業設備、半導体製造設備、車載システム、建設機械や鉄道車両の制御システム、鉄道地上信号システム、航空機の制御システムなどを適用できる。あるいは、制御ネットワーク122を介して収集した情報に、制御デバイス120a~120dやクラウド又はコンピュータで人工知能を使用することにより、制御システムの性能を向上させるIoTシステムも適用可能である。
図2は、本発明の一実施形態に係る制御デバイス120及びネットワークプランニング装置125のハードウェア構成を示す図である。中央処理装置(CPU)101は、不揮発性記憶媒体105からメモリ104にプログラムを転送し実行する。実行プログラムとしては、オペレーティングシステム(以下、OS)、及び、OS上で動作するアプリケーションプログラムが例示される。CPU101で動作するプログラムは、通信制御集積回路(IC)102の設定を操作し、状態情報を得る。
通信制御IC102は、CPU101で動作するソフトウェアから送信要求の送信データを受信し、物理層(PHY)103を用いて制御ネットワーク122に送信する。また、通信制御IC102は、制御ネットワーク122から受信したデータを、バス106を介して、CPU101、メモリ104、及び、不揮発性記憶媒体105に転送する。
また、通信制御IC102は、ネットワークを使用した時刻同期プロトコルを実行するための機能を提供する。つまり、通信制御IC102は、時刻同期パケットの送受信時のタイムスタンプ、同期パケットへの補正値の設定、及び、補正値への残留時間の付加を制御する。
このような時刻同期プロトコルは、所望の実施形態に従って、IEEE1588、IEEE802.1AS、NTP、SNTPなどを含む。補正値としては、IEEE1588のCF(Correction Field)を適用可能である。さらに、別の例では、同期された時刻に基づいた時刻管理機能のサポートを含み得る。このような時刻管理機能は、指定された時刻での割込み、アラーム信号の生成、所定の周期での割込み、他の機能ユニット及びデバイスへの同期時刻の提供などを含む。
通信制御IC102の実施形態は、所望の実施形態に従って、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、ASIC(Application Specific Integrated Circuit)、ゲートアレイなどのICなどである。あるいは、CPU101と一体化して構成され得る。通信制御IC102は、MAC層及び/又はPHY層を含むIEEE802.3通信デバイスであり得る。この場合、通信制御IC102の実施例としては、IEEE802.3のMAC(Media Access Control)チップ、PHY(物理層)チップ、MAC/PHY複合チップが挙げられる。なお、通信制御IC102は、CPU101、又はコンピュータ内部の情報経路を制御するチップセットに含まれ得る。さらに、図2の構造では、単一の通信制御IC102のみを示しているが、通信制御IC102の数は複数であり得る。
PHY103は、制御ネットワーク122との通信機能を実現するトランシーバICである。PHY103によって提供される通信規格としてのIEEE802.3が、通信機能の一例である。図2の構造では、PHY103と通信制御IC102とは接続されているので、IEEE802.3のメディアアクセス制御(MAC)処理は、通信制御IC102に含まれる。しかしながら、通信制御IC102とPHY103との間にMAC機能ICを配置する構造や、MAC機能ICとPHY103とを組み合わせた通信ICと通信制御IC102とを接続する構造には、本実施例の効果が残っている。なお、PHY103は、通信制御IC102に含まれ得る。さらに、図2の構造では、PHY103は1つしか示されていないが、PHY103の数は、所望の実施形態に応じて複数であり得る。
メモリ104は、CPU101が動作するための一時記憶領域であり、不揮発性記憶媒体105から転送されたOSやアプリケーションプログラムを記憶する。
不揮発性記憶媒体105は、情報記憶装置であり、OSアプリケーションやデバイスドライバなどのCPU101を動作させるためのプログラム、及び、プログラムの実行結果を記憶するコンピュータ読取可能な非一過性の記憶媒体の一例として用いられる。不揮発性記憶媒体105としては、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュメモリなどが使用可能な例として挙げられる。さらに、外部取り外し可能記憶媒体の例として、フロッピーディスク(FD)、CD、DVD、Blu-ray(商標)、USBメモリ、コンパクトフラッシュ(商標)などが考えられる。
バス106は、CPU101、通信制御IC102、メモリ104、不揮発性記憶媒体105を接続する。バス106の例としては、PCI(Peripheral Component Interconnect)バス、ISA(Industry Standard Architecture)バス、PCI Expressバス、システムバス、メモリバスなどが挙げられる。
図3は、一実施形態に係るI/O制御デバイス123のハードウェア構成を示す図である。I/Oユニット107は、被制御デバイス124を制御したり、被制御デバイス124の情報を取得したりするための入出力インタフェースである。I/Oユニット107として使用できる例としては、各種デジタル入出力インタフェース及びアナログI/O ICである。I/Oユニット107からの信号線は1本で示されているが、被制御デバイス124に応じて複数であり得る。
図4は、一実施形態に係るネットワーク中継デバイス121のハードウェア構成を示す図である。通信ルーティング制御IC108は、バス106と1つ以上のPHY103とを接続し、受信したパケットのルーティング制御を実行する。通信ルーティング制御IC108は、バス106に接続し、バス106を介して、通信制御IC102と通信することができる。
通信ルーティング制御IC108の例としては、FPGA、CPLD、ASIC、ゲートアレイなどのICなどである。なお、通信ルーティング制御IC108は、所望の実施形態に応じて、CPU101又はコンピュータ内部の情報経路を制御するチップセットに含まれ得る。さらに、任意の数のPHY103を使用して、所望の実施形態を促進することができる。
図5は、本発明の一実施形態に係るネットワークプランニング装置125の機能構成を示す図である。分散機能要件記憶部130は、図1に示した制御システムを構成する機能の要件を記憶する。このような要件は、機能間の通信遅延や通信サイクル、制御周期、通信スループット、通信経路の冗長性又は機能自体の冗長性、通信帯域幅、使用する特定のセンサやアクチュエータ、機能間の通信の位相(タイミング)差を含む。通信遅延とは、パケットが送信側(送信元機能)から受信側(送信先機能)に届くまでにかかる時間を意味する。
通信サイクルとは、制御ループにおいて一連の通信が行われる期間を意味する。制御周期とは、センサの読み取り、コマンドの計算、アクチュエータへの出力などの一連の制御動作が行われる期間を意味する。通信スループットとは、通信チャンネルを介したメッセージの配信の成功率を意味する。通信経路の冗長性とは、機能間の通信の冗長性の程度を意味する。換言すれば、通信経路の冗長性とは、機能間で利用可能な通信経路の数を意味する。機能の冗長性とは、機能の冗長又は重複する機能を含む機能の数を意味する。通信帯域幅とは、所与の経路におけるデータ転送の最大レートである。機能間の通信位相差(タイミング)とは、機能の通信処理(例えば、パケットの送受信)の時間差を意味する。この要件の一例としては、通信サイクルにおける、ある機能の送信タイミングと別の機能の送信タイミングとの差の300μsである。
分散機能要件記憶部130は、所望の実施形態に応じて、不揮発性記憶媒体105、CPU101、CPU101で動作するアプリケーション等によって実現される。
分散機能要件記憶部130への要件の設定は、オペレータがオンラインで明示的に(例えば、ユーザインタフェースを介して)入力することができる。もしくは、各通信デバイスが要件を保持し、通信デバイスが制御ネットワーク122に接続されたとき、要件が各通信デバイスから収集され、それらを分散機能要件記憶部130に通知することができる。要件を保持する対象は、通信デバイスに限らず、所望の実施形態に応じて、アプリケーションプログラム、仮想マシン、コンテナソフトウェア等であり得る。
リソースアロケーション・プランニング・ユニット131(プロセッサ部の一例)は、分散機能要件記憶部130に記憶されている機能の要件、ネットワーク情報記憶ユニット133に記憶されているネットワーク情報、ネットワーク状態収集ユニット134が収集したネットワークの状態に基づいて、制御システムを構成する制御デバイス120、ネットワーク中継デバイス121、及び、I/O制御デバイス123のリソースアロケーションをプランする。
プランされた結果は、プラン配信ユニット132により、制御デバイス120、ネットワーク中継デバイス121、及び、I/O制御デバイス123の1つ以上に配信される。リソースアロケーション・プランニング・ユニット131は、所望の実施形態に応じて、CPU101又はCPU101で動作するアプリケーションで実現される。プラン配信ユニット132は、リソースアロケーション・プランニング・ユニット131が計画したリソースアロケーションの結果を、制御ネットワーク122を介して、制御デバイス120、ネットワーク中継デバイス121、又は、I/O制御デバイス123の1つ以上に配信する。
配信プロトコルの例は、OpenFlow及びTSNに関連するIEEE規格(IEEE802.1Qat、IEEE802.1Qcc、IEEE802.1Qcaなど)並びに独自プロトコルである。独自プロトコルには、少なくとも制御されるネットワークリソースのタイプ及びそれらを制御する手段を定義する情報が含まれる。また、所望の実施形態に応じて、ネットワークリソースの制御を変更する時刻、絶対時刻又は相対時刻での継続時間等を含めることが可能である。絶対時刻は、制御システムで統一された時刻であり得る。
プラン配信ユニット132は、通信制御IC102及び/又はPHY103を用いて実現される。
ネットワーク情報記憶ユニット133は、制御システムを構成する制御ネットワーク122の情報を記憶する。記憶される情報は、制御デバイス120、ネットワーク中継デバイス121及びI/O制御デバイス123によって促進されるネットワークトポロジ、通信デバイス間の通信遅延及び通信媒体、通信スループット、使用する通信プロトコル、ネットワーク中継デバイス121におけるタイムスロットの設定に関連するパラメータ(例えば,タイムスロットの設定における通信キューの時間分解能の数など)、VLANの設定に関連するパラメータ(例えば、優先順位の数及び優先順位のタイプなど)、制御デバイス120の動作性能(CPUの周波数及びメモリ又は記憶装置の容量など)、制御デバイス120によってサポートされる仮想化技術及びコンテナ技術(例えば、ハードウェアサポートの存在)である。
ネットワーク情報記憶ユニット133は、制御ネットワーク122及びネットワーク中継デバイス121の性能及びトポロジの状態を収集する。オペレータは、制御システムの起動時に、これらの情報を入力してもよく、又は、動的に収集されてもよい。本実施形態では、オペレータは、ユーザインタフェースを介して、又は、所望の実施形態に従った他の方法により、要件の入力を提供することができる。
情報収集は、ping(ICMP)、IEEE1588の遅延要求応答メカニズム、TSNのIEEE通信規格、STP(Spanning Tree Protocol)又はRSTP(Rapid Spanning Tree Protocol)で定義されたツリートポロジを構築するためのパスコスト、及びRIP(Routing Information Protocol)などのルーティングプロトコルを使用することができる。
あるいは、独自のプロトコルが情報収集のために使用され得る。独自プロトコルは、ネットワーク中継デバイス121によって管理可能なネットワークリソースのタイプ、設定可能な値の範囲、パラメータセット、収集される情報の現在の設定状況などを含み得る。
ネットワーク情報記憶ユニット133は、CPU101、CPU101で動作するアプリケーション、不揮発性記憶媒体105等によって実現される。
ネットワーク状態収集ユニット134は、制御ネットワーク122を介して制御システムの状態情報を収集する。収集する情報としては、制御デバイス120、ネットワーク中継デバイス121、及び、I/O制御デバイス123の障害情報(例えば、システムダウンタイムなど)、並びに、制御ネットワーク122の障害情報(経路異常など)などが挙げられる。また、ネットワークの状態を観測するために、一例として、定期的に通信する通信デバイス間のハートビート情報(生存監視)が挙げられる。ネットワーク状態収集ユニット134は、CPU101、CPU101で動作するアプリケーション、通信制御IC102、及び/又は、PHY103の1つ以上によって促進することができる。
図6は、本発明の一実施形態に係る制御デバイス120及びI/O制御デバイス123の機能構成を示す図である。処理ユニット140は、制御動作及び情報処理動作の処理又は計算を実行する。制御動作の例としては、I/O制御デバイス123による被制御デバイス124の制御に必要なコマンド値の計算が挙げられる。被制御デバイス124を直接制御するためのコマンド値を計算すること、又は、I/O制御デバイス123が被制御デバイス124を制御するための目標値を計算することが可能である。これらのコマンド値の計算には、I/O制御デバイス123から受信した情報が使用され得る。受信情報は、被制御デバイス124の状態信号を含む。
I/O制御デバイス123は、I/Oユニット107を介して被制御デバイス124を制御する。又は、I/O制御デバイス123は、I/Oユニット107を介して被制御デバイス124の状態情報及びセンサ情報を取得する。
情報処理の例としては、I/O制御デバイス123を介して得られた被制御デバイス124の状態信号を、Webサーバなどを用いて外部に提示すること、被制御デバイス124の状態管理、複数のI/O制御デバイス123及び被制御デバイス124のアセット管理(ソフトウェアのバージョン制御やアップデートなど)、人工知能(AI)及び機械学習処理、予防保全や状態監視保全(CBM)などの保全機能、残余寿命予測等が挙げられる。
処理ユニット140の処理は、時刻同期ユニット143によって同期された時刻に基づいて行われ得る。処理ユニット140は、CPU101又はCPU101で動作するアプリケーションによって促進される。通信ユニット141は、制御ネットワーク122の通信プロトコルに従って通信する制御ネットワーク122に接続する。通信ユニット141は、PHY103に接続され、送信時にバス106から通知されたデータ又はパケットを処理する。処理としては、データからのフレーム生成、データ又はパケットの複製、所定のタグの付加、周期冗長検査コード(CRC)などの異常診断データの計算及び付加が挙げられる。送信用付加タグの例としては、所望の実施形態に従って、IEEE802.1Qで定義されたVLANタグ、IEC62439-3で定義されたHSRタグ及びPRPタグなどを含み得る。VLANタグの設定は、PCP(Priority Code Point)、VID(VLAN Identifier)の設定を含む。
通信ユニット141は、パケットを受信すると、受信したパケットを、処理ユニット140又は時刻同期ユニット143に転送する。通信ユニット141が、受信したパケットを処理してもよい。プロセッシング処理としては、パケットに付加されたタグの削除及びデータの抽出が例示される。さらに、通信ユニット141は、ソースアドレスやタグなどの処理したパケットの情報を一定時間保持するための情報記憶手段を有し得る。通信ユニット141は、CPU101、通信制御IC102、PHY103で動作する1つ以上のアプリケーションによって構成され得る。
通信スケジュールユニット142は、通信ユニット141がパケットを送信するための通信スケジュールを管理する。これは、時刻同期ユニット143によって同期された時刻に基づいて実行することができる。例えば、通信ユニット141の通信処理は、通信デバイスによって提供されるハードウェアタイマ又はソフトウェアタイマからの割込みによって駆動される。
通信スケジュールユニット142は、CPU101、CPU101で動作するアプリケーション、通信制御IC102、及び/又は、PHY103のうち1つ以上によって促進され得る。
時刻同期ユニット143は、時刻同期プロトコルを実行し、制御デバイス120の時刻を基準時刻に同期させる。実行される時刻同期プロトコルは、IEEE802.1AS、IEEE1588、NTP、SNTPなどであり得る。
時刻同期ユニット143は、CPU101、CPU101で動作するアプリケーション、通信制御IC102、及び/又はPHY103のうち1つ以上によって促進され得る。
図7は、本発明の一実施形態に係るネットワーク中継デバイス121の機能構成を示す図である。通信ルーティング制御ユニット150は、複数の通信ユニット141に接続され、通信ユニット141によって送信されたパケットを受信し、受信したパケットの情報と通信ルーティング制御ユニット150に設定された情報とに基づいて、受信したパケットの転送先(つまり、対応する通信ユニット141)へのルートを制御する。
なお、転送先である通信ユニット141へのパケットの送信タイミングは、転送先決定直後であっても、転送待ちのパケット間での優先度に基づいて制御されてもよく、時分割通信方法で所定のタイムスロット毎に転送されてよい。タイムスロット通信の一例は、IEEE801.1Qbvである。
通信ルーティング制御ユニット150は、CPU101、CPU101で動作するアプリケーション、FPGA、CPLD、ASIC、ゲートアレイ、通信ルーティング制御IC108のうちの1つ以上によって構成され得る。なお、通信ルーティング制御ユニット150は、CPU101やコンピュータ内部の情報経路を制御するチップセットに含まれ得る。さらに、通信ユニット141の構成に応じて、通信に必要な機能を組み込むことも可能である。例えば、通信ユニット141がPHY機能に相当する場合、通信ルーティング制御ユニット150は、所望の実施形態に応じて、MAC層に相当する機能を含むことができる。
ネットワークリソース管理ユニット151は、通信ルーティング制御ユニット150、1つ以上の通信ユニット141のネットワークリソース制御の利用及びアロケーションを管理する。また、ネットワークリソース管理ユニット151は、ネットワークプランニング装置125のリソースアロケーション・プランニング・ユニット131及びプラン配信ユニット132から通知された内容、又は、所定のルールに基づいて、ネットワーク中継デバイス121のネットワークリソースを制御する。
このようなネットワークリソースとしては、時分割通信方法における通信帯域幅の時間幅、通信タイプの優先度/通信タイミングなどのパラメータ、所定のパケット、及び使用する通信経路数などであり得る。
CPU101、CPU101で動作するアプリケーション、LSIなどの通信ルーティング制御IC108を、ネットワークリソース管理ユニット151として、ネットワーク中継デバイス121のネットワーク処理のために使用できる。
図8は、本発明の一実施形態に係るネットワークプランニング装置125におけるリソースアロケーションのプランニング動作手順を示す図である。
最初に、ネットワークプランニング装置125は、リソースアロケーションのプランニングのための情報を収集する(S001)。これは、分散機能要件記憶部130からの要件の抽出、ネットワーク情報記憶ユニット133からのネットワーク情報の抽出、及び/又は、ネットワーク状態収集ユニット134からのネットワーク状態の抽出のうちの1つ以上を示す。ネットワークプランニング装置125は、リソースの割り当てをプランするために必要な情報を収集後、リソースアロケーションをプランする(S002)。プランニング方法の詳細については後述する。リソースアロケーションのプランニングが完了すると、プラン配信ユニット132は、プラン内容を制御デバイス120、ネットワーク中継デバイス121、及び、I/O制御デバイス123に配信する(S003)。
なお、図8に示す手順を実行するタイミングは、制御システムの動作前でもよく、制御システムの動作開始後に定期的に実行されてもよい。あるいは、制御システムのオペレータからの命令によって明示的に実行されてよく、手順は制御システムの構成変更時に、動的に実行されてもよい。このような変更は、制御ネットワーク122若しくは通信デバイスの異常、又は通信デバイスの追加又は取り外しを含む。ネットワーク状態収集ユニット134は、制御システムの構成変更を検出できるので、生存監視の目的のために通信デバイス間の周期的なハートビート通信を行い、結果をネットワーク状態収集ユニット134に通知することが例示される。
また、図8に示す手順を実行するタイミングは、通信デバイスからリソースアロケーションの結果を受信するタイミングであってもよい。これは、ターゲットの通信デバイスがプランを受け入れることができない場合を含む。
図9は、本発明の一実施形態に係る制御デバイス120、ネットワーク中継デバイス121、及び、I/O制御デバイス123などの通信デバイスへ、プラン手順を適用する一例を示す図である。
最初に、通信デバイスは、プランの配信を待つ(S010)。通信デバイスは、プランを受信すると、自デバイスのリソースにプランニング内容を割り当てることができるか否かを判断する(S011)。
通信デバイスは、工程S011でアロケーション可能である場合、適切なコンピュータリソース、ネットワークリソースを割り当てる(S012)。これは、例えば、通信における送信タイムスロットである。ステップS012の後、又は、ステップS011でアロケーションできない場合、通信デバイスは、アロケーション結果をネットワークプランニング装置125に返信する(S013)。なお、S013は、所望の実施形態に応じて、省略可能である。
図10は、本発明の一実施形態に係る制御デバイス120における制御処理の動作手順を示す図である。最初に、処理ユニット140は、制御コマンドの計算開始を待つ(S020)。この処理は、所望の実施形態に応じて、I/O制御デバイス123から被制御デバイス124の状態情報やセンサデータを受信したとき、又は、別の制御デバイス120から開始要求があったとき等に、所定の周期で開始することができる。
次に処理ユニット140は、制御コマンド値を計算する(S021)。これは、所定の制御方法に従う。制御コマンド値の動作は、I/O制御デバイス123から受信したデータを使用することができる。次に、処理ユニット140は、制御コマンド値を送信するタイミングを待つ(S022)。このタイミングは、通信スケジュールユニット142によって制御される。次いで、処理ユニット140は、1つ以上のI/O制御デバイス123について計算された制御コマンド値を、通信ユニット141を介して送信する(S023)。
図11は、本発明の一実施形態に係るネットワーク中継デバイス121における転送処理の動作手順を示す図である。図10のステップS023で送信された制御コマンド値は、図11に示す手順に基づいて、I/O制御デバイス123及び他の制御デバイス120に転送される。
最初に、ネットワーク中継デバイス121の通信ユニット141は、パケットの受信を待つ(S030)。通信ルーティング制御ユニット150は、パケットを受信した通信ユニット141が受信したパケットの内容と、ネットワークリソース管理ユニット151によって通信ルーティング制御ユニット150に設定されたルート制御のルールと、に基づいて、パケット受信後に、パケットの転送タイミング、転送先となる通信ユニット141、及び通信ユニット141での送信タイミングを決定する。(S031)。
この場合、転送先の通信ユニット141は複数であってよく、通信ルーティング制御ユニット150は、転送時に受信又は転送した通信ユニット141に基づいて、パケットに情報を付加することができる。パケットを転送された通信ユニット141は、通信ルーティング制御ユニット150によって制御されたタイミング、又は、通信ルーティング制御ユニット150から送信されたタイミングでパケットを送信する(S032)。
I/O制御デバイス123における制御処理の動作手順を、図12及び図13に示す。図12は、主にアクチュエータとしての動作を示す図であり、図13、はセンサとしての動作を示す図である。
図12では、最初に、処理ユニット140は、処理の開始を待つ(S040)。この処理は、所定の周期、又は被制御デバイス124の状態変化によって開始され得る。
次に、処理ユニット140は、制御デバイス120から受信した制御コマンド値に基づいて、I/O制御デバイス123の制御コマンド値を計算する(S041)。次いで、処理ユニット140は、ステップS041で計算した制御コマンド値に基づいて、被制御デバイス124を制御する(S042)。
図13では、最初に、処理ユニット140は、状態情報(被制御デバイス124のセンサデータ)の取得タイミングを待つ(S050)。次いで、処理ユニット140は、状態情報(被制御デバイス124のセンサデータ)を取得する(S051)。次に処理ユニット140は、取得した状態情報(被制御デバイス124のセンサデータ)を、制御デバイス120に送信するか否かを判断する(S052)。処理ユニット140は、送信すると判断した場合、データを送信する(S053)。これは、データを取得する毎に送信してもよいし、所定の回数取得する毎に送信してもよい。
なお、取得された値は、データ値に対する閾値比較などの所定の条件を満たしたときに送信されてよい。もしくは、データは、状態情報(センサデータ)を取得した時刻が所定の条件に一致したときに送信されてよい。したがって、例えば、日中に得た状態情報(センサデータ)のみを送信することが可能である。I/O制御デバイス123又は被制御デバイス124が複数のセンサを備える実施形態においては、所定の条件を満たしたときに、1つ以上のセンサデータを送信することができる。もしくは、処理ユニット140の状態が所定の条件を満たすときにデータを送信することができる。これには、例えば、処理ユニット140の処理負荷が小さいときが含まれる。
送信するデータにおいても、取得したデータをそのまま送信してもよいし、複数回取得した値について統計処理を適用したデータを送信してもよい。又は、I/O制御デバイス123又は被制御デバイス124によって提供される他のセンサのセンサデータと組み合わせた結果が送信されてよい。
なお、I/O制御デバイス123のうちの1つでは、所望の実施形態に応じて、図12の制御処理及び図13の取得処理が並行に実行され得る。
次に、リソースアロケーション・プランニング・ユニット131によるリソースアロケーションのプランニング方法について説明する。
図1に示した制御システムでは、以下のような分散機能を構成する場合を一例とする。
・分散機能1:センサ、制御装置、及びアクチュエータから成る制御機能を構成する。
・被制御デバイス124aはセンサに設定され、被制御デバイス124cはアクチュエータに設定される。
・制御機能としての制御装置の冗長性は、「3」とされる。
・制御機能と被制御デバイス124aとの間、及び、制御機能と被制御デバイス124cとの間の通信経路の冗長性は、「2」とされる。
・センサからアクチュエータへの処理は、1ms周期で行われる。
・コマンドタイミングを、3つの制御機能からアクチュエータにシフトすると、アクチュエータは1ms周期で3回の周期で制御される。したがって、アクチュエータによる1ms周期内での制御コマンドの受信時間は、それぞれ「400μs」、「700μs」、「1000μs」である。
・制御機能の計算時間は「200μs」である。
・分散機能2:制御装置及びアクチュエータから成る制御機能を構成する。
・被制御デバイス124bは、アクチュエータに設定される。
・制御装置からアクチュエータへの処理は、1ms周期で行わる。
・分散機能3:センサ情報に統計処理を適用する情報処理機能を構成する。
・機能は、被制御デバイス124aのセンサ情報を使用する。
・センサから情報処理機能までの通信スループットは「8Mbps」で行われる。
分散機能は、分散機能1、分散機能2、分散機能3の順に優先される。
図14は、分散機能1のプランニング方法の一例を示す図である。
最初に、制御機能を構成する機能を配置する(S060)。図1に示した制御システムでは、制御デバイス120及びI/O制御デバイス123が候補である。この場合、様々な制約条件が考えられる。例えば、物理的デバイスを有する被制御デバイス124を使用するためには、センサ機能又はアクチュエータ機能が必要であるため、センサ機能はI/O制御デバイス123aに配置し、アクチュエータ機能はI/O制御デバイス123cに配置すると決定する。制御機能は3つの冗長性を有するので、異なる制御デバイス120、I/O制御デバイス123がターゲット候補となる。
通信デバイスを選択するために、機能を目的関数として配置した通信デバイスのコンピュータ性能の合計値に対して、値を最大にする組合せ最適化問題として選択を解くことが示されている。例としては、選択された通信デバイスのCPU周波数の合計値を最大化する、又は、選択された通信デバイスのメモリの通信スループットを最大化することが挙げられる。
機能の配置を、ステップS060で決定後、通信する機能間の通信経路を決定する(S061)。被制御デバイス124aと制御機能との間、及び、制御機能と被制御デバイス124cとの間の通信経路の冗長性は「2」である。したがって、I/O制御デバイス123aと制御機能とを接続する通信経路の選択肢から、2つの経路が選択される。また、制御機能とI/O制御デバイス123cとからの選択も同様である。この場合の高い信頼性のための制約条件の例としては、問題をグラフ理論で経路検索問題として扱うとき、選択した2つの通信経路上で同一のネットワーク中継デバイス121が選択されないようにすること、通信ホップを最小にすること、通信スループットの平均値若しくは最大値を目的関数として最大にすることである。
通信経路を選択するときは、その通信経路となるように、関連するパラメータを設定することが例示される。例としては、VLAN識別子の決定、ルート制御の設定、VLANの構成、及び、ネットワーク中継デバイス121のPRPとHSRとのタグ構成等が挙げられる。
ステップS061で通信経路が決定された後、制御デバイス120又は機能を配置されたI/O制御デバイス123の送信タイミング、及び、ネットワーク中継デバイス121のタイムスロットアロケーションが決定される(S062)。この場合、タイムスロット幅、送信タイミング、及びタイムスロットアロケーションを組合せ最適化問題として解くことができる。
ステップS062の後、決定された構成が制御システムの要件を満たすことができるか否かが判定される(S063)。満たされている場合(ステップS063がYES)、処理は終了する。一方、満たされていない場合(ステップS063がNO)、プランニングを継続可能か否かが判断される(S064)。一例として、継続可能な条件は、プランニングの試行回数が所定値未満であり、かつ、プランニングに要した処理時間が所定値未満であることである。あるいは、システムオペレータがプランニングの継続を判断してもよい。これは、図14の機能を、GUI(Graphical User Interface)などのソフトウェアとして構成することが示されている。
ステップS064において、継続可能であると判断された場合(ステップS064がYES)、プランニングはS060から再実行される。継続可能であると判断されない場合(ステップS064がNO)、プランニングは終了される。
なお、ステップS064で継続可能と判断されたとき、ステップS061から再開してもよいし、ステップS060から再実行せずにステップS062のみを再実行してもよい。
S060、S061、及びS062の各ステップを最適化問題として考え、様々な解を適用することが例示される。また、解は、ヒューリスティック法も含む。もしくは、全検索を行うことも可能である。
また、S060とS061とを同時に実行することも可能である。例えば、ステップS060の機能配置の決定において、通信経路を目的関数として決定し、中継するネットワーク中継デバイス121の数を評価した後に、機能を配置する通信デバイスを決定することができる。
さらに、被制御デバイス124に接続されたI/O制御デバイス123は、センサ機能やアクチュエータ機能が配置された実現可能な通信デバイスに設定されているが、それらの機能は、被制御デバイス124を制御するための最小構成としてI/O制御デバイス123に備えられたソフトウェアによって、制御デバイス120などの別の通信デバイスに配置されてもよい。
このようなセンサ機能及びアクチュエータ機能は、センサ値のフィルタ処理又はアクチュエータの出力タイミングの制御であり得る。
さらに、ステップS063、ステップSS064では、プランニング終了毎に終了を判断するのではなく、所定の時間又は所定の試行回数の後に最適なプランが選択され得る。
図14に示す手順は、分散機能「2」及び「3」のプランにも適用される。分散機能「2」では、機能及び通信経路の冗長性はそれぞれ1である。分散機能「3」では、制約条件は、遅延又は周期ではなく通信スループットである。
図15~図17は、上記分散機能1、2、3の各プラン例を示す図である。図15は、機能及び通信経路の配置を示す図であり、図16は、通信デバイスでの通信タイミングを示す図であり、図17は、ネットワーク中継デバイス121でのタイムスロットのアロケーションを示す図である。
分散機能1の例に関しては、以下のようにプランされる。制御機能160a、160b、及び160dは、それぞれ制御デバイス120a、120b、120dに配置される。センサ機能161aはI/O制御デバイス123aに配置され、アクチュエータ機能162bはI/O制御デバイス123cに配置される。
制御機能160a、160b、160dのそれぞれからI/O制御デバイス123a、123cへの2つの通信経路がそれぞれ選択される。機能の同じ組み合わせにおいて2つの通信経路が重ならないように選択される。決定された通信経路は以下の通りである。
I/O制御デバイス123a(センサ機能161a)から、制御デバイス120a(制御機能160a)へ。ルート1:ネットワーク中継デバイス121d(1ホップ)、ルート2:ネットワーク中継デバイス121e、121a(2ホップ)。
I/O制御デバイス123a(センサ機能161a)から、制御デバイス120b(制御機能160b)へ。ルート1:ネットワーク中継デバイス121d、121a(2ホップ)、ルート2:ネットワーク中継デバイス121e、121b(2ホップ)。
I/O制御デバイス123a(センサ機能161a)から、制御デバイス120d(制御機能161d)へ。ルート1:ネットワーク中継デバイス121d、121b、121c(3ホップ)、ルート2:ネットワーク中継デバイス121e、121f(2ホップ)。
制御デバイス120a(制御機能160a)から、I/O制御デバイス123c(アクチュエータ機能162b)へ。ルート1:ネットワーク中継デバイス121a、121b、121c(3ホップ)、ルート2:ネットワーク中継デバイス121d、121e、121f(3ホップ)。
制御デバイス120b(制御機能160b)から、I/O制御デバイス123c(アクチュエータ機能162b)へ。ルート1:ネットワーク中継デバイス121b、121c(2ホップ)、ルート2:ネットワーク中継デバイス121a、121e、121f。
制御デバイス120d(制御機能160d)から、I/O制御デバイス123c(アクチュエータ機能162b)へ。ルート1:ネットワーク中継デバイス121c、ルート2:ネットワーク中継デバイス121f。
送信タイミング及びタイムスロットの設定は、図16及び図17に示す通りである。ネットワーク中継デバイス121のタイムスロットは、50μsに設定されている。タイムスロット数として、2つのルートのホップ数の最大値が割り当てられる。I/O制御デバイス123aは、最初に、センサ値を制御デバイス120dに送信する(オフセット0μs~150μs)。ルート1の通信経路は3ホップ(150μs)なので、3つのタイムスロットが割り当てられる。制御デバイス120dの制御機能160dは、I/O制御デバイス123aからセンサ情報を受信し、次いで、制御機能160dは、200μsで制御計算処理後、I/O制御デバイス123cにコマンド値を送信する。制御デバイス120dとI/O制御デバイス123cとの間のホップ数は1なので、1スロットのタイムスロットが割り当てられる。
タイムスロットの時間幅は一様である必要はなく、所望の実施形態に応じて、各タイムスロットに任意の時間幅が設定され得る。一方、時間幅を一様にすることで、最適解の検索が容易になり得る。
なお、制御機能160などの制御機能を、I/O制御デバイス123bなどのI/O制御デバイスに配置することも可能である。この場合、中継するネットワーク中継デバイスの数(ホップ数)を評価指標に設定した場合、I/O制御デバイス123aからI/O制御デバイス123bまでは、3ホップ(ルート1はネットワーク中継デバイス121e、ルート2はネットワーク中継デバイス121d、121b及び121f)かかる。かつ、I/O制御デバイス123bからI/O制御デバイス123cまでも、3ホップ(ルート1はネットワーク中継デバイス121f、ルート2はネットワーク中継デバイス121e、121b、及び121c)かかる。さらに、I/O制御デバイス123bからI/O制御デバイス123cまでは合計で6ホップかかる。これは、制御デバイス120a、120b、及び120dを選択した場合よりも大きい。これが、本実施例でI/O制御デバイス123bを選択しない理由である。
なお、制御デバイス120cの場合は、合計で5ホップかかるため、制御機能160cなどの制御機能が制御デバイス120cに配置されるような配置であり得る。この場合、ホップ数以外の要素(例えば、制御デバイス120cのコンピュータ性能)を比較してよい。
さらに、アクチュエータ機能162bのタイミングは、1ms周期において、400μs、700μs、1000μsでコマンド値を受信し、これは制約条件を満たす。400μsで第1のコマンド値を受信するために、センサ機能161aからセンサ情報を受信した第1の制御機能は、制御機能160dである必要がある。
図14のステップS062の終了後、ステップS063で、アクチュエータ機能162bのコマンド値の受信タイミングが、1ms周期において400μs、700μs、1000μsであるか否かを判断する。
図15に示す例では、各制御デバイス120a、120c、120dのコマンド値処理サイクル性能が最短の1ms周期であっても、アクチュエータ機能162bの制御を約300μsで実行することが可能で、約3倍の性能向上を実現することができる。これは、このような送信タイミングの調整による制御性能の向上を目的とした、実施例のリソースアロケーションのプランニング効果によるものである。
同様に、分散機能2の例に関しては、アクチュエータ機能162aはI/O制御デバイス123bに配置され、制御機能160cは制御デバイス120cに配置され、これらの間の通信経路はネットワーク中継デバイス121cと、121fとを介している。ネットワーク中継デバイスにおける機能の配置とタイムスロットのアロケーションとを図15及び図17に示す。なお、送信タイミングは示されていない。
同様に、分散機能3の例に関しては、センサ機能161aはI/O制御デバイス123aに配置され、情報処理機能163は制御デバイス120bに配置され、通信経路はネットワーク中継デバイス121aと、121dとを介している。ネットワーク中継デバイスにおける機能の配置とタイムスロットのアロケーションとを図15及び図17に示す。なお、送信タイミングは示されていない。
ネットワーク中継デバイス121a及び121dには、空きタイムスロットを有効に利用するために、3つの連続したタイムスロットがアロケーションされる。
3つのタイムスロットで1kバイトを1サイクルで送信することにより、次の式で8Mbpsの帯域幅を実現することができる。
1kバイト×(1s/1ms)×(8ビット/バイト)=8Mbps
なお、I/O制御デバイス123aは、制御デバイス120b以外の通信デバイスと同じタイミングで通信するが、これは、このようなマルチキャスト又はVLANの設定によって促進される。
ただし、制御機能、センサ機能、及びアクチュエータ機能は、マルチコアCPUの各コアにアロケーションされたアプリケーションプログラム、仮想マシン、コンテナソフトウェア、アプリケーションとして形成され得る。
さらに、ステップS064において、継続条件を満たすことができないと判断されたときには、所望の実施形態に従って、所定の提示手段(Webサーバ、GUIソフトウェア、電子メールなど)を使用することによりシステムオペレータに通知する。これにより、システムオペレータは、プラン完了に向けて制約条件を緩和するなどの対策をセットアップすることができる。例えば、このような対策としては、冗長性の低減や通信サイクルの延長、通信デバイス、通信経路、及びネットワーク中継デバイス121の追加、通信デバイスの性能向上などであり得る。
なお、これらの制約条件の緩和は、ネットワークプランニング装置125のリソースアロケーション・プランニング・ユニット131がプランニング処理を実行するときに、まとめて提示され得る。この場合、リソースアロケーション・プランニング・ユニット131は、緩和策を検索する。図15の例では、そのような対策は、タイムスロットの単位幅を一様には変更せず、通信経路を増やしたり(例えば、ネットワーク中継デバイス121dと121cとの間を直接接続)、制御機能160cをI/O制御デバイス123c自体に配置したりすることなどを含み、緩和プランの自由度を促進することができる。
これらの緩和は、追加ユニット及び追加コストが少ない順に提示され得る。例えば、タイムスロットの変更は、設備の追加を必要としないため、通信経路の追加と比較して優先して提示される。
一方、ステップS064で継続可能と判断されたとき、余剰と考えられる制御デバイス120、ネットワーク中継デバイス121、及び/又は、I/O制御デバイス123がある場合、そのような余剰デバイスを提示することができる。オペレータはそれらを制御システムから取り除き、制御システムのコストを削減することができる。
あるいは、リソースアロケーション・プランニング・ユニット131は、制約条件を満たすだけでなく、プランにおける限界性能を提示するように例示される。例えば、図15~図17の通信サイクル1msを満たすことが制約条件であったが、実現可能な最短の通信周期を提示するように例示される。同様に、機能及び通信経路の最大の冗長性も示すことができる。したがって、オペレータは、提示された最大性能を設定することによって、制御システムの制御性能を向上させることができる。
リソースアロケーション・プランニング・ユニット131のリソースアロケーションのプランニングにおける制約条件は、所望の実施形態に応じて、通信遅延、通信スループット及び機能間の通信サイクル、センサ、制御装置及びアクチュエータ間の制御周期、通信デバイス又は機能の冗長性、機能又は通信デバイスの並行実行の程度、冗長機能間の通信タイミングの時間差、センサやアクチュエータなどの物理的デバイスの位置などであり得る。本実施形態では、分散機能の要件は、分散機能が他の分散機能に制御コマンドを送信する構成において、制御コマンドの他の分散機能との送信タイミングの時間差を含み得る。
機能が冗長であるとき、これは、同じ通信デバイスでの冗長性が可能か否かを含む。すなわち、信頼性を重視するために同一通信デバイスでの冗長化はすべきではないが、単純に性能を向上させるためには同一通信デバイスでの冗長化も可能である。
通信経路及び/又は機能の冗長性の程度は二重冗長に限らず、所望の実施形態に応じて三重以上であり得る。
なお、本実施形態では、分散機能間の通信経路の冗長性、複数の冗長パケットを受信したときの通信経路又は冗長機能の1つ以上に基づいて、パケットを選択するプロトコルを含み得る。通信経路や機能が冗長であるとき、制御コマンドやセンサ情報などを表すパケットは、受信側での選択は先入れ先出し方式、後入れ先出し方式のいずれかであり得る。あるいは、コンピュータ性能又は通信性能などに基づいて、送信側又は通信経路などに優先度を設定し、優先度に基づいて消費パケットを選択してよい(例えば、高い優先度を選択する)。
受信パケットの選択方法は、分散機能要件記憶部130に保持される要件であり得る。
なお、通信経路や機能の冗長性は、常時有効化されてもよく、障害後に冗長化システムが有効化されてよい。冗長システムが障害後に有効化されるように構成される場合、ホットスタンバイ(冗長システムに電源が供給され、その状態がメインシステムと同期される)、ウォームスタンバイ(冗長システムに電源が供給されている)、コールドスタンバイ(冗長システムに電源が供給されていない)のいずれかの場合であり得る。
制約条件は、詳細な要件でなく、通信プロトコルやアプリケーションのタイプから判断することもできる。例えば、制御通信用の通信プロトコルの場合、通信遅延や通信サイクルの値が予め関連付けられる。その要件に応じてパラメータを設定することが可能である。例えば、IEC61784では、リアルタイムイーサネット規格の性能値をパラメータインデックスとして定義しており、パラメータインデックスの最小値又は最大値を制約条件として用い得ることが例示されている。他の例では、IEC62439-3で定義されたHSR又はPRPを使用する場合、通信経路の冗長性としての制約条件は2である。
なお、制御システムの制約条件や要件を入力情報として使用することにより、それらを満たす制御システムの構成及び/又は構造を提示することができる。制御システムの構成及び/又は構造として提示する情報としては、制御デバイス120、ネットワーク中継デバイス121、及びI/O制御デバイス123の数、通信デバイスを接続するための制御ネットワーク122のトポロジと構成、制御デバイス120、I/O制御デバイス123の送信タイミング、ネットワーク中継デバイス121のタイムスロットなどのネットワークリソースのアロケーションなどが挙げられる。
さらに、制約条件が機能の冗長性を含む場合、リソースアロケーション・プランニング・ユニット131は、機能のインスタンスを保持し、リソースアロケーション・プランニング・ユニット131は、必要に応じてインスタンスを複製することができる。もしくは、分散機能の冗長機能を、複数の通信デバイスの1つ以上(「対応するもの」の一例)に配置できるように、複製されたインスタンスをターゲット通信デバイスに配置してもよい。
さらに、制御デバイス120、ネットワーク中継デバイス121、及び、I/O制御デバイス123は、外部デバイス(例えば、ネットワークプランニング装置125)に送信タイミングやタイムスロット、機能の配置を設定するための設定手段を有することができる。
リソースアロケーション・プランニング・ユニット131におけるターゲット・ネットワーク・リソースに対する所望の実施形態に応じて、通信帯域幅、IEEE802.1Qでの優先度のアロケーション、チャンネル、無線周波数帯域の使用チャンネル数等を利用することも可能である。
なお、複数のルートを使用するパケットのルート制御における使用ルート数は、1つの通信経路を使用する場合でも、複製されたパケットの数とすることができる。
あるいは、ネットワークリソースとして、1つ以上のデータグラム毎のデータサイズ、IEEE802.3フレームを構成するデータグラムの数等が挙げられる。図15~図17のネットワーク中継デバイス121では、リソースとしてタイムスロットのアロケーションがプランされていたが、制御ネットワーク122の一部としてEtherCATを使用する場合、複数の通信デバイスから受信したデータ内容(つまり、EtherCATデータグラム)は、単一のIEEE802.3フレームにマージすることができる。
所望の実施形態に応じて、ネットワークリソースのアロケーションが必ずしも連続的であるとは限らない。例えば、時分割通信でタイムスロット数を変更するとき、追加するタイムスロットが連続していない可能性がある。
さらに、ネットワークリソースのプランを保守する期間は、所定の期間のみ、又は、所定の時刻まで有効にされてよい。所定の期間は、変更命令からの期間を設定してもよいし、所定の時間帯(例えば、1日の中の18:00~24:00など)を指定してもよい。
例えば、工場の生産システム、FA(Factory Automation)システム、PA(Process Automation)システムにおいて、夜間の生産量が少ない場合には、夜間にプランが変更されてもよい。このような場合、リソースアロケーション・プランニング・ユニット131は、SCADA、DCS、又はMES(Manufacturing Execution System)と連携し、一実施形態では、連携したシステムからターゲット制御システムの情報を取得することを含み得る。
通信デバイス及び通信経路の異常を検出するために、ハートビート(生存監視)情報を使用する場合、プランニングのための一実施形態は、ハートビートのためのリソースアロケーションを含み得る。
さらに、通信デバイス及び通信経路に異常が発生した実施例では、バックアップのためにリソースアロケーションをプランし、所望の実施形態に応じて、障害又は異常時の分散機能の冗長機能を配置できる。例えば、図15では、制御機能の障害に備えて、制御機能160eをI/O制御デバイス123bに配置し、障害検出時に有効にすることを含み得る。
ネットワーク中継デバイス121のタイムスロットアロケーションにおいて、例えば、本実施形態では、図17の空きタイムスロットを事前に予約しておくことを含み得る。この場合、事前設定により、制約条件の一部(例えば、通信経路及び通信サイクルの冗長性)が満たされていなくてもプランすることが可能となる。さらに、所望の実施形態に応じて、緩和されたプランは、制約条件が完全に満たされない場合でも、緩和されたプランを利用できるように、要件にいくらかの自由度を含むプランに基づいて生成され得る。要件の自由度は、所望の実施形態に従って設定され得る。
また、通信デバイス又は通信経路の障害時だけでなく、通信デバイスの新たな変更又は追加など、所望の実施形態に従って通信デバイスの状態が変化した場合にバックアッププランを行うことができる。
あるいは、機能配置及びリソースアロケーション後、残ったリソース及び通信デバイスを、通信デバイスの状態が変化したときに配置されるバックアッププランの形で、バックアップ用に割り当てることができる。もしくは、所望の実施形態に応じて、最も優先度の低い機能、リソース(例えば、情報処理機能)をバックアップ用に割り当てることができる。
なお、制御システムには、装置の冗長性を促進することができるように、複数のネットワークプランニング装置125を配置できる。冗長なネットワークプランニング装置125は、通常は待機に設定されており、メインのネットワークプランニング装置125が異常になったときに有効化され得る。もしくは、所望の実施形態に応じて、両方のネットワークプランニング装置125が常時有効化されてよい。両方のネットワークプランニング装置125を有効化する場合、プランを受信する通信デバイスは、メインのネットワークプランニング装置125からのプラン、又は、最後に受信したプランを優先することができる。
ネットワークプランニング装置125は、リソースアロケーションをプランニングするだけでなく、出力されたプランを実行するためのシミュレーションモデルを生成又は実行するように構成されてもよい。所与のネットワークシミュレータのモデルを生成することにより、オペレータは、シミュレーションモデルを実行することで、実際のシステム運用前にプランを検査することができる。これにより、制御システムの構成の事前検証やエンジニアリング及び性能向上の検査が可能となる。さらに、シミュレーションとの比較によって、実際の動作時の誤った設定を特定することができる。したがって、制御システムの信頼性の向上、システム準備期間の短縮、及びシステム構築コストの削減が可能になる。
シミュレーションモデルの生成では、通信経路又は通信デバイスの障害をシミュレートする1つ以上のシナリオを生成できる。さらに、動作中に制御システムの障害が発生したとき、動作時と障害をシミュレートしたシミュレーションシナリオとの間で各種指標を比較することにより、障害の原因と位置を推定し、オペレータに提示することができる。このような障害分析を促進にするために、実施例は、動作中の制御システムとシミュレーションシナリオとで各種指標を測定するように構成され得る。このような指標としては、所望の実施形態に応じて、通信遅延、通信デバイス間の同期精度、パケット通信に使用する通信経路、冗長通信に使用するルート、冗長として構成される機能におけるパケットを送信する機能、機能間の通信スループットなどである。
あるいは、複数のネットワークプランニング装置125を配置するときに、各ネットワークプランニング装置125がプランニングを担当する制御システムの領域を決定し、ネットワークプランニング装置125は、その領域内でリソースアロケーションをプランすることができる。この場合、ネットワークプランニング装置125に階層関係を定義することができ、階層的にリソースアロケーションをプランすることができる。
上述した実施形態では、制御システムを構成する分散機能の要件と制約条件とに応じて、機能及びネットワークリソースのアロケーションを容易にプランし、制御システムを有効化できる。制約条件に機能及び通信経路の冗長性を含めることによって、制御システムの信頼性を高めることができる。通信デバイス及び通信経路の異常を想定したバックアッププランを作成することによって、より高い信頼性を促進できる。
また、制御機能の制御コマンドの送信タイミングを調整することによって、単一の制御機能で実現可能な性能を超える、高性能を実現することができ、制御システムの性能を向上させることが可能になる。また、通信デバイスの追加、削除、及び変更時、リソースアロケーションをプランニングすることによって、制御システムの保守性を向上させることが可能になる。さらに、リソースアロケーションができないときには、制約条件の緩和策及びシミュレーション支援を提示することによって、制御システムの実現可能性を高めることができる。同様に、不要な通信デバイス及びリソースを提示することによって、オペレータは、それらの通信デバイス及びリソースを削除して低コストで制御システムを構築することができる。さらに、本発明によって提示される最大の性能を設定することによって、制御システムの制御性能を向上させることができる。
詳細な説明のいくつかの部分は、コンピュータ内の動作アルゴリズム及び記号表現で提示されている。これらのアルゴリズムの説明や記号表現は、データ処理技術の当業者が、その革新の本質を他の当業者に伝えるために使用する手段である。アルゴリズムは、所望の最終状態や結果に至る一連の定義された工程(ステップ)である。実施例で実行される工程は、具体的な結果を達成するために具体的な量の物理的操作を必要とする。
特に別段の記載がない限り、議論から明らかなように、本明細書全体にわたって、用語「処理」、「演算」、「計算」、「決定」、「表示」などを利用した議論は、コンピュータシステムのレジスタやメモリ内の物理的(電子的)量として表されるデータを、コンピュータシステムのメモリやレジスタ、又は他の情報記憶装置、送信デバイス又は表示デバイス内の物理的量として同様に表される他のデータに操作及び変換するコンピュータシステム又は他の情報処理デバイスの動作や処理を含み得ることが理解されよう。
また、実施例は、本明細書の操作を行うための装置に関係し得る。この装置は、必要な目的のため特別に構築されてもよく、又は1つ以上のコンピュータプログラムによって選択的に、有効化又は再構成される1つ以上の汎用コンピュータを含み得る。このようなコンピュータプログラムは、コンピュータ可読記憶媒体又はコンピュータ可読信号媒体などのコンピュータ可読媒体に記憶され得る。コンピュータ可読記憶媒体は、光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、ソリッドステートデバイスやドライブ、又は電子情報を記憶するのに適した任意の他のタイプの有形又は非一時的媒体などの有形媒体を含み得るが、これに限定されるものではない。コンピュータ可読信号媒体としては、搬送波などの媒体が挙げられる。本明細書に提示されたアルゴリズム及び表示は、任意の特定のコンピュータ又は他の装置に本質的に関連しない。コンピュータプログラムは、所望の実施形態の動作を行う命令を含む、純粋なソフトウェアの実装を含むことができる。
様々な汎用システムが、本明細書の実施例に従ったプログラム及びモジュールと共に使用されてよく、又は、所望の方法の工程を行うために、より特化した装置を構築することが便利であることを証明することができる。さらに、本実施例は、特定のプログラミング言語に言及して説明されていない。様々なプログラミング言語が、本明細書に記載された実施例の教示を実現するために使用され得ることが理解されよう。プログラミング言語の命令は、1つ以上の処理デバイス、例えば、中央処理装置(CPU)、プロセッサ、又は制御装置によって実行され得る。
従来技術で公知なように、上記の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの何らかの組み合わせによって実施可能である。実施例の様々な態様は、回路及び論理デバイス(ハードウェア)を使用して実現することができ、他の態様は、機械可読媒体に記憶された命令(ソフトウェア)を使用して実現することができ、この命令は、プロセッサによって実行された場合、プロセッサに、本出願の実施形態を実行する方法を実行させる。さらに、本出願のいくつかの実施例は、ハードウェアのみで実施することができ、他の実施例は、ソフトウェアのみで実行することができる。さらに、記載された様々な機能は、単一のユニットで実行することができ、又は任意の数の方式で、いくつかの構成要素に分散することができる。ソフトウェアによって実行される場合、本方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行できる。所望に応じて、命令は圧縮及び/又は暗号化された形式で媒体に記憶され得る。
さらに、本出願の発明の他の実施形態は、本明細書を考慮し本出願の教示を実施することにより、当業者には明白になるであろう。記載された実施例の様々な態様及び/又は構成要素は、単独で又は任意の組み合わせで使用できる。本明細書及び実施例は、以下の特許請求の範囲によって示される本出願の真の範囲及び精神と共に、例としてのみ考慮されることが意図される。