(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-21
(45)【発行日】2025-03-04
(54)【発明の名称】通信システム、通信装置、及び通信方法
(51)【国際特許分類】
H04L 7/00 20060101AFI20250225BHJP
【FI】
H04L7/00 990
(21)【出願番号】P 2023578329
(86)(22)【出願日】2022-02-07
(86)【国際出願番号】 JP2022004621
(87)【国際公開番号】W WO2023148956
(87)【国際公開日】2023-08-10
【審査請求日】2024-07-23
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】藤野 賀須男
(72)【発明者】
【氏名】弓場 忠輔
(72)【発明者】
【氏名】森若 良太
(72)【発明者】
【氏名】小林 和敏
(72)【発明者】
【氏名】南田 裕喜
(72)【発明者】
【氏名】下留 諒
(72)【発明者】
【氏名】俣賀 幹夫
【審査官】阿部 弘
(56)【参考文献】
【文献】国際公開第2020/230824(WO,A1)
【文献】特開平3-107790(JP,A)
【文献】特開平6-303684(JP,A)
【文献】特開平8-98263(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
第1アプリケーションと第2アプリケーションとの間における無線通信を行うシステムであって、
前記第1アプリケーションと第1有線通信を行う第1通信装置と、
前記第2アプリケーションと第2有線通信を行い、前記第1通信装置と前記無線通信を行う第2通信装置と、
を備え、
前記第1通信装置は、
前記第1アプリケーションから第1時刻を取得する第1時刻取得部
を有し、
前記第2通信装置は、
前記第1時刻に同期する第2時刻を生成する第2時刻生成部と、
前記第2時刻に同期する割り込み信号を前記第2アプリケーションに周期的に出力する割り込み出力部と、
を有する、通信システム。
【請求項2】
前記第2通信装置は、
前記第2時刻の前記第1時刻に対する同期状態を表す同期ステータス情報を前記第2アプリケーションに出力するステータス出力部
を更に有する、請求項1記載の通信システム。
【請求項3】
前記第1時刻取得部は、前記第1時刻と、前記割り込み信号の出力タイミングとの関係を表すタイミング情報を更に前記第1アプリケーションから取得し、
前記割り込み出力部は、前記第2時刻と、前記出力タイミングとの関係が、前記タイミング情報により表された関係となるように、前記割り込み信号を前記第2アプリケーションに出力する、請求項1又は2記載の通信システム。
【請求項4】
前記第2通信装置は、
前記第2時刻を表す時刻情報を前記第2アプリケーションに送信する時刻送信部
を更に有する、請求項1~3のいずれか一項記載の通信システム。
【請求項5】
前記第2通信装置は、
前記第2通信装置と前記第2アプリケーションとの間の通信遅延時間に基づいて、前記第2時刻に同期した第2アプリケーション時刻を前記第2アプリケーションに生成する時刻同期部
を更に有する、請求項1~4のいずれか一項記載の通信システム。
【請求項6】
前記第2通信装置は、前記無線通信により前記第1通信装置から取得した通信パケットを通信線により前記第2アプリケーションに送信し、
前記割り込み出力部は、前記通信線とは別に設けられた割り込み線により前記割り込み信号を前記第2アプリケーションに出力する、請求項1~5のいずれか一項記載の通信システム。
【請求項7】
前記第2通信装置は、前記無線通信により前記第1通信装置から取得した通信パケットを通信線により前記第2アプリケーションに送信し、
前記割り込み出力部は、前記割り込み信号を含む割り込みパケットを前記通信線により前記第2アプリケーションに送信する、請求項1~6のいずれか一項記載の通信システム。
【請求項8】
前記割り込み出力部は、前記通信パケットよりも前記割り込みパケットを優先して前記第2アプリケーションに送信する、請求項7記載の通信システム。
【請求項9】
通信基準時刻を生成する基準時刻生成部
を更に有し、
前記第1通信装置及び前記第2通信装置は、前記通信基準時刻に基づいて前記無線通信を行う、請求項1~8のいずれか一項記載の通信システム。
【請求項10】
前記第1通信装置及び前記第2通信装置は移動体通信を行い、
前記第1通信装置は、前記移動体通信の基地局であり、
前記第2通信装置は、前記移動体通信の移動局である、請求項9記載の通信システム。
【請求項11】
前記第1通信装置及び前記第2通信装置は、前記通信基準時刻に基づいて、前記第1通信装置とは別のパブリック基地局が行うパブリック移動体通信に同期したローカル移動体通信を行う、請求項10記載の通信システム。
【請求項12】
前記第1アプリケーションとして前記第1通信装置と前記第1有線通信を行うコントローラと、
前記第2アプリケーションとして前記第2通信装置と前記第2有線通信を行い、前記無線通信により前記コントローラから送信された指令データに基づきローカル機器を制御するローカルコントローラと、
を更に備え、
前記ローカルコントローラは、前記割り込み信号に基づくタイミングで前記ローカル機器を制御する、請求項1~3のいずれか一項記載の通信システム。
【請求項13】
前記第2通信装置は、
前記第2時刻を表す時刻情報を前記第2アプリケーションに送信する時刻送信部
を更に有し、
前記ローカルコントローラは、前記時刻情報と、前記割り込み信号とに基づいて、前記第2時刻に同期するローカル時刻を生成し、前記ローカル時刻に基づくタイミングで前記ローカル機器を制御する、請求項12記載の通信システム。
【請求項14】
第1アプリケーションと第1有線通信を行う相手方装置との間で無線通信を行い、前記無線通信により前記相手方装置から取得した情報を第2有線通信により第2アプリケーションに送信する装置であって、
前記相手方装置が前記第1アプリケーションから取得した第1時刻に同期する第2時刻を生成する第2時刻生成部と、
前記第2時刻に同期する割り込み信号を前記第2アプリケーションに周期的に出力する割り込み出力部と、を有する、通信装置。
【請求項15】
第1アプリケーションと第1有線通信を行う相手方装置との間で無線通信を行うことと、
前記無線通信により前記相手方装置から取得した情報を第2有線通信により第2アプリケーションに送信することと、
前記相手方装置が前記第1アプリケーションから取得した第1時刻に同期する第2時刻を生成することと、
前記第2時刻に同期する割り込み信号を前記第2アプリケーションに周期的に出力することと、を含む通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信システム、通信装置、及び通信方法に関する。
【背景技術】
【0002】
特許文献1には、1以上のマシンと、1以上のマシンをそれぞれ制御する1以上のコントローラと、1以上のコントローラと有線通信ネットワークを介して通信し、1以上のマシンと無線通信ネットワークを介して通信する通信サーバと、を備えるマシン制御システムが開示されている。1以上のコントローラのそれぞれは、コントロールサイクルでモーションプログラムを実行し、対応するマシンに対するマシン指令を生成するモーションモジュールと、マシン指令に第1サイクル情報を付加する付加部と、マシン指令を通信サーバに送信する同期通信部と、を有する。1以上のマシンのそれぞれは、通信サーバからマシン指令を受信する端末通信部と、端末通信部が受信したマシン指令を記憶し、マシン指令に付加された第1サイクル情報に対応するコントロールサイクルにおいて、マシン指令を呼び出すマシン側タイミング調節部と、を有する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、互いに通信するアプリケーション同士を容易に同期させるのに有効なシステムを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係る通信システムは、第1アプリケーションと第2アプリケーションとの間における無線通信を行うシステムであって、第1アプリケーションと第1有線通信を行う第1通信装置と、第2アプリケーションと第2有線通信を行い、第1通信装置と無線通信を行う第2通信装置と、を備え、第1通信装置は、第1アプリケーションから第1時刻を取得する第1時刻取得部を有し、第2通信装置は、第1時刻に同期する第2時刻を生成する第2時刻生成部と、第2時刻に同期する割り込み信号を第2アプリケーションに周期的に出力する割り込み出力部と、を有する。
【0006】
本開示の他の側面に係る通信装置は、第1アプリケーションと第1有線通信を行う相手方装置との間で無線通信を行い、無線通信により相手方装置から取得した情報を第2有線通信により第2アプリケーションに送信する装置であって、相手方装置が第1アプリケーションから取得した第1時刻に同期する第2時刻を生成する第2時刻生成部と、第2時刻に同期する割り込み信号を第2アプリケーションに周期的に出力する割り込み出力部と、を有する。
【0007】
本開示の更に他の側面に係る通信方法は、第1アプリケーションと第1有線通信を行う相手方装置との間で無線通信を行うことと、無線通信により相手方装置から取得した情報を第2有線通信により第2アプリケーションに送信することと、相手方装置が第1アプリケーションから取得した第1時刻に同期する第2時刻を生成することと、第2時刻に同期する割り込み信号を第2アプリケーションに周期的に出力することと、を含む。
【発明の効果】
【0008】
本開示によれば、互いに通信するアプリケーション同士を容易に同期させるのに有効なシステムを提供する。
【図面の簡単な説明】
【0009】
【
図3】コントローラ及びローカルコントローラの機能的な構成を例示するブロック図である。
【
図4】第1通信装置及び第2通信装置の機能的な構成を例示するブロック図である。
【
図5】第2通信装置の変形例を示すブロック図である。
【
図6】コントローラ及び第1通信装置のハードウェア構成を例示するブロック図である。
【
図7】第2通信装置及びローカルコントローラのハードウェア構成を例示するブロック図である。
【
図8】通信基準時刻の同期手順を例示するフローチャートである。
【
図9】第2時刻の同期手順を例示するフローチャートである。
【
図10】割り込み出力手順を例示するフローチャートである。
【
図11】ローカル時刻の同期手順を例示するフローチャートである。
【
図12】ホスト制御手順を例示するフローチャートである。
【
図13】ローカル制御手順を例示するフローチャートである。
【発明を実施するための形態】
【0010】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0011】
〔通信システム〕
図1に示す通信システム1は、1のアプリケーション(第1アプリケーション)と、他のアプリケーション(第2アプリケーション)との間における無線通信を行うシステムである。
【0012】
第1アプリケーションは、第2アプリケーションとの間における情報の送受信を含む第1処理を第1アプリケーション時刻に同期して実行する。ここでの「時刻」は、現在時刻を過去の基準時点からの経過時間で表す数値情報である。以下においても同様である。
【0013】
一例として、第1アプリケーションは、第1アプリケーション時刻が所定の第1処理条件を満たしたタイミングで第1処理を繰り返し実行する。第1処理条件は、第1アプリケーション時刻が所定の第1周期の倍数となることであってもよい。この場合、第1アプリケーションは、第1周期で第1処理を繰り返し実行することとなる。
【0014】
第2アプリケーションは、第1アプリケーションとの間における情報の送受信を含む第2処理を、第1アプリケーション時刻に同期して実行する。一例として、第2アプリケーションは、第1アプリケーション時刻が所定の第2処理条件を満たしたタイミングで第2処理を繰り返し実行する。第2処理条件は、第1アプリケーション時刻が所定の第2周期の倍数となることであってもよい。この場合、第2アプリケーションは、第2周期で第2処理を繰り返し実行することとなる。
【0015】
通信システム1は、第1通信装置200と、第2通信装置400とを備える。第1通信装置200は、 第1アプリケーションと第1有線通信を行う。第2通信装置400は、第2アプリケーションと第2有線通信を行い、第1通信装置と無線通信を行う。
【0016】
第1アプリケーションと、第2アプリケーションと、通信システム1とを備えるシステムの一例として、
図1は、制御システム10を例示している。制御システム10は、コントローラ100と、ローカルコントローラ300と、第1通信装置200と、第2通信装置400とを備える。コントローラ100は、第1アプリケーションとして第1通信装置200と上記第1有線通信を行う。ローカルコントローラ300は、第2アプリケーションとして第2通信装置400と上記第2有線通信を行う。
【0017】
コントローラ100は、マシン30(ローカル機器)に対する指令データセットを生成する。第1通信装置200は、第1有線通信によりコントローラ100から指令データセットを受信し、受信した指令データセットを無線通信により第2通信装置400に送信する。ローカルコントローラ300は、無線通信により第2通信装置400が受信した指令データセットを、第2有線通信により第2通信装置400から受信し、受信した指令データセットに基づいてマシン30を制御する。
【0018】
ローカルコントローラ300は、マシン30の動作結果を表すフィードバックデータセットをマシン30から取得してもよい。第2通信装置400は、第2有線通信によりローカルコントローラ300からフィードバックデータセットを受信し、受信したフィードバックデータセットを無線通信により第1通信装置200に送信してもよい。コントローラ100は、無線通信により第1通信装置200が受信した指令データセットを、第1有線通信により第1通信装置200から受信し、受信したフィードバックデータセットに基づいて次の指令データセットを生成してもよい。
【0019】
制御システム10は、複数のマシン30をそれぞれ動作させる複数のローカルコントローラ300を備えていてもよい。通信システム1は、複数のローカルコントローラ300にそれぞれ対応する複数の第2通信装置400を備えていてもよい。第1通信装置200は、複数の第2通信装置400のそれぞれと無線通信を行う。
【0020】
マシン30は、動作を実現させる機械である。マシン30の種類に特に制限はないが、
図1には2種類のマシン30A,30Bを例示している。マシン30Aは、移動しながらワークに対する作業を行う移動型のロボットである。例えばマシン30Aは、無人搬送車31と、ロボット40とを有する。無人搬送車31は、ローカルコントローラ300により駆動されて移動する。
【0021】
ロボット40は、無人搬送車31の上に設置されている。ロボット40は、ローカルコントローラ300により駆動されて、ワークに対し搬送、加工、組立て等の作業を実行する。
【0022】
ロボット40は、例えば垂直多関節型の産業ロボットである。
図2に示すように、ロボット40は、基部41と、旋回部42と、第1アーム43と、第2アーム44と、手首部45と、先端部46とを有する。基部41は、無人搬送車31の上に設置される。旋回部42は、鉛直な軸線51まわりに回転可能となるように基部41の上に取り付けられている。例えばロボット40は、旋回部42を軸線51まわりに回転可能となるように基部41に取り付ける関節61を有する。第1アーム43は、軸線51に交差(例えば直交)する軸線52まわりに回転可能となるように旋回部42に接続されている。例えばロボット40は、第1アーム43を軸線52まわりに回転可能となるように旋回部42に接続する関節62を有する。交差は、いわゆる立体交差のように、ねじれの関係にあることを含む。以下においても同様である。第1アーム43は、軸線52に交差(例えば直交)する一方向に沿って旋回部42から延びている。
【0023】
第2アーム44は、軸線52に平行な軸線53まわりに回転可能となるように第1アーム43の端部に接続されている。例えばロボット40は、第2アーム44を軸線53まわりに回転可能となるように第1アーム43に接続する関節63を有する。第2アーム44は、軸線53に交差(例えば直交)する一方向に沿って第1アーム43の端部から延びるアーム基部47と、同じ一方向に沿ってアーム基部47の端部から更に延びるアーム端部48とを有する。アーム端部48は、アーム基部47に対して軸線54まわりに回転可能である。軸線54は、軸線53に交差(例えば直交)する。例えばロボット40は、アーム端部48を軸線54まわりに回転可能となるようにアーム基部47に接続する関節64を有する。
【0024】
手首部45は、軸線54に交差(例えば直交)する軸線55まわりに回転可能となるようにアーム端部48の端部に接続されている。例えばロボット40は、手首部45を軸線55まわりに回転可能となるようにアーム端部48に接続する関節65を有する。手首部45は、軸線55に交差(例えば直行)する一方向に沿ってアーム端部48の端部から延びている。先端部46は、軸線55に交差(例えば直交)する軸線56まわりに回転可能となるように、手首部45の端部に接続されている。例えばロボット40は、先端部46を軸線56まわりに回転可能となるように手首部45に接続する関節66を有する。先端部46にはエンドエフェクタが設けられる。エンドエフェクタの具体例としては、ワークを把持するハンド、ワークに対し加工、組み立て棟を行う作業ツール等が挙げられる。
【0025】
アクチュエータ71,72,73,74,75,76は、関節61,62,63,64,65,66を駆動する。アクチュエータ71,72,73,74,75,76のそれぞれは、例えば電動モータと、電動モータの動力を関節61,62,63,64,65,66に伝える伝達部(例えば減速機)とを有する。例えばアクチュエータ71は、軸線51まわりに旋回部42を回転させるように関節61を駆動する。アクチュエータ72は、軸線52まわりに第1アーム43を回転させるように関節62を駆動する。アクチュエータ73は、軸線53まわりに第2アーム44を回転させるように関節63を駆動する。アクチュエータ74は、軸線54まわりにアーム端部48を回転させるように関節64を駆動する。アクチュエータ75は、軸線55まわりに手首部45を回転させるように関節65を駆動する。アクチュエータ76は、軸線56まわりに先端部46を回転させるように関節66を駆動する。
【0026】
図1に戻り、マシン30Bは、ワーク等の搬送対象物を搬送する無人搬送車である。マシン30Bは、無人搬送車33と、荷置台34とを有する。無人搬送車33は、ローカルコントローラ300により駆動されて移動する。荷置台34は、無人搬送車33上に設けられ、搬送対象物を支持する。
【0027】
以上の構成において、コントローラ100は、ホスト時刻(第1アプリケーション時刻)に同期して指令データセットの生成を含むホスト処理(第1処理)を行う。例えばコントローラ100は、ホスト時刻が所定のホスト制御周期(第1周期)の倍数となる度に、フィードバックデータセットに基づき指令データセットを生成し、生成した指令データセットを第1通信装置200に送信する。
【0028】
ローカルコントローラ300は、ホスト時刻に同期して、指令データセットに基づきマシン30を制御することを含むローカル処理(第2処理)を行う。例えばローカルコントローラ300は、ホスト時刻が所定のローカル制御周期(第2周期)の倍数となる度に、指令データセットに基づきマシン30を制御し、マシン30からフィードバックデータセットを取得し、取得したフィードバックデータセットを第2通信装置400に送信する。ローカル制御周期は、ホスト制御周期と同じであってもよい。
【0029】
ローカルコントローラ300は、ホスト時刻に同期したローカル時刻を生成し、ローカル時刻に同期してローカル処理を行ってもよい。例えばローカルコントローラ300は、ローカル時刻がローカル制御周期の倍数となる度に、指令データセットに基づきマシン30を制御し、マシン30からフィードバックデータセットを取得してもよい。
【0030】
コントローラ100は、指令データセットの読み出しタイミング(以下、「指令タイミング」という。)を定める指令タイミング情報を指令データセットに付加して第1通信装置200に送信してもよい。ローカルコントローラ300は、指令データセットを第2通信装置400から受信して保持し、ローカル時刻と指令タイミング情報とに基づいて、指令タイミングに指令データセットを読み出す。ローカルコントローラ300は、指令タイミングに読み出した指令データセットに基づいてマシン30を制御する。
【0031】
指令タイミング情報は、指令タイミングを間接的に指定する情報であってもよい。例えば指令タイミング情報は、コントローラ100が第1通信装置200に指令データセットを送信するタイミング以前の指令基準タイミングを表す情報であってもよい。指令基準タイミングから指令タイミングまでの遅延時間が予め定められていれば、指令基準タイミングによって、指令タイミングが間接的に定められることとなる。指令基準タイミングの具体例としては、コントローラ100が指令データセットを生成したタイミング等が挙げられる。
【0032】
ローカルコントローラ300は、フィードバックデータセットの読み出しタイミング(以下、「フィードバックタイミング」という。)を定めるフィードバックタイミング情報をフィードバックデータセットに付加して第2通信装置400に送信してもよい。コントローラ100は、フィードバックデータセットを第1通信装置200から受信して保持し、ホスト時刻とフィードバックタイミング情報とに基づいて、フィードバックタイミングにフィードバックデータセットを読み出す。ローカルコントローラ300は、フィードバックタイミングに読み出したフィードバックデータセットに基づいて指令データセットを生成する。
【0033】
フィードバックタイミング情報は、フィードバックタイミングを間接的に指定する情報であってもよい。例えばフィードバックタイミング情報は、ローカルコントローラ300が第2通信装置400にフィードバックデータセットを送信するタイミング以前のフィードバック基準タイミングを表す情報であってもよい。フィードバック基準タイミングからフィードバックタイミングまでの遅延時間が予め定められていれば、フィードバック基準タイミングによって、フィードバックタイミングが間接的に定められることとなる。フィードバック基準タイミングの具体例としては、ローカルコントローラ300がフィードバックデータセットを取得したタイミング等が挙げられる。
【0034】
図3は、コントローラ100及びローカルコントローラ300の機能的な構成を例示するブロック図である。
図3に示すように、コントローラ100は、機能上の構成要素(以下、「機能ブロック」という。)として、ホスト時刻生成部111と、受信データ取得部112と、待機バッファ113と、読み出し部114と、制御演算部115とを含む。
【0035】
ホスト時刻生成部111は、ホスト時刻を生成する。例えばホスト時刻生成部111は、クロックパルスをカウントし、カウント結果とクロックパルスの周期とに基づいてホスト時刻を生成する。受信データ取得部112は、第1通信装置200からフィードバックデータセットを取得し、待機バッファ113に記憶させる。受信データ取得部112は、フィードバックデータセットを待機バッファ113に記憶させる際に、フィードバックタイミング情報を、現在時刻からフィードバックタイミングまでのホスト制御周期のサイクル数に変換してもよい。
【0036】
読み出し部114は、ホスト時刻とフィードバックタイミング情報とに基づいて、フィードバックタイミングに待機バッファ113からフィードバックデータセットを読み出す。例えば、フィードバックタイミング情報が、ホスト制御周期のサイクル数に変換されている場合、読み出し部114は、ホスト時刻がホスト制御周期の倍数となる度に、フィードバックタイミング情報をカウントダウンする。これにより、フィードバックタイミング情報がゼロとなった場合に、読み出し部114はフィードバックデータセットを待機バッファ113から読み出す。
【0037】
ローカルコントローラ300によるフィードバックデータセットの送信から、コントローラ100によるフィードバックデータセットの受信までの遅延時間にはばらつきが生じ得る。遅延時間にばらつきが生じる場合であっても、受信したフィードバックデータセットの読み出しは、フィードバックタイミング情報により定められたタイミングで行われる。従って、上記遅延時間のばらつきの影響を受けることなく、ホスト時刻に同期してフィードバックデータセットの読み出しを実行することができる。
【0038】
制御演算部115は、読み出し部114が読み出したフィードバックデータセットに基づいて指令データセットを生成することを行う。例えば制御演算部115は、目標動作と、フィードバックデータセットが表すマシン30の動作との偏差に比例演算、比例・積分演算、又は比例・積分・微分演算を行って目標出力(例えば目標トルク又は目標電流)を表す指令データセットを算出する。
【0039】
制御演算部115は、指令データセットの生成をホスト時刻に同期して行う。例えば制御演算部115は、ホスト時刻がホスト制御周期の倍数となる度に、読み出し部114が読み出したフィードバックデータセットに基づいて指令データセットを生成する。
【0040】
制御演算部115は、生成した指令データセットに上記指令タイミング情報を付加する。制御演算部115は、指令タイミング情報を付加した指令データセットを第1通信装置200に送信する。
【0041】
制御システム10が複数のローカルコントローラ300を有する場合、コントローラ100は、複数のローカルコントローラ300にそれぞれ対応する複数のコントロールモジュール110を有してもよい。複数のコントロールモジュール110のそれぞれは、ホスト時刻生成部111と、受信データ取得部112と、待機バッファ113と、読み出し部114と、制御演算部115とを有する。コントローラ100は、1のホスト時刻生成部111を複数のコントロールモジュール110で共用するように構成されていてもよい。
【0042】
ローカルコントローラ300は、機能ブロックとして、ローカル時刻生成部311と、受信データ取得部312と、待機バッファ313と、読み出し部314と、制御部315とを含む。
【0043】
ローカル時刻生成部311は、ホスト時刻に同期したローカル時刻を生成する。例えばローカル時刻生成部311は、クロックパルスをカウントし、カウント結果とクロックパルスの周期とに基づいてローカル時刻を生成する。受信データ取得部312は、第2通信装置400から指令データセットを取得し、待機バッファ313に記憶させる。受信データ取得部312は、指令データセットを待機バッファ313に記憶させる際に、指令タイミング情報を、現在時刻から指令タイミングまでのローカル制御周期のサイクル数に変換してもよい。
【0044】
読み出し部314は、ローカル時刻と指令タイミング情報とに基づいて、指令タイミングに待機バッファ313から指令データセットを読み出す。例えば、指令タイミング情報が、ローカル制御周期のサイクル数に変換されている場合、読み出し部314は、ローカル時刻がローカル制御周期の倍数となる度に、指令タイミング情報をカウントダウンする。これにより、指令タイミング情報がゼロとなった場合に、読み出し部314は指令データセットを待機バッファ313から読み出す。
【0045】
コントローラ100による指令データセットの送信から、ローカルコントローラ300によるフィードバックデータセットの受信までの遅延時間にはばらつきが生じ得る。遅延時間にばらつきが生じる場合であっても、受信した指令データセットの読み出しは、指令タイミング情報により定められたタイミングで行われる。従って、上記遅延時間のばらつきの影響を受けることなく、ローカル時刻に同期して指令データセットの読み出しを実行することができる。
【0046】
制御部315は、読み出し部314が読み出した指令データセットに基づいてマシン30を制御する。例えば制御部315は、上記目標出力に対応する出力にてマシン30を制御し、マシン30の動作結果を表すフィードバックデータセットをマシン30から取得する。
【0047】
制御部315は、取得したフィードバックデータセットに上記フィードバックタイミング情報を付加する。制御部315は、フィードバックタイミング情報を付加したフィードバックデータセットを第2通信装置400に送信する。
【0048】
コントローラ100及びローカルコントローラ300は、あくまで第1アプリケーション及び第2アプリケーションの一例に過ぎない。第1アプリケーション及び第2アプリケーションは、通信システム1を介して通信し、共通の時刻に同期してそれぞれの処理を行うものであればいかなるものであってもよい。
【0049】
共通の時刻に同期した処理を第1アプリケーション及び第2アプリケーションの それぞれに実行させるためには、通信システム1により、第1アプリケーションから第2アプリケーションに第1アプリケーション時刻の情報を提供する必要がある。しかしながら、第1アプリケーションが第1アプリケーション時刻の情報を送信する時刻から、第2アプリケーションが第1アプリケーション時刻の情報を受信するまでの遅延があるため、単に第1アプリケーション時刻の情報を送受信するのみでは、第1アプリケーション及び第2アプリケーションを共通の時刻に同期させることはできない。
【0050】
そこで、第1アプリケーションと第1通信装置200との間、第1通信装置200と第2通信装置400との間、及び第2通信装置400と第2アプリケーションとの間のそれぞれにおいて、時刻の同期性を保証する通信(遅延時間を補償する通信)を行う必要がある。時刻の同期性を保証する通信の具体例としては、TSN(Time Sensitive Networking)通信等が挙げられる。
【0051】
しかしながら、例えば第2アプリケーションが、時刻の同期性を保証する通信を行う機能を有しない場合がある。そこで、第1通信装置200は、第1アプリケーション(例えばコントローラ100)から第1時刻を取得するように構成される。第2通信装置400は、第1時刻に同期する第2時刻を生成することと、第2時刻に同期する割り込み信号を第2アプリケーション(例えばローカルコントローラ300)に周期的に出力することと、を実行するように構成される。
【0052】
このような通信システム1によれば、第2通信装置400との間で時刻の同期性を保証する通信を行う機能を有しない第2アプリケーションにおいても、割り込み信号に基づいて、第1アプリケーションから取得された第1時刻に同期した処理を行うことが可能となる。従って、互いに通信するアプリケーション同士を容易に同期させるのに有効である。
【0053】
以下、
図4を参照して、第1通信装置200及び第2通信装置400の構成を詳細に例示する。第1通信装置200及び第2通信装置400は、無線通信の一例として移動体通信を行う。第1通信装置200は移動体通信の基地局であり、第2通信装置400は移動体通信の移動局である。第1通信装置200は、通信線201(後述)によりコントローラ100から受信した通信パケットを無線通信により第2通信装置400に送信し、無線通信により第2通信装置400から受信した通信パケットを通信線201によりコントローラ100に送信する。第2通信装置400は、無線通信により第1通信装置200から受信した通信パケットを通信線401によりローカルコントローラ300に送信し、通信線401によりローカルコントローラ300から受信した通信パケットを無線通信により第1通信装置200に送信する。
【0054】
第1通信装置200及び第2通信装置400は、共通の通信基準時刻に基づいて無線通信を行ってもよい。例えば第1通信装置200及び第2通信装置400は、通信基準時刻に基づいて、第5世代移動通信システムによる通信(5G通信)を行う。
【0055】
第1通信装置200及び第2通信装置400は、通信基準時刻に基づいて、第1通信装置200とは別のパブリック基地局が行うパブリック移動体通信に同期したローカル移動体通信を行ってもよい。パブリック基地局が行うパブリック移動体通信の例としては、通信事業者の基地局がスマートホン等のモバイル通信端末との間で行う移動体通信が挙げられる。
【0056】
一例として、第1通信装置200及び第2通信装置400は、パブリック基地局が行うパブリック5G通信と同期したローカル5G通信を行う。例えば第1通信装置200及び第2通信装置400は、パブリック5G通信の時分割複信パターンと同期した時分割複信パターンにてローカル5G通信を行う。
【0057】
図4に示すように、第1通信装置200は、機能ブロックとして、基準時刻生成部211と、送信バッファ212と、無線通信部213と、受信バッファ214と、第1時刻取得部215と、タイミング情報出力部216とを有する。基準時刻生成部211は、基地局時刻(通信基準時刻)を生成する。例えば基準時刻生成部211は、TSN通信等により時刻サーバ101からグローバル時刻を取得し、グローバル時刻に同期した基地局時刻を生成する。グローバル時刻は、上記パブリック移動体通信が同期する時刻である。例えばグローバル時刻は、上記パブリック5G通信の時分割複信パターンが同期する時刻である。基準時刻生成部211がグローバル時刻に同期した基地局時刻を生成することによって、パブリック5G通信と同期したローカル5G通信を行うことが可能となる。
【0058】
送信バッファ212は、コントローラ100の制御演算部115から送信された指令データセットを一時的に格納する。無線通信部213は、送信バッファ212から指令データセットを読み出し、読み出した指令データセットを無線通信により第2通信装置400に送信する。また、無線通信部213は、無線通信により第2通信装置400からフィードバックデータセットを受信する。無線通信部213は、無線通信による指令データセットの送信及びフィードバックデータセットの受信を、基準時刻生成部211が生成する基地局時刻に同期して行う。受信バッファ214は、無線通信部213が受信したフィードバックデータセットを一時的に格納する。コントローラ100の受信データ取得部112は、フィードバックデータセットを受信バッファ214から取得する。
【0059】
第1時刻取得部215は、第1アプリケーションから第1時刻を取得する。例えば第1時刻取得部215は、TSN通信等により、上記ホスト時刻に同期した第1時刻をホスト時刻生成部111から取得する。タイミング情報出力部216は、第1時刻取得部215が取得した第1時刻と、基準時刻生成部211が生成する基地局時刻との時差を算出し、算出した時差を表す時差情報を無線通信部213により第2通信装置400に送信させる。
【0060】
第1時刻取得部215は、第1時刻と、割り込み信号の出力タイミングとの関係を表す割り込みタイミング情報を更に第1アプリケーションから取得してもよい。例えば第1時刻取得部215は、割り込みタイミング情報をホスト時刻生成部111から取得する。割り込みタイミング情報は、割り込み信号の出力開始タイミングと、割り込み信号の出力周期とを含んでいてもよい。タイミング情報出力部216は、第1時刻取得部215が取得した割り込みタイミング情報を、無線通信部213により第2通信装置400に送信させる。
【0061】
第2通信装置400は、機能ブロックとして、基準時刻生成部411と、送信バッファ412と、無線通信部413と、受信バッファ414と、タイミング情報取得部415と、第2時刻生成部416と、割り込み出力部417とを有する。基準時刻生成部411は、基地局時刻と同期した移動局時刻を生成する。
【0062】
送信バッファ412は、ローカルコントローラ300の制御部315から送信されたフィードバックデータセットを一時的に格納する。無線通信部413は、送信バッファ412からフィードバックデータセットを読み出し、読み出したフィードバックデータセットを無線通信により第1通信装置200の無線通信部213に送信する。また、無線通信部413は、無線通信により無線通信部213から指令データセットを受信する。無線通信部413は、無線通信によるフィードバックデータセットの送信及び指令データセットの受信を、基準時刻生成部411が生成する移動局時刻に同期して行う。受信バッファ414は、無線通信部413が受信した指令データセットを一時的に格納する。ローカルコントローラ300の受信データ取得部312は、指令データセットを受信バッファ414から取得する。
【0063】
上述の基準時刻生成部411は、無線通信部213と、無線通信部413とによる無線通信を介したTSN通信等により、基準時刻生成部211から基地局時刻を取得し、基地局時刻に同期した移動局時刻を生成る。
【0064】
タイミング情報取得部415は、無線通信部413が無線通信部213から受信した上記時差情報及び割り込みタイミング情報を取得する。第2時刻生成部416は、第1時刻に同期する第2時刻を生成する。例えば第2時刻生成部416は、タイミング情報取得部415が取得した時差情報と、基準時刻生成部411が生成する移動局時刻とに基づいて、第2時刻を生成する。例えば第2時刻生成部416は、時差情報が表す時差によって、移動局時刻をシフトさせることで第2時刻を生成する。
【0065】
割り込み出力部417は、第2時刻に同期する割り込み信号をローカルコントローラ300に周期的に出力する。割り込み出力部417は、第2時刻と、出力タイミングとの関係が、上記割り込みタイミング情報により表された関係となるように、割り込み信号を第2アプリケーションに出力してもよい。上述のとおり、割り込みタイミング情報は、出力開始タイミングと、出力周期とを含んでいてもよい。この場合、割り込み出力部417は、第2時刻に基づいて、出力開始タイミングからの経過時間が出力周期の倍数となる度に割り込み信号をローカルコントローラ300に出力してもよい。
【0066】
ローカルコントローラ300は、割り込み信号に基づくタイミングでマシン30を制御してもよい。上述のとおり、割り込み信号は、第2時刻に同期して出力される。第2時刻は第1時刻に同期するように生成されている。このため、第2通信装置400との間で時刻の同期性を保証する通信を行う機能を有しないローカルコントローラ300においても、割り込み信号に基づくタイミングでマシン30を制御することにより、コントローラ100から取得された第1時刻に同期してマシン30を制御することが可能となる。
【0067】
割り込み出力部417は、通信線401(後述)とは別に設けられた割り込み線402(後述)により、割り込み信号をローカルコントローラ300に出力してもよい。割り込み出力部417は、割り込み信号を含む割り込みパケットを通信線401によりローカルコントローラ300に送信してもよい。
【0068】
割り込み出力部417は、通信線401を介して受信バッファ414からローカルコントローラ300に送信される通信パケットよりも、割り込みパケットを優先してローカルコントローラ300に送信してもよい。例えば割り込み出力部417は、割り込み信号の出力タイミングにおいて、受信バッファ414からローカルコントローラ300への通信パケットの送信を中断し、割り込みパケットをローカルコントローラ300に送信してもよい。
【0069】
割り込み出力部417は、割り込み線402により割り込み信号を出力する専用出力モードと、通信線401により割り込みパケットを送信するパケット出力モードとの両方を実行するように構成されていてもよい。
図5に示すように、第2通信装置400は、出力モード選択部421を更に有してもよい。出力モード選択部421は、割り込み線402により割り込み信号を出力する専用出力モードと、通信線401により割り込みパケットを送信するパケット出力モードとのいずれかを、ユーザインタフェース396(後述)へのユーザ入力等に基づいて選択する。
【0070】
出力モード選択部421が専用出力モードを選択した場合、割り込み出力部417は、割り込みパケットの送信を行わずに、割り込み線402により割り込み信号をローカルコントローラ300に出力する。出力モード選択部421がパケット出力モードを選択した場合、割り込み出力部417は、割り込み線402による割り込み信号の出力を行わずに、通信線401により割り込みパケットをローカルコントローラ300に送信する。
【0071】
第2通信装置400は、時刻送信部424を更に有してもよい。時刻送信部424は、第2時刻を表す時刻情報をローカルコントローラ300に送信する。この場合、ローカルコントローラ300は、時刻情報と、割り込み信号とに基づいて、第2時刻に同期するローカル時刻を生成し、ローカル時刻に基づくタイミングでマシン30を制御してもよい。
【0072】
一例として、時刻送信部424は、割り込み出力部417が割り込み信号を出力するタイミングにおける第2時刻を表す時刻情報を、通信線401によりローカル時刻生成部311に送信する。ローカル時刻生成部311は、割り込み信号の出力を検出した時点において、時刻情報が表す第2時刻に一致する時刻となるようにローカル時刻を生成(補正)する。ローカル時刻を第2時刻に同期させる構成によれば、割り込み信号の出力サイクルよりも短い制御サイクルにて、第2時刻に同期してマシン30を制御することができる。
【0073】
第2通信装置400は、第2時刻の第1時刻に対する同期状態を表す同期ステータス情報をローカルコントローラ300に出力するように構成されていてもよい。例えば第2通信装置400は、ステータス確認部422と、ステータス出力部423とを更に有してもよい。ステータス確認部422は、第2時刻の第1時刻に対する同期状態を確認する。例えば、ステータス確認部422は、第2時刻生成部416による第2時刻の生成が成功したか否かに基づいて、第2時刻が第1時刻に同期しているか否かを確認する。
【0074】
例えばステータス確認部422は、第2時刻生成部416による第2時刻の生成が成功している場合に、同期状態の確認結果を「同期」とし、第2時刻生成部416による第2時刻の生成が成功している場合に、同期状態の確認結果を「非同期」とする。第2時刻生成部416による第2時刻の生成が失敗する場合の例としては、無線通信におけるパケットロス等により、タイミング情報取得部415が上記時差情報を取得できない場合等が挙げられる。
【0075】
同期状態は、同期の精度を表す同期レベルであってもよい。例えばステータス確認部422は、第2時刻生成部416による第2時刻の生成が成功した後の経過時間に基づいて同期レベルを評価してもよい。例えばステータス確認部422は、第2時刻生成部416による第2時刻の生成が成功した直後に同期レベルを最高レベルにし、第2時刻生成部416による第2時刻の生成が次に成功するまでは、時間の経過に応じて同期レベルを徐々に低くしてもよい。
【0076】
ステータス出力部423は、ステータス確認部422により確認された同期状態を表す同期ステータス情報をローカルコントローラ300に出力する。ステータス出力部423は、通信線401(後述)及び割り込み線402(後述)とは別に設けられたステータス出力線403(後述)により、同期ステータス情報をローカルコントローラ300に出力してもよい。割り込み出力部417が通信線401により割り込みパケットを送信する場合、ステータス出力部423は、割り込みパケットに同期ステータス情報を含めてもよい。これにより、同期ステータス情報が通信線401によりローカルコントローラ300に送信されることとなる。
【0077】
第2通信装置400は、時刻同期部425を更に有してもよい。時刻同期部425は、時刻の同期性を保証する通信を行う機能をローカルコントローラ300が有している場合に、第2通信装置400とローカルコントローラ300との間の通信遅延時間に基づいて、第2時刻に同期したローカル時刻をローカルコントローラ300に生成する。例えば時刻同期部425は、通信遅延時間により第2時刻を補正して補正済み第2時刻を算出し、補正済み第2時刻をローカル時刻生成部311に送信する。ローカル時刻生成部311は、補正済み第2時刻に基づいて、第2時刻に同期したローカル時刻を生成する。
【0078】
〔ハードウェア構成〕
図6は、コントローラ100及び第1通信装置200のハードウェア構成を例示するブロック図である。
図6に示すように、コントローラ100は、回路190を有する。回路190は
、プロセッサ191と、メモリ192と、ストレージ193と、通信ポート194と、ユーザインタフェース195とを有する。
【0079】
ストレージ193は、不揮発性の記憶媒体である。ストレージ193の具体例としては、ハードディスク、フラッシュメモリ等が挙げられる。ストレージ193は、光ディスクなどの可搬型の記憶媒体であってもよい。ストレージ193は、上述した各機能ブロックをコントローラ100に構成させるためのプログラムを記憶する。
【0080】
メモリ192は、例えばランダムアクセスメモリ等の一時記憶媒体であり、ストレージ193からロードされたプログラムを一時的に記憶する。プロセッサ191は、1以上の演算素子により構成され、メモリ192にロードされたプログラムを実行することにより、コントローラ100に上記各機能ブロックを構成させる。通信ポート194は、プロセッサ191からの要求に応じて、第1通信装置200と通信する。
【0081】
ユーザインタフェース195は、ユーザによる入力と、ユーザに対する情報提示とを行う装置であり、例えば入力デバイスと表示デバイスとを含む。入力デバイスの一例としては、キーボード、マウス、キーパッド等が挙げられる。表示デバイスの一例としては、液晶モニタ、又は有機EL(Electro-Luminescence)モニタ等が挙げられる。入力デバイスは、所謂タッチパネルとして表示デバイスと一体化されていてもよい。
【0082】
第1通信装置200は、回路290を有する。回路290は、プロセッサ291と、メモリ292と、ストレージ293と、通信ポート294とを有する。
【0083】
ストレージ293は、不揮発性の記憶媒体である。ストレージ293の具体例としては、ハードディスク、フラッシュメモリ等が挙げられる。ストレージ293は、光ディスクなどの可搬型の記憶媒体であってもよい。ストレージ293は、上述した各機能ブロックを第1通信装置200に構成させるためのプログラムを記憶している。
【0084】
メモリ292は、例えばランダムアクセスメモリ等の一時記憶媒体であり、ストレージ293からロードされたプログラムを一時的に記憶する。プロセッサ291は、1以上の演算素子により構成され、メモリ292にロードされたプログラムを実行することにより、第1通信装置200に上記各機能ブロックを構成させる。通信ポート294は、プロセッサ291からの要求に応じて、通信線201を介して通信ポート194と通信する。アンテナ295は、プロセッサ291からの要求に応じて、第2通信装置400との間で無線通信用の信号の送受信を行う。
【0085】
図7は、ローカルコントローラ300及び第2通信装置400のハードウェア構成を例示するブロック図である。
図7に示すように、ローカルコントローラ300は、回路390を有する。回路390は、プロセッサ391と、メモリ392と、ストレージ393と、通信ポート394と、ドライブ回路395と、ユーザインタフェース396と、入力ポート397と、入力ポート398とを有する。
【0086】
ストレージ393は、不揮発性の記憶媒体である。ストレージ393の具体例としては、ハードディスク、フラッシュメモリ等が挙げられる。ストレージ393は、光ディスクなどの可搬型の記憶媒体であってもよい。ストレージ393は、上述した各機能ブロックをローカルコントローラ300に構成させるためのプログラムを記憶している。
【0087】
メモリ392は、例えばランダムアクセスメモリ等の一時記憶媒体であり、ストレージ393からロードされたプログラムを一時的に記憶する。プロセッサ391は、1以上の演算素子により構成され、メモリ392にロードされたプログラムを実行することにより、ローカルコントローラ300に上記各機能ブロックを構成させる。通信ポート394は、プロセッサ391からの要求に応じて、第2通信装置400と通信する。
【0088】
ドライブ回路395は、プロセッサ391からの要求に応じて、マシン30に駆動電力を出力し、マシン30からフィードバックデータセットを取得する。
【0089】
ユーザインタフェース396は、ユーザによる入力と、ユーザに対する情報提示とを行う装置であり、例えば入力デバイスと表示デバイスとを含む。入力デバイスの一例としては、キーボード、マウス、キーパッド等が挙げられる。表示デバイスの一例としては、液晶モニタ、又は有機EL(Electro-Luminescence)モニタ等が挙げられる。入力デバイスは、所謂タッチパネルとして表示デバイスと一体化されていてもよい。
【0090】
入力ポート397は、第2通信装置400が割り込み線402により出力する割り込み信号を取得し、割り込み信号の取得をプロセッサ391に通知する。入力ポート398は、第2通信装置400がステータス出力線403により出力するステータス情報を取得し、取得したステータス情報をプロセッサ391に通知する。
【0091】
第2通信装置400は、回路490を有する。回路490は、プロセッサ491と、メモリ492と、ストレージ493と、通信ポート494と、、アンテナ495と、出力ポート496と、出力ポート497とを有する。
【0092】
ストレージ493は、不揮発性の記憶媒体である。ストレージ493の具体例としては、ハードディスク、フラッシュメモリ等が挙げられる。ストレージ493は、光ディスクなどの可搬型の記憶媒体であってもよい。ストレージ493は、上述した各機能ブロックを第2通信装置400に構成させるためのプログラムを記憶している。
【0093】
メモリ492は、例えばランダムアクセスメモリ等の一時記憶媒体であり、ストレージ493からロードされたプログラムを一時的に記憶する。プロセッサ491は、1以上の演算素子により構成され、メモリ492にロードされたプログラムを実行することにより、第2通信装置400に上記各機能ブロックを構成させる。通信ポート494は、プロセッサ491からの要求に応じて、通信ポート394と通信する。アンテナ495は、プロセッサ491からの要求に応じて、無線通信用の信号の送受信を行う。
【0094】
出力ポート496は、プロセッサ491からの要求に応じて、通信線401とは別の割り込み線402により割り込み信号をローカルコントローラ300に出力する。出力ポート497は、プロセッサ491からの要求に応じて、通信線401及び割り込み線402とは別のステータス出力線403によりステータス情報をローカルコントローラ300に出力する。以上に示したハードウェア構成はあくまで一例であり、適宜変更可能である。
【0095】
〔通信手順〕
通信方法の一例として、通信システム1が実行する通信手順を詳細に例示する。この手順は、第1通信装置200との間で無線通信を行うことと、 無線通信により第1通信装置200から取得した情報を第2有線通信によりローカルコントローラ300に送信することと、 第1通信装置200がコントローラ100から取得した第1時刻に同期する第2時刻を生成することと、第2時刻に同期する割り込み信号をローカルコントローラ300に周期的に出力することと、を含む。以下、この手順を、通信基準時刻の補正手順と、第2時刻の同期手順と、割り込み出力手順とに分けて詳細に例示する。
【0096】
(通信基準時刻の同期手順)
図8に示すように、通信システム1は、ステップS01,S02,S03,S04,S05を実行する。ステップS01では、基準時刻生成部211が、基地局時刻に基づいて、時刻補正タイミングを待機する。例えば基準時刻生成部211は、基地局時刻が、所定の時刻補正周期の倍数となるのを待機する。
【0097】
ステップS02では、基準時刻生成部211が、TSN通信等により、時刻サーバ101からグローバル時刻を取得する。ステップS03では、基準時刻生成部211が、取得したグローバル時刻に同期するように基地局時刻を補正する。ステップS04では、基準時刻生成部411が、TSN通信等により、基準時刻生成部211から基地局時刻を取得する。ステップS05では、基準時刻生成部411が、取得した基地局時刻に同期するように移動局時刻を補正する。その後、通信システム1は処理をステップS01に戻す。通信システム1は、以上の手順を繰り返し実行する。
【0098】
(第2時刻の同期手順)
図9に示すように、通信システム1は、ステップS11,S12,S13,S14,S15,S16を実行する。ステップS11では、基準時刻生成部211が、基地局時刻に基づいて、時刻同期タイミングを待機する。例えば基準時刻生成部211は、基地局時刻が、所定の時刻同期周期の倍数となるのを待機する。
【0099】
ステップS12では、第1時刻取得部215が、TSN通信などにより、上記ホスト時刻に同期した第1時刻をホスト時刻生成部111から取得する。また、第1時刻取得部215は、第1時刻と、割り込み信号の出力タイミングとの関係を表す上記割り込みタイミング情報を更に第1アプリケーションから取得する。
【0100】
ステップS13では、第1時刻取得部215が取得した第1時刻と、基準時刻生成部211が生成する基地局時刻との時差をタイミング情報出力部216が算出する。ステップS14では、タイミング情報出力部216が、算出した時差を表す時差情報と、上記割り込みタイミング情報とを、無線通信部213により無線通信部413に送信させる。
【0101】
ステップS15では、無線通信部413が無線通信部213から受信した上記時差情報及び割り込みタイミング情報をタイミング情報取得部415が取得する。ステップS16では、タイミング情報取得部415が取得した時差情報と、基準時刻生成部411が生成する移動局時刻とに基づいて、第2時刻生成部416が第2時刻を第1時刻に同期させる。通信システム1は、以上の手順を繰り返し実行する。
【0102】
(割り込み出力手順)
図10に示すように、通信システム1は、ステップS21,S22,S23,S24を実行する。ステップS21では、割り込み出力部417が、第2時刻と、上記割り込みタイミング情報とに基づいて、割り込み信号の出力タイミングを待機する。例えば割り込み出力部417は、第2時刻に基づいて、出力開始タイミングからの経過時間が出力周期の倍数となるタイミングを待機する。
【0103】
ステップS22では、ステータス確認部422が、第2時刻の第1時刻に対する同期状態を確認する。ステップS23では、割り込み出力部417が、割り込み信号をローカルコントローラ300に出力し、ステータス出力部423がステータス情報をローカルコントローラ300に出力する。ステップS24では、時刻送信部424が、第2時刻を表す時刻情報をローカルコントローラ300に送信する。例えば時刻送信部424は、割り込み出力部417が割り込み信号を出力するタイミングにおける第2時刻を表す時刻情報をローカルコントローラ300に送信する。その後、通信システム1は処理をステップS21に戻す。通信システム1は以上の手順を繰り返し実行する。
【0104】
以上においては、割り込み信号を出力するタイミングにおける第2時刻を表す時刻情報を、割り込み信号の出力後に送信する手順を例示したが、これに限られない。割り込み信号を出力する予定タイミングにおける第2時刻を表す時刻情報を、割り込み信号の出力前に送信してもよい。
【0105】
〔制御手順〕
制御方法の一例として、通信システム1による通信手順を含む制御手順を詳細に例示する。以下、この制御手順を、ローカルコントローラ300が行うローカル時刻の同期手順と、コントローラ100が行うホスト制御手順と、ローカルコントローラ300が行うローカル制御手順とに分けて詳細に例示する。
【0106】
(ローカル時刻の同期手順)
図11に示すように、ローカルコントローラ300は、ステップS31を実行する。ステップS31では、割り込み出力部417により割り込み信号が出力されたか否かをローカル時刻生成部311が確認する。ステップS31において、割り込み信号は出力されていないと判定した場合、ローカルコントローラ300はステップS32を実行する。ステップS32では、時刻送信部424から送信された時刻情報を受信したか否かをローカル時刻生成部311が確認する。ステップS32において、時刻情報を受信していないと判定した場合、ローカルコントローラ300は処理をステップS31に戻す。
【0107】
ステップS31において、割り込み信号が出力されたと判定した場合、ローカルコントローラ300はステップS33を実行する。ステップS33では、ローカル時刻生成部311が、割り込み信号に基づいてローカル時刻を補正する。例えばローカル時刻生成部311は、ローカル時刻において、割り込み信号の出力が予定される時点を、実際に割り込み信号の出力を検出した時点に合わせるようにローカル時刻を補正する。
【0108】
ステップS32において、時刻情報を受信したと判定した場合、ローカルコントローラ300はステップS34を実行する。ステップS34では、ローカル時刻において、割り込み信号の出力が予定される時点を、時刻情報が表す第2時刻に合わせるように、ローカル時刻を補正する。
【0109】
ステップS33,S34の後、ローカルコントローラ300は処理をステップS31に戻す。ローカルコントローラ300は、以上の手順を繰り返し実行する。なお、ステップS33,S34により、ローカル時刻が第2時刻に同期した後は、ステップS33を繰り返すのみで、第2時刻に対するローカル時刻の同期を維持することが可能である。このため、第2通信装置400が、割り込み信号を出力する度に時刻情報を送信することは必須ではない。
【0110】
(ホスト制御手順)
図12に示すように、コントローラ100は、ステップS41を実行する。ステップS41では、ホスト時刻がホスト制御周期の倍数となっているか否かを読み出し部114が確認する。
【0111】
ステップS41において、ホスト時刻がホスト制御周期の倍数となっていないと判定した場合、コントローラ100はステップS42を実行する。ステップS42では、受信データ取得部112が、受信バッファ214からフィードバックデータセットを取得し、フィードバックタイミング情報を、現在時刻からフィードバックタイミングまでのホスト制御周期のサイクル数に変換する。受信データ取得部112は、サイクル数に変換済みのフィードバックタイミング情報を含むフィードバックデータセットを待機バッファ113に記憶させる。その後、コントローラ100は処理をステップS41に戻す。
【0112】
ステップS41において、ホスト時刻がホスト制御周期の倍数となっていると判定した場合、コントローラ100はステップS43,S44,S45,S46,S47を実行する。ステップS43では、待機バッファ113に格納された全てのフィードバックデータセットにおいて、読み出し部114がフィードバックタイミング情報をカウントダウンする。
【0113】
ステップS44では、読み出し部114が、フィードバックタイミング情報がゼロとなっているフィードバックデータセットを待機バッファ113から読み出す。ステップS45では、読み出し部114が読み出したフィードバックデータセットに基づいて、制御演算部115が指令データセットを生成する。
【0114】
ステップS46では、制御演算部115が、生成した指令データセットに指令タイミング情報を付加する。ステップS47では、制御演算部115が、指令タイミング情報を付加した指令データセットを送信バッファ212に格納する。送信バッファ212に格納された指令データセットは、無線通信部213により無線通信部413に送信される。ステップS47の後、コントローラ100は処理をステップS41に戻す。コントローラ100は以上の手順を繰り返し実行する。
【0115】
(ローカル制御手順)
図13に示すように、ローカルコントローラ300は、ステップS51を実行する。ステップS51では、ローカル時刻がローカル制御周期の倍数となっているか否かを読み出し部314が確認する。
【0116】
ステップS51において、ローカル時刻がローカル制御周期の倍数となっていないと判定した場合、ローカルコントローラ300はステップS52を実行する。ステップS52では、受信データ取得部312が、受信バッファ414から指令データセットを取得し、指令タイミング情報を、現在時刻から指令タイミングまでのローカル制御周期のサイクル数に変換する。受信データ取得部312は、サイクル数に変換済みの指令タイミング情報を含む指令データセットを待機バッファ313に記憶させる。その後、ローカルコントローラ300は処理をステップS51に戻す。
【0117】
ステップS51において、ローカル時刻がローカル制御周期の倍数となっていると判定した場合、ローカルコントローラ300はステップS53,S54,S55,S56,S57を実行する。ステップS53では、待機バッファ313に格納された全ての指令データセットにおいて、読み出し部314が指令タイミング情報をカウントダウンする。
【0118】
ステップS54では、読み出し部314が、指令タイミング情報がゼロとなっている指令データセットを待機バッファ313から読み出す。ステップS55では、読み出し部314が読み出した指令データセットに基づいて、制御部315がマシン30を制御し、上記フィードバックデータセットをマシン30から取得する。
【0119】
ステップS56では、制御部315が、取得したフィードバックデータセットにフィードバックタイミング情報を付加する。ステップS57では、制御部315が、フィードバックタイミング情報を付加したフィードバックデータセットを送信バッファ412に格納する。送信バッファ412に格納されたフィードバックデータセットは、無線通信部413により無線通信部213に送信される。ステップS57の後、ローカルコントローラ300は処理をステップS51に戻す。ローカルコントローラ300は以上の手順を繰り返し実行する。
【0120】
〔まとめ〕
以上に説明したように、通信システム1は、第1アプリケーションと第2アプリケーションとの間における無線通信を行うシステムであって、第1アプリケーションと第1有線通信を行う第1通信装置200と、第2アプリケーションと第2有線通信を行い、第1通信装置200と無線通信を行う第2通信装置400と、を備え、第1通信装置200は、第1アプリケーションから第1時刻を取得する第1時刻取得部215を有し、第2通信装置400は、第1時刻に同期する第2時刻を生成する第2時刻生成部416と、第2時刻に同期する割り込み信号を第2アプリケーションに周期的に出力する割り込み出力部417と、を有する。
【0121】
この通信システム1によれば、第2通信装置400との間で時刻の同期性を保証する通信を行う機能を有しない第2アプリケーションにおいても、割り込み信号に基づいて、第1アプリケーションから取得される第1時刻に同期した処理を行うことが可能となる。従って、互いに通信するアプリケーション同士を容易に同期させるのに有効である。
【0122】
第2通信装置400は、第2時刻の第1時刻に対する同期状態を表す同期ステータス情報を第2アプリケーションに出力するステータス出力部423を更に有してもよい。同期ステータス情報に基づくことで、アプリケーション同士の同期の信頼性を向上させることができる。
【0123】
第1時刻取得部215は、第1時刻と、割り込み信号の出力タイミングとの関係を表すタイミング情報を更に第1アプリケーションから取得し、割り込み出力部417は、第2時刻と、出力タイミングとの関係が、タイミング情報により表された関係となるように、割り込み信号を第2アプリケーションに出力してもよい。割り込み信号の出力タイミングを容易に調節することができる。
【0124】
第2通信装置400は、第2時刻を表す時刻情報を第2アプリケーションに送信する時刻送信部424を更に有してもよい。第2通信装置400との間で時刻の同期性を保証する通信を行う機能を有しない第2アプリケーションにおいても、第2時刻を割り込み信号に基づき補正することで、第2時刻に同期した時刻を生成することが可能となる。
【0125】
第2通信装置400は、第2通信装置400と第2アプリケーションとの間の通信遅延時間に基づいて、第2時刻に同期した第2アプリケーション時刻を第2アプリケーションに生成する時刻同期部425を更に有してもよい。第2通信装置400との間で時刻の同期性を保証する通信を行う機能を有する第2アプリケーションにも適用することができる。
【0126】
第2通信装置400は、無線通信により第1通信装置200から取得した通信パケットを通信線により第2アプリケーションに送信し、割り込み出力部417は、通信線とは別に設けられた割り込み線により割り込み信号を第2アプリケーションに出力してもよい。割り込み信号をタイムリーに第2アプリケーションに出力することができる。
【0127】
第2通信装置400は、無線通信により第1通信装置200から取得した通信パケットを通信線により第2アプリケーションに送信し、割り込み出力部417は、割り込み信号を含む割り込みパケットを通信線により第2アプリケーションに送信してもよい。通信線とは別の割り込み線を設けることなく、割り込み信号を第2アプリケーションに出力することができる。
【0128】
割り込み出力部417は、通信パケットよりも割り込みパケットを優先して第2アプリケーションに送信してもよい。割り込みパケットの送信により割り込み信号を出力する構成において、割り込み信号をよりタイムリーに第2アプリケーションに出力することができる。
【0129】
通信基準時刻を生成する基準時刻生成部211を更に有し、第1通信装置200及び第2通信装置400は、通信基準時刻に基づいて無線通信を行ってもよい。第1時刻及び第2時刻とは独立して、無線通信のタイミングを適切に調節することができる。
【0130】
第1通信装置200及び第2通信装置400は移動体通信を行い、第1通信装置200は、移動体通信の基地局であり、第2通信装置400は、移動体通信の移動局であってもよい。同期通信の汎用性を更に向上させることができる。
【0131】
第1通信装置200及び第2通信装置400は、通信基準時刻に基づいて、第1通信装置200とは別のパブリック基地局が行うパブリック移動体通信に同期したローカル移動体通信を行ってもよい。第1通信装置200及び第2通信装置400が行う無線通信の信頼性を向上させることができる。
【0132】
第1アプリケーションとして第1通信装置200と第1有線通信を行うコントローラと、第2アプリケーションとして第2通信装置400と第2有線通信を行い、無線通信によりコントローラから送信された指令データに基づきローカル機器を制御するローカルコントローラと、を更に備え、ローカルコントローラは、割り込み信号に基づくタイミングでローカル機器を制御してもよい。割り込み信号を、コントローラと、ローカルコントローラとの間における指令データの同期通信に有効活用することができる。
【0133】
第2通信装置400は、第2時刻を表す時刻情報を第2アプリケーションに送信する時刻送信部424を更に有し、ローカルコントローラは、時刻情報と、割り込み信号とに基づいて、第2時刻に同期するローカル時刻を生成し、ローカル時刻に基づくタイミングでローカル機器を制御してもよい。割り込み信号の出力サイクルよりも短い制御サイクルにて、第2時刻に同期してローカル機器を制御することができる。
【0134】
第2通信装置400は、第1アプリケーションと第1有線通信を行う第1通信装置200(相手方装置)との間で無線通信を行い、無線通信により第1通信装置200から取得した情報を第2有線通信により第2アプリケーションに送信する装置であって、第1通信装置200が第1アプリケーションから取得した第1時刻に同期する第2時刻を生成する第2時刻生成部416と、第2時刻に同期する割り込み信号を第2アプリケーションに周期的に出力する割り込み出力部417と、を有する。
【0135】
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【0136】
1…通信システム、200…第1通信装置、211…基準時刻生成部、215…第1時刻取得部、400…第2通信装置、416…第2時刻生成部、417…割り込み出力部、423…ステータス出力部、424…時刻送信部、425…時刻同期部。