(57)【特許請求の範囲】
【請求項１】
電源投入後、最初のユーザプログラム一巡実行処理に先立って、１サイクルオンフラグをオンすると共に、ユーザプログラムの一巡実行処理後、次のユーザプログラム一巡実行処理に先だって、前記１サイクルオンフラグをオフすることにより、ユーザプログラムの最初の一巡実行処理の場合に限り、ユーザプログラム上で使用可能な１サイクルオンフラグがオン状態となるようにしたプログラマブルロジックコントローラにおいて、
差し替え用のユーザプログラムをあらかじめ記憶させた差し替え用プログラム記憶手段と、
ユーザプログラム全体の差し替えが指示されたとき、現在のユーザプログラムの全体を前記差し替え用プログラム記憶手段に記憶されたユーザプログラムにより差し替えるプログラム全差し替え実行手段と、
前記プログラム全差し替え実行手段によりユーザプログラムの全差し替えが完了した後、該差し替え後のユーザプログラムの最初の一巡実行処理に先立って、前記１サイクルオンフラグを強制的にオンすると共に、ユーザプログラムの一巡実行処理後、次のユーザプログラム一巡実行処理に先だって、前記１サイクルオンフラグを強制的にオフさせる１サイクルオンフラグ強制操作手段と、
を具備し、
それにより、差し替え用プログラム記憶手段に記憶される差し替え用のユーザプログラムの先頭に、１サイクルオンフラグ（Ｆ１）を起動条件としてユーザプログラム初期値設定処理（ＰＲ１）を記述しておくことにより、差し替え用プログラムの起動時においても初期値設定処理が１サイクルに限り実行されるようにした、ことを特徴とするプログラマブルロジックコントローラ。
【請求項２】
ユーザプログラムの全差し替えを指示するためのプログラム全差し替え指示手段を有し、該プログラム全差し替え指示手段が、ユーザプログラム上で使用可能な差し替え元ファイル名指定付の特定出力命令と、該特定出力命令の解読に応答して所定のプログラム差し替え開始フラグをオンさせるフラグ操作手段と、を含むと共に、
プログラム差し替え実行手段が、前記プログラム差し替え開始フラグがオンされたとき、現在のユーザプログラムの全体を前記差し替え用プログラム記憶手段に記憶されたユーザプログラムの内で、前記特定出力命令に付された差し替え用ファイル名で指定の差し替え用ユーザプログラムにより差し替える処理を含む、請求項１に記載のプログラマブルロジックコントローラ。
【請求項３】
通常時には、ユーザプログラム一巡実行処理と、Ｉ／Ｏリフレッシュ処理と、周辺サービス処理とを含む一連の処理を繰り返し実行すると共に、プログラム差し替え時には、ユーザプログラム一巡実行処理の途中からプログラム差し替え処理へと移行した後、プログラム差し替え処理と、Ｉ／Ｏリフレッシュ処理と、周辺サービス処理とを含む一連の処理を繰り返し実行するものであり、かつユーザプログラム実行処理を開始するに際しては、ユーザプログラムの毎一巡実行処理の開始時に所定の監視タイマに既定の監視時間をセットすると共に、前記一連の処理の実行中に監視タイマがタイムアップしたとき、異常と認識するように構成されており、
ユーザプログラムの実行中に特定出力命令が解読されたことにより、プログラム差し替え処理を開始するに際しては、プログラム差し替え処理が完了するまでの間、サイクルタイムの監視を停止するように構成される、
請求項２に記載のプログラマブルロジックコントローラ。
【請求項４】
プログラム差し替え処理を開始するに先だって、Ｉ／Ｏメモリの内容をクリアするか又は保存するかを指示するための差し替え時Ｉ／Ｏメモリ状態指示手段と、
前記差し替え時Ｉ／Ｏメモリ状態指示手段の指示内容に応じて、プログラム差し替え時におけるＩ／Ｏメモリの状態を決定する差し替え時Ｉ／Ｏメモリ状態決定手段と、
を具備する請求項１に記載のプログラマブルロジックコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、運転中におけるユーザプログラムの差し替えを可能としたプログラマブルロジックコントローラに係り、特に、ユーザプログラムの全差し替えを可能とすると共に、差し替え後のユーザプログラムを電源投入時と同様な条件で起動できるようにしたプログラマブルロジックコントローラに関する。
【０００２】
【従来の技術】
運転中におけるユーザプログラムの差し替えを可能としたプログラマブルロジックコントローラ（以下、ＰＬＣと言う）としては、幾つかの例が知られている。このようなＰＬＣの構成が図６〜図９により説明されている。
【０００３】
すなわち、図６は従来ＰＬＣの通常時処理を示すフローチャート、図７は従来ＰＬＣのプログラム差し替え時処理を示すフローチャート、図８は従来ＰＬＣの監視タイマ処理のフローチャート、図９は従来ＰＬＣのユーザプログラム構成を示すラダー図である。
【０００４】
図６に示されるように、電源投入（Ｐｏｗｅｒ  ｏｎ）により処理が開始されると、まず最初に電源ＯＮ時処理が実行される（ステップ６０１）。この電源ＯＮ時処理（ステップ６０１）では、自己診断処理などの電源ＯＮ時に必要な各種の処理を実行する。
【０００５】
続くＩ／Ｏメモリクリア処理（ステップ６０２）では、図示しないＩ／Ｏメモリの内容（入力データ、出力データ、各種のフラグやカウンタなど）を全てクリアする（ステップ６０２）。
【０００６】
続く運転開始時処理（ステップ６０３）では、運転開始時に必要なシステム上の各種のフラグやレジスタの初期設定を行うと共に、後述する１サイクルＯＮフラグ（Ｆ１）をセット（オン）する。
【０００７】
その後、サイクルタイムの監視時間に設定値（例えば数１０ｍｓ）をセットした後（ステップ６０４）、ユーザプログラム実行処理を開始する。
【０００８】
ユーザプログラム部分差し替え命令を含む従来ＰＬＣのユーザプログラム構成が図９のラダー図に示されている。同図に示されるように、このユーザプログラムには、ユーザプログラム初期値設定処理（ＰＲ１）と、固定部分のユーザプログラム（ＰＲ２）と、差し替え元ファイル名付きのプログラム差し替え命令（ＦＩＬＰ）と、差し替え対象部分であるユーザプログラム（ＰＲ３）と、ユーザプログラムの末尾を示すエンド命令（ＥＮＤ）とが含まれている。
【０００９】
ここで大切なことは、ユーザプログラムの先頭に記述されたユーザプログラム初期値設定処理（ＰＲ１）は、先ほど説明した、運転開始時１サイクルＯＮフラグ（Ｆ１）を起動条件として実行されることである。後述するように、１サイクルＯＮフラグ（Ｆ１）は、ユーザプログラムの一巡実行サイクルに限りオンとなる。
【００１０】
又、この例では、プログラム差し替え命令（ＦＩＬＰ）は、入出力装置に接続された外部スイッチ（ＳＷ１）を起動条件として実行される。
【００１１】
このようなプログラム差し替え命令（ＦＩＬＰ）を含むユーザプログラムが実行されると、電源投入後、最初のユーザプログラム一巡実行処理では、１サイクルＯＮフラグ（Ｆ１）がオンすることによって、ユーザプログラム初期値設定処理（ＰＲ１）が実行され、その後固定部分のユーザプログラム（ＰＲ２）並びに差し替え対象部分のユーザプログラム（ＰＲ３）が繰り返し実行される。この状態において、外部スイッチ（ＳＷ１）がオンされると、プログラム差し替え命令（ＦＩＬＰ）が実行される結果、プログラム差し替え命令（ＦＩＬＰ）とエンド命令（ＥＮＤ）とで挟まれて存在する差し替え対象部分であるユーザプログラム（ＰＲ３）は、プログラム差し替え命令（ＦＩＬＰ）に付された差し替え元ファイル名で指定されるユーザプログラム（図示せず）と自動的に差し替えられることとなる。
【００１２】
図６に戻って、この間の処理を詳細に説明すると、先ず監視時間に設定値をセットした後（ステップ６０４）、ユーザプログラムカウンタをプログラム先頭にセットし（ステップ６０５）、その後プログラムカウンタの値を歩進させながら（ステップ６０９）、図示しないユーザプログラムより各命令を順次に読み出しこれを解読実行する（ステップ６０６）。
【００１３】
先に説明したように、電源投入後における最初のユーザプログラム一巡実行処理に際しては、運転開始時処理（ステップ６０３）において１サイクルＯＮフラグがセットされているため、ユーザプログラム初期値設定処理（ＰＲ１）が実行される（図９参照）。
【００１４】
その後、ユーザプログラム初期値設定処理（ＰＲ１）に続くユーザプログラム（ＰＲ２，ＰＲ３）が順次に実行されていき（ステップ６０６）、ＥＮＤ命令の解読実行により最終命令と判定されると（ステップ６０８ＹＥＳ）、１サイクルＯＮフラグ（Ｆ１）はリセット（オフ）される（ステップ６１０）。
【００１５】
その後、公知のＩ／Ｏリフレッシュ処理（ステップ６１１）並びに周辺サービス処理（ステップ６１２）を経由した後、以上の処理（ステップ６０４〜６１２）が繰り返されるわけである。
【００１６】
これに対して、ユーザプログラムの実行中に、プログラム差し替え命令（ＦＩＬＰ）が実行されると（ステップ６０７ＹＥＳ）、図７に示されるプログラム差し替え時処理が実行される。
【００１７】
図７に示されるプログラム差し替え時処理では、監視時間に設定値（数１０ｍｓ）をセットした後（ステップ７０１）、プログラム差し替え命令（ＦＩＬＰ）に付された差し替え元ファイル名に基づいてプログラム差し替え処理（ステップ７０２）を実行する。このプログラム差し替え処理（ステップ７０２）は、Ｉ／Ｏリフレッシュ処理（ステップ７０３）並びに周辺サービス処理（ステップ７０４）を実行しつつ、何回かに分けて時分割的に行われる。その間、プログラム差し替え処理（ステップ７０２）、Ｉ／Ｏリフレッシュ処理（ステップ７０３）、周辺サービス処理（ステップ７０４）からなる一連の処理の開始毎に、監視時間に設定値が再セットされる（ステップ７０６）。
【００１８】
このようにしてプログラム差し替え処理が完了すると（ステップ７０５ＹＥＳ）、再び図６のフローチャートに戻って、ユーザプログラムの先頭からユーザプログラムの実行は開始される。
【００１９】
ここで重要なことは、以後のユーザプログラム一巡実行処理では、運転開始時処理（ステップ６０３）は、スキップされるため、１サイクルＯＮフラグはリセット状態（オフ状態）に維持される。そのため、ユーザプログラムの差し替えが完了したとしても、その起動に際して、ユーザプログラム初期値設定処理（ＰＲ１）が実行されることはない。このような制御手順を採用したのは、従来のプログラム差し替え命令（ＦＩＬＰ）は、プログラムの全体差し替えを意図するものではなく、プログラム差し替え命令（ＦＩＬＰ）とエンド命令（ＥＮＤ）で挟まれたユーザプログラム（ＰＲ３）についてのみの部分差し替えを意図したものであるからである。
【００２０】
尚、図８に示されるように、ステップ６０４，７０１，７０６でセットされた監視時間は、１０μｓｅｃ単位の割込みにより、順次減算されていき（ステップ８０１）、その減算結果が零若しくは零以下になると（ステップ８０２ＹＥＳ）、システム異常処理が実行される（ステップ８０３）。
【００２１】
【発明が解決しようとする課題】
しかしながら、このような従来の運転時ユーザプログラム差し替え処理を可能としたＰＬＣにあっては、電源投入後、最初のユーザプログラム一巡実行処理に先立って、１サイクルＯＮフラグをオンすると共に（ステップ６０３）、ユーザプログラムの一巡実行処理後、次のユーザプログラム一巡実行処理に先立って、前記１サイクルＯＮフラグをオフすることにより（ステップ６１０）、最初のユーザプログラム一巡実行処理の場合に限り、１サイクルＯＮフラグ（Ｆ１）がオン状態となるように構成したため、ユーザプログラムの全差し替えを意図すべく、プログラム差し替え命令（ＦＩＬＰ）をユーザプログラムの先頭に挿入したとしても、ユーザプログラム初期値設定処理（ＰＲ１）を実行させることができず、結局、プログラム全差し替えを行うことができないという問題点が指摘されている。
【００２２】
さらに、サイクルタイム監視用の監視時間は、通常のユーザプログラム実行処理時もユーザプログラム差し替え処理時も変わりがないため、ユーザプログラム差し替え処理時に誤ってシステム異常が発生することを回避するため、プログラム差し替え処理時に先立って、サポートツールなどを介して、監視時間を長めに若しくは監視処理を停止させるなどの調整を行うことが必要となり、使い勝手が悪いという問題点も指摘されている。
【００２３】
この発明は、このような従来の問題点に着目されてなされたものであり、その目的とするところは、運転中におけるユーザプログラムの全差し替えを可能としたプログラマブルロジックコントローラを提供することにある。
【００２４】
又、この発明の他の目的とするところは、ユーザプログラムの運転中における全差し替えに際して、負荷の状態をオフ状態若しくはそれまでの状態のいずれにも設定可能なプログラマブルロジックコントローラを提供することにある。
【００２５】
さらに、この発明の他の目的は、プログラム差し替え処理の開始に先立って、サイクルタイム監視時間の変更操作などを不要とした使い勝手の良好なプログラマブルロジックコントローラを提供することにある。
【００２６】
本発明のプログラマブルロジックコントローラは、電源投入後、最初のユーザプログラム一巡実行処理に先立って、１サイクルオンフラグをオンすると共に、ユーザプログラムの一巡実行処理、次のユーザプログラム一巡実行処理に先だって、前記１サイクルオンフラグをオフすることにより、最初のユーザプログラム一巡実行処理の場合に限り、ユーザプログラムで使用可能な１サイクルオンフラグがオン状態となるようにした構成を前提としている。
【００２７】
以上の前提に加えて、本発明のプログラマブルロジックコントローラは、差し替え用プログラム記憶手段と、プログラム全差し替え実行手段と、１サイクルオンフラグ強制操作手段とを新たに設けている。
【００２８】
差し替え用プログラム記憶手段は、差し替え用のユーザプログラムを予め記憶したものである。好ましい実施の形態では、差し替え用プログラム記憶手段は、着脱可能な外部記憶媒体で構成することができる。外部記憶媒体としては、例えばフラッシュメモリカードなどを使用することができる。差し替え用のユーザプログラムは、例えば、メーカーサイドあるいはベンダーサイドなどで用意することができる。
【００２９】
プログラム全差し替え実行手段は、プログラム全差し替え指示手段によりユーザプログラム全体の差し替えが指示されたとき、現在のユーザプログラムの全体を前記差し替え用ユーザプログラム記憶手段に記憶されたユーザプログラムにより差し替える。
【００３０】
好ましい実施の形態では、プログラム全体の書き替えを指示する指示手段としては、ユーザプログラム上で使用可能な差し替え元ファイル名指定付きの特定出力命令と、該特定命令の解読に応答して所定のプログラム差し替え開始フラグをオンさせるフラグ操作手段とを含むことができる。好ましい実施の形態では、プログラム差し替え実行手段は、プログラム差し替え開始フラグがオンされたとき、現在のユーザプログラムの全体を前記差し替え用プログラム記憶手段に記憶されたユーザプログラムのうちで、前記特定出力命令に付された差し替え用ファイル名で指定の差し替え用ユーザプログラムにより差し替える処理を含むことができる。
【００３１】
１サイクルオンフラグ強制操作手段は、プログラム全差し替え実行手段によりユーザプログラムの全差し替えが完了した後、該差し替え後のユーザプログラムの最初の一巡実行処理に先立って、前記１サイクルオンフラグを強制的にオンすると共に、ユーザプログラムの一巡実行処理後、次のユーザプログラム一巡実行処理に先だって、前記１サイクルオンフラグをオフさせる。
【００３２】
以上のプログラマブルロジックコントローラのさらに好ましい実施の形態では、通常時には、ユーザプログラム一巡実行処理と、Ｉ／Ｏリフレッシュ処理と、周辺サービス処理とを含む一連の処理を繰り返し実行すると共に、プログラム差し替え時には、ユーザプログラム一巡実行処理の途中からプログラム差し替え処理へと移行した後、プログラム差し替え処理と、Ｉ／Ｏリフレッシュ処理と、周辺サービス処理とを含む一連の処理を繰り返し実行するものであり、且つユーザプログラム実行処理を開始するに際しては、ユーザプログラムの毎一巡処理の開始時に所定の監視タイマに規定の監視時間をセットすると共に、前記一連の処理の実行中に関しタイマがタイムアップしたとき、異常と認識するように構成されていることを前提とする。
【００３３】
以上の前提の下に、このプログラマブルロジックコントローラでは、さらに、ユーザプログラムの実行中に特定出力命令が解読されたことにより、プログラム差し替え処理を開始するに際しては、プログラム差し替え処理が完了するまでの間、前記監視タイマによるサイクルタイムの監視を停止するように構成することができる。
【００３４】
さらに、以上のプログラマブルロジックコントローラのさらに好ましい実施の形態では、プログラム差し替え処理を開始するに先立って、Ｉ／Ｏメモリの内容をクリアするか又は保存するかを指示するための差し替え時Ｉ／Ｏメモリ状態指示手段と、前記差し替え時Ｉ／Ｏメモリ状態指示手段の指示内容に応じて、プログラム差し替え時におけるＩ／Ｏメモリの状態を決定する差し替え時Ｉ／Ｏメモリ状態決定手段を具備することができる。
【００３５】
以上のプログラマブルロジックコントローラのさらに好ましい実施の形態では、差し替え時Ｉ／Ｏメモリ状態指示手段が、ユーザプログラム上で使用可能な特定出力命令と、該特定出力命令の解読に応答して所定の負荷クリア指定フラグをオンさせるフラグ操作手段とを含むと共に、差し替え時Ｉ／Ｏメモリ状態決定手段が、前記負荷クリア指定フラグがオンされたとき、プログラム差し替え処理が開始するに先立って、Ｉ／Ｏメモリの内容をクリアするか又は保存するかを決定する処理を含むことができる。
【００３６】
そして、以上説明した本発明によれば、ユーザプログラムの全差し替えが完了した後、該差し替え後のユーザプログラムの最初の一巡実行処理に先立って、１サイクルオンフラグを強制的にオンさせるようにしたため、差し替え完了後の新たなユーザプログラムの起動に際しては、そのユーザプログラムの先頭に通常１サイクルオンフラグを起動条件として記述されているユーザプログラム初期値設定処理を最初の一巡実行処理に限り実行させることができ、運転中でありながらも、電源投入直後と同様にユーザプログラムを取り扱うことができる。
【００３７】
又、本発明によれば、プログラム差し替え処理に際して、負荷をオフ状態とするか又は保持状態とするかを予め選択設定することができ、制御負荷の性質に応じて最適な対応が可能となる。
【００３８】
さらに、この発明によれば、プログラム差し替え処理中にあっては、サイクルタイム監視は自動的に停止されることから、プログラム差し替え処理中に誤ってシステム異常が発生することがなくなる。
また、本発明のプログラマブルロジックコントローラのプログラム差し替え方法は、ユーザプログラムの実行中にプログラム全差し替え条件が成立したとき、現在のユーザプログラムの全体を予め規定された別のユーザプログラムにより差し替えると共に、該差し替えに続いて、差し替え後の新たなユーザプログラムを実行するに際しては、これを運転開始時と同一の条件で起動することを特徴とするものである。
【００３９】
【発明の実施の形態】
以下に、本発明に係るプログラマブルロジックコントローラの実施の一形態を添付図面に従って詳細に説明する。
【００４０】
図１は本発明に係るＰＬＣ全体のハードウェア構成を示すブロック図、図２は本発明ＰＬＣの通常時処理を示すフローチャート、図３は本発明ＰＬＣのプログラム差し替え時処理を示すフローチャート、図４は本発明ＰＬＣの監視タイマ処理のフローチャート、図５は本発明ＰＬＣのユーザプログラム構成を示すラダー図である。
【００４１】
まず、図１を参照して、本発明の一実施形態に係るＰＬＣ全体のハードウェア構成を説明する。
【００４２】
同図に示されるように、このＰＬＣ１は、ＣＰＵ１０１と、Ｉ／Ｏメモリ１０２と、ユーザプログラムメモリ１０３と、システムプログラムメモリ１０４と、パラメータメモリ１０５と、ワークメモリ１０６と、Ｉ／Ｏインタフェース１０７と、入出力装置１０８と、インタフェース（物理的にはコネクタに相当する）１０９と、フラッシュメモリカード１１０とを備えている。
【００４３】
ＣＰＵ１０１はマイクロプロセッサを主体として構成されており、システムプログラムメモリ１０４に格納された各種のシステムプログラムを実行することにより、ＰＬＣとしての各種の機能を実現する。代表的な機能としては、当業者によく知られているように、ユーザプログラム実行処理、Ｉ／Ｏリフレッシュ処理、周辺サービス処理などである。
【００４４】
Ｉ／Ｏメモリ１０２は、ユーザプログラムの実行に必要な入力データ並びにユーザプログラムの実行結果である出力データなどを格納するものであり、書き換え可能なＲＡＭで構成されている。
【００４５】
ユーザプログラムメモリ１０３は、ユーザ側の制御仕様に対応するユーザプログラムを格納するものであり、記憶媒体としては、プログラムの全差し替えを容易とするために、実装状態において書き換えが容易なフラッシュメモリ（ＦＲＯＭ）が採用されている。
【００４６】
システムプログラムメモリ１０４はＰＬＣ本来の機能を実現するための各種のシステムプログラムを格納するものであり、その記憶媒体としては、ＥＥＰＲＯＭやＦＲＯＭ等の不揮発性メモリが採用されている。
【００４７】
パラメータメモリ１０５は、ユーザプログラム並びにシステムプログラムの実行に際して必要な各種のパラメータを記憶するものである。
【００４８】
ワークメモリ１０６は、ＣＰＵ１０１における演算の際における途中結果の格納領域などとして使用される。
【００４９】
入出力装置１０８は、外部入出力機器（リレー、スイッチなど）に接続されるものであり、この例ではプログラム全差し替え指示手段を構成するスイッチＳＷ１が接続されている。
【００５０】
インタフェース１０９は、ＰＬＣの図示しないハウジングに設けられたカードスロットに内蔵されたものであり、このインタフェース１０９には外部記憶媒体であるフラッシュメモリカード１１０が着脱可能に装着される。フラッシュメモリカード１１０には、差し替え用のユーザプログラムが予め記憶されている。フラッシュメモリカード１１０に対する差し替え用プログラムの書き込みは、例えばメーカーサイドあるいはベンダーサイドで行うことができる。つまり、ＰＬＣのユーザは、メーカーやベンダーから提供されたフラッシュメモリカード１１０をカードスロットを介してインタフェース１０９に装着した後、スイッチＳＷ１をオンさせるだけで、ユーザプログラムの運転中における全差し替え動作を自動的に行なうことができる。
【００５１】
次に、本発明ＰＬＣの通常時処理を示すフローチャートが図２に示されている。同図に示されるように、電源投入（Ｐｏｗｅｒ  ｏｎ）により処理が開始されると、先ほど説明した従来例と同様にして、電源ＯＮ時処理（ステップ２０１）並びにＩ／Ｏメモリクリア処理（ステップ２０２）が実行され、その後運転開始時処理（ステップ２０３）において、１サイクルＯＮフラグ（Ｆ１）がセット（オン）される。
【００５２】
その後、先に説明した従来例と同様に、監視時間に設定値（例えば数１０ｍｓ）をセットした後（ステップ２０４）、後述するプログラム差し替え開始フラグ（Ｆ２）がＯＦＦであることを条件として（ステップ２０５ＹＥＳ）、ユーザプログラム実行処理（ステップ２０６，２０７）、Ｉ／Ｏリフレッシュ処理（ステップ２０８）、周辺サービス処理（ステップ２０９）を順次に実行する。このとき、ユーザプログラム実行処理（ステップ２０７）の最後では、先に説明した１サイクルＯＮフラグ（Ｆ１）をリセット（オフ）する。
【００５３】
すなわち、電源投入後、最初のユーザプログラム一巡実行処理に先だって、１サイクルＯＮフラグ（Ｆ１）を運転開始時処理でオンすると共に（ステップ２０３）、ユーザプログラムの一巡実行処理を、次のユーザプログラム一巡実行処理に先だって、前記１サイクルＯＮフラグ（Ｆ１）をオフすることにより（ステップ２０７）、最初のユーザプログラム一巡実行処理の場合に限り、１サイクルＯＮフラグ（Ｆ１）がオン状態となるようにしている。その後、２回目以降の一巡実行処理に際しては、以上の処理（ステップ２０４〜２０９）が繰り返される。
【００５４】
ユーザプログラム全差し替え処理を含む本発明ＰＬＣのユーザプログラム構成の一例を示すラダー図が図５に示されている。
【００５５】
同図に示されるように、このユーザプログラムには、ユーザプログラム初期値設定処理（ＰＲ１）と、本体部分であるユーザプログラム（ＰＲ４）と、プログラム差し替え指示用の特定出力命令ＯＰ１と、負荷クリア指定用の特定出力命令ＯＰ２が含まれている。
【００５６】
又、従来例と同様にして、ユーザプログラム初期値設定処理（ＰＲ１）は、１サイクルＯＮフラグ（Ｆ１）を起動条件として実行される。
【００５７】
又、プログラム差し替え開始フラグ（Ｆ２）をオンさせるための特定出力命令（ＯＰ１）と、負荷クリア指定フラグ（Ｆ３）をオンさせるための特定出力命令（ＯＰ２）についても、外部スイッチＳＷ１を起動条件として実行される。
【００５８】
図５のユーザプログラムを前提として、図２のフローチャートにおけるユーザプログラム実行処理（ステップ２０７）を説明すると、先に説明したように、１サイクルＯＮフラグ（Ｆ１）は最初のユーザプログラム一巡実行処理の場合に限り、オン状態となるため、ユーザプログラム初期値設定処理（ＰＲ１）は、所望のタイミングで１回に限り実行される。
【００５９】
又、入出力装置１０８に接続されたプログラム差し替え用外部スイッチＳＷ１がオンされると、プログラム差し替え開始フラグ（Ｆ２）並びに負荷クリア指定フラグ（Ｆ３）はセット（オン）される。
【００６０】
すると、図２のフローチャートにおいて、プログラム差し替えフラグ（Ｆ２）がＯＦＦ→ＯＮと判定され（ステップ２０５ＹＥＳ）、図３に示すプログラム差し替え時の処理が開始される。
【００６１】
図３において処理が開始されると、サイクルタイム監視用のタイマには、監視時間として数１０ｍｓ（システムで規定された最大値）がセットされる（ステップ３０１）。これは、監視時間を最大値にセットすることにより、実質的にサイクルタイムの監視を停止したことに相当する。
【００６２】
その後、負荷クリア指定フラグ（Ｆ３）の状態を判定する（ステップ３０２）。ここで、負荷クリア指定フラグ（Ｆ３）がセット状態であれば、負荷クリア指定有りと判定されて（ステップ３０２ＹＥＳ）、Ｉ／Ｏメモリクリア処理が実行される（ステップ３０３）。これにより、入出力装置１０８の負荷はすべてオフされる。
【００６３】
これに対して、負荷クリア指定フラグ（Ｆ３）がリセット状態であれば、負荷クリア指定無しと判定されて（ステップ３０２ＮＯ）、Ｉ／Ｏメモリクリア処理（ステップ３０３）はスキップされる。
【００６４】
従って、ユーザプログラム中で、負荷クリア指定フラグ（Ｆ３）の操作のたのめの特定出力命令（ＯＰ２）を記述するか否かにより、ユーザプログラムの全差し替え時に、負荷の状態をオフ状態とするかそれまでの状態に維持するかを選択的にユーザは設定することができる。
【００６５】
その後、従来例と同様にして、プログラム差し替え処理（ステップ３０４）、Ｉ／Ｏリフレッシュ処理（ステップ３０５）、周辺サービス処理（ステップ３０６）がタイムスライスで時分割的に実行され、その間監視時間はシステムの最大値に毎サイクルの先頭でセットされる（ステップ３０８）。
【００６６】
従って、プログラム差し替え処理中に、誤ってシステム異常が発生することはなくなる。
【００６７】
その後、プログラム差し替え処理が完了すると（ステップ３０７ＹＥＳ）、図２のフローチャートに戻って、電源投入直後と同様にして、運転開始時処理（ステップ２０３）が実行される。ここで重要な点は、図６に示した従来例においては、プログラム差し替え処理が完了後、運転開始時処理（ステップ６０３）ではなくて、監視時間設定処理（ステップ６０４）へと処理が移行するのに対し、本発明にあっては、電源投入時と同様に、運転開始時処理（ステップ２０３）が再度実行されるのである。
【００６８】
その結果、本発明にあっては、差し替え後のユーザプログラムの起動に際しては、最初のユーザプログラム一巡実行処理に先立って、１サイクルオンフラグは再度オンされることとなり、図５に示されるユーザプログラムの先頭に記述されたユーザプログラム初期値設定処理（ＰＲ１）を適切に実行れる。
【００６９】
そのため、従来のプログラム差し替え命令（ＦＩＬＰ）では、仮にユーザプログラムの先頭に記述したとしても、差し替え後のユーザプログラムに含まれるユーザプログラム初期値設定処理（ＰＲ１）を実行させることができなかったのに対し、本発明にあっては、差し替え後のユーザプログラムの先頭に記述されたユーザプログラム初期値設定処理（ＰＲ１）を１サイクルＯＮフラグ（Ｆ１）の状態変化に応じて、最初の一巡実行サイクルに限り、適切に実行させることができるのである。
【００７０】
尚、図４に示されるように、ステップ（３０１，３０８，２０４）でセットされた監視時間は、本発明にあっても、１０μｍｓｅｃ毎の割り込みに応答して、減算されていき（ステップ４０１）、その減算結果がゼロになると共に（ステップ４０２ＹＥＳ）、システム異常処理が実行される（ステップ４０３）。しかし、ここで言うシステム異常処理（ステップ４０３）は、システムで規定された最大時間にわたって監視時間再設定が行われなかったということで、本来のサイクル異常とは意味合いの違ったものとなる。
【００７１】
以上の実施形態によれば、ＰＬＣのオペレータは、フラッシュメモリカード１１０に格納された差し替え用のユーザプログラムを、装置本体ハウジングのカードスロットに装着して、インタフェース１０９で内部バスと接続させ、その状態で外部スイッチＳＷ１をオンさせさえすれば、図２並びに図３に示されるシステムプログラムの実行により、フラッシュメモリカード１１０に格納された差し替え用ユーザプログラムは、ユーザプログラムメモリ１０３へと転送されて、それまでのユーザプログラムと全差し替えが行われる。その後、差し替え完了後のユーザプログラムの起動に際しては、電源投入時と同様にして、運転開始時処理（ステップ２０３）が再度実行されることから、ユーザプログラムの先頭部分に、１サイクルＯＮフラグ（Ｆ１）を起動条件として、ユーザプログラム初期値設定処理（ＰＲ１）が記述されていたとすれば、このユーザプログラム初期値設定処理（ＰＲ１）を適切に１サイクル実行させることができる。
【００７２】
そのため、従来の部分差し替えが可能なＰＬＣとは異なり、本発明にあっては、ユーザプログラムの全体を運転中に自動的に全差し替えすることができ、しかも全差し替え後のユーザプログラムを適切に起動させることができる。
【００７３】
又、以上の実施形態においては、差し替え対象となるユーザプログラムそれ自体の中に、図５に示されるように、プログラム差し替え元ファイル名を記述できるため、メーカー乃至ベンダー側においては、単にフラッシュメモリカード１１０に差し替え用ユーザプログラムを格納し、これをユーザに手渡すだけで、ユーザ側の単純な操作を通して、誤りなく現在のユーザプログラムの全体を差し替え用ユーザプログラムの内容で置き換えることができる。つまり、ユーザ側における誤操作のおそれを可及的に回避することができる。
【００７４】
又、ユーザプログラム中において、負荷クリア指定フラグ（Ｆ３）操作用の特定出力命令（ＯＰ２）を記述しておけば、プログラムの全差し替えに際して、負荷の状態をオフ状態とするかそれまでの状態に保持するかを任意に選択することでき、制御対象負荷の性質に応じた最適な対応が可能となる。
【００７５】
さらに、以上の実施形態においては、ユーザプログラムの差し替え処理に先立って、サイクルタイム監視用のタイマに関する監視時間は、自動的に当該システムに規定された最大値（数１０ｓ）に設定されて、実質的にサイクルタイムの監視が停止されるため、プログラム差し替え動作中に長時間監視時間設定処理がとどまる状態が生じたとしても、誤ってシステム異常が発生することがなくなり、従来のようにプログラム差し替えに先立って、手動操作でメンテナンスツールなどを利用して、監視時間を書き換えるといった煩雑さもなくなり、その分使い勝手が向上する。
【００７６】
尚、以上の実施形態では、プログラム差し替え用の命令語を定義するのではなく、プログラム差し替えフラグ（Ｆ２）をオンさせるための特定出力命令（ＯＰ１）を定義したが、これは従来と同様に、専用のプログラム差し替え用命令を定義しても良いことは勿論である。もっとも、このようにプログラム差し替え開始フラグ（Ｆ２）とそれをオンするための特定出力命令（ＯＰ１）とを分離すれば、メンテナンスツールを利用して、プログラム差し替え開始フラグ（Ｆ２）を操作することによっても、プログラム差し替え動作を開始させることができるという利点がある。
【００７７】
又、以上の実施形態では、差し替え用のユーザプログラムを外部記憶媒体であるフラッシュメモリカード１１０に格納したが、それとは別に、ＰＬＣ１内にファイルメモリを設け、このファイルメモリに格納された差し替え用のユーザプログラムを、所定の起動条件に基づいて、ユーザプログラムメモリ１０３へと転送し、ユーザプログラムの全差し替えを行うように構成しても良いことは勿論である。
【００７８】
又、以上の実施の形態では、実質的にサイクルタイムの監視を停止するために、システムの最大値を監視時間にセットするようにしたが、これに代えて、別途サイクルタイム監視タイマの出力をマスクしても良いことは勿論である。
【００７９】
【発明の効果】
以上の説明で明らかなように、この発明によれば、運転中におけるユーザプログラムの全差し替えが可能なＰＬＣを提供することができる。
【図面の簡単な説明】
【図１】ＰＬＣ全体のハードウェア構成を示すブロック図。
【図２】本発明ＰＬＣの通常時処理を示すフローチャート。
【図３】本発明ＰＬＣのプログラム差し替え時処理を示すフローチャート。
【図４】本発明ＰＬＣの監視タイマ処理のフローチャート。
【図５】本発明ＰＬＣのユーザプログラム構成を示すラダー図。
【図６】従来ＰＬＣの通常時処理を示すフローチャート。
【図７】従来ＰＬＣのプログラム差し替え時処理を示すフローチャート。
【図８】従来ＰＬＣの監視タイマ処理のフローチャート。
【図９】従来ＰＬＣのユーザプログラム構成を示すラダー図。
【符号の説明】
１        ＰＬＣ
１０１    ＣＰＵ
１０２    Ｉ／Ｏメモリ
１０３    ユーザプログラムメモリ
１０４    システムプログラムメモリ
１０５    パラメータメモリ
１０６    ワークメモリ
１０７    Ｉ／Ｏインターフェイス
１０８    入出力装置
１０９    インタフェース
１１０    外部記憶媒体であるフラッシュメモリカード
ＳＷ１    プログラム差し替え用外部スイッチ
Ｆ１      １サイクルＯＮフラグ
Ｆ２      プログラム差し替え開始フラグ
Ｆ３      負荷クリア指定フラグ
ＰＲ１    ユーザプログラム初期値設定処理
ＰＲ２，ＰＲ３，ＰＲ４  ユーザプログラム
ＦＩＬＰ  プログラム差し替え命令
ＯＰ１    プログラム差し替え開始フラグ操作用の特定出力命令
ＯＰ２    負荷クリア指定フラグ操作用の特定出力命令
【図１】
0003659398.tif 000002
【図２】
0003659398.tif 000003
【図３】
0003659398.tif 000004
【図４】
0003659398.tif 000005
【図５】
0003659398.tif 000006
【図６】
0003659398.tif 000007
【図７】
0003659398.tif 000008
【図８】
0003659398.tif 000009
【図９】
0003659398.tif 000010