(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152082
(43)【公開日】2023-10-16
(54)【発明の名称】ドライブユニット
(51)【国際特許分類】
G06F 8/654 20180101AFI20231005BHJP
【FI】
G06F8/654
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022062023
(22)【出願日】2022-04-01
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】阿部 亮介
(72)【発明者】
【氏名】大野 悌
(72)【発明者】
【氏名】岩永 羊二
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA16
5B376CA23
5B376CA55
5B376CA58
5B376FA11
5B376GA13
(57)【要約】
【課題】ドライブユニットの動作中にファームウェアの更新を行う。
【解決手段】ドライブユニットは、不揮発性記憶領域にファームウェアが記憶された第1記憶部と、第2記憶部と、ドライブユニットの起動時に第1記憶部におけるファームウェアを複製し、複製されたファームウェアを第2記憶部に記憶する処理部と、を備え、処理部は、ファームウェアの更新情報を受け付けた場合、ドライブユニットの動作中に第2記憶部から複製されたファームウェアを読み出して実行することにより、ファームウェアの更新情報に基づいて第1記憶部におけるファームウェアの更新を行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ドライブユニットであって、
不揮発性記憶領域にファームウェアが記憶された第1記憶部と、
第2記憶部と、
前記ドライブユニットの起動時に前記第1記憶部における前記ファームウェアを複製し、複製された前記ファームウェアを前記第2記憶部に記憶する処理部と、
を備え、
前記処理部は、前記ファームウェアの更新情報を受け付けた場合、前記ドライブユニットの動作中に前記第2記憶部から複製された前記ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における前記ファームウェアの更新を行う、
ドライブユニット。
【請求項2】
バージョンが異なる複数の前記ファームウェアが前記第1記憶部の前記不揮発性記憶領域に記憶されており、
前記処理部は、
前記ドライブユニットの起動時に前記第1記憶部における複数の前記ファームウェアのうち最も新しいバージョンの前記ファームウェアを複製し、複製された前記ファームウェアを前記第2記憶部に記憶し、
前記ファームウェアの前記更新情報を受け付けた場合、前記ドライブユニットの動作中に前記第2記憶部から複製された前記ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における複数の前記ファームウェアのうち最も古いバージョンの前記ファームウェアの更新を行う、
請求項1に記載のドライブユニット。
【請求項3】
前記処理部は、前記ファームウェアの更新が行われている間に前記ドライブユニットへの電力の供給が遮断された場合、前記ドライブユニットの起動時に前記第1記憶部における複数の前記ファームウェアのうち最も新しいバージョンの前記ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における複数の前記ファームウェアのうち最も古いバージョンの前記ファームウェアの更新を行う、
請求項2に記載のドライブユニット。
【請求項4】
前記ファームウェアは、制御用ファームウェアであり、
起動用ファームウェアが前記第1記憶部の前記不揮発性記憶領域に記憶されており、
前記処理部は、前記ドライブユニットの起動時に前記第1記憶部から前記起動用ファームウェアを読み出して実行することにより、前記第1記憶部に記憶された前記制御用ファームウェアを複製し、複製された前記制御用ファームウェアを前記第2記憶部に記憶する、
請求項1に記載のドライブユニット。
【請求項5】
前記処理部は、前記制御用ファームウェアの更新が行われている間に前記ドライブユニットへの電力の供給が遮断された場合、前記ドライブユニットの起動時に前記第1記憶部から前記起動用ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における前記制御用ファームウェアの更新を行う、
請求項4に記載のドライブユニット。
【請求項6】
前記第2記憶部は、揮発性記憶領域及び不揮発性記憶領域の少なくとも一方を有する、
請求項1から5の何れか一項に記載のドライブユニット。
【請求項7】
前記第2記憶部は、不揮発性記憶領域を有し、
複製された前記ファームウェアは、前記第2記憶部の前記不揮発性記憶領域に記憶され、
前記処理部は、前記ファームウェアの更新が行われている間に前記ドライブユニットへの電力の供給が遮断された場合、前記ドライブユニットの起動時に前記第2記憶部から前記複製された前記ファームウェアを読み出して実行することにより、前記第1記憶部における前記ファームウェアの更新を行う、
請求項1に記載のドライブユニット。
【請求項8】
前記ファームウェアの実行時に使用される少なくとも一つのライブラリが前記第1記憶部の前記不揮発性記憶領域に記憶されており、
前記処理部は、
少なくとも一つの前記ライブラリの更新情報を受け付け、かつ、更新の対象である少なくとも一つの前記ライブラリが不使用である場合、前記第1記憶部における更新の対象である少なくとも一つの前記ライブラリを複製し、複製された少なくとも一つの前記ライブラリを前記第2記憶部に記憶し、
複製された少なくとも一つの前記ライブラリを前記第2記憶部に記憶した後、前記ライブラリの前記更新情報に基づいて、前記第1記憶部における更新の対象である少なくとも一つの前記ライブラリの更新を行う、
請求項1から5の何れか一項に記載のドライブユニット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ドライブユニットに関する。
【背景技術】
【0002】
モータを駆動するドライブシステムでは、一般に、PLC(Programmable Logic Controller)等のコントローラからの指令に従って、ドライブユニット(ドライバ)によるモ
ータ制御が行われたり、予め設定された情報に基づいて、ドライブユニットによるモータ制御が行われたりする。ドライブユニットは、ファームウェアにより制御されている。ファームウェアに対する機能の追加やファームウェアの不具合の修正のために、ファームウェアの更新が行われている。特許文献1には、電源が投入されていない外部装置を対象としてファームウェア更新を行う技術が記載されている。特許文献2には、更新ソフトウェアを第1記憶領域にバックグラウンド処理でダウンロードし、ダウンロードが終了すると、直ちに第2記憶領域に更新ソフトウェアをバックグラウンド処理で展開する技術が記載されている。特許文献3には、ファームアップデートを実施する際に実施するバックアップを、差分アップデート対象となるファームウェアの一部分のみバックアップする技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014-186635号公報
【特許文献2】特開2015-212879号公報
【特許文献3】特開2015-225478号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ドライブユニットのファームウェアは、不揮発性メモリに記憶されており、不揮発性メモリからファームウェアを読み出して、ファームウェアが実行される。ドライブユニットの動作中はファームウェアが実行されているため、ファームウェアの更新を行う場合、ドライブユニットを停止させる必要があり、ドライブユニットが停止する時間(ダウンタイム)が生じる。ダウンタイムを回避するために、ドライブユニットの動作中にファームウェアの更新を行うことが要望されている。
【0005】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、ドライブユニットの動作中にファームウェアの更新を行うことが可能な技術を提供することにある。
【課題を解決するための手段】
【0006】
本願の一側面に係るドライブユニットは、不揮発性記憶領域にファームウェアが記憶された第1記憶部と、第2記憶部と、前記ドライブユニットの起動時に前記第1記憶部における前記ファームウェアを複製し、複製された前記ファームウェアを前記第2記憶部に記憶する処理部と、を備えるドライブユニットであって、前記処理部は、前記ファームウェアの更新情報を受け付けた場合、前記ドライブユニットの動作中に前記第2記憶部から複製された前記ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における前記ファームウェアの更新を行う。
【0007】
上記処理部は、ドライブユニットの起動時に第1記憶部におけるファームウェアを複製して第2記憶部に記憶する。ドライブユニットの動作中、処理部は、第2記憶部における
複製されたファームウェアを実行するため、第1記憶部におけるファームウェアを読み出さない。したがって、処理部は、ドライブユニットの動作中に第1記憶部に新しいファームウェアを書き込むことができ、第1記憶部におけるファームウェアの更新を行うことが可能となる。
【0008】
本ドライブユニットは、次の特徴を備えてもよい。バージョンが異なる複数の前記ファームウェアが前記第1記憶部の前記不揮発性記憶領域に記憶されており、前記処理部は、前記ドライブユニットの起動時に前記第1記憶部における複数の前記ファームウェアのうち最も新しいバージョンの前記ファームウェアを複製し、複製された前記ファームウェアを前記第2記憶部に記憶し、前記ファームウェアの前記更新情報を受け付けた場合、前記ドライブユニットの動作中に前記第2記憶部から複製された前記ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における複数の前記ファームウェアのうち最も古いバージョンの前記ファームウェアの更新を行う。ファームウェアの更新処理が行われている間にドライブユニットへの電力の供給が遮断された場合、更新対象のファームウェアが破損する可能性がある。更新対象のファームウェアは、第1記憶部における複数のファームウェアのうち最も古いバージョンのファームウェアである。第1記憶部には、更新対象のファームウェア、すなわち、最も古いバージョンのファームウェアと、更新対象ではないファームウェア、すなわち、最も新しいバージョンのファームウェアとが記憶されている。ファームウェアの更新処理が行われている間にドライブユニットへの電力の供給が遮断されても、処理部は、最も新しいバージョンのファームウェアを実行して、ドライブユニットの動作を再開することが可能である。
【0009】
本ドライブユニットは、次の特徴を備えてもよい。前記処理部は、前記ファームウェアの更新が行われている間に前記ドライブユニットへの電力の供給が遮断された場合、前記ドライブユニットの起動時に前記第1記憶部における複数の前記ファームウェアのうち最も新しいバージョンの前記ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における複数の前記ファームウェアのうち最も古いバージョンの前記ファームウェアの更新を行う。ファームウェアの更新の対象は、最も古いバージョンのファームウェアであり、最も新しいバージョンのファームウェアは、ファームウェアの更新の対象になっていない。そのため、処理部は、ドライブユニットの起動時に第1記憶部から最も新しいバージョンのファームウェアを読み出して実行することが可能である。したがって、ファームウェアの更新が行われている間にドライブユニットへの電力の供給が遮断された場合であっても、処理部は、第1記憶部における複数のファームウェアのうち最も古いバージョンのファームウェアの更新を行うことが可能である。
【0010】
本ドライブユニットは、次の特徴を備えてもよい。前記ファームウェアは、制御用ファームウェアであり、起動用ファームウェアが前記第1記憶部の前記不揮発性記憶領域に記憶されており、前記処理部は、前記ドライブユニットの起動時に前記第1記憶部から前記起動用ファームウェアを読み出して実行することにより、前記第1記憶部に記憶された前記制御用ファームウェアを複製し、複製された前記制御用ファームウェアを前記第2記憶部に記憶する。処理部は、ファームウェアの更新情報を受け付けた場合、第1記憶部における制御用ファームウェアの更新を行うが、第1記憶部における起動用ファームウェアの更新は行わない。そのため、制御用ファームウェアの更新が行われている間にドライブユニットへの電力の供給が遮断された場合であっても、第1記憶部における起動用ファームウェアの破損を回避することができる。
【0011】
本ドライブユニットは、次の特徴を備えてもよい。前記処理部は、前記制御用ファームウェアの更新が行われている間に前記ドライブユニットへの電力の供給が遮断された場合
、前記ドライブユニットの起動時に前記第1記憶部から前記起動用ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部における前記制御用ファームウェアの更新を行う。制御用ファームウェアの更新が行われている間にドライブユニットへの電力の供給が遮断された場合、制御用ファームウェアが破損する可能性がある。処理部は、制御用ファームウェアの更新を行うが、起動用ファームウェアの更新を行わない。そのため、制御用ファームウェアの更新が行われている間にドライブユニットへの電力の供給が遮断された場合であっても、処理部は、ドライブユニットの起動時に第1記憶部から起動用ファームウェアを読み出して実行することが可能である。したがって、制御用ファームウェアの更新が行われている間にドライブユニットへの電力の供給が遮断された場合であっても、処理部は、制御用ファームウェアの更新を行うことが可能である。
【0012】
本ドライブユニットは、次の特徴を備えてもよい。前記第2記憶部は、揮発性記憶領域及び不揮発性記憶領域の少なくとも一方を有する。第2記憶部が、揮発性記憶領域を有する場合、処理部は、複製されたファームウェアを第2記憶部の揮発性記憶領域に記憶することが可能である。第2記憶部が、不揮発性記憶領域を有する場合、処理部は、複製されたファームウェアを第2記憶部の不揮発性記憶領域に記憶することが可能である。第2記憶部が、揮発性記憶領域及び不揮発性記憶領域を有する場合、処理部は、複製されたファームウェアを揮発性記憶領域又は不揮発性記憶領域に記憶することが可能である。
【0013】
本ドライブユニットは、次の特徴を備えてもよい。前記第2記憶部は、不揮発性記憶領域を有し、複製された前記ファームウェアは、前記第2記憶部の前記不揮発性記憶領域に記憶され、前記処理部は、前記ファームウェアの更新が行われている間に前記ドライブユニットへの電力の供給が遮断された場合、前記ドライブユニットの起動時に前記第2記憶部から前記複製された前記ファームウェアを読み出して実行することにより、前記第1記憶部における前記ファームウェアの更新を行う。ファームウェアの更新処理が行われている間にドライブユニットへの電力の供給が遮断された場合、第1記憶部におけるファームウェアが破損する可能性がある。ファームウェアの更新が行われている間にドライブユニットへの電力の供給が遮断されても、第2記憶部の不揮発性記憶領域における複製されたファームウェアは消失しない。そのため、処理部は、ドライブユニットの起動時に第2記憶部から複製されたファームウェアを読み出して実行することが可能である。したがって、ファームウェアの更新が行われている間にドライブユニットへの電力の供給が遮断された場合であっても、処理部は、第1記憶部におけるファームウェアの更新を行うことが可能である。
【0014】
本ドライブユニットは、次の特徴を備えてもよい。前記ファームウェアの実行時に使用される少なくとも一つのライブラリが前記第1記憶部の前記不揮発性記憶領域に記憶されており、前記処理部は、少なくとも一つの前記ライブラリの更新情報を受け付け、かつ、更新の対象である少なくとも一つの前記ライブラリが不使用である場合、前記第1記憶部における更新の対象である少なくとも一つの前記ライブラリを複製し、複製された少なくとも一つの前記ライブラリを前記第2記憶部に記憶し、複製された少なくとも一つの前記ライブラリを前記第2記憶部に記憶した後、前記ライブラリの前記更新情報に基づいて、前記第1記憶部における更新の対象である少なくとも一つの前記ライブラリの更新を行う。処理部は、第1記憶部におけるライブラリを複製し、ライブラリを第2記憶部に記憶した後、第1記憶部におけるライブラリの更新を行う。処理部は、ライブラリの更新が行われている間、第2記憶部におけるライブラリを使用する。したがって、処理部は、ライブラリの更新が行われている間、第1記憶部におけるライブラリを使用しない。そのため、処理部は、第1記憶部におけるライブラリの更新を行うことが可能となる。
【発明の効果】
【0015】
本発明によれば、ドライブユニットの動作中にファームウェアの更新を行うことが可能な技術を提供することができる。
【図面の簡単な説明】
【0016】
【
図1】
図1は、第1実施形態に係るドライブシステムの構成の一例を示す図である。
【
図2】
図2は、ドライブユニットのハードウェアの概略構成を示す図である。
【
図3A】
図3Aは、ドライブユニットの処理の流れの一例を示す図である。
【
図3B】
図3Bは、ドライブユニットの処理の流れの一例を示す図である。
【
図4A】
図4Aは、ファームウェアの更新情報の取得処理の一例を示す図である。
【
図4B】
図4Bは、ファームウェアの更新情報の取得処理の一例を示す図である。
【
図4C】
図4Cは、ファームウェアの更新情報の取得処理の一例を示す図である。
【
図4D】
図4Dは、ファームウェアの更新情報の取得処理の一例を示す図である。
【
図5】
図5は、複数のドライブユニットの接続構成の一例を示す図である。
【
図6】
図6は、ドライブユニットのハードウェアの概略構成を示す図である。
【
図7】
図7は、ドライブユニットのハードウェアの概略構成を示す図である。
【
図8】
図8は、ドライブユニットのハードウェアの概略構成を示す図である。
【
図9A】
図9Aは、ドライブユニットの処理の流れの一例を示す図である。
【
図9B】
図9Bは、ドライブユニットの処理の流れの一例を示す図である。
【
図10】
図10は、ドライブユニットのハードウェアの概略構成を示す図である。
【
図11】
図11は、ドライブユニットの処理の流れの一例を示す図である。
【
図12】
図12は、ドライブユニットのハードウェアの概略構成を示す図である。
【発明を実施するための形態】
【0017】
<第1実施形態>
図面を参照して第1実施形態に係るドライブシステムについて説明する。
図1は、第1実施形態に係るドライブシステム100の構成の一例を示す図である。ドライブシステム100は、ドライブユニット1、PLC2及びサーボモータ3を有する。ドライブユニット1は、PLC2からの指令又は予め設定された情報に基づいて、サーボモータ3の制御を行う。
図1では、ドライブユニット1の制御対象はサーボモータ3であるが、
図1の構成に限定されず、ドライブユニット1の制御対象は他の機器であってもよい。ドライブユニット1とPLC2とは無線及び有線の少なくとも一方によって接続されている。ドライブユニット1及びPLC2を、TCP/IPネットワークなどの産業用ネットワークによって接続してもよい。ドライブユニット1とサーボモータ3とは無線及び有線の少なくとも一方によって接続されている。PLC2は、予め準備されたプログラムに従う処理を実行することによって、例えば、ドライブシステム100の監視装置として機能する。
【0018】
図2は、ドライブユニット1のハードウェアの概略構成を示す図である。ドライブユニット1は、第1記憶装置11と、第2記憶装置12と、処理装置13とを備える。第1記憶装置11は、ファームウェアが記憶された不揮発性記憶領域を有する。第1記憶装置11は、第1記憶部の一例である。例えば、ドライブユニット1の出荷時に、第1記憶装置11の不揮発性記憶領域にファームウェアを記憶してもよい。ファームウェアは、例えば、ドライブユニット1のハードウェアを制御するためのプログラムである。第2記憶装置12は、第1記憶装置11におけるファームウェアのコピーを記憶する記憶領域を有する。第2記憶装置12は、第2記憶部の一例である。
【0019】
処理装置13は、例えば、中央演算処理装置(CPU)、マイクロプロセッサーユニット(MPU)などのプロセッサーである。処理装置13は、処理部の一例である。ドライ
ブユニット1は、PLC2及びサーボモータ3と通信を行うための通信インターフェースや、各種のデータや情報、プログラムを記憶するメモリを備える。処理装置13は、メモリに記憶されたプログラムの実行を通じてサーボモータ3の制御を行う。これにより、ドライブユニット1は、所定の目的に合致した処理を実行することができる。また、処理装置13とは異なる他の演算装置が、サーボモータ3の制御を行ってもよい。
【0020】
図3A及び
図3Bは、ドライブユニット1の処理の流れの一例を示す図である。
図3Aは、ドライブユニット1の起動時における処理の流れを示し、
図3Bは、ドライブユニット1の動作中における処理の流れを示している。ドライブユニット1の起動時は、ドライブユニット1に電力が供給された時を意味する。
図3Aに示すように、処理装置13は、ドライブユニット1の起動時において、第1記憶装置11におけるファームウェアを複製し(処理A1)、複製されたファームウェアを第2記憶装置12に記憶する(処理A2)。
【0021】
図3Bに示すように、処理装置13は、ドライブユニット1の動作中、第2記憶装置12から複製されたファームウェアを読み出して、複製されたファームウェアの命令を実行する(処理A3)。処理装置13は、複製されたファームウェアの命令を実行することにより、ドライブユニット1の制御を行う。処理装置13は、ファームウェアの更新情報を受け付けた場合、ドライブユニット1の動作中に第2記憶装置12から複製されたファームウェアを読み出して実行することにより、ファームウェアの更新情報に基づいて第1記憶装置11におけるファームウェアの更新を行う(処理A4)。ファームウェアの更新情報は、ファームウェアの更新ファイル(新ファームウェア)を含む。また、ファームウェアの更新情報は、ファームウェアの更新(書き換え)のリクエストを含んでもよい。
【0022】
<第1実施形態の作用効果>
処理装置13は、ドライブユニット1の起動時に第1記憶装置11におけるファームウェアを複製して第2記憶装置12に記憶する。ドライブユニット1の動作中、処理装置13は、第2記憶装置12における複製されたファームウェアを実行し、ファームウェアが記憶された第1記憶装置11を参照しない。すなわち、処理装置13は、ドライブユニット1の動作中に第1記憶装置11におけるファームウェアを読み出さない。そのため、処理装置13は、ドライブユニット1の動作中に第1記憶装置11に新しいファームウェアを書き込むことができ、第1記憶装置11におけるファームウェアの更新を行うことが可能となる。ドライブユニット1の動作中に第1記憶装置11におけるファームウェアの更新を行うことができるので、ドライブユニット1のダウンタイムの発生を抑制することができる。ドライブユニット1を再起動することで、新しいファームウェア(更新後のファームウェア)が有効化される。これにより、ファームウェアの更新が完了する。処理装置13は、ドライブユニット1に設けられた表示部にファームウェアの更新の完了を示すメッセージを表示させてもよい。表示部は、例えば、複数桁の英数字を表示可能な7セグメントLED、液晶ディスプレイ、有機ELディスプレイなどである。
【0023】
処理装置13は、第2記憶装置12から複製されたファームウェアを読み出して実行することで、新しいファームウェアの妥当性チェックを行ってもよい。これにより、処理装置13は、第1記憶装置11への不正なファームウェアの書き込みを検知することができる。処理装置13は、第1記憶装置11への不正なファームウェアの書き込みを検知した場合、ドライブユニット1の表示部にファームウェアの更新のリトライを促すメッセージを表示させてもよい。
【0024】
図4A~
図4Dは、ドライブユニット1がファームウェアの更新情報を取得する処理の一例を示す図である。
図4Aでは、情報処理装置201などの外部装置からドライブユニット1にファームウェアの更新情報が送られる。ドライブユニット1は情報処理装置20
1からファームウェアの更新情報を取得し、処理装置13がファームウェアの更新情報を受け付ける。ドライブユニット1と情報処理装置201との間で、例えば、USB規格に従ったデータ通信、Bluetooth(登録商標)によるデータ通信、EtherNet/IP(登録商標)プロトコルに従ったデータ通信が行われてもよい。また、情報処理装置201の制御装置が、ドライブユニット1の処理装置13によって行われる処理の一部又は全部を行ってもよい。
【0025】
図4Bでは、PLC2からドライブユニット1にファームウェアの更新情報が送られる。ドライブユニット1はPLC2からファームウェアの更新情報を取得し、処理装置13がファームウェアの更新情報を受け付ける。ドライブユニット1とPLC2との間で、例えば、EtherCAT(登録商標)プロトコルに従ったデータ通信が行われてもよい。また、PLC2が、ドライブユニット1の処理装置13によって行われる処理の一部又は全部を行ってもよい。
【0026】
図4Cでは、ドライブユニット1にSDカードなどの記録媒体202が装着される。ドライブユニット1は記録媒体202からファームウェアの更新情報を取得し、処理装置13がファームウェアの更新情報を受け付ける。
【0027】
図4Dでは、クラウド上の情報処理装置203などの外部装置からドライブユニット1にファームウェアの更新情報が送られる。ドライブユニット1は情報処理装置203からファームウェアの更新情報を取得し、処理装置13がファームウェアの更新情報を受け付ける。処理装置13は、自発的に情報処理装置203に対してファームウェアの更新情報の有無を確認してもよい。処理装置13は、情報処理装置203からファームウェアの更新情報が存在することを示す情報を受け取った場合又はファームウェアの更新情報を受け付けた場合、ドライブユニット1の表示部にファームウェアの更新情報が存在することを示すメッセージを表示させてもよい。また、情報処理装置203の制御装置が、ドライブユニット1の処理装置13によって行われる処理の一部又は全部を行ってもよい。
【0028】
図5に示すように、複数のドライブユニット1(1A,1B,1C)をバス4によって相互に接続してもよい。ドライブユニット1Aは、第1記憶装置11A、第2記憶装置12A及び処理装置13Aを備える。ドライブユニット1Bは、第1記憶装置11B、第2記憶装置12B及び処理装置13Bを備える。ドライブユニット1Cは、第1記憶装置11C、第2記憶装置12C及び処理装置13Cを備える。
【0029】
処理装置13Aは、第1記憶装置11A及び第2記憶装置12Aにアクセスすることが可能であると共に、バス4を介して、第1記憶装置11B,11C及び第2記憶装置12B,12Cにアクセスすることが可能である。処理装置13Bは、第1記憶装置11B及び第2記憶装置12Bにアクセスすることが可能であると共に、バス4を介して、第1記憶装置11A,11C及び第2記憶装置12A,12Cにアクセスすることが可能である。処理装置13Cは、第1記憶装置11C及び第2記憶装置12Cにアクセスすることが可能であると共に、バス4を介して、第1記憶装置11A,11B及び第2記憶装置12A,12Bにアクセスすることが可能である。例えば、処理装置13Bが動作していない場合、処理装置13Aが、第1記憶装置11B及び第2記憶装置12Bにアクセスすることにより、第1記憶装置11Bにおけるファームウェアの更新を行ってもよい。
【0030】
図6は、ドライブユニット1のハードウェアの概略構成を示す図である。
図6に示す構成例では、ROM(Read Only Memory)21が第1記憶装置11に設けられ、RAM(Random Access Memory)31が第2記憶装置12に設けられている。ROMは、不揮発性記憶領域を有するメモリであり、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)である。RAMは、揮発性記憶領域を有するメモリであり、例
えば、SRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access
Memory)である。ドライブユニット1への電力の供給が遮断された場合、ROM21は
データを保持し続けるが、RAM31に記憶されたデータは消失する。ROM21には、ファームウェアが記憶されている。
【0031】
図6に示す構成例では、処理装置13は、ドライブユニット1の起動時において、ROM21におけるファームウェアを複製し、複製されたファームウェアをRAM31に記憶する。処理装置13は、ROM21の全ての記憶領域に記憶されたデータを複製し、複製されたデータをRAM31に記憶してもよい。処理装置13は、ファームウェアの更新情報を受け付けた場合、ドライブユニット1の動作中にRAM31から複製されたファームウェアを読み出して実行することにより、ファームウェアの更新情報に基づいてROM21におけるファームウェアの更新を行う。ドライブユニット1への電力の供給が遮断されることにより、RAM31における複製されたファームウェアは消失する。したがって、処理装置13は、ドライブユニット1の起動時において、RAM31に記憶されたデータを消去する必要がない。
【0032】
図7は、ドライブユニット1のハードウェアの概略構成を示す図である。
図7に示す構成例では、ROM21が第1記憶装置11に設けられ、ROM32が第2記憶装置12に設けられている。処理装置13は、ドライブユニット1の起動時において、ROM32に記憶されたデータを消去した後、ROM21におけるファームウェアを複製し、複製されたファームウェアをROM32に記憶する。処理装置13は、ROM21の全ての記憶領域に記憶されたデータを複製し、複製されたデータをROM32に記憶してもよい。処理装置13は、ファームウェアの更新情報を受け付けた場合、ドライブユニット1の動作中にROM32から複製されたファームウェアを読み出して実行することにより、ファームウェアの更新情報に基づいてROM21におけるファームウェアの更新を行う。処理装置13は、ROM21におけるファームウェアの更新が完了した場合、ROM32に記憶されたデータを消去してもよい。この場合、ドライブユニット1の起動時において、ROM32に記憶されたデータの消去処理が省略される。
【0033】
例えば、ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断された場合、ROM21におけるファームウェアが破損する可能性がある。ROM21におけるファームウェアが破損した場合、処理装置13は、ROM21におけるファームウェアを実行することができない。ドライブユニット1への電力の供給が遮断されても、ROM32における複製されたファームウェアは消失しないため、処理装置13は、複製されたファームウェアを実行して、ドライブユニット1の動作を再開することが可能である。このように、ROM32における複製されたファームウェアをバックアップ用のファームウェアとして利用することができる。
【0034】
ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断された場合、処理装置13は、ドライブユニット1の起動時にROM32から複製されたファームウェアを読み出して実行する。そして、処理装置13は、ファームウェアの更新情報に基づいてROM21におけるファームウェアの更新を行う。このように、ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断された場合であっても、処理装置13は、ROM21におけるファームウェアの更新を行うことが可能である。処理装置13は、ROM21に対してCRC(Cyclic Redundancy Check)などの
誤り検出処理を行うことにより、ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断されたことを検知してもよい。
【0035】
図6及び
図7に示す構成例に限定されず、第2記憶装置12は、RAM31及びROM32を有してもよい。したがって、第2記憶装置12は、揮発性記憶領域及び不揮発性記
憶領域の少なくとも一方を有してもよい。処理装置13は、複製されたファームウェアをRAM31又はROM32に記憶する。処理装置13は、RAM31の状態及びROM32の状態に応じて、複製されたファームウェアをRAM31及びROM32の何れに記憶するかを決定してもよい。例えば、ROM32に対する書き込みが一時的に不可となっている場合、処理装置13は、複製されたファームウェアをRAM31に記憶する。
【0036】
<第2実施形態>
第2実施形態について説明する。第2実施形態において、第1実施形態と同一の構成要素については、第1実施形態と同一の符号を付し、その説明を適宜省略する。
図8は、ドライブユニット1のハードウェアの概略構成を示す図である。
図8に示す構成例では、ROM21及びROM22が第1記憶装置11に設けられ、RAM31が第2記憶装置12に設けられている。RAM31に替えてROM32を第2記憶装置12に設けてもよい。第1記憶装置11は、バージョンが異なる複数のファームウェアを記憶する。例えば、ROM21に新しいバージョンのファームウェア(FW111)が記憶され、ROM22に古いバージョンのファームウェア(FW112)が記憶される。
【0037】
図9A及び
図9Bは、ドライブユニット1の処理の流れの一例を示す図である。
図9Aは、ドライブユニット1の起動時における処理の流れを示し、
図9Bは、ドライブユニット1の動作中における処理の流れを示している。
図9Aに示すように、処理装置13は、ドライブユニット1の起動時において、ROM21におけるFW111を複製し(処理B1)、複製されたファームウェア(FW111A)をRAM31に記憶する(処理B2)。処理装置13は、ROM21の全ての記憶領域に記憶されたデータを複製し、複製されたデータをRAM31に記憶してもよい。
図9Bに示すように、処理装置13は、ドライブユニット1の動作中に、RAM31における複製されたFW111Aを読み出し、複製されたFW111Aの命令を実行する(処理B3)。処理装置13は、ファームウェアの更新情報を受け付けた場合、ドライブユニット1の動作中にRAM31から複製されたFW111Aを読み出して実行することにより、ファームウェアの更新情報に基づいてROM22におけるFW112の更新を行う(処理B4)。FW112の更新が完了することにより、更新後のFW112のバージョンがFW111のバージョンよりも新しいバージョンに変更される。
【0038】
<第2実施形態の作用効果>
第2実施形態では、処理装置13は、ドライブユニット1の起動時において、第1記憶装置11における複数のファームウェアのうち最も新しいバージョンのファームウェアを複製し、複製されたファームウェアを第2記憶装置12に記憶する。処理装置13は、ファームウェアの更新情報を受け付けた場合、ドライブユニット1の動作中に第2記憶装置12から複製されたファームウェアを読み出して実行する。処理装置13は、複製されたファームウェアを実行することにより、ファームウェアの更新情報に基づいて第1記憶装置11における複数のファームウェアのうち最も古いバージョンのファームウェアの更新を行う。
【0039】
例えば、ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断された場合、更新対象のファームウェアが破損する可能性がある。更新対象のファームウェアは、第1記憶装置11における複数のファームウェアのうち最も古いバージョンのファームウェアである。
図9Bでは、更新対象のファームウェアは、ROM22におけるFW112である。第1記憶装置11には、更新対象のファームウェア(最も古いバージョンのファームウェア)と、更新対象ではないファームウェア(最も新しいバージョンのファームウェア)とが記憶されている。
図9Bでは、更新対象のFW112がROM22に記憶され、更新対象ではないFW111がROM21に記憶されている。ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断されても、処
理装置13は、第1記憶装置11における複数のファームウェアのうち最も新しいバージョンのファームウェアを実行して、ドライブユニット1の動作を再開することが可能である。このように、第1記憶装置11における複数のファームウェアのうち最も新しいバージョンのファームウェアをバックアップ用のファームウェアとして利用することができる。
【0040】
ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断された場合、処理装置13は、ドライブユニット1の起動時に第1記憶装置11における複数のファームウェアのうち最も新しいバージョンのファームウェアを読み出して実行する。そして、処理装置13は、ファームウェアの更新情報に基づいて第1記憶装置11における複数のファームウェアのうち最も古いバージョンのファームウェアの更新を行う。ファームウェアの更新の対象は、最も古いバージョンのファームウェアであり、最も新しいバージョンのファームウェアは、ファームウェアの更新の対象になっていない。そのため、処理装置13は、ドライブユニット1の起動時に第1記憶装置11から最も新しいバージョンのファームウェアを読み出して実行することが可能である。したがって、ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断された場合であっても、処理装置13は、第1記憶装置11における複数のファームウェアのうち最も古いバージョンのファームウェアの更新を行うことが可能である。処理装置13は、第1記憶装置11に対して誤り検出処理を行うことにより、ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断されたことを検知してもよい。
【0041】
図8、
図9A及び
図9Bでは、2つのファームウェア(FW111,112)が2つのROM(ROM21,22)に記憶されている。
図8、
図9A及び
図9Bに示す構成例に限定されず、3つ以上のファームウェアが3つ以上のROMに記憶されてもよい。この場合、3つ以上のファームウェアと、3つ以上のROMとを対応付けるようにしてもよい。
図8、
図9A及び
図9Bでは、ROM21にFW111が記憶され、ROM22にFW112が記憶されている。
図8、
図9A及び
図9Bに示す構成例に限定されず、ROM21にFW111,112が記憶されてもよい。このように、複数のファームウェアが複数のROMに記憶されてもよいし、複数のファームウェアが一つのROMに記憶されてもよい。
【0042】
<第3実施形態>
第3実施形態について説明する。第3実施形態において、第1実施形態と同一の構成要素については、第1実施形態と同一の符号を付し、その説明を適宜省略する。第1~第3実施形態に係るドライブユニット1を適宜組み合わせてもよい。
図10は、ドライブユニット1のハードウェアの概略構成を示す図である。
図10に示す構成例では、ROM21が第1記憶装置11に設けられ、RAM31が第2記憶装置12に設けられている。RAM31に替えて、ROM32を第2記憶装置12に設けてもよい。また、
図10に示す構成例では、ROM23~25が第1記憶装置11に設けられ、RAM33~35が第2記憶装置12に設けられている。RAM33~35に替えて、複数のROMを第2記憶装置12に設けてもよい。ROM23にライブラリ121が記憶され、ROM24にライブラリ122が記憶され、ROM25にライブラリ123が記憶される。ライブラリ121~123は、ファームウェアの実行時に使用されるプログラム及びファームウェアの実行時に使用されるデータの少なくとも一方を含む。処理装置13は、ファームウェアを実行する際に、ライブラリ121~123を使用することで、所定の処理を実行することができる。ライブラリ121~123によって提供される機能はそれぞれ異なっており、処理装置13は、ライブラリ121~123に応じて異なる処理を実行する。
【0043】
図11は、ドライブユニット1の処理の流れの一例を示す図である。
図11は、ドライブユニット1の動作中における処理の流れを示している。処理装置13は、ライブラリ更
新情報131を受け付ける(処理C1)。ライブラリ更新情報131は、ライブラリ123の更新ファイル(新ライブラリ)132を含む。ライブラリ更新情報131は、ライブラリ123の更新のリクエストを含んでもよい。処理装置13は、更新の対象であるライブラリ123が不使用である場合、ROM25におけるライブラリ123を複製し(処理C2)、複製されたライブラリ123AをRAM35に記憶する(処理C3)。処理装置13は、ROM25の全ての記憶領域に記憶されたデータを複製し、複製されたデータをRAM35に記憶してもよい。処理装置13は、ライブラリ更新情報131に基づいて、ROM25におけるライブラリ123を更新する(処理C4)。
【0044】
ライブラリ121,122の更新については、ライブラリ123の更新と同様である。処理装置13は、ライブラリ121を複製した場合、複製されたライブラリをRAM33に記憶する。処理装置13は、ライブラリ122を複製した場合、複製されたライブラリをRAM34に記憶する。
【0045】
<第3実施形態の作用効果>
処理装置13は、ROM25におけるライブラリ123を複製し、複製されたライブラリ123AをRAM35に記憶した後に、ROM25におけるライブラリ123の更新を行う。処理装置13は、ライブラリ123の更新が行われている間、RAM35におけるライブラリ123Aを使用する。したがって、処理装置13は、ライブラリ123の更新が行われている間、ROM25におけるライブラリ123を使用しない。そのため、処理装置13は、ドライブユニット1の動作中にROM25に新ライブラリ132を書き込むことができ、ROM25におけるライブラリ123の更新を行うことが可能となる。
【0046】
図10及び
図11では、3つのライブラリ(ライブラリ121~123)が3つのROM(ROM23~25)に記憶されている。
図10及び
図11に示す構成例に限定されず、ライブラリの数に応じて、第1記憶装置11が有するROMの数を増減してもよいし、第2記憶装置12が有するRAMの数を増減してもよい。ライブラリ121~123がROM25に記憶されてもよい。処理装置13は、ライブラリ121を複製した場合、複製されたライブラリをRAM35に記憶してもよい。処理装置13は、ライブラリ122を複製した場合、複製されたライブラリをRAM35に記憶してもよい。このように、複数のライブラリが第1記憶装置11の複数のROMに記憶されてもよいし、複数のライブラリが第1記憶装置11の一つのROMに記憶されてもよい。また、複製された複数のライブラリが第2記憶装置12の複数のRAMに記憶されてもよいし、複製された複数のライブラリが第2記憶装置12の一つのRAMに記憶されてもよい。
【0047】
第3実施形態では、ドライブユニット1を以下の態様として捉えることができる。ファームウェアの実行時に使用される少なくとも一つのライブラリが、第1記憶装置11の不揮発性記憶領域に記憶されている。処理装置13は、少なくとも一つのライブラリの更新情報を受け付け、かつ、更新の対象である少なくとも一つのライブラリが不使用である場合、第1記憶装置11における更新の対象である少なくとも一つのライブラリを複製する。処理装置13は、複製された少なくとも一つのライブラリを第2記憶装置12に記憶する。処理装置13は、複製された少なくとも一つのライブラリを第2記憶装置12に記憶した後、ライブラリ更新情報に基づいて、第1記憶装置11における更新の対象である少なくとも一つのライブラリの更新を行う。
【0048】
<第4実施形態>
第4実施形態について説明する。第4実施形態において、第1実施形態と同一の構成要素については、第1実施形態と同一の符号を付し、その説明を適宜省略する。第1~第4実施形態に係るドライブユニット1を適宜組み合わせてもよい。
図12は、ドライブユニット1のハードウェアの概略構成を示す図である。
図12に示す構成例では、ROM26
及びROM27が第1記憶装置11に設けられ、RAM31が第2記憶装置12に設けられている。RAM31に替えてROM32を第2記憶装置12に設けてもよい。第1記憶装置11は、起動用ファームウェア(起動用FW113)及び制御用ファームウェア(制御用FW114)を記憶する。例えば、ROM26に起動用FW113が記憶され、ROM27に制御用FW114が記憶される。起動用FW113は、ドライブユニット1の起動時に実行されるファームウェアである。制御用FW114は、ドライブユニット1の動作中に実行されるファームウェアである。第1~第3実施形態におけるファームウェアは、制御用FW114であってもよいし、起動用FW113及び制御用FW114から構成されてもよい。
【0049】
図13A及び
図13Bは、ドライブユニット1の処理の流れの一例を示す図である。
図13Aは、ドライブユニット1の起動時における処理の流れを示し、
図13Bは、ドライブユニット1の動作中における処理の流れを示している。
図13Aに示すように、処理装置13は、ドライブユニット1の起動時において、ROM26から起動用FW113を読み出して実行する(処理D1)。起動用FW113は、「ROM27の内容をRAM31に展開して実行する」という命令を含んでもよい。
図13Aに示すように、処理装置13は、ドライブユニット1の起動時において、処理装置13は、ROM27における制御用FW114を複製し(処理D2)、複製された制御用FW114AをRAM31に記憶する(処理D3)。処理装置13は、ROM27の全ての記憶領域に記憶されたデータを複製し、複製されたデータをRAM31に記憶してもよい。
【0050】
図13Bに示すように、処理装置13は、ドライブユニット1の動作中、RAM31における複製された制御用FW114Aを読み出し、複製された制御用FW114Aの命令を実行する(処理D4)。処理装置13は、ファームウェアの更新情報を受け付けた場合、ドライブユニット1の動作中にRAM31から複製された制御用FW114Aを読み出して実行することにより、ファームウェアの更新情報に基づいてROM27における制御用FW114の更新を行う(処理D5)。ファームウェアの更新情報は、制御用FW114の更新ファイル(新ファームウェア)を含む。また、ファームウェアの更新情報は、制御用FW114Aの更新(書き換え)のリクエストを含んでもよい。
【0051】
<第4実施形態の作用効果>
第1実施形態において、ファームウェアの更新が行われている間にドライブユニット1への電力の供給が遮断されて、ROM21におけるファームウェアが破損した場合、処理装置13は、ROM21におけるファームウェアを実行することができない。第4実施形態では、処理装置13は、ROM27における制御用FW114の更新を行うが、ROM26における起動用FW113の更新は行わない。そのため、制御用FW114の更新が行われている間にドライブユニット1への電力の供給が遮断された場合であっても、ROM26における起動用FW113の破損を回避することができる。したがって、制御用FW114の更新が行われている間にドライブユニット1への電力の供給が遮断された場合であっても、処理装置13は、ドライブユニット1の起動時にROM27から起動用FW113を読み出して実行することが可能である。
【0052】
処理装置13は、制御用FW114の更新が行われている間にドライブユニット1への電力の供給が遮断された場合、ドライブユニット1の起動時にROM26から起動用FW113を読み出して実行する。処理装置13は、ファームウェアの更新情報に基づいてROM27における制御用FW114の更新を行う。このように、制御用FW114の更新が行われている間にドライブユニット1への電力の供給が遮断された場合であっても、処理装置13は、ROM27における制御用FW114の更新を行うことが可能である。処理装置13は、ROM27に対して誤り検出処理を行うことにより、制御用FW114の更新が行われている間にドライブユニット1への電力の供給が遮断されたことを検知して
もよい。
【0053】
<変形例>
ファームウェアは、複数の機能モジュールで構成されてもよい。ファームウェアの更新を、複数の機能モジュールごとに行うようにしてもよい。これにより、ファームウェアの更新による時間を短縮することができる。また、ファームウェアは、ドライブユニット1のハードウェアを制御するためのプログラムと、そのプログラムを実行する際に使用するデータとを含んでもよい。
【0054】
以上説明した実施形態では、ドライブシステム100はPLC2によって制御されるいわゆるサーボシステムであるが、エンコーダからのフィードバックによる制御が不要なドライブシステム(ステッピングモータ等の制御)でもよいし、上位からの指令が不要で独立して動作するいわゆるインバータシステムでもよい。
【0055】
以上説明した各実施形態及び変形例は、組み合わせることができる。
【0056】
<付記1>
ドライブユニット(1)であって、
不揮発性記憶領域にファームウェアが記憶された第1記憶部(11)と、
第2記憶部(12)と、
前記ドライブユニット(1)の起動時に前記第1記憶部(11)における前記ファームウェアを複製し、複製された前記ファームウェアを前記第2記憶部(12)に記憶する処理部(13)と、
を備え、
前記処理部(13)は、前記ファームウェアの更新情報を受け付けた場合、前記ドライブユニット(1)の動作中に前記第2記憶部(12)から複製された前記ファームウェアを読み出して実行することにより、前記ファームウェアの前記更新情報に基づいて前記第1記憶部(11)における前記ファームウェアの更新を行う、
ドライブユニット(1)。
【符号の説明】
【0057】
1,1A,1B,1C・・ドライブユニット
2・・PLC
3・・サーボ
4・・バス
11,11A,11B,11C・・第1記憶装置
12,12A,12B,12C・・第2記憶装置
13,13A,13B,13C・・処理装置
21,22,23,24,25,26,27,32・・ROM
31,33,34,35・・RAM
100・・ドライブシステム
111,111A,112・・FW
113,113A・・起動用FW
114・・制御用FW
121,122,123,123A・・ライブラリ
131・・ライブラリ更新情報
132・・新ライブラリ
201,203・・情報処理装置
202・・記憶媒体