(57)【要約】【課題】同期通信可能な複数の産業機器を含む通信システムにおけるセキュリティを高める。【解決手段】同期通信可能な複数の産業機器（１０，２０）を含む通信システム（１）において、通信を行う複数の産業機器（１０，２０）の暗号化部（１０３，２０１）は、送信データを暗号化する。送信部（１０４，２０２）は、他の産業機器に送信データを送信する。受信部（１０５，２０３）は、他の産業機器（１０，２０）から、暗号化された受信データを受信する。復号化部（１０６，２０４）は、受信データを復号化する。【選択図】図２
2020184751.tif 000002
【特許請求の範囲】
【請求項１】
同期通信可能な複数の産業機器を含む通信システムであって、
通信を行う複数の産業機器は、
同期通信を利用するか否かに基づいて、送信データを暗号化する暗号化部と、
他の産業機器に、暗号化された前記送信データを送信する送信部と、
前記他の産業機器から、暗号化された受信データを受信する受信部と、
同期通信を利用するか否かに基づいて、暗号化された前記受信データを復号化する復号化部と、
を有する通信システム。
【請求項２】
前記暗号化部は、同期通信で送信される前記送信データを暗号化し、非同期通信で送信される前記送信データは暗号化せず、
前記送信部は、前記他の産業機器に、暗号化された前記送信データを同期通信で送信し、暗号化されていない前記送信データを非同期通信で送信し、
前記受信部は、前記他の産業機器から、暗号化された前記受信データを同期通信で受信し、暗号化されていない前記送信データを非同期通信で受信し、
前記復号化部は、同期通信で受信された、暗号化された前記受信データを復号化し、非同期通信で受信された、暗号化されていない前記受信データは復号化しない、
請求項１に記載の通信システム。
【請求項３】
前記暗号化部は、非同期通信で送信される前記送信データを暗号化し、同期通信で送信される前記送信データは暗号化せず、
前記送信部は、前記他の産業機器に、暗号化された前記送信データを非同期通信で送信し、暗号化されていない前記送信データを同期通信で送信し、
前記受信部は、前記他の産業機器から、暗号化された前記受信データを非同期通信で受信し、暗号化されていない前記送信データを同期通信で受信し、
前記復号化部は、非同期通信で受信された、暗号化された前記受信データを復号化し、同期通信で受信された、暗号化されていない前記受信データは復号化しない、
請求項１に記載の通信システム。
【請求項４】
前記暗号化部は、同期通信を利用するか否かに応じた暗号方式で、前記送信データを暗号化し、
前記復号化部は、同期通信を利用するか否かに応じた暗号方式で、暗号化された前記受信データを復号化する、
請求項１に記載の通信システム。
【請求項５】
同期通信可能な複数の産業機器の通信方法であって、
同期通信を利用するか否かに基づいて、送信データを暗号化し、
前記複数の産業機器の間で、暗号化された前記送信データを送信し、
前記複数の産業機器の間で暗号化された受信データを受信し、
同期通信を利用するか否かに基づいて、暗号化された前記受信データを復号化する、
通信方法。
【請求項６】
他の産業機器と同期通信可能な産業機器を、
同期通信を利用するか否かに基づいて、送信データを暗号化する暗号化部、
前記他の産業機器に、暗号化された前記送信データを送信する送信部、
前記他の産業機器から、暗号化された受信データを受信する受信部、
同期通信を利用するか否かに基づいて、暗号化された前記受信データを復号化する復号化部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、通信マスタと、当該通信マスタからの指令に応じて動作する通信スレーブと、を有する通信システムにおいて、通信マスタから通信スレーブに指令が送信され、通信スレーブから通信マスタに動作結果が送信されることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／０４６９１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、例えば、同期通信可能な複数の産業機器を含む通信システムにおけるセキュリティを高めることである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る通信システムは、同期通信可能な複数の産業機器を含む通信システムであって、通信を行う複数の産業機器は、送信データを暗号化する暗号化部と、他の産業機器に前記送信データを送信する送信部と、前記他の産業機器から、暗号化された受信データを受信する受信部と、前記受信データを復号化する復号化部と、を有する。
【０００６】
本発明の一側面に係る通信方法は、同期通信可能な複数の産業機器の通信方法であって、送信データを暗号化し、前記複数の産業機器の間で前記送信データを送信し、前記複数の産業機器の間で暗号化された受信データを受信し、前記受信データを復号化する。
【０００７】
本発明の一側面に係るプログラムは、他の産業機器と同期通信可能な産業機器を、送信データを暗号化する暗号化部、前記他の産業機器に前記送信データを送信する送信部、前記他の産業機器から、暗号化された受信データを受信する受信部、前記受信データを復号化する復号化部、として機能させる。
【０００８】
本発明の一側面によれば、前記通信システムは、通信を行う産業機器の組み合わせごとに、暗号化通信に関する設定を行う設定部、を有する。
【０００９】
本発明の一側面によれば、前記設定部は、通信を行う産業機器の組み合わせごとに、当該組み合わせに含まれる産業機器の機種に基づいて、暗号化通信に関する設定を行う。
【００１０】
本発明の一側面によれば、前記暗号化部は、前記送信データの種類に基づいて、前記送信データを暗号化し、前記復号化部は、前記受信データの種類に基づいて、前記受信データを復号化する。
【００１１】
本発明の一側面によれば、前記暗号化部は、同期通信を利用するか否かに基づいて、前記送信データを暗号化し、前記復号化部は、同期通信を利用するか否かに基づいて、前記受信データを復号化する。
【００１２】
本発明の一側面によれば、前記通信システムでは、同期通信可能な３つ以上の産業機器が含まれており、暗号化通信を利用する産業機器の組み合わせと、暗号化通信を利用しない産業機器の組み合わせと、が混在可能である。
【００１３】
本発明の一側面によれば、前記通信システムでは、同期通信可能な３つ以上の産業機器が含まれており、第１の暗号方式で暗号化通信する産業機器の組み合わせと、第２の暗号方式で暗号化通信する産業機器の組み合わせと、が混在可能である。
【００１４】
本発明の一側面によれば、通信を行う複数の産業機器は、自身に接続された機器を制御するための第１の制御回路とは別に、暗号化通信をするための第２の制御回路を有し、少なくとも前記暗号化部及び前記復号化部は、前記第２の制御回路により実現される。
【００１５】
本発明の一側面によれば、前記通信システムは、前記通信システムのネットワーク構成が変更されたか否かを判定する判定部と、前記ネットワーク構成が変更されたと判定された場合に、暗号化通信に関する設定を行う設定部と、を有する。
【００１６】
本発明の一側面によれば、通信を行う複数の産業機器は、少なくとも１つの暗号方式を利用可能であり、前記通信システムは、通信を行う複数の産業機器に共通する暗号方式に基づいて、暗号化通信で利用する暗号方式を決定する決定部、を有する。
【００１７】
本発明の一側面によれば、前記決定部は、通信を行う複数の産業機器に共通する暗号方式が複数存在した場合、当該複数の暗号方式の各々に定められた優先度に基づいて、暗号化通信で利用する暗号方式を決定する。
【００１８】
本発明の一側面によれば、通信を行う複数の産業機器は、デバッグが行われる場合には、暗号化通信を行わない。
【００１９】
本発明の一側面によれば、通信を行う複数の産業機器には、マスタ機器と、前記マスタ機器からの指令に基づいて動作するスレーブ機器と、が含まれており、前記マスタ機器及び前記スレーブ機器は、前記暗号化部、前記送信部、前記受信部、及び前記復号化部を有する。
【発明の効果】
【００２０】
上記発明によれば、例えば、同期通信可能な複数の産業機器を含む通信システムにおけるセキュリティを高めることができる。
【図面の簡単な説明】
【００２１】
【図１】実施形態に係る通信システムの全体構成の一例を示す図である。
【図２】通信システムで実現される機能を示す機能ブロック図である。
【図３】機種データのデータ格納例を示す図である。
【図４】設定データのデータ格納例を示す図である。
【図５】コンフィグレーション処理を示すフロー図である。
【図６】モータ制御処理を示すフロー図である。
【図７】種類データのデータ格納例を示す図である。
【図８】変形例（１）の機能ブロック図である。
【図９】優先度データのデータ格納例を示す図である。
【発明を実施するための形態】
【００２２】
［１．実施形態１］
本発明の発明者の見地によれば、同期通信可能な複数の産業機器を含む通信システムにおいて、悪意のある第三者がネットワーク上のデータを書き換えたり盗み見たりすることがある。しかしながら、従来の通信システムでは、通信システム内のデータが全て平文でやり取りされるので、セキュリティを十分に担保することができなかった。そこで本発明の発明者は、同期通信可能な複数の産業機器を含む通信システムにおけるセキュリティを高めるために鋭意研究開発を行った結果、新規かつ独創的な通信システム等に想到した。以降、本実施形態に係る通信システム等を詳細に説明する。
【００２３】
［１−１．通信システムの全体構成］
図１は、実施形態に係る通信システムの全体構成の一例を示す図である。図１に示すように、通信システム１は、コントローラ１０、モータ制御装置２０Ａ〜２０Ｄ、モータ３０Ａ〜３０Ｄ、センサ４０Ａ〜４０Ｄ、及びエンコーダ５０Ａ〜５０Ｄを含む。以降、モータ制御装置２０Ａ〜２０Ｄ、モータ３０Ａ〜３０Ｄ、センサ４０Ａ〜４０Ｄ、及びエンコーダ５０Ａ〜５０Ｄの各々を特に区別する必要のないときは、単にモータ制御装置２０、モータ３０、センサ４０、及びエンコーダ５０と記載する。
【００２４】
コントローラ１０は、モータ制御装置２０を制御する装置である。本実施形態では、コントローラ１０が４台のモータ制御装置２０を制御する場合を説明するが、コントローラ１０が制御するモータ制御装置２０の台数は、任意の数であってよく、例えば、１台、２台、３台、又は５台以上であってもよい。また例えば、コントローラ１０には、モータ制御装置２０だけでなく、センサ類又は入出力機器などが接続されていてもよい。また例えば、通信システム１には、複数台のコントローラ１０が含まれていてもよい。
【００２５】
例えば、コントローラ１０は、ＣＰＵ１１、記憶部１２、及び通信部１３を含む。ＣＰＵ１１は、少なくとも１つのプロセッサを含む。記憶部１２は、ＲＡＭ、ＥＥＰＲＯＭ、及びハードディスクを含み、各種プログラムやデータを記憶する。ＣＰＵ１１は、これらプログラムやデータに基づいて各種処理を実行する。通信部１３は、ネットワークカードや各種通信コネクタ等の通信インタフェースを含み、他の装置との通信を行う。
【００２６】
モータ制御装置２０は、モータ３０を制御する装置である。モータ制御装置２０は、サーボアンプ又はサーボパック（登録商標）と呼ばれることもある。本実施形態では、モータ制御装置２０が１台のモータ３０を制御する場合を説明するが、モータ制御装置２０は、複数台のモータ３０を制御してもよい。更に、モータ制御装置２０には、モータ３０、センサ４０、及びエンコーダ５０だけでなく、入出力機器などが接続されていてもよい。モータ制御装置２０は、コントローラ１０から受信した指令に基づいて、電力線で接続されたモータ３０に対する電圧を制御する。モータ３０は、回転式であってもよいしリニア式であってもよい。
【００２７】
例えば、モータ制御装置２０Ａは、ＣＰＵ２１Ａ、記憶部２２Ａ、通信部２３Ａ、及びＳＯＣ（System On Chip）２４Ａを含む。ＣＰＵ２１Ａ、記憶部２２Ａ、及び通信部２３Ａの各々の物理的構成は、ＣＰＵ１１、記憶部１２、及び通信部１３と同様である。
【００２８】
ＳＯＣ２４Ａは、チップ上に特定の目的の機能を集約させた回路である。本実施形態では、ＳＯＣ２４Ａは、暗号化通信に特化した回路であり、例えば、ＣＰＵ２４０Ａ及び暗号チップ２４１Ｂを含む。ＣＰＵ２４０Ａの物理的構成は、ＣＰＵ１１と同様であり、例えば、暗号化通信用のファームウェアが展開される。暗号チップ２４１Ｂは、例えば、鍵を記憶するメモリと、特定の暗号方式に特化した演算を実行する演算回路と、を含む。暗号チップ２４１Ｂは、ＣＰＵ２４０Ａの指示により、メモリに記憶された鍵に基づいて、暗号化及び復号化の演算を実行する。
【００２９】
なお、ＳＯＣ２４Ａは、モータ制御装置２０Ａの製造時点で内蔵されていてもよいし、モータ制御装置２０Ａの購入後にユーザがＳＯＣ２４Ａを取り付けてもよい。また例えば、ＳＯＣ２４Ａは、モータ制御装置２０Ａの筐体に内蔵されるのではなく、ＵＳＢ端子等の入出力部を利用して外付けされてもよい。また、ＳＯＣ２４Ａの物理的構成は、上記説明した例に限られず、暗号化及び復号化の演算が可能な構成を有していればよい。例えば、ＳＯＣ２４Ａは、暗号チップ２４１Ａの代わりに、サブのＣＰＵを有していてもよく、当該ＣＰＵにより、暗号化及び復号化の演算が実行されてもよい。また例えば、特に暗号チップ２４１Ａを用意せずに、ＣＰＵ２４０Ａが暗号化及び復号化の演算を実行してもよい。
【００３０】
モータ制御装置２０Ｂ及び２０Ｄの物理的構成は、モータ制御装置２０Ａと同様である。即ち、ＣＰＵ２１Ｂ，２１Ｄ、記憶部２２Ｂ，２２Ｄ、通信部２３Ｂ，２３Ｄ、及びＳＯＣ２４Ｂ，２４Ｄの各々の物理的構成は、ＣＰＵ２１Ａ、記憶部２２Ａ、通信部２３Ａ、及びＳＯＣ２４Ａと同様である。モータ制御装置２０Ｃは、ＣＰＵ２１Ｃ、記憶部２２Ｃ、及び通信部２３Ｃを含む。これらの各々の物理的構成は、ＣＰＵ２１Ａ、記憶部２２Ａ、及び通信部２３Ａと同様である。ただし、モータ制御装置２０Ｃは、暗号化通信に対応しておらず、ＳＯＣを有しない。なお、以降の説明では、モータ制御装置２０に含まれる個々の構成を区別しないときは、ＣＰＵ２１、記憶部２２、通信部２３、及びＳＯＣ２４といったように、末尾のアルファベットの符号を省略する。
【００３１】
なお、モータ制御装置２０のＣＰＵ２１は、自身に接続された機器を制御するための第１の制御回路の一例であり、ＳＯＣ２４は、暗号化通信をするための第２の制御回路の一例である。制御回路は、任意の計算を行うために作成された回路基板であり、ＣＰＵ２１のように汎用的な処理を実行可能であってもよいし、ＳＯＣ２４のように特定目的の処理に特化したものであってもよい。一般的に、モータ制御装置２０は、コストを抑えるために必要最低限の性能のＣＰＵ２１を搭載することが多い。この場合、暗号化通信の計算処理に耐えられない（処理に遅延が発生する）ことがあるので、本実施形態では、モータ制御装置２０にＳＯＣ２４を搭載することにしているが、ＣＰＵ２１が十分な性能を有する場合には、ＳＯＣ２４を搭載せずに、ＣＰＵ２１が暗号化通信の計算処理を実行してもよい。
【００３２】
センサ４０は、モータ制御装置２０又はモータ３０の動作状況を検出する。センサ４０は、物理量を検出可能なセンサであればよく、例えば、トルクセンサ、温度センサ、力センサ、又はモーションセンサなどである。エンコーダ５０は、モータ３０の位置又は速度を検出する機器であり、例えば、光学式又は磁気式のモータエンコーダである。エンコーダ５０もセンサの一種である。モータ制御装置２０は、センサ４０により検出された物理量やエンコーダ５０により検出されたフィードバック速度を、任意のタイミングでコントローラ１０に送信する。
【００３３】
なお、コントローラ１０及びモータ制御装置２０の各々に記憶されるものとして説明するプログラム及びデータは、ネットワークＮやインターネットなどを介して供給されるようにしてもよい。また、コントローラ１０及びモータ制御装置２０の各々のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器と直接的に接続するための入出力部（例えば、ＵＳＢ端子）が含まれていてもよい。この場合、情報記憶媒体に記憶されたプログラムやデータが読取部又は入出力部を介して供給されるようにしてもよい。また例えば、コントローラ１０及びモータ制御装置２０の各々は、モータ制御などの特定用途向けの集積回路（ＡＳＩＣ）を有していてもよい。例えば、ＳＯＣ２４についても、ＳＯＣとしての構成、ＣＰＵとＡＳＩＣなどの構成など回路のハードウェア構成は適宜設定可能である。
【００３４】
［１−２．通信システムの概要］
通信システム１では、コントローラ１０とモータ制御装置２０とが通信する。コントローラ１０及びモータ制御装置２０の各々は、産業機器の一例である。このため、本実施形態でコントローラ１０又はモータ制御装置２０と記載した箇所は、産業機器と読み替えることができる。
【００３５】
産業機器は、人間が行う作業の補助又は代行をする機器及びその周辺機器の総称である。例えば、コントローラ１０及びモータ制御装置２０以外にも、ロボットコントローラ、産業用ロボット、インバータ、コンバータ、工作機械、又はＰＬＣ等は、産業機器に相当する。
【００３６】
本実施形態では、通信を行う複数の産業機器には、マスタ機器と、マスタ機器からの指令に基づいて動作するスレーブ機器と、が含まれている場合を説明するが、特にマスタとスレーブの関係がなくてもよい。別の言い方をすれば、産業機器の間には、主従関係又は上下関係が存在しなくてもよい。
【００３７】
マスタ機器とは、スレーブ機器を制御する機器であり、スレーブ機器に対して指令を送信する機器である。別の言い方をすれば、マスタ機器は、スレーブ機器から動作状態を取得する機器である。スレーブ機器とは、マスタ機器からの指令に基づいて動作する機器であり、マスタ機器により制御される機器である。別の言い方をすれば、スレーブ機器は、マスタ機器に対して自身の動作状態を送信する機器である。本実施形態では、コントローラ１０がマスタ機器に相当し、モータ制御装置２０がスレーブ機器に相当する。
【００３８】
コントローラ１０は、モータ制御装置２０に対して指令を送信し、モータ制御装置２０は、指令に基づいてモータ３０を動作させる。コントローラ１０とモータ制御装置２０とは、いわゆるフィールドネットワークであるネットワークＮによって接続され、任意の通信プロトコルを利用して通信が行われる。本実施形態の通信システム１では、コントローラ１０及びモータ制御装置２０（複数の産業機器の一例）の各々は、同期通信可能である。
【００３９】
同期通信とは、送信側の機器がデータを送信するタイミングと、受信側の機器がデータを受信するタイミングと、を合わせる通信方式である。同期通信では、データ通信のリクエストが送信されてからレスポンスを受信するまでの間は、原則として他の処理は実行されない。このため、送信側の機器は、受信側の機器にデータを送信した後は、レスポンスを受信するのを待機する。受信側の機器は、送信側の機器からデータを受信すると、すぐに処理を実行し、送信側の機器にレスポンスとして処理結果を返す。送信側の機器は、処理結果を受信すると、次の処理に移行する。同期通信が行われない場合には、非同期通信を利用して通信が行われる。
【００４０】
非同期通信とは、送信側の機器がデータを送信するタイミングと、受信側の機器がデータを受信するタイミングと、を合わせずに通信を行う通信方式である。非同期通信では、データ通信のリクエストが送信されてからレスポンスを受信するまでの間に、他の処理を実行可能である。このため、非同期通信では、送信側の機器は、受信側の機器にデータを送信してからレスポンスを受信するまでの間に、他の処理を実行可能である。また、非同期通信では、受信側の機器は、送信側の機器からデータを受信しても、すぐに処理を実行するとは限らない。受信側の機器は、所定の条件が充足されるまで処理の実行を待機したり、同期通信の処理を優先して実行したりする。
【００４１】
同期通信可能とは、同期通信を利用できるネットワーク環境及び通信プロトコルが整っていることである。コントローラ１０とモータ制御装置２０は、必ずしも全ての通信で同期通信をする必要はなく、同期通信と非同期通信を併用してもよいし、同期通信以外の通信方式を利用してもよい。別の言い方をすれば、コントローラ１０とモータ制御装置２０は、ネットワーク環境及び通信プロトコルとしては同期通信を利用できるけれども、あえて同期通信を利用せずに他の通信方式を利用してもよい。
【００４２】
本実施形態では、コントローラ１０及びモータ制御装置２０の各々は、暗号化通信可能である。暗号化通信は、データが暗号化される通信方式である。暗号方式自体は、種々の暗号方式を利用可能であり、例えば、ＤＥＳやＦＥＡＬなどの共通鍵暗号方式であってもよいし、ＲＳＡやＤＳＡなどの公開鍵暗号方式であってもよい。
【００４３】
暗号化通信可能とは、暗号化通信を利用できるネットワーク環境及び通信プロトコルが整っていることである。コントローラ１０とモータ制御装置２０は、必ずしも全ての通信で暗号化通信をする必要はなく、暗号化通信と非暗号化通信を併用してもよい。非暗号化通信とは、暗号化通信を利用しない方式であり、暗号化せずに平文で通信する方式である。別の言い方をすれば、コントローラ１０とモータ制御装置２０は、ネットワーク環境及び通信プロトコルとしては暗号化通信を利用できるけれども、あえて非暗号化通信を利用してもよい。
【００４４】
本実施形態では、コントローラ１０は、暗号化通信に対応しているが、モータ制御装置２０は、暗号化通信に対応している機種と、暗号化通信に対応していない機種と、が存在する場合について説明する。即ち、通信システム１には、暗号化通信に対応している機種だけが含まれていてもよいが、本実施形態では、暗号化通信に対応している機種と、暗号化通信に対応していない機種と、が通信システム１内に混在している場合を説明する。
【００４５】
例えば、モータ制御装置２０Ａ，２０Ｂ，２０Ｄは、暗号化通信に対応した機種であり、ＳＯＣ２４を有しているが、モータ制御装置２０Ｃは、暗号化通信に対応していない機種であり、ＳＯＣ２４を有していない。このため、コントローラ１０とモータ制御装置２０Ａ，２０Ｂ，２０Ｄとの通信は、暗号化通信を利用可能であるが、コントローラ１０とモータ制御装置２０Ｃとの通信は、暗号化通信を利用可能ではないので、全て平文で行われる。
【００４６】
また例えば、モータ制御装置２０Ａ，２０Ｂ，２０Ｄの暗号方式が互いに同じであり、単一の暗号方式だけが用いられてもよいが、本実施形態では、複数の暗号方式が混在する場合を説明する。例えば、モータ制御装置２０Ａ，２０Ｂは、ＤＥＳを利用してコントローラ１０と暗号化通信を行い、モータ制御装置２０Ｄは、ＲＳＡを利用してコントローラ１０と暗号化通信を行う。コントローラ１０は、これら複数の暗号方式に対応可能であるものとする。更に、同じ暗号方式であったとしても、異なるビット数（暗号強度）の方式が混在してもよい。例えば、６４ビットのＤＥＳと、１２８ビットのＤＥＳと、が混在していてもよい。
【００４７】
以上のように、本実施形態では、コントローラ１０とモータ制御装置２０との間で暗号化通信を実現することにより、同期通信可能なコントローラ１０とモータ制御装置２０を含む通信システム１におけるセキュリティを高めるようになっている。以降、通信システム１の詳細を説明する。
【００４８】
［１−３．通信システムで実現される機能］
図２は、通信システム１で実現される機能を示す機能ブロック図である。ここでは、コントローラ１０及びモータ制御装置２０の各々において実現される機能について説明する。なお、モータ制御装置２０Ａ，２０Ｂ，２０Ｄは、同様の機能が実現されるので、図２では１つにまとめて示している。
【００４９】
［１−３−１．コントローラにおいて実現される機能］
図２に示すように、コントローラ１０では、データ記憶部１００、判定部１０１、設定部１０２、暗号化部１０３、送信部１０４、受信部１０５、及び復号化部１０６が実現される。データ記憶部１００は、記憶部１２を主として実現され、判定部１０１、設定部１０２、暗号化部１０３、送信部１０４、受信部１０５、及び復号化部１０６は、ＣＰＵ１１を主として実現される。
【００５０】
［データ記憶部］
データ記憶部１００は、通信を行うために必要なデータを記憶する。例えば、データ記憶部１００は、モータ制御装置２０の機種ごとに暗号化通信の対応状況が示された機種データＤＴ１と、モータ制御装置２０ごとに暗号化通信の設定内容が示された設定データＤＴ２と、を記憶する。
【００５１】
図３は、機種データＤＴ１のデータ格納例を示す図である。図３に示すように、機種データＤＴ１には、モータ制御装置２０の機種、暗号化通信の可否、及び暗号方式が示されている。機種は、モータ制御装置２０の種類であり、型式又は型番と呼ばれることもある。機種は、モータ制御装置２０のメーカが指定した記号列によって示されてもよいし、モータ制御装置２０に付与された名前によって示されてもよい。
【００５２】
暗号化通信の可否は、暗号化通信が可能か否かである。本実施形態では、暗号化通信が可能な機種については、対応している暗号方式の種類が示されるものとするが、全機種で同一形式の暗号を用いる場合には、暗号化通信の可否のみが示されてもよい。機種データＤＴ１は、メーカが用意したものがダウンロードされてもよいし、ユーザが作成してもよい。なお、機種データＤＴ１には、暗号化通信の可否が特に示されなくてもよく、暗号化通信に対応している機種のリストのみが示されてもよい。これとは逆に、機種データＤＴ１には、暗号化通信に対応していない機種のリストが示されてもよい。
【００５３】
図３のデータ格納例であれば、「Ｘ１」という機種は、ＤＥＳに対応しており、「Ｘ２」という機種は、ＲＳＡとＤＥＳに対応している。「Ｘ３」という機種は、ＲＳＡに対応しており、「Ｘ４」という機種は、暗号化通信に対応していない。例えば、モータ制御装置２０Ａ，２０Ｂは、機種「Ｘ１」であり、ＤＥＳに対応している。また例えば、モータ制御装置２０Ｃは、機種「Ｘ４」であり、暗号化通信に対応していない。また例えば、モータ制御装置２０Ｄは、機種「Ｘ３」であり、ＲＳＡに対応している。
【００５４】
なお、図３では、暗号方式だけが機種データＤＴ１に示されているが、例えば、利用可能なビット数も機種データＤＴ１に示されていてもよい。また例えば、機種データＤＴ１には、単一のメーカの機種だけが示されてもよいし、複数のメーカの機種が示されてもよい。また例えば、ある特定のメーカだけでなく、複数のメーカが暗号化通信に対応可能であってもよく、この場合、メーカごとに、別々の機種データＤＴ１を用意してもよい。
【００５５】
図４は、設定データＤＴ２のデータ格納例を示す図である。図４に示すように、設定データＤＴ２には、コントローラ１０の通信相手（即ち、モータ制御装置２０）ごとに、暗号通信の利用有無、利用する暗号方式、及び利用する鍵が示される。鍵は、暗号化と復号化の少なくとも一方で用いられる情報であり、例えば、共通鍵暗号方式であれば、暗号化と復号化の両方で利用される共通鍵であり、公開鍵暗号方式であれば、暗号化で利用される公開鍵と復号化で利用される秘密鍵である。鍵は、所定の鍵生成アルゴリズムで生成されてもよいし、ユーザが入力した任意の記号列であってもよい。
【００５６】
図４のデータ格納例であれば、コントローラ１０とモータ制御装置２０Ａ，２０Ｂとの間で、鍵「Ｙ１」を利用してＤＥＳの暗号化通信が行われることが示されている。なお、モータ制御装置２０Ａが利用する鍵と、モータ制御装置２０Ｂが利用する鍵と、は同じであってもよいし異なっていてもよい。また例えば、コントローラ１０とモータ制御装置２０Ｃとの間では、暗号化通信が行われないことが示されている。また例えば、コントローラ１０とモータ制御装置２０Ｄとの間では、鍵「Ｙ２」（公開鍵と秘密鍵のセット）を利用してＲＳＡの暗号化通信が行われることが示されている。
【００５７】
本実施形態では、暗号化通信で利用される鍵がデータ記憶部１００に予め記憶されている場合を説明するが、乱数等を利用してその場で鍵が生成され、コントローラ１０とモータ制御装置２０との間で交換されてもよい。データ記憶部１００は、少なくとも１つの暗号方式の鍵を記憶すればよく、例えば、ある１つの暗号方式の鍵だけを記憶してもよいし、複数の暗号方式の各々の鍵を記憶してもよい。また、データ記憶部１００は、ある暗号方式に対し、少なくとも１つの鍵を記憶すればよく、例えば、複数の通信相手で共通の１つの鍵だけを記憶してもよいし、通信相手によって使い分けるために複数の鍵を記憶してもよい。
【００５８】
なお、データ記憶部１００が記憶するデータは、上記の例に限られない。例えば、データ記憶部１００は、暗号化通信で利用される暗号アルゴリズムを記憶する。本実施形態では、暗号アルゴリズムは、暗号化の計算式と復号化の計算式とを含むものとするが、暗号化の計算式と復号化の計算式とは、データとして別々であってもよい。他にも例えば、データ記憶部１００は、後述する機器情報を記憶してもよいし、モータ制御装置２０のＩＰアドレスを記憶してもよい。また例えば、データ記憶部２００は、モータ制御装置２０に対する指令が時系列的に示されたプログラム又はパラメータを記憶してもよいし、モータ制御装置２０から受信した応答データやトレースデータなどを記憶してもよい。
【００５９】
［判定部］
判定部１０１は、通信システム１のネットワーク構成が変更されたか否かを判定する。ネットワーク構成とは、ネットワークＮに接続された産業機器の構成（通信システム１に含まれる産業機器の構成）であり、例えば、産業機器そのものを意味してもよいし、産業機器のハードウェア構成（部品構成）であってもよい。ネットワークＮに何の産業機器が接続されているかは、ネットワーク構成の一例である。また、ネットワークＮに接続された産業機器がどのようなハードウェア構成（例えば、通信インタフェースの性能やＳＯＣ２４の有無など）を有しているかは、ネットワーク構成の一例である。
【００６０】
例えば、判定部１０１は、産業機器が追加、除外、又は交換された場合に、ネットワーク構成が変更されたと判定する。また例えば、判定部１０１は、産業機器自体は追加、除外、又は交換されていないが、産業機器のハードウェア構成が追加、除外、又は交換された場合（例えば、通信インタフェースが交換されたりＳＯＣ２４が追加されたりした場合）に、ネットワーク構成が変更されたと判定する。
【００６１】
本実施形態では、ネットワーク構成が変更された場合に、ユーザが所定の変更操作を行うものとする。このため、判定部１０１は、変更操作が行われたか否かを判定することによって、ネットワーク構成が変更されたか否かを判定する。変更操作は、ネットワーク構成を変更した場合にユーザが行う所定の操作であればよい。例えば、ユーザは、エンジニアリングツールがインストールされたパーソナルコンピュータ等をコントローラ１０に接続し、変更操作を行う。
【００６２】
ユーザが変更操作を行うと、コントローラ１０のデータ記憶部１００には、フラグ等の情報を利用して、変更操作が行われた旨が記録される。当該情報は、変更操作が行われたか否かを示し、変更操作が行われた場合に第１の値となり、変更操作が行われない場合に第２の値となる。判定部１０１は、当該情報を参照することによって判定処理を実行する。判定部１０１は、変更操作が行われていない場合には、ネットワーク構成が変更されたと判定せず、変更操作が行われた場合に、ネットワーク構成が変更されたと判定する。
【００６３】
なお、判定部１０１の判定方法は、上記の例に限られない。ユーザがネットワーク構成の変更を手動で指示するのではなく、判定部１０１は、ネットワークＮに接続されたモータ制御装置２０から受信した情報を利用して判定処理を実行してもよい。例えば、判定部１０１は、コンフィグレーション時や電源投入時などにおいて取得される機器情報に基づいて、判定処理を実行する。
【００６４】
機器情報は、ネットワークＮに接続されている機器を示す情報であり、例えば、機器名、機種、シリアル番号、又はＩＰアドレスなどである。機器情報は、ネットワークＮに接続された機器に記憶される。なお、機器情報には、当該機器のハードウェア構成が示されてもよく、例えば、ＣＰＵ２１の種類や性能、又は、ＳＯＣ２４の有無が示されてもよい。コントローラ１０は、過去に取得された機器情報をデータ記憶部１００に記録しておき、判定部１０１は、最新の機器情報と過去の機器情報とが一致していれば、ネットワーク構成が変更されたと判定せず、これらが一致していなければネットワーク構成が変更されたと判定する。
【００６５】
他にも例えば、ネットワークＮに新たに追加されたモータ制御装置２０やハードウェア構成が変更されたモータ制御装置２０が、コントローラ１０に、自発的に所定の通知を送信してもよい。この場合、判定部１０１は、当該所定の通知を受信したか否かを判定することによって、ネットワーク構成が変更されたか否かを判定する。
【００６６】
［設定部］
設定部１０２は、通信を行う産業機器の組み合わせごとに、暗号化通信に関する設定を行う。暗号化通信に関する設定は、機種に関係なく行われてもよいが、本実施形態では、設定部１０２は、通信を行う産業機器の組み合わせごとに、当該組み合わせに含まれる産業機器の機種に基づいて、暗号化通信に関する設定を行う。
【００６７】
通信を行う産業機器の組み合わせとは、データを送受信する複数の産業機器のグループであり、本実施形態のように、コントローラ１０とモータ制御装置２０との間で通信するのであれば、産業機器のペアである。別の言い方をすれば、通信を行う産業機器の組み合わせは、データの送信側の機器と受信側の機器の組み合わせである。本実施形態では、マスタ機器であるコントローラ１０と、スレーブ機器であるモータ制御装置２０と、が通信するので、通信を行う産業機器の組み合わせは、マスタ機器とスレーブ機器の組み合わせとなる。また、本実施形態では、コントローラ１０において設定部１０２が実現されるので、設定部１０２は、コントローラ１０の通信相手となるモータ制御装置２０ごとに、暗号化に関する設定を行う。なお、設定部１０２は、ネットワークＮ内の全てのモータ制御装置２０の設定をするのではなく、一部のモータ制御装置２０についてのみ設定をしてもよい。
【００６８】
暗号化通信に関する設定とは、暗号化通信を利用するか否かの設定、利用する暗号方式の設定、及び利用する鍵の設定の少なくとも１つを意味する。利用する暗号方式の設定とは、利用する暗号方式の種類を意味してもよいし、利用する暗号方式のビット数を意味してもよい。本実施形態では、設定部１０２は、暗号化通信を利用するか否かの決定結果、利用する暗号方式、及び利用する鍵の各々を設定データＤＴ２に記録することによって設定を行う場合を説明するが、設定内容は他のデータに保持されてもよい。
【００６９】
本実施形態では、コントローラ１０がモータ制御装置２０から受信する機器情報に機種が示されており、設定部１０２は、機器情報を参照して機種を特定し、暗号化通信に関する設定を行う場合を説明するが、機種は、任意の方法で取得されてよい。例えば、ユーザがパーソナルコンピュータ等を利用して入力してモータ制御装置２０の機種を入力してもよく、この場合、設定部１０２は、ユーザが入力した機種を参照して機種を特定する。他にも例えば、コントローラ１０は、モータ制御装置２０に対し、機器情報とは別に機種情報だけを要求してもよい。
【００７０】
機種と設定内容との関係は、データ記憶部１００に記憶されており、本実施形態では、この関係が機種データＤＴ１に示されている。この関係は、機種データＤＴ１以外に定義されていてもよく、例えば、プログラムコード（アルゴリズム）の一部として示されていてもよいし、数式やテーブルなどの形式で示されてもよい。設定部１０２は、上記関係を参照し、モータ制御装置２０の機種に関連付けられた設定内容に基づいて、暗号化通信に関する設定を行う。例えば、設定部１０２は、機種データＤＴ１を参照し、モータ制御装置２０の機種に関連付けられた設定内容を特定する。設定部１０２は、当該モータ制御装置２０に対し、当該特定した設定内容を関連付けて設定データＤＴ２に格納することによって、設定を行う。
【００７１】
本実施形態では、設定部１０２は、ネットワーク構成が変更されたと判定された場合に、複数のモータ制御装置２０の暗号化通信に関する設定を行う。別の言い方をすれば、設定部１０２は、ネットワーク構成が変更されたと判定されることを条件として、暗号化通信に関する設定をする。設定部１０２は、ネットワーク構成が変更されたと判定されない場合には、暗号化通信に関する設定をせず、ネットワーク構成が変更されたと判定された場合に、暗号化通信に関する設定を行う。
【００７２】
なお、設定部１０２は、ネットワーク構成が変更された場合ではなく、他のタイミングで暗号化通信に関する設定をしてもよい。例えば、設定部１０２は、電源投入時に設定をしてもよいし、コンフィグレーション時に設定をしてもよい。また例えば、設定部１０２は、ユーザがパーソナルコンピュータ等から所定の操作をした場合に設定をしてもよいし、所定の時刻が訪れた場合などに定期的に設定をしてもよい。
【００７３】
また、設定部１０２は、モータ制御装置２０の機種以外の情報に基づいて、暗号化通信に関する設定をしてもよい。例えば、設定部１０２は、モータ制御装置２０の役割、性能、又はシリアル番号に基づいて、暗号化通信に関する設定をしてもよい。また例えば、設定部１０２は、モータ制御装置２０の物理的構成（例えば、ＳＯＣ２４の有無）に基づいて、暗号化通信に関する設定をしてもよい。他にも例えば、設定部１０２は、モータ制御装置２０の機種に関係なく、全てのモータ制御装置２０について共通の設定をして、同じ暗号方式の同じ鍵が用いられるようにもよい。
【００７４】
［暗号化部］
暗号化部１０３は、送信データを暗号化する。送信データは、送信側の機器から見て送信対象となるデータである。コントローラ１０の場合、送信データは、モータ制御装置２０に対する指令（コマンド）を示す指令データである。指令データには、指令の内容やモータ３０に対する出力などのパラメータが含まれる。暗号化部１０３は、データ記憶部１００に記憶された鍵と暗号アルゴリズムに基づいて、送信データを暗号化する。暗号化の方法自体は、公知の方法を利用すればよい。
【００７５】
本実施形態の通信システム１には、同期通信可能な３つ以上の産業機器が含まれており、暗号化通信を利用する産業機器の組み合わせ（例えば、コントローラ１０とモータ制御装置２０Ａ，２０Ｂ，２０Ｄ）と、暗号化通信を利用しない産業機器の組み合わせ（例えば、コントローラ１０とモータ制御装置２０Ｃ）と、が混在可能である。ここでの混在可能とは、暗号化通信をするグループと、非暗号化通信をするグループと、が含まれ得る状態を意味し、必ずしも両方とも含まれていなければならないわけではない。例えば、暗号化部１０３は、暗号化通信を利用するモータ制御装置２０と通信する場合に送信データを暗号化し、暗号化通信を利用しないモータ制御装置２０と通信する場合には送信データを暗号化しない。
【００７６】
本実施形態では、どのモータ制御装置２０が暗号化通信を利用するかについては、設定部１０２により設定されるので、暗号化部１０３は、設定部１０２の設定結果に基づいて、暗号化通信を利用するモータ制御装置２０と、暗号化通信を利用しないモータ制御装置２０と、を特定する。例えば、暗号化部１０３は、設定データＤＴ２を参照し、送信先のモータ制御装置２０の暗号化通信の有無を特定し、送信データを暗号化するか否かを判定する。
【００７７】
また、本実施形態の通信システム１には、同期通信可能な３つ以上の産業機器が含まれており、第１の暗号方式で暗号化通信する産業機器の組み合わせ（例えば、コントローラ１０とモータ制御装置２０Ａ，２０Ｂ）と、第２の暗号方式で暗号化通信する産業機器の組み合わせ（例えば、コントローラ１０とモータ制御装置２０Ｄ）と、が混在可能である。ここでの混在可能とは、第１の暗号方式を利用するグループと、第２の暗号方式を利用するグループと、が含まれ得る状態を意味し、必ずしも両方とも含まれていなければならないわけではない。第１の暗号方式と第２の暗号方式は、互いに異なっていればよく、例えば、ＤＥＳとＲＳＡのように暗号方式のロジック自体が異なっていてもよいし、暗号方式のロジック自体は同じであるが利用するビット数が異なっていてもよい。例えば、暗号化部１０３は、送信データの送信先のモータ制御装置２０に設定された暗号方式に基づいて、送信データを暗号化する。
【００７８】
どのモータ制御装置２０がどの暗号方式及び鍵を利用するかについては、設定部１０２により設定されるので、暗号化部１０３は、設定部１０２の設定結果に基づいて、利用する暗号方式及び鍵を特定する。例えば、暗号化部１０３は、設定データＤＴ２を参照し、送信先のモータ制御装置２０の暗号方式及び鍵を特定し、当該特定した暗号方式及び鍵に基づいて、送信データを暗号化する。
【００７９】
［送信部］
送信部１０４は、他の産業機器に送信データを送信する。ここでの他の産業機器とは、通信相手の産業機器（送信データの送信先の産業機器）であり、本実施形態では、指令を送るモータ制御装置２０である。送信部１０４は、暗号化通信を利用するモータ制御装置２０に対し、暗号化された送信データを送信し、暗号化通信を利用しないモータ制御装置２０に対し、暗号化されていない平文の送信データを送信する。
【００８０】
［受信部］
受信部１０５は、他の産業機器から、暗号化された受信データを受信する。ここでの他の産業機器とは、通信相手の産業機器（受信データの送信元の産業機器）であり、本実施形態では、指令を送ったモータ制御装置２０である。受信データは、受信側の機器から見て受信対象となるデータである。コントローラ１０の場合、受信データは、モータ制御装置２０からのレスポンスを示す応答データである。例えば、応答データには、指令に対するモータ制御装置２０の動作結果が示される。受信部１０５は、暗号化通信を利用するモータ制御装置２０から、暗号化された受信データを受信し、暗号化通信を利用しないモータ制御装置２０から、平文の受信データを送信する。
【００８１】
［復号化部］
復号化部１０６は、受信データを復号化する。復号化部１０６は、データ記憶部１００に記憶された鍵と暗号アルゴリズムに基づいて、受信データを復号化する。復号化の方法自体は、公知の方法を利用すればよい。
【００８２】
復号化部１０６は、暗号化通信を利用するモータ制御装置２０と通信する場合に受信データを復号化し、暗号化通信を利用しないモータ制御装置２０と通信する場合には受信データは平文なので復号化しない。どのモータ制御装置２０が暗号化通信を利用するかについては、設定部１０２により設定されるので、暗号化部１０３は、設定部１０２の設定結果に基づいて、暗号化通信を利用するモータ制御装置２０と、暗号化通信を利用しないモータ制御装置２０と、を特定する。例えば、復号化部１０６は、設定データＤＴ２を参照し、送信元のモータ制御装置２０の暗号化通信の有無を特定し、受信データを復号化するか否かを判定する。
【００８３】
また、本実施形態では、複数の暗号方式が混在可能なので、復号化部１０６は、受信データの送信元のモータ制御装置２０に設定された暗号方式及び鍵に基づいて、受信データを復号化する。どのモータ制御装置２０がどの暗号方式及び鍵を利用するかについては、設定部１０２により設定されるので、復号化部１０６は、設定部１０２の設定結果に基づいて、利用する暗号方式及び鍵を特定する。例えば、復号化部１０６は、設定データＤＴ２を参照し、送信元のモータ制御装置２０の暗号方式及び鍵を特定し、当該特定した暗号方式及び鍵に基づいて、受信データを復号化する。
【００８４】
［１−３−２．モータ制御装置において実現される機能］
図２に示すように、モータ制御装置２０Ａ，２０Ｂ，２０Ｄでは、データ記憶部２００、暗号化部２０１、送信部２０２、受信部２０３、及び復号化部２０４が実現される。一方、モータ制御装置２０Ｃは、暗号化通信を利用しないので、暗号化部２０１と復号化部２０４は実現されず、データ記憶部２００、送信部２０２及び受信部２０３が実現される。
【００８５】
データ記憶部２００は、記憶部２２及びＳＯＣ２４内のメモリを主として実現される。暗号化部２０１及び復号化部２０４は、ＣＰＵ２１を主として実現されてもよいが、本実施形態では、ＳＯＣ２４を主として実現される。送信部２０２及び受信部２０３は、ＳＯＣ２４を主として実現されてもよいが、本実施形態では、ＣＰＵ２１を主として実現される。少なくとも暗号化部２０１及び復号化部２０４が、第２の制御回路の一例であるＳＯＣ２４によって実現されるようにすればよく、他の構成がＳＯＣ２４によって実現されてもよい。
【００８６】
［データ記憶部］
データ記憶部２００は、通信を行うために必要なデータを記憶する。例えば、データ記憶部２００は、暗号化通信で利用する鍵と、暗号アルゴリズムと、を記憶する。データ記憶部２００は、ある１つの暗号方式に対して複数の鍵を記憶してもよい。複数の暗号方式に対応する場合には、データ記憶部２００は、暗号方式ごとに鍵を記憶してもよいし、複数の暗号方式に共通の鍵を記憶してもよい。また、複数の暗号方式に対応する場合には、データ記憶部２００は、暗号方式ごとに暗号アルゴリズムを記憶する。鍵は、予めデータ記憶部２００に記憶されていてもよいし、コントローラ１０によって配信されてもよい。
【００８７】
なお、データ記憶部２００が記憶するデータは、上記の例に限られない。例えば、データ記憶部２００は、モータ制御装置２０が対応する暗号方式を示す情報を記憶してもよいし、機器情報を記憶してもよい。また例えば、データ記憶部２００は、機器情報とは別にシリアル番号及び機種情報を記憶してもよいし、コントローラ１０のＩＰアドレスを記憶してもよい。また例えば、データ記憶部２００は、モータ３０を制御するためのプログラム又はパラメータを記憶してもよい。
【００８８】
［暗号化部］
暗号化部２０１は、送信データを暗号化する。ここでの送信データは、コントローラ１０から見ると受信データである。モータ制御装置２０の場合、送信データは、モータ制御装置２０に対するレスポンスである。送信データには、センサ４０Ａ及びエンコーダ５０Ａの検出信号に基づく物理量などが格納されたり、時系列的に動作状況が格納されたトレースデータなどが格納されたりする。暗号化部２０１は、データ記憶部２００に記憶された鍵と暗号アルゴリズムに基づいて、送信データを暗号化する。暗号化の方法自体は、公知の方法を利用すればよい。
【００８９】
［送信部］
送信部２０２は、他の産業機器に送信データを送信する。ここでの他の産業機器とは、通信相手の産業機器（送信データの送信先の産業機器）であり、本実施形態では、レスポンスを送るコントローラ１０である。モータ制御装置２０Ａ，２０Ｂ，２０Ｄの送信部２０２は、コントローラ１０に暗号化された送信データを送信し、モータ制御装置２０Ｃの送信部２０２は、コントローラ１０に平文の送信データを送信する。
【００９０】
［受信部］
受信部２０３は、他の産業機器から、受信データを受信する。ここでの他の産業機器とは、通信相手の産業機器（受信データの送信元の産業機器）であり、本実施形態では、指令を送るコントローラ１０である。また、ここでの受信データは、コントローラ１０から見ると送信データである。モータ制御装置２０Ａ，２０Ｂ，２０Ｄの受信部２０３は、コントローラ１０から、暗号化された受信データを受信し、モータ制御装置２０Ｃの受信部２０３は、コントローラ１０から、平文の受信データを送信する。
【００９１】
［復号化部］
復号化部２０４は、受信データを復号化する。復号化部２０４は、データ記憶部２００に記憶された鍵と暗号アルゴリズムに基づいて、受信データを復号化する。復号化の方法自体は、公知の方法を利用すればよい。
【００９２】
［１−４．通信システムで実行される処理］
次に、通信システム１で実行される処理について説明する。ここでは、通信システム１で実行される処理の一例として、暗号化通信に関する設定をするためのコンフィグレーション処理と、モータ３０を制御するためのモータ制御処理と、について説明する。以降説明する処理は、図２に示す機能ブロックにより実行される処理の一例である。
【００９３】
［コンフィグレーション処理］
図５は、コンフィグレーション処理を示すフロー図である。コンフィグレーション処理は、ＣＰＵ１１，２１がそれぞれ記憶部１２，２２に記憶されたプログラムに従って動作することによって実行される。なお、コンフィグレーション処理における通信は、同期通信であってもよいし、非同期通信であってもよい。
【００９４】
図５に示すように、まず、コントローラ１０において、ＣＰＵ１１は、ネットワーク構成が変更されたか否かを判定する（Ｓ１００）。ネットワーク構成の変更有無の判定方法は、先述した通りであり、例えば、ＣＰＵ１１は、ユーザがネットワーク構成を変更した時に行う変更操作が行われたか否かを判定する。Ｓ１００においては、コンフィグレーションの実行要否が判定されるということもできる。
【００９５】
ネットワーク構成が変更されたと判定されない場合（Ｓ１００；Ｎ）、本処理は終了する。この場合、設定データＤＴ２を変更する必要がないので、既存の設定データＤＴ２に基づいて、コントローラ１０とモータ制御装置２０との間の通信が行われる。なお、設定データＤＴ２が記憶部１２に存在しない場合には、Ｓ１００の処理が省略され、Ｓ１０１〜Ｓ１０５の処理が実行されてもよい。
【００９６】
一方、ネットワーク構成が変更されたと判定された場合（Ｓ１００；Ｙ）、ＣＰＵ１１は、ネットワークＮ全体に対し、機器情報を要求する（Ｓ１０１）。Ｓ１０１においては、ＣＰＵ１１は、ブロードキャストアドレス宛てに、機器情報を送信する旨の指令を送信する。ネットワークＮに接続された全ての機器は、当該指令に応じて自身の機器情報を送信し、コントローラ１０は、ネットワークＮに何の機器が接続されているかを知ることができる。
【００９７】
モータ制御装置２０においては、機器情報の要求を受信し（Ｓ１０２）、ＣＰＵ２１は、コントローラ１０に、自身の機器情報を送信する（Ｓ１０３）。機器情報は、予め記憶部２２に記憶されており、Ｓ１０３においては、ＣＰＵ２１は、記憶部２２に記憶された機器情報を読み出して送信する。
【００９８】
コントローラ１０においては、各モータ制御装置２０から機器情報を受信し（Ｓ１０４）、ＣＰＵ１１は、当該機器情報と機種データＤＴ１とに基づいて、各モータ制御装置２０の暗号化通信に関する設定を行い（Ｓ１０５）、本処理は終了する。Ｓ１０５においては、ＣＰＵ１１は、機器情報を参照して機器名と機種を特定し、当該機器名に対し、当該特定した機種に関連付けられた設定内容を関連付けて設定データＤＴ２に格納することによって、暗号化通信に関する設定を行う。Ｓ１０５の処理が実行されることにより、モータ制御装置２０ごとに、暗号化通信の利用有無、利用する暗号方式、及び利用する鍵が設定される。
【００９９】
［モータ制御処理］
図６は、モータ制御処理を示すフロー図である。モータ制御処理は、ＣＰＵ１１，２１がそれぞれ記憶部１２，２２に記憶されたプログラムに従って動作し、ＳＯＣ２４が自身に記憶されたファームウェアに従って動作することによって実行される。なお、モータ制御処理における通信は、同期通信であってもよいし、非同期通信であってもよい。
【０１００】
図６に示すように、まず、コントローラ１０において、ＣＰＵ１１は、記憶部１２に記憶されたプログラム及びパラメータに基づいて、モータ制御装置２０に対する指令データを生成する（Ｓ２００）。Ｓ２００において生成される指令データは、コントローラ１０から見れば送信データであり、モータ制御装置２０から見れば受信データである。
【０１０１】
ＣＰＵ１１は、コンフィグレーション処理により設定された設定データＤＴ２に基づいて、指令データの送信先のモータ制御装置２０の暗号化通信に関する設定を特定する（Ｓ２０１）。Ｓ２０１においては、ＣＰＵ１１は、設定データＤＴ２を参照し、送信先のモータ制御装置２０に関連付けられた設定内容を取得する。本実施形態では、コントローラ１０とモータ制御装置２０Ａ，２０Ｂ，２０Ｄとの間では、暗号化通信が行われるので、後述するＳ２０２〜Ｓ２１１の処理が実行され、コントローラ１０とモータ制御装置２０Ｃとの間では、非暗号化通信が行われるので、後述するＳ２１２〜Ｓ２１７の処理が実行される。
【０１０２】
送信先のモータ制御装置２０が暗号化通信を利用する場合（Ｓ２０１；暗号化通信）、即ち、送信先がモータ制御装置２０Ａ，２０Ｂ，２０Ｄである場合、ＣＰＵ１１は、設定データＤＴ２に基づいて、指令データを暗号化する（Ｓ２０２）。Ｓ２０２においては、ＣＰＵ１１は、設定データＤＴ２が示す暗号方式及び鍵に基づいて、指令データを暗号化する。ＣＰＵ１１は、送信先のモータ制御装置２０に、Ｓ２０２で暗号化された指令データを送信する（Ｓ２０３）。
【０１０３】
モータ制御装置２０Ａ，２０Ｂ，２０Ｄにおいては、暗号化された指令データを受信し（Ｓ２０４）、ＳＯＣ２４は、指令データを復号化する（Ｓ２０５）。Ｓ２０５においては、ＳＯＣ２４のＣＰＵ２４０は、暗号チップ２４１に指令データを復号化させ、復号化された指令データを取得してＣＰＵ２１に送る。
【０１０４】
ＣＰＵ２１は、復号化された指令データに基づいて、モータ３０の動作を制御する（Ｓ２０６）。Ｓ２０６においては、ＣＰＵ２１は、指令データに基づいて、モータ３０への出力電圧を制御する。ＣＰＵ２１は、指令データに対するレスポンスである応答データを生成する（Ｓ２０７）。Ｓ２０７においては、ＣＰＵ２１は、センサ４０及びエンコーダ５０の各々の検出信号に基づいて、応答データを生成し、ＳＯＣ２４に送る。
【０１０５】
ＳＯＣ２４は、Ｓ２０７で生成した応答データを暗号化する（Ｓ２０８）。Ｓ２０８においては、ＳＯＣ２４の暗号チップ２４１Ｂは、自身に記憶された鍵に基づいて、応答データを暗号化する。ＳＯＣ２４は、コントローラ１０に、Ｓ２０８で暗号化した応答データを送信する（Ｓ２０９）。
【０１０６】
コントローラ１０においては、暗号化された応答データを受信し（Ｓ２１０）、ＣＰＵ１１は、応答データを復号化する（Ｓ２１１）。Ｓ２１１においては、ＣＰＵ１１は、記憶部１２に記憶された鍵に基づいて、暗号化された応答データを取得し、記憶部１２に記録する。
【０１０７】
一方、送信先のモータ制御装置２０が暗号化通信を利用しない場合（Ｓ２０１；非暗号化通信）、即ち、送信先がモータ制御装置２０Ｃである場合、ＣＰＵ１１は、通信相手のモータ制御装置２０に、指令データを暗号化せずに平文で送信する（Ｓ２１２）。
【０１０８】
モータ制御装置２０Ｃにおいては、平文の指令データを受信し（Ｓ２１３）、ＣＰＵ２１は、指令データに基づいて、モータ３０の動作を制御する（Ｓ２１４）。Ｓ２１４の処理は、Ｓ２０６の処理と同様である。続くＳ２１５の処理とＳ２１６の処理は、Ｓ２０７の処理とＳ２０９の処理と同様である。Ｓ２１５で生成された応答データは、暗号化されずに、Ｓ２１６において平文で送信される。コントローラ１０においては、平文の応答データを受信する（Ｓ２１７）。受信した応答データは、記憶部１２に記録される。
【０１０９】
実施形態１の通信システム１によれば、同期通信可能な複数の産業機器を含む通信システム１において、通信を行う複数の産業機器が、送信データを暗号化して送信し、受信データを復号化することにより、送信データ及び受信データの改ざんを防止し、セキュリティを高めることができる。例えば、モータ３０を制御するモータ制御装置２０が産業機器に相当する場合、モータ３０の動作指令や動作波形が改ざんされると、モータ制御に異常をきたす可能性があるが、データの改ざんを防止することで、モータ制御に異常をきたすことを防止することができる。
【０１１０】
また、通信を行う産業機器の組み合わせごとに、暗号化通信に関する設定が行われることにより、通信を行う産業機器の組み合わせに応じた柔軟な通信が可能になる。例えば、通信を行う産業機器の組み合わせに、暗号化通信に対応していない産業機器が含まれている場合、暗号化通信をしないようにして、暗号化通信に対応していない産業機器が復号化できず動作に支障をきたすことを防止することができる。また例えば、通信を行う産業機器の組み合わせに含まれる産業機器の性能に応じて、暗号化通信の強度（暗号化及び復号化の計算量）を変えるようにした場合、性能に応じたセキュリティ向上、処理負荷軽減、及び処理速度向上を実現できる。また例えば、通信を行う産業機器の組み合わせに含まれる産業機器が利用可能な暗号方式で暗号化通信するようにした場合、確実に暗号化と復号化をすることができ、産業機器の動作に支障をきたすことを防止することができる。
【０１１１】
また、通信を行う産業機器の組み合わせごとに、当該組み合わせに含まれる産業機器の機種に基づいて暗号化通信に関する設定が行われることにより、機種に応じた柔軟な通信が可能になる。例えば、通信を行う産業機器の組み合わせに、暗号化通信に対応していない機種の産業機器が含まれている場合、暗号化通信をしないようにして、暗号化通信に対応していない機種の産業機器が復号化できず動作に支障をきたすことを防止することができる。また例えば、通信を行う産業機器の組み合わせに含まれる産業機器の機種の性能に応じて、暗号化通信の強度（暗号化及び復号化の計算量）を変えるようにした場合、機種の性能に応じたセキュリティ向上、処理負荷軽減、及び処理速度向上を実現できる。また例えば、通信を行う産業機器の組み合わせに含まれる産業機器の機種が利用可能な暗号方式で暗号化通信するようにした場合、確実に暗号化と復号化をすることができ、特定の機種の産業機器の動作に支障をきたすことを防止することができる。
【０１１２】
また、通信システム１において、暗号化通信を利用する産業機器の組み合わせと、暗号化通信を利用しない産業機器の組み合わせと、を混在可能とすることで、より柔軟な通信が可能になる。例えば、暗号化通信に対応可能な産業機器と、暗号化通信に対応していない産業機器と、が混在していた場合に、全ての産業機器で暗号化通信をしようとすると、暗号化通信に対応していない産業機器は、データを復号化することができず、動作に支障をきたす可能性がある。この点、通信システム１によれば、暗号化通信に対応していない産業機器については、暗号化通信を利用しないことで、動作に支障をきたすことを防止することができる。更に、暗号化通信に対応可能な産業機器については、暗号化通信をすることで、セキュリティを担保することができる。
【０１１３】
また、通信システム１において、第１の暗号方式で暗号化通信する産業機器の組み合わせと、第２の暗号方式で暗号化通信する産業機器の組み合わせと、を混在可能とすることで、より柔軟な通信が可能になる。例えば、性能の異なる産業機器が混在していた場合に、全ての産業機器で高い強度の暗号化通信をしようとすると、低性能の産業機器は、処理負荷が高くなり、動作に支障をきたす可能性がある。この点、通信システム１によれば、高性能の産業機器については、計算量の多い高い強度の暗号方式を利用し、低性能の産業機器については、計算量の少ない低い強度の暗号方式を利用することができ、セキュリティを高めつつ、産業機器の処理負荷を軽減することができる。
【０１１４】
また、少なくとも暗号化部及び復号化部が、自身に接続された機器を制御するための第１の制御回路（例えば、ＣＰＵ２１）とは別に設けられた、暗号化通信をするための第２の制御回路（例えば、ＳＯＣ２４）により実現されることで、暗号化及び復号化のために第１の制御回路を使用しないようにすることができ、処理負荷を低減することができる。例えば、産業機器に外付けで第２の制御回路を接続する場合には、産業機器内部に第２の制御回路を組み込まなくても、暗号化通信に対応させることができる。
【０１１５】
また、通信システム１のネットワーク構成が変更されたと判定された場合に、複数の産業機器の暗号化通信に関する設定を行うことにより、最新のネットワーク構成に応じた暗号化通信を提供し、セキュリティを効果的に高めることができる。
【０１１６】
また、マスタ機器とスレーブ機器が通信する場合のセキュリティを向上させることができる。
【０１１７】
［２．実施形態２］
実施形態１では、モータ制御装置２０の機種に応じて、暗号化通信の有無や暗号方式が決定される場合を説明したが、通信システム１では、暗号化通信が必要なデータもあれば、暗号化通信が不要なデータもある。このため、データの種類に応じて、暗号化通信の有無が決定されたり暗号方式が決定されたりしてもよい。以降、通信システム１の別実施形態である実施形態２について説明する。なお、実施形態２では、実施形態１と同様の構成については説明を省略する。
【０１１８】
実施形態２では、コントローラ１０のデータ記憶部１００は、データの種類ごとに暗号化通信の要否が示された種類データＤＴ３を記憶する。図７は、種類データＤＴ３のデータ格納例を示す図である。図７に示すように、種類データＤＴ３は、データの種類と、暗号化通信の要否と、が示されている。なお、これらの関係は、種類データＤＴ３以外に定義されていてもよく、例えば、プログラムコード（アルゴリズム）の一部として示されていてもよいし、数式やテーブルなどの形式で示されてもよい。種類データＤＴ３には、データの種類ごとに暗号方式及び鍵が示されていてもよい。
【０１１９】
図７のデータ格納例であれば、動作波形、動作指令、及びパラメータは、盗み見られたり改ざんされたりすると、ユーザのノウハウが流出したりモータ制御装置２０の動作に支障をきたしたりするため、暗号化通信が必要とされている。一方、機器情報は、盗み見られたり改ざんされたりしてもあまり影響はないとして、暗号化通信は不要とされている。なお、モータ制御装置２０のデータ記憶部２００も同様の種類データＤＴ３を記憶しているものとする。
【０１２０】
コントローラ１０の暗号化部１０３は、送信データの種類に基づいて、送信データを暗号化する。本実施形態では、暗号化部１０３は、種類データＤＴ３と送信データの種類に基づいて、送信データを暗号化する。例えば、暗号化部１０３は、送信データの種類に基づいて、送信データを暗号化するか否かを決定する。また例えば、暗号化部１０３は、送信データの種類に基づいて、送信データの暗号方式を決定する。また例えば、暗号化部１０３は、送信データの種類に基づいて、送信データの暗号化で使用する鍵を決定する。モータ制御装置２０の暗号化部２０１についても、暗号化部１０３と同様に、送信データの種類に基づいて、送信データを暗号化する。
【０１２１】
コントローラ１０の復号化部１０６は、受信データの種類に基づいて、受信データを復号化する。本実施形態では、復号化部１０６は、種類データＤＴ３と受信データの種類に基づいて、受信データを復号化する。例えば、復号化部１０６は、受信データの種類に基づいて、受信データを復号化するか否かを決定する。また例えば、復号化部１０６は、受信データの種類に基づいて、受信データの暗号方式を決定する。また例えば、復号化部１０６は、受信データの種類に基づいて、受信データの復号化で使用する鍵を決定する。モータ制御装置２０の復号化部２０４についても、復号化部１０６と同様に、受信データの種類に基づいて、受信データを復号化する。
【０１２２】
実施形態２では、図６と同様のフローでモータ制御処理が実行されるが、Ｓ２００において指令データが生成された場合に、ＣＰＵ１１は、指令データの種類に基づいて、暗号化するデータであるか否かを判定する。暗号化するデータであると判定された場合、Ｓ２０１の処理に移行し、指令データが暗号化されて送信される。一方、暗号化するデータであると判定されない場合、Ｓ２１２の処理に移行し、平文で指令データが送信される。
【０１２３】
また、Ｓ２０７又はＳ２１５において応答データが生成された場合に、ＣＰＵ２１は、応答データの種類に基づいて、暗号化するデータであるか否かを判定する。暗号化するデータであると判定された場合、Ｓ２０８又はＳ２１６の処理が実行され、応答データが暗号化されて送信される。一方、暗号化するデータであると判定されない場合に、Ｓ２０８又はＳ２１６の処理は実行されず、平文で応答データが送信される。
【０１２４】
実施形態２の通信システム１によれば、送信データの種類に基づいて送信データを暗号化し、受信データの種類に基づいて受信データを復号化することにより、データの種類に応じた暗号化と復号化をすることができ、機種に応じた柔軟な通信が可能になる。例えば、データの種類によってその重要度は異なる。重要なデータについては、暗号化する必要があり、あまり重要ではないデータについては、そもそも暗号化する必要がないこともある。この点、重要なデータに絞って暗号化することにより、あまり重要ではないデータを暗号化及び復号化する必要がなくなり、産業機器の処理負荷を軽減することができる。また例えば、全てのデータを暗号化する場合であったとしても、重要なデータについては、強度の高い暗号方式で暗号化し、あまり重要ではないデータについては、強度の低い暗号方式で暗号化することで、全てのデータについて複雑な計算を要する強度の高い暗号方式が利用されるわけではなくなるので、産業機器の処理負荷を軽減し、処理速度を向上することができる。
【０１２５】
［３．実施形態３］
実施形態１及び２では、モータ制御装置２０の機種やデータの種類に応じて、暗号化通信の有無や暗号方式が決定される場合を説明したが、同期通信を利用するか否かに基づいて、暗号化通信の有無や暗号方式が決定されてもよい。以降、通信システム１の別実施形態である実施形態３について説明する。なお、実施形態３では、実施形態１及び２と同様の構成については説明を省略する。
【０１２６】
コントローラ１０の暗号化部１０３は、同期通信を利用するか否かに基づいて、送信データを暗号化する。同期通信を利用するか否かは、モータ制御処理やコンフィグレーション処理などを実行するためのプログラムに記述されているものとする。暗号化部１０３は、送信データが生成されて送信される前に、送信データが同期通信で送信されるか否かを判定する。例えば、暗号化部１０３は、送信データが同期通信で送信される場合に送信データを暗号化し、送信データが同期通信で送信されない場合に送信データを暗号化しない。これとは逆に、暗号化部１０３は、送信データが同期通信で送信される場合に送信データを暗号化せず、送信データが同期通信で送信されない場合に送信データを暗号化してもよい。モータ制御装置２０の暗号化部２０１についても、暗号化部１０３と同様に、同期通信を利用するか否かに基づいて、送信データを暗号化する。
【０１２７】
復号化部１０６は、同期通信を利用するか否かに基づいて、受信データを復号化する。復号化部１０６は、受信データが受信される前又は後に、受信データが同期通信で受信されるか否かを判定する。例えば、復号化部１０６は、受信データが同期通信で受信される場合に受信データを復号化し、受信データが同期通信で送信されない場合に受信データを復号化しない。これとは逆に、復号化部１０６は、受信データが同期通信で受信される場合に受信データを復号化せず、受信データが同期通信で受信されない場合に受信データを暗号化してもよい。モータ制御装置２０の復号化部２０４についても、復号化部１０６と同様に、同期通信を利用するか否かに基づいて、受信データを復号化する。
【０１２８】
実施形態３では、図６と同様のフローでモータ制御処理が実行されるが、Ｓ２００において指令データが生成された場合に、ＣＰＵ１１は、指令データを同期通信で送信するか否かを判定する。例えば、指令データを同期通信で送信すると判定された場合、Ｓ２０１の処理に移行し、指令データが暗号化されて送信される。一方、指令データを同期通信で送信すると判定されない場合に、Ｓ２１２の処理に移行し、平文で指令データが送信される。
【０１２９】
また、Ｓ２０７又はＳ２１５において応答データが生成された場合に、ＣＰＵ２１は、応答データの種類に基づいて、応答データを同期通信で送信するか否かを判定する。例えば、応答データを同期通信で送信すると判定された場合に、Ｓ２０８又はＳ２１６の処理が実行され、応答データが暗号化されて送信される。一方、指令データを同期通信で送信すると判定されない場合に、Ｓ２０８又はＳ２１６の処理は実行されず、平文で応答データが送信される。
【０１３０】
なお、指令データを同期通信で送信すると判定された場合、Ｓ２１２の処理に移行し、平文で指令データが送信されてもよい。一方、指令データを同期通信で送信すると判定されない場合に、Ｓ２０１の処理に移行し、指令データが暗号化されて送信されてもよい。また、応答データを同期通信で送信すると判定された場合に、Ｓ２０８又はＳ２１６の処理は実行されず、平文で応答データが送信されてもよい。一方、指令データを同期通信で送信すると判定されない場合に、Ｓ２０８又はＳ２１６の処理が実行され、応答データが暗号化されて送信されてもよい。
【０１３１】
実施形態３の通信システム１によれば、同期通信を利用するか否かに基づいて送信データを暗号化し、同期通信を利用するか否かに基づいて受信データを復号化することにより、通信方式に応じた暗号化と復号化をすることができ、通信方式に応じた柔軟な通信が可能になる。例えば、同期通信を利用する場合は、暗号化と復号化をせず、非同期通信を利用する場合は、暗号化と復号化をさせることができる。また例えば、同期通信を利用する場合は、計算量の少ない低強度の暗号方式を利用し、非同期通信を利用する場合は、計算量の多い高強度の暗号方式を利用することができる。同期通信ではデータを送受信するときの時間的な猶予がなく、データを改ざんされる恐れが明らかにない場合に、このようにすることで、セキュリティを担保しつつ、産業機器の処理負荷を軽減したり、産業機器の動作に遅延が発生することを防止したりすることもできる。また例えば、上記とは逆に、同期通信を利用する場合は、暗号化と復号化をさせ、非同期通信を利用する場合は、暗号化と復号化をしないようにすることができる。また例えば、同期通信を利用する場合は、計算量の多い高強度の暗号方式を利用し、非同期通信を利用する場合は、計算量の少ない低強度の暗号方式を利用することができる。同期通信では機器の動作に直結する重要なデータをやり取りすることが多く、このようにすることで、重要なデータの改ざんを防止し、セキュリティを担保することができる。一方、非同期通信ではあまり重要ではない低いデータをやり取りすることがあり、このようにすることで、産業機器の処理負荷を軽減したり、産業機器の動作に遅延が発生することを防止したりすることもできる。
【０１３２】
［４．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１３３】
（１）例えば、モータ制御装置２０によって利用可能な暗号方式が異なることがあり、コントローラ１０は、その全てを利用可能ではないこともある。このため、コントローラ１０が利用可能な暗号方式と、モータ制御装置２０が利用可能な暗号方式と、が比較され、これらが一致する場合に暗号化通信が利用され、これらが一致しない場合に暗号化通信が利用されないようにしてもよい。
【０１３４】
図８は、変形例（１）の機能ブロック図である。図８に示すように、変形例（１）では、コントローラ１０において決定部１０７が実現される。決定部１０７は、ＣＰＵ１１を主として実現される。本変形例では、通信を行う複数の産業機器は、少なくとも１つの暗号方式を利用可能であり、決定部１０７は、通信を行う複数の産業機器に共通する暗号方式に基づいて、暗号化通信で利用する暗号方式を決定する。
【０１３５】
決定部１０７は、コントローラ１０が利用可能な暗号方式と、モータ制御装置２０が利用可能な暗号方式と、を比較し、これらの間で一致する暗号方式を、暗号化通信で利用する暗号方式として決定する。複数の暗号方式が一致していた場合、決定部１０７は、何れか１つの暗号方式を選択すればよく、ランダムに選択してもよいし、後述する変形例（２）のように優先順位に基づいて選択してもよい。複数の暗号方式が一致していた場合、データの種類やデータの送信タイミングなどに応じて、利用する暗号方式が使い分けられるようにしてもよい。
【０１３６】
なお、コントローラ１０が利用可能な暗号方式を示すデータは、予めデータ記憶部１００に記憶されているものとする。また、モータ制御装置２０が利用可能な暗号方式を示すデータは、予めデータ記憶部１００に記憶されていてもよいし、モータ制御装置２０から取得されるようにしてもよい。また、コントローラ１０とモータ制御装置２０との間で利用可能な暗号方式が一致していない場合（共通の暗号方式がない場合）には、平文でデータが送信されてもよいし、ユーザに対して所定のアラームが出力されてもよい。
【０１３７】
変形例（１）によれば、通信を行う複数の産業機器に共通する暗号方式に基づいて、複数の産業機器の間で利用する暗号方式を決定することで、暗号化通信を確実に実行することができる。
【０１３８】
（２）また例えば、変形例（１）において、コントローラ１０が利用可能な暗号方式と、モータ制御装置２０が利用可能な暗号方式と、の間で共通するものが複数個あった場合には、暗号方式の優先度に基づいて、利用する暗号方式が決定されるようにしてもよい。本変形例では、データ記憶部１００は、暗号方式の優先度を示す優先度データＤＴ４を記憶する。
【０１３９】
図９は、優先度データＤＴ４のデータ格納例を示す図である。図９に示すように、優先度データＤＴ４には、複数の暗号方式の各々の優先度が示されている。優先度は、暗号方式の優先順位を識別可能な情報であればよく、例えば、数値で示されてもよいし、記号で示されてもよい。図９のデータ格納例であれば、数値が低いほど優先度が高いことを示す。
【０１４０】
変形例（２）の決定部１０７は、通信を行う複数の産業機器に共通する暗号方式が複数存在した場合、当該複数の暗号方式の各々に定められた優先度に基づいて、暗号化通信で利用する暗号方式を決定する。決定部１０７は、複数の暗号方式のうち優先度が最も高い暗号方式を、暗号化通信で利用する暗号方式として決定してもよいし、複数の暗号方式のうち優先度が閾値以上の暗号方式の何れかを、暗号化通信で利用する暗号方式として決定してもよい。
【０１４１】
変形例（２）によれば、通信を行う複数の産業機器に共通する暗号方式が複数存在した場合、当該複数の暗号方式の各々に定められた優先度に基づいて、複数の産業機器の間で利用する暗号方式を決定することにより、優先度に応じた最適な暗号方式を利用し、セキュリティを効果的に向上させることができる。
【０１４２】
（３）また例えば、通信システム１では、プログラムのデバッグのためにデータがやり取りされることもあるが、通信を行う複数の産業機器は、デバッグが行われる場合には、暗号化通信を行わないようにしてもよい。例えば、コントローラ１０は、デバッグモードであるか否かを判定し、デバッグモードであると判定した場合には、暗号化通信を行わず、デバッグモードではないと判定した場合には、暗号化通信を行う。デバッグモードであるか否かを示すデータは、データ記憶部１００に記憶させておけばよい。例えば、ユーザは、デバッグを行う際に、パーソナルコンピュータ等をコントローラ１０に接続し、デバッグモードを開始することを示す操作を行う。この場合に、デバッグモードが開始される。デバッグモードでは、図６に示すモータ制御処理が実行されるが、暗号化通信が行われない。
【０１４３】
変形例（３）によれば、デバッグが行われる場合には、暗号化通信を行わないことで、より確実にデバッグを行うことができる。
【０１４４】
（４）また例えば、上記変形例を組み合わせてもよい。
【０１４５】
また例えば、通信システム１では、コントローラ１０とモータ制御装置２０との通信が暗号化されるのではなく、あるコントローラ１０と別のコントローラ１０との通信が暗号化されてもよい。また例えば、コントローラ１０と、モータ制御装置２０以外のコンピュータ（例えば、データベースサーバ）との通信が暗号化されてもよい。また例えば、モータ制御装置２０同士が通信可能な場合には、あるモータ制御装置２０と別のモータ制御装置２０との通信が暗号化されてもよい。また例えば、判定部１０１、設定部１０２、及び決定部１０７は、コントローラ１０ではなく、モータ制御装置２０において実現されてもよいし、他のコンピュータにおいて実現されてもよい。
【０１４６】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【０１４７】
１  通信システム、Ｎ  ネットワーク、１０  コントローラ、２０  モータ制御装置、１１，２１，３１  ＣＰＵ、１２，２２，３２  記憶部、１３，２３，３３  通信部、２４  ＳＯＣ、３０  モータ、４０  センサ、５０  エンコーダ、１００，２００  データ記憶部、１０１  判定部、１０２  設定部、１０３，２０１  暗号化部、１０４，２０２
送信部、１０５，２０３  受信部、１０６，２０４  復号化部、１０７  決定部、２４１  暗号チップ、ＤＴ１  機種データ、ＤＴ２  設定データ、ＤＴ３  種類データ、ＤＴ４  優先度データ。
【図１】
2020184751.tif 000003
【図２】
2020184751.tif 000004
【図３】
2020184751.tif 000005
【図４】
2020184751.tif 000006
【図５】
2020184751.tif 000007
【図６】
2020184751.tif 000008
【図７】
2020184751.tif 000009
【図８】
2020184751.tif 000010
【図９】
2020184751.tif 000011
【手続補正書】
【提出日】令和2年8月28日(2020.8.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
同期通信可能な複数の産業機器を含む通信システムであって、
通信を行う前記複数の産業機器は、
同期通信で送信される送信データを暗号化し、非同期通信で送信される送信データは暗号化しない暗号化部と、
他の産業機器に、暗号化された前記送信データを同期通信で送信し、暗号化されていない前記送信データを非同期通信で送信する送信部と、
前記他の産業機器から、暗号化された受信データを同期通信で受信し、暗号化されていない前記送信データを非同期通信で受信する受信部と、
同期通信で受信された、暗号化された前記受信データを復号化し、非同期通信で受信された、暗号化されていない前記受信データは復号化しない復号化部と、
を有する通信システム。
【請求項２】
同期通信可能な複数の産業機器を含む通信システムであって、
通信を行う前記複数の産業機器は、
非同期通信で送信される送信データを暗号化し、同期通信で送信される送信データは暗号化しない暗号化部と、
他の産業機器に、暗号化された前記送信データを非同期通信で送信し、暗号化されていない前記送信データを同期通信で送信する送信部と、
前記他の産業機器から、暗号化された受信データを非同期通信で受信し、暗号化されていない前記送信データを同期通信で受信する受信部と、
非同期通信で受信された、暗号化された前記受信データを復号化し、同期通信で受信された、暗号化されていない前記受信データは復号化しない復号化部と、
を有する通信システム。
【請求項３】
同期通信可能な複数の産業機器を含む通信システムであって、
通信を行う前記複数の産業機器は、
同期通信を利用するか否かに応じた暗号方式で、送信データを暗号化する暗号化部と、
他の産業機器に、暗号化された前記送信データを送信する送信部と、
前記他の産業機器から、暗号化された受信データを受信する受信部と、
同期通信を利用するか否かに応じた暗号方式で、暗号化された前記受信データを復号化する復号化部と、
を有する通信システム。
【請求項４】
前記複数の産業機器の各々は、モータを制御するモータ制御装置、又は、前記モータ制御装置を制御するコントローラ、の何れかである、
請求項１〜３の何れかに記載の通信システム。
【請求項５】
同期通信可能な複数の産業機器の通信方法であって、
同期通信で送信される送信データを暗号化し、非同期通信で送信される送信データは暗号化せず、
前記複数の産業機器の間で、暗号化された前記送信データを同期通信で送信し、暗号化されていない前記送信データを非同期通信で送信し、
前記複数の産業機器の間で暗号化された受信データを同期通信で受信し、暗号化されていない前記送信データを非同期通信で受信し、
同期通信で受信された、暗号化された前記受信データを復号化し、非同期通信で受信された、暗号化されていない前記受信データは復号化しない、
通信方法。
【請求項６】
同期通信可能な複数の産業機器の通信方法であって、
非同期通信で送信される送信データを暗号化し、同期通信で送信される送信データは暗号化せず、
前記複数の産業機器の間で、暗号化された前記送信データを非同期通信で送信し、暗号化されていない前記送信データを同期通信で送信し、
前記複数の産業機器の間で暗号化された受信データを非同期通信で受信し、暗号化されていない前記送信データを同期通信で受信し、
非同期通信で受信された、暗号化された前記受信データを復号化し、同期通信で受信された、暗号化されていない前記受信データは復号化しない、
通信方法。
【請求項７】
同期通信可能な複数の産業機器の通信方法であって、
同期通信を利用するか否かに応じた暗号方式で、送信データを暗号化し、
前記複数の産業機器の間で、暗号化された前記送信データを送信し、
前記複数の産業機器の間で、暗号化された受信データを受信し、
同期通信を利用するか否かに応じた暗号方式で、暗号化された前記受信データを復号化する、
通信方法。
【請求項８】
他の産業機器と同期通信可能な産業機器を、
同期通信で送信される送信データを暗号化し、非同期通信で送信される送信データは暗号化しない暗号化部、
前記他の産業機器に、暗号化された前記送信データを同期通信で送信し、暗号化されていない前記送信データを非同期通信で送信する送信部、
前記他の産業機器から、暗号化された受信データを同期通信で受信し、暗号化されていない前記送信データを非同期通信で受信する受信部、
同期通信で受信された、暗号化された前記受信データを復号化し、非同期通信で受信された、暗号化されていない前記受信データは復号化しない復号化部、
として機能させるためのプログラム。
【請求項９】
他の産業機器と同期通信可能な産業機器を、
非同期通信で送信される送信データを暗号化し、同期通信で送信される送信データは暗号化しない暗号化部、
他の産業機器に、暗号化された前記送信データを非同期通信で送信し、暗号化されていない前記送信データを同期通信で送信する送信部、
前記他の産業機器から、暗号化された受信データを非同期通信で受信し、暗号化されていない前記送信データを同期通信で受信する受信部、
非同期通信で受信された、暗号化された前記受信データを復号化し、同期通信で受信された、暗号化されていない前記受信データは復号化しない復号化部、
として機能させるためのプログラム。
【請求項１０】
他の産業機器と同期通信可能な産業機器を、
同期通信を利用するか否かに応じた暗号方式で、送信データを暗号化する暗号化部、
他の産業機器に、暗号化された前記送信データを送信する送信部、
前記他の産業機器から、暗号化された受信データを受信する受信部、
同期通信を利用するか否かに応じた暗号方式で、暗号化された前記受信データを復号化する復号化部、
として機能させるためのプログラム。