(57)【特許請求の範囲】
【請求項１】
ユーザ命令の各々に対応する命令機能実現プログラムをシステムプログラムメモリに格納し、これをユーザ命令解読に際して適宜に読み出して実行することにより、ユーザプログラムで規定された制御仕様を実現するプログラマブルロジックコントローラにおいて、
前記システムプログラムメモリを実装状態のままで書き換え不能な不揮発性メモリと書き換え可能な不揮発性メモリとで構成すると共に、
書き換え不能な不揮発性メモリには、命令プログラムの中で固定的な命令機能実現プログラム及び命令／論理アドレス変換テーブルが格納されると共に、書き換え可能な不揮発性メモリには、命令プログラムの中で変更可能な命令機能実現プログラム及び論理／物理アドレス変換テーブルが格納され、さらに、
動作モードをシステムプログラム部分変更モードに設定するためのモード設定手段と、
追加命令に対応する命令機能実現プログラムを格納した外部記憶媒体を着脱可能に取り付けるためのコネクタと、
動作モードがシステムプログラム部分変更モードに設定されていることを条件として、前記コネクタを介して接続された外部記憶媒体に格納された追加命令に対応する命令機能実現プログラムを、前記システムプログラムメモリの書き換え可能な不揮発性メモリで構成された命令機能実現プログラムの格納領域に転送するプログラム転送手段と、を設け、
それにより、ユーザ命令機能の変更や追加を可能とすると共に、ユーザ命令解読に際しては、命令／論理アドレス変換テーブルと論理／物理アドレス変換テーブルとを介して、当該ユーザ命令に対応する命令機能実現プログラムにアクセスするようにしたプログラマブルロジックコントローラ。
【請求項２】
ユーザ命令の各々に対応する命令機能実現プログラムをシステムプログラムメモリに格納し、これをユーザ命令解読に際して適宜に読み出して実行することにより、ユーザプログラムで規定された制御仕様を実現するプログラマブルロジックコントローラにおいて、
前記システムプログラムメモリを実装状態のままで書き換え不能な不揮発性メモリと書き換え可能な不揮発性メモリとで構成すると共に、
書き換え不能な不揮発性メモリには、命令プログラムの中で固定的な命令機能実現プログラム及び命令／論理アドレス変換テーブルが格納されると共に、書き換え可能な不揮発性メモリには、命令プログラムの中で変更可能な命令機能実現プログラム及び論理／物理アドレス変換テーブルが格納され、
ハウジング外面に取り付けられかつ少なくともプログラム部分変更モードと通常モードとに設定可能なモード設定スイッチと、
ハウジング外面に設けられかつ１若しくは２以上の命令機能実現プログラムが格納されたメモリカードを装着可能なスロットと、
動作電源を投入するために使用される電源スイッチと、を設け、さらに
前記システムプログラムメモリに格納されるシステムプログラムには、前記電源スイッチのオン直後に前記モード設定スイッチの状態を読み込むと共に、その状態がプログラム部分変更モードである場合には、前記スロットに装着されたメモリカードに格納された命令機能実現プログラムを前記システムプログラムメモリの書き換え可能な不揮発性メモリで構成された命令機能実現プログラムの格納領域に転送する一方、通常モードである場合には命令実行処理やＩ／Ｏリフレッシュ処理を含む通常動作を行う機能が含まれており、
それにより、ユーザ命令機能の変更や追加を可能とすると共に、ユーザ命令解読に際しては、命令／論理アドレス変換テーブルと論理／物理アドレス変換テーブルとを介して、当該ユーザ命令に対応する命令機能実現プログラムにアクセスするようにしたプログラマブルロジックコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＰＲＯＭライタやデバイス用のアダプタなどの特別な機材を要することなく、簡単な操作でシステムプログラムの部分変更を可能としたプログラマブルロジックコントローラに係り、特に、ユーザ命令機能の変更・追加などに好適なプログラマブルロジックコントローラに関する。
【０００２】
【従来の技術】
この種のプログラマブルロジックコントローラ（以下、ＰＬＣと言う）には、ユーザ命令実行処理やＩ／Ｏリフレッシュ処理といった装置本来の機能を実現するためのシステムプログラムを格納するシステムプログラムメモリと、ユーザの制御仕様に相当するユーザプログラムを格納するユーザプログラムメモリとが少なくとも設けられている。
【０００３】
ところで、従来、この種のＰＬＣのシステムプログラムや命令データ（命令機能実現プログラム）を変更・追加するためには、システムプログラム・命令の格納されているメモリの内容を全消去後、追加内容を含むシステムプログラム・命令データを一括して作成・書き込む方法（以下、第１の方法と言う）、命令追加においては、追加する命令用データをその追加命令を使用するユーザプログラムの一部として作成し、格納する方法（以下、第２の方法と言う）と、既にデータの変更された別のＰＲＯＭと物理的に交換する方法（以下、第３の方法と言う）とのいずれかが採用されていた。
尚、理解を容易とするために、第２の方法を図１１に図解して示す。同図において、図１１（ａ）はカスタマイズ前におけるユーザプログラムメモリの内容を示すメモリマップ、図１１（ｂ）はカスタマイズ後におけるユーザプログラムメモリの内容を示すメモリマップである。これらの図から明らかなように、カスタマイズ前にあっては、ユーザプログラムメモリ内のシステムプログラム領域は空領域となっている。これに対し、カスタマイズ後にあっては、ユーザプログラムメモリ内のシステムプログラム領域には新規命令機能実現処理が格納されている。このように、第２の方法にあっては、命令追加においては、追加する命令用データをその追加命令を使用するユーザプログラムの一部として作成し、ユーザプログラムメモリ内に格納するのである。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述の第１〜第３の方法にあっては、次のような問題点が指摘されている。
【０００５】
システムプログラム変更・命令追加／カスタマイズは、そのデータ作成・反映処理がメーカーでしか行えないため、ユーザにカスタマイズ対応が必要なＰＬＣが生じた場合、その解決には一定期間が必要であり、即座には対応できない。
【０００６】
又、ＰＲＯＭ／ＦＲＯＭなどにシステムプログラムデータを書き込む（反映する）際には、ＰＲＯＭライタ、デバイス用のアダプタなどの機材が必要となる。
【０００７】
又、システムプログラムや命令は、一連のデータとして扱われているため、その変更やカスタマイズが必要な部分を分離して対応することができない。そのため、変更／追加などのカスタマイズを行うためには、変更部分以外のプログラムデータも必要となり、また命令追加のみであってもシステムプログラムそのものを変更する必要が生ずる。
【０００８】
さらに、ユーザプログラムと追加命令をプログラムデータとする命令追加方法の場合にあっては、プログラムデータを作成する工数が別に発生する。そのため、本来注力したいユーザプログラムの作成に対する余分な工数が生じてしまう。
【０００９】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ＰＲＯＭライタやデバイス用のアダプタなどの特別な機材を要することなく、簡単な操作でシステムプログラム変更・命令追加／カスタマイズを可能としたプログラマブルロジックコントローラを提供することにある。
【００１０】
【課題を解決するための手段】
この発明のプログラマブルロジックコントローラは、ユーザ命令解読実行処理やＩ／Ｏリフレッシュ処理といった装置本来の機能を実現するためのシステムプログラムを格納するシステムプログラムメモリと、ユーザの制御仕様に相当するユーザプログラムを格納するユーザプログラムメモリとを少なくとも有することを前提としている。
【００１１】
加えて、上記システムプログラムメモリの少なくとも一部は、実装状態のままで書き換え可能な不揮発性メモリ（例えば、フラッシュメモリ）で構成すると共に、該書き換え可能な不揮発性メモリには追加機能に対応するシステムプログラム格納領域が設けられる。
【００１２】
さらに、本発明のプログラマブルロジックコントローラには、動作モードシステムプログラム部分変更モードに設定するためのモード設定手段と、追加機能に対応するシステムプログラムを格納した外部記憶媒体を着脱可能に取り付けるためのコネクタと、動作モードがシステムプログラム部分変更モードに設定されていることを条件として、前記コネクタを介して接続された外部記憶媒体に格納された追加機能に対応するシステムプログラムを、前記システムプログラムメモリの追加機能に対応するシステムプログラム格納領域に転送するプログラム転送手段とを有する。
【００１３】
このような構成によれば、追加機能に対応するシステムプログラムを格納した外部記憶媒体をＰＬＣ本体に装着した後、モード設定手段を用いて動作モードをシステムプログラム部分変更モードに設定するだけで、前記コネクタを介して接続された外部記憶媒体に格納された追加機能に対応するシステムプログラムは、前記システムプログラムメモリの追加機能に対応する実現プログラム格納領域に自動的に転送され、これによりＰＲＯＭライタやデバイス用のアダプタなどの特別な機材を使用することなく、システムプログラムの部分変更を容易に行うことが可能となる。
【００１４】
又、本発明のプログラマブルロジックコントローラは、ユーザ命令の各々に対応する命令機能実現プログラム（命令データ）をシステムプログラムメモリに格納し、これをユーザ命令解読に際して適宜に読み出して実行することにより、ユーザプログラムで規定された制御仕様を実現するプログラマブルロジックコントローラを前提としている。
【００１５】
このプログラマブルロジックコントローラにおいても、システムプログラムメモリの少なくとも一部が実装状態のままで書き換え可能な不揮発性メモリ（例えば、フラッシュメモリなど）で構成されると共に、該書き換え可能な不揮発性メモリには追加命令に対応する命令機能実現プログラム格納領域が設けられる。
【００１６】
さらに、このプログラマブルロジックコントローラにおいては、動作モードをシステムプログラム部分変更モードに設定するためのモード設定手段と、追加命令に対応する命令機能実現プログラムを格納した外部記憶媒体を着脱可能に取り付けるためのコネクタと、動作モードがシステムプログラム部分変更モードに設定されていることを条件として、前記コネクタを介して接続された外部記憶媒体に格納された追加命令に対応する命令機能実現プログラムを、前記システムプログラムメモリの命令機能実現プログラム格納領域に転送するプログラム転送手段とを有する。
【００１７】
このような構成によれば、追加命令に対応する命令機能実現プログラムを格納した外部記憶媒体をコネクタに装着した後、モード設定手段を用いて動作モードシステムプログラム部分変更モードに設定すれば、前記コネクタを介して接続された外部記憶媒体に格納された追加命令に対応する命令機能実現プログラムは、システムプログラムメモリの命令機能実現プログラム格納機能に自動的に転送され、この場合にあっても、ＰＲＯＭライタやデバイス用のアダプタ等の特別な機材を要することなく、簡単な操作で命令追加処理を行うことができる。
【００１８】
好ましい実施の形態では、システムプログラムメモリを構成する実装状態で書き換え可能な不揮発性メモリには、命令解読により生成される各命令機能実現プログラムの格納論理アドレスをその格納物理アドレスに変換するアドレス変換テーブル格納領域が設けられ、プログラム転送手段には該アドレス変換テーブル格納領域の内容を転送後の命令機能実現プログラムの各格納アドレスに応じて更新する機能が含まれる。
【００１９】
このような構成によれば、命令語とその命令機能実現プログラム格納アドレスとを対応させたいわゆる命令テーブルがシステムプログラムの書き換え不能部分に格納されていたとしても、命令解読により生成される各命令機能実現プログラムの格納論理アドレスをその格納物理アドレスに変換するアドレス変換テーブルの内容を、転送後の命令機能実現プログラムの各格納物理アドレスに応じて更新することにより、周囲のシステムプログラムに影響を与えることなく、追加命令に対応する命令機能実現プログラムの書き込みが可能となる。
【００２０】
又、本発明のプログラマブルロジックコントローラは、ユーザ命令の各々に対応する命令機能実現プログラムをシステムプログラムメモリに格納し、これをユーザ命令解読に際して適宜に呼び出して実行することにより、ユーザプログラムで規定された制御仕様を実現するプログラマブルロジックコントローラを前提としている。
【００２１】
このプログラマブルロジックコントローラにおいても、システムプログラムの少なくとも一部は実装状態のままで書き換え可能な不揮発性メモリ（フラッシュメモリなど）で構成されると共に、該書き換え可能な不揮発性メモリには新規命令に対応する命令機能実現プログラム格納領域が設けられる。
【００２２】
また、このプログラマブルロジックコントローラには、ハウジング外面に取り付けられ且つ少なくともプログラム変更モードと通常モードとに設定可能なモード設定スイッチと、ハウジング外面に設けられ且つ１若しくは２以上の命令機能実現プログラムが格納されたメモリカードを装着可能なスロットと、動作電源を投入するために使用される電源スイッチとが設けられる。
【００２３】
さらに、このシステムプログラムメモリに格納されるシステムプログラムには、前記電源スイッチのオン直後に前記モード設定スイッチの状態を読み込むと共に、その状態がプログラム部分変更モードである場合には、前記スロットに装着されたメモリカードに格納された命令機能実現プログラムを前記システムプログラムメモリの命令機能実現プログラム格納領域に転送する一方、通常モードである場合には命令実行処理やＩ／Ｏリフレッシュ処理を含む通常動作を行う機能が含まれている。
【００２４】
このような構成によれば、ハウジング外面に設けられたスロットに対し、１若しくは２以上の命令機能実現プログラムが格納されたメモリカードを装着した後、ハウジング外面に取り付けられたモード設定スイッチをプログラム部分変更モードに設定し、さらに電源スイッチを用いて動作電源を投入するといった簡単な操作を行うだけで、前記スロットに装着されたメモリカードに格納された命令機能実現プログラムは、システムプログラムメモリの命令機能実現プログラム格納領域に転送される。一方、モード設定スイッチを通常モードに設定した後、電源スイッチを用いて動作電源を再投入すれば、命令実行処理やＩ／Ｏリフレッシュ処理を含む通常動作が起動される。
【００２５】
このような構成によれば、ユーザ命令追加等のためのシステムプログラム部分変更を一層簡単な操作で行わせることができる。
【００２６】
好ましい実施の形態では、システムプログラムメモリを構成する実装状態で書き換え可能な不揮発性メモリには、命令解読により生成される各命令機能実現プログラムの格納論理アドレスをその格納物理アドレスに変換するアドレス変換テーブル格納領域が設けられ、プログラム転送手段には、該アドレス変換テーブル格納領域の内容を転送後の各命令機能実現プログラムの格納アドレスに応じて更新する機能が含まれる。
【００２７】
これにより、他のシステムプログラムに影響を与えることなく、追加命令に相当する命令機能実現プログラムのみを選択的に書き換えることができる。
【００２８】
以上説明したいくつかの発明において、さらに好ましい実施の形態では、命令機能実現プログラムのシステムプログラムメモリへの転送に際しては、書き込み正常実行中、書き込み異常発生、書き込み正常終了の別を表示する表示手段が設けられる。
【００２９】
このような構成によれば、オペレータに対してシステムプログラム書き込み動作の進行状況を視覚的に確認させることができる。
【００３０】
【発明の実施の形態】
以下に、本発明のプログラマブルロジックコントローラの好適な実施の一形態を添付図面に従って詳細に説明する。
【００３１】
本発明が適用されたＰＬＣ全体のハードウェア構成を示すブロック図が図１に示されている。同図に示されるように、このＰＬＣ１は、ＣＰＵ１０１と、Ｉ／Ｏメモリ１０２と、ユーザプログラムメモリ１０３と、システムプログラムメモリ１０４と、ワークメモリ１０５と、Ｉ／Ｏインタフェース１０６と、入出力装置１０７と、コネクタ１０８と、メモリカード１０９と、インタフェース１１０と、ＤＩＰスイッチ１１１と、表示部１１２とを備えている。
【００３２】
ＣＰＵ１０１は、マイクロプロセッサを主体として構成されており、システムプログラムメモリ１０４に格納された各種のシステムプログラムを実行することにより、ＰＬＣとしての各種の機能を実現するものである。ここで、システムプログラムの実行により実現される機能の代表的なものとしては、ユーザプログラム実行機能、Ｉ／Ｏリフレッシュ機能、システムサービス機能などを挙げることができる。
【００３３】
Ｉ／Ｏメモリ１０２は、入出力装置１０７から取り込まれた入力データ並びに入出力装置１０７へと送り出すための出力データなどの格納領域として使用される。このＩ／Ｏメモリ１０２は、常時書き換え可能なＲＡＭで構成される。
【００３４】
ユーザプログラムメモリ１０３は、ユーザが所望する制御仕様に対応したユーザプログラムを記憶するメモリであり、記憶媒体としては、例えばＥＥＰＲＯＭやフラッシュＰＲＯＭなどで構成される。
【００３５】
システムプログラムメモリ１０４は、ＰＬＣ１に必要な各種の機能を実現するためのシステムプログラムが格納される。記憶媒体としては、ＰＲＯＭライタなどの機材でなければ書き換えることのできない通常のＰＲＯＭと、実装状態において容易に書き換えの可能な不揮発性メモリであるフラッシュメモリ（ＦＲＯＭ）とから構成されている。
【００３６】
そして、後述するように、通常のＰＲＯＭの側には、システムプログラムの中の固定的な部分が格納される一方、ＦＲＯＭの側には追加命令などに対応する命令機能実現プログラム並びに後述するアドレス変換テーブル（図６参照）が格納される。
【００３７】
ワークメモリ１０５は、ＣＰＵ１０１がシステムプログラムを実行するに際し、演算途中結果の記憶領域等として使用される。記憶媒体としては、書き換えが可能なＲＡＭが使用される。
【００３８】
入出力装置１０７は、外部入力機器（スイッチ、センサなど）から入力データを取り込むための入力装置と、外部出力機器（リレー、表示器など）に対して出力データを送出する出力装置とから構成されている。この入出力装置１０７は、Ｉ／Ｏインタフェース１０６を介して、ＰＬＣ１の内部バスに接続される。
【００３９】
コネクタ１０８は、ＰＬＣ１のハウジングに設けられたスロットに内蔵されるものであり、このコネクタ１０８には外部記憶媒体であるメモリカード１０９が着脱自在に装着される。メモリカード１０９には、追加命令に対応する命令機能実現プログラム並びに後述するアドレス変換テーブルが予め書き込まれている。この書き込み操作は、メーカー側あるいはベンダー側で行うことができる。
【００４０】
システムプログラムメモリ１０４に格納されたシステムプログラムを、ＣＰＵ１０１が実行することにより実現される、システム処理全体のフローチャートが図２に示されている。
【００４１】
同図において、図示しない電源スイッチの投入により処理が開始されると、まずイニシャル処理が実行されて、システムの動作に必要な各種フラグやレジスタの初期設定が行われる（ステップ２０１）。特に、この発明では、このイニシャル処理（ステップ２０１）において、システムプログラム部分変更処理が実行される。
【００４２】
イニシャル処理（ステップ２０１）が実行完了したならば、以後、ユーザプログラム実行処理（ステップ２０２）、Ｉ／Ｏリフレッシュ処理（ステップ２０３）、システムサービス処理（ステップ２０４）がサイクリックに実行される。
【００４３】
即ち、ユーザプログラム実行処理（ステップ２０２）では、ユーザプログラムメモリ１０３から各命令語を順次読み出して解読すると共に、その解読結果に応じて対応する命令機能実現プログラム（命令データ）を、システムプログラムメモリ１０４から読み出して実行する。
【００４４】
Ｉ／Ｏリフレッシュ処理（ステップ２０３）では、入出力装置１０７から取り込まれた入力データを、Ｉ／Ｏメモリ１０２の入力エリアに書き込むと共に、Ｉ／Ｏメモリ１０２の出力エリアから読み出した出力データを、入出力装置１０７の出力端子へと送出する処理を実行する。
【００４５】
システムサービス処理（ステップ２０４）では、図示しないサポートツールなどと交信を行ったり、あるいは他のＰＬＣやリモートＩ／Ｏなどと交信することにより、各種のシステムサービスを実行する。
【００４６】
イニシャル処理（ステップ２０１）で実行されるシステムプログラム部分変更処理の詳細が図３のフローチャートに示されている。
【００４７】
同図において、処理が開始されると、インタフェース１１０を介して、ＤＩＰスイッチ１１１の状態が読み込まれる（ステップ３０１）。このＤＩＰスイッチ１１１は、ＰＬＣ１の動作を、プログラム部分変更モードと通常モードとに設定可能になされている。
【００４８】
ＤＩＰスイッチ設定読み込み処理（ステップ３０１）に続いて、動作モード判定処理が実行される（ステップ３０２）。ここで、システムプログラム部分変更モードと判定されると（ステップ３０２ＹＥＳ）、外部記憶媒体であるメモリカード１０９から変更プログラムを読み込み（ステップ３０３）、これをシステムプログラムメモリ１０４を構成するＦＲＯＭへと書き込む処理（ステップ３０４）を実行することによって、メモリカード１０９からシステムプログラムメモリ１０４のＦＲＯＭ領域へと、変更プログラムを転送する。この変更プログラムには、命令機能実現プログラムＰＲ１〜ＰＲｎ（図７参照）並びに論理／物理アドレス変換テーブル（図６参照）が含まれている。従って、後述するように、変更プログラムの更新を行うと、命令機能実現プログラムＰＲ１〜ＰＲｎのみならず、論理／物理アドレス変換テーブルについても自動的に更新される。
【００４９】
以上を繰り返す間に、全プログラムの書き込みが完了したならば（ステップ３０８）、処理を終了する。
【００５０】
変更プログラム転送処理の間に、書き込み異常が発生すると（ステップ３０５ＮＯ）、異常発生表示が行われる（ステップ３０７）。書き込みが正常である場合には（ステップ３０５ＹＥＳ）、正常実行中表示が行われる（ステップ３０６）。書き込みが全て完了したならば（ステップ３０８ＹＥＳ）、書き込み正常終了表示が行われる（ステップ３０９）。
【００５１】
表示部１１２の一例が図９に示されている。この例では、３個の発光ダイオード（ＬＥＤ１，ＬＥＤ２，ＬＥＤ３）を使用して、正常実行中表示、異常発生表示、正常終了表示を行うようにしている。
【００５２】
すなわち、正常実行表示は、図９（ａ）に示されるように、ＬＥＤ１とＬＥＤ３とを同時点灯することで行われる。
【００５３】
異常発生表示は、図９（ｂ）に示されるように、ＬＥＤ１を点滅させることにより行われる。
【００５４】
正常終了表示は、図９（ｃ）に示されるように、３個のＬＥＤ（ＬＥＤ１，ＬＥＤ２，ＬＥＤ３）を同時点灯することで行われる。
【００５５】
ユーザプログラム実行処理の詳細フローチャートが図４に示されている。
【００５６】
同図において、処理が開始されると、プログラムカウンタの値を初期設定した後（ステップ４０１）、プログラムカウンタで指定される命令をユーザプログラムメモリ１０３から読み出し（ステップ４０２）、図５に示される命令／論理アドレス変換テーブルを参照することで、各命令（ＯＰ１〜ＯＰｎ）に対応する命令プログラム（命令機能実現プログラム）（ＰＲ１〜ＰＲｎ）の格納エリアの先頭論理アドレス（ＬＡＤ１１〜ＬＡＤｎ１）並びに末尾論理アドレス（ＬＡＤ１２〜ＬＡＤｎ２）が取得される（ステップ４０３）。
【００５７】
続いて、取得された先頭，末尾の論理アドレスに基づいて、図６に示される論理／物理アドレス変換テーブルを参照することにより、該当する先頭，末尾の物理アドレスが求められる（ステップ４０４）。
【００５８】
図７のメモリマップに示されるように、こうして求められた物理アドレスＡＤ１１〜ＡＤｎ１，ＡＤ１２〜ＡＤｎ２）は、実際に各命令（ＯＰ１〜ＯＰｎ）に対応する命令プログラム（命令機能実現プログラムの意）（ＰＲ１〜ＰＲｎ）の格納アドレスに相当する。
【００５９】
その後、最終的に得られた先頭，末尾の物理アドレスに基づいて、該当する命令プログラム（ＰＲ１〜ＰＲｎ）を読み出して実行することにより、該当する命令機能が実現される（ステップ４０５）。
【００６０】
こうして、ユーザプログラムの最後に記述されたＥＮＤ命令が検出されるまで（ステップ４０６ＮＯ）、プログラムカウンタを歩進しては（ステップ４０７）、以上の処理が繰り返され（ステップ４０２〜４０５）、ＥＮＤ命令の検出と共に（ステップ４０６ＹＥＳ）、処理は終了する。
【００６１】
次に、以上説明した命令／論理アドレス変換テーブル（図５参照）、論理／物理アドレス変換テーブル（図６参照）、命令プログラム領域（図７参照）の配置について説明する。
【００６２】
命令／論理アドレス変換テーブル（図５参照）は、システムプログラムメモリ１０４を構成する記録媒体の中で、実装状態では書き換え不能なＰＲＯＭ領域に格納される。又、このＰＲＯＭ領域には、図７に示される命令プログラムの中で、固定的な命令プログラム部分（ＰＲ１〜ＰＲｍ）が格納される。この例では、命令機能の追加を意図しているため、固定的な命令プログラム部分の容量は命令プログラム全体の約７０〜８０％程度とされている。
【００６３】
これに対して、図７に示される命令プログラムの中で、変更可能な命令プログラム部分（ＰＲｍ＋１〜ＰＲｎ）については、システムプログラムメモリ１０４のＦＲＯＭ領域に格納される。左記の例では、変更可能な命令プログラム部分の容量は命令プログラム全体の約２０〜３０％程度とされている。又、このＦＲＯＭ領域には、図６に示される論理／物理アドレス変換テーブルも格納される。
【００６４】
そのため、図７に示される命令プログラム領域の一部を書き換えるような場合には、その書き換え後の新たな命令プログラムの物理アドレスに応じて、図６に示される論理／物理アドレス変換テーブルが更新される。
【００６５】
このようにして、命令プログラム領域の構成を変更すると同時に、論理／物理アドレス変換テーブル（図６参照）を更新することで、システムプログラム１０４のＰＲＯＭ領域に格納された命令／論理アドレス変換テーブル（図５参照）については変更の必要がなくなる。すなわち、新規命令機能を追加するために、図７に示される命令プログラム領域の一部を変更したとしても、図６に示される論理／物理アドレス変換テーブルをそれに合わせて更新することで、ＰＲＯＭ領域に格納された命令／論理アドレス変換テーブル（図５参照）については変更の必要がなくなり、システムプログラム全体の実行に支障を来さないのである。
【００６６】
部分変更におけるシステムプログラム書き換え範囲のメモリマップが図８に示されている。同図から明らかなように、この実施形態によれば、システムプログラム全体の中で、その一部のみを書き換えることができ、また書き換えた後にあっても、他のシステムプログラム部分との整合性を維持することができる。なお、同図において、書き替え対象エリアに続く、『変化なし』と記されたエリアは、命令機能実現プログラム以外の別のシステムプログラムが格納された領域である。
【００６７】
従って、この実施形態によれば、図１０（ａ）に示されるように、複数の既存命令（ＯＰ１〜ＯＰｎ）を用いて記述されたユーザプログラムを、図１０（ｂ）に示されるように、１個の新規カスタマイズ命令（ＯＰＰ１）として記述することが可能となり、各ユーザに固有なノウハウがユーザプログラムに表れているような場合、この部分を１個の新規カスタマイズ命令（ＯＰＰ１）と置き換えることによって、ノウハウの漏洩を回避することができる。
【００６８】
以上説明したように、この実施形態によれば、ユーザにおいてシステムプログラム変更・命令追加などのカスタマイズの必要性が生じた場合、メーカー側若しくはベンダー側においては、メモリカード１０９などの外部記憶媒体にカスタマイズ対応用プログラムデータを書き込んで、ユーザに配布するだけで済み、ユーザ側ではこのメモリカード１０９を所定のスロットに装着してコネクタ１０８と接続し、ＤＩＰスイッチ１１１をプログラム部分変更モードに設定して、図示しない電源スイッチを投入すれば、図３に示されるシステムプログラム部分変更処理が実行されて、メモリカード１０９に格納されたカスタマイズ対応用プログラムデータはシステムプログラムメモリ１０４のＦＲＯＭ領域へと自動的に転送格納される。同時に、図６に示される論理／物理アドレス変換テーブルが更新されることによって、システムプログラムメモリ全体の整合性が保たれる。
【００６９】
そのため、ユーザノウハウを命令という形で隠蔽しやすくなると共に、従来ラダー言語で記述していた複数の処理を１つの命令として作成することで、処理の高速化を図ることができる。又、システムプログラムへのデータ書き込み機材は不要であり、そのための準備作業も含めコスト・工数の削減を図ることができる。さらに、現状のシステムプログラムと追加部分を独立させる仕組みを実現したことで、追加／変更部分の開発のみでカスタマイズ対応用プログラムデータが作成可能となり、開発工数を削減することができ、加えてカスタマイズデータが既存システムプログラムにＡＤＤ−ＯＮされるため、カスタマイズデータそのものを直接管理可能となる。すなわち、既存システムプログラムのバージョンを意識する必要がなくなる。
【００７０】
尚、以上の実施形態においては、ユーザ命令の追加のために本発明を実施したが、本発明のシステムプログラム部分変更処理はこれに限定されるものではなく、ユーザ命令全体の差し替え、或いは任意の機能のシステムプログラムの部分変更にも応用することが可能である。
さらに、以上の実施形態では、書き込まれるべきシステムプログラムそれ自体に、命令機能実現プログラムの他に、論理／物理アドレス変換テーブルも含ませて、システムプログラムの書き替え処理により、それに関連する論理／物理アドレス変換テーブルを自動的に更新するように構成したが、これはアドレス変換テーブル更新の一態様に過ぎないものである。すなわち、書き込まれるべきシステムプログラムそれ自体には、命令機能実現プログラムのみを含ませておき、その書き替え後の物理アドレスを別途上記の変換テーブルに書き込むことによっても、アドレス変換テーブルの更新を行うことができる。
【００７１】
【発明の効果】
以上の説明で明らかなように、この発明によれば、ＰＲＯＭライタやデバイス用のアダプタなどの特別な機材を要することなく、簡単な操作でシステムプログラム変更・命令追加／カスタマイズを可能としたプログラマブルロジックコントローラを提供することができる。
【図面の簡単な説明】
【図１】ＰＬＣ全体のハードウェア構成を示すブロック図。
【図２】システム処理全体のフローチャート。
【図３】システムプログラム部分変更処理のフローチャート。
【図４】ユーザプログラム実行処理の詳細フローチャート。
【図５】命令／論理アドレス変換テーブルの説明図。
【図６】論理／物理アドレス変換テーブルの説明図。
【図７】命令プログラム領域のメモリマップ。
【図８】部分変更におけるシステムプログラム書き換え範囲のメモリマップ。
【図９】表示部の動作態様を示す説明図。
【図１０】既存命令で記述されたユーザプログラムと新規カスタマイズ命令で記述されたユーザプログラムとを比較して示す説明図。
【図１１】従来ＰＬＣのユーザプログラムメモリの内容を示すメモリマップ。
【符号の説明】
１      ＰＬＣ
１０１  ＣＰＵ
１０２  Ｉ／Ｏメモリ
１０３  ユーザプログラムメモリ
１０４  システムプログラムメモリ
１０５  ワークメモリ
１０６  Ｉ／Ｏインタフェース
１０７  入出力装置
１０８  コネクタ
１０９  メモリカード
１１０  インタフェース
１１１  ＤＩＰスイッチ
１１２  表示部
【図１】
0003659399.tif 000002
【図２】
0003659399.tif 000003
【図３】
0003659399.tif 000004
【図４】
0003659399.tif 000005
【図５】
0003659399.tif 000006
【図６】
0003659399.tif 000007
【図７】
0003659399.tif 000008
【図８】
0003659399.tif 000009
【図９】
0003659399.tif 000010
【図１０】
0003659399.tif 000011
【図１１】
0003659399.tif 000012