JP2016103114A - インバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法。 - Google Patents
インバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法。 Download PDFInfo
- Publication number
- JP2016103114A JP2016103114A JP2014240575A JP2014240575A JP2016103114A JP 2016103114 A JP2016103114 A JP 2016103114A JP 2014240575 A JP2014240575 A JP 2014240575A JP 2014240575 A JP2014240575 A JP 2014240575A JP 2016103114 A JP2016103114 A JP 2016103114A
- Authority
- JP
- Japan
- Prior art keywords
- program
- processor
- storage area
- data
- storing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】 それぞれファームウェアが異なる2以上のプロセッサを備えるインバータ装置において、運用を維持しながらファームウェアプログラムの更新が可能にすること。【解決手段】 異なるファームウェアプログラムで動作する2つのプロセッサを備えるインバータ装置において、運用継続が要求される所定の制御処理を実行するプロセッサと、前記制御処理以外の処理を実行するプロセッサに機能分散し、ファームウェアプログラムの更新データを両プロセッサの記憶領域間で転送し、起動するプログラムの遷移を繰り返しながら両プロセッサの役割を交代させることで、前記制御処理を実行するプログラムの作動を継続しつつ、2種類のファームウェアとも更新する。【選択図】 図6
Description
本発明は、それぞれファームウェアが異なる2以上のプロセッサを有するインバータ装置におけるファームウェアプログラムの更新方法および同更新方法を備えるインバータ装置に関する。
直流・交流の変換や周波数等の調整によりモータ等の制御を行うインバータ装置には、プロセッサに所定の動作をさせるためにファームウェアが組み込まれている。これらのファームウェアは、性能の向上や仕様の変更等に対応させるために定期または不定期に更新される。
従来のインバータ装置におけるファームウェアの更新では、ROMライターを使用してプロセッサの不揮発性メモリにデータを書き込んでいたため、運用中のインバータ装置の電源を切ってから書き込みを行う必要があった。
そのため、プロセッサにあらかじめファームウェアの更新機能を備えるインバータ装置も開発されているが、更新後にはプロセッサのリブート(初期化)をしなければならないので、その際に運用を停止する必要があった。
関連する技術として、例えば特許文献1には、2箇所に備えられるファームウェアについて一括して更新データを受信し、人手で変更操作を行うことなくファームウェア更新モードに移行し、2箇所のファームウェアの更新処理を実行する電子機器及び電子機器におけるファームウェア更新方法が提案されている。
また、特許文献2には、ホストI/F制御部の設定変更によりコマンド受信メモリアドレスを切り替えることを可能とすることにより、転送先切り替え用のスイッチやCPUの動作状況を管理するための共有メモリを必要とせず、ホストからのコマンドを異常終了させずにファームウェア更新を実現することを可能にするディスク制御装置およびファームウェアの更新方法が提案されている。
しかしながら、上記の従来の技術では、インバータ装置が周辺機器との連携によりシステム化して、複数のモータ等の監視制御に用いられるような場合に、ファームウェア更新のためにインバータ装置の運用を停止させると、他の周辺機器もしくは上位に接続する監視機器が、インバータ装置の異常と誤認してしまうおそれがある。
たとえば図12に示すシステムでは、複数のモータ96をそれぞれ制御するインバータ装置99と、各インバータ装置のシーケンス制御を行うコントローラ(PLC:プログラマブルロジックコントローラ)98と、これら複数のインバータ装置99の監視を行う監視装置や表示装置等の上位の外部機器(パーソナルコンピュータ、ワークステーション)97が接続された構成となっており、いずれかのインバータ装置99の運用が停止されると、監視を行う外部機器97が異常を検知するおそれがある。
このような事態を回避するためには、インバータ装置99においてモータ96を制御する上で必要な機能についてはその動作を中断させることなく運用を継続し、並行してファームウェアの更新を行う必要がある。
しかしながら、たとえば特許文献1の技術では、ファームウェアの更新時に機器の動作を制御するコントローラへの通信を停止することから、装置の運用を継続するものではない。また、特許文献2の技術では、ファームウェア更新完了後のCPUのリブート(再起動)により装置の動作が一旦停止するので運用が中断される。
本発明はかかる従来の事情に対処してなされたものであり、それぞれファームウェアが異なる2以上のプロセッサを備えるインバータ装置であって、運用を継続させながらファームウェアプログラムの更新が可能なインバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法を提供することを目的とする。
上記目的を達成するため、本発明に係るインバータ装置は、所定の制御処理を実行する第1のプログラム又は前記制御処理以外の処理を実行する第2のプログラムのいずれかを格納する記憶領域を有する第1のプロセッサと、前記第1のプロセッサと接続され、前記第1のプログラムを格納する記憶領域と、前記第2のプログラムを格納する記憶領域とを別個に有する第2のプロセッサと、を具備するインバータ装置であって、
前記第1のプロセッサは、外部機器から送信される第1のプログラム又は第2のプログラムの更新データを受信する通信手段と、受信した前記更新データを記憶領域に格納してプログラムの更新処理を実行する更新手段と、当該記憶領域に格納されたプログラムと、当該プログラムが第1のプログラムであるのかあるいは第2のプログラムであるのかを表す種類情報と、を前記第2のプロセッサへ送信する転送手段と、を備え、
前記第2のプロセッサは、受信した前記種類情報に基づいて格納すべき記憶領域を判定して、該記憶領域に受信したプログラムを格納するプログラム格納手段と、前記種類情報に基づき、実行すべきプログラムを判定するプログラム選択手段と、を備えることを特徴とする。
前記第1のプロセッサは、外部機器から送信される第1のプログラム又は第2のプログラムの更新データを受信する通信手段と、受信した前記更新データを記憶領域に格納してプログラムの更新処理を実行する更新手段と、当該記憶領域に格納されたプログラムと、当該プログラムが第1のプログラムであるのかあるいは第2のプログラムであるのかを表す種類情報と、を前記第2のプロセッサへ送信する転送手段と、を備え、
前記第2のプロセッサは、受信した前記種類情報に基づいて格納すべき記憶領域を判定して、該記憶領域に受信したプログラムを格納するプログラム格納手段と、前記種類情報に基づき、実行すべきプログラムを判定するプログラム選択手段と、を備えることを特徴とする。
なお、インバータ装置と外部機器とは直接1対1で接続しても良いし、ネットワークを介して接続するようにしても良い。
本発明では、負荷の継続運用に必要な制御処理を実行するプログラム(第1のプログラム)と、そのプログラムを実行するプロセッサ(第1のプロセッサ)、および、比較的長周期の監視処理など前記制御処理以外の処理を実行するプログラム(第2のプログラム)と、そのプログラムを実行させるプロセッサ(第2のプロセッサ)とを予め機能分けしてインバータ装置を構築する。そして、プログラムの更新時は、そのプログラムとプロセッサとの関連付けを変更して、継続運用の必要な制御処理については2つのプロセッサ間で処理を引継ぎながら各プログラムの更新を行う。
また、外部機器と繋がりプログラムの更新データを受信する第1のプロセッサには第1のプログラム又は第2のプログラムのいずれかを格納する記憶領域を備え、第1のプロセッサから転送される更新プログラムを受信する第2のプロセッサには第1のプログラムを格納する記憶領域(第1の記憶領域)と、第2のプログラムを格納する記憶領域(第2の記憶領域)を備える。これにより、第2のプロセッサのみに第1のプログラムおよび第2のプログラムの両方を格納する記憶領域を設ければよく、第1のプロセッサの記憶領域は第1のプログラム又は第2のプログラムのいずれか一方を格納することになるので、第1のプロセッサの記憶領域を節約することができる。
また、本発明に係るインバータ装置は、所定の制御処理を実行する第1のプログラム又は前記制御処理以外の処理を実行する第2のプログラムのいずれかを格納する記憶領域を有する第1のプロセッサと、前記第1のプロセッサと接続され、前記第1のプログラムを格納する記憶領域と、前記第2のプログラムを格納する記憶領域とを別個に有する第2のプロセッサと、を具備し、前記第1のプロセッサのメモリアドレス空間のデータを前記第2のプロセッサのメモリアドレス空間へ転送し、両プロセッサ間のデータ等価処理を実行するデータ等価手段を有するインバータ装置であって、
前記第1のプロセッサは、外部機器から送信される第1のプログラム又は第2のプログラムの更新データを受信する通信手段と、受信した前記更新データを記憶領域に格納してプログラムの更新処理を実行する更新手段と、データを等価すべき第1のプロセッサのアドレス空間と第2のプロセッサのアドレス空間を対応付けた等価領域を保存する等価領域管理テーブルと、外部機器から送信されるプログラムの種類に基づいて前記等価領域を設定する等価領域設定手段と、を備え、
前記データ等価手段は、前記等価領域に基づいてデータ等価処理を実行し、
前記第2のプロセッサは、前記等価領域に対応して実行すべきプログラムを選択することを特徴とする。
前記第1のプロセッサは、外部機器から送信される第1のプログラム又は第2のプログラムの更新データを受信する通信手段と、受信した前記更新データを記憶領域に格納してプログラムの更新処理を実行する更新手段と、データを等価すべき第1のプロセッサのアドレス空間と第2のプロセッサのアドレス空間を対応付けた等価領域を保存する等価領域管理テーブルと、外部機器から送信されるプログラムの種類に基づいて前記等価領域を設定する等価領域設定手段と、を備え、
前記データ等価手段は、前記等価領域に基づいてデータ等価処理を実行し、
前記第2のプロセッサは、前記等価領域に対応して実行すべきプログラムを選択することを特徴とする。
本発明では、2つのプロセッサ間で運用時に制御や監視のためのデータを等価するメモリ空間に、プログラム記憶領域のメモリ空間も加えて等価処理を行う。これによりマルチプロセッサ構成の際に通常備えるデータ等価処理の機能を利用してプログラムの更新を効率よく行うことができる。
好ましくは、等価処理の周期あるいは回数を設定できるようにすると良い。例えば、制御に必要なデータは短い周期で継続的に等価処理を行い、プログラムの更新は長周期で1回のみ行うようにすれば、運用に支障を来たすことなくプログラムを更新することができる。
さらに、本発明に係るインバータ装置のプログラムの更新方法は、制御処理を実行する第1のプログラム又は負荷の制御処理以外の処理を実行する第2のプログラムを格納する記憶領域を有し、前記第1のプログラムが作動する第1のプロセッサと、前記第1のプロセッサと接続し、前記第1のプログラムを格納する第1の記憶領域と、前記第2のプログラムを格納する第2の記憶領域とを有し、前記第2のプログラムが作動する第2のプロセッサと、を具備するインバータ装置の前記第1のプログラム又は前記第2のプログラムを更新する方法であって、
前記第1のプロセッサの記憶領域に格納された前記第1のプログラムを、前記第2のプロセッサの前記第1の記憶領域に転送するステップと、前記第1のプロセッサに格納された前記第1のプログラムの作動を停止し、前記第2のプロセッサの前記第1の記憶領域に格納された前記第1のプログラムを起動するステップと、外部機器から受信した更新後の前記第2のプログラムを、前記第1のプロセッサの記憶領域に格納するステップと、
前記第1のプロセッサの記憶領域に格納された更新後の前記第2のプログラムを、前記第2のプロセッサの前記第2の記憶領域に転送するステップと、外部機器から受信した更新後の前記第1のプログラムを、前記第1のプロセッサの記憶領域に格納するステップと、前記第1のプロセッサの記憶領域に格納された更新後の前記第1のプログラムを起動し、前記第2のプロセッサの前記第1の記憶領域に格納された前記第1のプログラムの作動を停止し、前記第2のプロセッサの前記第2の記憶領域に格納された更新後の前記第2のプログラムを起動するステップと、前記第1のプロセッサの記憶領域に格納された更新後の前記第1のプログラムを、前記第2のプロセッサの前記第1の記憶領域に転送するステップと、を含むことを特徴とする。
前記第1のプロセッサの記憶領域に格納された前記第1のプログラムを、前記第2のプロセッサの前記第1の記憶領域に転送するステップと、前記第1のプロセッサに格納された前記第1のプログラムの作動を停止し、前記第2のプロセッサの前記第1の記憶領域に格納された前記第1のプログラムを起動するステップと、外部機器から受信した更新後の前記第2のプログラムを、前記第1のプロセッサの記憶領域に格納するステップと、
前記第1のプロセッサの記憶領域に格納された更新後の前記第2のプログラムを、前記第2のプロセッサの前記第2の記憶領域に転送するステップと、外部機器から受信した更新後の前記第1のプログラムを、前記第1のプロセッサの記憶領域に格納するステップと、前記第1のプロセッサの記憶領域に格納された更新後の前記第1のプログラムを起動し、前記第2のプロセッサの前記第1の記憶領域に格納された前記第1のプログラムの作動を停止し、前記第2のプロセッサの前記第2の記憶領域に格納された更新後の前記第2のプログラムを起動するステップと、前記第1のプロセッサの記憶領域に格納された更新後の前記第1のプログラムを、前記第2のプロセッサの前記第1の記憶領域に転送するステップと、を含むことを特徴とする。
本発明では、異なるファームウェアプログラムで動作する2つのプロセッサを備えるインバータ装置において、ファームウェアプログラムの更新データを、2つのプロセッサの記憶領域間の転送と、起動するプログラムの遷移を繰り返すことで、負荷の制御処理を実行するプログラム(第1のプログラム)の作動を継続しつつ、2種類のファームウェアとも更新することができる。
以上のごとく、本発明によれば、それぞれプログラムが異なる少なくとも2つのプロセッサを備えるインバータ装置において、重要な処理について運用を停止させることなくプログラムを更新することが可能になる。
[第1の実施の形態]
以下、本発明のインバータ装置及びインバータ装置のプログラムの更新方法に係る第1の実施の形態を説明する。
以下、本発明のインバータ装置及びインバータ装置のプログラムの更新方法に係る第1の実施の形態を説明する。
図1は、本実施の形態に係るインバータ装置1の全体構成を説明する図である。インバータ装置1は、基本制御を行うマスタープロセッサ2と、応用処理を行うスレーブプロセッサ3で構成されており、それぞれのプロセッサに組み込まれたファームウェアにより、モータ制御切替部4を介してモータ等の負荷7の負荷を制御する。ここで「基本制御」とは、継続運転が要求される処理であって、具体的には負荷の制御処理を意味する。また、「応用処理」とは前記制御処理以外の処理を意味し、例えば比較的長周期の自己診断や監視処理などが含まれる。
また、インバータ装置1は、シリアル通信6を介してパーソナルコンピュータ等の外部機器8と接続する。外部機器8では、操作オペレータ等によりインバータ装置1の監視を行い、それぞれのプロセッサに組み込まれたファームウェアのプログラム更新データを生成してインバータ装置1のマスタープロセッサ2へ送信する。すなわち、スレーブプロセッサ3のファームウェアの更新プログラムであっても、一旦、マスタープロセッサ2の記憶領域に格納された後で、スレーブプロセッサ3のファームウェアを更新するのが本実施形態の特徴の一つである。
このインバータ装置1のマスタープロセッサ2,スレーブプロセッサ3には、それぞれ演算処理を行うCPU21,31、シリアル通信5を介して相互のプロセッサ間の通信を行うシリアルI/F(シリアル通信インタフェース)22−2,32、収集した監視データ等を一時的に記憶する揮発性メモリ23,33、オペレーティングシステム(OS)やファームウェア等のプログラムを記憶する不揮発性メモリ24,34、モータ制御切替部4に制御指令等を出力するI/O出力25,35等を備えている。また、マスタープロセッサ2は、さらにシリアル通信6を介して外部機器8との通信を行うシリアルI/F22−1を有する。揮発性メモリ23,33としてはRAMを使用することができ、不揮発性メモリ24,34としてはROM(E2PROM、フラッシュメモリ等を含む。)を使用することができる。
上述したように、外部機器8(パーソナルコンピュータ等)は、インバータ装置1のマスタープロセッサ2およびスレーブプロセッサ3のファームウェアを更新するプログラム更新データを生成して、インバータ装置1に送信する。インバータ装置1のマスタープロセッサ2は、外部機器8から送信されたプログラム更新データを受信して、さらにスレーブプロセッサ3へ転送する。これにより、外部機器8から送信されたプログラム更新データは、各プロセッサ2,3が備える不揮発性メモリ24,34の所定の領域に格納される。
図2は、本実施形態に係るインバータ装置1の各プロセッサが備える不揮発性メモリ24,34におけるプログラム格納状態を説明するメモリマップである。プログラムの種類ごとに格納領域が決まっている。
例えば、図2では何れのプロセッサとも、0x00000000番地〜0x00010000番地(0x00000000以上、0x00010000未満のアドレス範囲を意味する。以下同様)にはオペレーティングシステム(OS)が格納され、0x00010000番地〜0x00015000番地はシリアル通信などの更新管理プログラムが格納され、また0x00015000番地〜0x00020000番地には後述するマスター制御プログラムやスレーブ制御プロプログラムなどの実行を管理する実行管理プログラムが格納されている。
また、マスタープロセッサ2側の不揮発性メモリ24では、0x00020000番地〜0x00040000番地は、マスタープロセッサ2またはスレーブプロセッサ3の制御プログラムが格納される領域として割り当てられている。なお、マスタープロセッサ2は、通常は基本制御を行うので、デフォルトでは基本制御を行うプログラムであるマスター制御プログラムが格納される。
一方、スレーブプロセッサ3側の不揮発性メモリ34では、0x00020000番地〜0x00040000番地は、スレーブプロセッサ3の制御プログラム(以下、「スレーブ制御プログラム」という。)が格納される領域(第2の記憶領域)として割り当てられ、0x00040000番地〜0x00060000番地は、マスタープロセッサ2の制御プログラム(以下、「マスター制御プログラム」という。)が格納される領域(第1の記憶領域)として割り当てられている。
ここで、「更新管理プログラム」は、外部機器8や相互のプロセッサ間のシリアル通信5の送受信を行う機能や、同期をとるためのメッセージ通知機能、ファームウェアを不揮発性メモリ24,34に書き込む機能等を実現する。
「実行管理プログラム」とは、ファームウェア、即ちマスター制御プログラムやスレーブ制御プログラムを実行させるプログラムであるが、他にも更新するファームウェアの種類によって、自局のプロセッサの動作を判断する機能等も実現する。
なお、本実施形態のインバータ装置1では、不揮発性メモリ24,34とも、0x00000000番地〜0x00020000番地の領域はROMライターでの書き込みが可能なUV−EPROM等の記憶媒体とし、0x00020000番地以降の領域は、プログラムの記憶領域に対応したセクタ単位でCPUから書き込み可能なフラッシュメモリ等を用いるのが好ましい。
図3は、本実施形態のインバータ装置1におけるソフトウェアの機能ブロック図である。それぞれのプログラムは、図2に示すメモリマップの各領域に格納されている。なお、オペレーティングシステム(OS)等のデータも格納するが図3では省略している。
前述したようにマスタープロセッサ2の不揮発性メモリ24には、更新管理プログラム241、実行管理プログラム245、マスター/スレーブ制御プログラム246等が格納されている。ここでマスター/制御プログラムとは、マスター制御プログラムまたはスレーブ制御プログラムのいずれか一方を意味する。
図3において、マスタープロセッサ2の更新管理プログラム241は、シリアルI/F部(通信手段)242、ファームウェア更新手段243、転送手段244等として機能する。
また、スレーブプロセッサ3の不揮発性メモリ34には、更新管理プログラム341、実行管理プログラム346、マスター制御プログラム347、スレーブ制御プログラム348等が格納されている。
スレーブプロセッサ3の更新管理プログラム341は、シリアルI/F部(通信手段)342、ファームウェア更新手段343、プログラム格納手段344等として機能し、実行管理プログラム346は、プログラム選択手段349等として機能する。
次に、制御プログラム更新時の概略手順を説明する。
図4,図5は、本実施形態のインバータ装置1及びインバータ装置1におけるファームウェアプログラムの更新方法において、マスター制御プログラムとスレーブ制御プログラムの二つのファームウェアを更新する際の、不揮発性メモリのプログラム格納状態及び実行動作の流れの説明図である。一連の更新手順において図4は前半部分を図5は後半部分を示している。
図4,図5は、本実施形態のインバータ装置1及びインバータ装置1におけるファームウェアプログラムの更新方法において、マスター制御プログラムとスレーブ制御プログラムの二つのファームウェアを更新する際の、不揮発性メモリのプログラム格納状態及び実行動作の流れの説明図である。一連の更新手順において図4は前半部分を図5は後半部分を示している。
図4のメモリマップに示すように、マスタープロセッサ2の不揮発性メモリ24における制御プログラムを格納する記憶領域は一つであり、通常の状態では、基本制御を行うために動作するマスター制御プログラムが格納され、実行管理プログラム245によって実行されている(MA1)。
スレーブプロセッサ3の不揮発性メモリ34における制御プログラムを格納する記憶領域は二つであり、通常状態では第2の記憶領域にスレーブ制御プログラムが格納され、実行管理プログラム346によって実行されている。
プログラムの更新が行われる場合には、まず外部機器8から更新開始の通知がインバータ装置1のマスタープロセッサ2に送信される。なお、更新プログラムは外部機器8からシリアル通信6によって直接マスタープロセッサ2に送信しても良いし、コントローラを仲介させて間接的に送信するようにしても良い。
マスタープロセッサ2は更新開始の通知を受信すると、不揮発性メモリ24に格納されているマスター制御プログラムのデータ(実行オブジェクト)をシリアル通信5を介してスレーブプロセッサ3へ送信する。スレーブプロセッサ3は、マスタープロセッサ2から送信されるマスター制御プログラムのデータを受信すると、第1の記憶領域に格納する(SA1)。
次に、スレーブプロセッサ3は、スレーブ制御プログラムを停止すると共に、不揮発性メモリ34の第1の記憶領域に格納したマスター制御プログラムのモードで起動する(SA2)。このとき、スレーブプロセッサ3でのマスター制御プログラムの開始とマスタープロセッサ2でのマスター制御プログラムの停止のタイミングを同期させる。例えば、マスタープロセッサ2からマスター制御プログラム停止時のプログラム実行アドレスの次のアドレスをスレーブプロセッサ3へ送信し、スレーブプロセッサ3では、受信した実行アドレスからマスター制御プログラムの動作を開始するようにしても良い。
上述のごとく、マスター制御プログラムは、本来マスタープロセッサ2を制御するためのプログラムであるが、スレーブプロセッサ3についても、マスター制御プログラムの動作モードで起動することができる。また、スレーブ制御プログラムは、本来スレーブプロセッサ3を制御するためのプログラムであるが、マスタープロセッサ2についても、スレーブ制御プログラムの動作モードで起動することができる。
なお、スレーブ制御プログラムは、モータ等の負荷7の制御処理(すなわち継続運転が要求される処理)以外の処理を行うプログラムなので、一時的に停止をしても、インバータ装置1の全体の運用には支障がない。
次に外部機器8は、マスタープロセッサ2へ更新用のスレーブ制御プログラム(以下、単に「新スレーブ制御プログラム」と言う。)を送信する。マスタープロセッサ2は、新スレーブ制御プログラムを受信すると、記憶領域に上書きする(MA2)。このとき、マスタープロセッサ2では実行管理プログラム245によって記憶領域に格納されている制御プログラムの作動は停止状態になっている。
マスタープロセッサ2の記憶領域への新スレーブ制御プログラムの上書きが完了すると、新スレーブ制御プログラムのモードで起動する。またマスタープロセッサ2は記憶領域に格納されている新スレーブ制御プログラムをスレーブプロセッサ3へ転送する(MA3)。
一方、スレーブプロセッサ3は、第1の記憶領域に格納されているマスター制御プログラムのモードで動作中であるが、マスタープロセッサ2から送られてくる新スレーブプログラムのデータを受信すると第2の記憶領域へ格納する(SA3)。なお、制御プログラムの種別(マスターかスレーブか)については、制御プログラムのデータを転送する際に予め種別の識別情報を送信することによって受信側でどの制御プログラムを受信したかを認識できるようにしておく。
ステップMA4及びステップSA4は、新スレーブ制御プログラムの転送が完了した状態を示している。
次に、図5を用いて、制御プログラムの更新手順の続きを説明する。なお、図5は、上記ステップMA4及びステップSA4からの手順を示している。
ステップMA4及びステップSA4の状態において、マスタープロセッサ2は、外部機器8から更新用のマスター制御プログラム(以下、単に「新マスター制御プログラム」と言う。)を受信すると、それまで動作中であった新スレーブ制御プログラムを停止し、受信した新マスター制御プログラムを記憶領域に上書きする(MA5)。このとき、スレーブプロセッサ3では、ステップSA4の状態が継続しており、マスター制御プログラムのモードで動作中である(SA5)。
マスタープロセッサ2は記憶領域への新マスター制御プログラムの上書きが完了すると、新マスター制御プログラムのモードで動作を開始する(MA6)。このとき、スレーブプロセッサ3では、上記ステップSA2で説明した同期処理と同様の処理によってマスター制御プログラムの動作を停止させると共に、第2の記憶領域に格納された新スレーブ制御プログラムのモードで起動する。
さらにマスタープロセッサ2は記憶領域に格納されている新マスター制御プログラムをスレーブプロセッサ3へ転送する。スレーブプロセッサ3は、この新マスター制御プログラムを受信すると停止中である第1の記憶領域へ上書きする(SA6)。
ステップMA7及びステップSA7は、転送が完了した状態を示している。以上の手順により、マスター制御プログラム、スレーブ制御プログラムとも、更新されたプログラムとなっている。
図6は、本実施形態のインバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法において、ファームウェアを更新する際の詳細動作を示すフローチャートである。
はじめに、パーソナルコンピュータ等の外部機器8において、ファームウェアの更新プログラムが生成される(S101)。ここで、通常においてファームウェアの更新プログラムは、マスター制御プログラムとスレーブ制御プログラムの双方を対象として生成される。
外部機器8は、ファームウェアの更新プログラムを生成すると、シリアル通信6を介してインバータ装置1のマスタープロセッサ2に、プログラム更新指令を送信する(S102)。
マスタープロセッサ2のシリアルI/F部(通信手段)242は、プログラム更新指令を受信すると、更新管理プログラム241の転送手段244を起動して(S103)、マスタープロセッサ2の不揮発性メモリ24が備える記憶領域のマスター制御プログラムのデータを、プログラムの種類等の情報を含むプログラム転送通知(メッセージ)とともに、スレーブプロセッサ3の不揮発性メモリ34が備えるシリアルI/F部(通信手段)342に転送する(S104)。ここでの転送処理は、マスタープロセッサ2とスレーブプロセッサ3とを接続するシリアル通信5を用いて行う。
スレーブプロセッサ3では、マスタープロセッサ2からのデータの転送を受けると、所定の記憶領域に格納する(S105)。
ここで、S105での動作については、図7のフローチャートを用いて説明する。
スレーブプロセッサ3では、マスタープロセッサ2からプログラムが転送されると(S201)、プログラム格納手段344を起動して、プログラムがマスター制御プログラムかスレーブ制御プログラムかを判定する(S202)。具体的には、マスタープロセッサ2の転送手段244から送信されるプログラム転送通知(メッセージ)に含まれるプログラムの種類の情報を参照する。
スレーブプロセッサ3では、マスタープロセッサ2からプログラムが転送されると(S201)、プログラム格納手段344を起動して、プログラムがマスター制御プログラムかスレーブ制御プログラムかを判定する(S202)。具体的には、マスタープロセッサ2の転送手段244から送信されるプログラム転送通知(メッセージ)に含まれるプログラムの種類の情報を参照する。
プログラム格納手段344は、判定の結果、マスター制御プログラムである場合には(S202において「マスター」)、マスター制御プログラムの記憶領域である第1の記憶領域にプログラムを書き込む(S203)。一方、スレーブ制御プログラムである場合には(S202において「スレーブ」)、スレーブ制御プログラムの記憶領域である第2の記憶領域にプログラムを書き込む(S204)。
なお、ここではマスター制御プログラムなので、第1の記憶領域に格納される。この時点のメモリマップは図4のMA1,SA1の状態になっている。
図6に戻り、S105以降の流れを説明する。
スレーブプロセッサ3のプログラム格納手段344は、プログラムの書き込みが完了すると、転送完了通知を生成して、シリアル通信5を介してマスタープロセッサ2に送信する(S106)とともに、スレーブプロセッサ3の実行管理プログラム346を起動して、スレーブプロセッサ動作モードからマスタープロセッサ動作モードに遷移する(S108)。
スレーブプロセッサ3のプログラム格納手段344は、プログラムの書き込みが完了すると、転送完了通知を生成して、シリアル通信5を介してマスタープロセッサ2に送信する(S106)とともに、スレーブプロセッサ3の実行管理プログラム346を起動して、スレーブプロセッサ動作モードからマスタープロセッサ動作モードに遷移する(S108)。
一方、マスタープロセッサ2の実行管理プログラム245は、転送完了通知の受信を受けてマスタープロセッサ動作モードでの動作を停止する(S107)。
次に、マスタープロセッサ2では、外部機器8から更新プログラムが送信されると(S109)、更新手段243を起動して、マスタープロセッサ2の記憶領域に書き込みを行う(S110)。
マスタープロセッサ2の更新手段243は、更新プログラムの書き込みの完了を受けて、プログラムの種類等の情報を含む更新完了通知(メッセージ)とともに、書き込まれた更新プログラムをスレーブプロセッサ3に転送して(S111)、更新されたプログラムの動作モードで起動する(S112)。
更新プログラムの転送を受けたスレーブプロセッサ3では、プログラム選択手段349が起動して、更新完了通知を参照して受信した更新プログラムの種類を判定し、所定の動作モードに遷移する(S113)。
ここで、ステップS113での動作については、図8のフローチャートを用いて説明する。スレーブプロセッサ3では、マスタープロセッサ2から更新プログラムが転送されると(S301)、プログラム選択手段349を起動して、プログラムがマスター制御プログラムかスレーブ制御プログラムかを判定する(S302)。具体的には、マスタープロセッサ2の転送手段244から送信される更新完了通知に含まれるプログラムの種類の情報を参照する。
プログラム選択手段349は、判定の結果、マスター制御プログラムである場合には(S302において「マスター」)、スレーブ制御プログラムを起動してスレーブプロセッサ動作モードに遷移する(S303)。一方、スレーブ制御プログラムである場合には(S302において「スレーブ」)、マスター制御プログラムを起動してマスタープロセッサ動作モードに遷移する(S304)。
なお、ここではマスター制御プログラムなので、スレーブ制御プログラムの動作モードで起動する。この時点のメモリマップは図4のMA4,SA4の状態になっている。
これにより、図6のフローチャートにおける動作は完了する。なお、図6は、図4,図5で示す不揮発性メモリのプログラム格納状態及び実行動作の流れのうち、前半である図4のフローを説明するものであるが、後半である図5においてファームウェアを更新する際の詳細動作も同様の手順になる。
以上のように、本実施形態のインバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法によれば、インバータ装置の運用を継続しつつ、並行してファームウェアの更新を行うことができる。また、記憶領域を遷移させながらプログラム更新を行っているので、マスタープロセッサ2の記憶領域はマスター制御プログラム又はスレーブ制御プログラムのいずれか一方のみを格納すればよいので、マスタープロセッサ2におけるメモリを節約することができる。
[第2の実施の形態]
次に、本発明のインバータ装置及びインバータ装置のプログラムの更新方法に係る第2の実施の形態について説明する。
次に、本発明のインバータ装置及びインバータ装置のプログラムの更新方法に係る第2の実施の形態について説明する。
図9に示すように、本実施形態では、マスタープロセッサ2の更新管理プログラム241に等価領域設定手段247,等価領域管理テーブル231を追加し、さらにマスタープロセッサ2の不揮発性メモリ24と、スレーブプロセッサ3の不揮発性メモリ34に、データ等価手段240,340をそれぞれ追加した点が第1の実施の形態と異なっている。
ここでデータ等価手段240,340は、マスタープロセッサ2とスレーブプロセッサ3との間で同じデータを共有するために、両プロセッサの所定のメモリ空間のデータを一定の周期で等価する処理を実行する。通常データ等価の対象となるメモリ空間は揮発性メモリ(RAM)上に取られるが、本実施の形態では、不揮発性メモリの制御プログラム記憶領域もデータ等価の対象にしている。なおデータ等価処理自体は、例えば特開2009−093392号公報に記載されているような従来技術を用いることができる。
等価領域管理テーブル231には、マスタープロセッサ2とスレーブプロセッサ3との間で等価すべきメモリ空間の対応関係が保存されており、データ等価手段240、340はこの対応関係に基づいてデータ等価処理を実行する。また、制御プログラムの更新時は、マスタープロセッサ2の等価領域設定手段247がこの等価領域管理テーブル231の等価すべき制御プログラム記憶領域の対応関係を書き換える。
具体的には、図10のフローチャートに沿って説明する。なお、第1の実施形態において処理手順を説明した図6と同じ部分については説明を省略する。
はじめに、外部機器8はファームウェアの更新プログラムを生成して(S401)、インバータ装置1のマスタープロセッサ2にプログラム更新指令を送信する(S402)。
マスタープロセッサ2では、プログラム更新指令を受けて等価領域設定手段247が起動し(S403)、プログラム更新指令に基づいて等価領域管理テーブル231に転送すべきアドレス空間を設定する(S404)。
図11は等価領域管理テーブル231の構成例である。等価領域管理テーブル231では、等価の方向や転送すべきプログラムの種類等により、等価の対象となるデータのメモリアドレスを管理する。
等価領域設定手段247は、外部機器8からプログラム更新開始の通知を受けたときは、転送元アドレスとして、マスタープロセッサ2の記憶領域のアドレス空間(0x00020000番地〜0x00040000番地)を設定し、また転送先アドレスとして、スレーブプロセッサ3の第1の記憶領域(0x00040000番地〜0x00060000番地)を設定する。すると、マスタープロセッサ2のデータ等価手段240は、転送先アドレス情報と共に、転送元アドレスに格納されているデータ(制御プログラムのデータ)をスレーブプロセッサ3へ送信する。スレーブプロセッサ3のデータ等価手段340は、マスタープロセッサ2から送られてくるデータを受信すると、受信データに含まれている転送先アドレス情報に基づいて、そのアドレスへ受信したデータを書き込む(S405)。
以上の処理によって、プログラム更新開始の際に、マスタープロセッサ2のマスター制御プログラムをスレーブプロセッサ3の第1の記憶領域に退避させることができる。
データ等価処理対象の全アドレス空間の等価処理の完了により、マスタープロセッサ2は、マスター制御プログラムの動作を停止させ(S406)、一方スレーブプロセッサ3は、マスター制御プログラムを起動してマスタープロセッサ動作モードへ遷移する(S407)。このとき両プロセッサのプログラムの停止、起動のタイミングは、図6のステップS106と同様にデータ等価手段340からデータ等価手段240へデータ等価処理完了の通知によって同期させることができる。
外部機器8から更新プログラムが送られてくると(S408)、マスタープロセッサ2の等価領域設定手段247は、更新プログラムの種類によって転送先の判定を行う。
等価領域設定手段247は、外部機器8から送られてきた更新プログラムの種類がスレーブ制御プログラムの場合は、等価領域管理テーブル231の転送先アドレス範囲を(0x00020000番地〜0x00040000番地)に設定し、更新プログラムの種類がマスター制御プログラムの場合は、転送先アドレス範囲を(0x00040000番地〜0x00060000番地)に設定する。なお、転送元アドレス範囲は、マスタープロセッサ2のマスター/スレーブ制御プログラム領域である(0x00020000番地〜0x00040000番地)が設定される。また、等価領域管理テーブル231の等価回数は「1」を設定する。ちなみに、プログラム以外のデータ等価処理は通常RAM領域で行われるが、この場合の等価回数は制限なしのコード(例えば「FF」)を設定する。データ等価手段240は、データ等価処理ごとに等価回数をデクリメントし、等価回数が「0」になるとそのアドレス空間のデータ等価処理を実行しない。また、等価回数が「制限なし(FF)」の場合はデクリメントしない。これにより、制御プログラムの転送処理を複数回繰り返すことを防止することができる。
そして、マスタープロセッサ2、スレーブプロセッサ3は、前述したステップS112,ステップS113と同様に処理によって、それぞれ更新されたプログラムの動作モードへ遷移する(S412,S413)。
以上のように、本実施の形態に係るインバータ装置及びインバータ装置のプログラムの更新方法によれば、等価の対象とするデータのメモリアドレスを一括して管理することができるので、構成の変更に柔軟に対応することができる。
1 インバータ装置
2 マスタープロセッサ
3 スレーブプロセッサ
4 モータ制御切替部
5,6 シリアル通信
7 負荷(モータ)
8 外部機器
21,31 CPU
22−1,22−2,32 シリアルI/F
23,33 揮発性メモリ(RAM)
24,34 不揮発性メモリ(ROM)
25,35 I/O出力
231 等価領域管理テーブル
240,340 データ等価手段
241,341 更新管理プログラム
242,342 シリアルI/F部(通信手段)
243,343 ファーム更新(更新手段)
244 転送手段
245,346 実行管理プログラム
246 マスター/スレーブ制御プログラム
247 等価領域設定手段
344 プログラム格納手段
347 マスター制御プログラム
348 スレーブ制御プログラム
349 プログラム選択手段
2 マスタープロセッサ
3 スレーブプロセッサ
4 モータ制御切替部
5,6 シリアル通信
7 負荷(モータ)
8 外部機器
21,31 CPU
22−1,22−2,32 シリアルI/F
23,33 揮発性メモリ(RAM)
24,34 不揮発性メモリ(ROM)
25,35 I/O出力
231 等価領域管理テーブル
240,340 データ等価手段
241,341 更新管理プログラム
242,342 シリアルI/F部(通信手段)
243,343 ファーム更新(更新手段)
244 転送手段
245,346 実行管理プログラム
246 マスター/スレーブ制御プログラム
247 等価領域設定手段
344 プログラム格納手段
347 マスター制御プログラム
348 スレーブ制御プログラム
349 プログラム選択手段
Claims (4)
- 所定の制御処理を実行する第1のプログラム又は前記制御処理以外の処理を実行する第2のプログラムのいずれかを格納する記憶領域を有する第1のプロセッサと、
前記第1のプロセッサと接続され、前記第1のプログラムを格納する記憶領域と、前記第2のプログラムを格納する記憶領域とを別個に有する第2のプロセッサと、
を具備するインバータ装置であって、
前記第1のプロセッサは、
外部機器から送信される第1のプログラム又は第2のプログラムの更新データを受信する通信手段と、
受信した前記更新データを記憶領域に格納してプログラムの更新処理を実行する更新手段と、
当該記憶領域に格納されたプログラムと、当該プログラムが第1のプログラムであるのかあるいは第2のプログラムであるのかを表す種類情報と、を前記第2のプロセッサへ送信する転送手段と、
を備え、
前記第2のプロセッサは、
受信した前記種類情報に基づいて格納すべき記憶領域を判定して、該記憶領域に受信したプログラムを格納するプログラム格納手段と、
前記種類情報に基づき、実行すべきプログラムを判定するプログラム選択手段と、
を備えることを特徴とするインバータ装置。 - 所定の制御処理を実行する第1のプログラム又は前記制御処理以外の処理を実行する第2のプログラムのいずれかを格納する記憶領域を有する第1のプロセッサと、
前記第1のプロセッサと接続され、前記第1のプログラムを格納する記憶領域と、前記第2のプログラムを格納する記憶領域とを別個に有する第2のプロセッサと、
を具備し、
前記第1のプロセッサのメモリアドレス空間のデータを前記第2のプロセッサのメモリアドレス空間へ転送し、両プロセッサ間のデータ等価処理を実行するデータ等価手段を有するインバータ装置であって、
前記第1のプロセッサは、
外部機器から送信される第1のプログラム又は第2のプログラムの更新データを受信する通信手段と、
受信した前記更新データを記憶領域に格納してプログラムの更新処理を実行する更新手段と、
データを等価すべき第1のプロセッサのアドレス空間と第2のプロセッサのアドレス空間を対応付けた等価領域を保存する等価領域管理テーブルと、
外部機器から送信されるプログラムの種類に基づいて前記等価領域を設定する等価領域設定手段と、を備え、
前記データ等価手段は、前記等価領域に基づいてデータ等価処理を実行し、
前記第2のプロセッサは、前記等価領域に対応して実行すべきプログラムを選択することを特徴とするインバータ装置。 - 前記等価領域管理テーブルは、さらにデータ等価処理を実行する回数を保存可能であって、等価領域がプログラムの記憶領域の場合は前記等価領域設定手段により回数1が設定され、
前記データ等価手段は、前記回数分のデータ等価処理が完了すると、前記等価領域管理テーブルの回数をリセットすることを特徴とする請求項2記載のインバータ装置。 - 制御処理を実行する第1のプログラム又は制御処理以外の処理を実行する第2のプログラムを格納する記憶領域を有し、前記第1のプログラムが作動する第1のプロセッサと、
前記第1のプロセッサと接続し、前記第1のプログラムを格納する第1の記憶領域と、前記第2のプログラムを格納する第2の記憶領域とを有し、前記第2のプログラムが作動する第2のプロセッサと、
を具備するインバータ装置の前記第1のプログラム又は前記第2のプログラムを更新する方法であって、
前記第1のプロセッサの記憶領域に格納された前記第1のプログラムを、前記第2のプロセッサの前記第1の記憶領域に転送するステップと、
前記第1のプロセッサに格納された前記第1のプログラムの作動を停止し、前記第2のプロセッサの前記第1の記憶領域に格納された前記第1のプログラムを起動するステップと、
外部機器から受信した更新後の前記第2のプログラムを、前記第1のプロセッサの記憶領域に格納するステップと、
前記第1のプロセッサの記憶領域に格納された更新後の前記第2のプログラムを、前記第2のプロセッサの前記第2の記憶領域に転送するステップと、
外部機器から受信した更新後の前記第1のプログラムを、前記第1のプロセッサの記憶領域に格納するステップと、
前記第1のプロセッサの記憶領域に格納された更新後の前記第1のプログラムを起動し、前記第2のプロセッサの前記第1の記憶領域に格納された前記第1のプログラムの作動を停止し、前記第2のプロセッサの前記第2の記憶領域に格納された更新後の前記第2のプログラムを起動するステップと、
前記第1のプロセッサの記憶領域に格納された更新後の前記第1のプログラムを、前記第2のプロセッサの前記第1の記憶領域に転送するステップと、
を含むことを特徴とするインバータ装置のプログラムの更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014240575A JP2016103114A (ja) | 2014-11-27 | 2014-11-27 | インバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法。 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014240575A JP2016103114A (ja) | 2014-11-27 | 2014-11-27 | インバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法。 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016103114A true JP2016103114A (ja) | 2016-06-02 |
Family
ID=56088981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014240575A Pending JP2016103114A (ja) | 2014-11-27 | 2014-11-27 | インバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法。 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016103114A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984240A (zh) * | 2017-05-31 | 2018-12-11 | 太阳能安吉科技有限公司 | 用于电力设备的电路和图形用户界面 |
JP2020112303A (ja) * | 2019-01-10 | 2020-07-27 | リンナイ株式会社 | ソフトウェア更新機能付き燃焼機器 |
JP2020123145A (ja) * | 2019-01-30 | 2020-08-13 | 富士通クライアントコンピューティング株式会社 | 情報処理装置、方法及びプログラム |
JP2020527271A (ja) * | 2017-07-18 | 2020-09-03 | ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh | スレーブコンピュータの初期プログラミング方法および装置 |
JP7321337B2 (ja) | 2018-07-04 | 2023-08-04 | 三菱電機株式会社 | 空調制御システム、制御プログラムの更新方法、プログラム及び空調機 |
-
2014
- 2014-11-27 JP JP2014240575A patent/JP2016103114A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984240A (zh) * | 2017-05-31 | 2018-12-11 | 太阳能安吉科技有限公司 | 用于电力设备的电路和图形用户界面 |
JP2019004690A (ja) * | 2017-05-31 | 2019-01-10 | ソーラーエッジ テクノロジーズ リミテッド | パワーデバイス用の回路およびグラフィカル・ユーザ・インターフェース |
US11750025B2 (en) | 2017-05-31 | 2023-09-05 | Solaredge Technologies Ltd. | Circuit for a power device and graphical user interface |
JP2020527271A (ja) * | 2017-07-18 | 2020-09-03 | ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh | スレーブコンピュータの初期プログラミング方法および装置 |
US11200195B2 (en) | 2017-07-18 | 2021-12-14 | Robert Bosch Gmbh | Method and device for the initial programming of a secondary computer |
JP7321337B2 (ja) | 2018-07-04 | 2023-08-04 | 三菱電機株式会社 | 空調制御システム、制御プログラムの更新方法、プログラム及び空調機 |
JP2020112303A (ja) * | 2019-01-10 | 2020-07-27 | リンナイ株式会社 | ソフトウェア更新機能付き燃焼機器 |
JP7076385B2 (ja) | 2019-01-10 | 2022-05-27 | リンナイ株式会社 | ソフトウェア更新機能付き燃焼機器 |
JP2020123145A (ja) * | 2019-01-30 | 2020-08-13 | 富士通クライアントコンピューティング株式会社 | 情報処理装置、方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5623593B2 (ja) | ベーシック・インプット/アウトプット・システムを同時に更新するためのラックおよびその方法 | |
JP2016103114A (ja) | インバータ装置及びインバータ装置におけるファームウェアプログラムの更新方法。 | |
US11392368B2 (en) | Electronic control system for updating circuit | |
JP2016060388A (ja) | プログラム送信システム及びプログラム送信装置 | |
JP2016143318A (ja) | プログラム更新装置、プログラム更新システム、家電機器、通信アダプタ、コントローラ、プログラム更新方法、および、プログラム | |
JPWO2016047312A1 (ja) | 車両制御装置、リプログラミングシステム | |
US20170262340A1 (en) | Relay device, control method of relay device, control program and recording medium | |
JP5144409B2 (ja) | インバータ制御システム,インバータ装置の周辺機器 | |
JP2015069315A (ja) | デバイス | |
JP2010068684A (ja) | インバータ装置 | |
JP6797312B2 (ja) | 通信システム、マスタ装置及びスレーブ装置 | |
KR102129465B1 (ko) | Plc시스템의 유닛 증설방법 | |
JP2020154438A (ja) | 電子制御装置及び制御データの設定方法 | |
JP6686521B2 (ja) | 制御システムおよび制御方法 | |
JP6169306B2 (ja) | 制御システム及びプログラマブルロジックコントローラ | |
JP6396084B2 (ja) | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 | |
US11442720B2 (en) | Communication adapter and program update method for communication adapter | |
JP6888204B2 (ja) | 温度調節計及び通信変換器 | |
JP6571423B2 (ja) | 情報処理システム、デバイス情報取得方法、及びそのためのプログラム | |
JP7322764B2 (ja) | 空気調和機 | |
JP5687171B2 (ja) | コントローラ、監視ユニット、およびシーケンスプログラム更新方法 | |
JPH06241543A (ja) | 空気調和システム | |
JP5330321B2 (ja) | プログラマブル表示器 | |
CN117130676A (zh) | 信息同步方法、装置、存储介质及电子设备 | |
JP2019038379A (ja) | 鉄道用信号保安システム及び制御方法 |