(57)【要約】【課題】通信回線上のトラヒック増大を効率よく抑制する。【解決手段】コマンド処理部１３が、処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成し、待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、待ちキューに対して当該アドレスを未登録状態とする。【選択図】  図１
2017034434.tif 000002
【特許請求の範囲】
【請求項１】
制御機器に対するパラメータの読み書きを指示する複数の処理情報から、パラメータごとに予め付与されている固有のアドレスを複数読み出して、１つのコマンドで対象となる制御機器に送信することにより、複数のパラメータに関する読み書きを一括して指示する通信制御装置であって、
前記処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成するコマンド処理部を備え、
前記コマンド処理部は、前記待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該待ちキューに対して当該アドレスを未登録状態とする
ことを特徴とする通信制御装置。
【請求項２】
請求項１に記載の通信制御装置において、
前記コマンドに応じて前記制御機器から返送されたレスポンスから、当該コマンドで指示した読み書きに関する処理結果を取得し、対応する処理情報に反映するレスポンス処理部をさらに備え、
前記コマンド処理部は、前記待ちキューに対して前記追加アドレスを未登録状態とした際、前記既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行い、
前記レスポンス処理部は、前記処理結果を前記処理情報に反映する際、前記コマンドで指示した前記アドレスに対して関連付けられた子アドレスが存在する場合には、当該子アドレスの処理情報に対して処理結果を反映する
ことを特徴とする通信制御装置。
【請求項３】
請求項１または請求項２に記載の通信制御装置において、
前記処理情報は、前記アドレスごとに、当該アドレスが前記待ちキューに登録されて処理待ち中である旨を示す待ち中フラグと、当該アドレスと同一アドレスを有する他の処理情報を循環参照するための循環参照先とをそれぞれ有し、
前記コマンド処理部は、前記待ちキューに対して新たなアドレスを追加する際、当該アドレスの待ち中フラグをオンに設定し、当該アドレスの循環参照先に順に循環参照し、いずれかの参照先アドレスの待ち中フラグがオンに設定されている場合には、前記待ちキューに対して当該アドレスを未登録状態とするとともに当該待ち中フラグをオフに設定し、当該既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行い、コマンド生成時に当該待ちキューから取得したアドレスの待ち中フラグをオフに設定する
ことを特徴とする通信制御装置。
【請求項４】
請求項１〜請求項３のいずれかに記載の通信制御装置において、
前記コマンド処理部は、前記待ちキューに対して新たなアドレスを追加する際、当該アドレスを一旦当該待ちキューに登録し、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該追加アドレスを待ちキューから削除することにより未登録状態とし、追加アドレスと同じ既登録アドレスが待ちキューに存在しない場合には、当該追加アドレスを待ちキューから削除しないことにより登録状態とすることを特徴とする通信制御装置。
【請求項５】
請求項１〜請求項３のいずれかに記載の通信制御装置において、
前記コマンド処理部は、前記待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該追加アドレスを待ちキューに登録しないことにより未登録状態とし、追加アドレスと同じ既登録アドレスが待ちキューに存在しない場合には、当該追加アドレスを待ちキューに登録することにより登録状態とすることを特徴とする通信制御装置。
【請求項６】
制御機器に対するパラメータの読み書きを指示する複数の処理情報から、パラメータごとに予め付与されている固有のアドレスを複数読み出して、１つのコマンドで対象となる制御機器に送信することにより、複数のパラメータに関する読み書きを一括して指示する通信制御装置で用いられる通信制御方法であって、
前記処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成するコマンド処理ステップを備え、
前記コマンド処理ステップは、前記待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該待ちキューに対して当該アドレスを未登録とする
ことを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術に関し、特に制御機器とコマンドレスポンス通信を行うことにより、指定したアドレスに関連付けられているパラメータの読み出しや書き込みを行う際に用いられる通信制御技術に関する。
【背景技術】
【０００２】
ビルやプラントなどの施設を管理する施設管理システムなどの各種計装システムでは、実際に設備機器を制御する制御機器としてＰＬＣ（Programmable Logic Controller）や調節計などの制御機器が用いられる。図１２は、一般的な計装システムの構成例である。ここでは、１つのＰＬＣの配下に複数の系統ごと調節計が設けられており、これら調節計は、ＰＬＣから指示された設定値ＳＰ，制御量ＰＶ，操作量ＭＶなどの各種パラメータに基づき、それぞれの系統の設備機器を制御している。
【０００３】
このため、各調節計で実行された制御を遠隔監視し、あるいは制御履歴を記録しておく場合には、各種パラメータをデータ通信によりそれぞれの調節計から読み出す必要がある。また、各調節計においてそれぞれの系統に固有の制御を実行させるためには、各種パラメータをデータ通信により、それぞれの調節計に対して書き込む必要がある。
【０００４】
また、これらＰＬＣや調節計は、データ通信に用いる通信プロトコルが異なる場合があるとともに、パラメータ取得タイミングが異なるため、これら制御機器とは別個に通信制御装置を配置し、この通信制御装置がＰＬＣや調節計と個別にデータ通信を行う構成が用いられる。したがって、通信制御装置は、ＰＬＣから指示されたパラメータを指定された調節計に対して読み出しや書き込みを行うことになる。このため、通信制御装置は、データ通信によりパラメータを読み書きする場合、調節計だけでなく、ＰＬＣとの間でも同様にしてデータ通信によりパラメータを読み書きすることになる。
【０００５】
従来、このようなデータ通信を介して制御機器に対するパラメータの読み出しや書き込みを行う技術として、制御機器ごとに、用いるパラメータに対して予めアドレスを関連付けておき、Ｍｏｄｂｕｓ(登録商標)、ＣＰＬ（Controller Peripheral Link）、ＭＣプロトコルなどのコマンドレスポンス通信により、指定したアドレスへの読み出しや書き込みを制御機器に対して指示することにより、当該アドレスと対応するパラメータの書き込みや読出を行う技術が提案されている（例えば、特許文献１など参照）。なお、この従来技術では、図１２のうちの通信制御装置の機能をＰＬＣに搭載した構成となっている。
【０００６】
図１３は、一般的な制御機器におけるパラメータ保持構成例である。
一般に、データ通信を介して制御機器に対するパラメータの読み出しや書き込みを行う場合、制御機器において、図１３に示すように、各パラメータを保持するそれぞれのレジスタに対して予め別個のアドレスを関連付けておき、Ｍｏｄｂｕｓ(登録商標)、ＣＰＬ（Controller Peripheral Link）、ＭＣプロトコルなどのコマンドレスポンス通信により、指定したアドレスへの読み出しや書き込みを制御機器に対して通信フレームで指示することにより、当該アドレスと関連付けられているパラメータの読み出しや書き込みを行うものとなっている。
【０００７】
近年、ＰＬＣや調節計におけるメモリ容量の増加や高機能化に伴って、制御機器との間でやり取りする情報量が増加する傾向にある。この際、同一制御機器に対して複数のパラメータを読み出し／書き込みする場合、パラメータごとに通信フレームを送受信すると、通信回線上のトラヒックが増大することになる。上記技術では、このようなトラヒック増大を抑制するため、同一制御機器に対して複数のパラメータを読み出し／書き込みする場合には、先頭データアドレスとデータ数を指定して、複数のパラメータを１つの通信フレームで一括して読み出し／書き込みするものとなっている。
【０００８】
図１４は、従来の一括読み書き用の通信フレーム構成例である。図１４（ａ）に示した読出フレームの構成例では、処理対象を示す機器識別番号と読出処理を示す処理コードが設定された読出コマンドで、先頭アドレスとデータ数を指定することにより、先頭アドレスに後続するデータ数分のアドレスと関連する複数のパラメータの一括読み出しを指示している。これにより、指定されたパラメータの読み出しが正常に実行された場合には、処理対象を示す機器識別番号と読出処理を示す処理コードが設定された読出正常レスポンスで、フレームに搭載した１パラメータ分のデータサイズと各パラメータの値とが一括して返送され、指定されたパラメータの読み出しに異常が発生した場合には、処理対象を示す機器識別番号とエラー発生を示すエラーコードが設定された読出異常レスポンスで、エラーの内容を示す例外コードが返送される。
【０００９】
また、図１４（ｂ）に示した書込フレームの構成例では、処理対象を示す機器識別番号と書込処理を示す処理コードが設定された書込コマンドで、先頭アドレスとデータ数と各パラメータの値とを指定することにより、先頭アドレスに後続するデータ数分のアドレスと関連する複数のパラメータの書き込みを指示している。これにより、指定されたパラメータの書き込みが正常に実行された場合には、処理対象を示す機器識別番号と書込処理を示す処理コードが設定された書込正常レスポンスで、一括書き込みを行った先頭アドレスとデータ数とが返送され、指定されたパラメータの書き込みに異常が発生した場合には、処理対象を示す機器識別番号とエラー発生を示すエラーコードが設定された書込異常レスポンスで、エラーの内容を示す例外コードが返送される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第５４７７６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、このような従来技術では、パラメータの書き込み／読み出しが必要となった処理を単位として一括読み書きを行っているため、異なる複数の処理で同一制御機器に対して同一パラメータの書き込み／読み出しが必要となった場合でも、それぞれ別個に書き込み／読み出しが行われるため、通信回線上のトラヒック増大を効率よく抑制できないという問題点があった。
【００１２】
すなわち、前述した図１２の構成例では、ＰＬＣで同一調節計に対して複数の処理が並列的に実行されている場合、これら処理で同一調節器の同一パラメータに対する読み出しが、ほぼ同時に要求される場合がある。例えば、ある調節器に設定されているパラメータを読み出した後、その値を変更して書き込む処理と、ある調節器に設定されているパラメータをモニタリングのため読み出す処理とが、同一調節器の同一パラメータを対象としてＰＬＣから要求される場合がある。また、ＰＬＣのタッチパネル表示用としてある調節器から一群のパラメータを読み出す処理と、ある調節器に設定されている一群のパラメータの履歴記録のため読み出す処理とが、同一調節器の同一パラメータを対象としてＰＬＣから要求される場合がある。
【００１３】
図１５は、従来のコマンド生成動作を示す説明図である。ＰＬＣの処理ＡからアドレスＡ，Ｂ，Ｃの読み出し要求の後、ＰＬＣの処理からアドレスＢ，Ｘ，Ｙの読み出し要求があった場合、通信制御装置では、これらを順にスタックし、スタックされた順序で要求を順に選択して指定されたアドレスを取得し、それぞれ別個の読出コマンドに格納されて通信フレームが生成され、対象となる調節計へ送信される。
したがって、これら処理Ａ，Ｂに共通してアドレスＢが含まれていても、それぞれ別個の読出コマンドで調節計に指示されることになる。このため、通信回線上のトラフィック増大は抑制されていないことになる。
【００１４】
本発明はこのような課題を解決するためのものであり、通信回線上のトラヒック増大を効率よく抑制できる通信制御技術を提供することを目的としている。
【課題を解決するための手段】
【００１５】
このような目的を達成するために、本発明にかかる通信制御装置は、制御機器に対するパラメータの読み書きを指示する複数の処理情報から、パラメータごとに予め付与されている固有のアドレスを複数読み出して、１つのコマンドで対象となる制御機器に送信することにより、複数のパラメータに関する読み書きを一括して指示する通信制御装置であって、前記処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成するコマンド処理部を備え、前記コマンド処理部は、前記待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該待ちキューに対して当該アドレスを未登録状態とするようにしたものである。
【００１６】
また、本発明にかかる上記通信制御装置の一構成例は、前記コマンドに応じて前記制御機器から返送されたレスポンスから、当該コマンドで指示した読み書きに関する処理結果を取得し、対応する処理情報に反映するレスポンス処理部をさらに備え、前記コマンド処理部は、前記待ちキューに対して前記追加アドレスを未登録状態とした際、前記既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行い、前記レスポンス処理部は、前記処理結果を前記処理情報に反映する際、前記コマンドで指示した前記アドレスに対して関連付けられた子アドレスが存在する場合には、当該子アドレスの処理情報に対して処理結果を反映するようにしたものである。
【００１７】
また、本発明にかかる上記通信制御装置の一構成例は、前記処理情報が、前記アドレスごとに、当該アドレスが前記待ちキューに登録されて処理待ち中である旨を示す待ち中フラグと、当該アドレスと同一アドレスを有する他の処理情報を循環参照するための循環参照先とをそれぞれ有し、前記コマンド処理部は、前記待ちキューに対して新たなアドレスを追加する際、当該アドレスの待ち中フラグをオンに設定し、当該アドレスの循環参照先に順に循環参照し、いずれかの参照先アドレスの待ち中フラグがオンに設定されている場合には、前記待ちキューに対して当該アドレスを未登録状態とするとともに当該待ち中フラグをオフに設定し、当該既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行い、コマンド生成時に当該待ちキューから取得したアドレスの待ち中フラグをオフに設定するようにしたものである。
【００１８】
また、本発明にかかる上記通信制御装置の一構成例は、前記コマンド処理部が、前記待ちキューに対して新たなアドレスを追加する際、当該アドレスを一旦当該待ちキューに登録し、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該追加アドレスを待ちキューから削除することにより未登録状態とし、追加アドレスと同じ既登録アドレスが待ちキューに存在しない場合には、当該追加アドレスを待ちキューから削除しないことにより登録状態とするようにしたものである。
【００１９】
また、本発明にかかる上記通信制御装置の一構成例は、前記コマンド処理部が、前記待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該追加アドレスを待ちキューに登録しないことにより未登録状態とし、追加アドレスと同じ既登録アドレスが待ちキューに存在しない場合には、当該追加アドレスを待ちキューに登録することにより登録状態とするようにしたものである。
【００２０】
また、本発明にかかる通信制御方法は、制御機器に対するパラメータの読み書きを指示する複数の処理情報から、パラメータごとに予め付与されている固有のアドレスを複数読み出して、１つのコマンドで対象となる制御機器に送信することにより、複数のパラメータに関する読み書きを一括して指示する通信制御装置で用いられる通信制御方法であって、前記処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成するコマンド処理ステップを備え、前記コマンド処理ステップは、前記待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該待ちキューに対して当該アドレスを未登録状態とするようにしたものである。
【発明の効果】
【００２１】
本発明によれば、待ちキューに同じパラメータのアドレスが存在しなくなり、同一パラメータに対する読み書きを指示するコマンドが重複して通信制御装置から通信回線を介して制御機器へ送信されること、さらにはこれに対するレスポンスが重複して制御機器から通信回線を介して通信制御装置へ返送されることを回避することができる。したがって、同時期に同一制御機器への読み書きが集中した場合でも、通信回線上のトラヒック増大を効率よく抑制することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施の形態にかかる通信制御装置の構成を示すブロック図である。
【図２】第１の実施の形態にかかるコマンド統合処理を示すフローチャートである。
【図３】第１の実施の形態にかかるアドレス情報の構成例である。
【図４】第１の実施の形態にかかるコマンド統合動作を示す説明図である。
【図５】第１の実施の形態にかかるコマンド統合処理を示す他のフローチャートである。
【図６】レスポンス分配を示すフローチャートである。
【図７】レスポンス分配動作を示す説明図である。
【図８】第２の実施の形態にかかるコマンド統合処理を示すフローチャートである。
【図９】第２の実施の形態にかかるアドレス情報の構成例である。
【図１０】第２の実施の形態にかかるコマンド統合動作を示す説明図である。
【図１１】第２の実施の形態にかかるコマンド統合処理を示す他のフローチャートである。
【図１２】一般的な計装システムの構成例である。
【図１３】一般的な制御機器におけるパラメータ保持構成例である。
【図１４】従来の一括読み書き用の通信フレーム構成例である。
【図１５】従来のコマンド生成動作を示す説明図である。
【発明を実施するための形態】
【００２３】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる通信制御装置１０について説明する。図１は、第１の実施の形態にかかる通信制御装置の構成を示すブロック図である。
【００２４】
この通信制御装置１０は、ビルやプラントなどの施設を管理する施設管理システムなどの各種計装システムで用いられて、ＰＬＣ２０や調節計３０などの制御機器と通信回線Ｌを介してコマンドレスポンス通信を行うことにより、指定したアドレスに関連付けられているパラメータの読み出しや書き込みを行う情報処理装置である。
【００２５】
図１に示した計装システム１の構成例において、１つのＰＬＣ２０の配下に複数の系統ごと調節計３０が設けられており、これら調節計３０は、ＰＬＣ２０から指示された設定値ＳＰ，制御量ＰＶ，操作量ＭＶなどの各種パラメータに基づき、それぞれの系統の設備機器３１を制御している。
【００２６】
これらＰＬＣ２０や調節計３０は、データ通信に用いる通信プロトコルが異なっており、図１の例では、ＰＬＣ２０はＭｏｄｂｕｓを用い、調節計３０はＣＰＬを用いている。また、これらＰＬＣ２０や調節計３０は、パラメータ取得タイミングが異なる。このため、これら制御機器とは別個に配置された通信制御装置１０がＰＬＣ２０や調節計３０と個別にデータ通信を行うことにより、ＰＬＣ２０と調節計３０との間における各種パラメータのやり取りを実現している。
【００２７】
したがって、ＰＬＣ２０が調節計３０に対してパラメータを設定する場合、通信制御装置１０は、ＰＬＣ２０の指定されたアドレスからパラメータを読み出す処理と、読み出したパラメータを対象となる調節計３０の指定されたアドレスへ書き込む処理とを実行する。また、ＰＬＣ２０が調節計３０からパラメータを読み出す場合、通信制御装置１０は、対象となる調節計３０の指定されたアドレスからパラメータを読み出す処理と、読み出したパラメータをＰＬＣ２０の指定されたアドレスへ書き込む処理とを実行する。これら一連の処理は、処理内容を示す処理情報として、ＰＣなどの外部装置から通信制御装置１０に対して予め設定される。
【００２８】
通信制御装置１０は、これら制御機器に対するパラメータの読み書きを指示する複数の処理情報から、パラメータごとに予め付与されている固有のアドレスを複数読み出して、１つのコマンドで対象となる制御機器に送信することにより、複数のパラメータに関する読み書きを一括して指示する機能を有している。
本実施の形態は、処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成するコマンド処理部１３を備え、待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、待ちキューに対して当該アドレスを未登録状態とするようにしたものである。
【００２９】
［通信制御装置］
次に、図１を参照して、本実施の形態にかかる通信制御装置１０の構成について詳細に説明する。
図１に示すように、通信制御装置１０には、主な機能部として、通信Ｉ／Ｆ部１１、処理管理部１２、コマンド処理部１３、およびレスポンス処理部１４が設けられている。
【００３０】
通信Ｉ／Ｆ部１１は、通信回線Ｌを介してＰＬＣ２０や調節計３０との間でデータ通信を行うことにより、パラメータの読み書きを行うためのコマンドフレームやレスポンスフレームをやり取りする機能を有している。
【００３１】
処理管理部１２は、外部装置から設定された各処理情報を管理する機能と、ＰＬＣ２０や調節計３０からの指示や一定周期など、各処理情報で指定された処理タイミングの到来に応じて、当該処理情報に基づく処理実行をコマンド処理部１３に指示する機能を有している。
【００３２】
コマンド処理部１３は、処理管理部１２から指示された処理実行に応じて、対象となる処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成し、通信Ｉ／Ｆ部１１から対象となる制御機器へ送信する機能と、待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、当該追加アドレスを待ちキューから削除する機能と、待ちキューから追加アドレスを削除した際、既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行う機能とを有している。
【００３３】
レスポンス処理部１４は、通信Ｉ／Ｆ部１１で受信した制御機器から返送されたレスポンスから、このレスポンスに対応するコマンドで指示した読み書きに関する処理結果を取得する機能と、これら処理結果を対応する処理情報に反映する機能と、処理結果を処理情報に反映する際、コマンドで指示したアドレスに対して関連付けられた子アドレスが存在する場合には、当該子アドレスの処理情報に対して処理結果を反映する機能と、制御機器とやり取りしたコマンドおよびレスポンスの履歴を記録し、さらにはこれら履歴を画面表示部（図示せず）で画面表示し、あるいは通信Ｉ／Ｆ部１１から外部装置（図示せず）へ出力する機能とを有している。
【００３４】
［第１の実施の形態の動作］
次に、本実施の形態にかかる通信制御装置１０の動作について、コマンド送信時に実行されるコマンド統合処理と、レスポンス受信時に実行されるレスポンス分配処理とについて説明する。
【００３５】
［コマンド統合処理］
まず、図２および図３を参照して、本実施の形態にかかる通信制御装置１０でのコマンド統合処理について説明する。図２は、第１の実施の形態にかかるコマンド統合処理を示すフローチャートである。図３は、第１の実施の形態にかかるアドレス情報の構成例である。
コマンド処理部１３は、処理管理部１２からの指示に応じて、コマンドを生成して送信する際、図２のコマンド統合処理を実行する。
【００３６】
本実施の形態において、処理情報やアドレス情報は、階層的なオブジェクトで記述されて処理される。したがって、処理情報には、処理対象となるパラメータごとに、それぞれのパラメータを特定するアドレス情報として、図３に示すようなアドレスオブジェクトが登録されている。ここでは、アドレスオブジェクトを識別するためのオブジェクトＩＤ、処理情報を識別するための処理ＩＤ、処理対象となるパラメータの機器アドレスやレジスタアドレスを含むアドレス、処理対象となるパラメータの読み出し値や書き込み値が格納されるパラメータ、当該アドレスに関連付けされた子アドレスのアドレスオブジェクトが登録される関連付けオブジェクト、および処理成否などの属性が設けられている。
【００３７】
図２において、コマンド処理部１３は、まず、指定された処理情報を参照して、処理対象となるパラメータに関するアドレス情報からアドレスをそれぞれ取得して、待ちキューに追加する（ステップ１００）。待ちキューは、半導体メモリ上に構成されたＦＩＦＯバッファであり、コマンドの送信先となる制御機器ごとに設けられている。
【００３８】
次に、コマンド処理部１３は、待ちキューに追加した各追加アドレスのうちから、未検索の追加アドレスを１つ選択し（ステップ１０１）、待ちキューにすでに登録されているアドレスから、追加アドレスと同一のアドレスを検索する（ステップ１０２）。
【００３９】
ここで、追加アドレスと同一の既登録アドレスが存在していた場合（ステップ１０３：ＹＥＳ）、コマンド処理部１３は、その追加アドレスを待ちキューから削除し（ステップ１０４）、既登録アドレスからなる親アドレスにその追加アドレスからなる子アドレスを関連付けることにより、待ちキュー内の重複アドレスを１つに統合した後（ステップ１０５）、後述のステップ１０６へ移行する。
一方、追加アドレスと同一の既登録アドレスが存在していない場合（ステップ１０３：ＮＯ）、後述のステップ１０６へ移行する。
【００４０】
この際、実際の処理では、待ちキューに対してアドレスを登録する際、処理情報のオブジェクトから当該アドレスのアドレスオブジェクトが取り出されて待ちキューに格納される。また、親アドレスに子アドレスを関連付ける際、待ちキューから子アドレスのアドレスオブジェクトが取り出されて、親アドレスに対応するアドレスオブジェクトの関連付けオブジェクトとして登録される。
【００４１】
この後、コマンド処理部１３は、すべての追加アドレスに関する検索終了を確認し（ステップ１０６）、未検索の追加アドレスが残っている場合には（ステップ１０６：ＮＯ）、ステップ１０１へ戻る。
一方、すべての追加アドレスに関する検索が終了した場合（ステップ１０６：ＹＥＳ）、一連のコマンド統合処理を終了する。
【００４２】
図４は、第１の実施の形態にかかるコマンド統合動作を示す説明図である。ここでは、制御機器Ｑからパラメータ値を読み出す際に、制御機器Ｑに関する待ちキューに対して、処理ＸのアドレスＡ，Ｂ，Ｃを登録した後、処理ＹのアドレスＢ，Ｄ，Ｅを登録する例が示されている。ここでは、パラメータの読み出し時を例として説明するが、パラメータの書き込み時についても同様である。なお、パラメータの書き込み時には、各アドレスごとに書き込むパラメータ値がコマンドに設定される。
【００４３】
まず、アドレスＢの検索を実行した時点で、処理ＸのアドレスＢが既登録アドレスと検索される。このため、処理ＸのアドレスＢからなる親アドレスに対して、処理ＹのアドレスＢからなる子アドレスが関連付けられて、待ちキュー内の重複アドレスであるアドレスＢが１つに統合される。
【００４４】
この後、コマンド処理部１３は、一定周期で到来するコマンド送信タイミングにおいて、制御機器Ｑに対して一括送信できるアドレス数として予め設定されている規定数分だけ、待ちキューからアドレスを登録順に取得して、これらアドレスにより処理対象のパラメータを指定した１つの読出コマンドを生成し、通信Ｉ／Ｆ部１１から制御機器Ｑへ送信する。
【００４５】
これにより、処理タイミングｔにおいて、アドレスＡ，Ｂ，Ｃが指定された読出コマンドＱｔが生成されて送信された後、次の処理タイミングｔ＋１において、処理Ｙ以降に他の処理の実行が指示されなかった場合には、アドレスＤ，Ｅが指定された読出コマンドＱｔ＋１が生成されて送信される。このため、アドレスＢを指定したコマンドの重複送信が回避され、これら読出コマンドに対する読出レスポンスの重複返送も回避されることになる。
【００４６】
次に、図５を参照して、第１の実施の形態にかかるコマンド統合処理の他例について説明する。図５は、第１の実施の形態にかかるコマンド統合処理を示す他のフローチャートである。図２では、処理対象のアドレスを待ちキューに追加した後、追加アドレスと同一の既登録アドレスを待ちキューから検索する場合を例として説明した。ここでは、処理対象のアドレスを待ちキューに追加する前に、追加アドレスと同一の既登録アドレスを待ちキューから検索する場合について説明する。
【００４７】
図５において、コマンド処理部１３は、まず、指定された処理情報を参照して、処理対象となるパラメータに関するアドレス情報から複数のアドレスを取得し（ステップ１１０）、これらアドレスのうちから、未検索の追加アドレスを１つ選択し（ステップ１１１）、待ちキューにすでに登録されているアドレスから、追加アドレスと同一のアドレスを検索する（ステップ１１２）。
【００４８】
ここで、追加アドレスと同一の既登録アドレスが存在していた場合（ステップ１１３：ＹＥＳ）、コマンド処理部１３は、既登録アドレスからなる親アドレスにその追加アドレスからなる子アドレスを関連付けることにより、待ちキュー内の重複アドレスを１つに統合した後（ステップ１１４）、後述のステップ１１６へ移行する。
一方、追加アドレスと同一の既登録アドレスが存在していない場合（ステップ１１３：ＮＯ）、コマンド処理部１３は、追加アドレスを待ちキューに追加し（ステップ１１５）、後述のステップ１１６へ移行する。
【００４９】
この後、コマンド処理部１３は、すべての追加アドレスに関する検索終了を確認し（ステップ１１６）、未検索の追加アドレスが残っている場合には（ステップ１１６：ＮＯ）、ステップ１１１へ戻る。
一方、すべての追加アドレスに関する検索が終了した場合（ステップ１１６：ＹＥＳ）、一連のコマンド統合処理を終了する。
【００５０】
［レスポンス分配処理］
次に、図６を参照して、本実施の形態にかかる通信制御装置１０でのレスポンス分配処理について説明する。図６は、レスポンス分配を示すフローチャートである。
レスポンス処理部１４は、通信Ｉ／Ｆ部１１でのレスポンス受信に応じて、レスポンスに格納されている処理結果を各処理情報に反映する際、図４のレスポンス分配処理を実行する。ここでは、制御機器に対してパラメータの読み出しを指示する読出コマンドを送信し、これに対して制御機器からこれらパラメータの値を搭載した読出レスポンスを受信した場合を例として説明する。
【００５１】
図６において、レスポンス処理部１４は、まず、受信したレスポンスから各パラメータの値を取得するとともに（ステップ１２０）、このレスポンスと対応する送信済コマンドから指定したアドレスを取得し（ステップ１２１）、これらアドレスに基づいて、各パラメータの値を、元の処理情報のアドレスに対応するパラメータ値として反映する（ステップ１２２）。
【００５２】
次に、レスポンス処理部１４は、これらアドレスのうちから未検索のアドレスを１つ選択し（ステップ１２３）、この選択アドレスと対応する処理情報を参照して、当該選択アドレスに対して子アドレスが関連付けられているか確認する（ステップ１２４）。ここで、子アドレスが関連付けされていない場合（ステップ１２４：ＮＯ）、後述するステップ１２６へ移行する。
【００５３】
一方、選択アドレスに対して子アドレスが関連付けされている場合（ステップ１２４：ＹＥＳ）、レスポンス処理部１４は、当該選択アドレスからなる親アドレスと対応するパラメータの値を子アドレスに対応するパラメータ値として反映する（ステップ１２５）。
【００５４】
この際、実際の処理では、選択アドレスのアドレスオブジェクトのうち、関連付けオブジェクトに子アドレスオブジェクトが登録されているか否か確認される。ここで、子アドレスオブジェクトが登録されている場合には、この子アドレスオブジェクトがその選択アドレスからなる親アドレスのオブジェクトから取り出されて、その子アドレスオブジェクトに含まれている処理ＩＤに基づいて統合前の元の処理情報に戻されるとともに、その子アドレスオブジェクトのパラメータ値に対して、親アドレスのアドレスオブジェクトに反映したパラメータ値と同じ値が反映される。
【００５５】
この後、レスポンス処理部１４は、送信済コマンドで指定したすべてのアドレスに関する検索終了を確認し（ステップ１２６）、未検索のアドレスが残っている場合には（ステップ１２６：ＮＯ）、ステップ１２１へ戻る。
一方、すべてのアドレスに関する検索が終了した場合（ステップ１２６：ＹＥＳ）、一連のレスポンス分配処理を終了する。
【００５６】
図７は、レスポンス分配動作を示す説明図である。ここでは、子アドレスが関連付けられているアドレスＢを含むアドレスＡ，Ｂ，Ｃを指定した読出コマンドを送信し、これに応じてこれらアドレスＡ，Ｂ，Ｃに対応するパラメータの値ＤＡ，ＤＢ，ＤＣを搭載した読出レスポンスを受信した例が示されている。ここでは、パラメータの読み出し時を例として説明するが、パラメータの書き込み時についても同様である。なお、パラメータの書き込み時には、レスポンスで通知された処理成否が分配される。
【００５７】
まず、処理Ｘの処理情報について、アドレスＡ，Ｂ，Ｃに対応するパラメータ値ＰＡ，ＰＢ，ＰＣとして、読出レスポンスから取得した値ＤＡ，ＤＢ，ＤＣが反映される。ここで、アドレスＢについて子アドレスの関連付けがあるため、その子アドレスと対応する処理Ｙの処理情報について、アドレスＢに対応するパラメータ値ＰＢとして、読出レスポンスから取得した値ＤＢが反映される。
【００５８】
これにより、処理ＹのアドレスＢに対応するパラメータ値ＰＢが、処理ＸのアドレスＢに対応するパラメータ値ＰＢの読出コマンドで、制御機器から読み出されたことになる。このため、アドレスＢを指定した読出コマンドの重複送信が回避され、これら読出コマンドに対する読出レスポンスの重複返送も回避されることになる。
【００５９】
［第１の実施の形態の効果］
このように本実施の形態は、コマンド処理部１３が、処理情報から読み出したアドレスを待ちキューに順次登録し、待ちキューから複数のアドレスを登録順に取得して１つのコマンドを生成し、待ちキューに対して新たなアドレスを追加する際、追加アドレスと同じ既登録アドレスが待ちキューに存在する場合には、待ちキューに対して当該アドレスを未登録状態とするようにしたものである。
【００６０】
これにより、待ちキューに同じパラメータのアドレスが存在しなくなり、同一パラメータに対する読み書きを指示するコマンドが重複して通信制御装置１０から通信回線Ｌを介して制御機器へ送信されること、さらにはこれに対するレスポンスが重複して制御機器から通信回線Ｌを介して通信制御装置１０へ返送されることを回避することができる。したがって、同時期に同一制御機器への読み書きが集中した場合でも、通信回線Ｌ上のトラヒック増大を効率よく抑制することが可能となる。
【００６１】
また、本実施の形態において、コマンドに応じて制御機器から返送されたレスポンスから、当該コマンドで指示した読み書きに関する処理結果を取得し、対応する処理情報に反映するレスポンス処理部１４をさらに設け、コマンド処理部１３が、待ちキューから追加アドレスを削除した際、既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行い、レスポンス処理部１４が、処理結果を処理情報に反映する際、コマンドで指示したアドレスに対して関連付けられた子アドレスが存在する場合には、当該子アドレスの処理情報に対して処理結果を反映するようにしてもよい。
【００６２】
これにより、レスポンスで通知された処理結果、例えば読出パラメータや処理成否を、要求元である処理情報のうち、コマンドで指定したアドレスに反映される。したがって、アドレスを１つに統合した場合でも、それぞれのアドレスごとに処理結果を反映することができる。
【００６３】
［第２の実施の形態］
次に、本発明の第２の実施の形態にかかる通信制御装置１０について説明する。
第１の実施の形態では、アドレスを待ちキューに追加する際、同じアドレスが登録されているか否か、待ちキューを検索する場合を例として説明した。この際、待ちキュー内に登録されているアドレス数が多い場合、検索のための所要時間が問題となり、コマンド送信の遅れの原因となる。本実施の形態は、アドレスの循環参照と待ち中フラグを用いて検索所要時間を短縮する場合について説明する。
【００６４】
本実施の形態において、処理情報は、アドレスごとに、当該アドレスが待ちキューに登録されて処理待ち中である旨を示す待ち中フラグと、当該アドレスと同一アドレスを有する他の処理情報を循環参照するための循環参照先とをそれぞれ有している。
【００６５】
また、コマンド処理部１３は、待ちキューに対して新たなアドレスを追加する際、当該アドレスの待ち中フラグをオンに設定し、当該アドレスの循環参照先に順に循環参照し、いずれかの参照先アドレスの待ち中フラグがオンに設定されている場合には、当該追加アドレスを待ちキューから削除するとともに当該待ち中フラグをオフに設定し、当該既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行い、コマンド生成時に当該待ちキューから取得したアドレスの待ち中フラグをオフに設定する機能を有している。
【００６６】
［第２の実施の形態の動作］
次に、図８および図９を参照して、本実施の形態にかかる通信制御装置１０の動作について、コマンド送信時に実行されるコマンド統合処理について説明する。図８は、第２の実施の形態にかかるコマンド統合処理を示すフローチャートである。図９は、第２の実施の形態にかかるアドレス情報の構成例である。なお、レスポンス受信時に実行されるレスポンス分配処理は、前述した図６と同様である。
【００６７】
本実施の形態において、処理情報やアドレス情報は、階層的なオブジェクトで記述されて処理される。したがって、処理情報には、処理対象となるパラメータごとに、それぞれのパラメータを特定するアドレス情報として、図９に示すようなアドレスオブジェクトが登録されている。ここでは、前述した図３の属性に加えて、当該アドレスが待ちキューに登録されている状態を示す待ち中フラグ、および当該アドレスと同じパラメータに関する他の処理情報を循環参照するためのオブジェクトＩＤを示す循環参照先ＩＤなどの属性が設けられている。
【００６８】
図８において、コマンド処理部１３は、まず、指定された処理情報を参照して、処理対象となるパラメータに関するアドレス情報からアドレスをそれぞれ取得して、待ちキューに追加し（ステップ２００）、これら追加アドレスの待ち中フラグをＯＮにする（ステップ２０１）。待ちキューは、半導体メモリ上に構成されたＦＩＦＯバッファであり、コマンドの送信先となる制御機器ごとに設けられている。
【００６９】
次に、コマンド処理部１３は、待ちキューに追加した各追加アドレスのうちから、未検索の追加アドレスを１つ選択し（ステップ２０２）、選択した追加アドレスの循環参照先アドレスを取得する（ステップ２０３）。
【００７０】
続いて、コマンド処理部１３は、循環参照先アドレスの待ち中フラグを確認し（ステップ２０４）、待ち中フラグがＯＮであれば（ステップ２０５：ＹＥＳ）、当該循環参照先アドレスが待ちキューに登録されていることになるため、その追加アドレスを待ちキューから削除する（ステップ２０６）とともに、その追加アドレスの待ち中フラグをオフにし（ステップ２０７）、循環参照先アドレスからなる親アドレスにその追加アドレスからなる子アドレスを関連付けることにより、待ちキュー内の重複アドレスを１つに統合する（ステップ２０８）。
【００７１】
この後、コマンド処理部１３は、すべての追加アドレスに関する検索終了を確認し（ステップ２０６）、未検索の追加アドレスが残っている場合には（ステップ２０９：ＮＯ）、ステップ２０２へ戻る。
一方、すべての追加アドレスに関する検索が終了した場合（ステップ２０９：ＹＥＳ）、一連のコマンド統合処理を終了する。
【００７２】
また、ステップ２０５において、循環参照先アドレスの待ち中フラグがＯＮでなければ（ステップ２０５：ＮＯ）、当該循環参照先アドレスが待ちキューに登録されていないことになるため、コマンド処理部１３は、循環参照先アドレスの循環参照先アドレスを次の循環参照先アドレスとして取得し（ステップ２１０）、すべての循環参照先アドレスに関する循環参照終了を確認する（ステップ２１１）。
ここで、循環参照先アドレスの循環参照先アドレスが自己のアドレスであり、循環参照が一巡して循環参照終了を確認した場合（ステップ２１１：ＹＥＳ）、ステップ２０９へ移行する。また、循環参照が終了していない場合（ステップ２１１：ＮＯ）、ステップ２０４へ戻る。
【００７３】
図１０は、第２の実施の形態にかかるコマンド統合動作を示す説明図である。ここでは、制御機器Ｑからパラメータ値を読み出す際に、制御機器Ｑに関する待ちキューに対して、処理ＸのアドレスＡ，Ｂ，Ｃを登録した後、処理ＹのアドレスＢ，Ｄ，Ｅを登録する例が示されている。ここでは、パラメータの読み出し時を例として説明するが、パラメータの書き込み時についても同様である。なお、パラメータの書き込み時には、各アドレスごとに書き込むパラメータ値がコマンドに設定される。
【００７４】
まず、処理Ｘと処理ＹのアドレスＢについて循環参照が予め設定されており、待ちキューに登録済みである処理ＸのアドレスＡ，Ｂ，Ｃについて待ち中フラグＦＡ，ＦＢ，ＦＣがそれぞれＯＮに設定されている。したがって、処理ＹのアドレスＢを待ちキューに追加した際に、処理ＸのアドレスＡが循環参照先アドレスとして選択される。ここで、処理ＸのアドレスＡに関する待ち中フラグＦＢがＯＮであるため、処理ＸのアドレスＢが既登録アドレスと検索される。このため、処理ＸのアドレスＢからなる親アドレスに対して、処理ＹのアドレスＢからなる子アドレスが関連付けられて、待ちキュー内の重複アドレスであるアドレスＢが１つに統合される。
【００７５】
この後、コマンド処理部１３は、一定周期で到来するコマンド送信タイミングにおいて、制御機器Ｑに対して一括送信できるアドレス数として予め設定されている規定数分だけ、待ちキューからアドレスを登録順に取得して、これらアドレスにより処理対象のパラメータを指定した１つの読出コマンドを生成し、通信Ｉ／Ｆ部１１から制御機器Ｑへ送信する。
【００７６】
これにより、処理タイミングｔにおいて、アドレスＡ，Ｂ，Ｃが指定された読出コマンドＱｔが生成されて送信された後、次の処理タイミングｔ＋１において、処理Ｙ以降に他の処理の実行が指示されなかった場合には、アドレスＤ，Ｅが指定された読出コマンドＱｔ＋１が生成されて送信される。このため、アドレスＢを指定したコマンドの重複送信が回避され、これら読出コマンドに対する読出レスポンスの重複返送も回避されることになる。
【００７７】
次に、図１１を参照して、第２の実施の形態にかかるコマンド統合処理の他例について説明する。図１１は、第２の実施の形態にかかるコマンド統合処理を示す他のフローチャートである。図８では、処理対象のアドレスを待ちキューに追加した後、循環参照先アドレスに基づき追加アドレスと同一の既登録アドレスを待ちキューから検索する場合を例として説明した。ここでは、処理対象のアドレスを待ちキューに追加する前に、循環参照先アドレスに基づき追加アドレスと同一の既登録アドレスを待ちキューから検索する場合について説明する。
【００７８】
図１１において、コマンド処理部１３は、まず、指定された処理情報を参照して、処理対象となるパラメータに関するアドレス情報から複数のアドレスを取得し（ステップ２２０）、これら追加アドレスのうちから、未検索の追加アドレスを１つ選択し（ステップ２２１）、選択した追加アドレスの循環参照先アドレスを取得する（ステップ２２２）。
【００７９】
続いて、コマンド処理部１３は、循環参照先アドレスの待ち中フラグを確認し（ステップ２２３）、待ち中フラグがＯＮであれば（ステップ２２４：ＹＥＳ）、循環参照先アドレスからなる親アドレスにその追加アドレスからなる子アドレスを関連付けることにより、待ちキュー内の重複アドレスを１つに統合する（ステップ２２５）。
【００８０】
この後、コマンド処理部１３は、すべての追加アドレスに関する検索終了を確認し（ステップ２２６）、未検索の追加アドレスが残っている場合には（ステップ２２６：ＮＯ）、ステップ２２１へ戻る。
一方、すべての追加アドレスに関する検索が終了した場合（ステップ２２６：ＹＥＳ）、一連のコマンド統合処理を終了する。
【００８１】
また、ステップ２２４において、循環参照先アドレスの待ち中フラグがＯＮでなければ（ステップ２２４：ＮＯ）、当該循環参照先アドレスが待ちキューに登録されていないことになるため、コマンド処理部１３は、循環参照先アドレスの循環参照先アドレスを次の循環参照先アドレスとして取得し（ステップ２２７）、すべての循環参照先アドレスに関する循環参照終了を確認する（ステップ２２８）。
【００８２】
ここで、循環参照先アドレスの循環参照先アドレスが自己のアドレスであり、循環参照が一巡して循環参照終了を確認した場合（ステップ２２８：ＹＥＳ）、コマンド処理部１３は、追加アドレスを待ちキューに追加し（ステップ２２９）、ステップ２２６へ移行する。また、循環参照が終了していない場合（ステップ２２８：ＮＯ）、ステップ２２３へ戻る。
【００８３】
［第２の実施の形態の効果］
このように本実施の形態は、コマンド処理部１３が、待ちキューに対して新たなアドレスを追加する際、当該アドレスの待ち中フラグをオンに設定し、当該アドレスの循環参照先に順に循環参照し、いずれかの参照先アドレスの待ち中フラグがオンに設定されている場合には、当該追加アドレスを待ちキューから削除するとともに当該待ち中フラグをオフに設定し、当該既登録アドレスに対して当該追加アドレスを子アドレスとして関連付けを行い、コマンド生成時に当該待ちキューから取得したアドレスの待ち中フラグをオフに設定するようにしたものである。
【００８４】
これにより、循環参照先アドレスを辿って待ち中フラグを確認するだけで、追加アドレスと同じアドレスが待ちキュー内に登録されているか否かを検索することができる。
例えば、処理ごとにＭ個のアドレスが設定されており、同一待ちキューにＮ個の処理のアドレスを登録した場合、待ちキューにはＭ×Ｎ個のアドレスが登録されていることになる。ここで、新たな処理のアドレスを待ちキューに追加する場合、Ｍ×Ｎ個のアドレス比較を行うことになるが、循環参照を用いた場合、処理ごとに１回ずつ待ち中フラグを確認すればよいことになるため、最大でＮ回だけ待ち中フラグを確認すればよいことになる。
【００８５】
したがって、待ちキュー内に登録されているアドレス数が多い場合には、待ちキュー内の全アドレスを検索する場合と比較して、検索のための所要時間を短縮することができ、これによるコマンド送信の遅れの発生を回避することができる。
【００８６】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【００８７】
１…計装システム、１０…通信制御装置、１１…通信Ｉ／Ｆ部、１２…処理管理部、１３…コマンド処理部、１４…レスポンス処理部、２０…ＰＬＣ、３０…調節計、３１…設備機器、Ｌ…通信回線。
【図１】
2017034434.tif 000003
【図２】
2017034434.tif 000004
【図３】
2017034434.tif 000005
【図４】
2017034434.tif 000006
【図５】
2017034434.tif 000007
【図６】
2017034434.tif 000008
【図７】
2017034434.tif 000009
【図８】
2017034434.tif 000010
【図９】
2017034434.tif 000011
【図１０】
2017034434.tif 000012
【図１１】
2017034434.tif 000013
【図１２】
2017034434.tif 000014
【図１３】
2017034434.tif 000015
【図１４】
2017034434.tif 000016
【図１５】
2017034434.tif 000017