IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特許7163657サポート装置、設定方法、および設定プログラム
<>
  • 特許-サポート装置、設定方法、および設定プログラム 図1
  • 特許-サポート装置、設定方法、および設定プログラム 図2
  • 特許-サポート装置、設定方法、および設定プログラム 図3
  • 特許-サポート装置、設定方法、および設定プログラム 図4
  • 特許-サポート装置、設定方法、および設定プログラム 図5
  • 特許-サポート装置、設定方法、および設定プログラム 図6
  • 特許-サポート装置、設定方法、および設定プログラム 図7
  • 特許-サポート装置、設定方法、および設定プログラム 図8
  • 特許-サポート装置、設定方法、および設定プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-24
(45)【発行日】2022-11-01
(54)【発明の名称】サポート装置、設定方法、および設定プログラム
(51)【国際特許分類】
   H04L 61/00 20220101AFI20221025BHJP
【FI】
H04L61/00
【請求項の数】 10
(21)【出願番号】P 2018145897
(22)【出願日】2018-08-02
(65)【公開番号】P2020022112
(43)【公開日】2020-02-06
【審査請求日】2020-12-11
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】大貫 克重
(72)【発明者】
【氏名】玉嶋 大輔
(72)【発明者】
【氏名】一村 茜
(72)【発明者】
【氏名】杉山 明日香
【審査官】大石 博見
(56)【参考文献】
【文献】特開2017-143327(JP,A)
【文献】特開平11-282644(JP,A)
【文献】特開2009-118347(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 61/00
(57)【特許請求の範囲】
【請求項1】
制御対象を制御するコントローラの設定を行なうためのサポート装置であって、
前記コントローラのIPアドレスを規定する通信設定に従って、前記コントローラと通信するための通信モジュールと、
前記コントローラのIPアドレスの設定変更を受け付けるための操作部と、
前記サポート装置を制御するための制御装置とを備え、
前記制御装置は、
前記コントローラの変更前のIPアドレスから特定される第1ネットワークアドレスと、前記設定変更で指定されたIPアドレスから特定される第2ネットワークアドレスと、前記サポート装置のIPアドレスから特定される第3ネットワークアドレスとを比較する比較処理を実行し、
前記比較処理の結果が、前記指定されたIPアドレスでの前記コントローラとの通信が可能であることを示す予め定められた条件を満たす場合に、前記設定変更に従って前記コントローラのIPアドレスの変更処理を実行する、サポート装置。
【請求項2】
前記予め定められた条件は、前記第1ネットワークアドレスと、前記第2ネットワークアドレスと、前記第3ネットワークアドレスとが一致する場合に満たされる、請求項1に記載のサポート装置。
【請求項3】
前記予め定められた条件は、前記第1ネットワークアドレスと、前記第3ネットワークアドレスとが一致しない場合には満たされない、請求項1または2に記載のサポート装置。
【請求項4】
前記予め定められた条件は、前記第1ネットワークアドレスと、前記第2ネットワークアドレスとが一致しない場合には満たされない、請求項1~3のいずれか1項に記載のサポート装置。
【請求項5】
前記サポート装置は、表示部をさらに備え、
前記制御装置は、前記予め定められた条件が満たされない場合に、前記変更処理の実行を許可するか否かについて選択を受け付けるための選択画面を前記表示部に表示する、請求項1~4のいずれか1項に記載のサポート装置。
【請求項6】
前記変更処理は、
前記コントローラのIPアドレスを前記指定されたIPアドレスに変更するための設定データを前記コントローラに送信することと、
前記通信設定に規定されているIPアドレスを、前記指定されたIPアドレスに書き換えることとを含む、請求項1~5のいずれか1項に記載のサポート装置。
【請求項7】
前記コントローラに送信される前記設定データは、IPアドレスの設定以外の他の設定を含み、
前記制御装置は、前記コントローラにおいて前記他の設定が完了した後に、前記変更処理を実行する、請求項6に記載のサポート装置。
【請求項8】
前記制御装置は、
前記サポート装置がIPアドレスの指定なしに前記コントローラと接続されているか否かを判断し、
前記サポート装置がIPアドレスの指定なしに前記コントローラと接続されている場合に、前記設定変更に従って前記コントローラのIPアドレスの前記変更処理を実行し、
前記サポート装置がIPアドレスの指定なしに前記コントローラと接続されていない場合に、前記比較処理を実行する、請求項1~7のいずれか1項に記載のサポート装置。
【請求項9】
サポート装置による、制御対象を制御するコントローラのIPアドレスの設定方法であって、
前記コントローラのIPアドレスを規定する通信設定に従って、前記コントローラと通信するステップと、
前記コントローラのIPアドレスの設定変更を受け付けるステップと、
前記コントローラの変更前のIPアドレスから特定されるネットワークアドレスと、前記設定変更で指定されたIPアドレスから特定されるネットワークアドレスと、前記サポート装置のIPアドレスから特定されるネットワークアドレスとを比較するステップと、
比較結果が、前記指定されたIPアドレスでの前記サポート装置との通信が可能であることを示す予め定められた条件を満たす場合に、前記設定変更に従って前記コントローラのIPアドレスの変更処理を実行するステップとを備える、設定方法。
【請求項10】
サポート装置による、制御対象を制御するコントローラのIPアドレスの設定プログラムであって、
前記設定プログラムは、前記サポート装置に、
前記コントローラのIPアドレスを規定する通信設定に従って、前記コントローラと通信するステップと、
前記コントローラのIPアドレスの設定変更を受け付けるステップと、
前記コントローラの変更前のIPアドレスから特定されるネットワークアドレスと、前記設定変更で指定されたIPアドレスから特定されるネットワークアドレスと、前記サポート装置のIPアドレスから特定されるネットワークアドレスとを比較するステップと、
比較結果が、前記指定されたIPアドレスでの前記サポート装置との通信が可能であることを示す予め定められた条件を満たす場合に、前記設定変更に従って前記コントローラのIPアドレスの変更処理を実行するステップとを実行させる、設定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御対象を制御するコントローラのIPアドレスを設定するための技術に関する。
【背景技術】
【0002】
様々な生産現場において、PLC(Programmable Logic Controller)やロボットコントローラなどの産業用のコントローラが導入されている。コントローラが種々の制御対象を制御することで、生産工程が自動化される。
【0003】
近年、ネットワークに接続することができるコントローラが普及している。ユーザは、サポート装置をコントローラと通信接続することで、遠隔地からコントローラの設定変更などを行なうことができる。
【0004】
サポート装置は、コントローラと通信するためには、コントローラのIPアドレスを把握しておく必要がある。コントローラのIPアドレスが適切に変更されなかった場合には、サポート装置は、コントローラと通信できなくなる可能性がある。そのため、IPアドレスの変更に伴って生じる通信障害を防止するために様々な技術が開発されている。
【0005】
当該技術に関し、特開2004-40419号公報(特許文献1)は、「柔軟かつ効率的に通信先アドレスの変更管理を可能とする」通信先アドレス管理システムを開示している。特開2009-44499号公報(特許文献2)は、「パソコンと制御装置の接続を切断した後、変更後のIPアドレスで確実に再接続できる」制御装置を開示している。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2004-40419号公報
【文献】特開2009-44499号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1,2に開示される技術は、接続先のIPアドレスの変更を行ない、その後における接続先との通信を保障するものである。しかしながら、ユーザがコントローラのIPアドレスを変更した場合には、サポート装置は、変更後のIPアドレスによってはコントローラと通信できなくなる可能性がある。一例として、サポート装置とコントローラとがルーターを介して通信接続されている場合、ルーターは、コントローラの変更後のIPアドレスを把握できないことがある。この場合には、サポート装置は、IPアドレスの変更後にコントローラと通信不能になる。したがって、コントローラのIPアドレスを変更する前に、変更後のIPアドレスが適切であるか否かを判断する必要がある。
【0008】
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、コントローラのIPアドレスを変更することによってコントローラと通信不能になることをより確実に防止できるサポート装置を提供することである。他の局面における目的は、コントローラのIPアドレスを変更することによってコントローラと通信不能になることをより確実に防止できる設定方法を提供することである。他の局面における目的は、コントローラのIPアドレスを変更することによってコントローラと通信不能になることをより確実に防止できる設定プログラムを提供することである。
【課題を解決するための手段】
【0009】
本開示の一例では、制御対象を制御するコントローラの設定を行なうためのサポート装置は、上記コントローラのIPアドレスを規定する通信設定に従って、上記コントローラと通信するための通信モジュールと、上記コントローラのIPアドレスの設定変更を受け付けるための操作部と、上記サポート装置を制御するための制御装置とを備える。上記制御装置は、上記設定変更で指定されたIPアドレスでの上記コントローラとの通信が可能であることを示す予め定められた条件が満たされた場合に、上記設定変更に従って上記コントローラのIPアドレスの変更処理を実行する。
【0010】
この開示によれば、サポート装置は、コントローラのIPアドレスを変更することによってコントローラと通信不能になるか否かをIPアドレスの変更前に行なう。これにより、サポート装置は、IPアドレスの変更によってコントローラと通信不能になることをより確実に防止できる。
【0011】
本開示の一例では、上記予め定められた条件は、上記コントローラの変更前のIPアドレスから特定されるネットワークアドレスと、当該コントローラの上記指定されたIPアドレスから特定されるネットワークアドレスと、上記サポート装置のIPアドレスから特定されるネットワークアドレスとが一致する場合に満たされる。
【0012】
この開示によれば、コントローラのIPアドレスの変更前後で、サポート装置とコントローラとが同一ネットワークに属することになる。そのため、コントローラのIPアドレスが変更された場合であっても、サポート装置は、コントローラとの通信を確立することができる。
【0013】
本開示の一例では、上記予め定められた条件は、上記コントローラの変更前のIPアドレスから特定されるネットワークアドレスと、上記サポート装置のIPアドレスから特定されるネットワークアドレスとが一致しない場合には満たされない。
【0014】
この開示によれば、コントローラのIPアドレスの変更前において、サポート装置とコントローラとが同一ネットワークに属さない。この場合、サポート装置とコントローラとの間を伝送される通信データは、ルーターによってルーティングされている可能性が高い。この場合、コントローラのIPアドレスが変更されると、ルーターは、サポート装置から受信した通信データをコントローラに伝送できなくなる可能性がある。このような場合には、上記予め定められた条件が満たされないので、IPアドレスの変更処理が行なわれない。その結果、サポート装置は、コントローラと通信不能になることを防止できる。
【0015】
本開示の一例では、上記予め定められた条件は、上記コントローラの変更前のIPアドレスから特定されるネットワークアドレスと、上記コントローラの上記指定されたIPアドレスから特定されるネットワークアドレスとが一致しない場合には満たされない。
【0016】
この開示によれば、コントローラのIPアドレスの変更前後において、コントローラは、同一ネットワークに属さない。サポート装置とコントローラとがルーターを介して通信接続されている場合には、ネットワークアドレスが変更されると、変更後のネットワークアドレスは、ルーター内のルーティングテーブルに規定されていない可能性が高い。この場合、ルーターは、サポート装置から受信した通信データをコントローラに伝送できないので、サポート装置は、コントローラと通信不能になる。このような場合には、上記予め定められた条件が満たされないので、IPアドレスの変更処理が行なわれない。その結果、サポート装置は、コントローラと通信不能になることを防止できる。
【0017】
本開示の一例では、上記サポート装置は、表示部をさらに備える。上記制御装置は、上記予め定められた条件が満たされない場合に、上記変更処理の実行を許可するか否かについて選択を受け付けるための選択画面を上記表示部に表示する。
【0018】
この開示によれば、サポート装置は、コントローラのIPアドレスを変更することによってコントローラと通信不能になる可能性が高い場合に、コントローラのIPアドレスを変更するか否かについての選択をユーザに求めることができる。
【0019】
本開示の一例では、上記変更処理は、上記コントローラのIPアドレスを上記指定されたIPアドレスに変更するための設定データを上記コントローラに送信することと、上記通信設定に規定されているIPアドレスを、上記指定されたIPアドレスに書き換えることとを含む。
【0020】
この開示によれば、コントローラのIPアドレスの変更するときに、サポート装置内で管理されるコントローラのIPアドレスも変更される。これにより、サポート装置は、コントローラのIPアドレスの変更後でもコントローラとの通信を確立することができる。
【0021】
本開示の一例では、上記コントローラに送信される上記設定データは、IPアドレスの設定以外の他の設定を含む。上記制御装置は、上記コントローラにおいて上記他の設定が完了した後に、上記変更処理を実行する。
【0022】
この開示によれば、サポート装置は、IPアドレスの設定以外の他の設定変更処理を実行し、その後に、コントローラのIPアドレスの変更処理を実行する。これにより、当該他の設定変更処理がサポート装置との通信不能により途中で止まることがなくなる。
【0023】
本開示の他の例では、サポート装置による、制御対象を制御するコントローラのIPアドレスの設定方法は、上記コントローラのIPアドレスを規定する通信設定に従って、上記コントローラと通信するステップと、上記コントローラのIPアドレスの設定変更を受け付けるステップと、上記設定変更で指定されたIPアドレスでの上記サポート装置との通信が可能であることを示す予め定められた条件が満たされた場合に、上記設定変更に従って上記コントローラのIPアドレスの変更処理を実行するステップとを備える。
【0024】
この開示によれば、サポート装置は、コントローラのIPアドレスを変更することによってコントローラと通信不能になるか否かをIPアドレスの変更前に行なう。これにより、サポート装置は、IPアドレスの変更によってコントローラと通信不能になることをより確実に防止できる。
【0025】
本開示の他の例では、サポート装置による、制御対象を制御するコントローラのIPアドレスの設定プログラムは、上記サポート装置に、上記コントローラのIPアドレスを規定する通信設定に従って、上記コントローラと通信するステップと、上記コントローラのIPアドレスの設定変更を受け付けるステップと、上記設定変更で指定されたIPアドレスでの上記サポート装置との通信が可能であることを示す予め定められた条件が満たされた場合に、上記設定変更に従って上記コントローラのIPアドレスの変更処理を実行するステップとを実行させる。
【0026】
この開示によれば、サポート装置は、コントローラのIPアドレスを変更することによってコントローラと通信不能になるか否かをIPアドレスの変更前に行なう。これにより、サポート装置は、IPアドレスの変更によってコントローラと通信不能になることをより確実に防止できる。
【発明の効果】
【0027】
ある局面において、コントローラのIPアドレスを変更することによってコントローラと通信不能になることをより確実に防止できる。
【図面の簡単な説明】
【0028】
図1】本実施の形態に従う制御システムの概要を示す模式図である。
図2図1に示される制御システムの装置構成の一例を示す図である。
図3】サポート装置のハードウェア構成を示す模式図である。
図4】コントローラのハードウェア構成の一例を示す模式図である。
図5】サポート装置によるコントローラのIPアドレスの変更処理を表わすフローチャートである。
図6】再接続可能条件を満たしている場合の例を示す図である。
図7】IPアドレスの変更の通知画面の一例を示す図である。
図8】選択画面の一例を示す図である。
図9】サポート装置とコントローラと駆動機器との間のデータフローを示す図である。
【発明を実施するための形態】
【0029】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【0030】
<A.適用例1>
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に従う制御システム1の概要を示す模式図である。
【0031】
制御システム1は、設備および装置などの制御対象を制御し、生産工程を自動化するためのFA(Factory Automation)システムである。制御システム1は、サポート装置100と、コントローラ200と、駆動機器300とを含む。
【0032】
サポート装置100とコントローラ200とは、ネットワークNW1を介して接続されている。ネットワークNW1には、たとえば、EtherNET(登録商標)が採用される。但し、ネットワークNW1は、EtherNETに限定されず、IPアドレスを用いた任意の通信手段が採用され得る。用いられるIPアドレスは、IPv4(Internet Protocol version 4)であってもよいし、IPv6(Internet Protocol version 6)であってもよい。
【0033】
サポート装置100は、たとえば、PC(Personal Computer)、タブレット端末、スマートフォンなどを含む。サポート装置100には、コントローラ200の制御プログラムを開発するためのサポートツールがインストールされている。設計者は、サポートツール上で制御プログラムを記述することで、コントローラ200や駆動機器300の構成に合わせた制御プログラムを設計することができる。他にも、設計者は、コントローラ200や駆動機器300に関する各種設定をサポートツール上で設定することができる。サポートツール上で作成された制御プログラムや設定データは、ネットワークNW1を介してコントローラ200に転送される。
【0034】
コントローラ200と駆動機器300とは、ネットワークNW2を介して接続されている。ネットワークNW2には、たとえば、データの到達時間が保証される、定周期通信を行なうフィールドネットワークが採用される。このような定周期通信を行なうフィールドネットワークとして、たとえば、EtherCAT(登録商標)、EtherNet/IP(登録商標)、CompoNet(登録商標)などが採用される。コントローラ200は、サポート装置100からインストールした制御プログラムに従って駆動機器300に対する制御指令を定周期ごとに生成し、当該制御指令を駆動機器300に送信する。
【0035】
駆動機器300は、コントローラ200による制御対象である。駆動機器300は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器300は、アームロボットや、アームロボットを制御するためのロボットコントローラや、生産工程を搬送されるワークを撮影するための画像センサや、生産工程で利用されるその他の機器などを含む。
【0036】
サポート装置100は、操作部101と、制御装置102と、通信モジュール103とを含む。
【0037】
操作部101は、各種のユーザ操作を受け付ける。一例として、操作部101は、キーボード、マウス、タッチパネル、タッチパッドなどである。ユーザは、操作部101を操作することで上記サポートツールを操作することができ、コントローラ200の制御プログラムの設計や、コントローラ200や駆動機器300の各種設定を当該サポートツール上で行なうことができる。
【0038】
制御装置102は、サポート装置100を制御する。制御装置102は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、少なくとも1つのASIC(Application Specific Integrated Circuit)、少なくとも1つのFPGA(Field Programmable Gate Array)、またはそれらの組み合わせなどによって構成される。
【0039】
一例として、操作部101は、コントローラ200のIPアドレスの設定変更を受け付ける。制御装置102は、当該設定変更で指定されたIPアドレスでのコントローラ200との通信が可能であることを示す予め定められた条件が満たされた場合に、当該設定変更に従ってコントローラ200のIPアドレスの変更処理を実行する。当該予め定められた条件の詳細については後述する。
【0040】
異なる言い方をすれば、制御装置102は、コントローラ200のIPアドレスの変更処理を実行する前に、変更後のIPアドレスでコントローラ200との通信が可能であるか否かを事前に判断する。そして、制御装置102は、変更後のIPアドレスでコントローラ200との通信が可能であると判断した場合に、コントローラ200のIPアドレスの変更処理を実行する。
【0041】
コントローラ200のIPアドレスの変更処理は、変更後のIPアドレスを含む設定データをコントローラ200に送信する処理を含む。コントローラ200は、サポート装置100から受信した設定データに含まれているIPアドレスに従って、通信設定214に規定されているIPアドレスを書き換える。通信設定214には、たとえば、コントローラ200のIPアドレスやサブネットマスクなどが規定されている。
【0042】
また、コントローラ200のIPアドレスの変更処理は、コントローラ200のIPアドレスを規定する通信設定136を更新する処理を含む。通信設定136には、コントローラ200の現在のIPアドレスや現在のサブネットマスクなどが規定されている。制御装置102は、通信設定136に規定されているコントローラ200のIPアドレスを、指定されたIPアドレスに書き換える。
【0043】
通信モジュール103は、たとえば、コントローラ200との通信機能を提供する通信ドライバである。通信モジュール103は、通信設定136に規定されるIPアドレスに従ってコントローラ200と通信する。
【0044】
以上のように、サポート装置100は、コントローラ200のIPアドレスを変更することによってコントローラ200と通信不能になるか否かをIPアドレスの変更前に行なう。これにより、サポート装置100は、IPアドレスの変更によってコントローラ200と通信不能になることを確実に防止できる。この効果は、コントローラ200が遠隔地にある場合に特に有効である。サポート装置100とコントローラ200とが通信不能になった場合には、ユーザは、コントローラ200の設置場所に赴き、サポート装置100をコントローラ200に直接接続して復旧作業を行なう必要がある。本実施の形態においては、コントローラ200のIPアドレスの変更によってコントローラ200と通信不能になることを防ぐので、このような手間も生じない。
【0045】
<B.制御システム1の装置構成例>
図2は、図1に示される制御システム1の装置構成の一例を示す図である。図2に示されるように、制御システム1は、サポート装置100と、中継機150と、複数のコントローラ200と、複数の駆動機器300とを含む。
【0046】
サポート装置100は、コントローラ200に関する各種設定変更や、駆動機器300に関する各種設定変更を受け付ける。サポート装置100が受け付けた各種設定変更は、設定データとして、サポート装置100→中継機150→コントローラ200→駆動機器300の順に転送される。
【0047】
中継機150は、たとえば、ハブやルーターなどである。あるいは、中継機150は、ルーター機能を有する制御機器(たとえば、コントローラやHMI(Human Machine Interface)であってもよい。中継機150には、種々の装置が接続され得る。図2の例では、中継機150には、1つのサポート装置100と、3つのコントローラ200とが接続されている。
【0048】
中継機150は、サポート装置100とコントローラ200との一方から受信した通信データを他方に伝送する。中継機150がルーターである場合、中継機150は、予め定められたルーティングテーブルに従って通信データを転送する。このとき、通信データの送信先がルーティングテーブルに規定されていなければ、ルーターは、受信した通信データを転送することができない。そのため、コントローラ200の変更後のIPアドレスがルーティングテーブルに規定されていない場合、中継機150は、サポート装置100から受信した通信データをコントローラ200に伝送できない。上述のように、本実施の形態に従うサポート装置100は、コントローラ200のIPアドレスを変更することによってコントローラ200と通信不能になるか否かをIPアドレスの変更前に行なう。これにより、サポート装置100は、IPアドレスの変更によってコントローラ200と通信不能になることを確実に防止できる。
【0049】
<C.ハードウェア構成>
図3および図4を参照して、サポート装置100およびコントローラ200のハードウェア構成について順に説明する。
【0050】
(C1.サポート装置100のハードウェア構成)
まず、図3を参照して、サポート装置100のハードウェア構成について説明する。図3は、サポート装置100のハードウェア構成を示す模式図である。
【0051】
サポート装置100は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。サポート装置100は、操作部101と、制御装置102と、主メモリ104と、通信インターフェイス111と、表示部120と、不揮発性の記憶装置130とを含む。これらのコンポーネントは、内部バス125を介して互いに通信可能に接続されている。
【0052】
操作部101は、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。なお、図3の例では、操作部101がサポート装置100に含まれている例が示されているが、操作部101は、サポート装置100とは別に構成されてもよい。
【0053】
通信インターフェイス111は、他の通信機器との間でネットワークを介してデータを遣り取りする。当該他の通信機器は、たとえば、コントローラ200やサーバなどを含む。サポート装置100は、通信インターフェイス111を介して、当該他の通信機器から、サポートツール131などの各種プログラム(設定プログラム)をダウンロード可能なように構成されてもよい。
【0054】
表示部120は、LCD(Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイなどからなり、ユーザに対して各種情報を提示する。表示部120には、サポートツール131によって提供される各種画面が表示され得る。一例として、表示部120には、コントローラ200や駆動機器300に関する各種の設定画面(たとえば、IPアドレスの設定画面)やコントローラ200の制御プログラムの開発画面などが表示される。なお、図3の例では、表示部120がサポート装置100に含まれている例が示されているが、表示部120は、サポート装置100とは別に構成されてもよい。
【0055】
記憶装置130は、サポートツール131と、サポート装置用の通信設定133と、コントローラ200や駆動機器300に関する各種の設定データ135とを含む。
【0056】
サポートツール131は、コントローラ200の制御プログラムの開発環境を提供するためのプログラムである。ユーザは、サポートツール131を用いることで、コントローラ200の制御プログラムを開発したり、コントローラ200や駆動機器300などの各種設定を行ったりすることができる。
【0057】
サポート装置用の通信設定133は、サポート装置100に設定されているIPアドレスや、サポート装置100に設定されているサブネットマスクなどを含む。
【0058】
設定データ135は、たとえば、コントローラ200との通信を実現するための通信設定136を含む。通信設定136には、コントローラ200に設定されているIPアドレスやコントローラ200に設定されているサブネットマスクなどが規定されている。
【0059】
(C2.コントローラ200のハードウェア構成)
次に、図4を参照して、コントローラ200のハードウェア構成について説明する。図4は、コントローラ200のハードウェア構成の一例を示す模式図である。
【0060】
コントローラ200は、通信インターフェイス201と、CPUやMPUなどの制御装置202と、チップセット204と、主メモリ206と、不揮発性の記憶装置208と、内部バスコントローラ222と、フィールドバスコントローラ224と、メモリカードインターフェイス239とを含む。
【0061】
制御装置202は、記憶装置208に格納された制御プログラム211を読み出して、主メモリ206に展開して実行することで、ロボットコントローラ300Aやサーボドライバ300Bなどの駆動機器300を制御する。制御プログラム211は、コントローラ200を制御するための各種プログラムを含む。一例として、制御プログラム211は、システムプログラム209およびユーザプログラム210などを含む。システムプログラム209は、データの入出力処理や実行タイミング制御などの、コントローラ200の基本的な機能を提供するための命令コードを含む。ユーザプログラム210は、サポート装置100からダウンロードされたものである。ユーザプログラム210は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム210Aおよびモーション制御を実行するためのモーションプログラム210Bとを含む。
【0062】
チップセット204は、各コンポーネントを制御することで、コントローラ200全体としての処理を実現する。
【0063】
記憶装置208は、制御プログラム211の他にも種々のデータを格納する。一例として、記憶装置208は、設定データ212などを格納する。設定データ212は、コントローラ200に関する各種の設定を含み、たとえば、通信設定214を含む。通信設定214には、たとえば、コントローラ200のIPアドレスやサブネットマスクなどが規定されている。
【0064】
内部バスコントローラ222は、コントローラ200と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、I/Oユニット226が接続されている。
【0065】
フィールドバスコントローラ224は、コントローラ200とフィールドバスを通じて連結される各種の駆動機器300とデータを遣り取りするインターフェイスである。このようなデバイスの一例として、ロボットコントローラ300Aやサーボドライバ300Bが接続されている。他にも、視覚センサなどの駆動機器が接続されてもよい。
【0066】
内部バスコントローラ222およびフィールドバスコントローラ224は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータを取得することができる。また、内部バスコントローラ222および/またはフィールドバスコントローラ224は、ロボットコントローラ300Aやサーボドライバ300Bとの間でデータを遣り取りするためのインターフェイスとしても機能する。
【0067】
通信インターフェイス201は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。コントローラ200は、通信インターフェイス201を介して、サポート装置100と通信を行なう。
【0068】
メモリカードインターフェイス239は、外部記憶媒体の一例であるメモリカード240(たとえば、SDカード)を着脱可能に構成されており、メモリカード240に対してデータを書き込み、メモリカード240からデータを読出すことが可能になっている。
【0069】
<D.IPアドレスの変更フロー>
図5図8を参照して、サポート装置100の制御構造について説明する。図5は、サポート装置100によるコントローラ200のIPアドレスの変更処理を表わすフローチャートである。
【0070】
図5に示される処理は、サポート装置100の制御装置102がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【0071】
ステップS6において、ユーザは、上述のサポートツール131(図3参照)を起動し、コントローラ200や駆動機器300の各種設定を行なうための設定画面を呼び出したとする。このことに基づいて、制御装置102は、当該設定画面を表示部120(図3参照)に表示する。ユーザは、コントローラ200や駆動機器300の各種設定を当該設定画面に入力する。
【0072】
ステップS8において、制御装置102は、設定画面に入力されたデータ(以下、「設定データ」ともいう。)の転送操作を受け付けたか否かを判断する。一例として、制御装置102は、設定画面上における転送ボタンが押下されたことに基づいて、設定データの転送操作を受け付けたと判断する。制御装置102は、設定データの転送操作を受け付けたと判断した場合(ステップS8においてYES)、制御をステップS10に切り替える。制御装置102は、設定画面を閉じる操作を受け付けるなど、設定データの転送操作が行なわれなかった場合(ステップS8においてNO)、図5の処理を終了する。
【0073】
ステップS10において、制御装置102は、コントローラ200のIPアドレスの設定が転送対象の設定データに含まれているか否かを判断する。制御装置102は、コントローラ200のIPアドレスの設定が転送対象の設定データに含まれていると判断した場合(ステップS10においてYES)、制御をステップS20に切り替える。そうでない場合には(ステップS10においてNO)、制御装置102は、制御をステップS22に切り替える。
【0074】
ステップS20において、制御装置102は、サポート装置100がIPアドレスの指定無しにコントローラ200に接続されているか否かを判断する。サポート装置100およびコントローラ200の通信方式は、たとえば、上述の通信設定136(図3参照)において指定されている。サポート装置100がIPアドレスの指定無しにコントローラ200に接続されているケースは、USBケーブルによって機器同士がUSB接続されているケースを含む。サポート装置100がIPアドレスの指定によってコントローラ200に接続されているケースは、たとえば、機器同士がネットワーク上で通信接続されているケースを含む。制御装置102は、サポート装置100がIPアドレスの指定無しにコントローラ200に接続されていると判断した場合(ステップS20においてYES)、制御をステップS22に切り替える。そうでない場合には(ステップS20においてNO)、制御装置102は、制御をステップS30に切り替える。
【0075】
ステップS22において、制御装置102は、ステップS8で受け付けた転送対象の設定データをコントローラ200に転送する。
【0076】
ステップS23において、制御装置102は、ステップS8で受け付けた転送対象の設定データを駆動機器300に転送する。
【0077】
ステップS30において、制御装置102は、指定されたIPアドレスでのコントローラ200との通信が可能であることを示す予め定められた条件(以下、「再接続可能条件」ともいう。)が満たされているか否かを判断する。図6は、再接続可能条件を満たしている場合の例を示す図である。
【0078】
図6に示されるように、制御装置102は、サポート装置100のIPアドレスから特定されるネットワークアドレスと、コントローラ200の変更前のIPアドレスから特定されるネットワークアドレスと、コントローラ200の変更後のIPアドレスから特定されるネットワークアドレスとが一致する場合に、再接続可能条件が満たされていると判断する。
【0079】
より具体的には、サポート装置用の通信設定133には、サポート装置100のIPアドレスと、サポート装置100のサブネットマスクとが規定されている。制御装置102は、当該IPアドレスに当該サブネットマスクを適用し、サポート装置100のIPアドレスからネットワークアドレスを特定する。図6の例では、サポート装置100のIPアドレスが「192.168.10.100」であり、サブネットマスクが「255.255.255.0」であるので、ネットワークアドレスは、「192.168.10」となる。
【0080】
また、サポート装置100は、コントローラ200に現在設定されている通信設定136Aをコントローラ200から受信する。当該通信設定136Aには、コントローラ200の変更前のIPアドレスと、コントローラ200の変更前のサブネットマスクとが規定されている。制御装置102は、当該IPアドレスに当該サブネットマスクを適用し、コントローラ200の変更前のIPアドレスからネットワークアドレスを特定する。図6の例では、コントローラ200の変更前のIPアドレスが「192.168.10.1」であり、サブネットマスクが「255.255.255.0」であるので、ネットワークアドレスは、「192.168.10」となる。
【0081】
同様に、コントローラ用の通信設定136Bには、コントローラ200の変更後のIPアドレスと、コントローラ200の変更後のサブネットマスクとが規定されている。制御装置102は、当該IPアドレスに当該サブネットマスクを適用し、コントローラ200の変更後のIPアドレスからネットワークアドレスを特定する。図6の例では、コントローラ200の変更後のIPアドレスが「192.168.10.2」であり、サブネットマスクが「255.255.255.0」であるので、ネットワークアドレスは、「192.168.10」となる。
【0082】
その結果、サポート装置100のIPアドレスから特定されるネットワークアドレスと、コントローラ200の変更前のIPアドレスから特定されるネットワークアドレスと、コントローラ200の変更後のIPアドレスから特定されるネットワークアドレスとが「192.168.10」で一致する。この場合、制御装置102は、サポート装置100とコントローラ200とがハブ接続されていると判断する。コントローラ200のIPアドレスの変更前後でネットワークアドレスが変わらなければ、サポート装置100は、コントローラ200のIPアドレスが変更された場合であってもコントローラ200との通信を確立することができる。
【0083】
一方で、コントローラ200のIPアドレスの変更前後でネットワークアドレスが変われば、サポート装置100は、コントローラ200のIPアドレスの変更後において、コントローラ200と通信を確立することができなくなる可能性がある。一例として、サポート装置100とコントローラ200とがルーターを介して通信接続されている場合において、ネットワークアドレスが変更されたときには、変更後のネットワークアドレスは、ルーター内のルーティングテーブルに規定されていない可能性が高い。この場合、ルーターは、サポート装置100から受信した通信データをコントローラ200に伝送できないので、サポート装置100は、コントローラ200と通信不能になる。このような場合には、サポート装置100の制御装置102は、再接続可能条件が満たされていないと判断する。
【0084】
ある局面において、制御装置102は、コントローラ200の変更前のIPアドレスから特定されるネットワークアドレスと、サポート装置100のIPアドレスから特定されるネットワークアドレスとが一致しない場合に、再接続可能条件が満たされていないと判断する。
【0085】
他の局面において、制御装置102は、コントローラ200の変更前のIPアドレスから特定されるネットワークアドレスと、コントローラ200の変更後のIPアドレスから特定されるネットワークアドレスとが一致しない場合に、再接続可能条件が満たされていないと判断する。
【0086】
他の局面において、制御装置102は、コントローラ200の変更後のIPアドレスから特定されるネットワークアドレスとサポート装置100のIPアドレスから特定されるネットワークアドレスとが一致しない場合に、再接続可能条件が満たされていないと判断する。
【0087】
好ましくは、再接続可能条件が満たされた場合には、制御装置102は、コントローラ200のIPアドレスを変更する前に、コントローラ200の変更後のIPアドレスがネットワーク内で既に使用されているか否かを判断する。同一ネットワーク内でIPアドレスが重複すれば、コントローラ200との再接続が不可能になるためである。一例として、制御装置102は、Ping(Packet Internet Groper)コマンドを実行することで変更後のIPアドレスで指定される宛先にパケットを送信する。当該パケットの送信に対して応答があれば、制御装置102は、当該変更後のIPアドレスがネットワーク内で既に使用されていると判断する。一方で、当該パケットの送信に対して応答がなければ、制御装置102は、当該変更後のIPアドレスがネットワーク内で使用されていないと判断する。
【0088】
制御装置102は、コントローラ200の変更後のIPアドレスがネットワーク内で既に使用されていると判断した場合、新たなIPアドレスを生成する。そして、制御装置102は、Pingコマンドを用いた上述の方法で、新たに生成したIPアドレスがネットワーク内で既に使用されているか否かを再び確認する。制御装置102は、新たに生成したIPアドレスがネットワーク内で使用されていない場合には、当該IPアドレスをコントローラ200の変更後のIPアドレスとして用いる。そうでない場合には、制御装置102は、IPアドレスの生成処理をと、生成したIPアドレスがネットワーク内で一意であるか否かについての確認処理とを、一意のIPアドレスが見つかるまで繰り返し実行する。
【0089】
再び図5を参照して、ステップS30において、制御装置102は、再接続可能条件が満たされたと判断した場合(ステップS30においてYES)、制御をステップS32に切り替える。そうでない場合には(ステップS30においてNO)、制御装置102は、制御をステップS40に切り替える。
【0090】
ステップS32において、制御装置102は、ステップS8で受け付けた転送対象の設定データをコントローラ200に転送する。
【0091】
ステップS33において、制御装置102は、ステップS8で受け付けた転送対象の設定データを駆動機器300に転送する。
【0092】
ステップS35において、制御装置102は、IPアドレスの変更処理を実行する。より具体的には、制御装置102は、コントローラ200のIPアドレスの変更指示をコントローラ200に送信する処理と、コントローラ200に関する通信設定136(図1参照)に規定されるIPアドレスを、指定されたIPアドレスに書き換える処理とを実行する。
【0093】
ステップS36において、制御装置102は、コントローラ200の変更後のIPアドレスに基づいて、コントローラ200と再接続する。
【0094】
ステップS38において、制御装置102は、IPアドレスの変更を通知する。図7は、IPアドレスの変更の通知画面120Aの一例を示す図である。図7の例では、通知画面120Aにおいて、コントローラ200のIPアドレスが変更されたことを表わすメッセージと、コントローラ200の変更後のIPアドレスとが表示されている。
【0095】
再び図5を参照して、ステップS30で再接続可能条件が満たされない場合には、ステップS40において、制御装置102は、IPアドレスの変更処理の実行を許可するか否かについて選択を受け付ける選択画面をサポート装置100の表示部120に表示する。図8は、選択画面120Bの一例を示す図である。図8の例では、選択画面120Bにおいて、IPアドレスの変更によってコントローラ200との通信が不能になる可能性を示す警告メッセージと、コントローラ200の変更前のIPアドレスと、コントローラ200の変更後のIPアドレスとが表示されている。選択画面120BのOKボタンが選択された場合には、制御装置102は、IPアドレスの変更が許可されたと判断する。一方で、選択画面120Bのキャンセルボタンが選択された場合には、制御装置102は、IPアドレスの変更が中止されたと判断する。
【0096】
再び図5を参照して、ステップS50において、制御装置102は、IPアドレスの変更が許可されたか否かを判断する。制御装置102は、IPアドレスの変更が許可されたと判断した場合(ステップS50においてYES)、制御をステップS52に切り替える。そうでない場合には(ステップS50においてNO)、制御装置102は、図5に示される処理を終了する。
【0097】
ステップS52において、制御装置102は、ステップS8で受け付けた転送対象の設定データをコントローラ200に転送する。
【0098】
ステップS53において、制御装置102は、ステップS8で受け付けた転送対象の設定データを駆動機器300に転送する。
【0099】
ステップS62において、制御装置102は、IPアドレスの変更処理を実行する。より具体的には、制御装置102は、コントローラ200のIPアドレスの変更指示をコントローラ200に送信する処理と、コントローラ200に関する通信設定136(図1参照)に規定されるIPアドレスを、指定されたIPアドレスに書き換える処理とを実行する。
【0100】
ステップS64において、制御装置102は、コントローラ200との通信を切断する。
【0101】
<E.IPアドレスの変更時のシーケンスフロー>
図9を参照して、上記再接続可能条件が満たされる場合における、コントローラ200のIPアドレスの変更処理について説明する。図9は、上記再接続可能条件が満たされた場合のIPアドレスの変更処理の実行時における、サポート装置100とコントローラ200と駆動機器300との間のデータフローを示す図である。
【0102】
ステップS110において、サポート装置100は、コントローラ200や駆動機器300の各種設定を行なうための設定画面において設定変更操作をユーザから受け付けるとともに、当該設定画面に対して入力された設定データの転送操作を受け付けたとする。当該設定データには、コントローラ200のIPアドレスの変更設定が含まれているとする。
【0103】
ステップS112において、サポート装置100は、転送対象の設定データをコントローラ200に送信する。コントローラ200は、当該設定データをサポート装置100から受信したことに基づいて、記憶装置208などの一時記憶領域に現在の設定情報を格納する。その後、コントローラ200は、サポート装置100から受信した設定データに従って、IPアドレスの変更処理以外の他の設定変更を実行する。当該他の変更設定は、たとえば、コントローラ200の動作に関する制御パラメータを変更することなどを含む。この場合、コントローラ200の制御パラメータが当該設定データに従って更新される。その後、コントローラ200は、設定変更処理の実行結果をサポート装置100に送信する。
【0104】
ステップS114において、サポート装置100は、コントローラ200を介して、転送対象の設定データを駆動機器300の各々に送信する。駆動機器300は、当該設定データを受信したことに基づいて、一時記憶領域に現在の設定情報を格納する。そして、駆動機器300は、受信した設定データに従って設定変更処理を実行する。一例として、設定データは、駆動機器300の動作に関する制御パラメータなどを含み、駆動機器300の制御パラメータが当該設定データに従って更新される。その後、駆動機器300は、設定変更処理の実行結果をサポート装置100に送信する。
【0105】
ステップS116において、サポート装置100は、コントローラ200から受信した実行結果と駆動機器300から受信した実行結果とがともに正常終了を示す場合、IPアドレスの変更指示をコントローラ200に送信する。コントローラ200は、IPアドレスの変更指示を受信したことに基づいて、ステップS112で受信した設定データに従って、IPアドレスの変更処理を実行する。
【0106】
ステップS120において、サポート装置100は、接続先のIPアドレスの変更処理を実行する。より具体的には、サポート装置100は、コントローラ200との通信を一旦切断し、コントローラ200との通信を確立するために用いられる通信設定136(図1参照)を更新する。この更新処理により、通信設定136に規定されるコントローラ200のIPアドレスが指定されたIPアドレスに書き換えられる。その後、サポート装置100は、更新後の通信設定136に基づいて、コントローラ200との通信を確立する。
【0107】
以上のように、サポート装置100は、IPアドレスの設定以外の他の設定変更処理を実行し、その後に、コントローラ200のIPアドレスの変更処理を実行する。これにより、コントローラ200の設定処理がサポート装置100との通信不能により途中で止まることがなくなり、コントローラ200と駆動機器300との間で設定の不整合が生じない。
【0108】
<F.付記>
以上のように、本実施形態は以下のような開示を含む。
【0109】
[構成1]
制御対象を制御するコントローラ(200)の設定を行なうためのサポート装置(100)であって、
前記コントローラ(200)のIPアドレスを規定する通信設定(136)に従って、前記コントローラ(200)と通信するための通信モジュール(103)と、
前記コントローラ(200)のIPアドレスの設定変更を受け付けるための操作部(101)と、
前記サポート装置(100)を制御するための制御装置(102)とを備え、
前記制御装置(102)は、前記設定変更で指定されたIPアドレスでの前記コントローラ(200)との通信が可能であることを示す予め定められた条件が満たされた場合に、前記設定変更に従って前記コントローラ(200)のIPアドレスの変更処理を実行する、サポート装置。
【0110】
[構成2]
前記予め定められた条件は、前記コントローラ(200)の変更前のIPアドレスから特定されるネットワークアドレスと、当該コントローラ(200)の前記指定されたIPアドレスから特定されるネットワークアドレスと、前記サポート装置(100)のIPアドレスから特定されるネットワークアドレスとが一致する場合に満たされる、構成1に記載のサポート装置。
【0111】
[構成3]
前記予め定められた条件は、前記コントローラ(200)の変更前のIPアドレスから特定されるネットワークアドレスと、前記サポート装置(100)のIPアドレスから特定されるネットワークアドレスとが一致しない場合には満たされない、構成1または2に記載のサポート装置。
【0112】
[構成4]
前記予め定められた条件は、前記コントローラ(200)の変更前のIPアドレスから特定されるネットワークアドレスと、前記コントローラ(200)の前記指定されたIPアドレスから特定されるネットワークアドレスとが一致しない場合には満たされない、構成1~3のいずれか1項に記載のサポート装置。
【0113】
[構成5]
前記サポート装置(100)は、表示部(120)をさらに備え、
前記制御装置(102)は、前記予め定められた条件が満たされない場合に、前記変更処理の実行を許可するか否かについて選択を受け付けるための選択画面を前記表示部(120)に表示する、構成1~4のいずれか1項に記載のサポート装置。
【0114】
[構成6]
前記変更処理は、
前記コントローラ(200)のIPアドレスを前記指定されたIPアドレスに変更するための設定データを前記コントローラ(200)に送信することと、
前記通信設定(136)に規定されているIPアドレスを、前記指定されたIPアドレスに書き換えることとを含む、構成1~5のいずれか1項に記載のサポート装置。
【0115】
[構成7]
前記コントローラ(200)に送信される前記設定データは、IPアドレスの設定以外の他の設定を含み、
前記制御装置(102)は、前記コントローラ(200)において前記他の設定が完了した後に、前記変更処理を実行する、構成6に記載のサポート装置。
【0116】
[構成8]
サポート装置(100)による、制御対象を制御するコントローラ(200)のIPアドレスの設定方法であって、
前記コントローラ(200)のIPアドレスを規定する通信設定(136)に従って、前記コントローラ(200)と通信するステップと、
前記コントローラ(200)のIPアドレスの設定変更を受け付けるステップと、
前記設定変更で指定されたIPアドレスでの前記サポート装置(100)との通信が可能であることを示す予め定められた条件が満たされた場合に、前記設定変更に従って前記コントローラ(200)のIPアドレスの変更処理を実行するステップとを備える、設定方法。
【0117】
[構成9]
サポート装置(100)による、制御対象を制御するコントローラ(200)のIPアドレスの設定プログラムであって、
前記設定プログラムは、前記サポート装置(100)に、
前記コントローラ(200)のIPアドレスを規定する通信設定(136)に従って、前記コントローラ(200)と通信するステップと、
前記コントローラ(200)のIPアドレスの設定変更を受け付けるステップと、
前記設定変更で指定されたIPアドレスでの前記サポート装置(100)との通信が可能であることを示す予め定められた条件が満たされた場合に、前記設定変更に従って前記コントローラ(200)のIPアドレスの変更処理を実行するステップとを実行させる、設定プログラム。
【0118】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0119】
1 制御システム、100 サポート装置、101 操作部、102,202 制御装置、103 通信モジュール、104,206 主メモリ、111,201 通信インターフェイス、120 表示部、120A 通知画面、120B 選択画面、125 内部バス、130,208 記憶装置、131 サポートツール、133,136,136A,136B,214 通信設定、135,212 設定データ、150 中継機、200 コントローラ、204 チップセット、209 システムプログラム、210 ユーザプログラム、210A シーケンスプログラム、210B モーションプログラム、211 制御プログラム、222 内部バスコントローラ、224 フィールドバスコントローラ、226 I/Oユニット、239 メモリカードインターフェイス、240 メモリカード、300 駆動機器、300A ロボットコントローラ、300B サーボドライバ。
図1
図2
図3
図4
図5
図6
図7
図8
図9