(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-20
(45)【発行日】2023-03-01
(54)【発明の名称】通信システム、通信方法、及びプログラム
(51)【国際特許分類】
G05B 19/042 20060101AFI20230221BHJP
【FI】
G05B19/042
(21)【出願番号】P 2021179538
(22)【出願日】2021-11-02
(62)【分割の表示】P 2019035773の分割
【原出願日】2019-02-28
【審査請求日】2021-11-02
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】橋本 純香
(72)【発明者】
【氏名】長田 武
(72)【発明者】
【氏名】新見 宏隆
(72)【発明者】
【氏名】吉良 俊信
(72)【発明者】
【氏名】野▲崎▼ 航
(72)【発明者】
【氏名】工藤 正臣
(72)【発明者】
【氏名】上遠野 優
(72)【発明者】
【氏名】岡本 弘
(72)【発明者】
【氏名】正垣 隆章
(72)【発明者】
【氏名】安田 恵
【審査官】大古 健一
(56)【参考文献】
【文献】特開2014-52671(JP,A)
【文献】特開2016-192172(JP,A)
【文献】特開平5-341821(JP,A)
【文献】特開2005-63072(JP,A)
【文献】特開2012-117960(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04 -19/05
(57)【特許請求の範囲】
【請求項1】
第1の産業機器と第2の産業機器とが通信する通信システムであって、
前記第1の産業機器は、
前記第2の産業機器に、前記第2の産業機器が制御するモータの動作指令を送信する動作指令送信部と、
前記動作指令が送信された後に、前記第2の産業機器に、コピー指示を送信するコピー指示送信部
と、
を有し、
前記第2の産業機器は、
前記動作指令を受信した場合に、前記動作指令を実行して前記モータを制御する動作指令実行部と、
前記動作
指令の実行結果に基づいて、第1の記憶領域のデータを更新する更新部と、
前記動作指令を受信した後に前記コピー指示を受信した場合に、
前記動作指令が実行されても更新されない第2の記憶領域に、前記第1の記憶領域のデータをコピーするコピー部と、
前記第1の産業機器に、前記第2の記憶領域のデータを送信する送信部と、
を有する通信システム。
【請求項2】
前記第1の産業機器は、前記コピー指示が送信された後に、前記第2の産業機器に、データ要求を送信するデータ要求送信部を更に含み、
前記送信部は、前記コピー指示を受信した後に前記データ要求を受信した場合に、前記第1の産業機器に、前記第2の記憶領域の前記データを送信する、
請求項1に記載の通信システム。
【請求項3】
前記更新部は、制御対象の制御周期ごとに、前記動作
指令の実行結果に基づいて、前記第1の記憶領域の前記データを更新する、
請求項1又は2に記載の通信システム。
【請求項4】
前記第2の産業機器には、複数の前記第1の記憶領域の各々と、複数の前記第2の記憶領域の各々と、が関連付けられており、
前記更新部は、複数の前記第1の記憶領域の各々のデータを更新し、
前記コピー部は、前記複数の第1の記憶領域の各々のデータを、当該第1の記憶領域に関連付けられた前記第2の記憶領域にコピーし、
前記送信部は、前記第1の産業機器に、前記複数の第2の記憶領域の各々のデータを送信する、
請求項1~3の何れかに記載の通信システム。
【請求項5】
前記コピー部は、複数の前記第2の記憶領域に、前記第1の記憶領域のデータを時系列的にコピーし、
前記送信部は、前記第1の産業機器に、前記複数の第2の記憶領域に時系列的にコピーされたデータを送信する、
請求項1~4の何れかに記載の通信システム。
【請求項6】
第1の産業機器と通信する第2の産業機器に、
前記第2の産業機器が制御するモータの動作指令を送信し、
前記動作指令が送信された後に、前記第2の産業機器に、コピー指示を送信し、
前記動作指令を受信した場合に、前記動作指令を実行して前記モータを制御し、
前記第2の産業機器
による前記動作指令の実行結果に基づいて、第1の記憶領域のデータを更新し、
前記動作指令を受信した後に前記コピー指示を受信した場合に、
前記動作指令が実行されても更新されない第2の記憶領域に、前記第1の記憶領域のデータをコピーし、
前記第1の産業機器に、前記第2の記憶領域のデータを送信する、
通信方法。
【請求項7】
第1の産業機器と通信する第2の産業機器を、
前記第2の産業機器が制御するモータの動作指令を受信した場合に、前記動作指令を実行して前記モータを制御する動作指令実行部、
前記動作
指令の実行結果に基づいて、第1の記憶領域のデータを更新する更新部、
前記第1の産業機器から
前記動作指令を受信した後にコピー指示を受信した場合に、
前記動作指令が実行されても更新されない第2の記憶領域に、前記第1の記憶領域のデータをコピーするコピー部、
前記第1の産業機器に、前記第2の記憶領域のデータを送信する送信部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、通信方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、コントローラがサーボドライブを制御するシステムにおいて、サーボドライブが、コントローラとの通信データを時系列的にトレースデータに格納し、任意のタイミングでコントローラにトレースデータを送信することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、例えば、所望のタイミングにおける産業機器のデータを取得する場合の通信負荷を軽減することである。
【課題を解決するための手段】
【0005】
本発明の一側面に係る通信システムは、第1の産業機器と第2の産業機器とが通信する通信システムであって、前記第1の産業機器は、前記第2の産業機器に、コピー指示を送信するコピー指示送信部を有し、前記第2の産業機器は、自身の動作に基づいて、第1の記憶領域のデータを更新する更新部と、前記コピー指示を受信した場合に、第2の記憶領域に、前記第1の記憶領域のデータをコピーするコピー部と、前記第1の産業機器に、前記第2の記憶領域のデータを送信する送信部と、を有する。
【0006】
本発明の一側面に係る通信方法は、第1の産業機器と通信する第2の産業機器に、コピー指示を送信し、前記第2の産業機器の動作に基づいて、第1の記憶領域のデータを更新し、前記コピー指示を受信した場合に、第2の記憶領域に、前記第1の記憶領域のデータをコピーし、前記第1の産業機器に、前記第2の記憶領域のデータを送信する。
【0007】
本発明の一側面に係るプログラムは、第1の産業機器と通信する第2の産業機器を、自身の動作に基づいて、第1の記憶領域のデータを更新する更新部、前記第1の産業機器からコピー指示を受信した場合に、第2の記憶領域に、前記第1の記憶領域のデータをコピーするコピー部、前記第1の産業機器に、前記第2の記憶領域のデータを送信する送信部、として機能させる。
【0008】
本発明の一側面によれば、前記第1の産業機器は、前記第2の産業機器に、データ要求を送信するデータ要求送信部を有し、前記送信部は、前記データ要求を受信した場合に、前記第2の記憶領域の前記データを送信する。
【0009】
本発明の一側面によれば、前記データ要求送信部は、前記第2の産業機器に、非同期通信を利用して前記データ要求を送信する。
【0010】
本発明の一側面によれば、前記通信システムには、前記データを収集する第3の産業機器が含まれており、前記第3の産業機器は、前記第1の産業機器に、前記データ要求を送信するデータ要求送信部を有し、前記第1の産業機器のデータ要求送信部は、前記第2の産業機器に、前記第3の産業機器から受信した前記データ要求を転送し、前記第1の産業機器は、前記第3の産業機器に、前記第2の産業機器から受信した前記データを転送するデータ転送部を有する。
【0011】
本発明の一側面によれば、前記第3の産業機器は、前記コピー指示送信部により前記コピー指示が送信されたか否かを確認する確認部を更に有し、前記第3の産業機器の前記データ要求送信部は、前記コピー指示が送信されたことが確認された場合に、前記第1の産業機器に、前記データ要求を送信する。
【0012】
本発明の一側面によれば、前記コピー指示送信部は、前記第2の産業機器に、同期通信を利用して前記コピー指示を送信する。
【0013】
本発明の一側面によれば、前記第2の産業機器には、センサが接続されており、前記更新部は、前記センサの検出結果を、前記第1の記憶領域に格納し、前記コピー部は、前記検出結果を前記第2の記憶領域にコピーし、前記送信部は、前記第2の記憶領域の前記検出結果を送信する。
【0014】
本発明の一側面によれば、前記第2の産業機器は、自身の動作状況を示すトレースデータを生成する生成部と、前記第1の産業機器に、前記トレースデータを送信するトレースデータ送信部と、を有し、前記送信部は、前記トレースデータ送信部とは別に、前記第2の記憶領域の前記データを送信する。
【0015】
本発明の一側面によれば、前記第1の産業機器は、ユーザにより指定された、前記コピー指示の送信タイミングが訪れたか否かを判定する判定部を有し、前記コピー指示送信部は、前記送信タイミングが訪れたと判定された場合に、前記第2の産業機器に、前記コピー指示を送信する。
【0016】
本発明の一側面によれば、前記第2の産業機器には、複数の前記第1の記憶領域の各々と、複数の前記第2の記憶領域の各々と、が関連付けられており、前記更新部は、複数の前記第1の記憶領域の各々のデータを更新し、前記コピー部は、前記複数の第1の記憶領域の各々のデータを、当該第1の記憶領域に関連付けられた前記第2の記憶領域にコピーし、前記送信部は、前記第1の産業機器に、前記複数の第2の記憶領域の各々のデータを送信する。
【0017】
本発明の一側面によれば、前記第1の記憶領域は、データ内容が確定される確定状態と、データ内容が確定しない不確定状態と、があり、前記通信システムは、前記第1の記憶領域が前記確定状態であるか否かを判定する判定部を有し、前記コピー部は、前記第1の記憶領域が前記確定状態であると判定された場合に、前記第2の記憶領域に、前記第1の記憶領域の前記データをコピーする。
【0018】
本発明の一側面によれば、前記コピー部は、複数の前記第2の記憶領域に、前記第1の記憶領域のデータを時系列的にコピーし、前記送信部は、前記第1の産業機器に、前記複数の第2の記憶領域に時系列的にコピーされたデータを送信する。
【0019】
本発明の一側面によれば、前記第1の産業機器は、マスタ機器であり、前記第2の産業機器は、前記マスタ機器により制御されるスレーブ機器であり、前記コピー指示送信部は、前記スレーブ機器に、前記コピー指示を送信し、前記送信部は、前記マスタ機器に、前記第2の記憶領域のデータを送信する。
【発明の効果】
【0020】
上記発明によれば、例えば、所望のタイミングにおける産業機器のデータを取得する場合の通信負荷を軽減することができる。
【図面の簡単な説明】
【0021】
【
図1】実施形態に係る通信システムの全体構成の一例を示す図である。
【
図2】元データ領域に格納される状態データの一例を示す図である。
【
図3】通信システムで実行される処理を示す図である。
【
図4】通信システムで実現される機能を示す機能ブロック図である。
【
図5】変形例の通信システムで実行される処理を示す図である。
【発明を実施するための形態】
【0022】
[1.通信システムの全体構成]
本発明の発明者の見地によれば、第1の産業機器と第2の産業機器とが通信する通信システムにおいて、第2の産業機器の故障予知や故障診断などをするために、所望のタイミングにおける第2の産業機器の状態を示すデータを、第1の産業機器に取得させることがある。しかしながら、このタイミングにおいて通信負荷が高い場合、第2の産業機器は、通信負荷が高いにも関わらずデータを送信しなければならないので、通信負荷を更に高めてしまうことがあった。そこで本発明の発明者は、所望のタイミングにおける産業機器のデータを取得する場合の通信負荷を軽減するために鋭意研究開発を行った結果、新規かつ独創的な通信システム等に想到した。以降、本実施形態に係る通信システム等を詳細に説明する。
【0023】
図1は、実施形態に係る通信システムの全体構成の一例を示す図である。
図1に示すように、通信システム1は、データ収集装置10、コントローラ20、モータ制御装置30、モータ40、センサ50、及びエンコーダ60を含む。なお、ここでは、説明の簡略化のために、これらを1台ずつ示しているが、通信システム1は、これらを複数台含んでいてもよい。例えば、複数のデータ収集装置10が通信システム1に含まれていてもよいし、後述する変形例のように、1台のデータ収集装置10に対し、複数のコントローラ20が接続されていてもよい。
【0024】
データ収集装置10は、状態データを収集するコンピュータである。状態データは、機器の状態を示すデータであり、例えば、ある時点又は期間における状態を示すデータであってもよいし、時系列的な状態変化を示すデータであってもよい。機器の状態とは、機器の動作を表す情報であり、例えば、センサ50又はエンコーダ60が検出した物理量であってもよいし、コントローラ20又はモータ制御装置30内部の状態であってもよい。例えば、機器の状態は、トルク信号、温度情報(例えば、チップ温度、内気温度、モータ温度)、フィードバック速度、モータ位置、整定時間、位置偏差、速度偏差、電流偏差、電流負荷、オーバシュート量、消耗品寿命残り時間、残留振動周波数、CPU使用率、メモリ使用率、又は通信負荷などである。
【0025】
本実施形態では、データ収集装置10は、第3の産業機器の一例である。このため、本実施形態でデータ収集装置10と記載した箇所は、第3の産業機器と読み替えることができる。産業機器は、人間が行う作業の補助又は代行をする機器及びその周辺機器の総称である。例えば、データ収集装置10以外にも、後述するコントローラ20及びモータ制御装置30も産業機器に相当する。他にも例えば、ロボットコントローラ、産業用ロボット、インバータ、コンバータ、工作機械、又はPLC等は、産業機器に相当する。
【0026】
例えば、データ収集装置10は、サーバコンピュータ、パーソナルコンピュータ、携帯電話(スマートフォンを含む)、又は携帯端末(タブレット型端末を含む)である。データ収集装置10は、CPU11、記憶部12、通信部13、操作部14、及び表示部15を含む。
【0027】
CPU11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM、EEPROM、及びハードディスクを含み、各種プログラムやデータを記憶する。CPU11は、これらプログラムやデータに基づいて各種処理を実行する。通信部13は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。操作部14は、マウスやキーボード等の入力デバイスである。表示部15は、液晶ディスプレイ又は有機ELディスプレイ等であり、CPU11の指示により各種画面を表示する。
【0028】
コントローラ20は、モータ制御装置30を制御する装置である。本実施形態では、コントローラ20が1台のモータ制御装置30を制御する場合を説明するが、コントローラ20は、複数台のモータ制御装置30を制御してもよい。更に、コントローラ20には、モータ制御装置30だけでなく、センサ類又は入出力機器などが接続されていてもよい。
【0029】
例えば、コントローラ20は、CPU21、記憶部22、及び通信部23を含む。CPU21、記憶部22、及び通信部23の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様である。なお、コントローラ20は、モータ制御などの特定用途向けの集積回路(ASIC)を有していてもよい。
【0030】
モータ制御装置30は、モータ40を制御する装置である。モータ制御装置30は、サーボアンプ又はサーボパック(登録商標)と呼ばれることもある。本実施形態では、モータ制御装置30が1台のモータ40を制御する場合を説明するが、モータ制御装置30は、複数台のモータ40を制御してもよい。更に、モータ制御装置30には、モータ40、センサ50、及びエンコーダ60だけでなく、入出力機器などが接続されていてもよい。
【0031】
コントローラ20は、第1の産業機器の一例であり、モータ制御装置30は、第2の産業機器の一例である。このため、本実施形態でコントローラ20と記載した箇所は、第1の産業機器と読み替えることができ、本実施形態でモータ制御装置30と記載した箇所は、第2の産業機器と読み替えることができる。
【0032】
産業機器の意味は先述した通りであり、第2の産業機器は、第1の産業機器と通信可能に接続される機器である。第1の産業機器は、第2の産業機器の状態に関する状態データを受信する側の機器(状態データの送信先の機器)であり、第2の産業機器は、状態データを送信する側の機器(状態データの送信元の機器)である。第2の作業機器は、状態データを生成する機器、又は、動作の解析対象の機器ということもできる。
【0033】
本実施形態では、第1の産業機器がマスタ機器であり、第2の産業機器は、スレーブ機器である場合を説明するが、第1の産業機器と第2の産業機器は、マスタとスレーブの関係になくてもよい。別の言い方をすれば、第1の作業機器と第2の産業機器との間には、主従関係又は上下関係が存在しなくてもよい。
【0034】
マスタ機器とは、スレーブ機器を制御する機器であり、スレーブ機器に対して指令を送信する機器である。別の言い方をすれば、マスタ機器は、スレーブ機器から動作状態を取得する機器である。スレーブ機器とは、マスタ機器からの指令に基づいて動作する機器であり、マスタ機器により制御される機器である。別の言い方をすれば、スレーブ機器は、マスタ機器に対して自身の動作状態を送信する機器である。
【0035】
本実施形態では、モータ制御装置30は、コントローラ20からの指令に基づいて動作するので、コントローラ20がマスタ機器に相当し、モータ制御装置30がスレーブ機器に相当する。通信システム1に複数のコントローラ20が含まれる場合に、コントローラ20間に主従関係を設ける場合には、マスタの役割を果たすコントローラ20がマスタ機器に相当し、スレーブの役割を果たすコントローラ20がスレーブ機器に相当する。
【0036】
例えば、モータ制御装置30は、CPU31、記憶部32、及び通信部33を含む。CPU31、記憶部32、及び通信部33の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様である。なお、モータ制御装置30は、モータ制御などの特定用途向けの集積回路(ASIC)を有していてもよい。モータ制御装置30は、コントローラ20から受信した指令に基づいて、電力線で接続されたモータ40に対する電圧を制御する。モータ40は、回転式であってもよいしリニア式であってもよい。
【0037】
センサ50は、物理量を検出可能なセンサであればよく、例えば、トルクセンサ、温度センサ、力センサ、又はモーションセンサなどである。エンコーダ60は、モータ40の位置又は速度を検出する機器であり、例えば、光学式又は磁気式のモータエンコーダである。エンコーダ60もセンサの一種である。モータ制御装置30は、センサ50により検出された物理量やエンコーダ60により検出されたフィードバック速度を、任意のタイミングでコントローラ20に送信する。
【0038】
なお、データ収集装置10、コントローラ20、及びモータ制御装置30の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、データ収集装置10、コントローラ20、及びモータ制御装置30の各々のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器と直接的に接続するための入出力部(例えば、USB端子)が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部又は入出力部を介して供給されるようにしてもよい。
【0039】
[2.通信システムの概要]
通信システム1では、コントローラ20とモータ制御装置30とが通信する。コントローラ20は、モータ制御装置30に対して指令を送信し、モータ制御装置30は、指令に基づいてモータ40を動作させる。コントローラ20とモータ制御装置30とは、いわゆるフィールドネットワークによって接続され、任意の通信プロトコルを利用して通信が行われる。本実施形態の通信システム1は、同期通信を利用可能であり、コントローラ20は、同期通信を利用して、モータ制御装置30に指令を送信する。
【0040】
同期通信とは、送信側の機器がデータを送信するタイミングと、受信側の機器がデータを受信するタイミングと、を合わせる通信方式である。同期通信では、データ通信のリクエストが送信されてからレスポンスを受信するまでの間は、原則として他の処理は実行されない。このため、送信側の機器は、受信側の機器にデータを送信した後は、レスポンスを受信するのを待機する。受信側の機器は、送信側の機器からデータを受信すると、すぐに処理を実行し、送信側の機器にレスポンスとして処理結果を返す。送信側の機器は、処理結果を受信すると、次の処理に移行する。同期通信が行われない場合には、非同期通信を利用して通信が行われる。
【0041】
非同期通信とは、送信側の機器がデータを送信するタイミングと、受信側の機器がデータを受信するタイミングと、を合わせずに通信を行う通信方式である。非同期通信では、データ通信のリクエストが送信されてからレスポンスを受信するまでの間に、他の処理を実行可能である。このため、非同期通信では、送信側の機器は、受信側の機器にデータを送信してからレスポンスを受信するまでの間に、他の処理を実行可能である。また、非同期通信では、受信側の機器は、送信側の機器からデータを受信しても、すぐに処理を実行するとは限らない。受信側の機器は、所定の条件が充足されるまで処理の実行を待機したり、同期通信の処理を優先して実行したりする。
【0042】
本実施形態では、同期通信を利用して送信される指令を同期タスクと記載し、非同期通信を利用して送信される指令を非同期タスクと記載する。例えば、コントローラ20がモータ制御装置30に同期タスクを送信した場合、コントローラ20は、モータ制御装置30からのレスポンスを受信するまでは、他の処理を実行せずに待機する。モータ制御装置30は、コントローラ20から同期タスクを受信すると、すぐに同期タスクを実行し、コントローラ20に処理結果を送信する。
【0043】
一方、コントローラ20がモータ制御装置30に非同期タスクを送信した場合、コントローラ20は、モータ制御装置30からのレスポンスを受信しなくても、他の処理を実行可能となる。例えば、コントローラ20は、非同期タスクのレスポンスを受信するまでの間に、別の非同期タスクを送信したり、同期タスクを送信したりすることができる。モータ制御装置30は、コントローラ20から非同期タスクを受信した場合、すぐに非同期タスクを実行するとは限らない。
【0044】
例えば、非同期タスクを実行するための条件が設定されている場合、モータ制御装置30は、当該条件が充足されるまで、非同期タスクを実行しない。他にも例えば、タスクに優先順位が付けられている場合、モータ制御装置30は、非同期タスクよりも優先順位の高い他のタスクを優先して実行し、非同期タスクの実行を後回しにする。モータ制御装置30は、非同期タスクを実行すると、コントローラ20に処理結果を送信する。
【0045】
なお、データ収集装置10とコントローラ20とは、コントローラ20とモータ制御装置30を接続するフィールドネットワークと同様に、同期通信が可能であってもよいし、特に同期通信が利用されなくてもよい。データ収集装置10-コントローラ20間の通信プロトコルと、コントローラ20-モータ制御装置30間の通信プロトコルと、は同じであってもよいし、異なっていてもよい。
【0046】
例えば、コントローラ20は、同期通信を利用して、モータ40の動作指令を同期タスクとして送信する。モータ制御装置30は、動作指令を受信するとすぐに実行する。本実施形態では、モータ制御装置30の記憶部32が複数の記憶領域に分けられており、モータ制御装置30は、コントローラ20から受信した動作指令を実行すると、先述したフィードバック速度などの状態データを生成して所定の記憶領域に格納する。本実施形態では、この記憶領域を第1の記憶領域という。
【0047】
第1の記憶領域は、状態データが格納される記憶領域である。別の言い方をすれば、第1の記憶領域は、動作指令が実行された場合に更新対象となる記憶領域ということもできる。第1の記憶領域は、任意のメモリアドレスの領域であってよく、例えば、メモリアドレス1つ分の領域であってもよいし、複数のメモリアドレスにまたがる領域であってもよい。また、第1の記憶領域のメモリサイズは、任意であってよく、格納される状態データのデータサイズに応じて定めておけばよい。例えば、第1の記憶領域のメモリアドレス及びメモリサイズは、ユーザが任意のアドレス及びサイズを指定可能であってよい。以降、第1の記憶領域を元データ領域と記載する。このため、本実施形態で元データ領域と記載した箇所は、第1の記憶領域と読み替えることができる。
【0048】
本実施形態では、記憶部22に複数の元データ領域が存在する場合を説明するが、元データ領域は、1つだけであってもよい。また、1つの元データ領域に対し、複数種類の状態データが格納されてもよいが、本実施形態では、1つの元データ領域に対し、1種類の状態データが格納されるものとする。このため、状態データの種類と元データ領域とは、1対1の関係にある。
【0049】
図2は、元データ領域に格納される状態データの一例を示す図である。ここでは、モータ40の位置を決めるための状態データ(いわゆる位置決め系データ)を例に挙げて説明する。
図2の横軸は時間軸であり、位置指令速度は、コントローラ20からの動作指令であり、モータ40の位置及び速度に関する指令である。COIN信号は、指令が示す動作を終了したと判定された場合にオンになる。
図2の例では、位置指令速度は、モータ40が停止した状態から一定速度にさせた後に、徐々に速度を落として停止させる指令を示しており、COIN信号は、エンコーダ60により検出された位置偏差が閾値未満になり、モータ40が停止した場合にオンになる。
【0050】
図2に示すように、整定時間は、位置指令速度に対し、モータ40が実際の動作をするまでの時間差であり、例えば、位置指令速度が示す停止のタイミングと、モータ40が実際に停止したタイミングと、の差を示す。整定時間は、位置決め整定時間と呼ばれることもある。オーバシュート量は、モータ40を停止させるときに所定の位置を行ったり来たりしながら停止した場合の移動分である。残留振動周波数は、モータ40を停止させるときに所定の位置を行ったり来たりした場合の位置偏差の周波数である。COIN幅は、COIN信号がオンになったときの位置偏差に基づく幅である。これら整定時間、オーバシュート量、残留振動周波数、及びCOIN幅は、状態データの一例である。
【0051】
例えば、モータ制御装置30は、動作指令を実行すると、センサ50又はエンコーダ60から検出された信号に基づいて、上記のような状態データを生成し、元データ領域に格納する。元データ領域に格納された状態データは、モータ制御装置30の動作に基づいて、繰り返し更新される。例えば、モータ制御装置30が周期的に制御される場合には、状態データは、制御周期が訪れるたびに最新の値に書き換えられる。このため、故障予知や故障診断などの目的で、所望のタイミングにおけるモータ制御装置30の状態データをコントローラ20に取得させる場合、コントローラ20は、所望のタイミングの状態データが更新される前に、元データ領域の状態データを読み出す必要がある。
【0052】
もし仮に、コントローラ20が、同期通信を利用して、元データ領域に格納された状態データの読み出し要求を送信し、モータ制御装置30に同期タスクとして実行させた場合、同期タスクはすぐに実行されるので、所望のタイミングの状態データを取得することができる。
【0053】
しかしながら、同期通信は、モータ40の動作に直結する重要なデータの送信で利用されることが多く、状態データのために同期通信を利用できない(同期通信の空きがない)ことがある。例えば、状態データは、主に故障予知や故障診断に利用され、動作指令等に比べると緊急性及び重要度が低いので、後でゆっくりと取得すればよい。このため、緊急性及び重要度がより高い他のデータのために、同期通信を利用させた方がよいと考えられる。また、所望のタイミングのトレースデータを取得可能な技術も存在するが、トレースデータは比較的データサイズが大きいので、ある一時点だけの状態データを取得するためにトレースデータの技術を利用する必要性は低いと思われる。
【0054】
一方、コントローラ20が、非同期通信を利用して読み出し要求を送信したとすると、モータ制御装置30は、送信要求を非同期タスクとして実行する。先述したように、非同期タスクは、いつ実行されるか分からないので、当該非同期タスクが実行される前に、元データ領域に格納された状態データが更新され、所望のタイミングの状態データを取得できないことがある。
【0055】
そこで、本実施形態では、元データ領域とは別に、所望のタイミングの状態データをコピーして保持するための記憶領域が、モータ制御装置30に用意されている。本実施形態では、この記憶領域を第2の記憶領域という。
【0056】
第2の記憶領域は、元データ領域の状態データがコピーされる記憶領域である。別の言い方をすれば、第2の記憶領域は、元データ領域の状態データのコピー先の記憶領域である。第2の記憶領域は、動作指令が実行されても更新されず、データ内容が保持される。第2の記憶領域は、任意のメモリアドレスの領域であってよく、例えば、メモリアドレス1つ分の領域であってもよいし、複数のメモリアドレスにまたがる領域であってもよい。また、第2の記憶領域のメモリサイズは、任意であってよく、コピーされる状態データのデータサイズに応じて定めておけばよい。例えば、第2の記憶領域のメモリアドレス及びメモリサイズは、ユーザが任意のアドレス及びサイズを指定可能であってよい。以降、第2の記憶領域をデータコピー領域と記載する。このため、本実施形態でデータコピー領域と記載した箇所は、第2の記憶領域と読み替えることができる。
【0057】
本実施形態では、記憶部22に複数のデータコピー領域が存在する場合を説明するが、データコピー領域は、1つだけであってもよい。また、本実施形態では、元データ領域ごとに、データコピー領域が用意されており、元データ領域とデータコピー領域とは、1対1の関係にある場合を説明するが、1つのデータコピー領域が複数の元データ領域で共用されてもよい。例えば、1つのデータコピー領域に対し、複数の元データ領域の各々の状態データが一度にコピーされてもよいし、複数の元データ領域の各々の状態データが後退に1つのデータコピー領域を使用してもよい。これとは逆に、1つの元データ領域の状態データが複数のデータコピー領域に展開されてもよい。
【0058】
本実施形態では、コントローラ20は、同期通信を利用して、元データ領域の読み出し指示ではなくコピー指示を送信し、同期タスクとして実行させる。コピー指示は、元データ領域の状態データをデータコピー領域にコピーするための指示である。別の言い方をすれば、コピー指示は、状態データを保持又は確保するための指示である。コピー指示は、所定形式のデータが送信されることによって行われるようにすればよく、コピー指示であることを識別する識別子を含む。コピー指示は、ある時点の状態データをコピーして保持するための指示なので、データラッチトリガと呼ばれることもある。
【0059】
例えば、コピー指示は、コピー対象の状態データを識別可能な情報が含まれており、例えば、コピー元の元データ領域のメモリアドレス、状態データの種類若しくは名前、又はコピー先のデータコピー領域のメモリアドレスが含まれている。なお、全ての状態データが強制的にコピー対象になり、コピー対象の状態データを個別に特定する必要がない場合には、これらの情報は、コピー指示に含まれていなくてもよい。
【0060】
モータ制御装置30は、コピー指示を同期タスクとして処理し、元データ領域の状態データをデータコピー領域にコピーする。これにより、元データ領域の状態データが更新されたとしても、更新前の(即ち、所望のタイミングでの)状態データがデータコピー領域に保持されたままとなる。データコピー領域にコピーされた状態データは、その後の任意のタイミングで送信される。モータ制御装置30は、同期タスクとして状態データを送信するのでなく、状態データをコピーするだけなので、そのタイミングにおける通信負荷の増大を回避することができるようになっている。以降、通信システム1の具体的な処理及び機能について説明する。
【0061】
[3.通信システムで実行される処理]
図3は、通信システム1で実行される処理を示す図である。
図3に示す処理は、CPU11,21,31がそれぞれ記憶部12,22,32に記憶されたプログラムに従って動作することによって実行される。以降説明する処理は、後述する
図4に示す機能ブロックにより実行される処理の一例である。なお、
図3では、コントローラ20からモータ制御装置30へのモータ40の動作指令やそれに対するレスポンス等については省略している。
【0062】
図3では、2つの元データ領域及びデータコピー領域を示しているが、元データ領域及びデータコピー領域は3つ以上存在してもよい。本実施形態では、モータ制御装置30は、制御周期ごとに、コントローラ20から受信した動作指令に基づいてモータ40を制御し、元データ領域に格納された状態データを更新する。
図2の例では、第1の元データ領域に格納される第1の状態データを「1-n」の符号で示し、第2の元データ領域に格納される第2の状態データを「2-n」の符号で示す。nは、0以上の整数であり、制御周期を識別する数値である。nが大きくなるほど時間的には後の制御周期となる。「1-0」~「1-4」及び「2-0」~「2-4」の符号で示すように、第1の状態データ及び第2の状態データの各々は、制御周期が訪れるたびに更新される。
【0063】
図3に示すように、データ収集装置10は、スケジューラに基づいて、コントローラ20とのポーリングを開始する(S100)。スケジューラは、ポーリングを開始すべき時間が訪れると「オン」になる。スケジューラが「オン」になるタイミングは、ユーザが指定可能であり、予め記憶部12に記憶されているものとする。他にも例えば、スケジューラは、コントローラ20でアラームが発生した場合などのように任意のタイミングで「オン」になってよい。
【0064】
ポーリングは、定期的に行われ、コントローラ20の記憶部22に記憶されたコピー完了ステータスが参照される。コピー完了ステータスは、コピー指示の送信が完了したか否かを示す情報である。別の言い方をすれば、コピー完了ステータスは、元データ領域からデータコピー領域へのコピーが完了したか否かを示す情報である。コピー完了ステータスは、初期値が「未完了」であり、コピー指示が送信されると「完了」に変化する。
【0065】
図2の例では、ポーリングが開始された時点では、まだコピー指示が送信されていない。コントローラ20は、コピー指示の送信タイミングが訪れると、同期通信を利用して、モータ制御装置30にコピー指示を送信する(S101)。S101においては、コントローラ20は、CPU21やASIC等を利用して計時処理を実行し、送信タイミングが訪れたか否かを判定する。
図2の例では、「制御周期1」において送信タイミングが訪れる場合を示している。
【0066】
本実施形態では、コピー指示の送信タイミングは、ユーザが任意のタイミングを指定可能であるものとする。例えば、ユーザは、特定のイベントが発生することを送信タイミングとして指定してもよい。イベントとは、通信システム1において発生する事象であり、例えば、製造において発生するイベント、アラームが発生すること、特定のアラームコードのアラームが発生すること、コントローラ20又はモータ制御装置30の特定のスイッチがオンになること、トルク波形が所定の特徴を示すこと、又はフィードバック速度が所定の範囲になることなどである。また例えば、ユーザは、特定の制御周期を送信タイミングとして指定してもよいし、制御周期内での特定のタイミングを送信タイミングとして指定してもよい。
【0067】
コントローラ20は、コピー指示を送信すると、コピー完了ステータスの値を「完了」に変更する(S102)。なお、コントローラ20は、送信タイミングが訪れたと判定された後にコピー完了ステータスを「完了」にすればよく、実際にコピー指示を送信する前にコピー完了ステータスを「完了」にしてもよい。
【0068】
モータ制御装置30は、コピー指示を受信すると、同期タスクとして処理し、元データ領域に格納された状態データをデータコピー領域にコピーする(S103)。S103においては、モータ制御装置30は、コピー指示を受信してすぐに、第1の元データ領域に格納された第1の状態データを第1のデータコピー領域にコピーし、第2の元データ領域に格納された第2の状態データを第2のデータコピー領域にコピーする。これにより、次の「制御周期2」が訪れても、「制御周期1」における第1の状態データ1-1と第2の状態データ2-1が保持されて、後でゆっくりと読み出すことができる。
【0069】
一方、データ収集装置10においては、定期的にポーリングが行われており(S104)、データ収集装置10は、コントローラ20のコピー完了ステータスが「完了」であることを検知すると、コントローラ20にデータ要求を送信する(S105)。データ要求は、状態データの送信を要求するための指示である。別の言い方をすれば、データ要求は、データコピー領域の読み出し要求である。データ要求は、所定形式のデータが送信されることによって行われるようにすればよく、データ要求であることを示す識別子を含む。
【0070】
例えば、データ要求は、読み出し対象の状態データを識別可能な情報が含まれており、例えば、読み出し対象の状態データの名前又はデータコピー領域のメモリアドレスが含まれている。なお、全てのデータコピー領域の状態データが強制的に読み出され、読み出し対象の状態データを個別に特定する必要がない場合には、これらの情報は、データ要求に含まれていなくてもよい。
図2の例では、第1のデータコピー領域の状態データ1-1と、第2のデータコピー領域の状態データ2-1と、が順番に読み出されるので、S105において送信されるデータ要求には、例えば、第1のデータコピー領域のメモリアドレスが含まれる。
【0071】
コントローラ20は、データ要求を受信すると、非同期通信を利用して、モータ制御装置30にデータ要求を転送する(S106)。モータ制御装置30は、データ要求を受信すると、非同期タスクとして処理し、第1のデータコピー領域に格納された状態データ1-1をコントローラ20に送信する(S107)。S107においては、モータ制御装置30は、データ要求を受信しても、すぐに状態データを送信するとは限らないが、第1のデータコピー領域に格納された状態データ1-1は、更新されずに保持されているので、状態データ1-1の送信に時間がかかったとしても内容は変わらない。
【0072】
コントローラ20は、状態データ1-1を受信すると、データ収集装置10に転送する(S108)。なお、コントローラ20は、状態データ1-1を転送するときに自身の記憶部22に格納してもよい。データ収集装置10は、状態データ1-1を受信して、記憶部32に記録する(S109)。以降、S110~S114に示すように、S105~S109と同様にして、第2のデータコピー領域に格納された状態データ2-1のデータ要求が送信され、状態データ2-1が送信される。
【0073】
なお、コピー完了ステータスは、任意のタイミングで「未完了」に戻るものとする。例えば、コントローラ20がデータ要求を受信した場合に「未完了」に戻ってもよいし、コントローラ20が状態データを転送した場合に「未完了」に戻ってもよい。その後、次の送信タイミングが訪れた場合には、S101~S103と同様にして、状態データがコピーされ、その後に、S104~S114と同様にして、コピーされた状態データが送信される。
【0074】
[4.通信システムで実現される機能]
図4は、通信システム1で実現される機能を示す機能ブロック図である。ここでは、データ収集装置10、コントローラ20、及びモータ制御装置30の各々において実現される機能について説明する。
【0075】
[4-1.コントローラにおいて実現される機能]
図4に示すように、コントローラ20では、データ記憶部200、送信タイミング判定部201、コピー指示送信部202、データ要求送信部203、及びデータ転送部204が実現される。データ記憶部200は、記憶部22を主として実現され、送信タイミング判定部201、コピー指示送信部202、データ要求送信部203、及びデータ転送部204は、CPU21を主として実現される。
【0076】
[データ記憶部]
データ記憶部200は、モータ制御装置30を制御するために必要なデータを記憶する。例えば、データ記憶部200は、モータ制御装置30に対する指令内容を記憶する。指令内容は、プログラム又はパラメータに定義されていてもよく、データ記憶部200は、当該プログラム又はパラメータを記憶してもよい。また例えば、データ記憶部200は、コントローラ20内での時間を示す時間情報を記憶する。時間情報は、タイマ又はカウンタと呼ばれることもある。コントローラ20は、計時処理により、時間情報を更新する。
【0077】
また例えば、データ記憶部200は、状態データを取得するために必要なデータを記憶する。例えば、データ記憶部200は、コピー指示の送信タイミングを記憶する。本実施形態では、ユーザがコピー指示の送信タイミングを指定するので、データ記憶部200は、ユーザにより指定された送信タイミングを記憶する。例えば、ユーザがアラームコードを指定した場合には、アラームコードが送信タイミングとして記憶される。また例えば、データ記憶部200は、先述したコピー完了ステータスを記憶する。また例えば、データ記憶部200は、モータ制御装置30から受信した状態データを記憶する。
【0078】
また例えば、データ記憶部200は、トレースデータを取得するために必要なデータを記憶する。例えば、トレースデータには、センサ50又はエンコーダ60により検出された物理量の時系列的な変化が示される。トレースデータは、動作のログ(履歴)を示すのでロギングデータと呼ばれることもある。トレースデータは、状態データの時系列的な変化であってもよい。例えば、データ記憶部200は、トレースデータの計測条件を記憶する。計測条件は、トレースデータの取得時に参照される条件であり、例えば、トレースデータの取得を開始するトリガ条件、トレース対象となる軸、トレース対象の情報(信号)の種類、サンプリング周期、又はトレース期間などである。また例えば、データ記憶部200は、モータ制御装置30から受信したトレースデータを記憶する。
【0079】
なお、データ記憶部200が記憶するデータは、上記の例に限られない。例えば、データ記憶部200は、コントローラ20に接続された機器の構成を示す機器情報を記憶してもよいし、データ収集装置10及びモータ制御装置30のIPアドレスを記憶してもよい。
【0080】
[送信タイミング判定部]
送信タイミング判定部201は、ユーザにより指定された、コピー指示の送信タイミングが訪れたか否かを判定する。例えば、ユーザが送信タイミングの時間を直接指定する場合、送信タイミング判定部201は、データ記憶部200に記憶された時間情報に基づいて、送信タイミングが訪れたか否かを判定する。送信タイミング判定部201は、時間経過とともに更新される時間情報が示す数値が送信タイミングを示したか否かを判定する。送信タイミング判定部201は、時間情報が示す数値が送信タイミングを示した場合に、送信タイミングが訪れたと判定する。
【0081】
また例えば、ユーザが送信タイミングのイベントを指定する場合、送信タイミング判定部201は、ユーザが指定したイベントが発生したか否かを判定することによって、送信タイミングが訪れたか否かを判定する。例えば、送信タイミング判定部201は、アラームが発生した場合に送信タイミングが訪れたと判定してもよいし、ユーザが指定したアラームコードのアラームが発生した場合に送信タイミングが訪れたと判定してもよい。他のイベントの例については先述した通りであり、送信タイミング判定部201は、ユーザが指定したイベントに応じた判定処理を実行すればよい。
【0082】
[コピー指示送信部]
コピー指示送信部202は、コントローラ20は、モータ制御装置30に、コピー指示を送信する。本実施形態では、通信システム1は同期通信可能なので、コピー指示送信部202は、モータ制御装置30に、同期通信を利用してコピー指示を送信する。コピー指示送信部202は、コピー指示を、同期タスクとしてモータ制御装置30に実行させる。なお、通信システム1が同期通信を利用しない場合には、コピー指示送信部202は、特に同期通信を利用せずに、コピー指示を送信する。
【0083】
本実施形態では、ユーザが予めコピー指示の送信タイミングを指定するので、コピー指示送信部202は、送信タイミングが訪れたと判定された場合に、モータ制御装置30に、コピー指示を送信する。別の言い方をすれば、コピー指示送信部202は、送信タイミングが訪れたと判定されたことに応じて(送信タイミングが訪れたと判定されることを条件又はトリガとして)、コピー指示を送信する。コピー指示送信部202は、送信タイミングが訪れると判定されない場合は、モータ制御装置30にコピー指示を送信せず、送信タイミングが訪れたと判定されるまで、コピー指示の送信を待機する。
【0084】
なお、コピー指示の送信タイミングを予め定めておかない場合には、例えば、コピー指示送信部202は、データ収集装置10などのコンピュータから所定の指示を受信した場合にコピー指示を送信してもよいし、ユーザが所定の操作をした場合にコピー指示を送信してもよい。
【0085】
[データ要求送信部]
データ要求送信部203は、モータ制御装置30に、データ要求を送信する。本実施形態では、データ要求送信部203は、モータ制御装置30に、非同期通信を利用してデータ要求を送信する。データ要求送信部203は、データ要求を、非同期タスクとしてモータ制御装置30に実行させる。なお、通信システム1が同期通信を利用しない場合には、データ要求送信部203は、特に同期通信/非同期通信に関係なく、コピー指示を送信する。
【0086】
本実施形態では、データ収集装置10がコントローラ20にデータ要求を送信するので、データ要求送信部203は、モータ制御装置30に、データ収集装置10から受信したデータ要求を転送する。即ち、コントローラ20は、データ収集装置10とモータ制御装置30との間に入っているので、データ要求送信部203は、データ収集装置10からモータ制御装置30へのデータ要求を中継する。
【0087】
なお、データ収集装置10がデータ要求を送信するのではなく、コントローラ20の判断でデータ要求が送信されてもよい。即ち、コントローラ20は、データ収集装置10からのデータ要求を転送するのではなく、自発的にデータ要求を送信してもよい。例えば、データ要求送信部203は、コピー指示が送信されてから所定時間が経過した場合に、データ要求を送信してもよい。また例えば、ユーザがデータ要求のタイミングを指定してもよく、データ要求送信部203は、ユーザにより指定されたタイミングが訪れた場合に、データ要求を送信してもよい。他にも例えば、データ要求送信部203は、通信のトラフィック量を取得し、トラフィック量が閾値未満の場合に(通信負荷が軽いときに)データ要求を送信してもよい。
【0088】
[データ転送部]
データ転送部204は、データ収集装置10に、モータ制御装置30から受信した状態データを転送する。即ち、データ転送部204は、モータ制御装置30からデータ収集装置10への状態データを中継する。データ転送部204は、モータ制御装置30から受信した状態データを、データ収集装置10に転送しつつ、データ記憶部200に記録してもよい。なお、データ収集装置10がデータ要求を送信するのではなく、コントローラ20の判断でデータ要求が送信される場合には、データ転送部204を省略して状態データの転送が行われないようにしてもよいし、この場合にも状態データの転送が行われるようにしてもよい。
【0089】
[4-2.モータ制御装置において実現される機能]
図4に示すように、モータ制御装置30では、データ記憶部300、更新部301、コピー部302、状態データ送信部303、生成部304、及びトレースデータ送信部305が実現される。データ記憶部300は、記憶部32を主として実現され、更新部301、コピー部302、状態データ送信部303、生成部304、及びトレースデータ送信部305は、CPU31を主として実現される。
【0090】
[データ記憶部]
データ記憶部300は、元データ領域とデータコピー領域を有する。本実施形態では、これらが複数あるので、データ記憶部300は、複数の記憶領域に分けられており、複数の元データ領域の各々と、複数のデータコピー領域の各々と、が関連付けられている。元データ領域とデータコピー領域との対応関係は、予めデータ記憶部300に記憶されており、どの元データ領域がコピー元になり、どのデータコピー領域がコピー先になるかは、予め定められているものとする。例えば、これらのメモリアドレスの対応関係が予め定められている。また例えば、状態データの種類と、格納すべきデータ領域と、の対応関係も予めデータ記憶部300に記憶されているものとする。
【0091】
例えば、データ記憶部300は、モータ40を制御するために必要なデータを記憶する。例えば、データ記憶部300は、モータ40を制御するためのファームウェアや各種パラメータを記憶する。また例えば、データ記憶部300は、モータ制御装置30内での時間を示す時間情報を記憶する。モータ制御装置30は、計時処理により、時間情報を更新する。
【0092】
また例えば、データ記憶部300は、状態データを取得するために必要なデータを記憶する。状態データが計算を要するデータなのであれば、データ記憶部300はその計算式を記憶する。また例えば、データ記憶部300は、トレースデータを取得するために必要なデータを記憶する。例えば、データ記憶部200は、トレースデータの計測条件を記憶する。なお、データ記憶部200が記憶するデータは、上記の例に限られない。例えば、データ記憶部300は、コントローラ20のIPアドレスを記憶してもよいし、制御周期や伝送周期といった情報を記憶してもよい。
【0093】
[更新部]
更新部301は、自身の動作に基づいて、元データ領域の状態データを更新する。状態データの更新とは、状態データの内容を最新の状態に上書きすることである。例えば、更新部301は、モータ制御装置30の内部状態又はセンサ50若しくはエンコーダ60の検出信号に基づいて、状態データを更新する。本実施形態では、更新部301が定期的に状態データを更新する場合を説明するが、更新部301は、不定期的に状態データを更新してもよい。不定期的に状態データを更新する場合には、何らかのトリガとなる条件が満たされた場合に更新されるようにすればよい。
【0094】
本実施形態では、モータ制御装置30の制御周期が定められているので、更新部301は、制御周期が訪れるたびに、元データ領域の状態データを更新する。例えば、更新部301は、コントローラ20から受信した動作指令に基づいてモータ40を動作させた場合に、モータ制御装置30の内部状態又はセンサ50若しくはエンコーダ60の検出信号に基づいて、状態データの最新の値を取得し、元データ領域の状態データを更新する。
【0095】
本実施形態では、モータ制御装置30には、センサ50が接続されているので、更新部301は、センサ50の検出結果を、元データ領域に格納する。更新部301は、センサ50の検出信号の波形を、そのまま状態データとして元データ領域に格納してもよいし、センサ50の検出信号に基づいて計算した値を、状態データとして元データ領域に格納してもよい。
【0096】
例えば、状態データが整定時間である場合、更新部301は、位置指令速度が示す速度が所定範囲(例えば、0)になってから、COIN信号が立ち上がるまでの時間を計測して元データ領域に格納する。また例えば、状態データがオーバシュート量である場合、更新部301は、位置偏差に基づいて、モータ40が停止位置を超えた分の積算量を計算して元データ領域に格納する。また例えば、状態データが残留振動周波数である場合、更新部301は、位置偏差が示す波形の周波数を計算して元データ領域に格納する。また例えば、状態データがCOIN幅である場合、更新部301は、COIN信号が立ち上がった場合の位置偏差に基づいて、COIN幅の長さを計算して元データ領域に格納する。
【0097】
本実施形態では、データ記憶部に複数の元データ領域が設定されているので、更新部301は、複数の元データ領域の各々の状態データを更新する。個々の状態データの更新方法については、上述した通りである。更新部301は、複数の状態データの各々を取得し、複数の状態データをそれぞれ対応する元データ領域に格納する。
【0098】
[コピー部]
コピー部302は、コピー指示を受信した場合に、データコピー領域に、元データ領域の状態データをコピーする。別の言い方をすれば、コピー部302は、コピー指示を受信したことに応じて(コピー指示を受信したことを条件又はトリガとして)、元データ領域の状態データをコピーする。コピー部302は、コピー指示を受信しない場合は、元データ領域の状態データをコピーせず、コピー指示が受信されるまで、元データ領域の状態データのコピーを待機する。
【0099】
例えば、コピー対象となる元データ領域のメモリアドレスがコピー指示に含まれている場合、コピー部302は、コピー指示に含まれるメモリアドレスに基づいて、コピー対象となる元データ領域を特定する。また例えば、コピー対象となる状態データの種類がコピー指示に含まれている場合には、コピー部302は、コピー指示に含まれる種類に基づいて、コピー対象となる状態データを特定する。
【0100】
本実施形態では、センサ50の検出結果が状態データに格納されるので、コピー部302は、センサ50の検出結果をデータコピー領域にコピーする。また、本実施形態では、コピー部302は、複数の元データ領域の各々の状態データを、当該元データ領域に関連付けられた状態データコピー領域にコピーする。コピー部302は、複数の元データ領域の各々の状態データを一度にコピーしてもよいし、コピー指示を受信するたびに、各元データ領域の状態データを個別にコピーしてもよい。
【0101】
[状態データ送信部]
状態データ送信部303は、コントローラ20に、データコピー領域の状態データを送信する。本実施形態では、状態データ送信部303は、データ要求を受信した場合に、データコピー領域のデータを送信する。別の言い方をすれば、状態データ送信部303は、データ要求を受信したことに応じて(データ要求を受信したことを条件又はトリガとして)、元データ領域の状態データを送信する。コピー部302は、読出し要求を受信しない場合は、元データ領域の状態データを送信せず、読出し要求が受信されるまで、元データ領域の状態データの送信を待機する。
【0102】
なお、モータ制御装置30は、自発的に状態データを送信してもよい。この場合、状態データ送信部303は、任意のタイミングで状態データを送信すればよい。例えば、状態データ送信部303は、データコピー領域に状態データがコピーされてから一定時間が経過した場合に、状態データを送信してもよい。また例えば、状態データ送信部303は、制御周期内の所定タイミングが訪れた場合に、状態データを送信してもよい。また例えば、状態データ送信部303は、通信のトラフィック量が閾値未満になった場合に状態データを送信してもよいし、CPU使用率が閾値未満になった場合に状態データを送信してもよい。
【0103】
例えば、送信対象となるデータコピー領域のメモリアドレスがデータ要求に含まれている場合、状態データ送信部303は、データ要求に含まれるメモリアドレスに基づいて、送信対象となるデータコピー領域を特定する。また例えば、送信対象となる状態データの種類がデータ要求に含まれている場合には、状態データ送信部303は、データ要求に含まれる種類に基づいて、送信対象となる状態データを特定する。
【0104】
本実施形態では、センサ50の検出結果がデータコピー領域に格納されるので、状態データ送信部303は、データコピー領域に格納されたセンサ50の検出結果を送信する。本実施形態では、モータ制御装置30は状態データだけでなくトレースデータも送信可能なので、状態データ送信部303は、トレースデータ送信部305とは別に、データコピー領域のデータを送信する。
【0105】
本実施形態では、データ記憶部200に複数のデータコピー領域が設定されるので、状態データ送信部303は、コントローラ20に、複数のデータコピー領域の各々の状態データを送信する。例えば、状態データ送信部303は、複数のデータコピー領域の各々の状態データを一度に送信してもよいし、データ要求を受信するたびに、各データコピー領域の状態データを個別に送信してもよい。
【0106】
[生成部]
生成部304は、自身の動作状況を示すトレースデータを生成する。例えば、生成部304は、モータ制御装置30の内部状態又はセンサ50若しくはエンコーダ60により検出された物理量に基づいて、トレースデータを生成する。
【0107】
本実施形態では、生成部304は、コントローラ20からトレースデータ生成指示を受信した場合に、トレースデータを生成する。トレースデータ生成指示は、トレースデータの生成(取得)を開始するための指示である。トレースデータ生成指示は、所定形式のデータが送信されることによって行われるようにすればよく、トレースデータ生成指示であることを識別する識別子を含む。トレースデータ生成指示は、コントローラ20の所望のタイミングでトレースデータを取得でき、ネットワークトリガと呼ばれることもある。
【0108】
生成部304は、トレースデータ生成指示を受信したことに応じて、トレースデータの生成を開始する。別の言い方をすれば、生成部304は、トレースデータ生成指示を受信するまではトレースデータの生成を開始せず、トレースデータ生成指示を受信した場合に、トレースデータの生成を開始する。本実施形態では、コントローラ20は、非同期通信を利用して、トレースデータ生成指示を送信する。生成部304は、トレースデータ生成指示を受信すると、非同期タスクとして処理し、トレースデータの生成を開始する。
【0109】
例えば、生成部304は、トレースデータの計測条件に基づいて、トレースデータを生成する。例えば、計測条件にトレース対象となる軸が示されている場合、生成部304は、トレース対象となる軸の状態に基づいて、トレースデータを生成する。また例えば、計測条件にトレース対象の情報(信号)の種類が示されている場合、生成部304は、当該種類の情報に基づいて、トレースデータを生成する。また例えば、計測条件にサンプリング周期が示されている場合、生成部304は、当該サンプリング周期に基づいて、トレースデータを生成する。また例えば、計測条件にトレース期間が示されている場合、生成部304は、当該トレース期間に基づいて、トレースデータを生成する。
【0110】
[トレースデータ送信部]
トレースデータ送信部305は、トレースデータを送信する。例えば、トレースデータ送信部305は、トレースデータ要求を受信した場合に、データ記憶部300のトレースデータを送信する。トレースデータ要求は、トレースデータの送信を要求するための指示である。別の言い方をすれば、トレースデータ要求は、トレースデータが格納された記憶領域の読み出し要求である。トレースデータ要求は、所定形式のデータが送信されることによって行われるようにすればよく、トレースデータ要求であることを示す識別子を含む。
【0111】
本実施形態では、コントローラ20は、非同期通信を利用して、トレースデータ要求を送信する。トレースデータ送信部305は、トレースデータ要求を受信すると、非同期タスクとして処理し、データ記憶部300のトレースデータを送信する。なお、モータ制御装置30は、自発的にトレースデータを送信してもよい。この場合、トレースデータ送信部305は、任意のタイミングでトレースデータを送信すればよい。
【0112】
[4-3.データ収集装置において実現される機能]
図3に示すように、データ収集装置10では、データ記憶部100、確認部101、及びデータ要求送信部102が実現される。データ記憶部100は、記憶部12を主として実現され、確認部101及びデータ要求送信部102は、CPU11を主として実現される。
【0113】
[データ記憶部]
データ記憶部100は、データ収集装置10がコントローラ20から受信した状態データやトレースデータを記憶する。これら状態データやトレースデータは、表示部15に表示されたり、解析用のアプリケーションに入力されたりする。他にも例えば、データ記憶部100は、コントローラ20に接続されたモータ制御装置30やセンサ類などの構成を示す機器情報を記憶してもよいし、コントローラ20のIPアドレスを記憶してもよい。また例えば、データ記憶部100は、トレースデータの取得条件を記憶してもよい。この場合、データ収集装置10からコントローラ20に対して取得条件が展開されるようにしてもよい。また例えば、データ記憶部100は、コントローラ20のモータ制御装置30に対する指令を時系列的に記憶してもよい。
【0114】
[確認部]
確認部101は、コピー指示送信部202によりコピー指示が送信されたか否かを確認する。本実施形態では、コピー指示送信部202がコントローラ20により実現されるので、確認部101は、コントローラ20に、コピー指示が送信されたか否かを問い合わせる。確認部101は、コントローラ20からの回答を受信し、コピー指示が送信されたか否かを確認する。確認部101による確認は、定期的に行われてもよいし、不定期的に行われてもよい。例えば、確認部101は、コントローラ20に、コピー完了ステータスを要求し、コントローラ20から受信したコピー完了ステータスに基づいて、コピー指示が送信されたか否かを問い合わせる。
【0115】
[データ要求送信部]
データ要求送信部102は、コントローラ20に、データ要求を送信する。データ要求送信部102は、コピー指示が送信されたことが確認された場合に、コントローラ20に、データ要求を送信する。データ要求送信部102は、コピー指示の送信が確認されたことに応じて(コピー指示が送信されたことを条件又はトリガとして)、データ要求を送信する。データ要求送信部102は、コピー指示の送信が確認されない場合は、データ要求を送信せず、コピー指示の送信が確認されるまで、データ要求の送信を待機する。
【0116】
上記説明した通信システム1によれば、モータ制御装置30が、コントローラ20からコピー指示を受信した場合に、元データ領域のデータをデータコピー領域にコピーし、その後にデータコピー領域のデータを送信する。モータ制御装置30は、所望のタイミングのデータをすぐに送信する必要がなく、任意のタイミングでデータを送信すればよいので、通信負荷(通信コスト)を軽減することができる。例えば、モータ制御装置30に、コピー指示を受信してすぐにデータを送信させた場合、一応は、コントローラ20に、所望のタイミングで更新されたデータを取得させることはできるが、その時に、より重要な他のデータを送信する必要があるとすると、通信負荷が増加し、より重要な他のデータの送信に支障が出る可能性がある。この点、通信システム1によれば、データコピー領域に保持されたデータを、任意のタイミングで送信すればよいので、コピー指示を受信してすぐにデータを送信する必要がなくなり、通信負荷を低減することができる。
【0117】
また例えば、モータ制御装置30がコピー指示を受信してから、コントローラ20にデータを送信するまでの間に、元データ領域のデータが更新されたとしても、所望のタイミングにおけるデータがモータ制御装置30に保持されているので、コントローラ20に、所望のタイミングで更新されたデータを取得させることができる。また例えば、モータ制御装置30は、コピー指示を受信した場合に、元データ領域のデータを送信する必要がなく、データコピー領域にコピーすればよく、その後の任意のタイミングでデータコピー領域のデータを送信すればよいので、コピー指示を受信したときの処理を簡易化することができ、モータ制御装置30の処理負荷を低減することができる。また例えば、ある期間におけるデータを時系列的に格納したトレースデータを送信する場合、当該期間に所望のタイミングが含まれていれば、一応は、所望のタイミングのデータを送信することができるが、トレースデータには、所望のタイミング以外の不要なデータが含まれてしまうので、データ量が増大する可能性がある。この点、所望のタイミングのデータをピンポイントで取得できるので、データ量を削減することができる。
【0118】
また、モータ制御装置30が、コントローラ20からデータ要求を受信した場合に、データコピー領域のデータを送信することで、データコピー領域にデータがコピーされた後、通信負荷が比較的少ないタイミング(例えば、このようなタイミングで送信するように、ユーザがデータ要求の送信タイミングを指定する)を見計らってデータを送信させることができるので、通信負荷を効果的に低減することができる。
【0119】
また、同期通信を利用してデータ要求を送信すると、モータ制御装置30はすぐにデータを送信しなければならないが、非同期通信を利用してデータ要求を送信することで、モータ制御装置30はすぐにデータを送信する必要がないので、通信負荷を低減することができる。例えば、コントローラ20は、比較的重要な他のデータを送信し終わったタイミングや自身の処理負荷が少ないタイミングなどにおいて、データコピー領域のデータを送信することができるので、通信負荷を低減したりコントローラ20の処理負荷を低減したりすることができる。
【0120】
また、コントローラ20が、データ収集装置10から受信したデータ要求をモータ制御装置30に転送し、その後、モータ制御装置30から受信したデータをデータ収集装置10に転送することにより、データ収集装置10に、所望のタイミングで更新されたデータを取得させることができる。例えば、データ収集装置10が多数のモータ制御装置30からデータを収集する場合、データ収集装置10のメモリ消費量が増大しがちであるが、所望のタイミングのデータをピンポイントで取得させることで、メモリの消費量を効果的に削減することができる。
【0121】
また、もし仮に、コピー指示が送信される前にデータ要求が送信されてしまうと、データコピー領域にデータがコピーされる前にデータ要求が送信されることになり、データ収集装置10に、所望のタイミングで更新されたデータを取得させることができないが、データ収集装置10が、コピー指示が送信されたことを確認した場合に、コントローラ20に、データ要求を送信することで、データ収集装置10に、所望のタイミングで更新されたデータを、より確実に取得させることができる。
【0122】
また、コントローラ20が、モータ制御装置30に、同期通信を利用してコピー指示を送信することで、モータ制御装置30は、当該送信されたコピー指示をすぐに実行するので、コントローラ20に、所望のタイミングで更新されたデータを、より確実に取得させることができる。
【0123】
また、モータ制御装置30にセンサ50が接続されている場合に、モータ制御装置30が、センサ50から取得した検出結果を元データ領域に格納することで、コントローラ20に、所望のタイミングで取得された検出結果を取得させることができる。
【0124】
また、トレースデータとは別に、データコピー領域のデータを送信することで、トレースデータを送信するモードと、トレースデータとは別の方法でデータを送信するモードと、を使い分けることができる。これにより、コントローラ20がモータ制御装置30からデータを取得する場合のユーザの利便性を高めることができる。例えば、時系列的なデータが必要な場合にはトレースデータを送信するモードを利用し、時系列的なデータは必要なく、ある所望のタイミングのデータをピンポイントで必要な場合には、本実施形態で説明したモードを利用することができ、ユーザの利便性を高めることができる。
【0125】
また、コピー指示の送信タイミングをユーザが指定することにより、コントローラ20に、ユーザが所望するタイミングで更新されたデータを取得させることができる。
【0126】
また、複数の元データ領域の各々と、複数のデータコピー領域の各々と、を関連付けておき、モータ制御装置30が、複数のデータコピー領域の各々のデータを送信することで、コントローラ20に、所望のタイミングで更新された複数のデータを取得させることができる。これにより、通信負荷と、モータ制御装置30の処理負荷と、を効果的に低減することができる。
【0127】
また、スレーブ機器であるモータ制御装置30が、マスタ機器であるコントローラ20からコピー指示を受信した場合に、元データ領域のデータをデータコピー領域にコピーすることで、その後に元データ領域のデータが更新されたとしても、コピー指示が送信されたタイミングにおけるデータがデータコピー領域に保持されるので、マスタ機器に、所望のタイミングで更新されたデータを取得させることができる。
【0128】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0129】
(1)例えば、実施形態では、内容が確定した状態データが元データ領域に格納される場合を説明したが、元データ領域は、データ内容が確定される確定状態と、データ内容が確定しない不確定状態と、があってもよい。確定状態とは、状態データの計算が終わった状態である。不確定状態とは、状態データの計算が終わっていない状態であり、例えば、途中計算の値や他の情報が一時的に格納される状態である。不確定状態でコピーが行われると、正確な状態データを取得することができないので、元データ領域が確定状態になった場合にコピーが行われてもよい。
【0130】
例えば、
図2に示すいわゆる位置決め系データについては、次の制御周期の直前には、計算が完了しデータ内容が確定していることがほとんどである。このため、コピー指示送信部202は、制御周期が訪れる所定時間前(例えば、制御周期が訪れる直前)に、コピー指示を送信してもよい。例えば、コピー指示送信部202は、位置指令速度がモータ40の停止を示してから一定時間が経過した後に、コピー指示を送信してもよい。更に、確定状態になったか否かをコントローラ20又はモータ制御装置30が判定してもよい。
【0131】
図5は、変形例の通信システム1で実行される処理を示す図である。
図5では、説明の簡略化のために、元データ領域とデータコピー領域を1つずつ示している。ここでは、状態データの一例として整定時間を説明する。
図5に示すように、実施形態で説明した処理とは大まかな流れは同じであるが、整定時間は、COIN信号が立ち上がるまで確定しないので、制御周期のうち、COIN信号が立ち上がるまでの期間は「計算中」で不確定状態となり、COIN信号が立ち上がった後に確定状態となる。
【0132】
S200の処理は、
図2のS100の処理と同様であり、データ収集装置10とコントローラ20との間でポーリングが行われる。S201の処理もS101の処理と同様であるが、本変形例では、コピー指示の送信タイミングは、COIN信号が立ち上がった後になるように定められている。ユーザの経験則から送信タイミングを指定してもよいし、COIN信号が立ち上がった旨の通知をモータ制御装置30に送信させ、コントローラ20は、当該通知を受信した場合にコピー指示を送信してもよい。続くS202~S208の処理は、それぞれS102~S108と同様であり、確定状態の状態データが元データ領域からデータコピー領域にコピーされ、当該データコピー領域の状態データがコントローラ20経由でデータ収集装置に送信される。
【0133】
図6は、変形例における機能ブロック図である。
図6に示すように、変形例の通信システム1は、元データ領域が確定状態であるか否かを判定する確定判定部205を有する。ここでは、確定判定部205がコントローラ20のCPU21を主として実現される場合を説明するが、確定判定部205は、モータ制御装置30のCPU31を主として実現されてもよい。例えば、確定状態となるタイミングをユーザが指定する場合、確定判定部205は、当該タイミングが訪れたか否かを判定する。
【0134】
なお、確定判定部205がモータ制御装置30で実現される場合には、確定判定部205は、モータ制御装置30の内部状態又はセンサ50若しくはエンコーダ60の検出信号に基づいて、元データ領域が確定状態であるか否かを判定する。例えば、整定時間が状態データである場合、確定判定部205は、COIN信号が立ち上がったか否かを判定する。また例えば、オーバシュート量が状態データである場合、確定判定部205は、位置偏差に基づいてオーバシュートが収まったか否かを判定する。また例えば、残留振動周波数である場合、確定判定部205は、COIN信号が立ち上がってから一定時間が経過したかを判定する。また例えば、COIN幅が状態データである場合、確定判定部205は、COIN信号が立ち上がったか否かを判定する。
【0135】
コピー部302は、元データ領域が確定状態であると判定された場合に、データコピー領域に、元データ領域のデータをコピーする。別の言い方をすれば、コピー部302は、元データ領域が確定状態であると判定されたことに応じて(元データ領域が確定状態であると判定されたことを条件又はトリガとして)、元データ領域の状態データをコピーする。コピー部302は、元データ領域が確定状態であると判定されない場合は、元データ領域の状態データをコピーせず、元データ領域が確定状態であると判定されるまで、元データ領域の状態データのコピーを待機する。
【0136】
変形例(1)によれば、元データ領域が確定状態であると判定された場合に、データコピー領域に、元データ領域のデータがコピーされることで、データ内容が確定していない状態の不正確なデータが送信されることを防止することができる。例えば、コントローラ20により判定部が実現される場合、確定状態であると判定されてからコピー指示を送信するといったことができ、確定済みのデータを確実にコピーして送信することができる。また例えば、モータ制御装置30により確定判定部205が実現される場合、コピー指示を受信してから、確定状態であると判定されるまでの間、コピー処理の実行を待機するといったことができ、確定済みのデータを確実にコピーして送信することができる。
【0137】
(2)例えば、コピー部302は、複数のデータコピー領域に、元データ領域の状態データを時系列的にコピーしてもよい。即ち、元データ領域とデータコピー領域とが、1対複数の関係にあってもよい。例えば、ある状態データを3制御周期分だけコピーする場合には、3つのデータコピー領域が必要になる。コピー部302は、1回目のコピー指示を受信した場合、その時点での元データ領域の状態データを第1のデータコピー領域にコピーする。コピー部302は、2回目のコピー指示を受信した場合、その時点での元データ領域の状態データを第2のデータコピー領域にコピーする。コピー部302は、3回目のコピー指示を受信した場合、その時点での元データ領域の状態データを第3のデータコピー領域にコピーする。
【0138】
送信部は、コントローラ20に、複数のデータコピー領域に時系列的にコピーされた状態データを送信する。例えば、送信部は、複数のデータコピー領域の状態データを一度のまとめて送ってもよいし、データ要求を受け付けるたびに状態データを送ってもよい。
【0139】
変形例(2)によれば、モータ制御装置30に複数のデータコピー領域を用意しておき、複数のデータコピー領域に、元データ領域のデータを時系列的にコピーして送信することで、コントローラ20に、所望のタイミングで更新された時系列なデータを取得させることができる。
【0140】
(3)また例えば、実施形態では、コントローラ20が第1の産業機器に相当し、モータ制御装置30が第2の産業機器に相当する場合を説明したが、データ収集装置10が第1の産業機器に相当し、コントローラ20又はモータ制御装置30が第2の産業機器に相当してもよい。また例えば、通信システム1に複数のコントローラ20が含まれる場合に、第1のコントローラ20が第1の産業機器に相当し、第2のコントローラが第2の産業機器に相当してもよい。他にも例えば、コントローラ20及びモータ制御装置30の設定をするためのエンジニアリングツールがインストールされた端末が第1の産業機器に相当し、コントローラ20又はモータ制御装置30が第2の産業機器に相当してもよい。また例えば、第3の産業機器は、エンジニアリングツールがインストールされた端末又はクラウドサーバ等であってもよい。
【0141】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【0142】
1 通信システム、10 データ収集装置、11,21,31 CPU、12,22,32 記憶部、13,23,33 通信部、14 操作部、15 表示部、20 コントローラ、30 モータ制御装置、40 モータ、50 センサ、60 エンコーダ、100 データ記憶部、101 確認部、102 データ要求送信部、200 データ記憶部、201 送信タイミング判定部、202 コピー指示送信部、203 データ要求送信部、204 データ転送部、205 確定判定部、300 データ記憶部、301 更新部、302 コピー部、303 状態データ送信部、304 生成部、305 トレースデータ送信部。