(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022115429
(43)【公開日】2022-08-09
(54)【発明の名称】通信装置、通信システム、及び、通信方法
(51)【国際特許分類】
G06F 13/00 20060101AFI20220802BHJP
【FI】
G06F13/00 520C
G06F13/00 351N
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021012018
(22)【出願日】2021-01-28
(71)【出願人】
【識別番号】500112146
【氏名又は名称】サイレックス・テクノロジー株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(72)【発明者】
【氏名】縣 俊成
【テーマコード(参考)】
5B084
5B089
【Fターム(参考)】
5B084AA02
5B084AA29
5B084AB37
5B084BA09
5B084BB03
5B084DA15
5B084DC02
5B089JA35
5B089JA36
5B089JB16
5B089KA13
5B089KC32
(57)【要約】
【課題】ユーザが産業機器の構成を簡便に確認できる通信装置等を提供する。
【解決手段】通信装置100は、パブリッシュ/サブスクライブ型のメッセージを用いてブローカとして機能する端末と通信するための通信部110と、産業機器に関する機器データを取得する取得部120と、当該機器データに基づいて、産業機器の構成に関する1以上のトピックのリストであるトピックリストを作成する作成部130と、通信部110を介して作成部130で作成されたトピックリストを含むメッセージを当該端末にパブリッシュする制御部140と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
パブリッシュ/サブスクライブ型のメッセージを用いてブローカとして機能する端末と通信するための通信部と、
産業機器に関する機器データを取得する取得部と、
前記機器データに基づいて、前記産業機器の構成に関する1以上のトピックのリストであるトピックリストを作成する作成部と、
前記通信部を介して前記作成部で作成された前記トピックリストを含む前記メッセージを前記端末にパブリッシュする制御部と、を備える
通信装置。
【請求項2】
前記作成部が作成する前記トピックリストは、前記産業機器の構成に応じたデータ項目ごとの前記1以上のトピックを示す
請求項1に記載の通信装置。
【請求項3】
前記制御部は、前記通信部を介して前記端末からトピックリストを要求する要求情報を含む前記メッセージを受信した場合、前記通信部を介して前記作成部で作成された前記トピックリストを含む前記メッセージを前記端末にパブリッシュする
請求項1又は2に記載の通信装置。
【請求項4】
前記取得部は、繰り返し前記機器データを取得し、
前記作成部は、前記取得部が前記機器データを取得する度に、前記機器データに基づいて前記トピックリストを作成し、
前記制御部は、前記作成部が前記トピックリストを作成する度に、前記トピックリストを含む前記メッセージを前記端末にパブリッシュする
請求項1又は2に記載の通信装置。
【請求項5】
前記取得部は、繰り返し前記機器データを取得し、
前記作成部は、前記取得部が取得した前記機器データである第1機器データと、前記第1機器データの1つ前に前記取得部が取得した前記機器データである第2機器データとを比較し、前記第1機器データと前記第2機器データとが互いに異なる前記機器データである場合に、前記第1機器データに基づいて前記トピックリストを作成する
請求項1又は2に記載の通信装置。
【請求項6】
前記制御部は、前記通信部を介して前記端末にパブリッシュした1以上の前記メッセージのうち、最新の前記メッセージを記憶する指示を示す保持情報を含む前記メッセージを前記端末にパブリッシュする
請求項1~5のいずれか1項に記載の通信装置。
【請求項7】
請求項1~6のいずれか1項に記載の通信装置と、
前記端末と、を備え、
ブローカとして機能する前記端末は、
パブリッシャとして機能する第1クライアントから前記トピックリストを要求する要求情報を含む前記メッセージを受信した場合に、受信した前記要求情報を含む前記メッセージを前記通信装置にパブリッシュし、
前記トピックリストを含む前記メッセージを前記通信装置から受信した場合に、受信した前記トピックリストを含む前記メッセージをサブスクライバとして機能する第2クライアントにパブリッシュする
通信システム。
【請求項8】
パブリッシュ/サブスクライブ型のメッセージを用いてブローカとして機能する端末と通信するための通信方法であって、
産業機器に関する機器データを取得する取得ステップと、
前記機器データに基づいて、前記産業機器の構成に関する1以上のトピックのリストであるトピックリストを作成する作成ステップと、
前記作成ステップで作成した前記トピックリストを含む前記メッセージを前記端末にパブリッシュする制御ステップと、を含む
通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、通信システム、及び、通信方法に関する。
【背景技術】
【0002】
従来、工作機械又は医療機器等の産業機器から送信された当該産業機器に係る情報を受信し、受信した情報をユーザが利用する端末に送信する装置が知られている(例えば、特許文献1参照)。
【0003】
特許文献1には、パブリッシュ/サブスクライブ型(購読型ともいう)のメッセージの送受信を、パブリッシャ又はサブスクライバである複数のクライアント装置との間で行なうサーバ装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、パブリッシュ/サブスクライブ型の通信では、サブスクライバを操作するユーザは、例えば、上記した産業機器の構成が変更された場合、変更後の構成に関する情報を取得して確認することが難しい。つまり、サブスクライバとして設定された端末を操作するユーザが、当該端末を操作して産業機器の構成を確認することは容易でない。
【0006】
本発明は、ユーザが産業機器の構成を簡便に確認できる通信装置等を提供する。
【課題を解決するための手段】
【0007】
本発明の一態様に係る通信装置は、パブリッシュ/サブスクライブ型のメッセージを用いてブローカとして機能する端末と通信するための通信部と、産業機器に関する機器データを取得する取得部と、前記機器データに基づいて、前記産業機器の構成に関する1以上のトピックのリストであるトピックリストを作成する作成部と、前記通信部を介して前記作成部で作成された前記トピックリストを含む前記メッセージを前記端末にパブリッシュする制御部と、を備える。
【0008】
これによれば、通信装置は、トピックリストを含むメッセージを端末にパブリッシュ(送信)できる。そのため、ユーザは、係るメッセージを受信してトピックリストを簡便に確認できるため、ユーザが産業機器の構成を簡便に確認できる。
【0009】
また、例えば、前記作成部が作成する前記トピックリストは、前記産業機器の構成に応じたデータ項目ごとの前記1以上のトピックを示す。
【0010】
通信装置は、例えば、産業機器の構成に応じたデータ項目ごとに1以上のトピックを作成し、作成した1以上のトピックのリストであるトピックリストを作成する。産業機器の構成によっては、当該産業機器が出力するデータ量が膨大になる場合がある。一方で、ユーザは、このような膨大なデータのうちの一部のみを必要とする場合がある。このような場合に、データ項目ごとにトピックが作成されることで、通信装置は、ユーザが要求するデータのみを端末に送信できる。そのため、通信するデータ量を削減できる。
【0011】
また、例えば、前記制御部は、前記通信部を介して前記端末からトピックリストを要求する要求情報を含む前記メッセージを受信した場合、前記通信部を介して前記作成部で作成された前記トピックリストを含む前記メッセージを前記端末にパブリッシュする。
【0012】
これによれば、通信装置は、要求情報を含むメッセージを受信したタイミングで、トピックリストを含むメッセージを端末にパブリッシュ(送信)できる。そのため、ユーザは、端末からメッセージを受信するサブスクライバとして機能する端末を操作して、所望のタイミングでトピックリストを簡便に確認できるため、所望のタイミングで産業機器の構成を簡便に確認できる。
【0013】
また、例えば、前記取得部は、繰り返し前記機器データを取得し、前記作成部は、前記取得部が前記機器データを取得する度に、前記機器データに基づいて前記トピックリストを作成し、前記制御部は、前記作成部が前記トピックリストを作成する度に、前記トピックリストを含む前記メッセージを前記端末にパブリッシュする。
【0014】
これによれば、端末からの要求を待つことなく、端末にトピックリストを送信することができ、通信装置における記憶領域の圧迫を抑制できる。
【0015】
また、例えば、前記取得部は、繰り返し前記機器データを取得し、前記作成部は、前記取得部が取得した前記機器データである第1機器データと、前記第1機器データの1つ前に前記取得部が取得した前記機器データである第2機器データとを比較し、前記第1機器データと前記第2機器データとが互いに異なる前記機器データである場合に、前記第1機器データに基づいて前記トピックリストを作成する。
【0016】
これによれば、例えば、第1機器データと第2機器データとが同じ機器データであれば、作成したトピックリストを変更する必要がないため、記憶領域が圧迫されるなどの負荷を抑制でき、作成する必要があるタイミングで適切にトピックリストが作成され得る。
【0017】
また、例えば、前記制御部は、前記通信部を介して前記端末にパブリッシュした1以上の前記メッセージのうち、最新の前記メッセージを記憶する指示を示す保持情報を含む前記メッセージを前記端末にパブリッシュする。
【0018】
通信装置は、複数のメッセージを端末にパブリッシュする場合がある。このような場合に、通信装置は、保持情報によって最新のメッセージを端末に記憶させ続けることができる。例えば、パブリッシュ/サブスクライブ型のメッセージを用いた通信では、パブリッシャからブローカにメッセージがパブリッシュされたときに、サブスクライバとして機能する端末が当該ブローカと通信できない状態であると、この端末にはメッセージがパブリッシュされない。そこで、通信装置は、保持情報を含むメッセージをブローカである端末にパブリッシュすることで、常に最新のメッセージをブローカとして機能する端末に記憶させておくことができる。そのため、例えば、端末と通信できなかったサブスクライバとして機能する端末が当該ブローカとして機能する端末と通信できるようになった場合に、ブローカとして機能する端末は、最新のメッセージを当該サブスクライバとして機能する端末にパブリッシュすることができる。
【0019】
また、本発明の一態様に係る通信システムは、上記した通信装置と、前記端末と、を備え、ブローカとして機能する前記端末は、パブリッシャとして機能する第1クライアントから前記トピックリストを要求する要求情報を含む前記メッセージを受信した場合に、受信した前記要求情報を含む前記メッセージを前記通信装置にパブリッシュし、前記トピックリストを含む前記メッセージを前記通信装置から受信した場合に、受信した前記トピックリストを含む前記メッセージをサブスクライバとして機能する第2クライアントにパブリッシュする。
【0020】
また、本発明の一態様に係る通信方法は、パブリッシュ/サブスクライブ型のメッセージを用いてブローカとして機能する端末と通信するための通信方法であって、産業機器に関する機器データを取得する取得ステップと、前記機器データに基づいて、前記産業機器の構成に関する1以上のトピックのリストであるトピックリストを作成する作成ステップと、前記作成ステップで作成した前記トピックリストを含む前記メッセージを前記端末にパブリッシュする制御ステップと、を含む。
【0021】
これらによれば、本発明に一態様に係る通信装置と同様の効果を奏する。
【0022】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0023】
本発明によれば、ユーザが産業機器の構成を簡便に確認できる通信装置等を提供する。
【図面の簡単な説明】
【0024】
【
図1】
図1は、実施の形態に係る通信システムの構成を示す概略図である。
【
図2】
図2は、実施の形態に係る通信装置の機能構成を示すブロック図である。
【
図3】
図3は、実施の形態に係る通信装置が作成するトピックの第1例を示す図である。
【
図4】
図4は、実施の形態に係る通信装置が作成するトピックの第2例を示す図である。
【
図5】
図5は、実施の形態に係る通信装置が作成するメッセージの第1例を示す図である。
【
図6】
図6は、実施の形態に係る通信装置が作成するメッセージの第2例を示す図である。
【
図7】
図7は、実施の形態に係る通信装置が作成するメッセージの第3例を示す図である。
【
図8】
図8は、実施の形態に係る通信装置が作成するメッセージの第4例を示す図である。
【
図9】
図9は、実施の形態に係る通信装置が作成するメッセージの第5例を示す図である。
【
図10】
図10は、実施の形態に係る通信システムの処理手順を説明するためのシーケンス図である。
【
図11】
図11は、実施の形態に係る端末が作成するメッセージの第1例を示す図である。
【
図12】
図12は、実施の形態に係る端末が作成するメッセージの第2例を示す図である。
【
図13】
図13は、実施の形態に係る通信装置の処理手順を説明するためのフローチャートである。
【
図14】
図14は、変形例に係る通信システムの処理手順を説明するためのシーケンス図である。
【
図15】
図15は、実施の形態に係る通信装置の処理手順の変形例を説明するためのフローチャートである。
【発明を実施するための形態】
【0025】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0026】
以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。なお、同一の構成要素には同一の符号を付し、説明を省略する場合がある。
【0027】
(実施の形態)
[構成]
図1は、実施の形態に係る通信システム400の構成を示す概略図である。
【0028】
通信システム400は、産業機器200から送信(提供)された産業機器200に関する機器データを、通信装置100を介して端末300へ送信(配信)するシステムである。
【0029】
通信システム400は、通信装置100と、1以上の産業機器200と、1以上の端末300とを備える。
【0030】
なお、通信システム400が備える産業機器200の数及び端末300の数は、それぞれ、特に限定されない。
【0031】
通信装置100は、産業機器200が出力するデータ(例えば、後述する機器データ)を受信し、受信したデータに対する処理を行って端末300に送信することで、上記データを中継する中継装置である。通信装置100は、1以上の端末300とネットワークを介して通信可能に接続されている。当該ネットワークは、有線ネットワークでもよいし、無線ネットワークでもよいし、有線ネットワークと無線ネットワークとの両方でもよい。無線ネットワークは、通信装置100と端末300とを無線により通信可能に接続するネットワークである。例えば、無線ネットワークは、無線LAN(Local Area Network)であってもよい。また、有線ネットワークは、通信装置100と端末300とを有線により通信可能に接続するネットワークである。例えば、有線ネットワークは、有線LANであってもよい。
【0032】
産業機器200は、通信装置100と通信可能に接続され、産業機器200に係る機器データを、通信装置100に送信する機器である。例えば、産業機器200は、材料を回転させる回転機構と、Z軸方向に伸延し、X軸方向及びY軸方向に平行移動可能な主軸と、を備える工作機械である。産業機器200は、例えば、主軸の軸位置のX軸座標及びY軸座標を示す軸位置情報、産業機器200が備える各部品を動作させる際の制御パラメータ等、及び産業機器200の構成を示す構成情報を含む機器データを生成して通信装置100に送信する。
【0033】
産業機器200は、例えば、通信装置100から、上記の機器データの提供を要求する旨の信号を通信装置100から受信した場合に、機器データを通信装置100に送信するとしてもよいし、所定の周期で定期的に機器データを通信装置100に送信するとしてもよい。
【0034】
産業機器200は、複数の異なる働き(機構)を備えた機器(機械)で構成されている。例えば、工作機械であれば、主軸や切削機構など複数の機器で構成される。産業機器200は、当該複数の機器それぞれに関する機器のデータ(機器データ)を個別に出力できる。例えば、産業機器200は、予め定められた順序で産業機器200に係る機器データを通信装置100に送信する。産業機器200が出力する機器データは、例えば、産業機器200の機器名、産業機器200に固有の識別情報、産業機器200の生産数、産業機器200が備える機器(例えば、P1、P2等)の部品を動かす速度、及び、産業機器200が備える機器(例えば、P1、P2等)の部品を動かす方向(X軸方向、Y軸方向、及び、Z軸方向等)等のデータの種類を示す名前情報(name又はidともいう)等である。
【0035】
なお、産業機器200は、工作機械に限定される必要はなく、例えば、医療機器等であってもよい。
【0036】
端末300は、通信装置100から送信される産業機器200の機器データを受信する装置である。ユーザは、例えば、端末300を操作することで、端末300が受信した産業機器200に係る機器データを確認する。
【0037】
端末300は、例えば、端末300を利用するユーザによる操作を受け付ける入力インターフェース、及び、ユーザに対する出力を行う出力インターフェース等のユーザインターフェースと、通信装置100と通信する通信インターフェースと、プロセッサと、データを記憶するフラッシュメモリ、HDD等の記憶装置と、を有する。端末300は、例えば、スマートフォン、タブレット端末、又は、パーソナルコンピュータであってもよく、特に限定されない。また、端末300は、ネットワークを介するクラウド上のサーバ装置であってもよい。
【0038】
通信装置100と端末300とは、例えば、MQTT(Message Queuing Telemetry Transport)に準拠する規格に基づいて通信する。
【0039】
なお、通信装置100と端末300との間で行われる通信の規格は、MQTTに準拠する規格に限定されるものではなく、例えば、パブリッシュ/サブスクライブ型の通信プロトコルであれば、独自規格等、任意の規格でもよい。
【0040】
以下では、通信装置100と端末300との間では、MQTTに準拠する規格に基づいて通信されるとして説明する。
【0041】
また、通信装置100と産業機器200との間は、ローカル接続されていてもよいし、有線ネットワークで接続されてもよいし、無線ネットワークで接続されていてもよい。なお、通信装置100と産業機器200との通信で用いられる通信規格は、任意でよく、例えば、MQTTとは異なる通信規格が採用されていてもよい。
【0042】
図2は、実施の形態に係る通信装置100の機能構成を示すブロック図である。
【0043】
通信装置100は、通信部110と、取得部120と、作成部130と、制御部140と、記憶部150と、を備える。
【0044】
通信部110は、産業機器200と通信するための通信インターフェースと、端末300と通信するための通信インターフェースとの2つの通信インターフェースを備える。より具体的には、例えば、通信部110が、端末300と有線通信する場合には、通信線が接続可能な通信規格に準拠したコネクタを備える。また、通信部110が、端末300と無線通信する場合には、アンテナと無線モジュールとを備える。
【0045】
また、例えば、通信部110は、産業機器200と通信することで、産業機器200に係る機器データを受信する。
【0046】
通信部110は、パブリッシュ/サブスクライブ型のメッセージを用いて、ブローカとして機能する端末300と通信するための通信インターフェースである。
【0047】
パブリッシュ/サブスクライブ型のメッセージを用いた通信では、メッセージ(データ)の送信者であるパブリッシャ(publisher)と、メッセージの受信者であるサブスクライバ(subscriber)との間のメッセージの送受信をブローカ(broker)が仲介する。そしてそのメッセージ送受信の仲介には、トピックと呼ばれるメッセージの内容を識別するための情報が利用される。
【0048】
なお、以後、パブリッシャとして機能する装置を単にパブリッシャともいい、サブスクライバとして機能する装置を単にサブスクライバともいい、ブローカとして機能する装置を単にブローカともいう。
【0049】
まず、サブスクライバは、トピックを指定した情報をブローカに送信、つまり、トピックを指定(サブスクライブ/subscribe)する。
【0050】
パブリッシャがトピックを指定してメッセージをブローカに送信(パブリッシュ/publish)した場合、ブローカは、指定されたトピックに対応するメッセージをサブスクライバに向けてパブリッシュ(転送)する。これにより、パブリッシャは、宛先(サブスクライバ)が誰で何人いるか等の情報がなくても、メッセージをサブスクライバにパブリッシュすることができる。
【0051】
トピックとは、メッセージの内容を識別するための情報であって、データの特徴を表す情報である。トピックは、例えば、データのタイトル、種類、及び、形式等を示す情報である。本実施の形態では、産業機器200から出力される機器データに関するトピックが作成される。
【0052】
なお、以下では、特に明示しない限り、端末300は、ブローカとしてもパブリッシャとしてもサブスクライバとしても機能する。例えば、端末300は、ブローカとして機能し、パブリッシャとして機能する第1クライアントから要求情報を含むメッセージを受信した場合に、受信した要求情報を含むメッセージを通信装置100にパブリッシュ(転送)する。また、例えば、端末300は、ブローカとして機能し、産業機器200に関する1以上のトピックのリストであるトピックリストを含むメッセージを通信装置100から受信した場合に、受信したトピックリストを含むメッセージをサブスクライバとして機能する第2クライアントにパブリッシュ(転送)する。本実施の形態では、後で詳細に説明する
図10においては、第1クライアント及び第2クライアントは、いずれも端末300である。ただし、第1クライアント及び第2クライアントは、それぞれ、端末300とは異なる別々の装置であってもよい。
【0053】
なお、端末300は、パブリッシャ及びブローカとして機能し、ユーザによる操作に応じて、要求情報を含むメッセージを通信装置100にパブリッシュしてもよい。また、例えば、端末300は、ブローカ及びサブスクライバとして機能し、通信装置100からパブリッシュされたメッセージに含まれるデータに基づいて、ユーザに対して出力(例えば、データを示す画像の表示等)を行ってもよい。
【0054】
また、通信装置100は、特に明示しない限り、パブリッシャとしてもサブスクライバとしても機能する。
【0055】
図2に戻って、取得部120は、産業機器200に関する機器データを取得する処理部である。取得部120は、例えば、産業機器200に関する機器データを、通信部110を介して産業機器200から受信することで取得する。或いは、取得部120は、機器データが、HDD(Hard Disk Drive)やメモリなどの記憶部150に記憶されている場合、記憶部150から取得してもよい。
【0056】
作成部130は、取得部120が取得した機器データに基づいて、産業機器200の構成に関する1以上のトピックのリストであるトピックリストを作成する処理部である。作成部130は、例えば、機器データに基づいて、/(スラッシュ)から始まる任意の階層の名前を付したトピックを1以上作成し、作成した1以上のトピックのリストであるトピックリスト(より具体的には、トピックリストを示すデータ)を作成する。
【0057】
トピックは、例えば、産業機器200が出力する機器データの種類(データ項目)ごとに作成される。例えば、産業機器200が、対象物をX軸とY軸とZ軸とに沿って移動させることが可能な機器である場合、X軸の位置を示す情報に関するトピックと、Y軸の位置を示す情報に関するトピックと、Z軸の位置を示す情報に関するトピックとが作成部130によって作成される。さらに、作成部130は、作成した3つのトピックを示すトピックリストを作成する。
【0058】
トピックリストは、トピック(具体的には、トピック名、より具体的には、トピックを示す文字列)のリストを示す情報である。トピックは、例えば、産業機器200が出力する機器データの種類ごとに作成される。そのため、トピックの内容は、産業機器200の各構成(構成要素)を示す情報を含むと言える。言い換えれば、トピックリストは、産業機器200の構成を示す構成情報(構成要素のリスト)となりえる。
【0059】
なお、作成部130は、機器データに基づいて作成した1以上のトピックのみを含むトピックリストを作成してもよいし、予め機器データに応じたトピックが一部設定されている場合、予め設定されているトピックと機器データに基づいて作成した1以上のトピックとを示すトピックリストを作成してもよい。
【0060】
例えば、産業機器200が出力する機器データであるX軸の位置を示す情報に関するトピックが予め設定されており、取得部110が機器データとして、X軸の位置を示す情報とY軸の位置を示す情報とを取得した場合、トピックが予め設定されていないY軸の位置を示す情報に関するトピックを新たに作成し、X軸の位置を示す情報に関するトピックとY軸の位置を示す情報に関するトピックとを示すトピックリストを作成してもよい。
【0061】
図3は、実施の形態に係る通信装置100が作成するトピックの第1例を示す図である。
【0062】
例えば、作成部130は、取得部120が、機器データとして、X軸の位置が出力可能であることを示す情報と、Y軸の位置が出力可能であることを示す情報と、Z軸の位置が出力可能であることを示す情報とを取得した場合、トピックとして、(i)/topic/act-X_P1と、(ii)/topic/act-Y_P1と、(iii)/topic/act-Z_P1と、3つのトピックを作成する。
【0063】
それぞれのトピックには、対応するデータ(より具体的には、データを含むメッセージ)が紐付けられる。例えば、作成部130は、/topic/act-X_P1には、X軸の位置を示す情報(数値データ)を紐付けて記憶部150に記憶させる。また、例えば、作成部130は、/topic/act-Y_P1には、Y軸の位置を示す情報(数値データ)を紐付けて記憶部150に記憶させる。例えば、サブスクライバがブローカに対して/topic/act-X_P1をトピックとして指定した場合、ブローカは、サブスクライバに、通信装置100から受信した、/topic/act-X_P1に対応した機器データであるX軸の位置を示す情報を含むメッセージを端末300にパブリッシュする。
【0064】
図4は、実施の形態に係る通信装置100が作成するトピックの第2例を示す図である。
【0065】
この例では、産業機器200が2つの異なる機器P1およびP2(不図示)を備えており、取得部120が、機器データとして、機器P1がX軸の位置が出力可能であることを示す情報と、Z軸の位置が出力可能であることを示す情報と、機器P2がX軸の位置が出力可能であることを示す情報と、機器P2がZ軸の位置が出力可能であることを示す情報と、を取得したとする例である。この場合、例えば、作成部130は、トピックとして、(i)/topic/act-X_P1と、(ii)/topic/act-Z_P1と、(iii)/topic/act-X_P2と、(iv)/topic/act-Z_P2と、4つのトピックを作成する。
【0066】
このように、作成部130は、産業機器200に関する異なる複数の機器データに基づいて、メッセージの対象であるトピック、つまり、メッセージを用いて通信する際に機器データの内容を特定するために用いられるトピックを作成し得る。
【0067】
なお、例えば、/topic/act-X_P1等の「topic」の部分には、産業機器200に任意に定められる機器名等が割り当てられてもよい。
【0068】
また、作成部130は、産業機器200の構成に応じてトピックを作成してもよい。例えば、作成部130は、上記したように産業機器200が2つの異なる機器(機器P1及び機器P2)を備える場合、機器P1に対応するトピックと、機器P2に対応するトピックと、を別に作成してもよい。例えば、作成部130は、トピックとして、/topic/P1と、/topic/P2と、を作成してもよい。例えば、
図4で言えば、/topic/P1には、機器P1におけるX軸の位置を示す情報(/topic/act-X_P1の情報)と機器P1におけるZ軸の位置を示す情報(/topic/act-Z_P1の情報)とが紐付けられる。この例は
図5以下に例示するが、1つのトピックに対して複数の情報が紐付けられていてもよい。
【0069】
また、作成部130は、産業機器200の構成に応じたデータ項目ごとの1以上のトピックのリストであるトピックリストを作成してもよい。言い換えると、作成部130が作成するトピックリストは、例えば、産業機器200の構成に応じたデータ項目ごとの1以上のトピックを示す。
【0070】
データ項目とは、産業機器200が出力する機器データの種類(属性)を示す。例えば、取得部110が産業機器200から、機器P1のX軸の位置を示す情報と、機器P1のZ軸の位置を示す情報と、機器P2のX軸の位置を示す情報と、機器P2のZ軸の位置を示す情報と、のように、4つのデータ項目を含む機器データを取得した場合、作成部130は、
図4に示す例のように、それぞれに対応する4つのトピックを作成し、作成した4つのトピックのリストをトピックリストとして作成する。
【0071】
なお、データ項目ごととは、X軸の位置を示す数値を示すデータ、Z軸の位置を示す数値を示すデータ等のように、データの種類が異なるデータごとであることを意味する。例えば、時間を示すデータと、当該時間におけるX軸の位置を示す数値を示すデータとのように、関連付けられていないと意味をなさないデータについては、1つのトピックに複数のデータが紐付けられていてもよい。
【0072】
また、例えば、作成部130は、機器データに基づいて、通信装置100が機器データを取得している産業機器200のリストである機器リストを作成する。
【0073】
図5は、実施の形態に係る通信装置100が作成するメッセージの第1例を示す図である。具体的には、
図5は、機器リストの一例を示す図である。
【0074】
機器リストは、通信装置100が通信する1台または複数台の産業機器200のリストを示す情報であり、それぞれの産業機器200に予め定められた機器名を含むリストである。
【0075】
ここでは、通信装置100が、例えば、2台の産業機器200のそれぞれから機器データを取得しているとする。
【0076】
この場合、例えば、作成部130は、
図5に示す機器リストを作成する。例えば作成部130は、
図5に示す予め設定された機器リストのトピックに紐付く、2台の産業機器200のそれぞれに固有の識別情報(”id”)と、2台の産業機器200のそれぞれにユーザ等によって任意に定められた機器名(”name”)とのデータを示すリストを作成する。本例では、「/machine_list」が、機器リストに関するトピックであり、「{”id”:1,”name”:”machineA”,},{”id”:2,”name”:”machineB”,}」が機器リストであり、「{”machines”:[{”id”:1,”name”:”machineA”,},{”id”:2,”name”:”machineB”,}]}」が機器リストを含むメッセージである。
【0077】
また、このように、例えば、通信装置100が2台の産業機器200のそれぞれから機器データを取得している場合、2台の産業機器200ごとのトピックのリスト(トピックリスト)を作成してもよい。この例は
図6及び
図7に例示する。
【0078】
図6は、実施の形態に係る通信装置100が作成するメッセージの第2例を示す図である。具体的には、
図6は、
図5に示す機器名が”machineA”である産業機器200の構成に関する1以上のトピックのリストであるトピックリストを示す図である。より具体的には、
図6は、取得部120が、”machineA”の機器データとして、産業機器200が備える機器P1(不図示)がX軸の位置が出力可能であることを示す情報と、Y軸の位置が出力可能であることを示す情報と、Z軸の位置が出力可能であることを示す情報と、を取得した場合に、作成部130が作成するトピックリストの例である。この場合、作成部130は、トピックとして、(i)/machineA/act-X_P1と、(ii)/machineA/act-Y_P1と、(iii)/machineA/act-Z_P1と、を作成する。さらに、作成部130は、(i)/machineA/act-X_P1と、(ii)/machineA/act-Y_P1と、(iii)/machineA/act-Z_P1とのそれぞれのトピックの文字列を示すトピックリストを作成する。本例では、「/machineA/topic_list」が、予め任意に設定されているトピックリストに関するトピックであり、「”/machineA/act-X_P1”,”/machineA/act-Y_P1”,”/machineA/act-Z_P1”」がトピックリストであり、「{”topic_list”:[”/machineA/act-X_P1”,”/machineA/act-Y_P1”,”/machineA/act-Z_P1”]}」がトピックリストを含むメッセージである。
【0079】
図7は、実施の形態に係る通信装置100が作成するメッセージの第3例を示す図である。具体的には、
図7は、
図5に示す機器名が”machineB”である産業機器200の構成に関する1以上のトピックのリストであるトピックリストを示す図である。より具体的には、
図7は、取得部120が、”machineB”の機器データとして、産業機器200が機器P1(不図示)と機器P2(不図示)とを備えており、機器P1がX軸の位置が出力可能であることを示す情報と、機器P1がZ軸の位置が出力可能であることを示す情報と、機器P2(不図示)がX軸の位置が出力可能であることを示す情報と、機器P2がZ軸の位置が出力可能であることを示す情報と、を取得する例である。この場合、作成部130は、トピックとして、(i)/machineB/act-X_P1と、(ii)/machineB/act-Z_P1と、(iii)/machineB/act-X_P2と、(iv)/machineB/act-Z_P2と、を作成する。さらに、作成部130は、(i)/machineB/act-X_P1と、(ii)/machineB/act-Z_P1と、(iii)/machineB/act-X_P2と、(iv)/machineB/act-Z_P2とのそれぞれのトピックの文字列を示すトピックリストを作成する。本例では、「/machineB/topic_list」が、予め任意に設定されているトピックリストに関するトピックであり、「”/machineB/act-X_P1”,”/machineB/act-Z_P1”,”/machineB/act-X_P2”,”/machineB/act-Z_P2”」がトピックリストであり、「{”topic_list”:[”/machineB/act-X_P1”,”/machineB/act-Z_P1”,”/machineB/act-X_P2”,”/machineB/act-Z_P2”]}」がトピックリストを含むメッセージである。
【0080】
図8は、実施の形態に係る通信装置100が作成するメッセージの第4例を示す図である。具体的には、
図8は、トピック及びトピックに紐付けられるデータの一例を示す図である。
【0081】
図8に示すように、例えば、トピック「/machineA/act-X_P1」には、機器名が”machineA”である産業機器200の機器データである、時間を示すデータ(”time”)と、当該時間におけるX軸の位置を示す数値を示すデータ(”value”)と、が紐付けられる。
【0082】
図9は、実施の形態に係る通信装置100が作成するメッセージの第5例を示す図である。具体的には、
図9は、トピック及びトピックに紐付けられるデータの別の一例を示す図である。
【0083】
図9に示すように、例えば、トピック「/machineB/act-X_P1」には、機器名が”machineB”である産業機器200の機器データである、時間を示すデータ(”time”)と、当該時間におけるX軸の位置を示す数値を示すデータ(”value”)と、が紐付けられる。
【0084】
通信装置100は、例えば、
図5に示す機器リストを含むメッセージと、
図6及び
図7に示すトピックリストを含むメッセージとを、端末300にパブリッシュする。
【0085】
これにより、ユーザは、端末300を操作することで、産業機器200の構成を確認できる。
【0086】
端末300は、例えば、ユーザに操作されることで、ユーザが所望の情報と紐付けられたトピックを指定(サブスクライブ)する。例えば、端末300は、
図8に示すトピック「/machineA/act-X_P1」をサブスクライブする。これにより、通信装置100は、例えば、
図8に示す様な、具体的データを含むメッセージを端末300にパブリッシュする。
【0087】
制御部140は、通信部110を介して、作成部130で作成されたトピックリストを含むメッセージを端末300にパブリッシュする処理部である。例えば、制御部140は、通信部110を介して端末300からトピックリストを要求する要求情報を含むメッセージを受信した場合、通信部110を介して作成部130で作成されたトピックリストを含むメッセージを端末300にパブリッシュする処理部である。
【0088】
また、例えば、制御部140は、通信部110を介して端末300にパブリッシュした1以上のメッセージのうち、最新のメッセージを記憶する指示を示す保持情報を含むメッセージを端末300にパブリッシュする。例えば、制御部140は、トピックリストと保持情報とを含むメッセージを端末300にパブリッシュする。
【0089】
保持情報とは、ブローカとして機能する端末300に、最新のメッセージを記憶させるための情報である。
【0090】
端末300は、例えば、通信装置100から複数のメッセージを受信する。端末300がブローカとして機能する場合、保持情報を含むメッセージを受信しなければ、受信したメッセージを当該メッセージに対応するサブスクライバ(より具体的には、当該メッセージに紐付くトピックを指定しているサブスクライバ)のためにパブリッシュした後、パブリッシュしたメッセージを端末300が備える記憶装置(不図示)から削除してしまう。しかし、端末300は、保持情報を含むメッセージを受信した場合には、最新のメッセージを記憶装置に記憶し続ける。保持情報を含むメッセージとは、例えば、MQTTが備えるRetainメッセージである。
【0091】
Retainメッセージは、トピックごとに最新のメッセージをブローカに記憶させる機能である。MQTTでは、パブリッシャからブローカにメッセージがパブリッシュされたときにブローカと通信可能なサブスクライバのみに当該メッセージがパブリッシュされる。そのため、ブローカと通信できない状態であるサブスクライバにはメッセージがパブリッシュされない。そこで、Retain機能により、常に最新のメッセージをブローカ(本実施の形態では、端末300)に記憶させておくことができる。このように、ブローカからメッセージがパブリッシュされるときに当該ブローカと通信できない状態であるサブスクライバは、Retain機能によって当該ブローカに記憶されている最新のメッセージを受け取ることができる。また、メッセージを記憶させるために、例えば、メッセージに保持情報としてフラグが設定されていてもよい。すなわち、端末300は、ブローカがトピックリストを含むメッセージを受信した場合、当該メッセージにおける予め任意に定められた保持情報が格納されるフィールドの値が0の場合、当該メッセージを破棄し、フィールドの値が1の場合、当該メッセージを記憶してもよい。Retainメッセージを用いる例は、
図14により示す変形例において詳述する。
【0092】
取得部120、作成部130及び制御部140等の処理部は、例えば、記憶部150に記憶される制御プログラムと、当該制御プログラムを実行するCPU(Central Processing Unit)等のプロセッサとにより実現される。
【0093】
なお、取得部120、作成部130及び制御部140は、上記した動作を繰り返し実行してもよい。具体的には、取得部120は、繰り返し機器データを取得し、作成部130は、取得部120が機器データを取得する度に、機器データに基づいてトピックリストを作成してもよい。例えば、機器データが更新されると、トピックも更新される場合がある。この場合、作成部130は、更新されたトピックに応じてトピックリストも作成し直す。また、この場合、例えば、制御部140は、さらに、作成部130がトピックリストを作成する度に、作成部130に作成されたトピックリストを含むメッセージを端末300にパブリッシュする。つまり、制御部140は、通信部110を介して要求情報を含むメッセージを受信した場合、通信部110を介してトピックリストを含むメッセージを端末300にパブリッシュし、且つ、その後作成部130がトピックリストを作成する度に、トピックリストを含むメッセージを繰り返し端末300にパブリッシュしてもよい。
【0094】
これにより、端末300には、定期的に更新されたトピックリストを含むメッセージがパブリッシュされる。制御部140は、単に、作成部130がトピックリストを作成する度に、作成部130で作成された当該トピックリストを含むメッセージを繰り返し端末300にパブリッシュしてもよい。
【0095】
また、作成部130は、取得部120が機器データを取得する度だけでなく、前回取得した機器データと異なる機器データを取得した場合にのみ、当該機器データに基づいて1以上のトピックを作成してもよい。具体的には、取得部120は、繰り返し機器データを取得した後一時記憶しておき、作成部130は、取得部120が取得した機器データである第1機器データと、当該第1機器データの1つ前に取得部120が取得した機器データである第2機器データとを比較し、第1機器データと第2機器データとが互いに異なる機器データである場合に、第1機器データに基づいて1以上のトピックを作成する。例えば、作成部130は、取得部120が、産業機器200から第2機器データとして、X軸の位置が出力可能であることを示す情報と、Y軸の位置が出力可能であることを示す情報とを取得した後に、産業機器200から第1機器データとして、X軸の位置が出力可能であることを示す情報と、Z軸の位置が出力可能であることを示す情報とを取得したとする。この場合、作成部130は、第1機器データと第2機器データとが異なる(より具体的には、機器データの種類(データ項目)が異なる)ため、新たにトピック(この場合、例えば、Z軸の位置が出力可能であることを示す情報に関するトピック)及びトピックリストを作成する。
【0096】
記憶部150は、取得部120、作成部130及び制御部140が実行する制御プログラムが記憶される記憶装置である。記憶部150は、例えば、フラッシュメモリ、HDD等により実現される。
【0097】
[処理手順]
<通信システム>
続いて、通信システム400が実行する動作について説明する。
【0098】
図10は、実施の形態に係る通信装置100が実行する処理の処理手順を示すシーケンス図である。以下、
図11および
図12を用いて、
図10に示すシーケンス図を詳細に説明する。
【0099】
なお、
図10に示すように、端末300は、サブスクライバ、パブリッシャ、及び、ブローカとして機能する。また、通信装置100は、サブスクライバ及びパブリッシャとして機能する。
【0100】
また、
図10に示す通信システム400においては、最小の構成として、通信装置100と通信する産業機器200及び端末300を1つずつのみ図示している。
【0101】
まず、通信装置100は、産業機器200と通信することで、産業機器200から産業機器200に関する機器データを取得する(S101)。
【0102】
なお、例えば、通信装置100が複数台の産業機器200と通信可能である場合、当該複数台の産業機器200のそれぞれから機器データを取得する。
【0103】
次に、通信装置100は、機器データに基づいて機器リスト及びトピックリストを作成する(S102)。例えば、通信装置100は、機器データに基づいて1以上のトピックを作成し、作成した1以上のトピックのリストであるトピックリストを作成する。
【0104】
次に、例えば、端末300は、ユーザに操作されることで、パブリッシャとして機能して、機器リストを要求するリスト要求を含むメッセージをブローカにパブリッシュする(S103)。この場合、次に、端末300は、ブローカとして機能して、当該リスト要求を含むメッセージを通信装置100にパブリッシュする。
【0105】
ここで、
図11は、実施の形態に係る端末300が作成するメッセージの第1例を示す図である。具体的には、
図11は、通信装置100が取得している全ての産業機器200の情報を示す機器リストを要求する指示(構成配信指示)を示す情報であるリスト要求を含むメッセージの一例である。
【0106】
ブローカとして機能している端末300は、例えば、
図11に示すデータ(例えば、通信装置100が通信する全ての産業機器200を示すリストである機器リストを送信する指示である「”list_type”:”all”」)を含むメッセージを通信装置100にパブリッシュする。つまり、ステップS103およびステップS104では、端末300は、パブリッシャ及びブローカとして機能して、/request/machine_listによるリスト要求を送信することで、リスト要求を含むメッセージを通信装置100にパブリッシュする。
【0107】
なお、通信装置100は、ステップS103が実行される前までに、/request/machine_listを指定(サブスクライブ)する。
【0108】
これにより、通信装置100は、サブスクライバとして機能して、当該リスト要求を含むメッセージを端末300から受信する(S104)。
【0109】
次に、通信装置100は、作成した機器リストを含むメッセージを、パブリッシャとして機能して端末300(ブローカ)にパブリッシュする(S105)。例えば、通信装置100が、それぞれ「”machineA”」及び「”machineB”」の機器名である2台の産業機器200から機器データを取得している場合に、
図11に示すメッセージを受信したとする。この場合、通信装置100は、
図5に示すような機器リストを含むメッセージを、ブローカとして機能している端末300にパブリッシュする。つまり、ステップS105では、通信装置100は、パブリッシャとして機能して、
図5に示すトピックである/machine_listに対して機器リストをパブリッシュする。
【0110】
次に、端末300は、通信装置100から受信したメッセージに含まれる機器リストを、ブローカとして機能してサブスクライバにパブリッシュする(S106)。
【0111】
次に、例えば、端末300は、ユーザに操作されることで、パブリッシャとして機能して、トピックリストを要求する指示を示す要求情報(構成要求)をブローカにパブリッシュする(S107)。次に、端末300は、ブローカとして機能して、当該要求情報を含むメッセージを通信装置100にパブリッシュする。
【0112】
ここで、
図12は、実施の形態に係る端末300が作成するメッセージの第2例を示す図である。具体的には、
図12は、要求情報(構成要求)の一例であって、通信装置100が取得している機器名が「”machineA”」の産業機器200の構成を示す情報、つまり、トピックリストを要求する指示(構成配信指示)を示す情報である構成要求を含むメッセージの一例である。
【0113】
ブローカとして機能している端末300は、例えば、
図12に示すデータ(例えば、機器名が「”machineA”」の産業機器200の全てのトピックを示しているトピックリストを送信する指示(つまり、要求情報の一例)である「”machines”:[”machineA”])を含むメッセージを通信装置100にパブリッシュする。つまり、ステップS107およびステップS108では、端末300は、パブリッシャ及びブローカとして機能して、/request/topic_listによる構成要求を送信することで、構成要求を含むメッセージを通信装置100にパブリッシュする。
【0114】
なお、通信装置100は、ステップS107が実行される前までに、/request/topic_listを指定(サブスクライブ)する。
【0115】
これにより、通信装置100は、サブスクライバとして機能して、当該要求情報を含むメッセージを受信する(S108)。
【0116】
次に、通信装置100は、作成したトピックリストに示される1以上のトピックの中から受信したメッセージに含まれる要求情報に基づいてトピックを選択し、選択したトピックに紐付けられたデータを含むメッセージを、パブリッシャとして機能して端末300(ブローカ)にパブリッシュする(S109)。例えば、通信装置100は、
図12に示すメッセージを受信したとする。この場合、通信装置100は、トピックリストを含むメッセージをブローカとして機能している端末300にパブリッシュする。つまり、ステップS109では、通信装置100は、パブリッシャとして機能して、例えば、
図6に示すトピックである/machineA/topic_listに対してトピックリストを送信(パブリッシュ)する。
【0117】
次に、端末300は、受信したメッセージに含まれるトピックリストを、ブローカとして機能してサブスクライバにパブリッシュする(S110)。
【0118】
<通信装置>
図13は、実施の形態に係る通信装置100の処理手順を説明するためのフローチャートである。
【0119】
まず、取得部120は、産業機器200に関する機器データを取得する(S201)。
【0120】
次に、作成部130は、取得部120が取得した機器データに基づいて、上記した機器リスト、及び、産業機器200の構成1以上のトピックのリストであるトピックリストを作成する(S202)。例えば、通信装置100は、トピックリストを含むメッセージ及び機器リスト等の情報を含むメッセージを生成する。
【0121】
次に、制御部140は、ブローカとして機能する端末300と通信接続する(S203)。例えば、制御部140は、ブローカとして機能する端末300とメッセージの送受信をする際に、当該端末300と1つのセッションで通信できるように、当該端末300と通信接続のための処理を実行する。例えば、端末300及び通信装置100は、
図10に示すように、端末300が、リスト要求を含むメッセージをパブリッシュしてから機器リストを含むメッセージを受信するまでの通信を、1つのセッションで通信する。
【0122】
次に、制御部140は、通信部110を介して端末300からリスト要求を含むメッセージを受信したか否かを判定する(S204)。
【0123】
制御部140は、リスト要求を含むメッセージを受信していないと判定した場合(S204でNo)、ステップS204の処理を繰り返す。
【0124】
なお、ステップS204でNoの場合、ステップS206の処理に移ってもよいし、処理を終了してもよい。
【0125】
一方、制御部140は、リスト要求を含むメッセージを受信したと判定した場合(S204でYes)、通信部110を介して、機器リストを含むメッセージをブローカとして機能する端末300にパブリッシュする(S205)。
【0126】
次に、制御部140は、通信部110を介して端末300から、トピックリストを要求する要求情報を含むメッセージ(構成要求を含むメッセージ)を受信したか否かを判定する(S206)。
【0127】
制御部140は、構成要求を含むメッセージを受信していないと判定した場合(S206でNo)、ステップS206の処理を繰り返す。
【0128】
なお、ステップS206でNoの場合、ステップS204の処理に移ってもよいし、処理を終了してもよい。
【0129】
一方、制御部140は、構成要求を含むメッセージを受信したと判定した場合(S206でYes)、通信部110を介して、トピックリストを含むメッセージをブローカとして機能する端末300にパブリッシュする(S207)。
【0130】
<変形例>
図14は、変形例に係る通信システム401の処理手順を説明するためのシーケンス図である。
【0131】
通信システム401は、通信装置100と、産業機器200と、サブスクライバとして機能する端末301と、ブローカとして機能する端末302と、を備える。
【0132】
端末301は、サブスクライバとしてのみ機能する点が端末300とは異なる。また、端末302は、ブローカとしてのみ機能する点が端末300とは異なる。
【0133】
このように、パブリッシャ、サブスクライバ、及び、ブローカとして機能する端末は、
図10に例示したように1台で構成されてもよいし、パブリッシャ、サブスクライバ、及び、ブローカの機能のいずれかを有する複数台の端末で構成されてもよい。
【0134】
端末301は、例えば、ユーザが操作するコンピュータであり、端末302は、端末301及び通信装置100と通信可能なクラウド上のサーバ装置であってもよい。
【0135】
ここで、ブローカとして機能する端末302は既にRetain機能(Retainフラグ)が有効化されている状態である。Retainフラグが有効化されている状態とは、Retain機能が働く状態であり、端末302(ブローカ)が、通信装置100からパブリッシュされた、産業機器200から取得した最新の機器データおよび機器リストなどのデータを含むメッセージを記憶保持し、端末301(サブスクライバ)から構成要求があれば、端末301にパブリッシュできる状態である。
【0136】
まず、通信装置100は、産業機器200と通信することで、産業機器200から産業機器200に関する機器データを取得する(S301)。
【0137】
なお、例えば、通信装置100が複数台の産業機器200と通信可能である場合、当該複数台の産業機器200のそれぞれから機器データを取得する。
【0138】
次に、通信装置100は、機器データに基づいて、機器リスト及びトピックリストを作成する(S302)。例えば、通信装置100は、産業機器200の構成に応じたデータ項目、具体的には、機器データに応じたデータ項目ごとにトピックを作成し、作成したトピックのリストであるトピックリストを作成してもよい。また、この際、通信装置100は、取得部が取得した機器データである第1機器データと、その直前に取得部が取得した機器データである第2機器データとを比較し、互いに異なる機器データである場合に限り、第1機器データに基づいてトピックリストを作成してもよい。
【0139】
次に、通信装置100は、ステップS302で作成した機器リスト及びトピックリスト(Retainメッセージを含む)を、端末302にパブリッシュする(S303)。この場合、
図10と異なり、端末302からの構成要求の受信を待つことなくパブリッシュする。
【0140】
このように、通信装置100(より具体的には、制御部140)は、ステップS303において、通信部110を介して端末302にパブリッシュした1以上のメッセージのうち、最新のメッセージを記憶する指示を示す保持情報を含むRetainメッセージを端末302にパブリッシュする。
【0141】
これにより、端末302は、Retain機能が有効化されているため、通信装置100から受信した最新のメッセージを記憶する。
【0142】
ここで、例えば、端末301が、トピックリストを要求する構成要求を、端末302に事前にパブリッシュしており、その後、端末301の電源がオフになり(S304)、端末302と通信できない状態であったとする。
【0143】
この場合、例えば、端末302は、ステップS304以前にRetainメッセージを受信していなければ、トピックリストを含むメッセージを端末301にパブリッシュできずにトピックリストを含むメッセージを破棄する。
【0144】
一方、端末302は、ステップS304以前にRetainメッセージを受信していれば、トピックリストを含むメッセージを端末301にパブリッシュできない場合においても新たなメッセージを受信するまでトピックリストを含むメッセージを記憶し続ける。
【0145】
次に、例えば、端末301の電源がオンになり(S305)、端末302と通信できる状態になったとする。
【0146】
次に、例えば、端末301は、構成要求を含むメッセージを端末302にパブリッシュする(S306)。ステップS306では、端末301が、トピックリストのトピックを指定(サブスクライブ)してもよい。
【0147】
次に、端末302は、記憶しているトピックリストを含むメッセージを端末301にパブリッシュする(S307)。
【0148】
なお、端末302は、端末302に記憶しているメッセージを端末301にパブリッシュできた場合には、記憶しているメッセージを削除してもよい。
【0149】
図15は、実施の形態に係る通信装置100の処理手順の変形例を示すフローチャートである。
【0150】
図10で説明したシーケンス図および
図13で説明したフローチャートでは、通信装置100は、要求情報を受信した場合に、トピックリストを含むメッセージを端末300にパブリッシュする。これに対して、変形例では、通信装置100が、産業機器200から機器データを繰り返し取得し、取得した機器データに基づいてトピックリストを繰り替えし作成し、作成したトピックリストを含むメッセージを端末300に繰り返しパブリッシュする。
【0151】
まず、取得部120は、産業機器200の構成に関する機器データを取得するタイミングを示す収集タイミングであるか否かを判定する(S401)。
【0152】
なお、収集タイミングは、予め任意に定められてよく、特に限定されない。収集タイミングの間隔は、1分おきでもよいし、1時間おきでもよいし、1日おきでもよい。収集タイミングは、予め任意に定められる所定の周期ごとでもよいし、周期的でなくてもよい。収集タイミングは、予め任意に定められる所定の時刻でもよい。
【0153】
取得部120は、機器データを取得するタイミングを示す収集タイミングでないと判定した場合(S401でNo)、処理をステップS401に戻す。
【0154】
一方、取得部120は、機器データを取得するタイミングを示す収集タイミングであると判定した場合(S401でYes)、産業機器200から、例えば通信部110を介して機器データを取得する(S402)。
【0155】
次に、作成部130は、取得部120が取得した機器データに基づいて、トピックリストを作成する(S403)。
【0156】
次に、制御部140は、通信部110を介してトピックリストを含むメッセージを端末300にパブリッシュ(より具体的には、トピックリストのトピックを指定して端末300にトピックリストを含むメッセージを送信)し(S404)、処理をステップS401に戻す。
【0157】
このように、通信装置100は、繰り返し機器データを取得し、機器データを取得する度に、機器データに基づいてトピックリストを作成し、トピックリストを作成する度に、トピックリストを含むメッセージを端末300にパブリッシュしてもよい。
【0158】
[効果等]
以上説明したように、実施の形態に係る通信装置100は、パブリッシュ/サブスクライブ型のメッセージを用いてブローカとして機能する端末300と通信するための通信部110と、産業機器200に関する機器データを取得する取得部120と、当該機器データに基づいて、産業機器200の構成に関する1以上のトピックのリストであるトピックリストを作成する作成部130と、通信部110を介して作成部130で作成されたトピックリストを含むメッセージを端末300にパブリッシュする制御部140と、を備える。
【0159】
これによれば、通信装置100は、トピックリストを含むメッセージを端末300にパブリッシュできる。そのため、ユーザは、係るメッセージを受信してトピックリストを簡便に確認できるため、ユーザが産業機器200の構成を簡便に確認できる。
【0160】
また、例えば、作成部130で作成されたトピックリストは、産業機器200の構成に応じたデータ項目ごとに1以上のトピックを示す。
【0161】
通信装置100は、例えば、産業機器200の構成に応じたデータ項目ごとに1以上のトピックを作成し、作成した1以上のトピックのリストであるトピックリストを作成する。産業機器200の構成によっては、産業機器200が出力するデータ量が膨大になる場合がある。一方で、ユーザは、このような膨大なデータのうちの一部のみを必要とする場合がある。このような場合に、データ項目ごとにトピックが作成されることで、通信装置100は、ユーザが要求するデータのみを端末300に送信できる。そのため、通信するデータ量を削減できる。
【0162】
また、例えば、制御部140は、通信部110を介して端末300からトピックリストを要求する要求情報を含むメッセージを受信した場合、通信部110を介して作成部130で作成されたトピックリストを含むメッセージを端末300にパブリッシュする。
【0163】
これによれば、通信装置100は、要求情報を含むメッセージを受信したタイミングで、トピックリストを含むメッセージを端末300にパブリッシュ(送信)できる。そのため、ユーザは、メッセージを受信するサブスクライバとして機能する端末300を操作して、所望のタイミングでトピックリストを簡便に確認できるため、所望のタイミングで産業機器200の構成を簡便に確認できる。
【0164】
また、例えば、取得部120は、繰り返し機器データを取得する。また、例えば、作成部130は、取得部120が機器データを取得する度に、取得部120が取得した機器データに基づいてトピックリストを作成する。また、例えば、制御部140は、作成部130がトピックリストを作成する度に、トピックリストを含むメッセージを端末300にパブリッシュする。
【0165】
これによれば、通信装置100が、端末300からの要求を待つことなく、端末300にトピックリストを送信することができ、通信装置100における記憶領域(例えば、記憶部150)の圧迫を抑制できる。
【0166】
また、例えば、取得部120は、繰り返し機器データを取得する。また、例えば、作成部130は、取得部120が取得した機器データである第1機器データと、当該第1機器データの1つ前に取得部120が取得した機器データである第2機器データとを比較し、第1機器データと第2機器データとが互いに異なる機器データである場合に、第1機器データに基づいてトピックリストを作成する。
【0167】
これによれば、例えば、第1機器データと第2機器データとが同じ機器データであれば、作成したトピックリストを変更する必要がないため、記憶領域などの負荷を抑制でき、作成する必要があるタイミングで適切にトピックリストが作成され得る。
【0168】
また、例えば、制御部140は、通信部110を介して端末300にパブリッシュした1以上のメッセージのうち、最新のメッセージを記憶する指示を示す保持情報を含むメッセージを端末300にパブリッシュする。
【0169】
通信装置100は、複数のメッセージを端末302にパブリッシュする場合がある。このような場合に、通信装置100は、保持情報によって最新のメッセージを端末302に記憶させ続けることができる。例えば、パブリッシュ/サブスクライブ型のメッセージを用いた通信では、パブリッシャからブローカにメッセージがパブリッシュされたときに、サブスクライバとして機能する端末301が当該ブローカと通信できない状態であると、この端末301にはメッセージがパブリッシュされない。そこで、通信装置100は、保持情報を含むメッセージをブローカとして機能する端末302にパブリッシュすることで、常に最新のメッセージを端末302に記憶させておくことができる。そのため、例えば、端末302と通信できなかったサブスクライバとして機能する端末301がブローカとして機能する端末302と通信できるようになった場合に、ブローカとして機能する端末302は、最新のメッセージを当該サブスクライバとして機能する端末301にパブリッシュすることができる。
【0170】
また、本発明の一態様に係る通信システム400は、通信装置100と、端末300と、を備える。端末300は、パブリッシャとして機能する第1クライアントからトピックリストを要求する要求情報を含むメッセージを受信した場合に、受信した要求情報を含むメッセージを通信装置100にパブリッシュする。また、端末300は、トピックリストを含むメッセージを通信装置100から受信した場合に、受信したトピックリストを含むメッセージをサブスクライバとして機能する第2クライアントにパブリッシュする。
【0171】
また、本発明に一態様に係る通信方法は、パブリッシュ/サブスクライブ型のメッセージを用いてブローカとして機能する端末300と通信するための通信方法であって、産業機器200に関する機器データを取得する取得ステップ(例えば、S201)と、当該機器データに基づいて、産業機器200の構成に関する1以上のトピックのリストを示すトピックリストを作成する作成ステップ(例えば、S202)と、作成ステップで作成したトピックリストを含むメッセージを端末300にパブリッシュする制御ステップ(例えば、S207)と、を含む。
【0172】
これらによれば、本発明に一態様に係る通信装置100と同様の効果を奏する。
【0173】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【0174】
(その他の実施の形態)
以上、本発明に係る通信装置等について、実施の形態に基づいて説明したが、本発明は、上記実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、及び、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【0175】
例えば、通信システム400は、サブスクライバとして機能する端末と、パブリッシャとして機能する端末と、ブローカとして機能する端末と、を備えてもよい。或いは、例えば、通信システム400は、サブスクライバ及びパブリッシャとして機能する端末と、ブローカとして機能する端末と、を備えてもよい。このように、通信システム400は、サブスクライバ、パブリッシャ、及び、ブローカの少なくともいずれかとして機能する端末を複数台備えてもよい。
【0176】
また、上記実施の形態における、通信装置が実行する各ステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本発明は、当該各ステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
【0177】
例えば、本発明が、プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリ及び入出力回路等のハードウェア資源を利用してプログラムが実行されることによって、各ステップが実行される。つまり、CPUがデータをメモリ又は入出力回路等から受信して演算したり、演算結果をメモリ又は入出力回路等に出力したりすることによって、各ステップが実行される。
【0178】
また、例えば、通信装置に含まれる複数の構成要素は、それぞれ、専用又は汎用の回路として実現されてもよい。これらの構成要素は、1つの回路として実現されてもよいし、複数の回路として実現されてもよい。
【0179】
また、通信装置に含まれる複数の構成要素は、集積回路(IC:Integrated Circuit)であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。LSIは、集積度の違いにより、システムLSI、スーパーLSI又はウルトラLSIと呼称される場合がある。
【0180】
また、集積回路はLSIに限られず、専用回路又は汎用プロセッサで実現されてもよい。上述したように、プログラム可能なFPGA、又は、LSI内部の回路セルの接続及び設定が再構成可能なリコンフィギュラブル・プロセッサが、利用されてもよい。
【0181】
さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、通信装置に含まれる各構成要素の集積回路化が行われてもよい。
【0182】
その他、実施の形態に対して当業者が思いつく各種変形を施して得られる形態や、本発明の趣旨を逸脱しない範囲で各実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本発明に含まれる。
【産業上の利用可能性】
【0183】
本発明は、産業機器から受信したその産業機器に係る情報を、端末に送信するシステム等に利用可能である。
【符号の説明】
【0184】
100 通信装置
110 通信部
120 取得部
130 作成部
140 制御部
150 記憶部
200 産業機器
300、301、302 端末
400、401 通信システム