JP2004295589A - 制御装置及びプログラムの更新方法 - Google Patents

制御装置及びプログラムの更新方法 Download PDF

Info

Publication number
JP2004295589A
JP2004295589A JP2003088200A JP2003088200A JP2004295589A JP 2004295589 A JP2004295589 A JP 2004295589A JP 2003088200 A JP2003088200 A JP 2003088200A JP 2003088200 A JP2003088200 A JP 2003088200A JP 2004295589 A JP2004295589 A JP 2004295589A
Authority
JP
Japan
Prior art keywords
control program
data
external device
program
rewrite
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
Application number
JP2003088200A
Other languages
English (en)
Inventor
Yuji Kaneko
子 裕 司 金
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.)
Shibaura Machine Co Ltd
Original Assignee
Toshiba Machine Co Ltd
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 Toshiba Machine Co Ltd filed Critical Toshiba Machine Co Ltd
Priority to JP2003088200A priority Critical patent/JP2004295589A/ja
Priority to US10/808,494 priority patent/US20040193295A1/en
Publication of JP2004295589A publication Critical patent/JP2004295589A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】工作機械等の産業機械を制御する制御装置におけるプログラムやデータの更新を容易に行う。
【解決手段】通常動作時においては、電気的に書き換え可能な不揮発性の第1のメモリに格納された外部機器制御プログラムを実行して外部機器を制御する制御装置において、プログラム書き換え動作時においては、前記制御装置は、前記外部機器制御プログラムを書き換える処理を実現する書き換え制御プログラムを実行することによって、前記外部機器制御プログラムを書き換える外部機器制御プログラム書き換え用データをストレージ装置から取得し、取得した前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換える。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、ダイカストマシンや射出形成機、工作機械等の産業機械の制御を行う制御装置、及び制御装置内のプログラムを更新するプログラム更新方法に関する。
【0002】
【従来の技術】
ダイカストマシンや射出形成機、工作機械等の産業機械の制御を行う制御装置は、通常、ベース基板に挿入された、メインモジュールとサブモジュールとを基本的な構成として備える。前者のメインモジュールは各サブモジュールを管理し、一方、後者のサブモジュールは、例えば、モータコントロールモジュール、カウンタモジュール、リレーコントロールモジュール等であり、各サブモジュールに接続された外部機器を制御する。より詳しくは、各サブモジュールは、外部機器を制御するプログラムを格納したEPROMを備え、このプログラムを用いて外部機器を制御する。
【0003】
各サブモジュール内のプログラムを更新するために、従来では、プログラムが書き込まれたEPROM自体を取り替える必要があった。つまり、特別な開発ツールで作成された新たなプログラムをROMライタによってEPROMへ書き込み、このEPROMを客先まで運んで、制御装置内におけるサブモジュール上のEPROMと交換していた。
【0004】
【特許文献1】
特開平10−198571号公報
【0005】
【発明が解決しようとする課題】
しかし、これらEPROMへのプログラムの書き込み及びEPROMの取り替え作業には経験を積んだ技術者が必要となる。またEPROMの製作、交換には手間がかかってしまう。特に、各サブモジュールの配置構成は、制御装置の機種によって異なるため、1台、1台の制御装置毎に、各サブモジュール内のプログラムを管理することは非常に困難となる。また、プログラムのバージョン変更がある場合などは、更に管理が困難となる。
【0006】
プログラムの更新にかかる時間と手間を短縮するために、ネットワークを介してソフトウェアを更新する方法も考案されている(例えば、特許文献1参照)。この方法は、ネットワークを介して、更新対象となる装置を遠隔操作することにより、装置内のソフトウェアの更新を可能とする方法である。
【0007】
しかし、上述したサブモジュール内のプログラムの更新にこの方法を用いるとすると、制御装置を配置した工場内に、ネットワーク設備を導入し、このネットワーク設備に制御装置を繋げることが必要となる。これは、コストアップになるとともに、ユーザにもネットワークの知識が要求されるようになる。
【0008】
本発明は、上記問題点に鑑みてなされたものであり、プログラムの更新を容易に行うことのできる制御装置及びプログラム更新方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明の制御装置は、前記外部機器を制御する外部機器制御プログラムを格納した、電気的に書き換え可能な不揮発性の第1のメモリを備えたサブモジュールと、前記外部機器制御プログラムを書き換えるための外部機器制御プログラム書き換え用データを格納したストレージ装置と、前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換える処理を実現する書き換え制御プログラムと、制御装置全体を制御する全体制御プログラムとを格納した第2のメモリを備え、通常動作時においては、前記全体制御プログラムを実行して前記サブモジュールに格納された前記外部機器制御プログラムを用いて前記サブモジュールに前記外部機器を制御させ、一方、プログラム書き換え動作時においては、前記書き換え制御プログラムを実行して、前記外部機器制御プログラムを書き換えるメインモジュールと、を備えることを特徴とする。
【0010】
また、本発明の別の制御装置は、外部機器を制御する外部機器制御プログラムを格納した、電気的に書き換え可能な不揮発性の第1のメモリと、 前記外部機器制御プログラムを書き換える外部機器制御プログラム書き換え用データを格納したストレージ装置と、前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換える処理を実現する書き換え制御プログラムを格納した第2のメモリと、通常動作時において、前記外部機器制御プログラムを実行して、前記外部機器を制御し、プログラム書き換え動作時において、前記書き換え制御プログラムを実行して、前記外部機器制御プログラムを書き換える制御部と、を備えることを特徴とする。
【0011】
本発明のプログラム更新方法は、通常動作時においては、電気的に書き換え可能な不揮発性の第1のメモリに格納された外部機器制御プログラムを実行して外部機器を制御する制御装置における前記外部機器制御プログラムを更新するプログラム更新方法であって、プログラム書き換え動作時において、前記制御装置は、前記外部機器制御プログラムを書き換える処理を実現する書き換え制御プログラムを実行することによって、前記外部機器制御プログラムを書き換える外部機器制御プログラム書き換え用データをストレージ装置から取得し、取得した前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換えることを特徴とする。
【0012】
【発明の実施の形態】
図1は、本実施の形態としての制御装置の構成を示すブロック図である。
【0013】
図1に示すように、1つのメインモジュール1と、複数のサブモジュール2(1)〜2(n)と、データストレージ装置としてのメモリカードモジュール3とが、それぞれデータ通信用のデータバス5に接続されている。具体的には、これらメインモジュール1、サブモジュール2(1)〜2(n)及びメモリカードモジュール3は図示しないコネクタを備え、これらのコネクタが、データバス5におけるコネクタ(図示せず)に差し込まれている。これにより、メインモジュール1、サブモジュール2(1)〜2(n)及びメモリカードモジュール3と、データバス5とが電気的に接続される。
【0014】
メインモジュール1は、各種の演算処理を行うCPU10を備えている。また、メインモジュール1は、3種類のメモリ、つまり、EPROM(Erasable Programmable Read Only Memory)11、RAM(Random Access Memory)12、電気的にデータの書き換え(消去及び追加)が可能な、不揮発性メモリとしてフラッシュメモリ13を備えている。EPROM11には、後述するプログラム書き込み処理を実現するプログラム(書き込み制御プログラム)が書き込まれている。一方、フラッシュメモリ13には、制御装置全体を適正に制御するプログラム(全体制御プログラム)が格納されている。この全体制御プログラムは、各種命令と、各種データとからなり、プログラムのバージョン番号等の属性データも含む。この全体制御プログラムは、上述のプログラム書き込み処理において書き換えの対象となる。RAM12は、CPU10が各種演算処理を行うときの作業領域として用いられる。このCPU10には、入出力ドライバ14が接続されており、この入出力ドライバ14には、キーボードやディスプレイ装置等の入出力端末機器15が繋がっている。入出力ドライバ14は、例えば、CPU10と入出力端末機器15の間における動作速度を調整したり、電気的特性の違いを吸収したりする。CPU10は、入出力ドライバ14及び入出力端末機器15を介して、作業者と情報のやり取りを行う。入出力端末機器15としては、例えば、タッチパネル付きのディスプレイ装置を用いてもよい。一方、CPU10には、通信入出力ドライバ6が接続されており、この通信入出力ドライバ6は、データバス5と接続されている。通信入出力ドライバ6は、CPU10による出力信号をデータバスに適した信号に変換してデータバス5上に送出するとともに、データバス5上を流れるデータを監視し、メインモジュール1宛のデータをデータバス5から取得して、CPU10に渡す。
【0015】
サブモジュール2(1)〜2(n)も、上述のメインモジュール1と同様に、CPU16(1)〜16(n)、RAM18(1)〜18(n)、フラッシュメモリ19(1)〜19(n)、入出力ドライバ20(1)〜20(n)、通信入出力ドライバ8(1)〜8(n)を備えている。入出力ドライバ20(1)〜20(n)には、モータ、カウンタ、リレー等の外部機器21(1)〜21(n)が接続されている。フラッシュメモリ19(1)〜19(n)には、これら外部機器をコントロールするプログラム(外部機器制御プログラム)が格納されている。上述の全体制御プログラムと同様に、この外部機器制御プログラムも、各種命令と、各種データとからなり、プログラムのバージョン番号等の属性データも含む。CPU16(1)〜16(n)は、この外部機器制御プログラムを実行することによって、外部機器21(1)〜21(n)を制御する。また、このフラッシュメモリ19(1)〜19(n)には、この外部機器制御プログラムに加えて、前述のプログラム書き込み処理時において、新たな外部機器制御プログラムをこのフラッシュメモリ19(1)〜19(n)に書き込むプログラム(個別書き込みプログラム)が格納されている。また、各サブモジュール2(1)〜2(n)は、各サブモジュール2(1)〜2(n)に固有のID番号を保有したモジュール識別機構22(1)〜22(n)を備え、このID番号は、各CPU16(1)〜16(n)により読み取り可能に構成されている。具体的には、各モジュール識別機構22(1)〜22(n)にはI/Oポート(図示せず)において複数の信号線が設けられ、複数の信号線はそれぞれ電源の出力電位にプルアップ、または接地される。従って、例えば、信号線が8本存在する場合は、各モジュール識別機構22(1)〜22(n)に対して2(=256)種類のID番号を設定することができる。各CPU16(1)〜16(n)は、このI/Oポートにおける複数の信号線の各信号線の電位を読むことにより、そのサブモジュールのID番号、つまり、そのサブモジュールの種類を認識する。なお、上述から分かるように、各サブモジュール2(1)〜2(n)におけるメモリは、主として2種類のメモリ、つまり、RAM18(1)〜18(n)とフラッシュメモリ19(1)〜19(n)とから構成され、メインモジュール1のようなEPROMは例えばコストダウンの観点から設けていない。
【0016】
メモリカードモジュール3は、上述したメインモジュール1と同様に、通信入出力ドライバ9を備える。また、メモリカードモジュール3は、メモリカードコネクタ25を備え、このメモリカードコネクタ25において、メモリカード24が挿入されている。このメモリカード24は、コンパクトフラッシュ(登録商標)やスマートメディア等のフラッシュメモリであり、汎用的にパーソナルコンピュータ、特にノート型コンピュータで用いられているものと同じものである。このメモリカード24内には、前述したプログラム書き込み処理時において、新たにインストールするプログラムデータ(全体制御プログラム及び外部機器制御プログラム)が格納されている。新たなプログラムの作成は汎用のパーソナルコンピュータで行う。作成された新たなプログラムは、この汎用のパーソナルコンピュータから、このパーソナルコンピュータのスロットに差し込まれたメモリカードに転送される。このメモリカードを、上述のメモリカードコネクタ25に差し込んで、このメモリカード内のプログラムデータを制御装置に転送する。このようにプログラムの書き換えに当たっては汎用的なメモリカードを用いるため、特別な開発ツールや媒体は必要ない。
【0017】
図2は、メモリカード24に格納されたデータ構造(ファイル)を示す図である。
【0018】
このデータ構造は、メインモジュール1に全体制御プログラムを書き込むためのメインモジュール1データと、各サブモジュール2(1)〜2(n)に外部機器制御プログラムを書き込むためのサブモジュール2(1)〜2(n)データとを有する。このデータ構造は、所定の基準となるアドレスから、例えば8ビット単位のブロックが、順次で並んでなるものである。以下、メインモジュール1データ及び各サブモジュール2(1)〜2(n)データについてより詳細に説明する。
【0019】
メインモジュール1データ及び各サブモジュール2(1)〜2(n)データの先頭ブロック(第1のブロック)には、モジュールの種類を表すID番号が格納される。メインモジュールの場合は、ID番号は“0”であり、サブモジュールの場合は、上述したモジュール識別機構22(1)〜22(n)に設定されたID番号である。
【0020】
この第1のブロックに続くブロック(第2のブロック)には、後述する本体データ(新たなプログラム)が格納されたブロック数を示す数値が格納される。例えば、サブモジュール2(1)データの場合、本体データが格納されたブロックの数は、図2に示すように、“m1−4+1”個であるので、この第2のブロックには“m1−4+1”が格納される。
【0021】
この第2のブロックに続くブロック(第3のブロック)には、本体データ(新たなプログラム)のバージョン番号が格納される。バージョン番号は、例えば、最初に作成したプログラムを“0”とし、更新する毎に数が増えていく。
【0022】
以上に説明した1〜3番目までのブロックのデータを、図2に示すように、インデックスデータと称する。
【0023】
この第3のブロックに続くブロック(第4のブロック)からmx(x=1,2,・・・n)番目のブロックまでは、新たに格納するプログラム(全体制御プログラムあるいは外部機器制御プログラム)が複数のブロックに分割されて格納されている。これらのブロックに格納されたプログラムは、図2に示すように、本体データと称される。
【0024】
以上のような構成を有するメインモジュール1データ及びサブモジュール2(1)〜2(n)データの内、最下位のサブモジュール2(n)データの後には、データ構造(ファイル)の終わりを示す記号「FEND」が格納される。
【0025】
当然ながら、プログラムの書き込み対象となるモジュール(メインモジュール1及びサブモジュール2(1)〜2(n))については任意に選択することができる。この場合、書き込み対象となるモジュールについてのみ、インデックスデータ及び本体データを作成すればよい。
【0026】
また、上述のように、メインモジュール1も、プログラムの書き換え対象となるモジュールの1つであるので、メインモジュール用のインデックスデータ及び本体データのみを含め、サブモジュール用のものを含めないことも可能である。
【0027】
また、各モジュールの最終データに、図2に示すように、チェックサムを格納する場合もある。チェックサムとは、データ内容を足し算した結果を下の桁からいくつか表示した数値である。チェックサムを格納することで、例えば、メモリカード24上のチェックサムの値と、フラッシュメモリに書き込んだ値のチェックサムの値とが異なっている場合は「書き込みエラー」を表示したり、またはエラーとなったモジュールデータの書き込み処理を再び行ったりすることができる。
【0028】
図3は、書き込み制御プログラムの動作アルゴリズムを示すフローチャートである。この書き込み制御プログラムは、上述したように、メインモジュール1におけるEPROM11内に格納されており、メインモジュール1のCPU10によって解釈及び実行される。以下、このアルゴリズムに従った、プログラム書き込み処理について説明する。書き込むプログラムは、全体制御プログラム及び外部機器制御プログラムである。より詳しくは以下の通りである。
【0029】
まず、図3のステップ10に示すように、メインモジュール1におけるEPROM11に格納された書き込み制御プログラムを起動する(ステップS10)。より詳しくは、まず、メモリカードモジュール3におけるコネクタ25に、インデックスデータ及び本体データの入ったメモリカード24を差し込む。この状態において、例えば、制御装置に設けられた特定のキー(図示せず)を押しながら、制御装置の電源を立ち上げる。このとき、メインモジュール1のEPROM11内格納プログラム(図示せず)が起動し、このプログラムの指示に従って、書き込み制御プログラムがCPU10に読み込まれ及び解釈される。これにより、本書き込み制御プログラムに従った処理が開始される。
【0030】
このとき、各サブモジュール2(1)〜2(n)は、書き込み処理のための準備を開始する(ステップS11)。より詳しくは、各サブモジュール2(1)〜2(n)におけるCPU16(1)〜16(n)は、フラッシュメモリ19(1)〜19(n)内に格納された個別書き込みプログラムをRAM18(1)〜18(n)上にロードする。各サブモジュール2(1)〜2(n)は、個別書き込みプログラムをRAM18(1)〜18(n)上にロードしたら、準備の完了を示す準備完了フラグをデータバス5上に送出する。CPU10は、データバス5上に送出された準備完了フラグを受信するまで待機する(ステップS11のNo)。
【0031】
CPU10は、全てのサブモジュール2(1)〜2(n)から準備完了フラグを受信したら(ステップS11のYes)、各サブモジュール2(1)〜2(n)から順次、ID番号を読み出して、制御装置におけるサブモジュールの配置構成を把握する(ステップS12)。より詳しくは、各サブモジュール2(1)〜2(n)におけるCPU16(1)〜16(n)が、CPU10からID番号取得指令を受けて、ID番号設定部22(1)〜22(n)に保有されたID番号を取得し、取得したID番号をCPU10に送出する。ID番号を取得したCPU10は、取得したID番号に基づき、サブモジュールの配置構成を把握する。
【0032】
CPU10は、サブモジュールの構成を把握したら、次に、メモリカード24内の先頭ブロック(第1のブロック)(図2参照)内のデータを読み込む(ステップS13)。
【0033】
CPU10は、読み込んだ先頭ブロック内のデータがデータ終了記号“FEND”(図2参照)であるかどうかを判断する(ステップS14)。
【0034】
CPU10は、読み込んだ先頭ブロック内のデータがデータ終了記号“FEND”であると判断した場合は(ステップS14のYes)、プログラム書き込み処理を終了する。
【0035】
一方、CPU10は、読み込んだ先頭のブロック内のデータがデータ終了記号“FEND”(図2参照)でないと判断した場合は(ステップS14のNo)、つまり、その先頭ブロック内のデータはID番号であると判断した場合は(図2参照)、そのID番号を有するモジュール(メインモジュール1あるいはサブモジュール2(1)〜2(n))が制御装置内に存在するかどうかを判断する(ステップS15)。具体的には、CPU10は、上のステップS12で取得したID番号の中に、この先頭ブロック内のID番号と同じものが存在するかどうかを判断する(ステップS15)。
【0036】
CPU10は、ステップS12で取得したID番号の中に、先頭ブロック内のID番号と同じものが存在しないと判断した場合は(ステップS15のNo)、以下のステップS16、S17を飛ばして、続くステップS18に進む。
【0037】
一方、CPU10は、ステップS12で取得したID番号の中に、先頭ブロック内のID番号と同じものが存在すると判断した場合は(ステップS15のYes)、この先頭ブロックに続くブロック(第2のブロック)内のデータ、つまり、データ数(ブロック数)(図2参照)を取得し、RAM12に格納する。さらに、CPU10は、この第2のブロックに続くブロック(第3のブロック)内のデータ、つまり、バージョン番号(図2参照)を取得し、書き換え対象となるプログラムのバージョン番号と比較する(ステップS16)。より詳しくは、書き換え対象がメインモジュール1である場合は、CPU10は、第3のブロック内のバージョン番号を、フラッシュメモリ13内の全体制御プログラムのバージョン番号(前述したように全体制御プログラム中に含まれる)と比較する。一方、書き換え対象が各サブモジュール2(1)〜2(n)である場合は、CPU10は、第3のブロック内のバージョン番号を、書き込み対象となるサブモジュール2に設けられたフラッシュメモリ19内の外部機器制御プログラムのバージョン番号(前述したように外部機器制御プログラム中に含まれる)と比較する。より詳しくは、CPU10は、書き込み対象となるサブモジュール2における各CPU16にバージョン番号取得指令を出し、このバージョン番号取得指令を受けたCPU16が、フラッシュメモリ19内の外部機器制御プログラムからバージョン番号を取得して、CPU10に送出する。CPU10は、第3のブロック内のバージョン番号と、受信したバージョン番号とを比較する。
【0038】
比較の結果、CPU10が、第3のブロック内のバージョン番号が、書き換え対象となるプログラムのバージョン番号以下であると判断した場合は(ステップS16のNo)、以下のステップS17を飛ばして、続くステップS18に進む。
【0039】
一方、比較の結果、CPU10が、第3のブロック内のバージョン番号が、書き換え対象となるプログラムのバージョン番号よりも大きいと判断した場合(つまり新たに格納するプログラムが最新のものである場合)は(ステップS16のYes)以下の処理を行う。まず、書き換え対象がメインモジュール1である場合は、CPU10は、フラッシュメモリ13内のデータを全て消去し、1ユニット(1モジュール)分の本体データ(図2参照)をメモリカード24から読み込み、読み込んだ本体データをフラッシュメモリ13内に書き込む(ステップS17)。1ユニット分の本体データの読み込みは、上のステップS16において取得したブロック数分のデータを、上述のバージョン番号が格納された第3のブロックの次のブロック(第4のブロック)から読み込むことで行う(図2参照)。一方、書き換え対象が各サブモジュール2(1)〜2(n)である場合は、CPU10は、該当するサブモジュール2のCPU16に対してプログラム書き換えの指示を出す(ステップS17)。この指示を受信したCPU16は、RAM18上にロードされた個別書き込みプログラムを実行して以下の処理を行う(ステップS17)。即ち、まず、CPU16は、フラッシュメモリ19内のデータ(外部機器制御プログラム及び個別書き込みプログラム)を全て消去する(ステップS17)。次いで、CPU10が、メモリカード24内の本体データ(図2参照)をメモリカード24から読み込み、読み込んだ本体データ(新たな外部機器制御プログラム)を通信入出力ドライバ8を介してCPU16へ渡す。CPU16は、受け取った本体データをフラッシュメモリ19に書き込む(ステップS17)。この後、CPU16は、RAM18上にロードした個別書き込みプログラムをフラッシュメモリ19内に書き込む(ステップS17)。なお、個別書き込みプログラムによる書き込みは、予めこの個別書き込みプログラムを上述の本体データとしてメモリカード24内に格納しておき、上述の新たな外部機器制御プログラムと共にフラッシュメモリ19に書き込むようにしてよい。
【0040】
CPU10は、フラッシュメモリ内へのプログラムの書き込みが終わったら、メモリカード24のアクセスポインタを次のモジュールデータ(メインモジュールデータあるいはサブモジュールデータ)(図2参照)の先頭にセットし(ステップ18)、上述のステップ13〜S17を、データ終了記号“FEND”を読み込むまで(ステップS14のYes)、繰り返す。
【0041】
CPU10は、データ終了記号“FEND”を読み込んだら(ステップS14のYes)、書き込み制御プログラムを終了する。この後、制御装置を再起動させると、通常の動作モードとなり、新たにフラッシュメモリ13に書き込まれた全体制御プログラム、及び新たに各フラッシュメモリ19(1)〜19(n)に書き込まれた外部機器制御プログラムが実行される。
【0042】
上述したプログラムの書き込み処理において新たな外部機器制御プログラムを書き込む際には、フラッシュメモリ19内のデータを全消去するため、個別書き込みプログラムを一旦フラッシュメモリ19からRAM18上にロードして実行した。しかし、この個別書き込みプログラムを別のメモリ、例えばEPROMに格納し、このEPROMを各サブモジュール2(1)〜2(n)に設けることで、このEPROM内の個別書き込みプログラムをRAM18上にロードすることなく、EPROM上で直接、実行してもよい。これによれば、RAM18上に個別書き込みプログラムをロードしたり、フラッシュメモリ19に個別書き込みプログラムを書き込んだりする必要はないので、プログラムの書き込み処理を効率化できる。
【0043】
また、上述のように、プログラムの書き込み処理においては、フラッシュメモリ内のデータを一旦全部消去して、新たにプログラムをフラッシュメモリに書き込むこととした。しかし、フラッシュメモリ内のプログラムの一部を書き換えたり、新たに差分プログラムを追加したりすることにより、プログラムを更新するようにしてもよい。この場合は、メモリカード24内には、一部書き換え用のデータや追加分の差分データを用意すればよい。
【0044】
また、当然ながら、1つの制御装置内に同じ種類のサブモジュールが複数装備されている場合もあり、そのような場合にも、すべてのサブモジュールについて、上述のプログラム書き込み処理を行うことができる。
【0045】
ところで、制御装置は、例えば各サブモジュール2に接続された外部機器の表示部に、外部機器の操作の仕方を示すヘルプ画面としての操作画面データを表示して、作業者に対し操作のガイドする場合がある。この場合、例えば、この操作画面データは、上述したフラッシュメモリ19内に格納される。このフラッシュメモリ19内には、前述したように、個別書き込みプログラムも格納されている。このような状態において、フラッシュメモリ19内に格納された個別書き込みプログラム及び操作画面データのうち、いずれか一方のみを更新したい場合もある。つまり、個別書き込みプログラム及び操作画面データをそれぞれ独立して更新したい場合がある。このためには、上述のサブモジュール2(1)〜2(n)のうちの任意のサブモジュール2(m)(m=1、2、3・・・n)を示す図4から分かるように、例えば、フラッシュメモリ19(m)の領域を、個別書き込みプログラム及び外部機器制御プログラムを格納するプログラム領域19aと、画像データを格納するデータ領域19bとに分割する。そして、上述のプログラム書き込み処理時において、プログラム領域19a内のプログラムとデータ領域19b内の画像データのいずれか一方あるいは両方を書き換えるようにすればよい。これを実現するためのデータ構造を図5に示す。
【0046】
図5に示すように、このデータ構造においては、ID番号の格納されたブロックの次のブロックに、書き換え対象がプログラムあるいは画像データであることを示す記号(データ種類)が格納される。この例では、プログラムの場合は“p”、画像データの場合は“d”が格納されている。上述した書き替え制御プログラムを実行するCPU10は、このデータ種類“p”あるいは“d”が格納されたブロックを読み込み、このブロック内のデータが“p”(プログラム)であると判断した場合は、本体データ(図5参照)をフラッシュメモリ2(m)のプログラム領域19aに書き込む。一方、CPU10は、ブロック内のデータが、“d”(画像データ)であると判断した場合は、本体データ(画像データ)をデータ領域19bに書き込む。これにより、プログラムと画像データをそれぞれ独立して自動的に書き換えることができる。
【0047】
図4及び図5に示す書き換え例では、サブモジュールを対象としたが、メインモジュールにおいても、同様に、プログラムと画像データとをそれぞれ独立に更新することができる。また、データ領域19bには画像データを格納することとしたが、その他のデータ、例えば、プログラムのバージョン番号なども、プログラム領域19aでなく、このデータ領域19bに格納してもよい。
【0048】
以上のように本実施の形態によれば、容易にプログラムや画像データ等のデータを更新することができる。
【0049】
即ち、サブモジュールの配置構成の違いにより多種の制御装置があるが、各制御装置のプログラム及びデータを更新する場合でも、各制御装置分の更新用のデータを1つにまとめ、1つにまとめられた更新用のデータを各制御装置に用いることができる。これは、1つにまとめられたデータのうち、ある制御装置にとって必要な更新用データのみが、前述したID番号に基づき抽出され、その制御装置に書き込まれるからである。
【0050】
また、プログラムの書き込み処理時において、プログラムのバージョン番号も自動的にチェックし、最新のバージョン番号の方を優先するようにしたので、プログラムのバージョン管理も簡単になる。
【0051】
また、更新用のデータを格納する媒体として汎用的なメモリカードを用いるようにしたので、特別な装置の開発は必要ない。これにより、例えば、制御装置の配置された現場と、プログラム等を開発する部署が離れていても、迅速に制御装置内のプログラム及びデータを更新することができる。つまり、書き込み用のデータを、制御装置の近くにあるパーソナルコンピュータに開発部署からネットワークを介して送出し、この書き込み用のデータをこのパーソナルコンピュータで受信する。次いで、この書き込み用のデータをこのパーソナルコンピュータから、このパーソナルコンピュータに差し込まれたメモリカードに転送し、書き込み用のデータが格納されたメモリカードをパーソナルコンピュータから抜いて、制御装置のコネクタに差し込む。この後、上述した本実施の形態を用いて、制御装置内に格納された各種のプログラム及びデータを更新する。これによれば、従来のように、新たなプログラムを格納したEPROMを現場に運んで交換するという作業は必要ないので、素早くプログラム及びデータの更新をすることができる。
【0052】
以上に述べた本実施の形態では、ストレージ装置としてメモリカードを用いたが、その他、例えば、ハードディスクや、磁気ディスク、光ディスクを用いることもできる。
【0053】
また、本実施の形態では、メモリカードを制御装置本体に直接差し込むことによりメモリカード内のデータを読み出したが、このメモリカード内のデータをインターネット等のネットワーク越しに読み出すようにしてもよい。
【0054】
また、本実施の形態では、プログラムの更新対象として、全体制御プログラムと外部機器制御プログラムを選択したが、この他に、例えば、書き込み制御プログラムや、個別書き込みプログラム自体も更新の対象とすることができる。書き込み制御プログラムの更新では、例えば、書き換え対象となるプログラムを上述のEPROMではなく、EEPROM(Electrically Erasable Programmable Read−Only Memory)やフラッシュメモリに格納し、書き込み制御プログラムの実行時において、この書き込み制御プログラムをRAM上にロードして実行する。そして、新たな書き込み制御プログラムをストレージ装置から読み出し、上述のEEPROMやフラッシュメモリに書き込む。一方、個別書き込みプログラムの更新の場合も、同様に、更新時において、個別書き込みプログラムをRAM上にロードして実行し、ストレージ装置から読み出した新たな個別書き込みプログラムをフラッシュメモリに書き込む。
【0055】
また、本実施の形態では、各モジュールに対する書き込み用のプログラムを1つのファイルにまとめ、この1つのファイルを用いて、各モジュールに対し一括してプログラムを書き込むようにした。しかし、書き込み用のプログラムを格納したファイルをモジュールごとに作成し、マニュアルモードなどにより、書き換えるモジュールとそれに対応したファイルを選択するようにすることで、各モジュールに対してそれぞれ個別のファイルを用いてプログラムを書き込むようにしてもよい。
【0056】
また、本実施の形態では、書き込むプログラムのバージョンが、書き換え対象となるプログラムのバージョンよりも古いときは、プログラムの書き換えを行わないようにしたが、書き換え制御プログラムのオプションとして、プログラムのバージョンにかかわらず(例えば古いバージョンのものであっても)書き込み可能とするモードを設けてもよい。これは、バージョンアップされたプログラムにおいて後から不具合な点などが発見された場合に、前のバージョンのプログラムに戻す処理を可能とするためである。
【0057】
【発明の効果】
本発明によれば、ストレージ装置から読み出した更新用のプログラムを用いて、電気的に書き換え可能な不揮発性のメモリ内に格納された外部機器制御プログラムを書き換えるようにしたので、外部機器制御プログラムを容易に更新することができる。
【図面の簡単な説明】
【図1】本実施の形態としての制御装置の構成を示すブロック図である。
【図2】フラッシュメモリ内のプログラムを更新するためのデータ構造を示す図である。
【図3】書き込み制御プログラムの動作アルゴリズムを示すフローチャートである。
【図4】サブモジュールにおけるフラッシュメモリの領域をプログラム領域とデータ領域とに分けた状態を示す図である。
【図5】プログラムと画像データとをそれぞれ独立にデータ更新するためのデータ構造を示す図である。
【符号の説明】
1 メインモジュール
2 サブモジュール
3 メモリカードモジュール
5 データバス
6、8、9 通信入出力ドライバ
10、16 CPU
11 EPROM
12、18 RAM
13、19 フラッシュメモリ
14、20 入出力ドライバ
15 入出力端末機器
19a プログラム領域
19b データ領域
21 外部機器
22 モジュール識別機構(ID番号)
24 メモリカード
25 コネクタ

Claims (8)

  1. 外部機器を制御する外部機器制御プログラムを格納した、電気的に書き換え可能な不揮発性の第1のメモリを備えたサブモジュールと、
    前記外部機器制御プログラムを書き換えるための外部機器制御プログラム書き換え用データを格納したストレージ装置と、
    前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換える処理を実現する書き換え制御プログラムと、制御装置全体を制御する全体制御プログラムとを格納した第2のメモリを備え、通常動作時においては、前記全体制御プログラムを実行して前記サブモジュールに格納された前記外部機器制御プログラムを用いて前記サブモジュールに前記外部機器を制御させ、一方、プログラム書き換え動作時においては、前記書き換え制御プログラムを実行して、前記外部機器制御プログラムを書き換えるメインモジュールと、
    を備えることを特徴とする制御装置。
  2. 前記ストレージ装置は前記全体制御プログラムを書き換えるための全体制御プログラム書き換え用データをさらに格納するものであり、
    前記第2のメモリ内の前記書き換え制御プログラムは、さらに、前記全体制御プログラム書き換え用データを用いて、前記全体制御プログラムを書き換えるものであり、
    前記メインモジュールは、前記書き換え制御プログラムの実行時において、前記全体制御プログラムを書き換えることを特徴とする請求項1に記載の制御装置。
  3. 前記サブモジュールは、前記サブモジュールを識別する識別子を保持したサブモジュール識別機構を備え、
    前記ストレージ装置は、複数の前記サブモジュール分の前記外部機器制御プログラム書き換え用データを有し、
    前記メインモジュールは、前記書き換え制御プログラムの実行時において、前記モジュール識別機構から前記識別子を取得し、取得した前記識別子を用いて、該当するサブモジュールに対応した前記外部機器制御プログラム書き換え用データを前記ストレージ装置から抽出し、抽出した前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換えることを特徴とする請求項1又は2に記載の制御装置。
  4. 前記サブモジュールは、前記外部機器制御プログラムのバージョン情報を保持したバージョン識別機構を備え、
    前記ストレージ装置内の前記外部機器制御プログラム書き換え用データは、更新後の前記外部機器制御プログラムのバージョン情報を格納しており、
    前記メインモジュールは、前記書き換え制御プログラムの実行中において、前記バージョン識別機構に保持されたバージョン情報と、前記外部機器制御プログラム書き換え用データ中におけるバージョン情報とを比較し、所定の書き換え条件を満たす場合にのみ、前記外部機器制御プログラムを書き換えることを特徴とする請求項1乃至3のいずれかに記載の制御装置。
  5. 前記第1のメモリは、前記外部機器制御プログラムを格納したプログラム領域と、所定のデータを格納したデータ領域とを備え、
    前記ストレージ装置は、さらに、前記所定のデータを書き換えるための所定のデータ書き換え用データを有し、
    前記書き換え制御プログラムは、さらに、前記所定のデータ書き換え用データを用いて、前記所定のデータを書き換えるものであり、
    前記メインモジュールは、前記書き換え制御プログラムの実行中において、前記ストレージ装置における、前記外部機器制御プログラム書き換え用データ及び前記所定のデータ書き換え用データのいずれか一方あるいは両方を選択し、前記プログラム領域及び前記データ領域のいずれか一方あるいは両方に書き込むことを特徴とする請求項1乃至4のいずれかに記載の制御装置。
  6. 前記ストレージ装置内の前記外部機器制御プログラム書き換え用データと前記所定のデータ書き換え用データとは、両者を識別するインデックスデータをそれぞれ有し、
    前記メインモジュールは、前記書き換え制御プログラムの実行中において、前記外部機器制御プログラム書き換え用データ及び前記所定のデータ書き換え用データのいずれか一方あるいは両方を選択し、前記インデックスデータに基づいて、前記プログラム領域及び前記データ領域のいずれか一方あるいは両方に自動的に書き込むことを特徴とする請求項5に記載の制御装置。
  7. 外部機器を制御する外部機器制御プログラムを格納した、電気的に書き換え可能な不揮発性の第1のメモリと、
    前記外部機器制御プログラムを書き換える外部機器制御プログラム書き換え用データを格納したストレージ装置と、
    前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換える処理を実現する書き換え制御プログラムを格納した第2のメモリと、
    通常動作時において、前記外部機器制御プログラムを実行して、前記外部機器を制御し、プログラム書き換え動作時において、前記書き換え制御プログラムを実行して、前記外部機器制御プログラムを書き換える制御部と、
    を備えることを特徴とする制御装置。
  8. 通常動作時においては、電気的に書き換え可能な不揮発性の第1のメモリに格納された外部機器制御プログラムを実行して外部機器を制御する制御装置における前記外部機器制御プログラムを更新するプログラム更新方法であって、
    プログラム書き換え動作時において、前記制御装置は、前記外部機器制御プログラムを書き換える処理を実現する書き換え制御プログラムを実行することによって、前記外部機器制御プログラムを書き換えるための外部機器制御プログラム書き換え用データをストレージ装置から取得し、取得した前記外部機器制御プログラム書き換え用データを用いて、前記外部機器制御プログラムを書き換えることを特徴とするプログラム更新方法。
JP2003088200A 2003-03-27 2003-03-27 制御装置及びプログラムの更新方法 Pending JP2004295589A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003088200A JP2004295589A (ja) 2003-03-27 2003-03-27 制御装置及びプログラムの更新方法
US10/808,494 US20040193295A1 (en) 2003-03-27 2004-03-25 Control apparatus for an industrial machine, a method of updating a program for controlling an industrial machine, and industrial machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003088200A JP2004295589A (ja) 2003-03-27 2003-03-27 制御装置及びプログラムの更新方法

Publications (1)

Publication Number Publication Date
JP2004295589A true JP2004295589A (ja) 2004-10-21

Family

ID=32985204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003088200A Pending JP2004295589A (ja) 2003-03-27 2003-03-27 制御装置及びプログラムの更新方法

Country Status (2)

Country Link
US (1) US20040193295A1 (ja)
JP (1) JP2004295589A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190179A (ja) * 2005-01-07 2006-07-20 Toshiba Corp ファイル転送方法
JP2007133601A (ja) * 2005-11-09 2007-05-31 Fujitsu Ten Ltd ソフトウェアパッケージ、システム管理装置および車載用情報機器
JP2010174507A (ja) * 2009-01-29 2010-08-12 Kubota Corp 作業機用制御装置
JP2010178032A (ja) * 2009-01-29 2010-08-12 Kubota Corp 作業機の通信システム
JP2017091125A (ja) * 2015-11-09 2017-05-25 アズビル株式会社 調節計

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460918B2 (en) * 2004-06-10 2008-12-02 Moteurs Leroy-Somer Devices and methods for updating the programming of a system for controlling an electric rotary machine
US7912666B1 (en) 2005-11-28 2011-03-22 Western Digital Technologies, Inc. Disk drive grouping in a multi-cell disk drive test system
US7596722B1 (en) * 2006-02-14 2009-09-29 Western Digital Technologies, Inc. Asynchronous automatic software module updates in a multi-cell disk drive test system
TWI336189B (en) * 2006-12-07 2011-01-11 Inst Information Industry Heterogeneous network transmission apparatus,method,application program and computer readable medium capable of transmitting a packet with a plurality of network paths according to a dispatch ratio
CN101694642B (zh) * 2009-10-21 2015-07-22 中兴通讯股份有限公司 数据卡的更新方法及装置
WO2014023335A1 (en) * 2012-08-07 2014-02-13 Siemens Aktiengesellschaft A system and a method for configuring an intelligent electronic device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844796A (en) * 1994-07-19 1998-12-01 Minolta Co., Ltd. Machine control device
US6728787B1 (en) * 2000-03-31 2004-04-27 Mitsubishi Electric Research Labs, Inc System and method for locating and installing device drivers for peripheral devices
US6801813B2 (en) * 2001-07-30 2004-10-05 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US6684290B2 (en) * 2001-10-18 2004-01-27 Kabushiki Kaisha Toshiba Memory rewriting apparatus and method for memory mapping rewriting program to same address space
US6907308B1 (en) * 2002-08-02 2005-06-14 Advanced Micro Devices, Inc. Remote wafer flow and recipe editor for simiconductor processing control

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190179A (ja) * 2005-01-07 2006-07-20 Toshiba Corp ファイル転送方法
JP2007133601A (ja) * 2005-11-09 2007-05-31 Fujitsu Ten Ltd ソフトウェアパッケージ、システム管理装置および車載用情報機器
JP2010174507A (ja) * 2009-01-29 2010-08-12 Kubota Corp 作業機用制御装置
JP2010178032A (ja) * 2009-01-29 2010-08-12 Kubota Corp 作業機の通信システム
JP2017091125A (ja) * 2015-11-09 2017-05-25 アズビル株式会社 調節計

Also Published As

Publication number Publication date
US20040193295A1 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
CN100446126C (zh) 使用多个命令周期的闪存存储器访问
US6745278B2 (en) Computer capable of rewriting an area of a non-volatile memory with a boot program during self mode operation of the computer
JP2004295589A (ja) 制御装置及びプログラムの更新方法
KR101632864B1 (ko) 프로그래머블 컨트롤러 시스템, 프로그래머블 컨트롤러, 프로그램 표시장치, 프로그램의 표시 방법
JP2001175933A (ja) 自動販売機の制御プログラム書換システム及び自動販売機の制御装置
CN104133706A (zh) 固件修改方法及固件修改装置
CN103339603A (zh) 计算机重新编程方法、数据存储介质和机动车辆计算机
JP4821717B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
CN115145634A (zh) 一种***管理软件自适配方法、装置及介质
CN111475178B (zh) 一种嵌入式***固件烧写的进度计算方法及***
JP5473391B2 (ja) 保護制御装置
JP3659399B2 (ja) プログラマブルロジックコントローラ
JP2009080736A (ja) Plc構築方法
JPH11282690A (ja) 制御プログラムの書込方法及び情報処理装置並びに情報処理システム
CN104106015A (zh) 可编程控制器***、其可编程显示器、辅助装置、程序
CN105706067A (zh) 内置闪存的微型计算机、向内置于微型计算机的闪存的数据写入方法、以及向闪存写入数据的程序
JP2003295910A (ja) ユニット及びツール機器並びにプログラム製品
JPH08328845A (ja) Romの制御プログラム書替え方法
CN105204877B (zh) 一种终端固件升级方法及装置
JP3355933B2 (ja) 自動販売機の制御装置
CN110471620B (zh) 一种闪存的数据引导方法和装置以及设备
CN104106014A (zh) 可编程显示器、程序
JP2001092713A (ja) データ書き込み装置とその書き込み方法
JP2000172917A (ja) 自動販売機の制御装置
JP2011138451A (ja) トレース機能を備える接続機器シミュレータ装置、方法、及びプログラム