(57)【要約】【課題】プッシュ型の通信方式とプル型の通信方式との双方を用いて通信を行うことができるデータ収集装置等を提供する。【解決手段】データ収集装置は、機器で得られるデータを収集するものであり、機器に対して要求を送信し、機器から送信されてきたデータを受信する通信部と、通信部で受信されたデータが、プル型の通信方式により機器から送信される第１データであるのか、又はプッシュ型の通信方式により機器から送信される第２データであるのかを判定する判定部と、判定部の判定結果に応じて、通信部で受信されたデータを、第１データと第２データとに分けて格納する格納部と、を備える。【選択図】図１
2020141227.tif 000002
【特許請求の範囲】
【請求項１】
機器で得られるデータを収集するデータ収集装置であって、
前記機器に対して要求を送信し、前記機器から送信されてきたデータを受信する通信部と、
前記通信部で受信されたデータが、プル型の通信方式により前記機器から送信される第１データであるのか、又はプッシュ型の通信方式により前記機器から送信される第２データであるのかを判定する判定部と、
前記判定部の判定結果に応じて、前記通信部で受信されたデータを、前記第１データと前記第２データとに分けて格納する格納部と、
を備えるデータ収集装置。
【請求項２】
前記機器から送信されるデータには、前記第１データ及び前記第２データの別を示す識別情報が含まれており、
前記判定部は、前記識別情報に基づいて、前記通信部で受信されたデータが前記第１データであるのか、又は前記第２データであるのかを判定する、
請求項１記載のデータ収集装置。
【請求項３】
前記第２データを表示する表示部と、
前記格納部に格納された前記第２データを読み出して前記表示部に表示させる処理部と、
を備える請求項１又は請求項２記載のデータ収集装置。
【請求項４】
請求項１から請求項３の何れか一項に記載のデータ収集装置と、
前記データ収集装置から送信されてきた前記要求を受信した場合には、前記プル型の通信方式により前記第１データを送信してから、前記プッシュ型の通信方式により前記第２データを送信する機器と、
を備えるデータ収集システム。
【請求項５】
機器で得られるデータを収集するデータ収集方法であって、
データ収集装置から前記機器に対して要求を送信する送信ステップと、
前記機器から送信されてきたデータを前記データ収集装置で受信する受信ステップと、
前記データ収集装置で受信されたデータが、プル型の通信方式により前記機器から送信される第１データであるのか、又はプッシュ型の通信方式により前記機器から送信される第２データであるのかを判定する判定ステップと、
判定結果に応じて、前記データ収集装置で受信されたデータを、前記第１データと前記第２データとに分けて格納する格納ステップと、
を有するデータ収集方法。
【請求項６】
コンピュータを、
機器に対して要求を送信し、前記機器から送信されてきたデータを受信する通信手段と、
前記通信手段で受信されたデータが、プル型の通信方式により前記機器から送信される第１データであるのか、又はプッシュ型の通信方式により前記機器から送信される第２データであるのかを判定する判定手段と、
前記判定手段の判定結果に応じて、前記通信手段で受信されたデータを、前記第１データと前記第２データとに分けて格納する格納手段と、
を備えるデータ収集装置として機能させるデータ収集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ収集装置、データ収集システム、データ収集方法、及びデータ収集プログラムに関する。
【背景技術】
【０００２】
一般的に、クライアント・サーバ型の通信システムにおける通信方式は、プッシュ型（ＰＵＳＨ型）とプル型（ＰＵＬＬ型）とに大別される。プッシュ型の通信方式は、サーバがクライアントに対して一方的にデータを送信する通信方式である。プッシュ型の通信方式としては、例えばＭＱＴＴ（Message Queuing Telemetry Transport）やＷｅｂＳｏｃｋｅｔ（ＲＦＣ６４５５）等が挙げられる。これに対し、プル型の通信方式は、サーバがクライアントからの要求に応じてデータを送信する通信方式である。プル型の通信方式は、コマンド／レスポンス方式とも呼ばれる。
【０００３】
プッシュ型の通信方式では、クライアントからの要求無しに、サーバからクライアントにデータが送信されるのに対し、プル型の通信方式では、クライアントからの要求があったときに、サーバからクライアントにデータが送信される。このため、プッシュ型の通信方式では、プル型の通信方式よりも、クライアントがサーバのデータを早期に取得することができる。また、プッシュ型の通信方式は、クライアントからサーバへの要求が無いことから、プル型の通信方式に比べて通信負荷が小さい。
【０００４】
以下の特許文献１には、ＰＬＣ（Programmable Logic Controller：プログラマブルロジックコントローラ ）等の機器と通信し、機器内で生成されるデータを収集して蓄積する機能を有するデータ収集装置が開示されている。このデータ収集装置は、汎用ネットワークを介してＰＬＣと通信可能にされており、データ取得時間が到来すると、コマンド／レスポンス方式によって機器のデータを収集している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１７８４７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述の特許文献１に開示されたデータ収集装置では、プル型の通信方式であるコマンド／レスポンス方式によって機器のデータを収集している。このようなデータ収集装置では、プル型の通信方式による通信を基調としつつも、プッシュ型の通信方式による通信が必要になる場合がある。
【０００７】
本発明は上記事情に鑑みてなされたものであり、プッシュ型の通信方式とプル型の通信方式との双方を用いて通信を行うことができるデータ収集装置、データ収集システム、データ収集方法、及びデータ収集プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様によるデータ収集装置は、機器（１０）で得られるデータを収集するデータ収集装置（２０）であって、前記機器に対して要求（ＣＭ０）を送信し、前記機器から送信されてきたデータを受信する通信部（２４）と、前記通信部で受信されたデータが、プル型の通信方式により前記機器から送信される第１データ（ＣＭ１）であるのか、又はプッシュ型の通信方式により前記機器から送信される第２データ（ＣＭ２）であるのかを判定する判定部（２５）と、前記判定部の判定結果に応じて、前記通信部で受信されたデータを、前記第１データと前記第２データとに分けて格納する格納部（２７）と、を備える。
【０００９】
また、本発明の一態様によるデータ収集装置は、前記機器から送信されるデータには、前記第１データ及び前記第２データの別を示す識別情報（ＦＣ）が含まれており、前記判定部が、前記識別情報に基づいて、前記通信部で受信されたデータが前記第１データであるのか、又は前記第２データであるのかを判定する。
【００１０】
また、本発明の一態様によるデータ収集装置は、前記第２データを表示する表示部（２２）と、前記格納部に格納された前記第２データを読み出して前記表示部に表示させる処理部（２６）と、を備える。
【００１１】
本発明の一態様によるデータ収集システム（１）は、上記の何れかに記載のデータ収集装置と、前記データ収集装置から送信されてきた前記要求を受信した場合には、前記プル型の通信方式により前記第１データを送信してから、前記プッシュ型の通信方式により前記第２データを送信する機器（１０）と、を備える。
【００１２】
本発明の一態様によるデータ収集方法は、機器（１０）で得られるデータを収集するデータ収集方法であって、データ収集装置（２０）から前記機器に対して要求（ＣＭ０）を送信する送信ステップと、前記機器から送信されてきたデータを前記データ収集装置で受信する受信ステップ（Ｓ３１のＹＥＳの場合）と、前記データ収集装置で受信されたデータが、プル型の通信方式により前記機器から送信される第１データ（ＣＭ１）であるのか、又はプッシュ型の通信方式により前記機器から送信される第２データ（ＣＭ２）であるのかを判定する判定ステップ（Ｓ３２、Ｓ３４）と、判定結果に応じて、前記データ収集装置で受信されたデータを、前記第１データと前記第２データとに分けて格納する格納ステップ（Ｓ３３、Ｓ３５）と、を有する。
【００１３】
本発明の一態様によるデータ収集プログラムは、コンピュータを、機器（１０）に対して要求（ＣＭ０）を送信し、前記機器から送信されてきたデータを受信する通信手段（２４）と、前記通信手段で受信されたデータが、プル型の通信方式により前記機器から送信される第１データ（ＣＭ１）であるのか、又はプッシュ型の通信方式により前記機器から送信される第２データ（ＣＭ２）であるのかを判定する判定手段（２５）と、前記判定手段の判定結果に応じて、前記通信手段で受信されたデータを、前記第１データと前記第２データとに分けて格納する格納手段（２７）と、を備えるデータ収集装置（２０）として機能させる。
【発明の効果】
【００１４】
本発明によれば、プッシュ型の通信方式とプル型の通信方式との双方を用いて通信を行うことができるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態によるデータ収集システムの要部構成を示すブロック図である。
【図２】本発明の一実施形態によるデータ収集システムで用いられるコマンドのフォーマットを示す図である。
【図３】本発明の一実施形態において、工業用機器で行われるサンプリング処理を示すフローチャートである。
【図４】本発明の一実施形態において、工業用機器で行われる転送コマンドの送信処理を示すフローチャートである。
【図５】本発明の一実施形態において、端末機器で行われるコマンドの受信処理を示すフローチャートである。
【図６】本発明の一実施形態において、端末機器で行われるサンプリングデータの取り出し処理を示すフローチャートである。
【図７】端末機器が工業用機器に対して各種操作を行う場合の動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の一実施形態によるデータ収集装置、データ収集システム、データ収集方法、及びデータ収集プログラムについて詳細に説明する。以下では、まず本発明の実施形態の概要について説明し、続いて本発明の実施形態の詳細について説明する。
【００１７】
〔概要〕
本発明の実施形態は、プッシュ型の通信方式とプル型の通信方式との双方を用いて通信を行うことができるようにするものである。上述の特許文献１に開示されたデータ収集装置では、プル型の通信方式であるコマンド／レスポンス方式が用いられていることから、データ収集時間が到来するまでデータの収集は行われない。このため、リアルタイム性が要求される場合（例えば、機器内の状態をリアルタイムに監視するような場合）には、プッシュ型の通信方式を用いてデータの収集を行う必要がある。
【００１８】
一方、データ収集装置から機器に対して各種操作（例えば、ＰＬＣを運転させる（ＲＵＮ）、ＰＬＣを停止させる（ＳＴＯＰ）等）を行う場合には、プル型の通信方式であるコマンド／レスポンス方式が良い。このように、データ収集装置においては、プル型の通信方式による通信を基調としつつも、プッシュ型の通信方式による通信が必要になる場合がある。
【００１９】
ここで、プッシュ型の通信方式が用いられる場合には、データ収集装置で収集されるべきデータが、機器からデータ収集装置に送信される。これに対し、プル型の通信方式が用いられる場合には、データ収集装置から機器に送信されたコマンドに対するレスポンスが、機器からデータ収集装置に送信される。プッシュ型の通信方式とプル型の通信方式との双方を用いる場合には、データ収集装置は、受信データが、上記の収集されるべきデータであるのか、又は上記のコマンドに対するレスポンスであるのかを判定する必要がある。
【００２０】
本発明の実施形態では、データ収集装置が機器に対してプル型の通信方式により要求を送信し、機器から送信されてきたデータを受信する。ここで、受信されたデータが、上記の要求に対する応答（プル型の通信方式により機器から自装置に送信される応答）を示す第１データであるのか、又はプッシュ型の通信方式により機器から自装置に送信される第２データであるのかを判定する。そして、判定結果に応じて、受信されたデータを、第１データと第２データとに分けて格納する。
【００２１】
これにより、プッシュ型の通信方式とプル型の通信方式との双方を用いて通信を行うことができるようになり、機器からデータを収集する場合には、プッシュ型の通信方式を使用し、機器に対する各種操作を行う場合には、プル型の通信方式を使用することが可能となる。その結果として、例えば通信負荷を軽減しつつ、第２データを収集する時間の短縮を図ることができる。
【００２２】
〔実施形態〕
〈データ収集システムの要部構成〉
図１は、本発明の一実施形態によるデータ収集システムの要部構成を示すブロック図である。図１に示す通り、本実施形態のデータ収集システム１は、ネットワークＮを介して接続された工業用機器１０（機器）と端末機器２０（データ収集装置）とを備えており、工業用機器１０で得られるデータを端末機器２０で収集する。ネットワークＮは、例えばプラント等に敷設されたＬＡＮ（Local Area Network）である。
【００２３】
工業用機器１０は、例えばプラントに設置されたＰＬＣ等の制御装置である。工業用機器１０は、データ格納部１１、コマンド処理部１２、コマンド生成部１３、通信部１４、及び制御部１５、及びサンプリング部１６を備える。データ格納部１１は、制御部１５の制御の下でサンプリングされたサンプリングデータＳＤを格納する。サンプリングデータＳＤは、サンプリングされた時刻を示すタイムスタンプが付されたデータである。データ格納部１１は、例えば、揮発性又は不揮発性のメモリやハードディスクドライブ（ＨＤＤ）によって実現される。
【００２４】
コマンド処理部１２は、端末機器２０から送信されてくる要求コマンドＣＭ０に応じた処理を行う。例えば、サンプリングデータＳＤの送信開始を要求する要求コマンドＣＭ０が端末機器２０から送信されてきた場合には、コマンド処理部１２は、その要求コマンドＣＭ０に対する応答コマンドＣＭ１（第１データ）をコマンド生成部１３に生成させて端末機器２０に向けて送信させる処理を行う。その後、制御部１５の指示により、コマンド処理部１２は、サンプリングデータＳＤが含まれる転送コマンドＣＭ２（第２データ）をコマンド生成部１３に生成させて端末機器２０に向けて送信させる処理を行う。
【００２５】
ここで、上記の応答コマンドＣＭ１は、要求コマンドＣＭ０の応答として送信されるものである。つまり、要求コマンドＣＭ０及び応答コマンドＣＭ１は、工業用機器１０と端末機器２０との間でプル型の通信方式により送受信されるコマンドである。これに対し、上記の転送コマンドＣＭ２は、工業用機器１０から端末機器２０に一方的に送信されるものである。つまり、転送コマンドＣＭ２は、工業用機器１０から端末機器２０に対してプッシュ型の通信方式によって送信されるコマンドである。
【００２６】
コマンド生成部１３は、コマンド処理部１２の指示により、応答コマンドＣＭ１又は転送コマンドＣＭ２の生成を行う。通信部１４は、送信部１４ａ及び受信部１４ｂを備えており、ネットワークＮを介して端末機器２０と通信を行う。具体的に、送信部１４ａは、コマンド生成部１３で生成された応答コマンドＣＭ１又は転送コマンドＣＭ２を端末機器２０に向けて送信する。受信部１４ｂは、端末機器２０からネットワークＮを介して送信されてきた要求コマンドＣＭ０を受信する。
【００２７】
制御部１５は、工業用機器１０の各部（データ格納部１１、コマンド処理部１２、コマンド生成部１３、通信部１４、及びサンプリング部１６）を統括して制御する。例えば、制御部１５は、端末機器２０によって設定されたサンプリング条件が成立した場合には、サンプリング部１６を制御してサンプリングを開始させ、得られたサンプリングデータＳＤをデータ格納部１１に格納させる制御を行う。サンプリング部１６は、制御部１５の制御の下で、各種物理量（例えば、流量、温度、圧力等）をサンプリングして、サンプリングデータＳＤを出力する。
【００２８】
端末機器２０は、プラントの作業員によって操作される機器であり、例えばスマートフォン、タブレット、パソコン等の汎用情報機器である。端末機器２０は、工業用機器１０に対するサンプリング条件の設定、及び工業用機器１０で得られるサンプリングデータＳＤの収集等を行う。尚、上記のサンプリング条件とは、どのような対象について、どのような条件が成立した場合にサンプリングを行うかを規定するものである。
【００２９】
端末機器２０は、操作部２１、表示部２２、コマンド生成部２３、通信部２４（通信手段）、コマンド判定部２５（判定部、判定手段）、コマンド処理部２６（処理部）、及びデータ格納部２７（格納部、格納手段）を備える。操作部２１は、例えばキーボードやポインティングデバイス等の入力装置を備えており、外部からの指示（例えば、端末機器２０を操作する作業員の指示）を入力する。
【００３０】
表示部２２は、例えば液晶表示装置等の表示装置を備えており、各種情報を表示する。例えば、表示部２２は、コマンド処理部２６によってデータ格納部２７から読み出された転送コマンドＣＭ２に含まれるサンプリングデータＳＤを表示する。尚、操作部２１及び表示部２２は、別々に設けられていても良く、例えばタッチパネルのように一体化されたものであっても良い。
【００３１】
コマンド生成部２３は、操作部２１に入力された指示に応じた要求コマンドＣＭ０を生成する。例えば、コマンド生成部２３は、サンプリングデータＳＤの表示指示が操作部２１に入力された場合に、サンプリングデータＳＤの送信開始を要求する要求コマンドＣＭ０を生成する。また、工業用機器１０に対する各種操作の指示が操作部２１に入力された場合に、その指示に応じた要求コマンドＣＭ０を生成する。尚、工業用機器１０に対する各種操作としては、サンプリング条件の設定、工業用機器１０を運転させる（ＲＵＮ）、工業用機器１０を停止させる（ＳＴＯＰ）等がある。
【００３２】
通信部２４は、送信部２４ａ及び受信部２４ｂを備えており、ネットワークＮを介して工業用機器１０と通信を行う。具体的に、送信部２４ａは、コマンド生成部２３で生成された要求コマンドＣＭ０を工業用機器１０に向けて送信する。受信部２４ｂは、工業用機器１０からネットワークＮを介して送信されてきた応答コマンドＣＭ１又は転送コマンドＣＭ２を受信する。
【００３３】
コマンド判定部２５は、通信部２４の受信部２４ｂで受信されたコマンドの種別を判定する。具体的に、コマンド判定部２５は、受信部２４ｂで受信されたコマンドが、要求コマンドＣＭ０であるのか、応答コマンドＣＭ１であるのか、或いは転送コマンドＣＭ２であるのかを判定する。詳細は後述するが、受信部２４ｂで受信されるコマンドには、コマンドの種別を示すフォーマットコードＦＣ（図２参照）が含まれている。コマンド判定部２５は、受信部２４ｂで受信されるコマンドに含まれるフォーマットコードＦＣに基づいて、受信部２４ｂで受信されたコマンドが、要求コマンドＣＭ０であるのか、応答コマンドＣＭ１であるのか、或いは転送コマンドＣＭ２であるのかを判定する。
【００３４】
コマンド処理部２６は、コマンド判定部２５の判定結果に応じて、受信部２４ｂで受信されたコマンドを、応答コマンドＣＭ１と転送コマンドＣＭ２とに分けてデータ格納部２７に格納させる処理を行う。また、コマンド処理部２６は、表示部２２に表示させるサンプリングデータＳＤが必要になった場合には、データ格納部２７から転送コマンドＣＭ２を読み出して、表示部２２に表示させる処理を行う。
【００３５】
データ格納部２７は、コマンド処理部２６の指示に応じて、受信部２４ｂで受信されたコマンドを、応答コマンドＣＭ１と転送コマンドＣＭ２とに分けて格納する。データ格納部２７は、工業用機器１０に設けられたデータ格納部１１と同様に、例えば、揮発性又は不揮発性のメモリやハードディスクドライブ（ＨＤＤ）によって実現される。
【００３６】
端末機器２０に設けられる各ブロック（操作部２１、表示部２２、コマンド生成部２３、通信部２４、コマンド判定部２５、コマンド処理部２６、及びデータ格納部２７）は、各々の機能を実現するためのプログラム（データ収集プログラム）が、コンピュータに設けられたＣＰＵ（中央処理装置）で実行されることによって実現される。つまり、端末機器２０に設けられる各ブロックは、ソフトウェアとハードウェア資源とが協働することによって実現される。
【００３７】
ここで、上記の機能を実現するプログラムは、例えばＣＤ−ＲＯＭ又はＤＶＤ（登録商標）−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に記録された状態で配布され、或いはインターネット等の外部のネットワークを介して配布される。端末機器２０に設けられる各ブロックの機能は、記録媒体に記録されたプログラムを読み出してインストールすることにより、或いは外部ネットワークを介してダウンロードされたプログラムをインストールすることによりソフトウェア的に実現される。
【００３８】
〈コマンドのフォーマット〉
図２は、本発明の一実施形態によるデータ収集システムで用いられるコマンドのフォーマットを示す図である。データ収集システム１をなす工業用機器１０と端末機器２０との間で送受信されるコマンド（要求コマンドＣＭ０、応答コマンドＣＭ１、転送コマンドＣＭ２）は、パケット形式のものである。
【００３９】
図２（ａ）に示す通り、パケット形式のコマンドは、パケットヘッダＰＨとペイロードＰＬとからなる。パケットヘッダＰＨには、フォーマットコードＦＣ（識別情報）と付加情報ＡＤとが含まれる。ペイロードＰＬには、データが格納される。図２（ｂ）に示す通り、フォーマットコードＦＣは、１バイトのコードであり、コマンドの種別を示す情報である。具体的に、フォーマットコードＦＣは、コマンドが、要求コマンドＣＭ０である旨を示す情報、応答コマンドＣＭ１である旨を示す情報、及び転送コマンドＣＭ２である旨を示す情報の何れか１つの情報である。このようなフォーマットコードＦＣを用いることで、コマンドの種別を容易に判定することができる。
【００４０】
図２（ｂ）に示す通り、付加情報ＡＤは、パケットの付加情報である。この付加情報ＡＤには、例えばパケットを解析するのに必要な情報が含まれても良い。ペイロードＰＬには、コマンドの種別に応じたデータが格納される。具体的に、コマンドが要求コマンドＣＭ０である場合には要求のデータが格納され、コマンドが応答コマンドＣＭ１である場合には応答のデータが格納される。コマンドが転送コマンドＣＭ２である場合には、複数のタイムスタンプ付きのデータ（複数のサンプリングデータＳＤ）が格納される。
【００４１】
〈データ収集システムの動作〉
次に、データ収集システムの動作について説明する。以下では、工業用機器１０で得られるサンプリングデータＳＤを端末機器２０が収集する場合の動作（データ収集動作）と、端末機器２０が工業用機器１０に対して各種操作を行う場合の動作（操作時動作）とを順に説明する。尚、工業用機器１０に対する各種操作としては、工業用機器１０を運転させる（ＲＵＮ）、工業用機器１０を停止させる（ＳＴＯＰ）等がある。
【００４２】
《データ収集動作》
サンプリングデータＳＤの収集に先立って、工業用機器１０にサンプリング条件を設定する作業が行われる。具体的には、端末機器２０の操作部２１が作業員によって操作され、工業用機器１０に設定すべきサンプリング条件の入力が行われる。サンプリング条件の入力が終了し、サンプリング条件の設定指示が作業員によってなされると、入力されたサンプリング条件が、通信部２４（送信部２４ａ）から工業用機器１０に送信される。ネットワークＮを介して端末機器２０から送信されてきたサンプリング条件は、工業用機器１０の通信部１４（受信部１４ｂ）で受信される。これにより、工業用機器１０にサンプリング条件が設定される。
【００４３】
サンプリング条件の設定が行われた後に、端末機器２０のコマンド生成部２３では、サンプリングデータＳＤの送信開始を要求する要求コマンドＣＭ０を生成する処理が行われる。この処理は、例えば、操作部２１からサンプリングデータＳＤの取得指示や表示指示が入力された場合に行われる。コマンド生成部２３で生成された要求コマンドＣＭ０は、通信部２４（送信部２４ａ）から工業用機器１０に送信される（送信ステップ）。
【００４４】
ネットワークＮを介して端末機器２０から送信されてきた要求コマンドＣＭ０は、工業用機器１０の通信部１４（受信部１４ｂ）で受信される。すると、コマンド処理部１２の指示に基づいて、要求コマンドＣＭ０に対する応答コマンドＣＭ１を生成する処理がコマンド生成部１３で行われる。コマンド生成部１３で生成された応答コマンドＣＭ１は、通信部１４（送信部１４ａ）から端末機器２０に送信されて、端末機器２０で受信される。
【００４５】
上記の応答コマンドＣＭ１が送信されると、制御部１５の指示に基づいて、コマンド処理部１２は、サンプリングデータＳＤが含まれる転送コマンドＣＭ２をコマンド生成部１３で生成して、端末機器２０に送信する処理が開始される。以下、図３，図４を用いてサンプリングデータＳＤを得るサンプリング処理及び転送コマンドＣＭ２の送信処理について詳細に説明する。
【００４６】
図３は、本発明の一実施形態において、工業用機器で行われるサンプリング処理を示すフローチャートである。尚、図３に示すフローチャートは、例えば、一定の周期（例えば、数十μｓｅｃ〜数ｓｅｃ程度の周期）で繰り返し行われる。図３に示すフローチャートの処理が開始されると、まず、設定されたサンプリング条件が成立したか否かが制御部１５で判断される（ステップＳ１１）。
【００４７】
サンプリング条件が成立したと判断された場合（判断結果が「ＹＥＳ」の場合）には、サンプリング部１６を制御してサンプリングを開始させ、得られたサンプリングデータＳＤをデータ格納部１１に格納させる制御が制御部１５によって行われる（ステップＳ１２）。これに対し、サンプリング条件が成立していないと制御部１５で判断された場合（判断結果が「ＮＯ」の場合）には、図３に示すフローチャートは終了する。
【００４８】
図４は、本発明の一実施形態において、工業用機器で行われる転送コマンドの送信処理を示すフローチャートである。尚、図４に示すフローチャートは、端末機器２０から送信された転送コマンド送信を指示する要求コマンドＣＭ０が受信された後に繰り返し行われる。図４に示すフローチャートの処理が開始されると、まず、転送コマンドＣＭ２の送信間隔である一定期間が経過したか否かが制御部１５で判断される（ステップＳ２１）。
【００４９】
一定期間が経過していないと判断された場合（判断結果が「ＮＯ」の場合）には、ステップＳ２１の処理が繰り返される。これに対し、一定期間が経過したと判断された場合（判断結果が「ＹＥＳ」の場合）には、サンプリングデータＳＤがデータ格納部１１に格納されているか否かが制御部１５で判断される（ステップＳ２２）。サンプリングデータＳＤがデータ格納部１１に格納されていないと判断された場合（判断結果が「ＮＯ」の場合）には、図４に示すフローチャートは終了する。
【００５０】
これに対し、サンプリングデータＳＤがデータ格納部１１に格納されていると判断された場合（判断結果が「ＹＥＳ」の場合）には、まず、制御部１５の指示により、データ格納部１１からサンプリングデータＳＤを読み出してコマンド生成部１３に出力する処理がコマンド処理部１２によって行われる（ステップＳ２３）。次に、コマンド処理部１２によって出力されたサンプリングデータＳＤを用いて転送コマンドＣＭ２を生成する処理がコマンド生成部１３で行われる（ステップＳ２４）。そして、生成された転送コマンドＣＭ２を端末機器２０に送信する処理が通信部１４（送信部１４ａ）によって行われる（ステップＳ２５）。
【００５１】
尚、工業用機器１０から端末機器２０に送信される転送コマンドＣＭ２は、図２（ａ）に示すパケット形式のものである。具体的に、転送コマンドＣＭ２は、コマンドが転送コマンドＣＭ２である旨を示す情報がフォーマットコードＦＣとしてパケットヘッダＰＨに含まれており、タイムスタンプが付されたサンプリングデータＳＤがペイロードＰＬに格納されたものである。
【００５２】
工業用機器１０から端末機器２０に転送コマンドＣＭ２が送信されてくると、端末機器２０においてコマンドの受信処理が行われる。図５は、本発明の一実施形態において、端末機器で行われるコマンドの受信処理を示すフローチャートである。尚、図５に示すフローチャートは、端末機器２０において繰り返し行われ、転送コマンドＣＭ２以外の他のコマンド（例えば、応答コマンドＣＭ１）が送信されてきた場合にも行われる。
【００５３】
図５に示すフローチャートの処理が開始されると、まず、コマンド（応答コマンドＣＭ１又は転送コマンドＣＭ２）を受信したか否かが通信部２４（受信部２４ｂ）で判断される（ステップＳ３１）。コマンドを受信していないと判断された場合（判断結果が「ＮＯ」の場合）には、ステップＳ３１の処理が繰り返される。これに対し、コマンドを受信したと判断された場合（判断結果が「ＹＥＳ」の場合：受信ステップ）には、受信したコマンドが転送コマンドＣＭ２であるか否かがコマンド判定部２５で判定される（ステップＳ３２：判定ステップ）。
【００５４】
受信したコマンドが転送コマンドＣＭ２であると判定された場合（判定結果が「ＹＥＳ」の場合）には、転送コマンドＣＭ２を応答コマンドＣＭ１とは分けてデータ格納部２７に格納させる処理がコマンド処理部２６によって行われる（ステップＳ３３：格納ステップ）。これに対し、受信したコマンドが転送コマンドＣＭ２ではないと判定された場合（判定結果が「ＮＯ」の場合）には、受信したコマンドが応答コマンドＣＭ１であるか否かがコマンド判定部２５で判定される（ステップＳ３４：判定ステップ）。
【００５５】
受信したコマンドが応答コマンドＣＭ１であると判定された場合（判定結果が「ＹＥＳ」の場合）には、応答コマンドＣＭ１を転送コマンドＣＭ２とは分けてデータ格納部２７に格納させる処理がコマンド処理部２６によって行われる（ステップＳ３５：格納ステップ）。これに対し、受信したコマンドが応答コマンドＣＭ１ではないと判定された場合（判定結果が「ＮＯ」の場合）には、図５に示すフローチャートは終了する。尚、ステップＳ３４の判定結果が「ＮＯ」になるのは、例えば通信部２４(受信部２４ｂ）で受信されたパケットに異常が生じていた場合等である。
【００５６】
端末機器２０において、サンプリングデータＳＤが必要になった場合には、転送コマンドＣＭ２に格納されているサンプリングデータＳＤの取り出し処理が行われる。図６は、本発明の一実施形態において、端末機器で行われるサンプリングデータの取り出し処理を示すフローチャートである。尚、図６に示すフローチャートは、例えば、サンプリングデータＳＤの表示指示が操作部２１に入力され、サンプリングデータＳＤが表示部２２で必要になった場合等に開始される。
【００５７】
図６に示すフローチャートの処理が開始されると、まず、転送コマンドＣＭ２がデータ格納部２７に格納されているか否かがコマンド処理部２６で判断される（ステップＳ４１）。転送コマンドＣＭ２がデータ格納部２７に格納されていると判断された場合（判断結果が「ＹＥＳ」の場合）には、データ格納部２７から転送コマンドＣＭ２を読み出す処理がコマンド処理部２６によって行われる（ステップＳ４２）。そして、読み出した転送コマンドＣＭ２からサンプリングデータＳＤを取り出す処理がコマンド処理部２６で行われる（ステップＳ４３）。尚、コマンド処理部２６で取り出されたサンプリングデータＳＤは、サンプリングデータＳＤが必要になった部位（例えば、表示部２２）に出力される。
【００５８】
これに対し、ステップＳ４１において、転送コマンドＣＭ２がデータ格納部２７に格納されていないと判断された場合（判断結果が「ＮＯ」の場合）には、予め規定された時間が経過したか否か（タイムアウトしたか否か）が、コマンド処理部２６で判断される（ステップＳ４４）。タイムアウトしていないと判断された場合（判断結果が「ＮＯ」の場合）には、ステップＳ４１の処理に戻り、転送コマンドＣＭ２がデータ格納部２７に格納されているか否かがコマンド処理部２６で判断される。つまり、ステップＳ４１，Ｓ４４では、データ格納部２７に転送コマンドＣＭ２が格納されるのを、予め規定された時間だけ待つ処理が行われる。これに対し、ステップＳ４４において、タイムアウトしたと判断された場合（判断結果が「ＹＥＳ」の場合）には、図６に示すフローチャートは終了する。
【００５９】
《操作時動作》
図７は、端末機器が工業用機器に対して各種操作を行う場合の動作を示すフローチャートである。尚、図７に示すフローチャートは、例えば、工業用機器１０に対する各種操作の指示が、端末機器２０の操作部２１に入力された場合に開始される。図７に示すフローチャートの処理が開始されると、まず、操作部２１に入力された指示に応じた要求コマンドＣＭ０を生成する処理がコマンド生成部２３で行われる（ステップＳ５１）。次に、コマンド生成部２３で生成された要求コマンドＣＭ０を、工業用機器１０に送信する処理が通信部２４（送信部２４ａ）で行われる（ステップＳ５２）。
【００６０】
要求コマンドＣＭ０の送信が終了すると、応答コマンドＣＭ１がデータ格納部２７に格納されているか否かがコマンド処理部２６で判断される（ステップＳ５３）。応答コマンドＣＭ１がデータ格納部２７に格納されていると判断された場合（判断結果が「ＹＥＳ」の場合）には、データ格納部２７から応答コマンドＣＭ１を読み出す処理がコマンド処理部２６によって行われる（ステップＳ５４）。そして、読み出した応答コマンドＣＭ１の内容に応じた処理がコマンド処理部２６で行われる（ステップＳ５５）。
【００６１】
これに対し、ステップＳ５３において、応答コマンドＣＭ１がデータ格納部２７に格納されていないと判断された場合（判断結果が「ＮＯ」の場合）には、予め規定された時間が経過したか否か（タイムアウトしたか否か）が、コマンド処理部２６で判断される（ステップＳ５６）。タイムアウトしていないと判断された場合（判断結果が「ＮＯ」の場合）には、ステップＳ５３の処理に戻り、応答コマンドＣＭ１がデータ格納部２７に格納されているか否かがコマンド処理部２６で判断される。つまり、ステップＳ５３，Ｓ５６では、データ格納部２７に応答コマンドＣＭ１が格納されるのを、予め規定された時間だけ待つ処理が行われる。これに対し、ステップＳ５６において、タイムアウトしたと判断された場合（判断結果が「ＹＥＳ」の場合）には、図７に示すフローチャートは終了する。
【００６２】
以上説明した通り、本実施形態では、端末機器２０から工業用機器１０に対して要求コマンドＣＭ０を送信し、工業用機器１０から送信されてきたコマンドを端末機器２０が受信する。端末機器２０において、受信されたコマンドが、プル型の通信方式により工業用機器１０から端末機器２０に送信される応答コマンドＣＭ１（要求コマンドＣＭ０に対する応答を示すコマンド）であるのか、又はプッシュ型の通信方式により工業用機器１０から端末機器２０に送信される転送コマンドＣＭ２であるのかを判定する。そして、判定結果に応じて、受信されたコマンドを、応答コマンドＣＭ１と転送コマンドＣＭ２とに分けて格納している。
【００６３】
これにより、プッシュ型の通信方式とプル型の通信方式との双方を用いて通信を行うことができる。具体的には、工業用機器１０と端末機器２０との間で、コネクションを再設定することなく、同一のコネクションでプッシュ型の通信方式による通信とプル型の通信方式による通信とを行うことができる。その結果として、例えば通信負荷を軽減しつつ、転送コマンドＣＭ２を収集する時間の短縮を図ることができる。
【００６４】
以上、本発明の一実施形態によるデータ収集装置、データ収集システム、データ収集方法、及びデータ収集プログラムについて説明したが、本発明は上記実施形態に制限される訳ではなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、工業用機器１０と端末機器２０とがネットワークＮを介して接続されている例について説明した。しかしながら、工業用機器１０と端末機器２０とは、ＵＳＢ（Universal Serial Bus：ユニバーサル・シリアル・バス）ケーブルやシリアルケーブル等のケーブルによって接続されていても良い。或いは、工業用機器１０と端末機器２０とは、無線通信可能に接続されていても良い。
【００６５】
また、工業用機器１０及び端末機器２０は、セキュリティの観点から、送信すべき各種データ（各種コマンド）を暗号化しても良い。また、上記実施形態では、工業用機器１０が、プラントに設置されたＰＬＣ等の制御装置である例について説明したが、工業用機器１０は、記録計やＩｏＴ（Internet of Things）機器であっても良い。図２に示すパケットヘッダＰＨに含まれる付加情報ＡＤに、例えば個々のパケットを識別する情報を含ませて、パケットの送受信の確認に用いるようにしても良い。
【符号の説明】
【００６６】
１        データ収集システム
１０      工業用機器
２０      端末機器
２２      表示部
２４      通信部
２５      コマンド判定部
２６      コマンド処理部
２７      データ格納部
ＣＭ０    要求コマンド
ＣＭ１    応答コマンド
ＣＭ２    転送コマンド
ＦＣ      フォーマットコード
【図１】
2020141227.tif 000003
【図２】
2020141227.tif 000004
【図３】
2020141227.tif 000005
【図４】
2020141227.tif 000006
【図５】
2020141227.tif 000007
【図６】
2020141227.tif 000008
【図７】
2020141227.tif 000009