JP6401070B2 - Software rewriting device - Google Patents

Software rewriting device Download PDF

Info

Publication number
JP6401070B2
JP6401070B2 JP2015018066A JP2015018066A JP6401070B2 JP 6401070 B2 JP6401070 B2 JP 6401070B2 JP 2015018066 A JP2015018066 A JP 2015018066A JP 2015018066 A JP2015018066 A JP 2015018066A JP 6401070 B2 JP6401070 B2 JP 6401070B2
Authority
JP
Japan
Prior art keywords
software
data
address
memory
written
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.)
Active
Application number
JP2015018066A
Other languages
Japanese (ja)
Other versions
JP2016143208A (en
Inventor
孝典 大西
孝典 大西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Daihen Corp
Original Assignee
Daihen Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Daihen Corp filed Critical Daihen Corp
Priority to JP2015018066A priority Critical patent/JP6401070B2/en
Publication of JP2016143208A publication Critical patent/JP2016143208A/en
Application granted granted Critical
Publication of JP6401070B2 publication Critical patent/JP6401070B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、メモリにソフトウェアを書き込むソフトウェア書き換え装置に関する。   The present invention relates to a software rewriting apparatus for writing software in a memory.

近年、組み込みシステムによって機器を動作させることが一般的になってきている。そのような組み込みシステムにおいては、制御ソフトウェアを更新する際に、新たなソフトウェアをフラッシュROM等のメモリに書き込むことが行われる。また、そのようなソフトウェアの書き込みにおいて、正常に書き込まれたかどうかをチェックすることも行われている。例えば、先頭に値が書き込まれているか、また終端に正常な値が書き込まれているかを判断することが行われている。   In recent years, it has become common to operate devices with embedded systems. In such an embedded system, when the control software is updated, new software is written in a memory such as a flash ROM. Further, in such software writing, it is also checked whether or not the software has been written normally. For example, it is determined whether a value is written at the beginning and whether a normal value is written at the end.

なお、関連する技術として、データの書き込み途中にシステムダウン等が発生し、終端処理が適切に行われていない場合に、ファイルの終端を認識できるようにする技術が知られている(例えば、特許文献1参照)。   As a related technique, there is known a technique that makes it possible to recognize the end of a file when a system down or the like occurs during data writing and the end processing is not properly performed (for example, patents). Reference 1).

特開平6−236307号公報JP-A-6-236307

従来のソフトウェアの書き換えにおいて、終端のアドレスが固定である場合には、書き込み対象のソフトウェアの容量は変わりうるため、想定される最大のアドレスを終端アドレスとすることが行われていた。そのような場合には、ソフトウェアの書き込み時に、その固定の終端アドレスまでのすべての領域にデータを書くことになるため、ソフトウェアの書き込みに非常に時間がかかるという問題があった。例えば、組み込みシステムが溶接電源であり、作業者が100台の溶接電源のソフトウェアを書き換えなくてはならない場合には、1台あたりの書き換え時間が1分長くなるだけで、全体としては作業時間が1時間40分長くなることになる。したがって、ソフトウェアの書き込み時間を少しでも短くしたいという要望があった。   In the conventional software rewriting, when the end address is fixed, the capacity of the software to be written can be changed, so that the assumed maximum address is used as the end address. In such a case, at the time of software writing, data is written in all areas up to the fixed end address, so there is a problem that it takes a very long time to write software. For example, if the built-in system is a welding power source and the operator has to rewrite the software of 100 welding power sources, the rewriting time per unit is increased by 1 minute, and the overall work time It will be 1 hour and 40 minutes long. Therefore, there has been a demand for shortening the software writing time as much as possible.

また、ソフトウェアの書き込みが不適切であった場合には、そのソフトウェアを実行することによって動作する溶接電源等の装置が想定外の動作を行う可能性があるため、ソフトウェアの書き込みが正常に行われたかどうかを判断したいという要望もあった。   In addition, when software writing is inappropriate, devices such as a welding power source that operates by executing the software may perform unexpected operations, so software writing is performed normally. There was also a request to judge whether or not.

本発明は、上記課題を解決するためになされたものであり、メモリへのソフトウェアの書き込み時間を短縮できると共に、ソフトウェアの書き込みが正常に行われたかどうかを判断することができるソフトウェア書き換え装置を提供することを目的とする。   The present invention has been made to solve the above-described problem, and provides a software rewriting device capable of reducing the time for writing software to the memory and determining whether the software has been written normally. The purpose is to do.

上記目的を達成するため、本発明によるソフトウェア書き換え装置は、ソフトウェアが記憶されるメモリと、メモリへの書き込み対象のソフトウェアを受け付ける受付部と、受付部が受け付けたソフトウェアをメモリに書き込む記録部と、記録部によるソフトウェアの書き込みが正常であるかどうか判断する判断部と、を備え、記録部は、メモリにおける書き込み対象のソフトウェアの終端にあらかじめ決められた値を書き込み、あらかじめ決められた値のアドレスである終端アドレスをメモリの特定のアドレスに書き込み、判断部は、特定のアドレスのデータがメモリの範囲内のアドレスであり、データで示される終端アドレスのデータがあらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断する、ものである。
このような構成により、固定の終端アドレスまでデータを書き込む必要がないため、ソフトウェアの書き込みに要する時間を短縮することができる。また、ソフトウェアの書き込みが正常に行われたかどうかを判断することによって、例えば、正常に書き込まれた場合にのみ、そのソフトウェアを実行するようにすることもできる。また、その判断において、特定のアドレスのデータがメモリの範囲内のアドレスであるかどうか判断するため、例えば、そのデータがメモリの範囲外のアドレスである場合に、そのメモリの範囲外のアドレスのデータを読み出そうとすることによって、CPU等の実行部が誤動作する可能性を低減することができる。
To achieve the above object, a software rewriting apparatus according to the present invention includes a memory in which software is stored, a reception unit that receives software to be written to the memory, a recording unit that writes software received by the reception unit into the memory, And a determination unit that determines whether the writing of software by the recording unit is normal. The recording unit writes a predetermined value at the end of the software to be written in the memory, and uses an address of the predetermined value. A certain end address is written to a specific address in the memory, and the determination unit determines that when the data at the specific address is an address within the range of the memory and the data at the end address indicated by the data is a predetermined value, It is determined that the software writing is normal. .
With such a configuration, since it is not necessary to write data up to a fixed end address, the time required for software writing can be shortened. Further, by determining whether or not the software has been normally written, for example, the software can be executed only when the software has been normally written. In the determination, in order to determine whether the data at a specific address is an address within the memory range, for example, when the data is an address outside the memory range, By trying to read data, the possibility that an execution unit such as a CPU malfunctions can be reduced.

また、本発明によるソフトウェア書き換え装置では、判断部は、メモリの先頭アドレスにデータが書き込まれており、特定のアドレスのデータがメモリの範囲内のアドレスであり、データで示される終端アドレスのデータがあらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断してもよい。
このような構成により、メモリの先頭アドレスにデータが書き込まれているかどうかも判断するため、より厳密な判断を行うことができる。
Further, in the software rewriting device according to the present invention, the determination unit has data written at the start address of the memory, the data at the specific address is an address within the range of the memory, and the data at the end address indicated by the data is When the value is determined in advance, it may be determined that the software writing is normal.
With such a configuration, since it is also determined whether or not data is written at the start address of the memory, a more strict determination can be made.

また、本発明によるソフトウェア書き換え装置では、記録部は、メモリの複数の特定のアドレスに終端アドレスを書き込み、判断部は、複数の特定のアドレスのデータが一致しない場合に、ソフトウェアの書き込みが正常でないと判断してもよい。
このような構成により、終端アドレスが書き込まれる箇所について冗長化することができ、より厳密な判断を行うことができる。
In the software rewriting apparatus according to the present invention, the recording unit writes the end address to a plurality of specific addresses in the memory, and the determination unit writes the software incorrectly when the data of the plurality of specific addresses do not match. You may judge.
With such a configuration, it is possible to make redundant the location where the end address is written, and to make a more strict determination.

また、本発明によるソフトウェア書き換え装置では、あらかじめ決められた値は、メモリにおける書き込み対象のソフトウェアの終端の連続している複数のアドレスに書き込まれるものであり、判断部は、終端アドレスを含む連続している複数のアドレスのデータがあらかじめ決められた値でない場合に、ソフトウェアの書き込みが正常でないと判断してもよい。
このような構成により、終端アドレスに対応するあらかじめ決められた値をより長いデータにすることが可能となり、そのあらかじめ決められた値が、偶然、他のデータと一致する可能性を低減させることができる。
Further, in the software rewriting device according to the present invention, the predetermined value is written to a plurality of consecutive addresses at the end of the software to be written in the memory, and the determination unit includes a continuous address including the end address. If the data at the plurality of addresses is not a predetermined value, it may be determined that the software writing is not normal.
With such a configuration, it becomes possible to make a predetermined value corresponding to the end address longer data, and it is possible to reduce the possibility that the predetermined value coincides with other data by chance. it can.

また、本発明によるソフトウェア書き換え装置では、ソフトウェアは、溶接電源の制御に関するソフトウェアであってもよい。
このような構成により、溶接電源のソフトウェアを書き換える際に、ソフトウェアの書き込みに要する時間を短縮することができると共に、ソフトウェアが正常に書き込まれたかどうかを判断することができる。そして、例えば、正常に書き込まれた場合にのみ、書き換え後のソフトウェアを実行することによって、溶接電源の安全性を向上させることができる。
Moreover, in the software rewriting apparatus according to the present invention, the software may be software related to the control of the welding power source.
With such a configuration, when rewriting the software of the welding power source, it is possible to reduce the time required for writing the software and to determine whether the software has been normally written. And, for example, the safety of the welding power source can be improved by executing the rewritten software only when it is normally written.

本発明によるソフトウェア書き換え装置によれば、ソフトウェアの書き込みに要する時間を短縮できる。また、ソフトウェアの書き込みが正常に行われたかどうかを判断するため、例えば、正常に書き込まれた場合にのみ、そのソフトウェアを実行するようにすることもできる。   According to the software rewriting apparatus of the present invention, the time required for software writing can be shortened. Further, in order to determine whether or not the software has been normally written, for example, the software can be executed only when the software has been normally written.

本発明の実施の形態によるソフトウェア書き換え装置を含む溶接電源の構成を示すブロック図The block diagram which shows the structure of the welding power supply containing the software rewriting apparatus by embodiment of this invention 同実施の形態による溶接電源の動作を示すフローチャートFlowchart showing the operation of the welding power source according to the embodiment 同実施の形態による溶接電源の動作を示すフローチャートFlowchart showing the operation of the welding power source according to the embodiment 同実施の形態におけるアドレスマップの一例を示す図The figure which shows an example of the address map in the embodiment 同実施の形態におけるアドレスマップの一例を示す図The figure which shows an example of the address map in the embodiment 同実施の形態におけるアドレスマップの一例を示す図The figure which shows an example of the address map in the embodiment 同実施の形態におけるアドレスマップの一例を示す図The figure which shows an example of the address map in the embodiment 同実施の形態におけるソフトウェアの書き込みについて説明するための図The figure for demonstrating the writing of the software in the embodiment

以下、本発明によるソフトウェア書き換え装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態によるソフトウェア書き換え装置は、メモリで記憶されているソフトウェアを書き換えるものである。   Hereinafter, a software rewriting apparatus according to the present invention will be described using embodiments. In the following embodiments, components and steps denoted by the same reference numerals are the same or equivalent, and repetitive description may be omitted. The software rewriting apparatus according to the present embodiment rewrites software stored in a memory.

図1は、本実施の形態による溶接電源1の構成を示すブロック図である。本実施の形態による溶接電源1は、アーク溶接等の溶接を行うための電力を供給する装置であり、ソフトウェア書き換え装置2と、電源11と、実行部12とを備える。ソフトウェア書き換え装置2は、メモリ21と、受付部22と、記録部23と、判断部24とを備えている。   FIG. 1 is a block diagram showing a configuration of a welding power source 1 according to the present embodiment. A welding power source 1 according to the present embodiment is a device that supplies electric power for performing welding such as arc welding, and includes a software rewriting device 2, a power source 11, and an execution unit 12. The software rewriting device 2 includes a memory 21, a reception unit 22, a recording unit 23, and a determination unit 24.

メモリ21では、ソフトウェア(プログラム)が記憶される。そのソフトウェアは、溶接電源1の制御に関するソフトウェアである。そのソフトウェアに応じて溶接電源1が動作することによって、溶接の制御や処理が実行されることになる。メモリ21は、例えば、フラッシュROM(フラッシュメモリ)であってもよく、その他の不揮発性の半導体メモリであってもよく、または、その他の不揮発性の記録媒体であってもよい。本実施の形態では、メモリ21が、フラッシュROMである場合について主に説明する。   In the memory 21, software (program) is stored. The software is software related to the control of the welding power source 1. The welding power source 1 operates in accordance with the software, so that welding control and processing are executed. The memory 21 may be, for example, a flash ROM (flash memory), another non-volatile semiconductor memory, or another non-volatile recording medium. In the present embodiment, the case where the memory 21 is a flash ROM will be mainly described.

受付部22は、メモリ21への書き込み対象のソフトウェアを受け付ける。受付部22は、例えば、所定の記録媒体(例えば、光ディスクや磁気ディスク、USBメモリ等の半導体メモリなど)から読み出されたソフトウェアを受け付けてもよく、有線または無線の通信回線を介して送信されたソフトウェアを受信してもよい。なお、受付部22は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、または含まなくてもよい。また、受付部22は、ハードウェアによって実現されてもよく、または所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。   The accepting unit 22 accepts software to be written to the memory 21. The accepting unit 22 may accept, for example, software read from a predetermined recording medium (for example, an optical disk, a magnetic disk, a semiconductor memory such as a USB memory), and is transmitted via a wired or wireless communication line. Software may be received. The receiving unit 22 may or may not include a device for receiving (for example, a modem or a network card). The receiving unit 22 may be realized by hardware, or may be realized by software such as a driver that drives a predetermined device.

記録部23は、受付部22が受け付けたソフトウェアをメモリ21に書き込む。そのソフトウェアの書き込みにおいて、記録部23は、メモリ21における書き込み対象のソフトウェアの終端にあらかじめ決められた値が書き込まれ、そのあらかじめ決められた値のアドレスである終端アドレスがメモリ21の特定のアドレスに書き込まれるようにするものとする。例えば、図4Aのアドレスマップで示されるように、書き込み対象のソフトウェアは、先頭アドレス0x00000000から、終端アドレスの直前のアドレス0x000FFFFBまでのうち、特定のアドレス0x00000050以外の領域に書き込まれ、終端アドレス0x000FFFFCには、あらかじめ決められた値0x12345678が書き込まれ、特定のアドレス0x00000050には、その終端アドレス0x000FFFFCが書き込まれてもよい。なお、特定のアドレスは、通常、図4Aで示されるように、ソフトウェアが書き込まれるメモリ21の領域における先頭から終端までのいずれかのアドレスであるが、そうでなくてもよい。その特定のアドレスは、固定値であることが好適である。また、終端アドレスに書き込まれるあらかじめ決められた値は、例えば、0x12345678のように、固定値であってもよく、書き込み対象のソフトウェアのチェックサムであってもよく、または、その他の値であってもよい。したがって、「あらかじめ決められた」とは、装置等の設計時や組立時に決められたことであってもよく、または、ソフトウェアの書き込み時に決められたことであってもよい。また、特定のアドレスは、図示しない記録媒体において記憶されていてもよい。また、あらかじめ決められた値が固定値である場合にも、その値が図示しない記録媒体において記憶されていてもよい。また、あらかじめ決められた値がチェックサム等である場合には、その値を決めるルール等が図示しない記録媒体において記憶されていてもよい。そして、記録部23は、その記録媒体にアクセスすることによって、特定のアドレス等を取得してもよい。なお、記録部23は、ソフトウェア等を書き込む前に、メモリ21のデータを消去してもよい。その消去は、メモリ21の全体に対して行われてもよく、または、そうでなくてもよい。後者の場合には、例えば、記録部23は、特定のアドレスに格納されている終端アドレスを読み出し、先頭アドレスから、その終端アドレスまでのデータを消去してもよく、または、書き込み対象のソフトウェアに関する終端アドレスまでのデータを消去してもよい。前者の場合には、現在、記憶されているソフトウェアに関するデータが消去されることになり、後者の場合には、書き込み対象のソフトウェアが書き込まれる範囲のデータが消去されることになる。なお、そのデータの消去において、メモリ21が、ブロック単位でデータを消去する記録媒体である場合には、記録部23は、消去したいデータを含むすべてのブロックについて消去の処理を行うようにしてもよい。   The recording unit 23 writes the software received by the receiving unit 22 in the memory 21. In the writing of the software, the recording unit 23 writes a predetermined value at the end of the software to be written in the memory 21, and the end address that is the address of the predetermined value becomes a specific address in the memory 21. Shall be written. For example, as shown in the address map of FIG. 4A, the software to be written is written in the area other than the specific address 0x00000050 from the start address 0x00000000 to the address 0x000FFFFB immediately before the end address, and the end address 0x000FFFFC The predetermined value 0x12345678 may be written, and the end address 0x000FFFFC may be written to the specific address 0x00000050. The specific address is usually one of addresses from the beginning to the end in the area of the memory 21 where the software is written, as shown in FIG. 4A, but this need not be the case. The specific address is preferably a fixed value. The predetermined value written to the end address may be a fixed value such as 0x12345678, a checksum of the software to be written, or any other value. Also good. Therefore, “predetermined” may be determined at the time of designing or assembling the apparatus or the like, or may be determined at the time of writing the software. The specific address may be stored in a recording medium (not shown). Also, when the predetermined value is a fixed value, the value may be stored in a recording medium (not shown). If the predetermined value is a checksum or the like, a rule or the like for determining the value may be stored in a recording medium (not shown). Then, the recording unit 23 may acquire a specific address or the like by accessing the recording medium. The recording unit 23 may erase the data in the memory 21 before writing software or the like. The erasure may be performed on the entire memory 21 or not. In the latter case, for example, the recording unit 23 may read a terminal address stored at a specific address and erase data from the head address to the terminal address, or may be related to software to be written. Data up to the end address may be erased. In the former case, currently stored data relating to the software is erased, and in the latter case, data in a range where the software to be written is written is erased. When the memory 21 is a recording medium that erases data in units of blocks in erasing the data, the recording unit 23 may perform erasure processing on all blocks including the data to be erased. Good.

判断部24は、記録部23によるソフトウェアの書き込みが正常であるかどうか判断する。判断部24は、書き込み対象のソフトウェアが格納される領域における先頭のアドレスにデータが書き込まれており、かつ、特定のアドレスのデータがメモリ21の範囲内のアドレスであり、かつ、そのデータで示される終端アドレスのデータがあらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断する。したがって、判断部24は、例えば、書き込み対象のソフトウェアが格納される領域における先頭のアドレスにデータが書き込まれていない場合に、ソフトウェアの書き込みが正常でないと判断してもよい。また、判断部24は、例えば、特定のアドレスのデータがメモリ21の範囲内のアドレスでない場合に、ソフトウェアの書き込みが正常でないと判断してもよい。また、判断部24は、例えば、特定のアドレスのデータで示される終端アドレスのデータがあらかじめ決められた値でない場合に、ソフトウェアの書き込みが正常でないと判断してもよい。   The determination unit 24 determines whether the software writing by the recording unit 23 is normal. The determination unit 24 writes data at the head address in the area where the software to be written is stored, and the data at the specific address is an address within the range of the memory 21 and is indicated by the data. When the end address data to be read is a predetermined value, it is determined that the software writing is normal. Therefore, the determination unit 24 may determine that the software writing is not normal, for example, when data is not written at the head address in the area where the software to be written is stored. For example, the determination unit 24 may determine that the software writing is not normal when the data at a specific address is not an address within the range of the memory 21. For example, the determination unit 24 may determine that the software writing is not normal when the data at the end address indicated by the data at the specific address is not a predetermined value.

なお、その判断において、判断部24は、終端アドレスのデータがあらかじめ決められた値であるかどうかを判断する前に、特定のアドレスのデータがメモリ21の範囲内のアドレスであるかどうかを判断することが好適である。そして、特定のアドレスのデータがメモリ21の範囲内のアドレスでない場合には、判断部24は、その特定のアドレスのデータである終端アドレスのデータを読みにいかなくてもよい。そのようにすることで、例えば、ソフトウェアの書き込みが正常に終了しておらず、特定のアドレスのデータが、メモリ21のアドレス範囲外を示すものである場合に、誤ってその範囲外のデータを読みにいくことを回避でき、誤動作を防止することができる。   In the determination, the determination unit 24 determines whether the data at the specific address is an address within the range of the memory 21 before determining whether the data at the end address is a predetermined value. It is preferable to do. If the data at the specific address is not within the range of the memory 21, the determination unit 24 does not need to read the data at the end address that is the data at the specific address. By doing so, for example, when software writing is not normally completed and data at a specific address indicates outside the address range of the memory 21, data outside the range is mistakenly displayed. Reading can be avoided, and malfunction can be prevented.

また、書き込み対象のソフトウェアが格納される領域における先頭のアドレスは、メモリ21の先頭アドレスであってもよい。その場合には、書き込み対象のソフトウェアが格納される領域における先頭のアドレスにデータが書き込まれているかどうかの判断は、メモリ21の先頭アドレスにデータが書き込まれているかどうかの判断となる。本実施の形態では、書き込み対象のソフトウェアが格納される領域における先頭のアドレスは、メモリ21の先頭アドレスである場合について主に説明する。   Further, the head address in the area where the software to be written is stored may be the head address of the memory 21. In that case, whether or not data is written at the head address in the area where the software to be written is stored is determined whether or not data is written at the head address of the memory 21. In the present embodiment, the case where the head address in the area where the software to be written is stored is the head address of the memory 21 will be mainly described.

また、前述のように、フラッシュROM等のメモリ21にデータを書き込む際には、はじめにデータを消去してから書き込むことになる。したがって、判断部24は、書き込み対象のソフトウェアが格納される領域における先頭のアドレスのデータが、消去されたデータ(例えば、0xFFFFFFFF)でない場合に、そのアドレスにデータが書き込まれていると判断してもよい。また、書き込み対象のソフトウェアが格納される領域における先頭のアドレスに所定の値が書き込まれると決まっている場合には、判断部24は、書き込み対象のソフトウェアが格納される領域における先頭のアドレスにデータが書き込まれているかどうかの判断に代えて、そのアドレスに所定の値が書き込まれているかどうかを判断してもよい。   Further, as described above, when data is written to the memory 21 such as a flash ROM, the data is first erased before writing. Therefore, the determination unit 24 determines that data is written at the address when the data at the head address in the area where the software to be written is stored is not erased data (for example, 0xFFFFFFFF). Also good. In addition, when it is determined that a predetermined value is written at the head address in the area where the software to be written is stored, the determination unit 24 sets the data at the head address in the area where the software to be written is stored. Instead of determining whether or not is written, it may be determined whether or not a predetermined value is written to the address.

また、判断部24による判断のタイミングは問わないが、例えば、ソフトウェアの書き込み後に溶接電源1が起動されたタイミングで判断が行われてもよく、ソフトウェアの書き込み後に判断が行われてもよい。なお、溶接電源1の動作時に誤ってメモリ21のデータを書き換える可能性もあるため、判断部24は、溶接電源1の起動時(電源投入時)ごとに、その判断を行うようにしてもよい。本実施の形態では、その場合について主に説明する。   Further, the timing of determination by the determination unit 24 does not matter, but for example, the determination may be performed at the timing when the welding power source 1 is started after writing the software, or the determination may be performed after writing the software. Since there is a possibility that the data in the memory 21 is erroneously rewritten during the operation of the welding power source 1, the determination unit 24 may make the determination every time the welding power source 1 is activated (when the power is turned on). . In this embodiment, this case will be mainly described.

電源11は、溶接に必要な電力を供給するための電源である。その電源11は、通常、アーク溶接等のための高電圧、高電流を供給する。
実行部12は、判断部24による判断結果によって、ソフトウェアが正常に書き込まれたことが示される場合に、メモリ21に記憶されているソフトウェアを読み出して実行する。その実行部12は、例えば、CPUやMPUであってもよい。なお、そのソフトウェアは、溶接電源1の制御に関するソフトウェアであるため、そのソフトウェアが実行されることによって、電源11に関する制御が行われることになる。
The power source 11 is a power source for supplying electric power necessary for welding. The power supply 11 normally supplies a high voltage and a high current for arc welding or the like.
The execution unit 12 reads and executes the software stored in the memory 21 when the determination result by the determination unit 24 indicates that the software has been normally written. The execution unit 12 may be a CPU or an MPU, for example. Since the software is software related to the control of the welding power source 1, the software is executed so that the control related to the power source 11 is performed.

なお、判断部24は、例えば、ハードウェアによって実現されてもよく、または、ソフトウェアを実行することによって実現されてもよい。後者の場合に、そのソフトウェアを実行するCPU等は、実行部12を実現するCPU等と同じであってもよく、または、そうでなくてもよい。   Note that the determination unit 24 may be realized, for example, by hardware, or may be realized by executing software. In the latter case, the CPU or the like that executes the software may or may not be the same as the CPU or the like that implements the execution unit 12.

次に、溶接電源1の動作について図2のフローチャートを用いて説明する。図2のフローチャートは、溶接電源1の電源が投入されてから、電源が落とされるまでの処理を示すフローチャートである。
(ステップS101)判断部24は、電源が投入された後に、メモリ21で記憶されているソフトウェアが、正常に書き込まれたかどうか判断する。なお、この判断の処理の詳細については、図3のフローチャートを用いて後述する。
Next, operation | movement of the welding power supply 1 is demonstrated using the flowchart of FIG. The flowchart of FIG. 2 is a flowchart showing processing from when the power source of the welding power source 1 is turned on to when the power source is turned off.
(Step S101) The determination unit 24 determines whether the software stored in the memory 21 has been normally written after the power is turned on. Details of the determination process will be described later with reference to the flowchart of FIG.

(ステップS102)実行部12は、ステップS101の判断結果によって、ソフトウェアが正常に書き込まれたことが示されるかどうか判断する。そして、ソフトウェアが正常に書き込まれたことが判断結果によって示される場合には、ステップS103に進み、そうでない場合には、溶接電源1の起動を終了して電源を落とす。   (Step S102) The execution unit 12 determines whether or not the result of determination in step S101 indicates that the software has been written normally. If the determination result indicates that the software has been written normally, the process proceeds to step S103. If not, the activation of the welding power source 1 is terminated and the power is turned off.

(ステップS103)実行部12は、メモリ21で記憶されているソフトウェアを読み出して実行する。その結果、溶接電源1が、溶接のための電力を供給する装置として動作することになる。   (Step S103) The execution unit 12 reads and executes the software stored in the memory 21. As a result, the welding power source 1 operates as a device that supplies electric power for welding.

(ステップS104)実行部12は、溶接電源1が外部からの指示等の入力を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS105に進み、そうでない場合には、ステップS106に進む。その入力は、例えば、ユーザによって行われてもよく、または、溶接ロボットの制御装置等によって行われてもよい。   (Step S104) The execution unit 12 determines whether or not the welding power source 1 has received an input such as an instruction from the outside. If accepted, the process proceeds to step S105, and if not, the process proceeds to step S106. The input may be performed by a user, for example, or may be performed by a control device of a welding robot.

(ステップS105)実行部12は、受け付けられた入力に応じた処理を行う。そして、ステップS104に戻る。その処理は、例えば、入力された指示に応じた電圧、電流の出力を行うように電源11を制御することであってもよい。   (Step S105) The execution unit 12 performs processing according to the accepted input. Then, the process returns to step S104. The processing may be, for example, controlling the power supply 11 so as to output voltage and current in accordance with the input instruction.

(ステップS106)受付部22は、書き換え対象のソフトウェアを受け付けたかどうか判断する。そして、受け付けた場合には、ステップS107に進み、そうでない場合には、ステップS108に進む。   (Step S106) The accepting unit 22 determines whether software to be rewritten has been accepted. If accepted, the process proceeds to step S107, and if not, the process proceeds to step S108.

(ステップS107)記録部23は、図5で示されるように、受け付けられたソフトウェアに対して、そのソフトウェアの終端にあらかじめ決められた終端データを付加し、また、特定のアドレスに終端データのアドレスである終端アドレスを付加した記録対象のデータを構成し、その記録対象のデータをメモリ21に書き込む。なお、図5におけるソフトウェアデータ1、2は、受け付けられたソフトウェアデータが分割されたデータである。その書き込みが終了すると、実行部12は、溶接電源1を再起動する。そして、ステップS101に戻る。   (Step S107) As shown in FIG. 5, the recording unit 23 adds predetermined termination data to the end of the received software, and also adds an address of the termination data to a specific address. The data to be recorded to which the end address is added is configured, and the data to be recorded is written into the memory 21. Note that the software data 1 and 2 in FIG. 5 are data obtained by dividing the received software data. When the writing is completed, the execution unit 12 restarts the welding power source 1. Then, the process returns to step S101.

(ステップS108)実行部12は、溶接電源1の処理を終了するかどうか判断する。そして、処理を終了する場合には、溶接電源1の電源を落とす。一方、処理を終了しない場合には、ステップS104に戻る。なお、実行部12は、例えば、溶接電源1の電源を落とす旨の指示をユーザから受け付けた場合に、処理を終了すると判断してもよく、または、所定のエラー等が発生し、処理を継続できなくなった場合に、処理を終了すると判断してもよい。   (Step S108) The execution part 12 judges whether the process of the welding power supply 1 is complete | finished. And when a process is complete | finished, the power supply of the welding power supply 1 is turned off. On the other hand, if the process is not terminated, the process returns to step S104. Note that the execution unit 12 may determine that the process is to be ended when, for example, an instruction to turn off the welding power source 1 is received from the user, or a predetermined error or the like occurs and the process is continued. When it becomes impossible, it may be determined that the processing is to be ended.

図3は、図2のフローチャートにおける判断処理(ステップS101)の詳細を示すフローチャートである。
(ステップS201)判断部24は、メモリ21の先頭アドレスにデータが書き込まれているかどうか判断する。そして、書き込まれている場合には、ステップS202に進み、そうでない場合には、ステップS205に進む。
FIG. 3 is a flowchart showing details of the determination process (step S101) in the flowchart of FIG.
(Step S <b> 201) The determination unit 24 determines whether data is written at the top address of the memory 21. If it is written, the process proceeds to step S202. If not, the process proceeds to step S205.

(ステップS202)判断部24は、特定のアドレスに格納されているデータを読み出し、そのデータが、メモリ21のアドレス範囲内であるかどうか判断する。そして、そのデータがメモリ21のアドレス範囲内である場合には、ステップS203に進み、そうでない場合には、ステップS205に進む。   (Step S <b> 202) The determination unit 24 reads data stored at a specific address, and determines whether the data is within the address range of the memory 21. If the data is within the address range of the memory 21, the process proceeds to step S203, and if not, the process proceeds to step S205.

(ステップS203)判断部24は、特定のアドレスに格納されているデータで示される終端アドレスに格納されている終端データを読み出し、その終端データが、あらかじめ決められた値であるかどうか判断する。そして、終端データがあらかじめ決められた値である場合には、ステップS204に進み、そうでない場合には、ステップS205に進む。   (Step S203) The determination unit 24 reads the termination data stored at the termination address indicated by the data stored at the specific address, and determines whether the termination data is a predetermined value. If the end data is a predetermined value, the process proceeds to step S204. If not, the process proceeds to step S205.

(ステップS204)判断部24は、メモリ21へのソフトウェアの書き込みが正常であると判断する。そして、図2のフローチャートに戻る。   (Step S <b> 204) The determination unit 24 determines that software writing to the memory 21 is normal. And it returns to the flowchart of FIG.

(ステップS205)判断部24は、メモリ21へのソフトウェアの書き込みが正常でないと判断する。そして、図2のフローチャートに戻る。
なお、図2のフローチャートにおける処理の順序は一例であり、ステップS202の処理が、ステップS203の処理よりも以前に行われ、同様の結果を得ることができるのであれば、各ステップの順序を変更してもよい。
(Step S205) The determination unit 24 determines that the software writing to the memory 21 is not normal. And it returns to the flowchart of FIG.
Note that the order of processing in the flowchart of FIG. 2 is an example, and if the processing in step S202 is performed before the processing in step S203 and the same result can be obtained, the order of the steps is changed. May be.

次に、本実施の形態による溶接電源1の動作について、具体例を用いて説明する。この具体例では、特定のアドレスが0x00000050であり、あらかじめ決められた値(終端データ)が0x12345678であるとする。また、メモリ21のアドレス範囲は、0x00000000から0x00200000であるとする。   Next, operation | movement of the welding power supply 1 by this Embodiment is demonstrated using a specific example. In this specific example, it is assumed that the specific address is 0x00000050 and the predetermined value (termination data) is 0x12345678. The address range of the memory 21 is assumed to be 0x00000000 to 0x00200000.

溶接電源1が動作している状態において、ソフトウェアの書き換えを行う作業者が、新しいソフトウェアの記録されているUSBメモリを溶接電源1に装着したとする。すると、受付部22は、そのことを検知し、そのUSBメモリからソフトウェアを読み出して記録部23に渡す(ステップS106)。記録部23は、ソフトウェアを受け取ると、図5で示されるように、特定のアドレスの位置に所定の格納領域を確保した上で、ソフトウェアデータの終端に、終端データ0x12345678を付加する。そして、その終端データのアドレスである終端アドレスを、特定のアドレスの位置に付加した記録対象のデータを構成する。また、記録部23は、その記録対象のデータをメモリ21に書き込む前に、メモリ21の各アドレスに対応するデータをすべて消去する。具体的には、各データをすべて0xFFFFFFFFにする。その後、記録部23は、メモリ21の先頭アドレスから順番に、記録対象のデータを書き込んでいく。その結果、メモリ21に書き込まれたデータとアドレスとの関係は、図4Aで示されるようになったとする(ステップS107)。   Assume that an operator who rewrites software attaches a USB memory in which new software is recorded to the welding power source 1 while the welding power source 1 is operating. Then, the reception unit 22 detects this, reads the software from the USB memory, and passes it to the recording unit 23 (step S106). When the recording unit 23 receives the software, as shown in FIG. 5, the recording unit 23 secures a predetermined storage area at a specific address position, and adds the end data 0x12345678 to the end of the software data. Then, the data to be recorded is configured by adding the end address which is the address of the end data to the position of the specific address. The recording unit 23 erases all data corresponding to each address in the memory 21 before writing the data to be recorded in the memory 21. Specifically, all the data is set to 0xFFFFFFFF. Thereafter, the recording unit 23 writes data to be recorded in order from the top address of the memory 21. As a result, it is assumed that the relationship between the data written in the memory 21 and the address is as shown in FIG. 4A (step S107).

次に、実行部12は、溶接電源1を再起動する。その再起動時に、判断部24は、ソフトウェアが正常に書き込まれたかどうかの判断を行う(ステップS101)。具体的には、判断部24は、メモリ21の先頭アドレス0x00000000のデータが0xFFFFFFFFであるかどうか判断する(ステップS201)。この場合には、0x469500CDであり、0xFFFFFFFFではないため、先頭アドレスにデータが書き込まれていることになる。したがって、判断部24は、特定のアドレス0x00000050に格納されているデータ0x000FFFFCを読み出し、それがメモリ21のアドレス範囲内であるかどうか判断する(ステップS202)。この場合には、そのデータ0x000FFFFCが、アドレス範囲0x00000000〜0x00200000に含まれるため、特定のアドレスのデータが、メモリ21のアドレス範囲内であることになる。したがって、判断部24は、その終端アドレス0x000FFFFCのデータ0x12345678を読み出し、そのデータがあらかじめ決められた値0x12345678であるかどうか判断する(ステップS203)。この場合には、その読み出したデータはあらかじめ決められた値であるため、終端アドレスのデータがあらかじめ決められた値であることになる。したがって、判断部24は、ソフトウェアの書き込みが正常に行われたと判断し、その判断結果を実行部12に渡す(ステップS204)。すると、実行部12は、メモリ21に書き込まれたソフトウェアを実行し、その結果として、溶接電源1において、溶接のための電力を供給する処理が行われることになる(ステップS103〜S105)。   Next, the execution unit 12 restarts the welding power source 1. At the time of the restart, the determination unit 24 determines whether the software has been normally written (step S101). Specifically, the determination unit 24 determines whether the data of the start address 0x00000000 of the memory 21 is 0xFFFFFFFF (step S201). In this case, since it is 0x469500CD and not 0xFFFFFFFF, data is written at the head address. Therefore, the determination unit 24 reads the data 0x000FFFFC stored at the specific address 0x00000050, and determines whether it is within the address range of the memory 21 (step S202). In this case, since the data 0x000FFFFC is included in the address range 0x00000000 to 0x00200000, the data at a specific address is within the address range of the memory 21. Therefore, the determination unit 24 reads the data 0x12345678 of the end address 0x000FFFFC and determines whether the data is a predetermined value 0x12345678 (step S203). In this case, since the read data is a predetermined value, the end address data is a predetermined value. Therefore, the determination unit 24 determines that the software has been written normally, and passes the determination result to the execution unit 12 (step S204). Then, the execution unit 12 executes the software written in the memory 21, and as a result, processing for supplying power for welding is performed in the welding power source 1 (steps S103 to S105).

なお、例えば、先頭アドレス0x00000000のデータが0xFFFFFFFFである場合、特定のアドレスに格納されている終端アドレスがメモリ21のアドレス範囲外(0x00000000〜0x00200000の範囲外)である場合、または、終端データが0x12345678以外のデータ(例えば、0x23456789)である場合には、判断部24は、ソフトウェア書き換えが正常に行われなかったと判断する(ステップS205)。その場合には、例えば、ソフトウェアの書き換え途中に電源が落ちるなどの何らかの不具合の発生していることが考えられる。   For example, when the data of the start address 0x00000000 is 0xFFFFFFFF, the end address stored in the specific address is out of the address range of the memory 21 (out of the range of 0x00000000 to 0x00200000), or the end data is 0x12345678. If the data is other than (for example, 0x23456789), the determination unit 24 determines that the software rewriting has not been performed normally (step S205). In that case, for example, it is considered that some trouble such as a power failure occurs during rewriting of software.

以上のように、本実施の形態によるソフトウェア書き換え装置2によれば、ソフトウェアを書き換える際に、先頭アドレスから終端アドレスまでにデータを書き込めばよいため、終端アドレスが固定である場合と比較して、書き込み時間が短縮される。また、ソフトウェアの書き込みが正常に行われたと判断された場合にのみ、そのソフトウェアを実行することにより、正常に書き込まれたソフトウェアが実行されることになり、溶接電源1が適切に動作することになる。また、その判断において、特定のアドレスのデータである終端アドレスが、メモリ21の範囲内のアドレスであるかどうかを確認してから、その終端アドレスのデータを読み出すため、ソフトウェアが適切に書き込まれておらず、その終端アドレスがメモリ21の範囲外のアドレスである場合でも、誤動作が起こらないようにすることができる。また、その特定のアドレスに書き込まれた終端アドレスを用いて、ソフトウェアの終端にあらかじめ決められた値を格納する終端処理が適切に行われたかどうかを確認できるため、上述のように、終端アドレスが固定でなくてもよいことになる。また、上記特許文献1では、ファイルの終端を認識できるようにするため、各レコードに識別符号を付加しているが、本実施の形態によるソフトウェア書き換え装置2では、そのような識別符号を付加する必要がないため、より多くのデータをメモリ21に書き込むことができるようになる。   As described above, according to the software rewriting device 2 according to the present embodiment, when rewriting software, it is only necessary to write data from the start address to the end address. Therefore, compared to the case where the end address is fixed, Write time is shortened. Also, only when it is determined that the software has been written normally, by executing the software, the software that has been written normally is executed, and the welding power source 1 operates appropriately. Become. Further, in the determination, after confirming whether or not the end address which is the data of the specific address is an address within the range of the memory 21, the software is appropriately written in order to read the data of the end address. Even if the end address is an address outside the range of the memory 21, it is possible to prevent malfunction. In addition, since the end address written in the specific address can be used to check whether the end process for storing a predetermined value at the end of the software has been properly performed, as described above, the end address is It does not have to be fixed. In Patent Document 1, an identification code is added to each record so that the end of the file can be recognized. However, the software rewriting apparatus 2 according to the present embodiment adds such an identification code. Since there is no need, more data can be written into the memory 21.

なお、本実施の形態では、終端アドレスの格納される特定のアドレスが1個である場合について説明したが、そうでなくてもよい。記録部23は、メモリ21の複数の特定のアドレスに終端アドレスを書き込んでもよい。その特定のアドレスの個数は限定されないが、例えば、2個や3個などであってもよい。その場合には、例えば、図4Bで示されるように、第1の特定のアドレス0x00000050と、第2の特定のアドレス0x00000200とに終端アドレスが書き込まれてもよい。なお、そのように、複数の特定のアドレスに終端アドレスが書き込まれる場合には、判断部24は、例えば、その複数の特定のアドレスのデータ(終端アドレス)がすべて一致しており、かつ、書き込み対象のソフトウェアが格納される領域における先頭のアドレスにデータが書き込まれており、かつ、特定のアドレスのデータがメモリ21の範囲内のアドレスであり、かつ、そのデータで示される終端アドレスのデータがあらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断してもよい。すなわち、判断部24は、その複数の特定のアドレスのデータが一致しない場合に、ソフトウェアの書き込みが正常でないと判断してもよい。複数の特定のアドレスのデータが一致しない場合とは、複数の特定のアドレスのデータの少なくとも一部が一致しない場合であってもよい。具体的には、第1から第3の特定のアドレスにそれぞれ格納されている第1から第3のデータのうち、第1のデータと第2のデータとは一致するが、第1のデータと第3のデータとは一致しない場合には、判断部24によって、ソフトウェアの書き込みが正常でないと判断されてもよい。   In the present embodiment, the case where there is one specific address in which the termination address is stored has been described, but this need not be the case. The recording unit 23 may write the end address to a plurality of specific addresses in the memory 21. The number of the specific addresses is not limited, but may be two or three, for example. In this case, for example, as shown in FIG. 4B, end addresses may be written in the first specific address 0x00000050 and the second specific address 0x00000200. As described above, when the termination address is written to a plurality of specific addresses, for example, the determination unit 24, for example, has the data (terminal addresses) of the plurality of specific addresses all match and is written. Data is written at the head address in the area where the target software is stored, the data at the specific address is an address within the range of the memory 21, and the data at the end address indicated by the data is When the value is determined in advance, it may be determined that the software writing is normal. That is, the determination unit 24 may determine that the software writing is not normal when the data of the plurality of specific addresses do not match. The case where the data of a plurality of specific addresses do not match may be the case where at least some of the data of the plurality of specific addresses do not match. Specifically, among the first to third data stored in the first to third specific addresses, respectively, the first data and the second data match, but the first data and If the data does not match the third data, the determination unit 24 may determine that the software writing is not normal.

また、本実施の形態では、あらかじめ決められた値である終端データが、一のアドレスに対応する領域に格納される場合、すなわち、上記具体例では終端データが4バイトである場合について説明したが、そうでなくてもよい。その終端データは、メモリ21における書き込み対象のソフトウェア終端の連続した複数のアドレスに書き込まれてもよい。すなわち、その終端データは、4バイトを超えるデータ量であってもよい。その場合には、例えば、図4Cで示されるように、終端アドレス0x000FFFFCと、その次のアドレス0x000FFFFDとのデータ0x12345678,0x9ABCDEF0が、あらかじめ決められた値(終端データ)であってもよい。すなわち、終端データは、例えば8バイトのデータであってもよい。終端データのデータ量を大きくすることによって、ソフトウェアの書き込みが正常に行われていない場合に、終端アドレスに応じたデータが偶然、あらかじめ決められた値と一致する可能性を低減させることができる。このように、あらかじめ決められた値が、メモリ21における書き込み対象のソフトウェアの終端の連続している複数のアドレスに書き込まれるものである場合には、判断部24は、例えば、書き込み対象のソフトウェアが格納される領域における先頭のアドレスにデータが書き込まれており、かつ、特定のアドレスのデータがメモリ21の範囲内のアドレスであり、かつ、そのデータで示される終端アドレスを含む連続している複数のアドレスのデータが、あらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断してもよい。すなわち、判断部24は、特定のアドレスに格納されている終端アドレスを含む連続している複数のアドレスのデータが、あらかじめ決められた値でない場合に、ソフトウェアの書き込みが正常でないと判断してもよい。   Further, in the present embodiment, the case where the end data, which is a predetermined value, is stored in the area corresponding to one address, that is, the case where the end data is 4 bytes has been described in the above specific example. It does n’t have to be. The end data may be written to a plurality of consecutive addresses at the end of the software to be written in the memory 21. That is, the end data may have a data amount exceeding 4 bytes. In that case, for example, as shown in FIG. 4C, data 0x12345678 and 0x9ABCDEF0 of the end address 0x000FFFFC and the next address 0x000FFFFD may be predetermined values (end data). That is, the termination data may be 8-byte data, for example. By increasing the data amount of the end data, it is possible to reduce the possibility that the data corresponding to the end address coincides with a predetermined value accidentally when the software is not written normally. As described above, when the predetermined value is written to a plurality of continuous addresses at the end of the software to be written in the memory 21, the determination unit 24 determines whether the software to be written is, for example, Data is written at the head address in the area to be stored, the data at a specific address is an address within the range of the memory 21, and a plurality of continuous addresses including the end address indicated by the data If the data at the address is a predetermined value, it may be determined that the software writing is normal. In other words, the determination unit 24 determines that the software writing is not normal when the data of a plurality of consecutive addresses including the end address stored in the specific address is not a predetermined value. Good.

なお、図4Cでは、終端データのアドレスである連続した複数のアドレスの先頭アドレスが、特定のアドレスに格納される場合について示しているが、そうでなくてもよい。例えば、終端データのアドレスである連続した複数のアドレスの後端アドレスが、特定のアドレスに格納されていてもよく、終端データのアドレスである連続した複数のアドレスの先頭アドレスでもなく後端アドレスでもないアドレスが、特定のアドレスに格納されていてもよい。   Although FIG. 4C shows the case where the head addresses of a plurality of consecutive addresses, which are the addresses of the termination data, are stored at specific addresses, this need not be the case. For example, the rear end addresses of a plurality of consecutive addresses that are end data addresses may be stored in a specific address, and may be the start address or the rear end address of a plurality of consecutive addresses that are end data addresses. No address may be stored at a specific address.

また、本実施の形態では、判断部24が、書き込み対象のソフトウェアが格納される領域における先頭のアドレスにデータが書き込まれているかどうかを判断する場合について説明したが、そうでなくてもよい。判断部24は、その判断を行わなくてもよい。その場合には、判断部24は、例えば、特定のアドレスのデータがメモリ21の範囲内のアドレスであり、かつ、そのデータで示される終端アドレスのデータがあらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断してもよい。   Further, in the present embodiment, a case has been described in which the determination unit 24 determines whether or not data is written at the head address in the area in which the software to be written is stored. The determination unit 24 may not perform the determination. In this case, the determination unit 24, for example, when the data at a specific address is an address within the range of the memory 21 and the terminal address data indicated by the data is a predetermined value, It may be determined that the software writing is normal.

また、本実施の形態において、ソフトウェアの書き込み後に、正常に書き込まれたかどうか判断し、正常に書き込まれた場合には、その書き込み対象のソフトウェアそのものを、メモリ21の別の領域に格納するようにしてもよい。その別の領域に格納されるソフトウェアは、バックアップとして用いられる。したがって、例えば、その後にソフトウェアを書き換えた際に、正常に書き込むことができなかった場合には、そのバックアップ領域に格納されているソフトウェアを用いることができるようになり、少なくとも、溶接電源1がまったく動作しなくなる事態を回避することができる。なお、その後、ソフトウェアが正常に書き換えられた場合には、バックアップ領域のソフトウェアも、その書き換え後のソフトウェアと同じ内容となるように書き換えられることになる。例えば、図4Dで示されるように、アドレス0x00000000から0x000FFFFCまでに一連のソフトウェアが正常に書き込まれたと判断部24によって判断された場合に、記録部23は、そのソフトウェアを、メモリ21におけるソフトウェアのバックアップ領域にも書き込むものとする。なお、そのソフトウェアのバックアップ領域においても、特定のアドレスに、バックアップ領域における終端アドレスが書き込まれてもよく、または、そうでなくてもよい。後者の場合には、バックアップ領域の終端アドレスが、バックアップ領域と異なる領域において記憶されていてもよい。また、バックアップ領域を特定できるようにするため、バックアップ領域の先頭アドレスは固定であってもよく、または、その先頭アドレスがバックアップ領域以外の領域に記憶されていてもよい。また、正常に書き込まれたソフトウェアのバックアップは、メモリ21とは異なる記録媒体に書き込まれてもよい。   In the present embodiment, it is determined whether or not the software has been written normally after the software has been written. If the software has been written normally, the software to be written is stored in another area of the memory 21. May be. The software stored in the other area is used as a backup. Therefore, for example, when the software is subsequently rewritten, if the software cannot be written normally, the software stored in the backup area can be used. It is possible to avoid a situation where the operation stops. After that, when the software is normally rewritten, the software in the backup area is also rewritten so as to have the same contents as the software after the rewriting. For example, as shown in FIG. 4D, when the determination unit 24 determines that a series of software has been normally written from addresses 0x00000000 to 0x000FFFFC, the recording unit 23 stores the software in the memory 21 as a backup of the software. It shall also be written in the area. In the software backup area, the end address in the backup area may be written at a specific address or not. In the latter case, the end address of the backup area may be stored in an area different from the backup area. In order to be able to specify the backup area, the start address of the backup area may be fixed, or the start address may be stored in an area other than the backup area. Further, the backup of software written normally may be written on a recording medium different from the memory 21.

また、本実施の形態では、ソフトウェア書き換え装置2が、溶接電源1に含まれる場合について説明したが、そうでなくてもよい。溶接電源1以外の組み込み装置に、ソフトウェア書き換え装置2が含まれていてもよい。その場合であっても、そのソフトウェア書き換え装置2を含む装置は、判断部24によって、ソフトウェア書き換えが正常に行われたと判断された場合に、メモリ21に書き込まれたソフトウェアを実行することが好適である。そのソフトウェアの実行は、通常、ソフトウェア書き換え装置2を含む装置の制御や動作等のために行われることになる。   Moreover, although the case where the software rewriting apparatus 2 was included in the welding power supply 1 was demonstrated in this Embodiment, it may not be so. The software rewriting device 2 may be included in an embedded device other than the welding power source 1. Even in such a case, it is preferable that the device including the software rewriting device 2 executes the software written in the memory 21 when the determination unit 24 determines that the software rewriting has been normally performed. is there. The execution of the software is usually performed for the control and operation of the device including the software rewriting device 2.

また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。   In the above embodiment, each process or each function may be realized by centralized processing by a single device or a single system, or may be distributedly processed by a plurality of devices or a plurality of systems. It may be realized by doing.

また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。   In the above embodiment, the information exchange between the components is performed by one component when, for example, the two components that exchange the information are physically different from each other. It may be performed by outputting information and receiving information by the other component, or when two components that exchange information are physically the same, one component May be performed by moving from the phase of the process corresponding to to the phase of the process corresponding to the other component.

また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。   In the above embodiment, information related to processing executed by each component, for example, information received, acquired, selected, generated, transmitted, or received by each component In addition, information such as threshold values, mathematical formulas, addresses, and the like used by each constituent element in processing may be temporarily or for a long time held in a recording medium (not shown), even if not specified in the above description. Further, the storage of information on the recording medium (not shown) may be performed by each component or a storage unit (not shown). Further, reading of information from the recording medium (not shown) may be performed by each component or a reading unit (not shown).

また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。   In the above embodiment, when information used by each component, for example, information such as a threshold value, an address, and various setting values used by each component may be changed by the user, Even if it is not specified in the description, the user may be able to change the information as appropriate, or may not be so. If the information can be changed by the user, the change is realized by, for example, a not-shown receiving unit that receives a change instruction from the user and a changing unit (not shown) that changes the information in accordance with the change instruction. May be. The change instruction received by the receiving unit (not shown) may be received from an input device, information received via a communication line, or information read from a predetermined recording medium, for example. .

また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現されうる。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。   In the above-described embodiment, each component may be configured by dedicated hardware, or a component that can be realized by software may be realized by executing a program. For example, each component can be realized by a program execution unit such as a CPU reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory. At the time of execution, the program execution unit may execute the program while accessing the storage unit or the recording medium. The program may be executed by being downloaded from a server or the like, or may be executed by reading a program recorded on a predetermined recording medium (for example, an optical disk, a magnetic disk, a semiconductor memory, or the like). Good. Further, this program may be used as a program constituting a program product. Further, the computer that executes the program may be singular or plural. That is, centralized processing may be performed, or distributed processing may be performed.

また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。   Further, the present invention is not limited to the above-described embodiment, and various modifications are possible, and it goes without saying that these are also included in the scope of the present invention.

以上より、本発明によるソフトウェア書き換え装置によれば、メモリに格納されているソフトウェアの書き換えを高速化できるという効果が得られ、例えば、組み込みシステムで用いられるソフトウェアを書き換える装置等として有用である。   As described above, according to the software rewriting apparatus of the present invention, the effect of speeding up the rewriting of software stored in the memory can be obtained, which is useful as an apparatus for rewriting software used in an embedded system, for example.

1 溶接電源
2 ソフトウェア書き換え装置
11 電源
12 実行部
21 メモリ
22 受付部
23 記録部
24 判断部
DESCRIPTION OF SYMBOLS 1 Welding power supply 2 Software rewriting apparatus 11 Power supply 12 Execution part 21 Memory 22 Reception part 23 Recording part 24 Judgment part

Claims (3)

ソフトウェアが記憶されるメモリと、
前記メモリへの書き込み対象のソフトウェアを受け付ける受付部と、
前記受付部が受け付けたソフトウェアを前記メモリに書き込む記録部と、
前記記録部によるソフトウェアの書き込みが正常であるかどうか判断する判断部と、を備え、
前記記録部は、前記メモリにおける前記書き込み対象のソフトウェアの終端にあらかじめ決められた値を書き込み、前記あらかじめ決められた値のアドレスである終端アドレスを前記メモリの複数の特定のアドレスに書き込み、
前記判断部は、前記特定のアドレスのデータが前記メモリの範囲内のアドレスであり、当該データで示される終端アドレスのデータがあらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断し、前記複数の特定のアドレスのデータが一致しない場合に、ソフトウェアの書き込みが正常でないと判断する、ソフトウェア書き換え装置。
A memory for storing software;
A reception unit for receiving software to be written to the memory;
A recording unit for writing the software received by the receiving unit into the memory;
A determination unit that determines whether writing of software by the recording unit is normal,
The recording unit writes a predetermined value at the end of the software to be written in the memory, writes a terminal address that is an address of the predetermined value to a plurality of specific addresses in the memory,
The determination unit determines that the software writing is normal when the data at the specific address is an address within the range of the memory and the data at the end address indicated by the data is a predetermined value. A software rewriting device that determines and determines that software writing is not normal when the data at the plurality of specific addresses do not match .
前記判断部は、前記メモリの先頭アドレスにデータが書き込まれており、前記特定のアドレスのデータが前記メモリの範囲内のアドレスであり、当該データで示される終端アドレスのデータがあらかじめ決められた値である場合に、ソフトウェアの書き込みが正常であると判断する、請求項1記載のソフトウェア書き換え装置。 The determination unit has data written at the start address of the memory, the data at the specific address is an address within the range of the memory, and the end address data indicated by the data is a predetermined value. 2. The software rewriting apparatus according to claim 1, wherein the software rewriting apparatus determines that the software writing is normal. 前記ソフトウェアは、溶接電源の制御に関するソフトウェアである、請求項1または請求項記載のソフトウェア書き換え装置。 The software is a software related to the control of the welding power source, the software rewriting apparatus according to claim 1 or claim 2, wherein.
JP2015018066A 2015-02-02 2015-02-02 Software rewriting device Active JP6401070B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015018066A JP6401070B2 (en) 2015-02-02 2015-02-02 Software rewriting device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015018066A JP6401070B2 (en) 2015-02-02 2015-02-02 Software rewriting device

Publications (2)

Publication Number Publication Date
JP2016143208A JP2016143208A (en) 2016-08-08
JP6401070B2 true JP6401070B2 (en) 2018-10-03

Family

ID=56568807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015018066A Active JP6401070B2 (en) 2015-02-02 2015-02-02 Software rewriting device

Country Status (1)

Country Link
JP (1) JP6401070B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04167139A (en) * 1990-10-31 1992-06-15 Nec Corp Program down loading system
JP3937598B2 (en) * 1998-07-14 2007-06-27 株式会社デンソー Electronic control unit
JP3506935B2 (en) * 1998-12-21 2004-03-15 三菱電機株式会社 Data processing device
JP2005063120A (en) * 2003-08-11 2005-03-10 Ricoh Co Ltd Program rewriting device
JP4229896B2 (en) * 2004-10-14 2009-02-25 シャープ株式会社 Rewritable nonvolatile memory, electronic device, rewriteable nonvolatile memory rewrite method, and rewrite program
JP5435780B2 (en) * 2009-09-18 2014-03-05 株式会社ダイヘン Welding control program update setting device

Also Published As

Publication number Publication date
JP2016143208A (en) 2016-08-08

Similar Documents

Publication Publication Date Title
EP3200077B1 (en) Vehicle control device, reprogramming system
JP2008198310A (en) Method for repairing bit error and information processing system
US10475516B2 (en) Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method
JP6543122B2 (en) INFORMATION PROCESSING APPARATUS, METHOD OF INITIALIZING NONVOLATILE STORAGE DEVICE BY THE INFORMATION PROCESSING APPARATUS, AND PROGRAM
JPWO2004031966A1 (en) Method for controlling nonvolatile memory device
JP2010140266A (en) Electronic device system and electronic device
JPWO2009004674A1 (en) Storage device, disk device, write determination method, control device
JP4843222B2 (en) Semiconductor memory device control method, memory card, and host device
US8819332B2 (en) Nonvolatile storage device performing periodic error correction during successive page copy operations
US10509565B2 (en) Apparatuses, methods, and computer-readable non-transitory recording mediums for erasure in data processing
JP2010086009A (en) Storage device and memory control method
JP2010015316A (en) Numerical control apparatus
JP5884663B2 (en) Electronic control device and data rewriting system
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
JP6401070B2 (en) Software rewriting device
JP6301820B2 (en) Reprogramming system
JP2014089497A (en) Information processing device
JP2010113630A (en) Serial bus system
JP4452158B2 (en) Nonvolatile memory system
JP2013103411A (en) Image forming apparatus, image forming system, and image forming program
JP4239754B2 (en) Nonvolatile memory system
JP4602387B2 (en) MEMORY CARD, NONVOLATILE MEMORY, NONVOLATILE MEMORY DATA WRITE METHOD AND DATA WRITE DEVICE
CN109147847B (en) Semiconductor device and flash memory control method
JP2009276883A (en) Semiconductor auxiliary storage device
US20140281226A1 (en) Memory card and host device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180906

R150 Certificate of patent or registration of utility model

Ref document number: 6401070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250