(57)【要約】【課題】通信プロトコルの制約を受けることなく上位装置と下位装置との間の効率の良いデータ転送を実現する。【解決手段】通信制御装置１ａは、書込みリクエスト情報に応じて転送先にデータを書き込むコマンドフレームを作成し、使用可能なコネクションに対応するＰＬＣ用通信処理部１０−１〜１０−ｎにコマンドフレームを渡す通信リクエスト処理部１１と、読出しリクエスト情報に応じて転送元からデータを読み出すコマンドフレームを作成し、転送元に対応する調節計用通信処理部１２−１〜１２−ｍに渡す通信リクエスト処理部１３と、データ転送定義部１５のデータ転送定義情報で定義された転送元に対する読出しリクエスト情報を作成し、読出しリクエスト情報で要求したデータを転送元から受信したときに、このデータをデータ転送定義情報で定義された転送先に書き込む書込みリクエスト情報を作成するデータ転送処理部１４を備える。【選択図】  図２
2019097085.tif 000002
【特許請求の範囲】
【請求項１】
複数の下位装置の各々について設けられ、対応する下位装置と通信を行うように構成された複数の第１の通信処理部と、
上位装置との間に設定される複数のコネクションの各々について設けられ、対応するコネクションを介して前記上位装置と通信を行うように構成された複数の第２の通信処理部と、
データ転送定義情報を予め記憶するように構成されたデータ転送定義部と、
前記データ転送定義情報で定義された転送元の下位装置に対する読出しリクエスト情報を作成し、この読出しリクエスト情報で要求したデータを前記転送元から受信したときに、この受信したデータを前記データ転送定義情報で定義された転送先の上位装置に書き込む書込みリクエスト情報を作成するように構成されたデータ転送処理部と、
前記読出しリクエスト情報に応じて前記転送元からデータを読み出す第１のコマンドフレームを作成して、前記転送元に対応する前記第１の通信処理部に渡し、この第１の通信処理部が第１のレスポンスフレームを前記転送元から受信したときに、前記読出しリクエスト情報で要求されたデータを前記第１のレスポンスフレームから取り出して前記データ転送処理部に渡すように構成された第１の通信リクエスト処理部と、
前記複数のコネクションの中に使用可能なコネクションが存在する場合に、前記書込みリクエスト情報に応じて前記転送先にデータを書き込む第２のコマンドフレームを作成して、前記使用可能なコネクションに対応する前記第２の通信処理部に前記第２のコマンドフレームを渡し、この第２の通信処理部が第２のレスポンスフレームを前記転送先から受信したときに、この第２のレスポンスフレームが示す結果を前記データ転送処理部に通知するように構成された第２の通信リクエスト処理部とを備えることを特徴とする通信制御装置。
【請求項２】
上位装置との間に設定される複数のコネクションの各々について設けられ、対応するコネクションを介して前記上位装置と通信を行うように構成された複数の第１の通信処理部と、
複数の下位装置の各々について設けられ、対応する下位装置と通信を行うように構成された複数の第２の通信処理部と、
データ転送定義情報を予め記憶するように構成されたデータ転送定義部と、
前記データ転送定義情報で定義された転送元の上位装置に対する読出しリクエスト情報を作成し、この読出しリクエスト情報で要求したデータを前記転送元から受信したときに、この受信したデータを前記データ転送定義情報で定義された転送先の下位装置に書き込む書込みリクエスト情報を作成するように構成されたデータ転送処理部と、
前記複数のコネクションの中に使用可能なコネクションが存在する場合に、前記読出しリクエスト情報に応じて前記転送元からデータを読み出す第１のコマンドフレームを作成して、前記転送元に対応する前記第１の通信処理部に渡し、この第１の通信処理部が第１のレスポンスフレームを前記転送元から受信したときに、前記読出しリクエスト情報で要求されたデータを前記第１のレスポンスフレームから取り出して前記データ転送処理部に渡すように構成された第１の通信リクエスト処理部と、
前記書込みリクエスト情報に応じて前記転送先にデータを書き込む第２のコマンドフレームを作成して、前記転送先に対応する前記第２の通信処理部に渡し、この第２の通信処理部が第２のレスポンスフレームを前記転送先から受信したときに、この第２のレスポンスフレームが示す結果を前記データ転送処理部に通知するように構成された第２の通信リクエスト処理部とを備えることを特徴とする通信制御装置。
【請求項３】
請求項１または２記載の通信制御装置において、
前記データ転送定義情報は、前記転送元の情報と前記転送先の情報と共に、データ転送の起動条件を含み、
前記起動条件として、データ転送の周期が設定されていることを特徴とする通信制御装置。
【請求項４】
請求項１または２記載の通信制御装置において、
前記データ転送定義情報は、前記転送元の情報と前記転送先の情報と共に、データ転送の起動条件を含み、
前記起動条件として、トリガ情報が設定されていることを特徴とする通信制御装置。
【請求項５】
請求項１乃至４のいずれか１項に記載の通信制御装置において、
前記上位装置の１つの通信ポートに前記複数のコネクションが設定されていることを特徴とする通信制御装置。
【請求項６】
請求項１乃至４のいずれか１項に記載の通信制御装置において、
前記上位装置の複数の通信ポートに前記コネクションが１つずつ設定されていることを特徴とする通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置と下位装置との間のデータ転送を実現する通信制御装置に関するものである。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（Programmable Logic Controller、以下、ＰＬＣ）や温度調節計（以下、調節計）などの計器へ通信でデータを読み書きする際に、特許文献１に開示されている通信制御装置を介して、機器内のパラメータ（またはレジスタ）に関連付けられたデータアドレスを指定して、コマンドレスポンス通信で、そのパラメータの値を読み書きする通信プロトコルがある。このような通信プロトコルとしては、特許文献２に開示されたＭＯＤＢＵＳ（登録商標）、ＭＣプロトコル、ＣＰＬ（Controller Peripheral Link）などがある。
【０００３】
図１５は特許文献１に開示された通信制御装置の動作を説明する図である。図１５の例では、通信制御装置１は、ＣＰＬを用いて調節計３からデータを読み出し、読み出したデータをＭＯＤＢＵＳを用いてＰＬＣ２に書き込むようにしている。
【０００４】
ＰＬＣ２がマスター機器として存在し、その指示によって各調節計３が制御を行うシステムにおいて、各調節計３のデータ（操作量ＭＶや制御量ＰＶのデータ）は
上記のように通信で読み出され、ＰＬＣ２内に集約される。
通信制御装置１を介したＰＬＣ２と調節計３との通信において、従来はシリアル通信が利用されていた。シリアル通信の場合は、図１６に示すように、１つの物理ポート（ＣＯＭポート）につきコマンドレスポンスでデータを読み出せる調節計３の台数は１台であった。
【０００５】
近年増えてきた、Ｅｔｈｅｒｎｅｔ（登録商標）等のＬＡＮ（Local Area Network）を利用したＩＰ（Internet protocol）通信の場合は、図１７に示すように、同じＬＡＮ４上にある複数の調節計３から並列にコマンドレスポンスでデータを大量かつ高速に読み出すことが可能となった。通信制御装置１がＰＬＣ２へデータを転送する単位時間当たりのデータ量は、調節計３の接続台数に比例する。通信制御装置１とＰＬＣ２とのコマンドレスポンスで送受信できるデータ数には制限があり、一度にやり取りできるデータ数を超えた場合は複数の通信フレーム５−１，５−２，・・・に分けてデータを送受信する必要があり、並列処理ができない場合は通信フレームごとのコマンドレスポンスを待ちながら順番に処理する必要がある。
【０００６】
通信制御装置１とＰＬＣ２との単位時間当たりの通信量に関して、シリアル通信の場合は調節計３の接続台数が増えても、物理的な通信ポートの数の制約により大きな変化はなかったが、ＩＰ通信の場合は調節計３の接続台数に比例して通信制御装置１とＰＬＣ２との通信量が増える。その結果、多くの調節計３が利用されているシステムにおいて、通信制御装置１とＰＬＣ２との通信がボトルネックになるという課題があった。
【０００７】
このような課題の１つの解決方法として、通信制御装置１とＰＬＣ２との通信において、コマンドレスポンス処理においてレスポンスを待つことなく並列してコマンドを送信する方法がある。例えば、ＭＯＤＢＵＳ／ＴＣＰ（Transmission Control Protocol）などの、フレーム番号（フレーム識別ＩＤ）の機能を備えた通信プロトコルであれば、一度に複数のコマンドを送信することができる。
【０００８】
しかしながら、通信プロトコルや機器固有の仕様により並列に実行できる数は制約される。ＰＬＣ２の処理能力を超えてコマンドを送信すると、ＴＣＰの再送処理が多発し全体のパフォーマンス低下につながる場合があった。
また、フレーム番号の機能を備えていない通信プロトコルも存在する。このような通信プロトコルを利用する場合、再送処理などによってフレームの順番が入れ替わってしまう可能性があるので、複数のコマンドレスポンス処理を並列に実行することはできない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１７−３４４３３号公報
【特許文献２】特開２０１１−２３４１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、上記課題を解決するためになされたもので、調節計などの下位装置の接続数が増えた場合でも、通信プロトコルの制約を受けることなく上位装置と下位装置との間の効率の良いデータ転送を実現することができる通信制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の通信制御装置は、複数の下位装置の各々について設けられ、対応する下位装置と通信を行うように構成された複数の第１の通信処理部と、上位装置との間に設定される複数のコネクションの各々について設けられ、対応するコネクションを介して前記上位装置と通信を行うように構成された複数の第２の通信処理部と、データ転送定義情報を予め記憶するように構成されたデータ転送定義部と、前記データ転送定義情報で定義された転送元の下位装置に対する読出しリクエスト情報を作成し、この読出しリクエスト情報で要求したデータを前記転送元から受信したときに、この受信したデータを前記データ転送定義情報で定義された転送先の上位装置に書き込む書込みリクエスト情報を作成するように構成されたデータ転送処理部と、前記読出しリクエスト情報に応じて前記転送元からデータを読み出す第１のコマンドフレームを作成して、前記転送元に対応する前記第１の通信処理部に渡し、この第１の通信処理部が第１のレスポンスフレームを前記転送元から受信したときに、前記読出しリクエスト情報で要求されたデータを前記第１のレスポンスフレームから取り出して前記データ転送処理部に渡すように構成された第１の通信リクエスト処理部と、前記複数のコネクションの中に使用可能なコネクションが存在する場合に、前記書込みリクエスト情報に応じて前記転送先にデータを書き込む第２のコマンドフレームを作成して、前記使用可能なコネクションに対応する前記第２の通信処理部に前記第２のコマンドフレームを渡し、この第２の通信処理部が第２のレスポンスフレームを前記転送先から受信したときに、この第２のレスポンスフレームが示す結果を前記データ転送処理部に通知するように構成された第２の通信リクエスト処理部とを備えることを特徴とするものである。
【００１２】
また、本発明の通信制御装置は、上位装置との間に設定される複数のコネクションの各々について設けられ、対応するコネクションを介して前記上位装置と通信を行うように構成された複数の第１の通信処理部と、複数の下位装置の各々について設けられ、対応する下位装置と通信を行うように構成された複数の第２の通信処理部と、データ転送定義情報を予め記憶するように構成されたデータ転送定義部と、前記データ転送定義情報で定義された転送元の上位装置に対する読出しリクエスト情報を作成し、この読出しリクエスト情報で要求したデータを前記転送元から受信したときに、この受信したデータを前記データ転送定義情報で定義された転送先の下位装置に書き込む書込みリクエスト情報を作成するように構成されたデータ転送処理部と、前記複数のコネクションの中に使用可能なコネクションが存在する場合に、前記読出しリクエスト情報に応じて前記転送元からデータを読み出す第１のコマンドフレームを作成して、前記転送元に対応する前記第１の通信処理部に渡し、この第１の通信処理部が第１のレスポンスフレームを前記転送元から受信したときに、前記読出しリクエスト情報で要求されたデータを前記第１のレスポンスフレームから取り出して前記データ転送処理部に渡すように構成された第１の通信リクエスト処理部と、前記書込みリクエスト情報に応じて前記転送先にデータを書き込む第２のコマンドフレームを作成して、前記転送先に対応する前記第２の通信処理部に渡し、この第２の通信処理部が第２のレスポンスフレームを前記転送先から受信したときに、この第２のレスポンスフレームが示す結果を前記データ転送処理部に通知するように構成された第２の通信リクエスト処理部とを備えることを特徴とするものである。
【００１３】
また、本発明の通信制御装置の１構成例において、前記データ転送定義情報は、前記転送元の情報と前記転送先の情報と共に、データ転送の起動条件を含み、前記起動条件として、データ転送の周期が設定されていることを特徴とするものである。
また、本発明の通信制御装置の１構成例において、前記データ転送定義情報は、前記転送元の情報と前記転送先の情報と共に、データ転送の起動条件を含み、前記起動条件として、トリガ情報が設定されていることを特徴とするものである。
また、本発明の通信制御装置の１構成例は、前記上位装置の１つの通信ポートに前記複数のコネクションが設定されていることを特徴とするものである。
また、本発明の通信制御装置の１構成例は、前記上位装置の複数の通信ポートに前記コネクションが１つずつ設定されていることを特徴とするものである。
【発明の効果】
【００１４】
本発明によれば、通信制御装置と上位装置との間に複数のコネクションを設定して通信を行うことで、複数のコマンドフレームを、複数のコネクションを介して並列に上位装置に送信することが可能となるので、下位装置の接続数が増えた場合でも、通信プロトコルの制約を受けることなく、上位装置と下位装置との間の効率の良いデータ転送を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の原理を説明する図である。
【図２】図２は、本発明の第１の実施例に係る通信制御装置の構成を示すブロック図である。
【図３】図３は、本発明の第１の実施例においてＰＬＣの１つのＴＣＰ通信ポートに複数のコネクションを設定する例を説明する図である。
【図４】図４は、本発明の第１の実施例に係る通信制御装置のデータ転送定義部に記憶されているデータ転送定義情報を示す図である。
【図５】図５は、本発明の第１の実施例に係る通信制御装置のデータ転送処理部の動作を説明するフローチャートである。
【図６】図６は、本発明の第１の実施例に係る通信制御装置の調節計用の通信リクエスト処理部および通信処理部の動作を説明するフローチャートである。
【図７】図７は、本発明の第１の実施例に係る通信制御装置のＰＬＣ用の通信リクエスト処理部および通信処理部の動作を説明するフローチャートである。
【図８】図８は、本発明の第１の実施例に係る通信制御装置の動作を説明するシーケンス図である。
【図９】図９は、従来の通信制御装置の動作を説明するシーケンス図である。
【図１０】図１０は、本発明の第２の実施例においてＰＬＣの複数のＴＣＰ通信ポートにコネクションを１つずつ設定する例を説明する図である。
【図１１】図１１は、本発明の第３の実施例に係る通信制御装置のデータ転送定義部に記憶されているデータ転送定義情報を示す図である。
【図１２】図１２は、本発明の第３の実施例に係る通信制御装置のＰＬＣ用の通信リクエスト処理部および通信処理部の動作を説明するフローチャートである。
【図１３】図１３は、本発明の第３の実施例に係る通信制御装置の調節計用の通信リクエスト処理部および通信処理部の動作を説明するフローチャートである。
【図１４】図１４は、本発明の第１〜第３の実施例に係る通信制御装置を実現するコンピュータの構成例を示すブロック図である。
【図１５】図１５は、従来の通信制御装置の動作を説明する図である。
【図１６】図１６は、シリアル通信を利用したＰＬＣと調節計との通信を説明する図である。
【図１７】図１７は、ＬＡＮを利用したＰＬＣと調節計との通信を説明する図である。
【発明を実施するための形態】
【００１６】
［発明の原理］
図１は本発明の原理を説明する図である。ＰＬＣとの通信において、利用可能な通信プロトコルが、コマンドを並列に実行することができないプロトコルの場合でも、ＰＬＣの仕様として、１つのＴＣＰ通信ポートに複数のコネクションを確立することが可能な場合がある。また、単一のコネクションしか許可されていない場合でも、同時に複数のＴＣＰ通信ポートが利用可能な場合がある。これらのＰＬＣの仕様は、複数の機器（タッチパネルやコンピュータなど）がＰＬＣへ接続されることを想定したものである。
【００１７】
本発明では、ＰＬＣとの間で同時に複数のコネクションを確立することが可能なことを利用して、通信制御装置１ａが、複数のコネクションに対して並行してコマンドレスポンス処理を実行することで、ＰＬＣからのレスポンス待ちによる無駄時間を削減する。
【００１８】
［第１の実施例］
以下、本発明の実施例について図面を参照して説明する。図２は本発明の第１の実施例に係る通信制御装置１ａの構成を示すブロック図である。通信制御装置１ａは、ＰＬＣ２とＥｔｈｅｒｎｅｔ等のネットワークを介して接続され、ＰＬＣ２との間に設定される複数のコネクションの各々について設けられ、対応するコネクションを介してＰＬＣ２と通信を行うｎ個のＰＬＣ用通信処理部１０−１〜１０−ｎ（ｎは２以上の整数）と、後述するデータ転送処理部からの書込みリクエスト情報に応じて転送先にデータを書き込むコマンドフレームを作成して、使用可能なコネクションに対応するＰＬＣ用通信処理部１０−１〜１０−ｎにコマンドフレームを渡し、ＰＬＣ用通信処理部１０−１〜１０−ｎがレスポンスフレームを受信したときに、このレスポンスフレームが示す結果をデータ転送処理部に通知する通信リクエスト処理部１１と、調節計３−１〜３−ｍ毎に設けられ、調節計３−１〜３−ｍとＥｔｈｅｒｎｅｔ等のネットワークを介して接続されたｍ個の調節計用通信処理部１２−１〜１２−ｍ（ｍは２以上の整数）と、データ転送処理部からの読出しリクエスト情報に応じて転送元からデータを読み出すコマンドフレームを作成して、転送元に対応する調節計用通信処理部１２−１〜１２−ｍに渡し、調節計用通信処理部１２−１〜１２−ｍがレスポンスフレームを受信したときに、読出しリクエスト情報で要求されたデータをレスポンスフレームから取り出してデータ転送処理部に渡す通信リクエスト処理部１３と、データ転送定義情報で定義された転送元に対する読出しリクエスト情報を作成し、この読出しリクエスト情報で要求したデータを転送元から受信したときに、この受信したデータをデータ転送定義情報で定義された転送先に書き込む書込みリクエスト情報を作成するデータ転送処理部１４と、転送元の情報と転送先の情報とデータ転送の起動条件とを含むデータ転送定義情報を予め記憶するデータ転送定義部１５とから構成される。
【００１９】
本実施例では、図３に示すように、ＰＬＣ２の仕様として、１つのＴＣＰ通信ポート２００に複数のコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎを確立することが許可されている場合について説明する。図３における１００−１〜１００−ｎはそれぞれ通信制御装置１ａのＰＬＣ用通信処理部１０−１〜１０−ｎに設定されるＴＣＰ通信ポート、１０１−１〜１０１−ｍはそれぞれ通信制御装置１ａの調節計用通信処理部１２−１〜１２−ｍに設定されるＴＣＰ通信ポート、３００−１〜３００−ｍはそれぞれ調節計３−１〜３−ｍのＴＣＰ通信ポート、Ｃｃｏｎ−１〜Ｃｃｏｎ−ｍはＴＣＰ通信ポート１０１−１〜１０１−ｍとＴＣＰ通信ポート３００−１〜３００−ｍとの間に設定されるコネクションである。
【００２０】
データ転送定義部１５には、図４に示すようなデータ転送定義情報が予め記憶されている。データ転送定義情報は、データ転送の起動条件と、データ転送元のアドレス情報（本実施例では調節計３−１〜３−ｍの監視ポイントやデータを指定するアドレス）と、データ転送先のアドレス情報（本実施例ではＰＬＣ２のレジスタのアドレス）とからなる。
【００２１】
図４の例では、データ転送の起動条件として、データ転送の周期が定義されており、２００ｍｓｅｃ毎にデータ転送が行われることが分かる。このようなデータ転送定義情報は、通信制御装置１ａのユーザによって予め登録される。
【００２２】
図５は本実施例の通信制御装置１ａのデータ転送処理部１４の動作を説明するフローチャート、図６は通信リクエスト処理部１３および調節計用通信処理部１２−１〜１２−ｍの動作を説明するフローチャート、図７は通信リクエスト処理部１１およびＰＬＣ用通信処理部１０−１〜１０−ｎの動作を説明するフローチャートである。
【００２３】
データ転送処理部１４は、データ転送定義部１５のデータ転送定義情報で定義された起動条件が成立するまで待機する。
データ転送処理部１４は、データ転送を実施すべきタイミングになり、起動条件が成立すると（図５ステップＳ１００においてＹＥＳ）、データ転送定義情報で定義された転送元アドレス情報に基づいて、データ転送元からデータを読み出すための読出しリクエスト情報を作成する（図５ステップＳ１０１）。読出しリクエスト情報には、転送元アドレス情報が含まれる。
【００２４】
そして、データ転送処理部１４は、作成した読出しリクエスト情報を、データ転送定義情報で定義されたデータ転送元に対応する通信リクエスト処理部（本実施例では通信リクエスト処理部１３）に送信する（図５ステップＳ１０２）。
データ転送処理部１４は、データ転送定義情報で定義されたデータ転送元とデータ転送先の全ての組について読出しリクエスト情報の送信が完了するまで（図５ステップＳ１０３においてＹＥＳ）、ステップＳ１０１，Ｓ１０２の処理を繰り返し行う。
【００２５】
次に、通信リクエスト処理部１３は、データ転送処理部１４からの読出しリクエスト情報を受信すると（図６ステップＳ２００においてＹＥＳ）、受信した読出しリクエスト情報を内部の通信リクエストキュー（不図示）に格納する通信リクエストキュー処理を行う（図６ステップＳ２０１）。
【００２６】
続いて、通信リクエスト処理部１３は、通信リクエストキューに未処理の読出しリクエスト情報が格納されている場合（図６ステップＳ２０２においてＹＥＳ）、未処理の読出しリクエスト情報を処理対象として、この読出しリクエスト情報に含まれる転送元アドレス情報で特定されるデータ転送元の調節計３（３−１〜３−ｍ）との間で通信処理中かどうかを判定する（図６ステップＳ２０３）。
【００２７】
通信リクエスト処理部１３は、データ転送元との間で通信処理中でない場合（ステップＳ２０３においてＮＯ）、処理対象の読出しリクエスト情報に基づいて、データ転送元からデータを読み出すためのコマンドフレームを作成する（図６ステップＳ２０４）。コマンドフレームには、転送元アドレス情報が含まれる。
【００２８】
そして、通信リクエスト処理部１３は、作成したコマンドフレームをデータ転送元（本実施例では調節計）に対応する調節計用通信処理部１２（１２−１〜１２−ｍ）に渡す。調節計用通信処理部１２（１２−１〜１２−ｍ）は、受け取ったコマンドフレームを、データ転送元との間に設定されたコネクションＣｃｏｎ（Ｃｃｏｎ−１〜Ｃｃｏｎ−ｍ）を介してデータ転送元の調節計３（３−１〜３−ｍ）に送信する（図６ステップＳ２０５）。
【００２９】
調節計３（３−１〜３−ｍ）は、コマンドフレームを受信すると、受信したコマンドフレームに含まれる転送元アドレス情報で指定されるデータを内部のメモリから取得して、このデータを含むレスポンスフレームを作成する。そして、調節計３（３−１〜３−ｍ）は、作成したレスポンスフレームを、コマンドフレームの送信元の通信制御装置１ａとの間に設定されたコネクションＣｃｏｎ（Ｃｃｏｎ−１〜Ｃｃｏｎ−ｍ）を介して通信制御装置１ａに送信する。
【００３０】
コマンドフレームを送信した通信制御装置１ａの調節計用通信処理部１２（１２−１〜１２−ｍ）は、このコマンドフレームに対するレスポンスフレームを調節計３（３−１〜３−ｍ）から受信すると（図６ステップＳ２０６においてＹＥＳ）、受信したレスポンスフレームを通信リクエスト処理部１３に渡す。
【００３１】
通信リクエスト処理部１３は、レスポンスフレームを解析して、データ転送元の調節計３（３−１〜３−ｍ）から送信されたデータをレスポンスフレームから取り出す（図６ステップＳ２０７）。通信リクエスト処理部１３は、レスポンスフレームから取り出したデータを、処理対象の読出しリクエスト情報で要求された結果としてデータ転送処理部１４に送信する（図６ステップＳ２０８）。
【００３２】
そして、通信リクエスト処理部１３は、処理対象の読出しリクエスト情報で要求された結果をデータ転送処理部１４に送信した後、当該読出しリクエスト情報を、内部の通信リクエストキューから削除し（図６ステップＳ２０９）、ステップＳ２００に戻る。
【００３３】
次に、データ転送処理部１４は、読出しリクエスト情報で要求した結果を通信リクエスト処理部１３から受信すると（図５ステップＳ１０４においてＹＥＳ）、この読出しリクエスト情報を作成する元となったデータ転送定義情報で定義された転送先アドレス情報に基づいて、データ転送先にデータを書き込むための書込みリクエスト情報を作成する（図５ステップＳ１０５）。書込みリクエスト情報には、転送先アドレス情報と、データ転送元の調節計３（３−１〜３−ｍ）から送信されたデータとが含まれる。
【００３４】
そして、データ転送処理部１４は、作成した書込みリクエスト情報を、データ転送定義情報で定義されたデータ転送先に対応する通信リクエスト処理部（本実施例では通信リクエスト処理部１１）に送信する（図５ステップＳ１０６）。
【００３５】
次に、通信リクエスト処理部１１は、データ転送処理部１４からの書込みリクエスト情報を受信すると（図７ステップＳ３００においてＹＥＳ）、受信した書込みリクエスト情報を内部の通信リクエストキュー（不図示）に格納する通信リクエストキュー処理を行う（図７ステップＳ３０１）。
【００３６】
続いて、通信リクエスト処理部１１は、通信リクエストキューに未処理の書込みリクエスト情報が格納されている場合（図７ステップＳ３０２においてＹＥＳ）、未処理の書込みリクエスト情報を処理対象として、この書込みリクエスト情報に含まれる転送先アドレス情報で特定されるデータ転送先（本実施例ではＰＬＣ２）との間で通信処理中かどうかを判定する（図７ステップＳ３０３）。
【００３７】
本実施例では、通信制御装置１ａとＰＬＣ２との間に複数のコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎが設定されているので、全てのコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎが使用されている場合には通信処理中という判定結果となり、コネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎのうち少なくとも１つのコネクションが未使用の場合には通信処理中でないという判定結果になる。
【００３８】
通信リクエスト処理部１１は、データ転送先との間で通信処理中でない場合、すなわち複数のコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎの中に使用可能なコネクションが存在する場合（ステップＳ３０３においてＮＯ）、処理対象の書込みリクエスト情報に基づいて、データ転送先にデータを書き込むためのコマンドフレームを作成する（図７ステップＳ３０４）。コマンドフレームには、転送先アドレス情報と、データ転送元の調節計３（３−１〜３−ｍ）から送信されたデータとが含まれる。
【００３９】
そして、通信リクエスト処理部１１は、作成したコマンドフレームを、データ転送先（本実施例ではＰＬＣ２）との間に設定された複数のコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎのうち、使用可能なコネクションに対応するＰＬＣ用通信処理部１０（１０−１〜１０−ｎ）に渡す。ＰＬＣ用通信処理部１０（１０−１〜１０−ｎ）は、対応するコネクションＰｃｏｎ（Ｐｃｏｎ−１〜Ｐｃｏｎ−ｎ）を介してコマンドフレームをデータ転送先のＰＬＣ２に送信する（図７ステップＳ３０５）。
【００４０】
ＰＬＣ２は、コマンドフレームを受信すると、コマンドフレームを受信したコネクションＰｃｏｎ（Ｐｃｏｎ−１〜Ｐｃｏｎ−ｎ）を利用して、コマンドフレームを受信したことを示すレスポンスフレームを通信制御装置１ａに返す。また、ＰＬＣ２は、受信したコマンドフレームに含まれる転送先アドレス情報で指定されるレジスタに、このコマンドフレームに含まれるデータを書き込む。
こうして、調節計３（３−１〜３−ｍ）のデータをＰＬＣ２に転送することができる。
【００４１】
コマンドフレームを送信した通信制御装置１ａのＰＬＣ用通信処理部１０（１０−１〜１０−ｎ）は、このコマンドフレームに対するレスポンスフレームをＰＬＣ２から受信すると（図７ステップＳ３０６においてＹＥＳ）、受信したレスポンスフレームを通信リクエスト処理部１１に渡す。
【００４２】
通信リクエスト処理部１１は、レスポンスフレームを解析して（図７ステップＳ３０７）、データ転送先のＰＬＣ２がコマンドフレームを受信したことを確認すると、処理対象の書込みリクエスト情報で要求された処理が完了したことを示す情報を、処理対象の書込みリクエスト情報で要求された結果としてデータ転送処理部１４に送信する（図７ステップＳ３０８）。
【００４３】
そして、通信リクエスト処理部１１は、処理対象の書込みリクエスト情報で要求された結果をデータ転送処理部１４に送信した後、当該書込みリクエスト情報を、内部の通信リクエストキューから削除し（図７ステップＳ３０９）、ステップＳ３００に戻る。
【００４４】
データ転送処理部１４は、書込みリクエスト情報で要求した結果を通信リクエスト処理部１１から受信すると（図５ステップＳ１０７においてＹＥＳ）、データ転送定義情報で定義されたデータ転送元とデータ転送先の全ての組についてデータ転送が完了したかどうかを判定する（図５ステップＳ１０８）。
【００４５】
データ転送処理部１４は、データ転送定義情報で定義されたデータ転送元とデータ転送先の全ての組についてデータ転送が完了していない場合には（ステップＳ１０８においてＮＯ）、ステップＳ１０４に戻る。また、データ転送処理部１４は、データ転送定義情報で定義されたデータ転送元とデータ転送先の全ての組についてデータ転送が完了した場合には（ステップＳ１０８においてＹＥＳ）、ステップＳ１００に戻り、次の起動条件が成立するまで待機する。
【００４６】
図８は本実施例の通信制御装置１ａの動作を説明するシーケンス図である。図８の例では、通信制御装置１ａとＰＬＣ２との間に３つのコネクションＰｃｏｎ−１〜Ｐｃｏｎ−３が設定されている場合について説明する。
【００４７】
図５、図６で説明した動作により、通信制御装置１ａは、調節計３−１〜３−３に対して、データを読み出すためのコマンドフレームＣｃ−１〜Ｃｃ−３を送信する。このコマンドフレームＣｃ−１〜Ｃｃ−３に対して、調節計３−１〜３−３は、要求されたデータを含むレスポンスフレームＣｒ−１〜Ｃｒ−３を通信制御装置１ａに返信する。
【００４８】
そして、通信制御装置１ａは、受信したレスポンスフレームＣｒ−１〜Ｃｒ−３に含まれるデータをＰＬＣ２に書き込むためのコマンドフレームＰｃ−１〜Ｐｃ−３を、３つのコネクションＰｃｏｎ−１〜Ｐｃｏｎ−３を介して並列にＰＬＣ２に送信する。ＰＬＣ２は、コマンドフレームＰｃ−１〜Ｐｃ−３を受信したことを示すレスポンスフレームＰｒ−１〜Ｐｒ−３を、それぞれコネクションＰｃｏｎ−１〜Ｐｃｏｎ−３を介して通信制御装置１ａに返信する。
【００４９】
図９は従来の通信制御装置１の動作を説明するシーケンス図である。従来においても、通信制御装置１と調節計３−１〜３−３との間のコマンドレスポンス処理は本実施例と同様である。
【００５０】
一方、通信制御装置１とＰＬＣ２との間については１つのコネクションＰｃｏｎ−１のみしか設定されていないので、通信制御装置１は、コマンドフレームＰｃ−１に対するレスポンスフレームＰｒ−１を受信するまで、次のコマンドフレームＰｃ−２をＰＬＣ２に送信することはできない。同様に、通信制御装置１は、コマンドフレームＰｃ−２に対するレスポンスフレームＰｒ−２を受信するまで、次のコマンドフレームＰｃ−３をＰＬＣ２に送信することはできない。このように、従来の通信制御装置１では、複数のコマンドレスポンス処理を並列に実行できないことが分かる。
【００５１】
以上のように、本実施例では、通信制御装置１ａとＰＬＣ２との間に複数のコネクションを設定して通信を行うことで、通信制御装置１ａを介したＰＬＣ２と調節計３（３−１〜３−ｍ）との効率の良いデータ転送を実現することができる。ＰＬＣ２の通信プロトコルや調節計３（３−１〜３−ｍ）の通信プロトコルはＴＣＰ／ＩＰ通信を利用可能な通信プロトコルであればよく、通信プロトコルの種類を問わず本発明を適用することができる。したがって、通信プロトコルの制約を受けることなく効率の良いデータ転送を実現することができる。
【００５２】
［第２の実施例］
第１の実施例では、ＰＬＣ２の仕様として、１つのＴＣＰ通信ポート２００に複数のコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎを確立することが許可されている場合について説明した。これに対して、図１０に示すように、ＰＬＣ２の仕様として、１つのＴＣＰ通信ポート当たり１つのコネクションの確立しか許可されていないが、複数のＴＣＰ通信ポート２００−１〜２００−ｎを設定することが可能で、ＴＣＰ通信ポート２００−１〜２００−ｎ毎にコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎを確立することが可能な場合にも、本発明を適用可能である。
図１０に示した例においても、通信制御装置１ａの構成および動作は、第１の実施例で説明したとおりである。
【００５３】
また、ＰＬＣ２の仕様として、複数のＴＣＰ通信ポートを設定することが可能で、かつ各ＴＣＰ通信ポートに複数のコネクションを確立することが許可されている場合にも本発明を適用可能である。
【００５４】
［第３の実施例］
第１、第２の実施例では、データ転送の起動条件としてデータ転送の周期が定義されている場合について説明したが、図１１に示すように、起動条件として、トリガ情報が定義されていてもよい。図１１の例では、ＰＬＣ２のＭ００１というアドレスで特定されるレジスタがＯＮになったときに起動条件が成立して、データ転送が開始される。また、第１、第２の実施例では、調節計３−１〜３−ｍが転送元で、ＰＬＣ２が転送先の場合について説明したが、図１１に示すように、ＰＬＣ２が転送元で、調節計３−１〜３−ｍが転送先であってもよい。
【００５５】
本実施例においても、通信制御装置１ａの構成は第１、第２の実施例と同様なので、データ転送定義部１５に図１１に示すようなデータ転送定義情報が記憶されている場合の通信制御装置１ａの動作を、図２の符号を用いて説明する。
データ転送処理部１４の処理の流れは第１の実施例と同様なので、図５の符号を用いて説明する。図１２は通信リクエスト処理部１１およびＰＬＣ用通信処理部１０−１〜１０−ｎの動作を説明するフローチャート、図１３は通信リクエスト処理部１３および調節計用通信処理部１２−１〜１２−ｍの動作を説明するフローチャートである。
【００５６】
データ転送処理部１４は、ＰＬＣ２のＭ００１というアドレスで特定されるレジスタがＯＮになり、起動条件が成立すると（図５ステップＳ１００においてＹＥＳ）、データ転送定義情報で定義された転送元アドレス情報に基づいて読出しリクエスト情報を作成する（図５ステップＳ１０１）。なお、ＰＬＣ２のレジスタの状態は、通信リクエスト処理部１１およびＰＬＣ用通信処理部１０（１０−１〜１０−ｎ）を介して定期的に監視することが可能である。
【００５７】
そして、データ転送処理部１４は、作成した読出しリクエスト情報を、データ転送定義情報で定義されたデータ転送元に対応する通信リクエスト処理部（本実施例では通信リクエスト処理部１１）に送信する（図５ステップＳ１０２）。
【００５８】
次に、通信リクエスト処理部１１は、データ転送処理部１４からの読出しリクエスト情報を受信すると（図１２ステップＳ４００においてＹＥＳ）、受信した読出しリクエスト情報を内部の通信リクエストキューに格納する通信リクエストキュー処理を行う（図１２ステップＳ４０１）。
【００５９】
続いて、通信リクエスト処理部１１は、通信リクエストキューに未処理の読出しリクエスト情報が格納されている場合（図１２ステップＳ４０２においてＹＥＳ）、未処理の読出しリクエスト情報を処理対象として、この読出しリクエスト情報に含まれる転送元アドレス情報で特定されるデータ転送元との間で通信処理中かどうかを判定する（図１２ステップＳ４０３）。
【００６０】
通信リクエスト処理部１１は、データ転送元のＰＬＣ２との間で通信処理中でない場合、すなわち複数のコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎの中に使用可能なコネクションが存在する場合（ステップＳ４０３においてＮＯ）、処理対象の読出しリクエスト情報に基づいて、データ転送元からデータを読み出すためのコマンドフレームを作成する（図１２ステップＳ４０４）。
【００６１】
そして、通信リクエスト処理部１１は、作成したコマンドフレームを、データ転送元（本実施例ではＰＬＣ２）との間に設定された複数のコネクションＰｃｏｎ−１〜Ｐｃｏｎ−ｎのうち、使用可能なコネクションに対応するＰＬＣ用通信処理部１０（１０−１〜１０−ｎ）に渡す。ＰＬＣ用通信処理部１０（１０−１〜１０−ｎ）は、対応するコネクションＰｃｏｎ（Ｐｃｏｎ−１〜Ｐｃｏｎ−ｎ）を介してコマンドフレームをデータ転送元のＰＬＣ２に送信する（図１２ステップＳ４０５）。
【００６２】
ＰＬＣ２は、コマンドフレームを受信すると、受信したコマンドフレームに含まれる転送元アドレス情報で指定されるデータを内部のメモリから取得して、このデータを含むレスポンスフレームを作成する。そして、ＰＬＣ２は、コマンドフレームを受信したコネクションＰｃｏｎ（Ｐｃｏｎ−１〜Ｐｃｏｎ−ｎ）を利用して、レスポンスフレームを通信制御装置１ａに返す。
【００６３】
コマンドフレームを送信した通信制御装置１ａのＰＬＣ用通信処理部１０（１０−１〜１０−ｎ）は、このコマンドフレームに対するレスポンスフレームをＰＬＣ２から受信すると（図１２ステップＳ４０６においてＹＥＳ）、受信したレスポンスフレームを通信リクエスト処理部１１に渡す。
【００６４】
通信リクエスト処理部１１は、レスポンスフレームを解析して、データ転送元のＰＬＣ２から送信されたデータをレスポンスフレームから取り出す（図１２ステップＳ４０７）。通信リクエスト処理部１１は、レスポンスフレームから取り出したデータを、処理対象の読出しリクエスト情報で要求された結果としてデータ転送処理部１４に送信する（図１２ステップＳ４０８）。
【００６５】
そして、通信リクエスト処理部１１は、処理対象の読出しリクエスト情報で要求された結果をデータ転送処理部１４に送信した後、当該読出しリクエスト情報を、内部の通信リクエストキューから削除し（図１２ステップＳ４０９）、ステップＳ４００に戻る。
【００６６】
次に、データ転送処理部１４は、読出しリクエスト情報で要求した結果を通信リクエスト処理部１１から受信すると（図５ステップＳ１０４においてＹＥＳ）、この読出しリクエスト情報を作成する元となったデータ転送定義情報で定義された転送先アドレス情報に基づいて、データ転送先にデータを書き込むための書込みリクエスト情報を作成する（図５ステップＳ１０５）。書込みリクエスト情報には、転送先アドレス情報と、データ転送元のＰＬＣ２から送信されたデータとが含まれる。
【００６７】
そして、データ転送処理部１４は、作成した書込みリクエスト情報を、データ転送定義情報で定義されたデータ転送先に対応する通信リクエスト処理部（本実施例では通信リクエスト処理部１３）に送信する（図５ステップＳ１０６）。
【００６８】
次に、通信リクエスト処理部１３は、データ転送処理部１４からの書込みリクエスト情報を受信すると（図１３ステップＳ５００においてＹＥＳ）、受信した書込みリクエスト情報を内部の通信リクエストキューに格納する通信リクエストキュー処理を行う（図１３ステップＳ５０１）。
【００６９】
続いて、通信リクエスト処理部１３は、通信リクエストキューに未処理の書込みリクエスト情報が格納されている場合（図１３ステップＳ５０２においてＹＥＳ）、未処理の書込みリクエスト情報を処理対象として、この書込みリクエスト情報に含まれる転送先アドレス情報で特定されるデータ転送先（本実施例では調節計３−１〜３−ｍ）との間で通信処理中かどうかを判定する（図１３ステップＳ５０３）。
【００７０】
通信リクエスト処理部１３は、データ転送先との間で通信処理中でない場合（ステップＳ５０３においてＮＯ）、処理対象の書込みリクエスト情報に基づいて、データ転送先にデータを書き込むためのコマンドフレームを作成する（図１３ステップＳ５０４）。コマンドフレームには、転送先アドレス情報と、データ転送元のＰＬＣ２から送信されたデータとが含まれる。
【００７１】
そして、通信リクエスト処理部１３は、作成したコマンドフレームをデータ転送先（本実施例では調節計）に対応する調節計用通信処理部１２（１２−１〜１２−ｍ）に渡す。調節計用通信処理部１２（１２−１〜１２−ｍ）は、受け取ったコマンドフレームを、データ転送元との間に設定されたコネクションＣｃｏｎ（Ｃｃｏｎ−１〜Ｃｃｏｎ−ｍ）を介してデータ転送元の調節計３（３−１〜３−ｍ）に送信する（図１３ステップＳ５０５）。
【００７２】
調節計３（３−１〜３−ｍ）は、コマンドフレームを受信すると、コマンドフレームを受信したことを示すレスポンスフレームを通信制御装置１ａに返す。また、調節計３（３−１〜３−ｍ）は、受信したコマンドフレームに含まれる転送先アドレス情報で指定されるレジスタに、このコマンドフレームに含まれるデータを書き込む。
【００７３】
コマンドフレームを送信した通信制御装置１ａの調節計用通信処理部１２（１２−１〜１２−ｍ）は、このコマンドフレームに対するレスポンスフレームを調節計３（３−１〜３−ｍ）から受信すると（図１３ステップＳ５０６においてＹＥＳ）、受信したレスポンスフレームを通信リクエスト処理部１３に渡す。
【００７４】
通信リクエスト処理部１３は、レスポンスフレームを解析して（図１３ステップＳ５０７）、データ転送先の調節計３（３−１〜３−ｍ）がコマンドフレームを受信したことを確認すると、処理対象の書込みリクエスト情報で要求された処理が完了したことを示す情報を、処理対象の書込みリクエスト情報で要求された結果としてデータ転送処理部１４に送信する（図１３ステップＳ５０８）。
【００７５】
そして、通信リクエスト処理部１３は、処理対象の書込みリクエスト情報で要求された結果をデータ転送処理部１４に送信した後、当該書込みリクエスト情報を、内部の通信リクエストキューから削除し（図１３ステップＳ５０９）、ステップＳ５００に戻る。
【００７６】
データ転送処理部１４は、書込みリクエスト情報で要求した結果を通信リクエスト処理部１３から受信すると（図５ステップＳ１０７においてＹＥＳ）、データ転送定義情報で定義されたデータ転送元とデータ転送先の全ての組についてデータ転送が完了したかどうかを判定する（図５ステップＳ１０８）。
【００７７】
データ転送処理部１４は、データ転送定義情報で定義されたデータ転送元とデータ転送先の全ての組についてデータ転送が完了していない場合には（ステップＳ１０８においてＮＯ）、ステップＳ１０４に戻る。また、データ転送処理部１４は、データ転送定義情報で定義されたデータ転送元とデータ転送先の全ての組についてデータ転送が完了した場合には（ステップＳ１０８においてＹＥＳ）、ステップＳ１００に戻り、次の起動条件が成立するまで待機する。
【００７８】
こうして、本実施例では、ＰＬＣ２のデータを調節計３（３−１〜３−ｍ）に転送することができる。
なお、本実施例では、ＰＬＣ２側のイベント発生を指定する情報がトリガ情報としてデータ転送定義部１５に登録されている例で説明したが、例えば調節計３−１〜３−３の特定のアラームまたはイベントの発生を指定する情報をトリガ情報としてデータ転送定義部１５に登録するようにしてもよい。調節計３（３−１〜３−ｍ）の状態は、通信リクエスト処理部１３および調節計用通信処理部１２（１２−１〜１２−ｍ）を介して定期的に監視することが可能である。
【００７９】
第１〜第３の実施例では、ＰＬＣ２を上位装置、複数の調節計３（３−１〜３−ｍ）を下位装置としたが、これに限るものではない。例えば上位装置と複数の下位装置の各々がＰＬＣであってもよい。
【００８０】
また、第１〜第３の実施例では、既にコネクションが確立された後の動作について説明しているが、ＴＣＰ／ＩＰ通信においてコネクションの確立は周知の技術であることは言うまでもない。
また、コマンドフレームの送信に対してレスポンスフレームが所定の時間内に戻らない場合には、周知のとおりコマンドフレームの再送処理が行われることは言うまでもない。
【００８１】
第１〜第３の実施例で説明した通信制御装置１ａは、ＣＰＵ（Central Processing Unit）、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図１４に示す。コンピュータは、ＣＰＵ４００と、記憶装置４０１と、インターフェース装置（以下、Ｉ／Ｆと略する）４０２とを備えている。Ｉ／Ｆ４０２には、ＰＬＣ２と調節計３−１〜３−３とが接続される。このようなコンピュータにおいて、本発明を実現させるためのプログラムは記憶装置４０１に格納される。ＣＰＵ４００は、記憶装置４０１に格納されたプログラムに従って第１〜第３の実施例で説明した処理を実行する。
【産業上の利用可能性】
【００８２】
本発明は、上位装置と下位装置との間でデータ転送を行う技術に適用することができる。
【符号の説明】
【００８３】
１ａ…通信制御装置、２…ＰＬＣ、３−１〜３−ｍ…調節計、１０−１〜１０−ｎ…ＰＬＣ用通信処理部、１１，１３…通信リクエスト処理部、１２−１〜１２−ｍ…調節計用通信処理部、１４…データ転送処理部、１５…データ転送定義部。
【図１】
2019097085.tif 000003
【図２】
2019097085.tif 000004
【図３】
2019097085.tif 000005
【図４】
2019097085.tif 000006
【図５】
2019097085.tif 000007
【図６】
2019097085.tif 000008
【図７】
2019097085.tif 000009
【図８】
2019097085.tif 000010
【図９】
2019097085.tif 000011
【図１０】
2019097085.tif 000012
【図１１】
2019097085.tif 000013
【図１２】
2019097085.tif 000014
【図１３】
2019097085.tif 000015
【図１４】
2019097085.tif 000016
【図１５】
2019097085.tif 000017
【図１６】
2019097085.tif 000018
【図１７】
2019097085.tif 000019