(57)【特許請求の範囲】
【請求項１】
ユーザＲＯＭカードをプログラマブルコントローラに脱着可能であり、前記ユーザＲＯＭカード側に記憶されたシーケンスプログラムをプログラマブルコントローラに転送して、システムプログラムに基づき実行可能なプログラマブルコントローラのシステムプログラム書き換え方法において、
書き換え対象のシステムプログラムを記憶したシステムＲＯＭカードを前記ユーザＲＯＭカードと交換的に前記プログラマブルコントローラに対して脱着可能となし、前記システムＲＯＭカードのシステムプログラムで、前記プログラマブルコントローラ上のシステムプログラムを書き換え、システムプログラムの書き換えは、前記プログラマブルコントローラ側のＣＰＵが書き換えプログラムを実行することにより行なわれ、
該書き換えプログラムが前記プログラマブルコントローラ側に記憶され、
書き換え前のシステムプログラムは前記プログラマブルコンローラ内の第１のシステムプログラムメモリに記憶されており、
書き換え対象のシステムプログラムは前記システムＲＯＭカード内の第２のシステムプログラムメモリに記憶されており、前記プログラマブルコントローラは、前記システムＲＯＭカードおよび前記ユーザＲＯＭカードの装着の有無および装着されたＲＯＭカードの種類を識別し、
前記システムＲＯＭカードが装着されたことを識別した場合に前記第１のシステムプログラムメモリ、前記第２のシステムプログラムメモリを選択するためのチップセレクト信号を発生し、
前記ユーザＲＯＭカードが装着されたことを識別した場合に前記ユーザＲＯＭカード上のシーケンスプログラムを記憶したユーザアプリケーションメモリを選択するためのチップセレクト信号を発生する
ことにより前記システムＲＯＭカードの装着に応じて自動的に書き換え前のシステムプログラムを前記書き換え対象のプログラムで書き換えることを特徴とするプログラマブルコントローラのプログラム書き換え方法。
【請求項２】
請求項１に記載のプログラマブルコントローラのプログラム書き換え方法において、前記システムＲＯＭカード上の第２のシステムプログラムメモリおよび前記ユーザＲＯＭカード上のユーザアプリケーションメモリを選択するための第１のチップセレクト信号は共有化されており、前記プログラマブルコントローラに装着されたＲＯＭカードがシステムＲＯＭカードの場合には、前記第１のチップセレクト信号を前記第１のシステムプログラムメモリに対するチップセレクト信号として該第１のシステムプログラムメモリに供給し、前記第１のシステムプログラムメモリを選択するための第２のチップセレクト信号を前記第１のチップセレクト信号の代わりとして前記第２のシステムプログラムメモリに供給することを特徴とするプログラマブルコントローラのプログラム書き換え方法。
【請求項３】
請求項２に記載のプログラマブルコントローラのシステムプログラム書き換え方法において、前記書き換えプログラムおよび前記書き換え対象のシステムプログラムを、前記システムＲＯＭカード上の単一のメモリに記憶しておくことを特徴とするプログラマブルコントローラのシステムプログラム書き換え方法。
【請求項４】
請求項３に記載のプログラマブルコントローラのシステムプログラム書き換え方法において、前記書き換えプログラムおよび前記書き換え対象のシステムプログラムを、前記システムＲＯＭカード上の別個のメモリに記憶しておくことを特徴とするプログラマブルコントローラのシステムプログラム書き換え方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザＲＯＭカード接続コネクタを有するプログラマブルコントローラのシステムプログラム書き換え方法に関する。
【０００２】
【従来の技術】
プログラマブルコントローラはユーザが作成したシーケンスプログラム（制御対象機器を制御するためのプログラム、本願明細書ではユーザアプリケーションと称する）を実行するＣＰＵモジュールと上記制御対象機器とＣＰＵモジュールの間で情報信号の転送を行なうＩ／Ｏモジュールを有する。
【０００３】
図８にＣＰＵモジュールの回路構成を示す。１０はＣＰＵモジュールを示す。ＣＰＵモジュールに対してユーザＲＯＭカード２０が脱着可能に装着される。
【０００４】
ＣＰＵモジュール１０は以下の構成部を有する。ＣＰＵ１１はシステムプログラムメモリ１５に記憶されたシステムプログラム（コード形態）を実行し、ＣＰＵモジュール１０内の構成部の動作制御を行なう。また、ユーザアプリケーションを実行して、制御対象機器の動作制御を行なう。（入出力）ポート１２はＣＰＵ１１に対してユーザＲＯＭカードの装着／未装着の信号を出力する。
【０００５】
ドライバ／レシーバ１３はローダ（ユーザアプリケーションを作成する情報処理機器）のインターフェースと接続し、アプリケーションをＣＰＵモジュール１０に引渡す。リンク／バスコントロール／インターフェース１４はＩ／Ｏモジュールに対して情報の入出力を行なう。
【０００６】
システムプログラムメモリ１５は上述のシステムプログラムを記憶する。システムプログラムメモリ１５には、通常、ＦＬＡＳＨメモリが使用される。システムワークメモリ１６はＣＰＵ１１がシステムプログラムにより実行する制御処理に関連するデータを一時記憶する。システムワークメモリ１６には、通常、ＳＲＡＭが使用される。
【０００７】
ユーザアプリケーションメモリ１７にはローダから受信したユーザアプリケーションを記憶する。ユーザアプリケーションメモリ１７には、通常、ＳＲＡＭが使用される。ユーザデータメモリ１８は制御対象機器との間で送受信する情報（接点信号等）を記憶する。ユーザデータメモリ１８には、通常、ＳＲＡＭが使用される。
【０００８】
ユーザＲＯＭカード２０にはＦＬＡＳＨメモリを使用したユーザアプリケーションメモリ２１が搭載されている。ユーザアプリケーションメモリ２１にはローダ等で作成したユーザアプリケーションプログラムが記憶されており、このユーザアプリケーションプログラムをユーザＲＯＭカード２０からユーザアプリケーションメモリ１７に転送することが可能である。
【０００９】
ユーザＲＯＭカード未装着状態時はプルアップ抵抗により、“１：Ｖｃｃ”となり、ユーザＲＯＭカード装着状態時はカード内にてＧＮＤに接続され、“０：ＧＮＤ”となる。
【００１０】
装着／未装着各状態はポート１２からカード有無情報の形態でＣＰＵ１１に出力される（ＣＰＵ１１により読み出される）。
【００１１】
次に、電源起動、あるいはリセット時のＣＰＵ１１のシステム制御動作を図９を参照して説明する。
【００１２】
ＣＰＵ１１は、システムプログラムメモリ１５内に格納されているシステムプログラムコードにブート（Ｂｏｏｔ）し、このプログラムコードにしたがって、カード有無情報を読み出す（Ｒｅａｄする）。読み出したカード有無情報の信号内容を判断する事によりユーザＲＯＭカード２０の装着状態を判定する（ステップＳ１０→Ｓ２０）。
【００１３】
ユーザＲＯＭカードが装着されていると判断された場合、ＣＰＵ１１はユーザＲＯＭカード２０内のユーザアプリケーションメモリ２１に格納されているユーザアプリケーションを読み出し、ユーザアプリケーションメモリ１７へ格納（Ｗｒｉｔｅ）する（ステップＳ２０〜Ｓ４０）。
【００１４】
その後、ＣＰＵ１１は通常システム処理、たとえば、システムプログラムに基づいてユーザアプリケーションの文法違反などのチェックを実施後、ユーザアプリケーションを実行し、ＩＯモジュールを介して制御対象機器の制御を行なう。また、ドライバ／レシーバ１３を介してローダとの間でデータ授受などが行なわれる。
【００１５】
ローダなどより、システムプログラムの書き換え要求がＣＰＵ１１に来た場合、通常のシステム処理より、システムプログラム書き換え処理へ移行する（ステップＳ６０→Ｓ７０）。
【００１６】
システムプログラム書き換え処理を実施するにあたり、ＣＰＵ１１はシステムプログラムメモリ１５内に格納されている、システムプログラム書き換えプログラムコードを読み出し、システムワークメモリ１６へ格納（転送）し、システムワークメモリ１６へ転送した、システムプログラム書き換えプログラムへ移行する（ステップＳ７０〜Ｓ９０）。なお、新たに書き込むシステムプログラムコードはローダから受信し、システムワークメモリ１６に記憶しておくものとする。最初にＣＰＵ１１はシステムプログラムメモリ１５である、ＦＬＡＳＨメモリの初期化（イレース）を実施する（ステップＳ９０）。
【００１７】
ＣＰＵ１１は書き換えるべき新しいシステムプログラムコードをシステムワークメモリ１６から読み出し、システムプログラムメモリ１５へ格納する（ステップＳ１００→Ｓ１１０）。
【００１８】
これらの処理を、システムプログラム全領域分繰り返し実施する（ステップＳ１００〜Ｓ１２０のループ処理）。
【００１９】
【発明が解決しようとする課題】
従来では、ローダから書き換えるべきシステムプログラムをＣＰＵモジュールに対して転送していたので、ローダ側でその指示操作を行なう必要があり、また、ローダからＣＰＵモジュールへの通信は通信速度が遅いので、システムプログラムの書き換えに時間がかかるという問題があった。
【００２０】
そこで、本発明の目的は、システムプログラムの書き換え処理に要する時間を短縮することができるプログラマブルコントローラのシステムプログラム書き換え方法を提供することにある。
【００２１】
【課題を解決するための手段】
このような目的を達成するために、本発明は、請求項１の発明は、ユーザＲＯＭカードをプログラマブルコントローラに脱着可能であり、前記ユーザＲＯＭカード側に記憶されたシーケンスプログラムをプログラマブルコントローラに転送して、システムプログラムに基づき実行可能なプログラマブルコントローラのシステムプログラム書き換え方法において、
書き換え対象のシステムプログラムを記憶したシステムＲＯＭカードを前記ユーザＲＯＭカードと交換的に前記プログラマブルコントローラに対して脱着可能となし、前記システムＲＯＭカードのシステムプログラムで、前記プログラマブルコントローラ上のシステムプログラムを書き換え、システムプログラムの書き換えは、前記プログラマブルコントローラ側のＣＰＵが書き換えプログラムを実行することにより行なわれ、該書き換えプログラムが前記プログラマブルコントローラ側に記憶され、書き換え前のシステムプログラムは前記プログラマブルコンローラ内の第１のシステムプログラムメモリに記憶されており、書き換え対象のシステムプログラムは前記システムＲＯＭカード内の第２のシステムプログラムメモリに記憶されており、前記プログラマブルコントローラは、前記システムＲＯＭカードおよび前記ユーザＲＯＭカードの装着の有無および装着されたＲＯＭカードの種類を識別し、前記システムＲＯＭカードが装着されたことを識別した場合に前記第１のシステムプログラムメモリ、前記第２のシステムプログラムメモリを選択するためのチップセレクト信号を発生し、前記ユーザＲＯＭカードが装着されたことを識別した場合に前記ユーザＲＯＭカード上のシーケンスプログラムを記憶したユーザアプリケーションメモリを選択するためのチップセレクト信号を発生することにより前記システムＲＯＭカードの装着に応じて自動的に書き換え前のシステムプログラムを前記書き換え対象のプログラムで書き換えることを特徴とする。
【００２８】
【発明の実施形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００２９】
（実施形態１）
実施形態１は、書き換えるべきシステムプログラムをローダから直接、プログラマブルコントローラ（ＣＰＵモジュール）に転送せずに、後述のシステムＲＯＭカードからプログラマブルコントローラに転送し、また、システムＲＯＭカードとユーザＲＯＭカードをプログラマブルコントローラに交換的に接続可能としたことに特徴がある。
【００３０】
図１に本発明実施形態１の回路構成を示す。なお、図８の従来システムと同様の個所には同一の符号を付しており詳細な説明を省略する。この実施形態では、システムプログラムメモリ３１を搭載したシステムＲＯＭカード３０と、ユーザアプリケーションメモリ２１を搭載したユーザＲＯＭカード２０をＣＰＵモジュール１０の接続コネクタに交換的に装着可能である。
【００３１】
ユーザＲＯＭカード２０またはシステムＲＯＭカード３０の装着／未装着はカード有無情報により識別される。カード有無情報はユーザＲＯＭカード２０／システムＲＯＭカード３０が未装着状態時はプルアップ抵抗により“１：Ｖｃｃ”となり、
ユーザＲＯＭカード２０／システムＲＯＭカード３０が装着状態時はカード内にてＧＮＤに接続され“０：ＧＮＤ”となる。
【００３２】
また、上記カード有無情報はポート１２を介してＣＰＵ１１により読み出すことか可能である。
【００３３】
装着されたカードがユーザＲＯＭカード２０であるかシステムＲＯＭカードであるかはカード属性情報により識別される。
【００３４】
カード属性情報は、ユーザＲＯＭカード２０装着状態時はプルアップ抵抗により“１：Ｖｃｃ”となり、システムＲＯＭカード３０装着状態時はカード内にてＧＮＤに接続され“０：ＧＮＤ”となる。
【００３５】
また、上記カード属性情報はポート１２を介してＣＰＵ１１により読み出すことが可能である。システムＲＯＭカード３０上のシステムプログラムメモリ３１には書き換えの対象となるシステムプログラム（コード形態）が記憶されている。
【００３６】
ＣＰＵモジュール１０は、図２の処理手順にしたがって、装着のカードの有無や装着されたカードを識別し、識別したカードの種類に応じた処理を実行する。より具体的には、ＣＰＵ１１はＣＰＵモジュール１０内のシステムプログラムメモリ１５内に格納されているシステムプログラムコードにＢｏｏｔし、このシステムプログラムコードに基づきカード有無情報を読み出し、判断する事によりカード装着状態を判定する（ステップＳ２００→Ｓ２１０）。
【００３７】
カードが装着されていないことを判断した場合（ステップＳ２１０の判定がＮＯ）、ＣＰＵ１１は通常のシステム処理へ移行する。カードが装着されていることを判断した場合（ステップＳ２１０の判定がＹＥＳ）、ＣＰＵ１１はカード属性情報を読み出し、判断する事によりカード属性を判定する（ステップＳ２２０→Ｓ２３０）。
【００３８】
ユーザＲＯＭカード２０が装着されていると判断した場合（ステップＳ２３０の判定がＮＯ）、従来と同様の通常のシステム処理へ移行する。
【００３９】
システムＲＯＭカード３０が装着されていると判断した場合（ステップＳ２３０の判定がＹＥＳ）、ステップＳ２４０以降のシステムプログラム書き換え処理へ移行する。
【００４０】
システムプログラム書き換え処理を実施するにあたり、ＣＰＵ１１はシステムプログラムメモリ１５内に格納されているシステムプログラム書き換えプログラム（コード）を読み出し、システムワークメモリ１６へ格納し、そのワークメモリ１６へ転送したシステムプログラム書き換えプログラムへ移行して実行する。
【００４１】
ＣＰＵ１１はシステムプログラム書き換えプログラムにしたがって、書き換え処理の前処理のためにシステムプログラムメモリ（ＦＬＡＳＨメモリ）の初期化（データ消去）を実施する（ステップＳ２４０〜Ｓ２６０）。
【００４２】
ユーザＲＯＭカード接続コネクタを介しＣＰＵモジュール内部バスにシステムＲＯＭカード３０が接続されている場合、システムＲＯＭカード３０内のシステムプログラムメモリ３１上に書き換え対象のシステムプログラムコードが格納されている。ＣＰＵ１１は先頭アドレスのシステムプログラムコードを読み出し、システムプログラムメモリ１５へ格納する（ステップ２７０→Ｓ２８０）。
【００４３】
以下、読み出しアドレスを変更しながらステップＳ２７０〜Ｓ２８０処理を、システムプログラム全領域分繰り返し実施して、システムプログラムメモリ１５へシステムプログラムコード全てを書き込む。これにより、システムプログラムメモリ１５に記憶されていた前のシステムプログラムが新しいシステムプログラムに書き換えられる。
【００４４】
この形態では、システムＲＯＭカード３０がＣＰＵモジュール１０の内部バスに直接接続され、ＣＰＵ１１により直接システムＲＯＭカード３０内のシステムプログラムメモリ３１からシステムプログラムが読み出される。周知のようにＣＰＵモジュール１０と不図示のローダの通信速度よりも上記内部バスの通信速度の方が速度が速いので、従来よりも早く、システムプログラムの書き換えを実行することができる。また、システムＲＯＭカード３０をユーザＲＯＭカード２０と交換可能にＣＰＵモジュール１０に装着できるので、ＣＰＵモジュール１０を従来よりも大きくする必要がない。
【００４５】
（実施形態２）
上述の実施形態では、システムプログラム書き換え用のプログラムがＣＰＵモジュール１０内のシステムプログラムメモリ１５に記憶されている例であったが、以下の２つの特徴を有する実施形態２を次に説明する。第１の特徴はシステムＲＯＭカード３０内のシステムプログラムメモリ３１内にシステムプログラム書き換え用プログラムおよび書き換え対象のシステムプログラムを記憶しておく点である。
【００４６】
第２の特徴は、ＣＰＵモジュール１０に対するカードの装置着の有無および装着のカードの種類に応じて、ＣＰＵモジュール１０内の関連するメモリのチップセレクト信号を自動作成する点である。実施形態２は図１の実施形態１とほぼ同様の構成ことができるので、相違点のみを説明する。実施形態２ではＣＰＵモジュール１０内に図２に示すようなセレクタ４０および４１が設けられている。
【００４７】
セレクタ４０はシステムプログラムメモリ１５を選択するためのチップセレクト信号Ｃｓａを作成する。セレクタ４０は従来と同様のシステムプログラムメモリ１５のチップセレクト信号（システムプログラムメモリに対する読み／書きアドレスが発生されたときに発生されるチップセレクト信号）ＣＳ０と、ユーザＲＯＭカード２０またはシステムＲＯＭカード３０上のメモリに対する読み／書きアドレスが発生されたときに発生される共有のチップセレクト信号（従来ではユーザＲＯＭカード用のみ）ＣＳ１を入力としており、カード属性情報の情報内容に応じて上記２つのチップセレクト信号の中のいずれかが選択出力される。
【００４８】
セレクタ４１は装着されたＲＯＭカード２０または３０のメモリを選択するためのチップセレクト信号ＣＳｂを作成する。
【００４９】
セレクタ４１は従来と同様のシステムプログラムメモリ１５のチップセレクト信号ＣＳ０と、ユーザＲＯＭカード２０またはシステムＲＯＭカード３０上のメモリに対する読み／書きアドレスが発生されたときに発生されるチップセレクト信号（従来ではユーザＲＯＭカード用のみ）ＣＳ１を入力としており、カード属性情報の情報内容に応じて上記２つのチップセレクト信号の中のいずれかが選択出力される。
【００５０】
カード未装着状態及びユーザＲＯＭカード３０装着状態時は、プルアップ抵抗によりカード属性情報が“１：Ｖｃｃ”となる。これによりＢｏｏｔおよびシステムプログラム実行のためにシステムプログラムメモリ１５に対するチップセレクト信号ＣＳａとして、チップセレクト信号ＣＳ０がセレクタ４０により選択される。
【００５１】
また、ユーザＲＯＭカード３０に対するチップセレクト信号ＣＳｂとしてチップセレクト信号ＣＳ１がセレクタ４１により選択される。
【００５２】
システムＲＯＭカード装着状態時は、カード内にてＧＮＤに接続され、カード属性情報が“０：ＧＮＤ”となる。これにより、チップセレクト信号ＣＳａとしてチップセレクト信号ＣＳ１がセレクタ４０により選択され、チップセレクト信号ＣＳｂとしてチップセレクト信号ＣＳ０が選択される。
【００５３】
すなわち、システムＲＯＭカード３０が挿入されたときには、ＣＰＵモジュール１０のシステムプログラムメモリ１５のためのチップセレクト信号がシステムＲＯＭカードのチップセレクト信号として使用されるので、システムプログラムメモリ１５を介さずともシステムＲＯＭカード３０内のシステムプログラムメモリ３１に記憶されたシステム書き込みプログラムの実行処理に遷移することができる。
【００５４】
このような実施形態２の処理内容を図４に示す。
【００５５】
カード未装着状態及びユーザＲＯＭカード装着状態時に、ＣＰＵモジュール１０のＣＰＵ１１は、カード属性情報によるチップセレクト信号セレクト結果に従い、システムプログラムメモリ１５内に格納されている、システムプログラムコードにＢｏｏｔし、カード有無情報を読み出し、判断する事によりカード装着状態を判定する（ステップＳ３１０）。
【００５６】
カードが装着されていないと判断した場合、ＣＰＵ１１は通常のシステム処理へ移行する。
【００５７】
カードが装着されていると判断した場合、ＣＰＵ１１はカード属性情報を読み出し、判断する事によりカード属性を判定する（ステップＳ３２０→Ｓ３３０、本状態においてカード属性情報は、必ずユーザＲＯＭとなる）。
【００５８】
ユーザＲＯＭカード２０が装着されていると判断した場合、ＣＰＵ１１は通常のシステム処理へ移行する。
【００５９】
システムＲＯＭカード３０の装着状態時に、ＣＰＵモジュール１０のＣＰＵ１１は、カード属性情報によるチップセレクト信号セレクト結果に従い、システムＲＯＭカード３０内のシステムプログラムメモリ３１内に格納されているシステムプログラムコードにＢｏｏｔし、カード有無情報を読み出し、判断する事によりカード装着状態を判定する（ステップＳ３１０がＹＥＳ判定、すなわち、本状態においてカード有無情報は、必ず有りとなる）。
【００６０】
カードが装着されていると判断した場合、ＣＰＵ１１はカード属性情報を読み出し、判断する事によりカード属性を判定する（ステップＳ３２０→Ｓ３３０、本状態においてカード属性情報は、必ずシステムＲＯＭとなる）。
【００６１】
システムＲＯＭカード３０が装着されていると判断した場合、ＣＰＵ１１はシステムＲＯＭカード３０内のシステムプログラムメモリ３１内に格納されている、システムプログラムを使用してシステムプログラムの書き換え処理（プログラム）へ移行する。より具体的には、ＣＰＵモジュール１０内のシステムプログラムメモリ１５の初期化を実施する（ステップＳ３４０）。
【００６２】
ＣＰＵ１１は、ユーザＲＯＭカード接続コネクタを介しＣＰＵモジュール内部バスに接続された、システムＲＯＭカード３０内のシステムプログラムメモリ３１上に格納されている、書き換え対象のシステムプログラムコードを読み出し、ＣＰＵモジュール１０内のシステムプログラムメモリ１５へ格納する（ステップＳ３５０→Ｓ３６０）。
【００６３】
これらの処理を、システムプログラム全領域分繰り返し実施する（ステップＳ３５０→Ｓ３６０のループ処理）。
【００６４】
（実施形態３）
実施形態２ではシステムＲＯＭカード３０上には１個のシステムプログラムメモリ（素子）を搭載したが、書き換えプログラムと書き換え対象のプログラムメモリをそれぞれ別個にシステムＲＯＭカード３０上に設けた実施形態３を次に説明する。なお、本実施形態のシステム構成は以下に述べる点以外は実施形態２と同じである。
【００６５】
図５に示すようにシステムＲＯＭカード３０上には２つのメモリ素子５１および５２が搭載されている。この２つのメモリ素子を選択するためのゲート回路５３がさらにシステムＲＯＭカード３０上に搭載されている。
【００６６】
システムＲＯＭカード３０上にて、ＲＯＭカードに供給されるチップセレクト信号、ＣＳｂ：ＲＯＭカード内ユーザアプリケーションメモリ（ＦＬＡＳＨメモリ）、又は、ＲＯＭカード内システムプログラムメモリ（ＦＬＡＳＨメモリ）へ接続されているチップセレクト信号が“０：Ｌｏｗ”で且つ、システムＲＯＭカード領域空間最上位アドレスが、“０：Ｌｏｗ”の場合、ＲＯＭカード内システムプログラムメモリ５１（素子１）へ接続されているチップセレクト信号を出力（イネーブル）する。
【００６７】
また反対に、ＲＯＭカード領域空間最上位アドレス、“１：Ｈｉｇｈ”の場合、ＲＯＭカード内システムプログラムメモリ５２書き換えプログラム（素子２）へ接続されているチップセレクト信号を出力（イネーブル）する。
【００６８】
なお、本実施例においては、インテル８０８６（商標）系のように最大側アドレスよりＢｏｏｔするＣＰＵを想定している。
【００６９】
ＣＰＵモジュール１０のＣＰＵ１１の処理内容を図６および図７に示す。
【００７０】
カード未装着状態及びユーザＲＯＭカード２０装着状態時に、ＣＰＵ１１は、カード属性情報によるチップセレクト信号セレクト結果に従い、システムプログラムメモリ１５内に格納されている、システムプログラムコードにＢｏｏｔし、通常のシステム処理へ移行する（カード未装着状態では図６のステップＳ４００→Ｓ４１０→Ｓ４４０、ユーザＲＯＭカード装着時はステップＳＳ４００→４１０→Ｓ４２０→Ｓ４３０→Ｓ４４０）。
【００７１】
システムＲＯＭカード３０装着状態時に、ＣＰＵ１１は、カード属性情報によるチップセレクト信号セレクト結果及び、ＲＯＭカード領域空間最上位アドレスによるチップセレクト信号分離結果に従い、図７の手順に従ってシステムＲＯＭカード３０内のシステムプログラムメモリ５２（素子２）上のシステムプログラムメモリ書き換えプログラムコードにＢｏｏｔし、システムプログラム書き換え処理（プログラム）へ移行する。
【００７２】
より具体的には、ＣＰＵ１１はシステムプログラムメモリ１５の初期化を実施する（ステップＳ５００）。ＣＰＵ１１はシステムプログラムメモリ５１（素子１）上の書き換え対象のシステムプログラムすなわち、ユーザＲＯＭカード接続コネクタを介しＣＰＵモジュール内部バスに接続された、システムＲＯＭカード３０内システムプログラムメモリ５１（素子１）上に格納されているシステムプログラムコードを読み出し、ＣＰＵモジュール１０内のシステムプログラムメモリ１５でへ格納する。これらの処理を、システムプログラム全領域分繰り返し実施する（ステップＳ５１０〜Ｓ５３０のループ処理）。
【００７３】
【発明の効果】
以上、説明したように、本発明によれば、システムＲＯＭカードを介してシステムプログラムを書き換えるようにしたので、従来のローダからシステムプログラムを転送するよりも書き換え処理を早く転送することができる。また、システムプログラムをバージョンアップする場合、メーカーはシステムＲＯＭカードをユーザに対して無償／有償で供することができるので、従来よりもシステムプログラムの供給方法や書き換えの操作が容易となる。
【００７４】
また、システムプログラムを書き換えるための書き換えプログラムをもシステムＲＯＭカードに記憶しておくことで、プログラマブルコントローラに書き換えプログラムを記憶しておく必要がなくなり、プログラマブルコントローラのメモリを有効利用することができる。また、システムＲＯＭカードが装着された場合に、チップセレクト信号をシステムプログラムメモリとカード用のそれぞれのチップセレクト信号を入れ替えることで、誤動作によるシステムプログラムの書き換えを阻止し、また、プログラマブルコントローラ側のシステムプログラムメモリを介さず、システムプログラムの書き換えが可能となるので、システムプログラム書き換えに失敗して、プログラマブルコントローラ側のシステムプログラムが破壊され正当に動作できない状況においても、素子の付け替えをせずに、再度システムプログラムを書き込める。
【図面の簡単な説明】
【図１】本発明実施形態１のシステム構成を示すブロック図である。
【図２】本発明実施形態１の処理手順を示すフローチャートである。
【図３】本発明実施形態２の処理手順を示すブロック図である。
【図４】本発明実施形態２の処理手順を示すフローチャートである。
【図５】本発明実施形態３のシステム構成を示すブロック図である。
【図６】本発明実施形態３の処理手順を示すフローチャートである。
【図７】本発明実施形態３の処理手順を示すフローチャートである。
【図８】従来例のシステム構成を示すブロック図である。
【図９】従来例の処理手順を示すフローチャートである。
【符号の説明】
１０  ＣＰＵモジュール
２０  ユーザＲＯＭカード
３０  システムＲＯＭカード
【図１】
0003997505.tif 000002
【図２】
0003997505.tif 000003
【図３】
0003997505.tif 000004
【図４】
0003997505.tif 000005
【図５】
0003997505.tif 000006
【図６】
0003997505.tif 000007
【図７】
0003997505.tif 000008
【図８】
0003997505.tif 000009
【図９】
0003997505.tif 000010