(57)【要約】【課題】ＲＵＮ中書込み後のプログラムを正しい変更前のプログラムに戻すことができるプログラマブルコントローラシステムを得ること。【解決手段】ＰＣ１と、ＰＣ１のプログラムを変更するためのプログラムデータとこのプログラムデータを実行させるための各種指示をＰＣ１に送信するＰＣ周辺装置２とを備えるプログラマブルコントローラシステムにおいて、ＰＣ１は、ＲＵＮ中書込み処理前のプログラムに関する変更前プログラムデータを格納するバックアップメモリ５ｃと、Ｕｎｄｏ処理を指示したＰＣ周辺装置２からのＲＵＮ中書込み処理についてのプログラムとプログラムメモリ５ａのプログラムとを照合するプログラム照合処理実行部１３と、照合結果が一致する場合に、ＲＵＮ中書込み処理後のプログラムを、バックアップメモリ５ｃの変更前プログラムデータを用いてＲＵＮ中書込み処理前のプログラムに書換えるＵｎｄｏ処理実行部１４とを備える。【選択図】　　　図１
2004021446.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラのプログラムを変更するための情報を含むプログラムデータとこのプログラムデータを実行させるための各種指示を前記プログラマブルコントローラに対して送信するプログラマブルコントローラ周辺装置と、前記プログラマブルコントローラ周辺装置からの指示と前記プログラムデータにしたがってプログラムメモリに格納されるプログラムのＲＵＮ中書込み処理を実行して前記プログラムの変更を行うプログラマブルコントローラとを備えるプログラマブルコントローラシステムにおいて、
前記プログラマブルコントローラは、
前記ＲＵＮ中書込み処理前に前記プログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータを格納するバックアップ用格納手段と、
Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信した前記プログラムデータに含まれる前記ＲＵＮ中書込み処理についてのプログラムと、前記プログラムメモリに格納される前記ＲＵＮ中書込み処理後のプログラムとが一致するかを照合するプログラム照合処理実行手段と、
前記プログラム照合処理実行手段による照合結果が一致する場合には、前記ＲＵＮ中書込み処理後のプログラムを、前記バックアップ用格納手段に格納されている変更前プログラムデータを用いて前記ＲＵＮ中書込み処理前のプログラムに書換えるＵｎｄｏ処理実行手段と、
を備えることを特徴とするプログラマブルコントローラシステム。
【請求項２】
前記Ｕｎｄｏ処理実行手段は、前記照合結果が一致しない場合には、前記ＲＵＮ中書込み処理後のプログラムに対して、前記ＲＵＮ中書込み処理前のプログラムへの書換えを行わないことを特徴とする請求項１に記載のプログラマブルコントローラシステム。
【請求項３】
前記バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前の前記プログラムメモリのプログラムに関する変更前プログラムデータを複数格納できることを特徴とする請求項１または２に記載のプログラマブルコントローラシステム。
【請求項４】
プログラマブルコントローラ周辺装置からの指示とプログラムを変更するための情報を含むプログラムデータにしたがって、プログラムメモリに格納されるプログラムのＲＵＮ中書込み処理を実行して前記プログラムの変更を行うプログラマブルコントローラにおいて、
前記ＲＵＮ中書込み処理前に前記プログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータを格納するバックアップ用格納手段と、
Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信した前記プログラムデータに含まれる前記ＲＵＮ中書込み処理についてのプログラムと、前記プログラムメモリに格納される前記ＲＵＮ中書込み処理後のプログラムとが一致するかを照合するプログラム照合処理実行手段と、
前記プログラム照合処理実行手段による照合結果が一致する場合には、前記ＲＵＮ中書込み処理後のプログラムを、前記バックアップ用格納手段に格納されている変更前プログラムデータを用いて前記ＲＵＮ中書込み処理前のプログラムに書換えるＵｎｄｏ処理実行手段と、
を備えることを特徴とするプログラマブルコントローラ。
【請求項５】
前記Ｕｎｄｏ処理実行手段は、前記照合結果が一致しない場合には、前記ＲＵＮ中書込み処理後のプログラムに対して、前記ＲＵＮ中書込み処理前のプログラムへの書換えを行わないことを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前の前記プログラムメモリのプログラムに関する変更前プログラムデータを複数格納できることを特徴とする請求項４または５に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はプログラマブルコントローラ（以下、ＰＣという）への制御プログラムの書込みを行うプログラマブルコントローラシステムに関し、特に、ＰＣに対して間違ったプログラムを書込んでしまったなどの場合に、ＰＣのプログラムをＲＵＮ中書込み前のプログラムに戻すことができ、また、ＰＣとプログラマブルコントローラ周辺装置（以下、ＰＣ周辺装置という）のプログラム照合を行って、プログラムを元に戻す処理を確実に実行することができるプログラマブルコントローラシステムおよびプログラマブルコントローラに関するものである。
【０００２】
【従来の技術】
従来のＰＣとＰＣ周辺装置を含むプログラマブルコントローラシステムにおけるＲＵＮ中書込みについて以下に説明する。
【０００３】
ここで、ＲＵＮ中書込みとは、ＰＣ周辺装置よりＰＣの実行状態を停止することなく、ＰＣ内で実行されているシーケンスプログラムの内容を変更する処理のことをいう。例えば、オペレータがシステムを停止しないでシーケンスプログラムを変更したい場合に使用される処理である。またＰＣ周辺装置とは、ＰＣ内のシーケンスプログラムの変更やＰＣ内の情報をモニタするための装置のことをいう。
【０００４】
図６は、従来のＲＵＮ中書込みを行うプログラマブルコントローラシステムの構成を示すブロック図である。図６において、２１はＰＣを、２２はＰＣ周辺装置を、２３はオペレータにＰＣ周辺装置２２の情報を表示するためのＣＲＴ（Ｃａｔｈｏｄｅ　Ｒａｙ　Ｔｕｂｅ）や液晶ディスプレイなどの表示装置を、そして２４はオペレータからの指示をＰＣ周辺装置２２に入力するためのキーボードなどの入力装置をそれぞれ示している。
【０００５】
ＰＣ２１は、メモリ２５と、ＲＵＮ中書込み処理実行部２６ａと、プログラム照合処理を実施するためのプログラム照合処理実行部２６ｂと、ＰＣ周辺装置２２とデータの授受を行うための周辺Ｉ／Ｆ部２７とを備えている。メモリ２５は、実行するシーケンスプログラムを格納するプログラムメモリ２５ａと、ＲＵＮ中書込み時に一時的にＲＵＮ中書込みに関するデータを格納するＲＵＮ中書込み用ワークエリア２５ｂと、プログラム照合時に一時的に照合するプログラムを格納する照合用ワークエリア２５ｃとを有している。
【０００６】
ＰＣ周辺装置２２は、ＰＣ２１とデータの授受を行うためのＰＣＩ／Ｆ部２８と、プログラム編集部２９と、表示装置２３にＰＣ周辺装置２２の情報を表示するための表示処理部３０と、キーボードなどの入力装置２４によって入力された入力キーを判別するキー入力処理部３１とを備えている。プログラム編集部２９には、ＲＵＮ中書込み先頭ステップ番号２９ａ、ＲＵＮ中書込み変更ステップ数２９ｂ、ＲＵＮ中書込みプログラム２９ｃ、ＲＵＮ中書込み前変更ステップ数２９ｄ、ＲＵＮ中書込み前プログラム２９ｅおよびプログラムメモリ２９ｆが格納される。
【０００７】
つぎに、図６に示される従来のプログラマブルコントローラシステムにおけるＲＵＮ中書込み処理を図７のフローチャートを参照しながら説明する。
【０００８】
まず、入力装置２４よりＲＵＮ中書込みの実行指示に対する処理が入力されると、ＰＣ周辺装置２２のキー入力処理部３１において、入力装置２４で入力されたキーがＲＵＮ中書込み指示であるか否かの判別処理が行われる（ステップＳ１０１）。入力されたキーがＲＵＮ中書込みであると判断された場合（ステップＳ１０１でＹＥＳの場合）には、プログラム編集部２９のＲＵＮ中書込み先頭ステップ番号２９ａ、ＲＵＮ中書込み変更ステップ数２９ｂ、ＲＵＮ中書込みプログラム２９ｃ、ＲＵＮ中書込み前変更ステップ数２９ｄ、ＲＵＮ中書込み前プログラム２９ｅを含むＲＵＮ中書込み指示が、ＰＣＩ／Ｆ部２８および周辺Ｉ／Ｆ部２７を介して、ＰＣ２１へ送信される（ステップＳ１０２）。
【０００９】
ＰＣ２１は、ＲＵＮ中書込み指示をＰＣ周辺装置２２から受信すると（ステップＳ１０３）、受信したＲＵＮ中書込み指示中のＲＵＮ中書込み先頭ステップ番号２９ａ、ＲＵＮ中書込み変更ステップ数２９ｂおよびＲＵＮ中書込みプログラム２９ｃをメモリ２５のＲＵＮ中書込み用ワークエリア２５ｂへ格納し、ＲＵＮ中書込み前のプログラム（すなわち、変更前のプログラム）２９ｅをメモリ２５の照合用ワークエリア２５ｃへ格納する。また、ＲＵＮ中書込み先頭ステップ番号２９ａとＲＵＮ中書込み前変更ステップ数２９ｄとで示される範囲のプログラムをプログラムメモリ２５ａから抽出して、この抽出したプログラムを照合用ワークエリア２５ｃに格納する。
【００１０】
ＲＵＮ中書込み実施前のチェック処理として、ＰＣ２１のプログラム照合処理実行部２６ｂはメモリ２５の照合用ワークエリア２５ｃに格納されたプログラムを基に、プログラム照合処理を実施する（ステップＳ１０４）。このプログラム照合処理では、照合用ワークエリア２５ｃに格納された２つのプログラム、すなわち、プログラムメモリ２５ａ中のＲＵＮ中書込み先頭ステップ番号２９ａとＲＵＮ中書込み前変更ステップ数２９ｄとで示される範囲の変更前のプログラムと、ＰＣ周辺装置２２から送信されたＲＵＮ中書込み前プログラム２９ｅとを照合し、両者が一致するプログラムであることを確認する。これにより、ＰＣ２１とＰＣ周辺装置２２とで、少なくとも変更前のプログラムに関して、齟齬をきたすことがないことが確かめられる。
【００１１】
プログラム照合処理を実施後、ＲＵＮ中書込み用ワークエリア２５ｂに格納されたＲＵＮ中書込み内容を基に、ＲＵＮ中書込み処理実行部２６ａはＲＵＮ中書込み処理を実施する（ステップＳ１０５）。このＲＵＮ中書込み処理では、実際にＰＣ２１内で実行されているプログラムが格納されているプログラムメモリ２５ａ中のＲＵＮ中書込み先頭ステップ番号２９ａとＲＵＮ中書込み変更ステップ数２９ｂとで示される範囲のプログラムをＲＵＮ中書込みプログラム２９ｃと入れ替える処理が行われる。ＲＵＮ中書込み処理を実施後、ＲＵＮ中書込み処理が完了したことをＰＣ周辺装置２２に通知するため、ＰＣ２１は、周辺Ｉ／Ｆ部２７およびＰＣＩ／Ｆ部２８を介して、ＲＵＮ中書込み完了信号をＰＣ周辺装置２２へ送信する（ステップＳ１０６）。
【００１２】
ＰＣ周辺装置２２は、ＰＣ２１からのＲＵＮ中書込み完了信号を受信すると（ステップＳ１０７）、ＲＵＮ中書込み後プログラムの表示処理を実施する（ステップＳ１０８）。このＲＵＮ中書込み後プログラムの表示処理では、プログラムメモリ２９ｆ内のＲＵＮ中書込み先頭ステップ番号２９ａとＲＵＮ中書込み変更ステップ数２９ｂとで示される範囲のプログラムと、ＲＵＮ中書込みプログラム２９ｃとを入れ替え、ＲＵＮ中書込みプログラム２９ｃが反映された新たなプログラムメモリ２９ｆを、表示処理部３０によって表示処理を実施し、このＲＵＮ中書込み後のプログラムメモリ２９ｆの内容を表示装置２３に表示する。
【００１３】
ＲＵＮ中書込み後プログラムの表示処理を実施した後に、ＰＣ周辺装置２２は、ＲＵＮ中書込みが完了したことをオペレータに通知するため、表示処理部３０においてメッセージ表示処理を実施し、表示装置２３にＲＵＮ中書込みが完了した旨のメッセージを表示し（ステップＳ１０９）、その後処理を終了する。
【００１４】
一方、上述したステップＳ１０１で、ＲＵＮ中書込み指示がＲＵＮ中書込み指示以外であると判断された場合（ステップＳ１０１でＮＯの場合）には、無処理でＲＵＮ中書込み指示に対応する処理を終了する。
【００１５】
【発明が解決しようとする課題】
上述のような従来のＰＣ周辺装置２２において、例えばオペレータが操作を誤って間違ったプログラムのＲＵＮ中書込みを実施してしまったとする。この場合に、ＰＣ２１を正常動作させるための処理として、ＲＵＮ中書込みの実施前、すなわち変更前のプログラムに戻すこと（以下、Ｕｎｄｏという）が必要である。しかし、ＲＵＮ中書込みの実施前のプログラムに戻す際に、元のプログラムとして格納（記憶）されているものが、何らかの原因によって誤ったプログラムに変わってしまっている場合がある。この場合には、実際にＵｎｄｏ処理を実施しても、ＰＣ２１のプログラムは、正しい元のプログラムへ戻らなくなってしまうという問題点があった。
【００１６】
また、本来、Ｕｎｄｏ機能を実行してはならない他の不当なＰＣ周辺装置２２によってＵｎｄｏ機能が実行された場合に、従来のプログラマブルコントローラシステムではそれを防止することができず、ＰＣ２１のプログラムを正しい元のプログラム、すなわち変更前のプログラムへ戻せなくなるという問題点もあった。
【００１７】
この発明は上記に鑑みてなされたもので、ＲＵＮ中書込み後のＰＣのプログラムを正しい変更前のプログラムに戻すことを可能とし、また、Ｕｎｄｏ機能を実行するＰＣ周辺装置の正当性の判別を行って確実なＵｎｄｏ機能を実現することができるプログラマブルコントローラシステムおよびプログラマブルコントローラを得ることを目的とする。
【００１８】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるプログラマブルコントローラシステムは、プログラマブルコントローラのプログラムを変更するための情報を含むプログラムデータとこのプログラムデータを実行させるための各種指示を前記プログラマブルコントローラに対して送信するプログラマブルコントローラ周辺装置と、前記プログラマブルコントローラ周辺装置からの指示と前記プログラムデータにしたがってプログラムメモリに格納されるプログラムのＲＵＮ中書込み処理を実行して前記プログラムの変更を行うプログラマブルコントローラとを備えるプログラマブルコントローラシステムにおいて、前記プログラマブルコントローラは、前記ＲＵＮ中書込み処理前に前記プログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータを格納するバックアップ用格納手段と、Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信した前記プログラムデータに含まれる前記ＲＵＮ中書込み処理についてのプログラムと、前記プログラムメモリに格納される前記ＲＵＮ中書込み処理後のプログラムとが一致するかを照合するプログラム照合処理実行手段と、前記プログラム照合処理実行手段による照合結果が一致する場合には、前記ＲＵＮ中書込み処理後のプログラムを、前記バックアップ用格納手段に格納されている変更前プログラムデータを用いて前記ＲＵＮ中書込み処理前のプログラムに書換えるＵｎｄｏ処理実行手段と、を備えることを特徴とする。
【００１９】
この発明によれば、バックアップ用格納手段によって、ＲＵＮ中書込み処理前にプログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータが格納される。また、プログラム照合処理実行手段によって、Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信したプログラムデータに含まれるＲＵＮ中書込み処理についてのプログラムと、プログラムメモリに格納されるＲＵＮ中書込み処理後のプログラムとが一致するかが照合される。そして、Ｕｎｄｏ処理実行手段によって、プログラム照合処理実行手段での照合結果が一致する場合に、ＲＵＮ中書込み処理後のプログラムが、バックアップ用格納手段に格納されている変更前プログラムデータを用いてＲＵＮ中書込み処理前のプログラムに書換えられる。
【００２０】
つぎの発明にかかるプログラマブルコントローラシステムは、上記の発明において、前記Ｕｎｄｏ処理実行手段は、前記照合結果が一致しない場合には、前記ＲＵＮ中書込み処理後のプログラムに対して、前記ＲＵＮ中書込み処理前のプログラムへの書換えを行わないことを特徴とする。
【００２１】
この発明によれば、Ｕｎｄｏ処理実行手段は、照合結果が一致しない場合には、ＲＵＮ中書込み処理後のプログラムに対して、ＲＵＮ中書込み処理前のプログラムへの書換えを行わないようにしている。
【００２２】
つぎの発明にかかるプログラマブルコントローラシステムは、上記の発明において、前記バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前の前記プログラムメモリのプログラムに関する変更前プログラムデータを複数格納できることを特徴とする。
【００２３】
この発明によれば、バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前のプログラムメモリのプログラムに関する変更前プログラムデータを複数格納できるようにしている。
【００２４】
つぎの発明にかかるプログラマブルコントローラは、プログラマブルコントローラ周辺装置からの指示とプログラムを変更するための情報を含むプログラムデータにしたがって、プログラムメモリに格納されるプログラムのＲＵＮ中書込み処理を実行して前記プログラムの変更を行うプログラマブルコントローラにおいて、前記ＲＵＮ中書込み処理前に前記プログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータを格納するバックアップ用格納手段と、Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信した前記プログラムデータに含まれる前記ＲＵＮ中書込み処理についてのプログラムと、前記プログラムメモリに格納される前記ＲＵＮ中書込み処理後のプログラムとが一致するかを照合するプログラム照合処理実行手段と、前記プログラム照合処理実行手段による照合結果が一致する場合には、前記ＲＵＮ中書込み処理後のプログラムを、前記バックアップ用格納手段に格納されている変更前プログラムデータを用いて前記ＲＵＮ中書込み処理前のプログラムに書換えるＵｎｄｏ処理実行手段と、を備えることを特徴とする。
【００２５】
この発明によれば、バックアップ用格納手段によって、ＲＵＮ中書込み処理前にプログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータが格納される。また、プログラム照合処理実行手段によって、Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信したプログラムデータに含まれるＲＵＮ中書込み処理についてのプログラムと、プログラムメモリに格納されるＲＵＮ中書込み処理後のプログラムとが一致するかが照合される。そして、Ｕｎｄｏ処理実行手段によって、プログラム照合処理実行手段での照合結果が一致する場合には、ＲＵＮ中書込み処理後のプログラムが、バックアップ用格納手段に格納されている変更前プログラムデータを用いてＲＵＮ中書込み処理前のプログラムに書換えられる。
【００２６】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記Ｕｎｄｏ処理実行手段は、前記照合結果が一致しない場合には、前記ＲＵＮ中書込み処理後のプログラムに対して、前記ＲＵＮ中書込み処理前のプログラムへの書換えを行わないことを特徴とする。
【００２７】
この発明によれば、Ｕｎｄｏ処理実行手段は、照合結果が一致しない場合には、ＲＵＮ中書込み処理後のプログラムに対して、ＲＵＮ中書込み処理前のプログラムへの書換えを行わないようにしている。
【００２８】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前の前記プログラムメモリのプログラムに関する変更前プログラムデータを複数格納できることを特徴とする。
【００２９】
この発明によれば、バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前のプログラムメモリのプログラムに関する変更前プログラムデータを複数格納できるようにしている。
【００３０】
【発明の実施の形態】
以下に、添付図面を参照して、この発明にかかるプログラマブルコントローラシステムおよびプログラマブルコントローラの好適な実施の形態について詳細に説明する。
【００３１】
実施の形態１．
図１はこの発明にかかるプログラマブルコントローラシステムの構成を示すブロック図である。この図１において、１はＰＣを、２，２’はＰＣ周辺装置を、３はオペレータにＰＣ周辺装置２の情報を表示するためのＣＲＴや液晶ディスプレイなどの表示装置を、そして４はＰＣ周辺装置２に対してオペレータからの指示を入力するためのキーボードなどの入力装置を、それぞれ示している。
【００３２】
ＰＣ１は、メモリ５と、ＰＣ周辺装置２，２’との間でデータの授受を行うための周辺Ｉ／Ｆ部７と、ＲＵＮ中書込み処理実行部１２と、プログラム照合処理実行部１３と、Ｕｎｄｏ処理実行部１４とを備えている。このＰＣ１のメモリ５は、実行するシーケンスプログラムを格納するプログラムメモリ５ａと、ＲＵＮ中書込み時にＲＵＮ中書込みに関するデータを一時的に格納するＲＵＮ中書込み用ワークエリア５ｂと、ＲＵＮ中書込みによって変更される前のいわゆる変更前プログラムを格納するためのバックアップメモリ５ｃと、照合時に照合に必要なデータを一時的に格納する照合用ワークエリア５ｄとを含むように構成されている。
【００３３】
ＰＣ周辺装置２は、ＰＣ１とデータの授受を行うためのＰＣＩ／Ｆ部８と、プログラム編集部９と、表示処理部１０と、入力装置４によって入力された入力キーを判別するキー入力処理部１１とを備えている。このＰＣ周辺装置２のプログラム編集部９には、ＲＵＮ中書込み先頭ステップ番号９ａと、ＲＵＮ中書込み変更ステップ数９ｂと、ＲＵＮ中書込みプログラム９ｃと、ＲＵＮ中書込み前変更ステップ数９ｄと、ＲＵＮ中書込み前プログラム９ｅと、プログラムメモリ９ｆとが含まれている。
【００３４】
また、ＰＣ周辺装置２’は、上述したＰＣ周辺装置２と同じ構成を有しており、８’はＰＣ１とデータの授受を行うためのＰＣＩ／Ｆ部を、９’はプログラム編集部を、そして９ｃ’はＰＣ周辺装置２内のＲＵＮ中書込みプログラム９ｃとは異なるプログラム編集部９’のＲＵＮ中書込みプログラムをそれぞれ示している。
【００３５】
図２は、ＲＵＮ中書込みが行われるＰＣ１のメモリ５内に保持されるバックアップメモリ５ｃのメモリ構成を模式的に示している。バックアップメモリ５ｃ内には、この図２に示されるバックアップ情報テーブル３００が格納されている。バックアップ情報テーブル３００は、ＲＵＮ中書込みの先頭を示す先頭ステップ番号３０１と、ＲＵＮ中書込みによるプログラムの変更ステップ数３０２と、そしてＲＵＮ中書込み実施前の変更前プログラム（内容）３０３を格納することができるように構成されている。
【００３６】
つぎに、上述したような構成を有するプログラマブルコントローラシステムにおけるＲＵＮ中書込みの処理手順について、図３のフローチャートを参照しながら説明する。
【００３７】
まず、ＰＣ周辺装置２は、キー入力処理部１１において、オペレータによって入力装置４で入力されたキーがＲＵＮ中書込み指示であるか否かの判別処理を行う（ステップＳ１）。キー入力処理部１１がＲＵＮ中書込み指示であると判断された場合（ステップＳ１でＹＥＳの場合）には、そのＲＵＮ中書込み指示をＰＣ１へ送信する（ステップＳ２）。このＲＵＮ中書込み指示を送信する処理では、プログラム編集部９は、ＲＵＮ中書込み先頭ステップ番号９ａ、ＲＵＮ中書込み変更ステップ数９ｂ、ＲＵＮ中書込みプログラム９ｃ、ＲＵＮ中書込み前変更ステップ数９ｄおよびＲＵＮ中書込み前プログラム９ｅを含むＲＵＮ中書込み指示を作成し、ＰＣＩ／Ｆ部８および周辺Ｉ／Ｆ部７を介して、ＰＣ１へ送信する。
【００３８】
ＰＣ１は、ＰＣ周辺装置２からＲＵＮ中書込み指示を受信すると（ステップＳ３）、その指示に含まれているＲＵＮ中書込み先頭ステップ番号９ａ、ＲＵＮ中書込み変更ステップ数９ｂおよびＲＵＮ中書込みプログラム９ｃをメモリ５内のＲＵＮ中書込み用ワークエリア５ｂへ格納し、ＲＵＮ中書込み前プログラム９ｅを照合用ワークエリア５ｄに格納する。また、プログラムメモリ５ａ内に格納されているプログラムについてＲＵＮ中書込み先頭ステップ番号９ａとＲＵＮ中書込み前変更ステップ数９ｄとで示される範囲のプログラムを抽出し、この抽出したプログラムを照合用ワークエリア５ｄに格納する。
【００３９】
ＰＣ１のプログラム照合処理実行部１３は、ＲＵＮ中書込みの実施前のチェック処理として照合用ワークエリア５ｄに格納されたプログラムを基に、現在プログラムメモリ５ａ内に格納されているプログラムに関してプログラム照合処理を実施する（ステップＳ４）。すなわち、このプログラム照合処理では、照合用ワークエリア５ｄに格納されたプログラムメモリ５ａ中から抽出したＲＵＮ中書込み先頭ステップ番号９ａとＲＵＮ中書込み前変更ステップ数９ｄとで示される範囲のプログラムと、同じく照合用ワークエリア５ｄに格納され、ＰＣ周辺装置２から受信したＲＵＮ中書込み前プログラム９ｅとが一致するかを確認する。
【００４０】
プログラム照合処理の後、バックアップメモリ５ｃ内のバックアップ情報テーブル３００の先頭ステップ番号３０１にＲＵＮ中書込み先頭ステップ番号９ａを、変更ステップ数３０２にＲＵＮ中書込み変更ステップ数９ｂを、そして変更前プログラム３０３にＲＵＮ中書込み先頭ステップ番号９ａとＲＵＮ中書込み変更ステップ数９ｂとで示される範囲のプログラムメモリ５ａのプログラムを、それぞれ格納して、変更前のプログラムのバックアップ処理を行う（ステップＳ５）。
【００４１】
プログラムのバックアップ処理の後、ＲＵＮ中書込み用ワークエリア５ｂに格納されたＲＵＮ中書込みの処理内容を基に、ＲＵＮ中書込み処理実行部１２はＲＵＮ中書込み処理、すなわちプログラムを変更する処理を実施する（ステップＳ６）。
【００４２】
このＲＵＮ中書込み処理の後に、ＰＣ１は、ＲＵＮ中書込み処理が完了したことをＰＣ周辺装置２に知らせるために、ＲＵＮ中書込み完了信号を、周辺Ｉ／Ｆ部７およびＰＣＩ／Ｆ部８を介して、ＰＣ周辺装置２へ送信する（ステップＳ７）。
【００４３】
ＰＣ周辺装置２は、ＰＣ１からＲＵＮ中書込み完了信号を受信すると（ステップＳ８）、プログラム編集部９は、プログラムメモリ９ｆのＲＵＮ中書込み先頭ステップ番号９ａとＲＵＮ中書込み変更ステップ数９ｂが示す範囲のプログラムと、ＲＵＮ中書込みプログラム９ｃとを入れ替え、ＲＵＮ中書込みプログラム９ｃが反映された新たなプログラムメモリ９ｆを作成する。そして、表示処理部１０にはこの変更されたプログラムの表示処理を実施し、表示装置３にＲＵＮ中書込み後のプログラムメモリ９ｆを表示する（ステップＳ９）。
【００４４】
ＲＵＮ中書込み後のプログラムメモリ９ｆの表示処理の後、表示処理部１０は、ＲＵＮ中書込みが完了したことをオペレータに知らせるために、メッセージの表示処理を実施して、表示装置３にＲＵＮ中書込みが完了した旨のメッセージを表示させて（ステップＳ１０）、ＲＵＮ中書込みが終了する。
【００４５】
一方、上述したステップＳ１で、キー入力処理部１１がＲＵＮ中書込み指示以外の指示であると判断した場合（ステップＳ１でＮＯの場合）には、ＲＵＮ中書込み指示に対応する処理は行われずに、処理はそのまま終了する。
【００４６】
つぎに、上述したような構成を有するプログラマブルコントローラシステムにおけるＵｎｄｏの処理手順について、図４のフローチャートを参照しながら説明する。なお、ここでＵｎｄｏ機能とは、上述した図３のＲＵＮ中書込み（すなわち、プログラムの変更）が少なくとも１度実施された後に、ＲＵＮ中書込み前（すなわち、変更前）のプログラムへ戻す処理のことをいう。
【００４７】
オペレータは、Ｕｎｄｏ機能を実行したい場合には、入力装置４からＵｎｄｏ機能を実行する指示を入力する。ＰＣ周辺装置２のキー入力処理部１１は、入力装置４で入力されたキーがＵｎｄｏ実行指示であるか否かの判別処理を行う（ステップＳ２１）。ここで、キー入力処理部１１によって、入力されたキーがＵｎｄｏ実行指示以外の指示であると判断された場合（ステップＳ２１でＮＯの場合）には、Ｕｎｄｏ機能の実行指示に対応する処理は行われずに、そのまま処理は終了する。一方、キー入力処理部１１によって、入力されたキーがＵｎｄｏ実行指示であると判断された場合（ステップＳ２１でＹＥＳの場合）には、プログラム編集部９はプログラム照合指示をＰＣ１に対して送信する（ステップＳ２２）。すなわち、プログラム編集部９は、ＲＵＮ中書込みプログラム９ｃを含むプログラム照合指示を、ＰＣＩ／Ｆ部８および周辺Ｉ／Ｆ部７を介して、ＰＣ１へ送信する。
【００４８】
ＰＣ１は、プログラム照合指示をＰＣ周辺装置２から受信すると（ステップＳ２３）、受信したプログラム照合指示に含まれているＲＵＮ中書込みプログラム９ｃを照合用ワークエリア５ｄに格納する。このとき、バックアップメモリ５ｃのバックアップ情報テーブル３００に格納されている先頭ステップ番号３０１と変更ステップ数３０２とで示される範囲のプログラムメモリ５ａ内のプログラムも照合用ワークエリア５ｄに格納される。
【００４９】
その後、プログラム照合処理実行部１３によって、照合用ワークエリア５ｄに格納された２つのプログラムが一致するか否かのプログラム照合処理が実施される（ステップＳ２４）。このプログラム照合処理は、ＰＣ周辺装置２，２’が、ＰＣ１に対してＵｎｄｏ指示を出す正当性を有するＰＣ周辺装置２，２’であるか否かを確認することを目的とする。
【００５０】
例えば、ＰＣ周辺装置２からＰＣ１に対してＲＵＮ中書込みが実施された後、ＰＣ周辺装置２とは異なる別のＰＣ周辺装置２’からＰＣ１に対してＵｎｄｏ指示を送信する操作が実施された場合に、ＰＣ周辺装置２’のＲＵＮ中書込みプログラム９ｃ’がＰＣＩ／Ｆ部８’および周辺Ｉ／Ｆ部７を介して、ＰＣ１の照合用ワークエリア５ｄへ格納される。また同時に、バックアップメモリ５ｃのバックアップ情報テーブル３００に格納されているデータからＰＣ１側の先頭ステップ番号３０１と変更ステップ数３０２とで示される範囲のプログラムメモリ５ａ中のプログラム、すなわち一旦ＲＵＮ中書込みが実施された変更後のプログラムが抽出され、照合用ワークエリア５ｄへ格納される。そして、これら２つのプログラムが一致しているか否かについての照合が、プログラム照合処理実行部１３によって行われる。
【００５１】
この場合、このプログラムメモリ５ａのプログラムと、ＰＣ周辺装置２’からのＲＵＮ中書込みプログラム９ｃ’とが異なるプログラムであるので、このままＵｎｄｏ処理を実行すると、変更前のプログラムに戻すことができず、誤動作を引き起こす原因となる。何故ならば、ＰＣ１のプログラムをＵｎｄｏ処理によって正しい元の変更前プログラムに戻せるＰＣ周辺装置２は、以前に当該ＰＣ１に対してＲＵＮ中書込みを実施して、ＰＣ１が現在動かしているプログラムを書き込んだＰＣ周辺装置（またはそれと同じプログラムを格納しているＰＣ周辺装置）２であるが、ＰＣ１が現在動かしているプログラムと異なるプログラムをＲＵＮ中書込みプログラム９ｃ’として持っているＰＣ周辺装置２’が、Ｕｎｄｏ処理を行っても正しい元の変更前プログラムに戻せるという保証は無いからである。そのために、この実施の形態１のようにＵｎｄｏ処理前にプログラム照合処理を実施することによって、このような誤動作を防ぐことができる。
【００５２】
プログラム照合処理の後、ＰＣ１はプログラム照合処理の結果を、周辺Ｉ／Ｆ部７およびＰＣＩ／Ｆ部８を介して、ＰＣ周辺装置２へ送信する処理を実施する（ステップＳ２５）。
【００５３】
ＰＣ１からプログラム照合処理の結果を受信すると（ステップＳ２６）、ＰＣ周辺装置２のプログラム編集部９は受信した照合結果が正常であるか否かの判別を行う照合結果チェック処理を実施する（ステップＳ２７）。この照合結果チェック処理において照合結果が不一致で異常応答であると判断された場合（ステップＳ２７でＮＯの場合）には、表示処理部１０はメッセージの表示処理を行って、表示装置３にエラーメッセージを表示させて（ステップＳ３５）、Ｕｎｄｏ機能の実行指示に対応する処理を終了する。一方、照合結果チェック処理において照合結果が一致し正常応答であると判断された場合（ステップＳ２７でＹＥＳの場合）には、プログラム編集部９はＰＣ１に対してＵｎｄｏ指示を送信する（ステップＳ２８）。
【００５４】
ＰＣ１は、ＰＣ周辺装置２からＵｎｄｏ指示を受信すると（ステップＳ２９）、元のプログラムに戻すＵｎｄｏ処理を実施する（ステップＳ３０）。すなわち、ＰＣ１のＵｎｄｏ処理実行部１４は、バックアップ情報テーブル３００に格納されているＵｎｄｏ範囲となる先頭ステップ番号３０１と変更ステップ数３０２とで示される範囲のプログラムメモリ５ａのプログラムを削除し、この削除した部分を変更前プログラム３０３に置き換えることによって、Ｕｎｄｏ処理を実行する。
【００５５】
その後、ＰＣ１は、Ｕｎｄｏ処理によって置き換えられた変更前プログラム３０３をＰＣ周辺装置２に表示するために、およびＵｎｄｏ処理が完了したことをＰＣ周辺装置２に通知するために、変更前プログラム３０３とＵｎｄｏ処理完了信号を、周辺Ｉ／Ｆ部７およびＰＣＩ／Ｆ部８を介して、ＰＣ周辺装置２へ送信する（ステップＳ３１）。
【００５６】
ＰＣ周辺装置２は、ＰＣ１から変更前プログラム３０３とＵｎｄｏ処理完了信号を受信すると（ステップＳ３２）、Ｕｎｄｏ処理後のプログラム表示処理を実施する（ステップＳ３３）。このプログラム表示処理では、プログラム編集部９によってプログラムメモリ９ｆのＲＵＮ中書込み先頭ステップ番号９ａとＲＵＮ中書込み前変更ステップ数９ｄが示す範囲のプログラムと、変更前プログラム３０３とが入れ替えられ、表示処理部１０によってこの変更前のプログラムの表示処理が実施され、そして表示装置３によってＵｎｄｏ実施後のプログラムメモリ９ｆが表示される。
【００５７】
その後、ＰＣ周辺装置２は、オペレータにＵｎｄｏ処理が完了したことを通知するために、表示処理部１０がＵｎｄｏ処理完了メッセージを表示する処理を実施し、表示装置３にＵｎｄｏ処理が完了した旨のメッセージが表示される（ステップＳ３４）。その後、Ｕｎｄｏ機能の実行指示に対応する処理を終了する。
【００５８】
この実施の形態１によれば、Ｕｎｄｏ処理の実行の際に、すなわち元の変更前プログラムに戻す際に、プログラムに誤りの無い、元の正しいプログラムに容易に戻すことができるという効果を有する。また、Ｕｎｄｏ処理の実行の際に、ＰＣ周辺装置から受信したＲＵＮ中書込み処理後のプログラムデータと、ＰＣが格納しているＲＵＮ中書込み処理後のプログラムデータとを照合するようにしたので、Ｕｎｄｏ機能を実行してはならない他の不当なプログラマブルコントローラ周辺装置によるプログラムコントローラ内のプログラムの、変更前の元のプログラムとは異なるプログラムへの書き換えを防止することができるという効果を有する。
【００５９】
実施の形態２．
図５は、ＲＵＮ中書込みが行われるＰＣ１のメモリ５内に保持されるバックアップメモリ５ｃのメモリ構成を模式的に示している。このバックアップメモリ５ｃのメモリ構成は、実施の形態１の図２に示したバックアップメモリ５ｃのメモリ構成と異なり、複数回のＵｎｄｏ処理を実行することができるように構成されている点を特徴とする。すなわち、複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００は、バックアップ情報テーブル数５０１と複数のバックアップ情報テーブル３００１〜３００ｎ（ｎは２以上の自然数）とを含むように構成されている。バックアップ情報テーブル数５０１には、複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００に格納されているバックアップ情報テーブル３００１〜３００ｎの数が格納される。
【００６０】
バックアップメモリ５ｃ内のメモリ構成を図５のように、複数個のバックアップ情報テーブル３００を保持可能な構成とすることによって、複数回のＵｎｄｏ機能を行なうことが可能となる。例えば、ｎ＝１０であれば、１０回前までＵｎｄｏ機能を実行することができる。
【００６１】
ここで、この複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００へのバックアップ情報の格納方法について説明する。ＲＵＮ中書込み処理実行部１２は、ＲＵＮ中書込みを実施するごとに、そのＲＵＮ中書込みに対応するバックアップ情報テーブル３００を複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００内の最終位置に追加するとともに、バックアップ情報テーブル数５０１として現在の数に１を加算する。一方、Ｕｎｄｏ処理実行部１４は、Ｕｎｄｏ機能を実施すると、複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００からバックアップ情報テーブル数５０１を取得し、その数値から最終位置に格納されているバックアップ情報テーブル３００ｎを取得し、そのバックアップ情報テーブル３００ｎに基づいて、実施の形態１の図４で説明したＵｎｄｏ機能を実施する。Ｕｎｄｏ処理実行部１４は、正常にＵｎｄｏ機能が実施された場合には、複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００の最終位置に登録されているバックアップ情報テーブル３００ｎを削除し、バックアップ情報テーブル数５０１について現在の数から１を減算する。
【００６２】
なお、ＲＵＮ中書込みの実施がされ続け、Ｕｎｄｏ機能が実施されない状態が続き、バックアップ情報テーブル数５０１がすべて満たされてしまった状態で、ＲＵＮ中書込みを実施する場合には、ＲＵＮ中書込み処理実行部１２は、最前位置すなわち最も古い位置に格納されているバックアップ情報テーブル３００を削除し、バックアップ情報テーブル数５０１について現在の数から１を減算するとともに、削除された最前位置につぎの位置のバックアップ情報テーブル３００２を前詰めし、その結果空いた位置にそのつぎの位置のバックアップ情報テーブル３００３を前詰めし、・・・というバックアップ情報テーブル３００ｎの前詰め操作を行い、複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００の最終位置を空の状態とする。そして、ＲＵＮ中書込み処理実行部１２は、最終位置に最新のＲＵＮ中書込みの内容を登録する。
【００６３】
上記処理によって、複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル５００に保持されているバックアップ情報テーブル数分のＵｎｄｏ機能を実施することが可能となる。
【００６４】
この実施の形態２によれば、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前にプログラムメモリのプログラムに関するプログラムデータを複数格納できるように構成したので、バックアップメモリに格納されるプログラムデータの数だけ、Ｕｎｄｏ処理を過去に遡って実施することができるという効果を有する。
【００６５】
【発明の効果】
以上説明したように、この発明によれば、プログラマブルコントローラは、ＲＵＮ中書込み処理前にプログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータを格納するバックアップ用格納手段と、Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信したプログラムデータに含まれるＲＵＮ中書込み処理についてのプログラムと、プログラムメモリに格納されるＲＵＮ中書込み処理後のプログラムとが一致するかを照合するプログラム照合処理実行手段と、プログラム照合処理実行手段による照合結果が一致する場合には、ＲＵＮ中書込み処理後のプログラムを、バックアップ用格納手段に格納されている変更前プログラムデータを用いてＲＵＮ中書込み処理前のプログラムに書換えるＵｎｄｏ処理実行手段とを備えるように構成したので、Ｕｎｄｏ処理の実行の際に、すなわち元の変更前プログラムに戻す際に、プログラムに誤りの無い、元の正しいプログラムに容易に戻すことができるという効果を有する。
【００６６】
つぎの発明によれば、Ｕｎｄｏ処理実行手段は、照合結果が一致しない場合には、ＲＵＮ中書込み処理後のプログラムに対して、ＲＵＮ中書込み処理前のプログラムへの書換えを行わないようにしたので、Ｕｎｄｏ処理の実行の際に、Ｕｎｄｏ機能を実行してはならない他の不当なプログラマブルコントローラ周辺装置によるプログラムコントローラ内のプログラムの、変更前の元のプログラムとは異なるプログラムへの書き換えを防止することができるという効果を有する。
【００６７】
つぎの発明によれば、バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前にプログラムメモリのプログラムに関する変更前プログラムデータを複数格納できるように構成したので、バックアップ用格納手段に格納されるプログラムデータの数だけ、Ｕｎｄｏ処理を過去に遡って実施することができるという効果を有する。
【００６８】
つぎの発明によれば、ＲＵＮ中書込み処理前にプログラムメモリに格納されていた変更前のプログラムに関する変更前プログラムデータを格納するバックアップ用格納手段と、Ｕｎｄｏ処理を指示したプログラマブルコントローラ周辺装置から受信したプログラムデータに含まれるＲＵＮ中書込み処理についてのプログラムと、プログラムメモリに格納されるＲＵＮ中書込み処理後のプログラムとが一致するかを照合するプログラム照合処理実行手段と、プログラム照合処理実行手段による照合結果が一致する場合には、ＲＵＮ中書込み処理後のプログラムを、バックアップ用格納手段に格納されている変更前プログラムデータを用いてＲＵＮ中書込み処理前のプログラムに書換えるＵｎｄｏ処理実行手段とを備えるように構成したので、Ｕｎｄｏ処理の実行の際に、すなわち元の変更前プログラムに戻す際に、プログラムに誤りの無い、元の正しいプログラムに容易に戻すことができるという効果を有する。
【００６９】
つぎの発明によれば、Ｕｎｄｏ処理実行手段は、照合結果が一致しない場合には、ＲＵＮ中書込み処理後のプログラムに対して、ＲＵＮ中書込み処理前のプログラムへの書換えを行わないようにしたので、Ｕｎｄｏ処理の実行の際に、Ｕｎｄｏ機能を実行してはならない他の不当なプログラマブルコントローラ周辺装置によるプログラムコントローラ内のプログラムの、変更前の元のプログラムとは異なるプログラムへの書き換えを防止することができるという効果を有する。
【００７０】
つぎの発明によれば、バックアップ用格納手段は、複数のＲＵＮ中書込み処理に対して、該ＲＵＮ中書込み処理前のプログラムメモリのプログラムに関する変更前プログラムデータを複数格納できるように構成したので、バックアップ用格納手段に格納されるプログラムデータの数だけ、Ｕｎｄｏ処理を過去に遡って実施することができるという効果を有する。
【図面の簡単な説明】
【図１】この発明のプログラマブルコントローラシステムの構成を示すブロック図である。
【図２】プログラマブルコントローラのメモリ内に保持されるバックアップ用メモリの構成を模式的に示す図である。
【図３】プログラマブルコントローラシステムにおけるＲＵＮ中書込みの処理手順を示すフローチャートである。
【図４】プログラマブルコントローラシステムにおけるＵｎｄｏの処理手順をフローチャートである。
【図５】プログラマブルコントローラのメモリ内に保持されるバックアップメモリの構成を模式的に示す図である。
【図６】プログラマブルコントローラシステムの構成の従来例を示すブロック図である。
【図７】従来のプログラマブルコントローラシステムにおけるＲＵＮ中書込みの処理手順を示すフローチャートである。
【符号の説明】
１　プログラマブルコントローラ、２，２’　周辺装置、３　表示装置、４　入力装置、５　メモリ、５ａ　プログラムメモリ、５ｂ　ＲＵＮ中書込み用ワークエリア、５ｃ　バックアップメモリ、５ｄ　照合用ワークエリア、７　周辺Ｉ／Ｆ部、８，８’　ＰＣＩ／Ｆ部、９，９’　プログラム編集部、９ａ　ＲＵＮ中書込み先頭ステップ番号、９ｂ　ＲＵＮ中書込み変更ステップ数、９ｃ，９ｃ’　ＲＵＮ中書込みプログラム、９ｄ　ＲＵＮ中書込み前変更ステップ数、９ｅＲＵＮ中書込み前プログラム、９ｆ　プログラムメモリ、１０　表示処理部、１１　キー入力処理部、１２　ＲＵＮ中書込み処理実行部、１３　プログラム照合処理実行部、１４　Ｕｎｄｏ処理実行部、３００，３００１〜３００ｎ　バックアップ情報テーブル、３０１　先頭ステップ番号、３０２　変更ステップ数、３０３　変更前プログラム、５００　複数回Ｕｎｄｏ機能対応用バックアップ情報テーブル、５０１　バックアップ情報テーブル数。
【図１】
2004021446.tif 000003
【図２】
2004021446.tif 000004
【図３】
2004021446.tif 000005
【図４】
2004021446.tif 000006
【図５】
2004021446.tif 000007
【図６】
2004021446.tif 000008
【図７】
2004021446.tif 000009